2008-12-10 Rodrigo Kumpera <rkumpera@novell.com>
[mono.git] / mono / metadata / ChangeLog
1 2008-12-10 Rodrigo Kumpera  <rkumpera@novell.com>
2
3         class.c (mono_class_setup_fields): It working on an inflated class
4         first check if the generic definition did init with success.
5
6         Fixes #445361.
7
8 2008-12-10 Rodrigo Kumpera  <rkumpera@novell.com>
9
10         pedump.c (main): Fix a warning.
11
12 2008-12-10  Bill Holmes  <billholmes54@gmail.com>
13
14         * object-internals.h : Adding a definition for 
15           MonoReflectionComVisibleAttribute.
16
17         * marshal.c (cominterop_com_visible) :  Method added to check the 
18           ComVisible attribute of a class.
19
20         * marshal.c (cominterop_raise_hr_exception, cominterop_get_interface) :  
21           cominterop_raise_hr_exception added to consolidate common code 
22           to raise hr exceptions.
23
24         * marshal.c (cominterop_can_support_dispatch) :  Method added to determine 
25           if a managed class should support IDispatch.
26
27         * marshal.c 
28           (cominterop_get_idispatch_for_objec, cominterop_ccw_queryinterfacet) :  
29           Added additional checks for managed object when getting 
30           an IDispatch interface.
31
32         Code is contributed under MIT/X11 license.
33
34 2008-12-10 Rodrigo Kumpera  <rkumpera@novell.com>
35
36         pedump.c (main): Handle mono_get_method () returning NULL. 
37
38 2008-12-09  Zoltan Varga  <vargaz@gmail.com>
39
40         * marshal.h: Fix a warning.
41
42 2008-12-09  Bill Holmes  <billholmes54@gmail.com>
43
44         * marshal.c : Adding cominterop_release_all_rcws to release all
45           runtime callable wrappers held by the runtime.
46
47         * marshal.h : Adding declaration for cominterop_release_all_rcws.
48           
49         Code is contributed under MIT/X11 license.
50
51 2008-12-09  Zoltan Varga  <vargaz@gmail.com>
52
53         * metadata.c (mono_image_alloc_lock): New helper function.
54         (mono_image_alloc0_lock): Ditto.
55
56         * metadata.c: Use the alloc_lock () helper functions for allocating
57         memory from the image mempool.
58
59 2008-12-08 Rodrigo Kumpera  <rkumpera@novell.com>
60
61         * class.c (mono_class_from_generic_parameter): Document it's
62         locking behavior. Fix double checked locking here, we stored in
63         param->pklass a partially initialized MonoClass and no membar was used.
64
65 2008-12-05  Marek Habersack  <mhabersack@novell.com>
66
67         * sysmath.c (ves_icall_System_Math_Round2): if round (3) and rint
68         (3) functions are present in the C library use them to do the
69         job. If they are absent, make sure that the sum of int_part and
70         dec_part is rounded before returning. This is necessary due to the
71         division of dec_part by the power of 10 before the final addition
72         is performed - if the result is not rounded in some cases it will
73         yield invalid results.
74
75 2008-12-04  Zoltan Varga  <vargaz@gmail.com>
76
77         * marshal.c (mono_marshal_emit_native_wrapper): Add AOT support for pinvoke
78         wrappers by emitting the function address using a CEE_MONO_ICALL_ADDR 
79         instruction instead of a pointer constant.
80
81 2008-12-03  Zoltan Varga  <vargaz@gmail.com>
82
83         * loader.c (mono_method_get_header): Do most of the work outside the
84         loader lock, to avoid assembly load hook deadlocks.
85
86         * metadata.c (mono_metadata_parse_mh_full): Use finer-grained locking.
87         (mono_metadata_parse_type_full): Ditto.
88
89 2008-12-02 Rodrigo Kumpera  <rkumpera@novell.com>
90
91         * mempool.c (mono_backtrace): Take the number of allocated bytes as argument.
92         Make the stack depth fixed. Ensure proper argument passing to the backtrace
93         funtions. Finally, use a lock to produce well ordered output.
94
95         The lock looks silly, as all calls to the corlib mempool should be guarded
96         with the loader lock, but for some reason this fact doesn't help. 
97
98         * mempool.c (mono_mempool_alloc0): Add support for TRACE_ALLOCATIONS.
99
100 2008-12-02  Mark Probst  <mark.probst@gmail.com>
101
102         * socket-io.c: 64 bit big-endian fixes.
103
104 2008-12-01 Rodrigo Kumpera  <rkumpera@novell.com>
105
106         * verify.c (is_compatible_boxed_valuetype): Rewrite function to work properly with
107         targets that require strict compatibility between the types.
108
109         * verify.c (verify_stack_type_compatibility_full): Boxed values are not compatible
110         to unboxed types. All cases that this is true are checked by is_compatible_boxed_valuetype.
111         Kill the strict argument and create a new one valuetype_must_be_boxed.
112
113         * verify.c (verify_delegate_compatibility): Use verify_stack_type_compatibility_full to
114         state that all valuetypes must be boxed.
115
116         Fixes #448560.
117
118 2008-11-29  Kornél Pál  <kornelpal@gmail.com>
119
120         * coree.c (MonoFixupExe): Use sizeof(IMAGE_BASE_RELOCATION) instead of
121         IMAGE_SIZEOF_BASE_RELOCATION as newer Vista SDKs no longer define the latter.
122
123         Contributed under MIT/X11 license.
124
125 2008-11-28 Rodrigo Kumpera  <rkumpera@novell.com>
126
127         * class.c (mono_class_setup_fields): Don't copy MonoType::attrs as
128         the inflate_generic_type machinery should handle it.
129
130         This avoids a crash when the field's flags is zero and it's type is
131         a primitive.
132         What happens is that mono_metadata_parse_type_full will see that opt_attrs
133         is zero and will return one of the cached built-in primitive types. Since
134         those types live in read-only memory, the code that copies it crashes.  
135
136 2008-11-28  Mark Probst  <mark.probst@gmail.com>
137
138         * object.c: Don't put function descriptors into generalized IMT
139         thunks.
140
141 2008-11-28  Mark Probst  <mark.probst@gmail.com>
142
143         * class.c: Enable generic code sharing on PPC64.
144
145 2008-11-27  Mark Probst  <mark.probst@gmail.com>
146
147         * mempool.c, mempool-internals.h: Added g_slist_append_mempool()
148         from mini/mini.c.
149
150         * generic-sharing.c: Allocate the method template slists from the
151         image mempool so it doesn't leak.
152
153 2008-11-27 Rodrigo Kumpera  <rkumpera@novell.com>
154
155         * class.c (generic_array_methods): Release the linked list.
156
157 2008-11-27  Mark Probst  <mark.probst@gmail.com>
158
159         * marshal.c (mono_string_builder_to_utf8): Fixed a wrong
160         invocation to g_utf16_to_utf8().
161
162 2008-11-26  Mark Probst  <mark.probst@gmail.com>
163
164         * icall.c (mono_ArgIterator_IntGetNextArg): Handle sub-word sized
165         arguments on big endian archs.
166
167 2008-11-25 Gonzalo Paniagua Javier <gonzalo@novell.com>
168
169         * reflection.c: (_mono_reflection_parse_type) skip leading spaces in
170         the type name (test added in corlib).
171
172 2008-11-25 Gonzalo Paniagua Javier <gonzalo@novell.com>
173
174         * pedump.c: initialize perf. counters. Fixes a segv.
175
176 2008-11-25  Martin Baulig  <martin@ximian.com>
177
178         * mono-debug-debugger.c
179         (mono_debugger_runtime_invoke): Return the exception object if an
180         exception was thrown.  Visual Studio displays the exception object
181         in the locals window.
182
183 2008-11-24  Mark Probst  <mark.probst@gmail.com>
184
185         * mini-trampolines.c (mono_delegate_trampoline): Don't return a
186         ftnptr.
187
188 2008-11-24  Mark Probst  <mark.probst@gmail.com>
189
190         * marshal.c (mono_type_native_stack_size): MONO_TYPE_I and
191         MONO_TYPE_U are sizeof (gpointer), too.
192
193 2008-11-24  Mark Probst  <mark.probst@gmail.com>
194
195         * marshal.c (mono_type_native_stack_size): Fixed size and
196         alignment for reference types.
197
198 2008-11-23  Mark Probst  <mark.probst@gmail.com>
199
200         * class.c (mono_class_generic_sharing_enabled): Disable generic
201         code sharing for PPC64.
202
203 2008-11-21 Rodrigo Kumpera  <rkumpera@novell.com>
204
205         * icall.c (mono_method_get_equivalent_method): Make sure
206         method->klass->methods is inited before looping over it.
207
208 2008-11-20 Gonzalo Paniagua Javier <gonzalo@novell.com>
209
210         * object.c: when calling ExecuteAssembly in a newly created domain,
211         the configuration file and application base are already set up.
212         Bug #446353 take 2 fixed.
213
214 2008-11-20  Zoltan Varga  <vargaz@gmail.com>
215
216         * marshal.c: Add support for MONO_TYPE_GENERICINST to some functions.
217         Fixes #444715. Fix a warning.
218
219 2008-11-18 Gonzalo Paniagua Javier <gonzalo@novell.com>
220
221         * appdomain.c: write the full path of the assembly to the .ini file
222         created when "shadow-copying"
223         Bug #446353 fixed.
224
225 2008-11-18  Zoltan Varga  <vargaz@gmail.com>
226
227         * debug-helpers.c (mono_method_full_name): Stringify wrapper types even
228         if signature==FALSE.
229
230 2008-11-17  Bill Holmes  <billholmes54@gmail.com>
231
232         * marshal.h : Fix the cygwin build.
233            marshal.c:12442: undefined reference to `_IID_IMarshal'
234           
235         Code is contributed under MIT/X11 license.
236
237 2008-11-17  Bill Holmes  <billholmes54@gmail.com>
238
239         * marshal.h : cominterop_ccw_getfreethreadedmarshaler added to return the
240           free threaded marshaler when QueryInterface is called on a COM callable
241           wrapper requesting the IMarshal interface.
242           
243         Code is contributed under MIT/X11 license.
244
245 2008-11-14  Zoltan Varga  <vargaz@gmail.com>
246
247         * domain-internals.h (MonoDomain): Update MONO_DOMAIN_LAST_GC_TRACKED.
248
249         * reflection.c (mono_type_get_object): Special case the very common
250         void type.
251
252         * domain-internals.h (struct _MonoDomain): Add 'typeof_void' field to
253         hold typeof(void).
254
255 2008-11-13  Bill Holmes  <billholmes54@gmail.com>
256
257         * process.h : Adding method declaration for
258           ves_icall_System_Diagnostics_Process_WaitForInputIdle_internal.
259           
260         * process.c : Adding implementation for
261           ves_icall_System_Diagnostics_Process_WaitForInputIdle_internal.
262           
263         * icall-def.h : Registering ICALL Processs.WaitForInputIdle_internal
264           to ves_icall_System_Diagnostics_Process_WaitForInputIdle_internal.
265
266         Code is contributed under MIT/X11 license.
267
268 2008-11-10  Rodrigo Kumpera  <rkumpera@novell.com>
269
270         * appdomain.c (unload_thread_main): Clean up threadpool by
271         calling mono_thread_pool_remove_domain_jobs.
272
273         * domain-internals.h (struct _MonoDomain): Add new fields to
274         help coordinate the cleanup of the threadpool.
275
276         * threadpool.c (mono_thread_pool_remove_domain_jobs): New fuction
277         that cleans up the threadpool of all jobs associated with an appdomain.
278         It does that by cleaning up the queues and making sure all active
279         threads are accounted.
280
281         * threadpool.c (async_invoke_io_thread): Ignore job if its domain is
282         unloaded or in the process of. Take this is such way that there is
283         no race condition between another thread starting the unload and the
284         current thread acknowledging it.
285
286         * threadpool.c (async_invoke_thread): Same.
287
288         * threadpool.c (start_io_thread_or_queue): Increment threadpool_jobs before
289         firing the new thread.
290
291         * threadpool.c (start_tpthread): Same.
292
293         * theadpool.c (append_job): Increment threadpool_jobs before queueing.
294
295         * threadpool.h: Add mono_thread_pool_remove_domain_jobs.
296
297 2008-11-06  Jonathan Chambers  <joncham@gmail.com>
298
299         * file-io.c (ves_icall_System_IO_MonoIO_DuplicateHandle): 
300         Add support for DuplicateHandle.
301         
302         * file-io.h (ves_icall_System_IO_MonoIO_DuplicateHandle): 
303         Add support for DuplicateHandle.
304         
305         * icall-def.h (ves_icall_System_IO_MonoIO_DuplicateHandle): 
306         Add support for DuplicateHandle.
307
308         Code is contributed under MIT/X11 license.
309
310 2008-11-06  Mark Probst  <mark.probst@gmail.com>
311
312         * class-internals.h: Make min_align into a whole byte.
313
314         * class.c: Set min_align for SIMD types to 16.
315
316 2008-11-05  Geoff Norton  <gnorton@novell.com>
317
318         * attach.c: Default the attacher to enabled for all cases including
319         embedded.
320
321 Wed Nov 5 16:33:41 CET 2008 Paolo Molaro <lupus@ximian.com>
322
323         * monitor.c, class-internals.h, wrapper-types.h: revert incorrect
324         change r117650.
325
326 2008-11-04  Mark Probst  <mark.probst@gmail.com>
327
328         * monitor.c, monitor.h: New function for querying offsets of
329         members of MonoThreadsSync.
330
331 2008-11-04  Zoltan Varga  <vargaz@gmail.com>
332
333         * marshal.c (mono_marshal_get_runtime_invoke): Use runtime_invoke_direct_cache
334         to speed up this function and to avoid the boundless memory growth caused by
335         the signature_dup () calls.
336
337 2008-11-02  Zoltan Varga  <vargaz@gmail.com>
338
339         * monitor.c (mono_monitor_get_fast_enter_method): Add a proper type for the
340         wrapper.
341
342         * class-internals.h (struct _MonoMethod): Increase the size of 'wrapper_type'
343         by 1 bit.
344
345         * wrapper-types.h: Add MONO_WRAPPER_MONITOR_FAST_ENTER/EXIT.
346
347 2008-10-31 Gonzalo Paniagua Javier <gonzalo@novell.com>
348
349         * appdomain.c:
350         * domain-internals.h: made mono_set_private_bin_path_from_config()
351         "internal".
352         * object.c: call the above function after setting the configuration
353         file path for the root domain.
354         Fixes bug #314478.
355
356 2008-10-31 Gonzalo Paniagua Javier <gonzalo@novell.com>
357
358         * assembly.c: when the assembly is loaded from an absolute path, end
359         basedir with a directory separator.
360         Bug #440781 fixed.
361
362 2008-10-30  Mark Probst  <mark.probst@gmail.com>
363
364         * monitor.c (mono_monitor_get_fast_enter_method): If
365         CompareExchange is not available, don't create the fastpath
366         instead of asserting.  (The method is missing in the 1.1 profile.)
367
368 2008-10-30  Mark Probst  <mark.probst@gmail.com>
369
370         * marshal.c, marshal.h: Rename signature_no_pinvoke() and make it non-static.
371
372         * monitor.c, monitor.h: Code for generating Monitor.Enter and
373         Monitor.Exit IL fastpaths.
374
375 2008-10-28  Rodrigo Kumpera  <rkumpera@novell.com>
376
377         * class.c (mono_class_create_from_typedef): Added Vector2ul.
378
379 2008-10-28  Rodrigo Kumpera  <rkumpera@novell.com>
380
381         * class.c (mono_class_create_from_typedef): Added Vector2l.
382
383 2008-10-27  Rodrigo Kumpera  <rkumpera@novell.com>
384
385         * class.c (mono_class_create_from_typedef): Added Vector2d.
386
387 2008-10-27 Gonzalo Paniagua Javier <gonzalo@novell.com>
388
389         * appdomain.c: translate \ into / for cache_path.
390         * domain-internals.h: new mono_is_shadow_copy_enabled().
391         * icall.c: (fill_reflection_assembly_name) do the same path
392         manipulations that get_code_base does.
393         (get_code_base) use mono_is_shadow_copy_enabled.
394
395 2008-10-26 Gonzalo Paniagua Javier <gonzalo@novell.com>
396
397         * appdomain.c: shadow-copied assemblies go to CachePath +
398         ApplicationName when both are set. DynamicBase has nothing to do with
399         shadow copies.
400         Bug #406877 fixed.
401
402 2008-10-26  Zoltan Varga  <vargaz@gmail.com>
403
404         * reflection.c (encode_locals): Use a cache to avoid duplicate entries in the
405         STANDALONESIG table.
406
407         * metadata-internals.h (struct _MonoDynamicImage): Add cache for
408         standalone signatures.
409
410         * marshal.c (mono_marshal_get_runtime_invoke): Rewrite the signature 
411         comparison code: instead of comparing the signatures using a custom
412         equals function, transform them to a common signature and compare that. This
413         works better with AOT.
414
415 2008-10-25  Zoltan Varga  <vargaz@gmail.com>
416
417         * Reapply r116521 with (!mono_debug_using_mono_debugger ()) checks.
418
419         * class.c (mono_class_init): Remove unneccesary mono_class_setup_properties ()
420         call for generic instances.
421         (mono_class_setup_properties): Call setup_properties () before accessing
422         gklass->properties.
423
424         * class.c (mono_class_get_virtual_methods): New helper function to iterate
425         over the virtual methods of a class using metadata if possible, avoiding the
426         creation of MonoMethod's for non-virtual methods.
427         
428         * class.c (mono_class_setup_vtable_general): Rewrite this to use 
429         get_virtual_methods () to iterate over the virtual methods of classes.
430
431 2008-10-25  Martin Baulig  <martin@ximian.com>
432
433         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_DEAD): New #define.
434
435 2008-10-24  Rodrigo Kumpera  <rkumpera@novell.com>
436
437         * class.c (mono_class_create_from_typedef): Added Vector4i.
438
439 2008-10-24  Mark Probst  <mark.probst@gmail.com>
440
441         * marshal.c (mono_marshal_get_synchronized_wrapper): Emit
442         ldtoken+GetTypeFromHandle instead of i4+icall so that the JIT
443         special-casing applies to eliminate the call completely.
444
445 2008-10-24  Rodrigo Kumpera  <rkumpera@novell.com>
446
447         * class.c (mono_class_create_from_typedef): Added Vector8s.
448
449 2008-10-23  Rodrigo Kumpera  <rkumpera@novell.com>
450
451         * class.c (mono_class_create_from_typedef): Added Vector16sb.
452
453 2008-10-23 Gonzalo Paniagua Javier <gonzalo@novell.com>
454
455         * icall.c: get rid of annoying warning.
456
457 2008-10-23 Gonzalo Paniagua Javier <gonzalo@novell.com>
458
459         * threadpool.c: in 1.x, if you change the background status of the
460         threadpool thread, it's not reset.
461         Remove unnecessary calls to SetState.
462
463 2008-10-22 Gonzalo Paniagua Javier <gonzalo@novell.com>
464
465         * threadpool.c: asynchronously create a set of idle threads upon first
466         use of the threadpool. SetMinThreads will now start the appropriate
467         number of idle threads if they are not already running. The default is
468         1 threadpool thread per CPU. Increased the maximum number of threads
469         per CPU to 10.
470
471 2008-10-22  Martin Baulig  <martin@ximian.com>
472
473         Revert r116521 from Zoltan, it breaks the debugger:
474
475         * class.c (mono_class_get_virtual_methods): New helper function to iterate
476         over the virtual methods of a class using metadata if possible, avoiding the
477         creation of MonoMethod's for non-virtual methods.
478         
479         * class.c (mono_class_setup_vtable_general): Rewrite this to use 
480         get_virtual_methods () to iterate over the virtual methods of classes.
481
482 2008-10-22 Gonzalo Paniagua Javier <gonzalo@novell.com>
483
484         * threads.c: when creating a threadpool thread, set its state to
485         'background'.
486         * threadpool.c: reset the background state of a threadpool thread
487         after finishing each work item
488         Bug #437888 fixed.
489
490 2008-10-22  Zoltan Varga  <vargaz@gmail.com>
491
492         * class.c (mono_class_get_vtable_entry): Add an optimization for szarrays.
493         
494         * class.c (mono_class_setup_vtable_general): Add an optimized version for
495         generic instances which works by inflating the methods in the container
496         class's vtable.
497
498         * class.c (mono_class_inflate_generic_type_with_mempool_no_copy): New
499         variant which doesn't make a copy if no inflation was done.
500         (mono_class_setup_fields): Use it.
501
502         * metadata.c (mono_metadata_get_shared_type): New helper function to
503         return a shared instance of a given MonoType.
504
505         * class.c (mono_class_inflate_generic_type_with_mempool): Avoid making
506         a copy of most non-generic types.
507
508 Wed Oct 22 18:00:46 CEST 2008 Paolo Molaro <lupus@ximian.com>
509
510         * threadpool.c: remove one more GetSystemInfo () call.
511
512 Wed Oct 22 17:45:48 CEST 2008 Paolo Molaro <lupus@ximian.com>
513
514         * mono-perfcounters.c, icall-def.h, environment.c, environment.h:
515         use the code in mono-proclib.h to get processor information.
516
517 2008-10-22 Gonzalo Paniagua Javier <gonzalo@novell.com>
518
519         * appdomain.c: fixed the logic that determines whether assemblies in a
520         directory are "shadow-copied" or not. Bug #433483 fixed.
521
522 2008-10-22  Zoltan Varga  <vargaz@gmail.com>
523
524         * process.c (ves_icall_System_Diagnostics_Process_GetProcessData): Fix a
525         warning.
526
527 2008-10-21  Zoltan Varga  <vargaz@gmail.com>
528
529         * marshal.c (runtime_invoke_signature_equal): Don't shared wrappers
530         returning a vtype.
531
532         * class.c debug-helpers.c object.c class-internals.h marshal.c icall.c
533         reflection.c: Use mono_field_get_name () for accessing a field's name.
534
535         * class-internals.h (MONO_CLASS_HAS_STATIC_METADATA): Move this here from
536         class.c
537
538         * class.c (mono_field_get_rva): Fix crash if this is called on a dynamic
539         field.
540
541         * loader.c (find_method_in_class): Reenable the metadata optimization by
542         not using it for generic instances.
543
544         * class-internals.h (MonoFieldDefaultValue): Extract the rarely used 
545         data/def_type fields from MonoClassField into a separate structure.
546         (struct MonoClassField): Remove data/def_type fields.
547         (struct _MonoClass): Add a 'field_def_values' array to store the default
548         values/RVA for fields.
549
550         * class.c reflection.c: Update after the changes.
551         
552         * object.c (mono_class_create_runtime_vtable): Use mono_field_get_data ()
553         for accessing field->data.
554
555         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_InitializeArray): Ditto.
556
557         * loader.c (find_method_in_class): Revert the last change for now as
558         it breaks Mono.C5 unit tests.
559
560         * class-internals.h (struct _MonoDynamicGenericClass): Add fields
561         'field_generic_types' and 'field_objects' which contain the information
562         previously stored in MonoInflatedField.
563         (MonoInflatedField): Delete.
564         (struct _MonoClassField): Delete 'generic_info' field.
565
566         * reflection.c: Store the information which was previously in 
567         field->generic_info in MonoDynamicGenericClass instead.
568
569         * metadata.c (free_generic_class): Update after MonoDynamicGenericClass/
570         MonoClassField changes.
571
572 Tue Oct 21 17:07:55 CEST 2008 Paolo Molaro <lupus@ximian.com>
573
574         * marshal.c, method-builder.c: get rid of wrapper_hash and instead
575         store the value inside the data array of the MonoMethodWrapper.
576         This saves memory, is faster and fixes the lifetime issues (methods
577         were never removed from the hash previously). May also fix bug#436996.
578
579 2008-10-21  Zoltan Varga  <vargaz@gmail.com>
580
581         * reflection.c (mono_image_get_fieldref_token): For fields of non-dynamic 
582         generic instances, compute the type from the generic definition instead of
583         looking in field->generic_info.
584
585         * class.c (mono_class_setup_fields): Don't create a MonoInflatedField
586         for inflated fields, the only user was get_fieldref_token () which no
587         longer needs it.
588
589         * class.c (mono_class_init): Revert the last change as it seems to cause
590         crashes.
591
592         * class-internals.h (struct _MonoClassField): Reorder fields to save 4
593         bytes on 64 bit platforms.
594
595         * object.c (mono_class_create_runtime_vtable): Fix a warning.
596         
597         * object.c (mono_class_create_runtime_vtable): Don't initalize
598         field->data/field->def_type here, it is done lazily by 
599         mono_class_get_field_default_value ().
600
601         * icall.c (ves_icall_get_enum_info): Call 
602         mono_class_get_field_default_value () instead of directly accessing
603         field->data and field->def_type.
604
605         * object.c (get_default_field_value): Ditto.
606
607         * class.c (mono_field_get_data): Ditto.
608         
609         * class.c (mono_class_init): Remove unneccesary mono_class_setup_methods ()
610         call for generic instances.
611
612         * loader.c (find_method_in_class): If klass != from_class, then inflate
613         the method with the context of from_class, since the caller assumes this.
614
615 2008-10-20  Zoltan Varga  <vargaz@gmail.com>
616
617         * class.c (mono_method_get_vtable_index): Use mono_method_get_vtable_slot ()
618         for accessing method->slot.
619
620 2008-10-20  Cedric Vivier  <cedricv@neonux.com>
621
622         * icall-def.h, icall.c: Add icall for Debugger.IsAttached.
623
624 2008-10-19  Zoltan Varga  <vargaz@gmail.com>
625
626         * class.c (mono_method_get_vtable_index): Use
627         mono_method_get_vtable_slot () for accessing method->slot.
628
629         * object.c (build_imt_slots): Use mono_class_get_method_by_index () for
630         accessing klass->methods.
631
632         * class.c (mono_method_get_vtable_slot): New helper function.
633         (mono_class_get_vtable_entry): Ditto.
634         (mono_class_setup_vtable_general): Use mono_method_get_vtable_slot () for
635         accessing method->slot.
636
637         * generic-sharing.c (mono_class_get_method_generic): Pass the declaring
638         method to get_inflated_method ().
639
640         * class.c (mono_class_get_inflated_method): New helper method to obtain
641         a method of an inflated class without calling setup_methods ().
642         (mono_class_get_cctor): Use get_inflated_method.
643
644         * generic-sharing.c (mono_class_get_method_generic): Ditto.
645         
646         * marshal.c image.c: Lazily create all the marshal caches.
647
648         * image.c (mono_image_init): Move initialization of runtime_invoke
649         caches to marshal.c.
650
651         * marshal.c (get_cache): New helper function to lazily initialize a 
652         wrapper cache.
653         (mono_marshal_get_runtime_invoke): Share more runtime invoke wrappers.
654
655         * debug-helpers.c (mono_method_full_name): Include generic arguments.
656
657 Fri Oct 17 10:51:32 CEST 2008 Paolo Molaro <lupus@ximian.com>
658
659         * loader.c: fixed check for interface type.
660
661 Thu Oct 16 20:59:11 CEST 2008 Paolo Molaro <lupus@ximian.com>
662
663         * appdomain.c: check for NULL setup before it's referenced.
664
665 p
666 Thu Oct 16 16:12:23 CEST 2008 Paolo Molaro <lupus@ximian.com>
667
668         * class.c: remove the unused old vtable setup code.
669
670 Thu Oct 16 12:53:29 CEST 2008 Paolo Molaro <lupus@ximian.com>
671
672         * class.c: don't depend on interface order in
673         setup_interface_offsets (bug #435777).
674         * reflection.c: sort the InterfaceImpl table (patch from
675         Jb Evain  <jbevain@novell.com>).
676
677 2008-10-13  Zoltan Varga  <vargaz@gmail.com>
678
679         * assembly.c (mono_assembly_open_full): Avoid loading images while holding
680         the low level assemblies lock.
681
682 Mon Oct 13 16:35:26 CEST 2008 Paolo Molaro <lupus@ximian.com>
683
684         * domain-internals.h, domain.c, icall.c, image.c, marshal.c,
685         object.c, reflection.c, socket-io.c, threads.c: introduced
686         mono_framework_version () to return the major framewrok version,
687         changed the code that was using more complex patterns to use it.
688         Return the correct value for PlatformID for OSX.
689
690 Mon Oct 13 14:38:01 CEST 2008 Paolo Molaro <lupus@ximian.com>
691
692         * icall-def.h, process.h, process.c: added an icall to get info about
693         processes using mono-proclib.
694
695 Mon Oct 13 11:14:44 CEST 2008 Paolo Molaro <lupus@ximian.com>
696
697         * mono-perfcounters.c: use the mono-proclib functions to
698         access process information.
699
700 Mon Oct 13 11:00:49 CEST 2008 Paolo Molaro <lupus@ximian.com>
701
702         * domain.c, assembly.c, debug-mono-symfile.c, debug-mono-symfile.h,
703         monosn.c, Makefile.am, pedump.c, image.c, metadata-internals.h,
704         reflection.c: remove rawbuffer usage: mmap support is more sanely
705         provided by utils/mono-mmap.
706
707 Sat Oct 11 19:46:19 CEST 2008 Paolo Molaro <lupus@ximian.com>
708
709         * gc.c: use posix semaphores when possible so that
710         mono_gc_finalize_notify() is signal safe.
711
712 2008-10-11  Zoltan Varga  <vargaz@gmail.com>
713
714         * reflection.c: Implement DISABLE_REFLECTION_EMIT, remove some
715         #ifdef DISABLE_REFLECTION_SAVE stuff, only the exported functions need to
716         be #ifdef-ed out, the linker will remove the rest.
717
718         * marshal.c: Implement DISABLE_COM.
719
720         * reflection.c: Implement DISABLE_REFLECTION_EMIT_SAVE.
721
722 2008-10-11  Miguel de Icaza  <miguel@novell.com>
723
724         * locales.c (string_invariant_compare_char): Optimization: do not
725         call g_unichar_type unless we actually need the information.
726
727 2008-10-10  Mark Probst  <mark.probst@gmail.com>
728
729         * object.c, class-internals.h: Also create remoting trampolines
730         for generic methods.  Pass the domain to the remoting trampoline
731         creation function, too.
732
733 2008-10-10  Zoltan Varga  <vargaz@gmail.com>
734
735         * class.c (mono_class_init): Fix+re-enable the finalize optimization.
736
737 2008-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
738
739         * class.c (mono_class_create_from_typedef): Vector4u was renamed to
740         Vector4ui.
741
742 2008-10-10 Gonzalo Paniagua Javier <gonzalo@novell.com>
743
744         * assembly.c:
745         * locales.c: remove the use of g_strdown. Fixes bug #322313.
746
747 Fri Oct 10 17:01:42 CEST 2008 Paolo Molaro <lupus@ximian.com>
748
749         * assembly.c: in mono_assembly_load_friends() take the assemblies lock
750         for the least possible amount of time (extending the fix in r113458).
751
752 2008-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
753
754         * class.c (mono_class_create_from_typedef): Retrofit to new type names.
755
756 2008-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
757
758         * class.c (mono_class_create_from_typedef): Added Vector8u and Vector16u
759         as possible simd intrinsic types.
760         Optimized the test to check for the common prefix first.
761
762 Thu Oct 9 17:38:24 CEST 2008 Paolo Molaro <lupus@ximian.com>
763
764         * class.c: back out part of a broken optimization committed on
765         May 23th (bug #433908).
766
767 2008-10-09  Mark Probst  <mark.probst@gmail.com>
768
769         * profiler.c (simple_shutdown): Don't call mono_thread_attach() on
770         Win32.  Should fix #432388 for most cases until we have the new
771         profiler on Win32.
772
773 2008-10-08  Zoltan Varga  <vargaz@gmail.com>
774
775         * metadata.c (mono_metadata_generic_context_hash): Call generic_inst_hash
776         instead of using inst->id so the hash is stable for AOT.
777
778 2008-10-07 Gonzalo Paniagua Javier <gonzalo@novell.com>
779
780         * appdomain.c:
781         * icall.c: create a .ini file for shadow-copied assemblies that
782         contains the location of the original assembly. Use this to return the
783         proper CodeBase for shadow-copied assemblies. Fixes bug #323606.
784         Also fix the number of '/' for windows when returning the CodeBase.
785         Fixes bug #430920.
786
787 2008-10-07  Bill Holmes  <billholmes54@gmail.com>
788
789         * marshal.c (cominterop_get_ccw) : Fixing a copy paste error from r115126.
790
791         Code is contributed under MIT/X11 license.
792
793 2008-10-07  Bill Holmes  <billholmes54@gmail.com>
794
795         * marshal.c (cominterop_get_native_wrapper) : Adding a call to mono_class_setup_vtable
796           if if the class vtable needs initialized.
797
798         Code is contributed under MIT/X11 license.
799
800 2008-10-07  Bill Holmes  <billholmes54@gmail.com>
801
802         * marshal.c (cominterop_get_native_wrapper_adjusted, cominterop_get_ccw) : 
803           Adding default MonoMarshalSpecs for COM methods.  OBJECT->STRUCT,
804           STRING->BSTR, and CLASS->INTERFACE.
805
806         Code is contributed under MIT/X11 license.
807
808 2008-10-07  Marek Habersack  <mhabersack@novell.com>
809
810         * sysmath.h: changed the declaration of the
811         ves_icall_System_Math_Round2 icall by adding an extra
812         away_from_zero parameter.
813
814         * sysmath.c (ves_icall_System_Math_Round2): added support for
815         away from zero rounding. The icall now takes an extra boolean
816         parameter to signal that away from zero operation is requested.
817
818 2008-10-06  Zoltan Varga  <vargaz@gmail.com>
819
820         * marshal.c (mono_marshal_get_delegate_begin_invoke): Put the wrapper in
821         the delegate klass so it can work with full-aot.
822         (mono_marshal_get_delegate_end_invoke): Ditto.
823         (mono_marshal_get_delegate_invoke): Ditto.
824
825 Mon Oct 6 16:10:02 CEST 2008 Paolo Molaro <lupus@ximian.com>
826
827         * gc.c, attach.h, attach.c: remove a bad pattern:
828         add_finalizer_callback () is not implemented correctly, it can't
829         without adding more overhead to the finalizer loop and it's not
830         even needed, since we know exactly what we need to call, so there is
831         no need to do so through an expensive function pointer.
832
833 2008-10-04  Zoltan Varga  <vargaz@gmail.com>
834
835         * gc.c: Define a dummy version of mono_gc_add_finalizer_thread_callback ()
836         for the no-gc case.
837         * attach.c (mono_attach_init): Remove the #ifdef.
838
839 2008-10-04  Andreas Färber  <andreas.faerber@web.de>
840
841         * attach.c (mono_attach_init): Don't use
842         mono_gc_add_finalizer_thread_callback when compiling without GC.
843         Fixes #432306.
844         
845         Code is contributed under MIT/X11 license.
846
847 2008-10-03  Zoltan Varga  <vargaz@gmail.com>
848
849         * class.c (mono_class_create_from_typedef): Remove the 
850         #ifndef DISABLE_SIMD stuff.
851
852 2008-10-03  Rodrigo Kumpera  <rkumpera@novell.com>
853
854         * class-internals.h (MonoClass): Added simd_type bit field.
855
856         * class.c (mono_class_create_from_typedef): Check if type is a simd
857         intrinsic.
858
859 2008-10-03  Mark Probst  <mark.probst@gmail.com>
860
861         * object.c (mono_method_add_generic_virtual_invocation): Only add
862         instantiations to the thunk whose count is at least as large as
863         the threshold.
864
865 2008-10-02 Gonzalo Paniagua Javier <gonzalo@novell.com>
866
867         * icall.c: changed the Type of the exception thrown when trying to
868         invoke a constructor on an abstract class. Part of the fix for bug
869         #324185.
870
871 2008-10-02  Mark Probst  <mark.probst@gmail.com>
872
873         * class.c, class-internals.h (mono_method_get_vtable_index): New
874         function which returns the index into the vtable and properly
875         handles inflated virtual generic methods.
876
877 2008-10-01  Mark Probst  <mark.probst@gmail.com>
878
879         * object.c, domain.c, object-internals.h, domain-internals.h:
880         Generalize IMT thunk machinery to also handle thunks for virtual
881         generic method invokes.  When a virtual generic method is invoked
882         more than a number of times we insert it into the thunk so that it
883         can be called without lookup in unmanaged code.
884
885         * generic-sharing.c, class-internals.h: Fetching a
886         MonoGenericInst* for a method from an (M)RGCTX.
887
888 2008-10-01  Zoltan Varga  <vargaz@gmail.com>
889
890         * marshal.c (emit_marshal_string): Applied a variant of a patch by
891         tom hindle <tom_hindle@sil.org>. Fix byref native-to-managed string
892         marshalling. Fixes #431304.
893
894 2008-10-01  Bill Holmes  <billholmes54@gmail.com>
895
896         * marshal.c (emit_marshal_variant) : Change the attribute checks to 
897           handle when ref is specified without In or Out.
898
899         Code is contributed under MIT/X11 license.
900
901 2008-09-30  Mark Probst  <mark.probst@gmail.com>
902
903         * loader.c (mono_get_method_constrained): Don't expand method with
904         the class's context, because it's already a method of that class.
905
906 2008-09-30  Atsushi Enomoto  <atsushi@ximian.com>
907
908         * attach.c : should be correct build fix.
909
910 2008-09-29  Zoltan Varga  <vargaz@gmail.com>
911
912         * attach.c: Fix the previous change.
913
914 2008-09-29  Atsushi Enomoto  <atsushi@ximian.com>
915
916         * attach.c : quick w32 build fix.
917
918 2008-09-27  Miguel de Icaza  <miguel@novell.com>
919
920         * Turn off MONO_GENERIC_SHARING=all and go back to corlib as it
921         crashes MonoDevelop: #430455.
922
923 2008-09-27  Zoltan Varga  <vargaz@gmail.com>
924
925         * domain-internals.h (struct _MonoDomain): Move most fields used only by
926         the JIT do MonoJitDomainInfo in ../mini/mini.h.
927
928         * domain.c: Remove initialization/cleanup of the removed fields.
929
930 2008-09-27  Mark Probst  <mark.probst@gmail.com>
931
932         * class.c (mono_class_generic_sharing_enabled): Enable generic
933         code sharing for PPC.
934
935 2008-09-26  Bill Holmes  <billholmes54@gmail.com>
936
937         * attach.c : Fixing the Windows builds.
938
939         Code is contributed under MIT/X11 license.
940
941 2008-09-25  Zoltan Varga  <vargaz@gmail.com>
942
943         * class.c (mono_class_generic_sharing_enabled): Experimentally change 
944         the default generic sharing mode to 'all'.
945
946 2008-09-25  Mark Probst  <mark.probst@gmail.com>
947
948         * generic-sharing.c, class-internals.h: New function for checking
949         whether a method needs a static RGCTX invoke wrapper.  A few
950         funtions moved from mini/generic-sharing.c.
951
952         * icall.c: New function used.
953
954 2008-09-25  Mark Probst  <mark.probst@gmail.com>
955
956         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal):
957         Static RGCTX invoke wrapping applies to value type methods, too.
958
959         * class.c (mono_class_setup_vtable_general): In generic-shared
960         value types, wrap methods with a static RGCTX invoke wrapper.
961
962 2008-09-25  Zoltan Varga  <vargaz@gmail.com>
963
964         * attach.c (ipc_connect): Use AF_UNIX instead of AF_FILE to fix the
965         osx build.
966
967 2008-09-24  Zoltan Varga  <vargaz@gmail.com>
968
969         * gc.c (mono_gc_add_finalizer_thread_callback): New function to
970         register a callback which is called when the finalizer thread is woken
971         up.
972         (finalizer_thread): Call the callback if it exists.
973
974         * attach.h attach.c: New files, implementing the attach mechanism.
975
976         * appdomain.c: Init/cleanup the attach mechanism on startup/shutdown.
977         
978         * object.c (mono_object_get_virtual_method): Fix an assertion introduced
979         by the previous change.
980
981 Tue Sep 23 15:24:03 CEST 2008 Paolo Molaro <lupus@ximian.com>
982
983         * class.c, domain-internals.h, domain.c, generic-sharing.c, image.c,
984         loader.c, marshal.c, metadata-internals.h, metadata.c,
985         method-builder.c, object.c, reflection.c: introduced specific functions
986         to allocate from the domain and image mempools and cleaned up most of
987         the code to use them (still missing a few in reflection.c).
988         Keep the loader bytes counter updated.
989
990 Mon Sep 22 17:33:12 CEST 2008 Paolo Molaro <lupus@ximian.com>
991
992         * domain.c, monitor.c, boehm-gc.c, gc.c: update some of the GC and
993         loader-related counters.
994
995 Mon Sep 22 17:29:54 CEST 2008 Paolo Molaro <lupus@ximian.com>
996
997         * mono-perfcounters-def.h, mono-perfcounters.c, class-internals.h:
998         added more MS-compatible counters.
999
1000 2008-09-22  Zoltan Varga  <vargaz@gmail.com>
1001
1002         * class.c (mono_class_setup_fields): Call setup_fields before accessing
1003         class->blittable. Fixes #428217.
1004
1005 2008-09-21  Zoltan Varga  <vargaz@gmail.com>
1006
1007         * reflection.c (mono_image_get_field_on_inst_token): Call 
1008         field_encode_signature () since that handles custom modifiers too.
1009         Fixes #424663.
1010
1011 2008-09-20  Zoltan Varga  <vargaz@gmail.com>
1012
1013         * reflection.c (add_custom_modifiers): New helper function to merge custom
1014         modifiers stored in objects to a MonoType.
1015         (fieldref_encode_signature): Encode custom modifiers.
1016         (mono_image_get_generic_field_token): Call add_custom_modifiers ().
1017         (fieldbuilder_to_mono_class_field): Ditto. Fixes #424663.
1018
1019 2008-09-19  Kornél Pál  <kornelpal@gmail.com>
1020
1021         * coree.c (_CorValidateImage): Some 64-bit IL only images have entry point
1022         calling _CorDllMain imported from mscoree.dll. Set entry point RVA to 0 for
1023         64-bit IL only images because imports are not resolved for IL only images.
1024         Special thanks to Bill Holmes for finding this bug and testing the patch.
1025         Also fail for 64-bit images marked as CLI_FLAGS_32BITREQUIRED.
1026
1027         Contributed under MIT/X11 license.
1028
1029 2008-09-19  Miguel de Icaza  <miguel@novell.com>
1030
1031         * mono-config.c (dllmap_start): Add support for the bits keyword
1032         on dllentry and dllmap to easily detect 32 vs 64 bit systems.
1033
1034 2008-09-19  Mark Probst  <mark.probst@gmail.com>
1035
1036         * reflection.c (inflate_mono_method): When the class the method is
1037         to be inflated for is itself not inflated, just return the method.
1038
1039 Fri Sep 19 11:51:36 CEST 2008 Paolo Molaro <lupus@ximian.com>
1040
1041         * mono-perfcounters.c: use more user friendly process instance names.
1042
1043 2008-09-18  Bill Holmes  <billholmes54@gmail.com>
1044
1045         * marshal.c (emit_marshal_variant) : Change the attribute checks to 
1046           handle "[in] ref" and "[in][out] ref" cases.
1047
1048         * marshal.c (cominterop_get_ccw) : The wrong signature was being passed
1049           to mono_mb_create_method.  This was causing problems calling native to
1050           managed passing Variants by value.
1051
1052         Code is contributed under MIT/X11 license.
1053
1054 2008-09-18  Zoltan Varga  <vargaz@gmail.com>
1055
1056         * class.c (can_access_internals): Call mono_assembly_load_friends ()
1057         before accessing the friend_assembly_names field.
1058
1059         * assembly.c (mono_assembly_load_friends): Make this callable multiple
1060         times.
1061         (mono_assembly_load_from_full): Avoid calling load_friends (), it is
1062         called lazily when it is needed.
1063
1064         * metadata-internals.h (struct _MonoAssembly): Add 
1065         'friend_assembly_names_inited' flag.
1066
1067 Thu Sep 18 18:18:47 CEST 2008 Paolo Molaro <lupus@ximian.com>
1068
1069         * mono-perfcounters-def.h: fix the types of a few counters.
1070         * mono-perfcounters.c: implemented the instance names getter
1071         and a few bugfixes.
1072
1073 2008-09-18  Atsushi Enomoot  <atsushi@ximian.com>
1074
1075         * culture-info-table.h : regenerated.
1076
1077 2008-09-17  Robert Jordan  <robertj@gmx.net>
1078
1079         * marshal.c (mono_marshal_get_ldflda_wrapper): Add support for
1080         context bound objects. Fixes #415577.
1081
1082         Code is contributed under MIT/X11 license.
1083
1084 Tue Sep 16 21:03:58 CEST 2008 Paolo Molaro <lupus@ximian.com>
1085
1086         * icall-def.h, threads-types.h, threads.c: fixed SpinWait()
1087         implementation (bug #423582).
1088
1089 2008-09-16  Zoltan Varga  <vargaz@gmail.com>
1090
1091         * object.c (mono_object_get_virtual_method): Handle the case method->slot
1092         is not set. Fixes #426309.
1093
1094 2008-09-16  Jb Evain  <jbevain@novell.com>
1095
1096         * class.c (mono_class_from_name): fix the exported type look up
1097         when the type is defined in a referenced assembly.
1098
1099 2008-09-16  Jb Evain  <jbevain@novell.com>
1100
1101         * reflection.c (mono_image_fill_export_table_from_type_forwarders):
1102         increment the next index counter on each iteration to make that work
1103         for more than one type forwarder. Unmanaged part to fix #422929.
1104
1105 2008-09-15  Mark Probst  <mark.probst@gmail.com>
1106
1107         * object-internals.h: enum ComInterfaceType in
1108         MonoInterfaceTypeAttribute is guint32, not guint16.
1109
1110 2008-09-12  Mark Probst  <mark.probst@gmail.com>
1111
1112         * cil-coff.h, image.c, reflection.c: Endianness fixes in image
1113         writing code.
1114
1115 2008-09-11  Mark Probst  <mark.probst@gmail.com>
1116
1117         * icall.c: Boolean arguments to a runtime invoke are MonoBoolean,
1118         not gboolean.
1119
1120 2008-09-11  Mark Probst  <mark.probst@gmail.com>
1121
1122         * debug-mono-symfile.c (mono_debug_symfile_lookup_location):
1123         Endianness fixes for MonoSymbolFileOffsetTable.
1124
1125 2008-09-10  Bill Holmes  <billholmes54@gmail.com>
1126
1127         * process.c (complete_path) : Removing quotes from the 
1128           input path.  The glib file routines do not handle file paths
1129           that have quotes around them.
1130
1131         Code is contributed under MIT/X11 license.
1132
1133 2008-09-10  Bill Holmes  <billholmes54@gmail.com>
1134
1135         * socket-io.h : Adding a comment to provide locations where 
1136           changes to MonoSocketAsyncResult need to be synced.
1137
1138         Code is contributed under MIT/X11 license.
1139
1140 2008-09-10  Zoltan Varga  <vargaz@gmail.com>
1141
1142         * marshal.c (emit_marshal_custom): Call NativeToManaged for non-out 
1143         parameters as well. Fixes #425001.
1144
1145 2008-09-08  Miguel de Icaza  <miguel@novell.com>
1146
1147         * console-io.c (ves_icall_System_ConsoleDriver_TtySetup): Fix
1148         windows build.
1149
1150 2008-09-07  Miguel de Icaza  <miguel@novell.com>
1151
1152         * console-io.c: Add support for tracking the window size if it
1153         changes.
1154
1155         The setup is very simple: the TtySetup function will now return a
1156         pointer to a location in memory that tracks the current console
1157         size.  The managed code checks its current value every time its
1158         queried against the last value set, and updates accordingly.
1159
1160         With this setup we can work with multiple consoles, and we do not
1161         require to poke into managed code from a signal handler.
1162
1163         Additionally, the environment for COLUMNS and LINES is now handled
1164         in unmanaged code.
1165
1166         (ves_icall_System_ConsoleDriver_GetTtySize): This is now gone.
1167
1168 2008-09-07  Mark Probst  <mark.probst@gmail.com>
1169
1170         * marshal.c (mono_type_native_stack_size): Treat
1171         MONO_TYPE_TYPEDBYREF like MONO_TYPE_VALUETYPE.
1172
1173 2008-09-04  Jb Evain  <jbevain@novell.com>
1174
1175         * class.c (mono_class_is_assignable_from): fix assignability of nullables
1176         to nullables.
1177
1178 2008-09-03 Rodrigo Kumpera  <rkumpera@novell.com>
1179
1180         * verify.c (verify_type_compatibility_full): Revert change
1181         to allow converting a native int to unmanaged pointer be verifiable
1182         under non-strict mode.
1183         It turns out that "(IntPtr)null" is indeed unverifiable, go figure.
1184
1185         * verify.c: Added some TODOs.
1186
1187 2008-09-02  Bill Holmes  <billholmes54@gmail.com>
1188
1189         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi,
1190           ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni) :
1191           Changed to use GlobalAlloc for the memory returned on Windows platforms.
1192
1193         Code is contributed under MIT/X11 license.
1194
1195 2008-09-02  Jb Evain  <jbevain@novell.com>
1196
1197         * object.c (mono_ldstr_metdata_sig): renamed to mono_ldstr_metadata_sig.
1198
1199 2008-09-02 Rodrigo Kumpera  <rkumpera@novell.com>
1200
1201         reflection.c (typebuilder_setup_fields): Handle classes with
1202         explicit size.
1203
1204 2008-09-01 Rodrigo Kumpera  <rkumpera@novell.com>
1205
1206         class.c (mono_class_setup_events): Add memory barrier due to
1207         double checked locking.
1208         
1209         class.c (mono_class_setup_properties): Same.
1210
1211 2008-08-31  Zoltan Varga  <vargaz@gmail.com>
1212
1213         * class.c (mono_class_is_assignable_from): Fix the build.
1214         
1215         * class.c (mono_class_is_assignable_from): Call mono_class_setup_vtable ()
1216         before accessing klass->interface_bitmap. Fixes #421744.
1217
1218 2008-08-28  Zoltan Varga  <vargaz@gmail.com>
1219
1220         * appdomain.c (mono_runtime_set_no_exec): New internal function setting
1221         the runtime into no-exec mode, useful when running the AOT compiler.
1222
1223         * appdomain.c gc.c object.c: Avoid executing managed code when running
1224         in no-exec mode.
1225         
1226         * rawbuffer.c (mono_raw_buffer_load_mmap): Disable this on the iphone.
1227
1228         * reflection.c (_mono_reflection_get_type_from_info): Handle the 
1229         special case when the mono_assembly_loaded () returns NULL because the 
1230         search hook is not installed.
1231
1232 2008-08-25  Zoltan Varga  <vargaz@gmail.com>
1233
1234         * marshal.c: Applied patch from tom hindle (tom_hindle@sil.org) to fix
1235         crashes in bstr marshalling on linux.
1236
1237 2008-08-24  Zoltan Varga  <vargaz@gmail.com>
1238
1239         * debug-helpers.c (mono_type_get_desc): Fix printing of generic instances
1240         with more than one parameter.
1241
1242 2008-08-24  Miguel de Icaza  <miguel@novell.com>
1243
1244         * console-io.c (ves_icall_System_ConsoleDriver_TtySetup): Disable
1245         start/stop flow control as well when turning off ICANON (allows
1246         C-s and C-q to be read by Console.ReadKey).
1247
1248 2008-08-24  Zoltan Varga  <vargaz@gmail.com>
1249
1250         * class.c (mono_class_init): Move the initialization of nested classes
1251         into mono_class_get_nested_types (). Fixes #418433.
1252
1253         * class-internals.h (struct _MonoClass): Add a new 'nested_classes_inited'
1254         flag.
1255
1256         * class.c reflection.c icall.c: Use mono_class_get_nested_types () for 
1257         iterating tough the nested classes of a class.
1258
1259 2008-08-23  Zoltan Varga  <vargaz@gmail.com>
1260
1261         * class.c (mono_class_generic_sharing_enabled): Enable generic sharing
1262         on arm.
1263
1264 2008-08-22  Miguel de Icaza  <miguel@novell.com>
1265
1266         * console-io.c (sigcont_handler): Support signal chaining for
1267         SIGCONT.
1268
1269         (console_set_signal_handlers): Use best practices with sigaction,
1270         clear the structure before using it. 
1271
1272 2008-08-22  Robert Jordan  <robertj@gmx.net>
1273
1274         * console-io.c (ves_icall_System_ConsoleDriver_TtySetup):
1275         Fix the Windows build.
1276
1277 2008-08-22  Zoltan Varga  <vargaz@gmail.com>
1278
1279         * class.c (mono_class_generic_sharing_enabled): Make the default
1280         sharing mode 'corlib'.
1281
1282 2008-08-21  Zoltan Varga  <vargaz@gmail.com>
1283
1284         * console-io.c (console_set_signal_handlers): Fix a warning.
1285
1286         * marshal.c (mono_marshal_get_synchronized_wrapper): Call the wrapper
1287         method normally, the JIT will take care of avoiding recursion.
1288
1289 2008-08-20  Bill Holmes  <billholmes54@gmail.com>
1290
1291         * console-io.c : Fixing builds for platforms that do not have <termios.h>.
1292
1293         Code is contributed under MIT/X11 license.
1294
1295 2008-08-20  Miguel de Icaza  <miguel@novell.com>
1296
1297         * console-io.c (sigcont_handler): We need to restore the entire
1298         termios state, not only the original settings, as things like echo
1299         can be controlled after this (Booish exposes this issue with its
1300         own ReadLine implementation).
1301
1302         Additionally, we need to set the terminal back into keypad_xmit
1303         mode.
1304         
1305         (ves_icall_System_ConsoleDriver_TtySetup): Take the keypad xmit
1306         string as a paramter as well.   Otherwise we get different
1307         keyboard sequences.
1308
1309 2008-08-20  Zoltan Varga  <vargaz@gmail.com>
1310
1311         * marshal.c (emit_marshal_object): Avoid managed-to-native marshalling of
1312         delegates with byref out parameter passing. Fixes #351520.
1313
1314         * debug-helpers.c (mono_context_get_desc): New helper function to stringify
1315         a generic context.
1316         (mono_type_get_desc): Add the type arguments for GENERICINST.
1317         (mono_method_full_name): Stringify the class name using mono_type_full_name
1318         so it picks up generic arguments.
1319
1320 2008-08-19  Gert Driesen  <drieseng@users.sourceforge.net>
1321
1322         * console-io.c: Removed debug output.
1323
1324 2008-08-19 Rodrigo Kumpera  <rkumpera@novell.com>
1325
1326         reflection.c (mono_reflection_create_runtime_class): Alloc
1327         the nested classes linked list using the dynamic image mempool.
1328         Fixes leak in corlib compilation.
1329
1330 2008-08-19  Miguel de Icaza  <miguel@novell.com>
1331
1332         * console-io.c: Fix incredibly annoying behavior on the console
1333         after resuming execution after control-z.   This affected every
1334         console application.
1335
1336 2008-08-18 Rodrigo Kumpera  <rkumpera@novell.com>
1337
1338         * mempool-internals.h: Header for mono private mempool functions. The first
1339         two function are for allocating glib linked lists using pools.
1340
1341         * mempool.c: Added g_list_prepend_mempool and g_slist_prepend_mempool.
1342
1343         * Makefile.am: Added mempool-internals.h.
1344
1345 2008-08-16  Zoltan Varga  <vargaz@gmail.com>
1346
1347         * domain.c (mono_domain_create): Call the JIT domain hook if installed.
1348         (mono_domain_free): Ditto.
1349
1350         * domain-internals.h (struct _MonoDomain): Add 'runtime_info' field, this could
1351         be used by the JIT to store its domain-specific information, instead of putting
1352         it directly into MonoDomain.
1353
1354         * domain.c (mono_install_create_domain_hook): New helper function to install
1355         a hook which initializes domain->runtime_info.
1356
1357         * domain.c (mono_install_free_domain_hook): Ditto.
1358         
1359 2008-08-15  Zoltan Varga  <vargaz@gmail.com>
1360
1361         * marshal.c (mono_delegate_end_invoke): Raise an exception instead of
1362         asserting if the ares parameter is null.
1363
1364         * mono-perfcounters.c: Fix warnings.
1365
1366         * marshal.c (mono_marshal_get_delegate_begin_invoke): Don't set save_lmf, it
1367         is not needed, don't check for interruptions either.
1368         (mono_marshal_get_delegate_end_invoke): Ditto.
1369
1370 2008-08-15  Marek Habersack  <mhabersack@novell.com>
1371
1372         * mono-perfcounters.c (predef_readonly_counter): added support for
1373         reading the ASP.NET Requests Queued counter from another process.
1374
1375 2008-08-12  Zoltan Varga  <vargaz@gmail.com>
1376
1377         * metadata-internals.h: Move the 'aot_module' field from MonoAssembly to
1378         MonoImage to simplify the AOT code.
1379
1380 2008-08-10  Zoltan Varga  <vargaz@gmail.com>
1381
1382         * marshal.c (emit_marshal_object): Implement native-to-managed StringBuilder
1383         marshalling. Fixes #416078.
1384
1385 2008-08-08  Zoltan Varga  <vargaz@gmail.com>
1386         
1387         * marshal.c (mono_marshal_get_native_wrapper): Add an 'aot' argument, when
1388         it is set, looking up the icall address is deferred to the JIT, since 
1389         in embedded scenarios, the icall might not be registered in the runtime
1390         doing the AOT compilation. Backported from the 2.0 branch.
1391
1392 2008-08-08  Zoltan Varga  <vargaz@gmail.com>
1393
1394         * marshal.c (mono_remoting_wrapper): Handle nullable types correctly.
1395         Fixes #415621.
1396
1397 2008-08-05  Marek Habersack  <mhabersack@novell.com>
1398
1399         * Makefile.am: added support for cross-compilation.
1400
1401 2008-08-04  Zoltan Varga  <vargaz@gmail.com>
1402
1403         * socket-io.c (get_socket_assembly): Make 'moonlight' variable static.
1404
1405 Fri Aug 1 18:47:48 CEST 2008 Paolo Molaro <lupus@ximian.com>
1406
1407         * mono-perfcounters.c: jitted methods and jitted bytes counters.
1408
1409 Fri Aug 1 16:07:09 CEST 2008 Paolo Molaro <lupus@ximian.com>
1410
1411         * class-internals.h, icall-def.h, mono-perfcounters-def.h,
1412         mono-perfcounters.c: performance counters implementation.
1413
1414 2008-07-31  Zoltan Varga  <vargaz@gmail.com>
1415
1416         * metadata-internals.h (struct _MonoAssembly): Change the type of 'aot_module'
1417         to gpointer, letting the AOT code decide what to store in it.
1418
1419 2008-07-31  Bill Holmes  <billholmes54@gmail.com>
1420
1421         * marshal.c (cominterop_get_native_wrapper) : Adding a call to 
1422           mono_class_setup_methods if the methods are not initialized.
1423
1424         Code is contributed under MIT/X11 license.
1425
1426 2008-07-30 Rodrigo Kumpera  <rkumpera@novell.com>
1427
1428         * verify.c: Remove some debug code I commited by accident.
1429
1430         * verify.c (mono_method_is_valid_in_context): Change the return value
1431         to make possible to distinguish between invalid and unverifiable.
1432
1433         * verify.c (verifier_load_method): Don't return NULL for unverifiable
1434         methods.
1435
1436 2008-07-30 Rodrigo Kumpera  <rkumpera@novell.com>
1437
1438         * verify.c (mono_generic_param_is_constraint_compatible): Inflate type
1439         constraints. Fixes regression in gtest-253.
1440
1441 2008-07-30 Rodrigo Kumpera  <rkumpera@novell.com>
1442
1443         * verify.c (mono_verifier_verify_class): Don't allow generic types
1444         with explicit layout.
1445
1446         * verify.c (mono_method_verify): Check locals and argument types.
1447
1448 2008-07-29  Zoltan Varga  <vargaz@gmail.com>
1449
1450         * monitor.c (mono_monitor_try_enter_internal): Allow nterruption of the
1451         wait if the thread is in StopRequested state.
1452
1453         * class.c (mono_class_from_name): Refactor the module searching code into
1454         a separate function so it can be reused in the AOT case too.
1455
1456 2008-07-28 Rodrigo Kumpera  <rkumpera@novell.com>
1457
1458         * verify.c (mono_type_is_valid_in_context): Improve the error message.
1459         Check both the type and it's generic type definition for loader errors.
1460         
1461         * verify.c (mono_method_is_valid_in_context): Don't generate another
1462         error when a type errors occur, this leads to the wrong exception been
1463         thrown.
1464
1465 2008-07-28  Dick Porter  <dick@ximian.com>
1466
1467         * icall-def.h
1468         * process.c
1469         (ves_icall_System_Diagnostics_Process_ProcessHandle_duplicate):
1470         New internal calls to duplicate and close a process handle.
1471
1472 2008-07-27  Andreas Färber  <andreas.faerber@web.de>
1473
1474         * object.c (CHECK_ADD_OVERFLOW_UN): Add missing bracket. Fixes #412499.
1475
1476 2008-07-27  Zoltan Varga  <vargaz@gmail.com>
1477
1478         * appdomain.c (unload_thread_main): Attach the unload thread to the runtime.
1479
1480 2008-07-27  Robert Jordan  <robertj@gmx.net>
1481
1482         * class.c (mono_class_init): Don't compute class.has_finalize for
1483         valuetypes. Fixes #412477.
1484
1485 2008-07-25 Rodrigo Kumpera  <rkumpera@novell.com>
1486
1487         * verify.c: Implement constraint equivalence checking.
1488         This is required when a generic parameter is used as
1489         argument to a constrained one.
1490
1491         Fixes #410637.
1492
1493 2008-07-24  Zoltan Varga  <vargaz@gmail.com>
1494
1495         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1496
1497         * domain-internals.h (struct _MonoDomain): Add 'method_code_hash' field.
1498
1499         * object-internals.h (struct _MonoDelegate): Add 'method_code' field,
1500         synch with managed object layout.
1501
1502 2008-07-24 Rodrigo Kumpera  <rkumpera@novell.com>
1503
1504         * verify.c (do_branch_op): Handle valuetypes and generic
1505         arguments properly.
1506
1507         * verify.c (do_cmp_op): Same.
1508
1509         Fixes #410383.
1510
1511 2008-07-24  Mark Probst  <mark.probst@gmail.com>
1512
1513         * generic-sharing.c: Fix memory leaks.
1514
1515         * class.c, class-internals.h: Make
1516         mono_class_inflate_generic_type_with_mempool() non-static.
1517
1518 2008-07-24 Rodrigo Kumpera  <rkumpera@novell.com>
1519
1520         * pedump.c (dump_verify_info): Dump full class name.
1521
1522 2008-07-24  Mark Probst  <mark.probst@gmail.com>
1523
1524         * generic-sharing.c: Removed some old code that didn't do anything.
1525
1526 2008-07-24  Massimiliano Mantione  <massi@ximian.com>
1527         * profiler.c: Added runtime_initialized_event,
1528         mono_profiler_install_runtime_initialized and
1529         mono_profiler_runtime_initialized. This new hook tells the profiler
1530         when the runtime is sufficiently initialized to be able to call
1531         mono_thread_attach on the root appdomain.
1532         * profiler.h, profiler-private.h: Likewise.
1533
1534 2008-07-23 Rodrigo Kumpera  <rkumpera@novell.com>
1535
1536         * verify.c (do_cast): Do boxing for generic arguments as well.
1537
1538         * class.c (is_nesting_type): Drop generic instantiations before
1539         checking for nesting.
1540
1541         * class.c (can_access_instantiation): Allow access to generic
1542         arguments.
1543
1544 2008-07-23 Rodrigo Kumpera  <rkumpera@novell.com>
1545
1546         * verify.c (verify_class_for_overlapping_reference_fields):
1547         On some cases, the field size might be zero, guard against that.
1548         Fix the explicit layout check to work as expected.
1549
1550 2008-07-23  Zoltan Varga  <vargaz@gmail.com>
1551
1552         * threads.c (ves_icall_System_Threading_Thread_Abort): Avoid calling 
1553         mono_thread_resume () during shutdown, since the thread we want to abort
1554         might be suspended.
1555
1556 2008-07-22  Zoltan Varga  <vargaz@gmail.com>
1557
1558         * mono-debug-debugger.c (mono_debugger_check_breakpoints): Fix a 
1559         warning.
1560
1561         * debug-mono-symfile.c: Fix a warning.
1562
1563         * mono-perfcounters.c (get_cpu_times): Fix a warning.
1564
1565         * object.c (mono_class_vtable): Check if exception_type is set, and return
1566         NULL as defined by the function comments.
1567
1568 2008-07-22  Mark Probst  <mark.probst@gmail.com>
1569
1570         * mempool.c: Use malloc for every single mempool allocation if the
1571         configure option is set.  This makes it easier to track mempool
1572         allocations with tools like Valgrind.
1573
1574 2008-07-22  Jb Evain  <jbevain@novell.com>
1575
1576         * reflection.c (create_dynamic_mono_image): emit the same
1577         metadata version that SL2 does when creating a SL2 image.
1578
1579 2008-07-21 Rodrigo Kumpera  <rkumpera@novell.com>
1580
1581         * icall-def.h:
1582         * icall.c: New icall System.Enum:get_hashcode. This function
1583         avoids the overhead of boxing the enum to the underlying type.
1584
1585 2008-07-21  Mark Probst  <mark.probst@gmail.com>
1586
1587         * reflection.c (mono_method_get_object): Don't let static RGCTX
1588         invoke wrappers get into MonoReflectionMethods.
1589
1590 2008-07-17 Rodrigo Kumpera  <rkumpera@novell.com>
1591
1592         * object-internals.h:
1593         * object.c: New mono_runtime_class_init_full function
1594         that makes throwing the exception optinal.
1595
1596         * class-internals.h: New exception type MONO_EXCEPTION_OBJECT_SUPPLIED
1597         for the case where the exception object is supplied.
1598
1599 2008-07-16  Kornél Pál  <kornelpal@gmail.com>
1600
1601         * coree.h: Define __ImageBase as _image_base__ on cygwin that fixes build with
1602         old ld versions.
1603
1604         Contributed under MIT/X11 license.
1605
1606 2008-07-16 Rodrigo Kumpera  <rkumpera@novell.com>
1607
1608         * string-icalls.c (ves_icall_System_String_InternalSplit):
1609         Optimize array allocation by caching the MonoClass of the
1610         array type.
1611
1612         * icall.c (ves_icall_Type_GetMethodsByName): Same.
1613
1614         * reflection.c (mono_param_get_objects): Same.
1615
1616 2008-07-16 Rodrigo Kumpera  <rkumpera@novell.com>
1617
1618         * icall-def.h:
1619         * icall.c: New ves_icall_MonoGenericClass_InflateType icall.
1620         It inflates the given type using the class context.
1621
1622 2008-07-15 Rodrigo Kumpera  <rkumpera@novell.com>
1623
1624         * object.c (mono_class_try_get_vtable): New function. Tries to fetch
1625         the vtable if it already exists.
1626
1627         * object-internals.h: Add mono_class_try_get_vtable as part of the
1628         internal API.
1629
1630         * reflection.c (mono_type_get_object): Use the MonoObject from the
1631         vtable when possible. Reduces locking contention on reflection heavy
1632         code.
1633
1634 2008-07-15  Zoltan Varga  <vargaz@gmail.com>
1635
1636         * decimal.c (my_g_bit_nth_msf): Implement this directly without calling
1637         g_bit_nth_msf () since that macro is not implemented in eglib.
1638
1639 2008-07-13  Zoltan Varga  <vargaz@gmail.com>
1640
1641         * class.c (mono_class_generic_sharing_enabled): Always disable generic sharing
1642         on platforms which do not support it.
1643
1644 2008-07-12  Zoltan Varga  <vargaz@gmail.com>
1645
1646         * marshal.c (mono_signature_to_name): Encode sig->hasthis as well.
1647
1648 2008-07-11  Martin Baulig  <martin@ximian.com>
1649
1650         * mono-debug-debugger.h
1651         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_INTERRUPTION_REQUEST'.
1652
1653         * mono-debug-debugger.c
1654         (_mono_debugger_interruption_request): New global volatile variable.
1655         (mono_debugger_check_interruption): New public function.
1656
1657         * threads.c
1658         (mono_thread_current_check_pending_interrupt): Call
1659         mono_debugger_check_interruption().
1660         (mono_thread_interruption_checkpoint_request): Likewise.
1661
1662 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
1663
1664         * verify.c: Add more type checks for loaded types. Verify the result
1665         handle from ldtoken.
1666
1667 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
1668
1669         * loader.c (field_from_memberref): Don't crash if the field
1670         wasn't found.
1671
1672 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
1673
1674         * verify.c: Verify if type and method instantiations
1675         don't have invalid VAR or MVAR arguments.
1676
1677 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
1678
1679         * verify.c: Fix double free of function pointer list.
1680
1681 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
1682
1683         * object.c (mono_string_to_utf8): Comment the new code as it
1684         breaks under eglib.
1685
1686 2008-07-08 Rodrigo Kumpera  <rkumpera@novell.com>
1687
1688         * object.c (mono_string_to_utf8): Avoid allocating a temp array.
1689
1690 2008-07-07  Bill Holmes  <billholmes54@gmail.com>
1691
1692         * threads.c : Thread.Interrupt changes to ensure that ThreadInterruptedException
1693           is not throw too many times.
1694
1695         Code is contributed under MIT/X11 license.
1696
1697 2008-07-07  Zoltan Varga  <vargaz@gmail.com>
1698
1699         * mono-debug.c (mono_debug_find_method): Allow this to be called even when
1700         debugging is turned off.
1701
1702 2008-07-06  Zoltan Varga  <vargaz@gmail.com>
1703
1704         * generic-sharing.c (mono_method_lookup_rgctx): Fix a warning.
1705
1706 2008-07-04  Mark Probst  <mark.probst@gmail.com>
1707
1708         * class-internals.h, class.c: Added new generic sharing option:
1709         Share only stuff in System.Collections.Generic, which is now the
1710         default.
1711
1712 2008-07-04  Mark Probst  <mark.probst@gmail.com>
1713
1714         * generic-sharing.c, class-internals.h: New function for getting a
1715         generic method in a generic class given the corresponding method
1716         for a different instantiation of the class.  Partly refactored
1717         from mini-trampolines.c.
1718
1719         * class.c: Make sure generic methods have a class_inst if they are
1720         part of a generic class.
1721
1722         * metadata.c (mono_type_stack_size_internal): Handle type
1723         variables.
1724
1725 2008-07-04  Mark Probst  <mark.probst@gmail.com>
1726
1727         * domain-internals.h: New field (has_this) in MonoGenericJitInfo.
1728         Signifies whether information on the this/vtable/mrgctx variable
1729         is available.
1730
1731 2008-07-04  Mark Probst  <mark.probst@gmail.com>
1732
1733         * object.c, object-internals.h, icall.c: New function
1734         mono_delegate_ctor_with_method(), which does the same as
1735         mono_delegate_ctor(), but takes an explicit method argument
1736         instead of taking the method from the jit info.
1737
1738         * marshal.c: When creating a delegate with an inflated method take
1739         the "this" argument as the target class for the castclass.
1740
1741 2008-07-03  Mark Probst  <mark.probst@gmail.com>
1742
1743         * domain.c (mono_jit_info_table_find): Fixed a bug that caused
1744         mono_jit_info_table_find() to perform very badly in some cases.
1745
1746 2008-07-02  Zoltan Varga  <vargaz@gmail.com>
1747
1748         * icall.c (type_from_typename): Handle 'string'.
1749
1750         * marshal.c (mono_marshal_get_runtime_invoke): Don't insert runtime invoke
1751         wrappers into the wrapper_hash, since the key is not a MonoMethod.
1752
1753 2008-07-01  Zoltan Varga  <vargaz@gmail.com>
1754
1755         * icall.c (mono_get_jit_icall_info): New function to return the jit icall hash table.
1756
1757         * *-gc.c (mono_gc_get_managed_allocator_types): New function to return the
1758         number of available managed allocator types.
1759
1760         * marshal.c (mono_marshal_init): Register Thread:ResetAbort as an icall ().
1761         (mono_marshal_get_runtime_invoke): Call ResetAbort as an icall.
1762
1763 2008-06-30  Zoltan Varga  <vargaz@gmail.com>
1764
1765         * domain-internals.h (struct _MonoDomain): Add 'jit_code_hash_lock' field,
1766         which is a low level lock protecting just the 'jit_code_hash' hash table.
1767
1768         * domain.c: Initialize+cleanup jit_code_hash_lock.
1769         
1770 2008-06-30  Kornél Pál  <kornelpal@gmail.com>
1771
1772         * coree.c (mono_load_coree): Set coree_module_handle global variable only
1773         after initialization.
1774
1775         * coree.h: Make MonoFixupExe internal.
1776
1777         Contributed under MIT/X11 license.
1778
1779 2008-06-30  Kornél Pál  <kornelpal@gmail.com>
1780
1781         * coree.c (_CorValidateImage): Retain IMAGE_DIRECTORY_ENTRY_SECURITY
1782         because that is platform independent. Check NumberOfRvaAndSizes in PE32
1783         as well.
1784         (MonoLoadImage): New wrapper function around LoadLibrary to ensure that the
1785         image being loaded is a CLI image and _CorValidateImage gets called.
1786
1787         * coree.h: Add MonoLoadImage.
1788
1789         * image.c (mono_image_open_full): Load CLI images using MonoLoadImage
1790         instead of LoadLibrary.
1791
1792         Contributed under MIT/X11 license.
1793
1794 2008-06-29 Rodrigo Kumpera  <rkumpera@novell.com>
1795
1796         * icall.c (ves_icall_System_ValueType_Equals): Avoid allocating objects
1797         for any primitive type.
1798
1799 2008-06-29  Zoltan Varga  <vargaz@gmail.com>
1800
1801         * object.c (mono_array_new_specific): Optimize this and the other allocation
1802         functions a bit.
1803         
1804         * object.c (mono_class_create_runtime_vtable): Use typed allocation in other
1805         domains too if mono_dont_free_domains is set.
1806
1807         * domain-internals.h (mono_dont_free_domains): New internal option controlling
1808         whenever to free appdomain data after it has been unloaded.
1809
1810         * domain.c (mono_domain_free): Don't free appdomain data if the option is set.
1811         
1812 2008-06-28  Zoltan Varga  <vargaz@gmail.com>
1813
1814         * icall.c (ves_icall_System_Enum_get_underlying_type): New icall.
1815         (mono_method_get_equivalent_method): Fix a warning.
1816
1817         * object.c (mono_message_init): Avoid looking up array types for each call.
1818
1819 2008-06-27  Zoltan Varga  <vargaz@gmail.com>
1820
1821         * object.c (mono_message_invoke): Avoid looking up the object[] type for each
1822         call.
1823
1824         * icall.c (ves_icall_System_ValueType_Equals): Optimize the comparison of enums
1825         even more.
1826
1827         * class.c (mono_class_get_fields): Avoid calling setup_fields_locking () for
1828         each iteration.
1829
1830         * icall.c (ves_icall_System_ValueType_Equals): Avoid traversing all the static
1831         fields of an enum.
1832
1833 2008-06-26 Rodrigo Kumpera  <rkumpera@novell.com>
1834
1835         * object.c (mono_value_box): Fix boxing of nullables.
1836
1837 2008-06-26  Kornél Pál  <kornelpal@gmail.com>
1838
1839         * assembly.c (mono_set_rootdir): Use __ImageBase instead of
1840         mono_module_handle that is defined by the linker; no initialization required.
1841         * coree.h: Remove mono_module_handle, add __ImageBase, update
1842         mono_image_open_from_module_handle.
1843         * coree.c (_CorValidateImage): Convert platform independent PE32 images to
1844         PE32+ on 64-bit Windows that makes the OS able to load CIL images as modules.
1845         (MonoFixupCorEE): Export Address Table RVAs are 32-bit unsigned integers so
1846         memory has to be allocated for trampolines (x64) or procedure labels (IA64) up
1847         to 4 GB away from image base address. IA64 version is not tested but was very
1848         easy to implement and should work if we ever need it.
1849         * domain.c (mono_init_internal): Avoid system error message boxes.
1850         * image.c (mono_image_open_from_module_handle): Replace ref_count argument
1851         with has_entry_point. Handle do_mono_image_load fauilre correctly.
1852         (mono_image_open_full, mono_image_close): Use has_entry_point instead of
1853         coff_attributes that is a more reliable way to detect if _CorDllMain was called.
1854         * metadata-internals.h: Add has_entry_point to _MonoImage on Windows.
1855
1856         Contributed under MIT/X11 license.
1857
1858 2008-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
1859
1860         * class.c, class-internals.h: Export mono_class_get_generic_type_definition
1861         as part of the private mono API.
1862         
1863         * loader.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandleInternalType):
1864         Do proper argument checking for methods that belong to generic classes.
1865         Do proper type resolution for GMFH/2.
1866         Fixes #377324.
1867         
1868 2008-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
1869
1870         * verify.c (do_switch): Fix a memory corruption bug with
1871         the jump index is out of bound.
1872
1873 2008-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
1874
1875         * verify.c: Disable debug code.
1876
1877 2008-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
1878
1879         * reflection.c (mono_image_get_methodbuilder_token): Use
1880         mono_image_get_methodspec_token_for_generic_method_definition
1881         instead of mono_image_get_memberref_token. We cache more memberef
1882         entries now.
1883
1884 2008-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
1885
1886         * verify.c: Inflate exception clause types.
1887         Fixes #402606.
1888         
1889 2008-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
1890
1891         * reflection.c (mono_image_get_methodbuilder_token): Don't leak
1892         name.
1893
1894         * reflection.c (mono_image_get_ctorbuilder_token): Same.
1895
1896         * reflection.c (mono_image_create_method_token): Same.
1897
1898 2008-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
1899
1900         * reflection.c: Added mono_image_get_methodref_token_for_methodbuilder.
1901         It does the same as mono_image_get_methodref_token but works on
1902         MethodBuilder.
1903
1904         * reflection.c: Use mono_image_get_methodspec_token_for_generic_method_definition
1905         and always generate a methodspec. This follows the old behavior and fixes
1906         the regressions in System.Core. 
1907
1908 2008-06-24  Zoltan Varga  <vargaz@gmail.com>
1909
1910         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Collect exceptions for classes where 
1911         don't event mono_class_get () succeeds. Fixes #402182.
1912
1913 2008-06-20 Rodrigo Kumpera  <rkumpera@novell.com>
1914
1915         * metadata-internals.h: Added MonoDynamicImage::methodspec
1916         hashtable to store methodspec tokens created for MethodBuilders.
1917
1918         * reflection.c (mono_image_get_methodbuilder_token): Encode generic
1919         MethodBuilders as open instantiations if a methodspec was requested.
1920
1921         * reflection.c (fixup_method): Skip MethodBuilder with methodspec tokens.
1922
1923         * reflection.c (create_dynamic_mono_image): Create the methodspec hashtable.
1924
1925         * reflection.c (mono_dynamic_image_free): Release the methodspec hashtable.
1926
1927         Fixes bug #349190.
1928
1929 2008-06-20 Rodrigo Kumpera  <rkumpera@novell.com>
1930
1931         * loader.c (method_from_methodspec): Avoid crashing if the
1932         method lookup fails.
1933
1934 2008-06-20  Dick Porter  <dick@ximian.com>
1935
1936         * socket-io.c (get_socket_assembly): Cope with Moonlight network
1937         classes being in a different assembly.  Fixes bug 399184.
1938
1939 2008-06-20  Zoltan Varga  <vargaz@gmail.com>
1940
1941         * loader.c (mono_loader_init): Make this callable multiple times.
1942         (mono_dllmap_insert): Call mono_loader_init () so this works even before
1943         the runtime is initialized. Fixes #401755.
1944
1945 2008-06-19  Dick Porter  <dick@ximian.com>
1946
1947         * socket-io.c (convert_socketflags): Ignore SocketFlags.Partial.
1948         Fixes bug 349688.
1949
1950 2008-06-19  Dick Porter  <dick@ximian.com>
1951
1952         * socket-io.c:
1953         * icall-def.h: Implement Socket generic Send() and Receive()
1954         methods.  Fixes bug 395168.
1955
1956 2008-06-19  Kornél Pál  <kornelpal@gmail.com>
1957
1958         * icall-def.h, icall.c: Add ves_icall_System_Reflection_Module_GetHINSTANCE.
1959
1960         Contributed under MIT/X11 license.
1961
1962 2008-06-18  Martin Baulig  <martin@ximian.com>
1963
1964         * mono-debug.h (MONO_DEBUGGER_VERSION): Split into
1965         `MONO_DEBUGGER_MAJOR_VERSION' and `MONO_DEBUGGER_MINOR_VERSION';
1966         set to 80.0.  The debugger <-> runtime interface is now frozen as
1967         well.   
1968
1969         * mono-debug.c
1970         (mono_debug_debugger_version): Bump to 4.
1971
1972 2008-06-18  Martin Baulig  <martin@ximian.com>
1973
1974         * debug-mono-symfile.c
1975         (load_symfile): Don't check the minor version.
1976
1977         * debug-mono-symfile.h: Bump the version number to 50.0.
1978
1979 2008-06-18  Martin Baulig  <martin@ximian.com>
1980
1981         * debug-mono-symfile.c
1982         (load_symfile): Treat `MONO_SYMBOL_FILE_MINOR_VERSION' as a
1983         minimum required version.
1984
1985 2008-06-17 Rodrigo Kumpera  <rkumpera@novell.com>
1986
1987         * reflection.c (mono_custom_attrs_from_property): Fix support for
1988         retriveving cattrs of dynamic inflated generic types.
1989
1990         * reflection.c (mono_custom_attrs_from_event): Same.
1991
1992         * reflection.c (mono_custom_attrs_from_field): Same;
1993
1994         * reflection.c (typebuilder_setup_events): Same cattrs of events.
1995
1996         * loader.c (-mono_metadata_get_corresponding_field_from_generic_type_definition):
1997         Moved to metadata.c.
1998
1999         * metadata.c: New functions to retrive the equivalent field, event
2000         of property from the generic type definition.
2001
2002         * metadata-internals.h: Added new functions from metadata.c.
2003
2004 2008-06-17 Rodrigo Kumpera  <rkumpera@novell.com>
2005
2006         * reflection.c (mono_custom_attrs_from_builders): Mark MonoCustomAttrInfo
2007         to cached in a mempool is used.
2008
2009         * metadata.c (free_generic_class): In some situations field generic_info type
2010         is not properly dup'ed and leads to double free'ing.
2011
2012         Fixes #400643.
2013
2014 2008-06-17  Mark Probst  <mark.probst@gmail.com>
2015
2016         * marshal.c (mono_marshal_get_static_rgctx_invoke): Also handle
2017         this arguments (will be needed later for generic methods).
2018         Collect stats.
2019
2020 2008-06-17  Mark Probst  <mark.probst@gmail.com>
2021
2022         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal):
2023         Create a static RGCTX invoke wrapper for methods which require it.
2024
2025 2008-06-17  Mark Probst  <mark.probst@gmail.com>
2026
2027         * object.c, class-internals.h: New function for checking whether
2028         an individual field is special static.
2029
2030 2008-06-15  Zoltan Varga  <vargaz@gmail.com>
2031
2032         * metadata.c (mono_metadata_get_generic_param_row): Use bsearch instead of
2033         linear search since the table is sorted.
2034
2035         * gc.c (mono_gc_cleanup): Abort the finalizer thread more gracefully.
2036         Fixes #324180.
2037
2038 2008-06-14  Zoltan Varga  <vargaz@gmail.com>
2039
2040         * appdomain.c (unload_thread_main): Applied patch from Tim Howard 
2041         (timh@ict.om.org). Remove the timeouts when waiting for appdomains to unload.
2042
2043         * gc.c (mono_domain_finalize): Allow an infinite timeout.
2044
2045         * threads.c (mono_threads_abort_appdomain_threads): Ditto.
2046         
2047         * threads.c (mono_thread_request_interruption): Get rid of locking, use
2048         InterlockedCompareExchange to query and modify 
2049         thread->interruption_requested.
2050
2051         * object-internals.h (struct _MonoThread): Change interruption_requested
2052         to a gint32 so it can be modified by atomic operations. Add 
2053         'critical_region_level' from the managed side, change small_id to a guint32,
2054         add new set of 'unused' fields.
2055
2056         * appdomain.c: Bump corlib version.
2057
2058 2008-06-13  Zoltan Varga  <vargaz@gmail.com>
2059
2060         * class.c (mono_class_from_name): Search modules as well. Fixes
2061         #322332.
2062
2063 2008-06-13  Mark Probst  <mark.probst@gmail.com>
2064
2065         * generic-sharing.c: Code for maintaining the MRGCTX and MRGCTX
2066         templates.  Templates are generalized with an additional type_argc
2067         argument.  RGCTX templates have type_argc==0, MRGCTX templates
2068         have type_argc>0.
2069
2070         * domain-internals.h, domain.c: New hash table for looking up
2071         MRGCTXs.
2072
2073         * metadata.c, metadata-internals.h: Rename hash and equal
2074         functions for MonoGenericInst's and make them public.
2075
2076         * class-internals.h: New data structures for the MRGCTX.  Macros
2077         for distinguishing slots in the RGCTX and the MRGCTX.
2078
2079 2008-06-13  Mark Probst  <mark.probst@gmail.com>
2080
2081         * object.c (mono_method_get_imt_slot): Put the same methods of
2082         different instantiations of the same generic interface in the same
2083         IMT slots, to make generic sharing simpler.
2084
2085 2008-06-12 Rodrigo Kumpera  <rkumpera@novell.com>
2086
2087         * metadata-internals.h: Added mono_metadata_field_info_with_mempool.
2088
2089         * metadata.c (mono_metadata_field_info_with_mempool): Added.
2090         This function works just like mono_metadata_field_info, but
2091         accept a mempool as argument to be used allocating memory.
2092
2093         * marshal.c (mono_marshal_load_type_info): Use new function
2094         to load marshal data into image mempool.
2095
2096 2008-06-12 Rodrigo Kumpera  <rkumpera@novell.com>
2097
2098         * class.c (mono_class_inflate_generic_type_with_mempool):
2099         This function allows to inflate a generic type using
2100         a mempool.
2101
2102         * class.c (inflate_generic_type): Take a mempool as argument
2103         and use it to do type dup'ing.
2104
2105         * class.c (mono_class_setup_fields): Field type for generic
2106         generic classes are allocated from the image mempool.
2107
2108         * metadata.c (free_generic_class): Inflated field type is
2109         now allocated in the image mempool.
2110
2111 2008-06-12 Rodrigo Kumpera  <rkumpera@novell.com>
2112
2113         * threads.c (thread_cleanup): Free MonoThread::name.
2114
2115 2008-06-12  Marek Habersack  <mhabersack@novell.com>
2116
2117         * appdomain.c (ensure_directory_exists): avoid unnecessary
2118         mkdir(2) calls when the shadow directory already exists.
2119         (mono_make_shadow_copy): copy also satellite assemblies from the
2120         private bin directories.
2121
2122 2008-06-11  Zoltan Varga  <vargaz@gmail.com>
2123
2124         * threads.c (mono_thread_get_stack_bounds): Align the stack in all cases.
2125         
2126         * threads.c (mono_thread_get_stack_bounds): Align the stack address to
2127         a page boundary. Fixes #396219.
2128
2129 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
2130
2131         * marshal.c (mono_marshal_load_type_info): Add a memory barrier
2132         due to double-checked locking.
2133
2134 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
2135
2136         * assembly.c (build_assembly_name): Release memory on failure.
2137
2138         * assembly.c (mono_assembly_name_parse_full): Release memory on failure.
2139
2140 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
2141
2142         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Release
2143         memory on failure.
2144
2145 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
2146
2147         * icall.c (ves_icall_System_Reflection_AssemblyName_ParseName): Release
2148         memory on failure.
2149
2150 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
2151
2152         * loader.c (field_from_memberref): Check if field signature type is equal
2153         to the non-inflated type of the field. Fixes #398980.
2154
2155 2008-06-11  Zoltan Varga  <vargaz@gmail.com>
2156
2157         * assembly.c (mono_assembly_load_from_full): Call 
2158         mono_assembly_load_friends () outside the assemblies lock, since it can
2159         acquire the loader lock. Fixes #323696.
2160
2161         * reflection.c (resolve_object): Inflate the inst with the context for
2162         FieldOnTypeBuilderInst. Fixes #399010.
2163
2164 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
2165
2166         * reflection.c (mono_image_get_field_on_inst_token): Don't
2167         inflate the field to encode it's signature. If it's a
2168         VAR or MVAR it should stay that way in the signature.
2169         Fixes #399047.
2170
2171 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
2172
2173         * reflection.c (resolve_object): Release memory of inflated types.
2174
2175 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
2176
2177         * loader.c (mono_method_get_signature_full): Remove assert about
2178         loading a methodspec to a generic method. We have such methods, such as
2179         System.Threading.Interlocked::CompareExchange<T>.
2180         This assert was removed since it crashes the verifier when it checks
2181         methods calling CompareExchange<T>.
2182
2183 2008-06-10  Marek Safar  <marek.safar@gmail.com>
2184
2185         * icall.c (ves_icall_MonoMethod_GetGenericArguments): Creates an instance
2186         of Type array and not MonoType.
2187
2188 2008-06-10  Marek Habersack  <mhabersack@novell.com>
2189
2190         * profiler.c: fix a segfault on shutdown. Patch from Paolo Molaro
2191         <lupus@ximian.com>
2192
2193 2008-06-10  Martin Baulig  <martin@ximian.com>
2194
2195         * debug-mono-symfile.h
2196         (MONO_SYMBOL_FILE_MINOR_VERSION): Bump to 6.  There were no
2197         changes to the file format, but we were generating incorrect
2198         source file indices in the line number table due to a bug, which
2199         made backtraces report an incorrect source file.
2200
2201 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
2202
2203         * mono-debug.c: Moved mono_debug_free_method_jit_info from
2204         mini/debug-mini.c to here.
2205
2206         * mono-debug.c (il_offset_from_address): Free memory from find_method.
2207
2208         * mono-debug.h: Export mono_debug_free_method_jit_info, users should
2209         use it to release structs returned by mono_debug_find_method.
2210
2211 2008-06-10  Zoltan Varga  <vargaz@gmail.com>
2212
2213         * class.c (mono_class_setup_vtable): Call setup_methods even for interfaces
2214         since it needs to set method->slot for all interface methods.
2215
2216 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
2217
2218         * class-internals.h: Forgot to add.
2219
2220 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
2221
2222         * class-internals.h: Added MONO_PROP_DYNAMIC_CATTR.
2223
2224         * reflection.c (lookup_custom_attr): Added a MonoImage argument.
2225         Lookup the custom attributes from property_hash.
2226
2227         * reflection.c (mono_save_custom_attrs): Save the custom attributes
2228         in property_hash. Allocate all data using the image mempool.
2229
2230         * reflection.c: Removed dynamic_custom_attrs. Changed all checks
2231         for dynamic_custom_attrs to checks if the image is dynamic.
2232
2233 2008-06-09  Zoltan Varga  <vargaz@gmail.com>
2234
2235         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Free the
2236         assemblies array.
2237         
2238         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Avoid calling
2239         runtime functions while holding the domain assemblies lock.
2240
2241 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
2242
2243         * verify.c: Reapplied the last bit of the reverted changes.
2244
2245 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
2246
2247         * verify.c: Reapplied more of the reverted changes.
2248
2249 2008-06-09  Martin Baulig  <martin@ximian.com>
2250
2251         * debug-mono-symfile.c (load_symfile): Check the major version
2252         first; if it's wrong, don't print the minor version in the error message.
2253
2254 2008-06-09  Zoltan Varga  <vargaz@gmail.com>
2255
2256         * appdomain.c (set_domain_search_path): Make this use the domain assemblies
2257         lock instead of the domain lock to avoid deadlocks, since the thread might
2258         already hold the loader lock.
2259
2260         * threads.c (start_wrapper): Call mono_monitor_init_tls ().
2261         (mono_thread_attach): Ditto.
2262
2263         * monitor.c: Use a TLS variable for holding the current thread id instead
2264         of calling pthread_self ().
2265         (mono_monitor_init_tls): New internal function to initialize the TLS
2266         variable.
2267         (mono_monitor_try_enter_internal): Put the owner == id check after the
2268         owner == 0 check.
2269
2270         * object-internals.h (_G_BOOLEAN_EXPR): Redefine this glib macro to avoid
2271         missed optimizations when using gcc-4.3.
2272
2273 2008-06-08 Rodrigo Kumpera  <rkumpera@novell.com>
2274
2275         * reflection.c (mono_dynamic_image_free): Free the memory
2276         used by MonoGenericParam in MonoDynamicImage::gen_param.
2277
2278         * reflection.c (mono_reflection_setup_generic_class): Allocate
2279         container from mempool.
2280
2281         * reflection.c (mono_reflection_initialize_generic_parameter): Allocate
2282         container from mempool.
2283
2284 2008-06-07  Zoltan Varga  <vargaz@gmail.com>
2285
2286         * threads.c (mono_set_pending_exception): New internal function to set the
2287         pending exception of the current thread.
2288         (mono_thread_get_and_clear_pending_exception): Check for 
2289         thread->pending_exception as well.
2290
2291         * object-internals.h (struct _MonoThread): Add 'pending_exception' field.
2292
2293         * boehm-gc.c (mono_gc_base_init): Set GC_no_dls before calling GC_init () since
2294         it can trigger a collection.
2295
2296 2008-06-06  Martin Baulig  <martin@ximian.com>
2297
2298         Merged the `debugger-kahalo' branch.
2299
2300         * mono-debug.h
2301         (MONO_DEBUGGER_VERSION): Bumped to 72.
2302
2303         * debug-mono-symfile.h
2304         (MonoSymbolFileMethodIndexEntry): Removed.
2305         (MonoSymbolFileMethodEntry): New public typedef.
2306         (MonoSymbolFileOffsetTable): Added `_is_aspx_source'.
2307         (MonoSymbolFileSourceEntry): Remove everything except `index' and
2308         `data_offset'.
2309         (MonoSymbolFileMethodEntry): Removed.
2310         (MonoSymbolFileLexicalBlockEntry): Removed.
2311         (MonoSymbolFileLineNumberEntry): Removed.
2312         (MonoDebugLexicalBlockEntry): Removed.
2313         (MonoDebugMethodInfo): Replaced `entry' by `guint32 entry_offset';
2314         removed `num_il_offsets' and `il_offsets'.
2315         (MonoSymbolFile): Replace `version' with `major_version' and
2316         `minor_version'.
2317         (MONO_SYMBOL_FILE_VERSION): Replace with
2318         `MONO_SYMBOL_FILE_MAJOR_VERSION' and
2319         `MONO_SYMBOL_FILE_MINOR_VERSION'.
2320
2321         * debug-mono-symfile.c
2322         (mono_debug_symfile_lookup_location): Add support for the new line
2323         number table format.
2324
2325 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
2326
2327         * metadata.c (free_generic_class): Release the inflated
2328         MonoClass of dynamic generic classes if it's not a generic
2329         type definition.
2330
2331 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
2332
2333         * verify.c: Reapplied more of the reverted changes.
2334
2335 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
2336
2337         * reflection.c (lookup_custom_attr): Clean the cached flag or
2338         nobody will free it. Fixes a memleak in MonoCustomAttrs::IsDefinedInternal
2339         for SRE types.
2340
2341 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
2342
2343         * verify.c: Reapplied a small part of the reverted changes.
2344
2345 2008-06-07  Zoltan Varga  <vargaz@gmail.com>
2346
2347         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2348
2349         * monitor.c (mono_monitor_try_enter_internal): Add NULL check which was 
2350         previously in managed code.
2351         (mono_monitor_exit): Ditto.
2352         (ves_icall_System_Threading_Monitor_Monitor_exit): Removed, not needed anymore.
2353
2354         * icall-def.h: Rename the Enter/Exit icalls to simply Enter/Exit to match
2355         the managed definition.
2356
2357 2008-06-06 Rodrigo Kumpera  <rkumpera@novell.com>
2358
2359         * verify.c: Revert changes to see if it helps with weird buildbot crashes.
2360
2361 2008-06-06  Zoltan Varga  <vargaz@gmail.com>
2362
2363         * monitor.c: Redefine GetCurrentThreadId () with a macro on !win32.
2364         
2365         * monitor.c: Add some micro optimizations.
2366
2367         * icall.c (type_from_typename): Handle 'bool'.
2368
2369 2008-06-06 Rodrigo Kumpera  <rkumpera@novell.com>
2370
2371         * verify.c: Implement constructor verification per P III 1.8.1.4.
2372         Fixes #396716.
2373
2374 2008-06-06  Zoltan Varga  <vargaz@gmail.com>
2375
2376         * assembly.c (mono_assembly_loaded_full): Avoid calling the search hooks while
2377         holding the assemblies lock here too.
2378
2379 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
2380
2381         * verify.c: Kill stack_top function.
2382
2383 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
2384
2385         * verify.c: Kill stack_get function.
2386
2387 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
2388
2389         * verify.c (mono_method_verify): Last change broke the build. Fixed.
2390
2391 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
2392
2393         * verify.c (verify_type_compatibility_full): Make SZARRAY checks
2394         more reliable.
2395
2396         * verify.c (mono_method_verify): Inflate params and locals to avoid
2397         mismatch when checking for compatibility.
2398
2399 2008-06-05  Jonathan Chambers  <joncham@gmail.com>
2400
2401         * metadata.c (mono_string_from_bstr): Fix BSTR marshalling.
2402         Length prefix should be size in bytes. Fix bug #339530.
2403         
2404         * metadata.c (mono_string_to_bstr): Fix BSTR marshalling.
2405         Length prefix should be size in bytes. Fix bug #339530.
2406
2407         Code is contributed under MIT/X11 license.
2408
2409 2008-06-05  Bill Holmes <billholmes54@gmail.com>
2410
2411         * decimal.c:  Adding MSVC implementation to my_g_bit_nth_msf.
2412
2413         Contributed under MIT/X11 license.
2414
2415 2008-06-05  Martin Baulig  <martin@ximian.com>
2416
2417         * mono-debug-debugger.c
2418         (mono_debugger_check_breakpoints): Reflect latest runtime changes.
2419
2420 2008-06-05  Zoltan Varga  <vargaz@gmail.com>
2421
2422         * assembly.c (mono_assembly_load_from_full): Avoid calling the search hooks
2423         while holding the assemblies lock to prevent deadlocks. Handle the case
2424         where the search hook returns NULL but the assembly was still loaded.
2425         Fixes #323696.
2426
2427         * appdomain.c (set_domain_search_path): Acquire the domain lock since we
2428         modify domain state.
2429
2430 2008-06-05  Andreas Färber  <andreas.faerber@web.de>
2431
2432         * boehm-gc.c: Add DTrace probes gc-{begin,end}.
2433         * Makefile.am (pedump_LDADD): Post-process object files and
2434         add dtrace-generated object file, if necessary.
2435
2436         Code is contributed under MIT/X11 license.
2437
2438 2008-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
2439
2440         * reflection.c (mono_dynamic_image_free): Free MonoDynamicImage::public_key.
2441
2442 2008-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
2443
2444         * class.c (mono_type_get_full): Add a work-around for generic type definitions.
2445
2446 2008-06-04  Mark Probst  <mark.probst@gmail.com>
2447
2448         * threads.c: Try to free everything from the delayed free table
2449         when shutting down threads, and set the variable to NULL after the
2450         table is freed so that calling
2451         mono_thread_hazardous_try_free_all() when shutting down the root
2452         domain doesn't crash.
2453
2454 2008-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
2455
2456         * class.c (mono_type_retrieve_from_typespec): Add an argument to inform
2457         the caller if resulting type was inflated.
2458
2459         * class.c (mono_class_create_from_typespec): Free the MonoType if it
2460         was inflated.
2461
2462         * class.c (mono_type_get_full): Free the MonoType if it was inflated.
2463
2464
2465 2008-06-04  Zoltan Varga  <vargaz@gmail.com>
2466
2467         * decimal.c (rescale128): Rework the code a bit so it no longer crashes the
2468         class library tests.
2469
2470         * icall.c (ves_icall_InternalInvoke): Applied patch from Andy Hume 
2471         (andyhume32@yahoo.co.uk). Add more useful exception messages. Fixes
2472         #396989.
2473
2474 2008-06-04  Mark Probst  <mark.probst@gmail.com>
2475
2476         * domain.c, domain-internals.h: The JIT infos are now freed by the
2477         JIT info table code.  They are freed immediately if there only a
2478         single JIT info table in circulation.  If there is more, the free
2479         is delayed via a queue.
2480
2481         * threads.c, threads-types.h: New hazard pointer function for
2482         freeing all freeable delayed items in one sitting.
2483
2484 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
2485
2486         * reflection.c (typebuilder_setup_fields): Use mempool for allocations.
2487
2488         * reflection.c (typebuilder_setup_properties): Same.
2489
2490         * reflection.c (typebuilder_setup_events): Same.
2491
2492 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
2493
2494         * reflection.c (mono_custom_attrs_from_builders): Receive a MonoMemPool
2495         and use it for allocating memory.
2496
2497         * reflection.c (mono_marshal_spec_from_builder): Same.
2498
2499         * reflection.c: Change code to use new signatures.
2500
2501         * metadata.c (mono_metadata_type_dup): Add a FIXME note.
2502
2503 2008-06-03  Zoltan Varga  <vargaz@gmail.com>
2504
2505         * decimal.c (rescale128): Put back one line which was accidently commented
2506         out.
2507         
2508         * decimal.c (rescale128): Disable the code added by the last patch, as it seems
2509         to cause crashes.
2510
2511 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
2512
2513         * reflection.c (mono_reflection_generic_class_initialize): Name must
2514         be always malloc'ed so we can free it later on. Do this for field, property
2515         and event.
2516
2517         * metadata.c (free_generic_class): Free field, property and event names.
2518
2519 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
2520
2521         * reflection.c (fieldbuilder_to_mono_class_field): Use mono_metadata_type_dup
2522         instead of g_memdup.
2523
2524         * reflection.c (typebuilder_setup_fields): Same.
2525
2526 2008-06-03  Zoltan Varga  <vargaz@gmail.com>
2527
2528         * decimal.c (rescale128): Optimize this function a bit more.
2529
2530 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
2531
2532         * metadata.c (free_generic_class): Release some memory from
2533         SRE generic classes.
2534
2535 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
2536
2537         * reflection.c (mono_image_get_generic_field_token): No reference
2538         to name is kept, free it.
2539
2540         * reflection.c (mono_reflection_generic_class_initialize): Free
2541         more memory of the inflated field.
2542
2543 2008-06-03  Zoltan Varga  <vargaz@gmail.com>
2544
2545         * decimal.c (mono_decimalDiv): Moved equality checks here from managed
2546         code.
2547
2548 2008-06-02 Rodrigo Kumpera  <rkumpera@novell.com>
2549
2550         * reflection.c (mono_dynamic_image_free): Release memory used by
2551         MonoDynamicImage::array_methods elements.
2552
2553         * reflection.c (assembly_add_win32_resources): Release memory after
2554         encoding.
2555
2556 2008-06-02  Zoltan Varga  <vargaz@gmail.com>
2557
2558         * decimal.c (log2_32): Use an optimized version for this function too.
2559         
2560         * decimal.c (log2_64): Fix this on 32 bit machines.
2561
2562 2008-06-02 Rodrigo Kumpera  <rkumpera@novell.com>
2563
2564         * class.c (mono_dup_array_type): Implement allocation using a mempool.
2565
2566         * class.c (mono_metadata_signature_deep_dup): Same.
2567
2568         * metadata.c (mono_metadata_signature_dup_full): Added, allow dup'ng with
2569         a mempool.
2570
2571         * metadata.c (mono_metadata_signature_dup): Delegate to the _full version.
2572
2573         * metadata.c (mono_metadata_type_dup): Remove asserts and FIXME.
2574
2575         * metadata-internals.h: Added mono_metadata_signature_dup_full.
2576
2577         * class-internals.h: Update signatures to take a MonoMemPool.
2578
2579 2008-06-02  Dick Porter  <dick@ximian.com>
2580
2581         * icall.c (ves_icall_System_ComponentModel_Win32Exception_W32ErrorMessage): 
2582         * icall-def.h: Add
2583         System.ComponentModel.Win32Exception.W32ErrorMessage, using the
2584         FormatMessage API to get the error text.  Fixes bug 321827.
2585
2586 2008-06-02  Zoltan Varga  <vargaz@gmail.com>
2587
2588         * decimal.c: Add some micro optimizations to make decimal operations faster.
2589
2590 2008-06-01 Rodrigo Kumpera  <rkumpera@novell.com>
2591
2592         * reflection.c (method_encode_clauses): Take a mempool
2593         as parameter and use it to allocate the clause array.
2594
2595         * reflection.c (mono_image_get_field_on_inst_token): Free
2596         the inflated type after encoding it.
2597
2598         * reflection.c (mono_dynamic_image_free): Free each element
2599         of MonoDynamicImage::gen_params.
2600
2601         * reflection.c (reflection_methodbuilder_to_mono_method):
2602         Allocate the generic param array from the mempool.
2603         Allocate signature params from the mempool.
2604
2605         * reflection.c (mono_reflection_generic_class_initialize):
2606         Free inflated fields after been used.
2607
2608 2008-05-30 Rodrigo Kumpera  <rkumpera@novell.com>
2609
2610         * icall.c: Reapply the memory leak fixes as they no
2611         longer make mono crash.
2612
2613 2008-05-30 Rodrigo Kumpera  <rkumpera@novell.com>
2614
2615         * reflection.c (mono_type_get_object): Don't store the suplied
2616         MonoType with type_hash. A caller which pass a type that
2617         was mono_metadata_type_dup'ed cannot free it reliably, as type_hash
2618         might end with a pointer to freed memory.
2619         The solution is to use byval_arg or this_arg from the associated
2620         MonoClass of the supplied type.
2621
2622 2008-05-29  Zoltan Varga  <vargaz@gmail.com>
2623
2624         * icall.c: Revert the rest of the last change as it breaks the build too.
2625
2626 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
2627
2628         * icall.c: Revert a leak fix as it's breaking the build.
2629
2630 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
2631
2632         * appdomain.c (mono_make_shadow_copy): Fix another leak of dir_name.
2633
2634 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
2635
2636         * appdomain.c (mono_make_shadow_copy): We leaked dir_name.
2637
2638 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
2639
2640         * icall.c: Fix some memory leaks.
2641
2642 2008-05-29  Dick Porter  <dick@ximian.com>
2643
2644         * threadpool.c (mono_thread_pool_remove_socket): Always remove the
2645         async socket operations from the pending list when a socket
2646         closes.  Leaving it until the threadpool services the event
2647         exposes a race condition when a socket descriptor is reused.
2648         Fixes bug 377589.
2649
2650 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
2651
2652         * object.c: Fix negative index check for array alocation.
2653
2654 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
2655
2656         * icall.c, marshal.c: Delegate wrappers should skip visibility.
2657         This check is performed by the verifier for IL created delegates
2658         and by Delegate::CreateDelegate for programatically created ones.
2659         Fixes #372406.
2660
2661 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
2662
2663         * sockey-io.c (ves_icall_System_Net_Sockets_Socket_Select_internal):
2664         Fix code to use mono_array_size_t instead of int.
2665
2666         Based on patch by Luis F. Ortiz.
2667         Contributed under X11 license.
2668         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
2669
2670 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
2671
2672         * icall.c: Added ves_icall_System_Array_GetLongLength and
2673         ves_icall_System_Array_CreateInstanceImpl64. Both allow handling big
2674         arrays.
2675
2676         * icall.h: Export both new functions.
2677
2678         Based on patch by Luis F. Ortiz.
2679         Contributed under X11 license.
2680         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
2681
2682 2008-05-28  Martin Baulig  <martin@ximian.com>
2683
2684         The debugger now requires exactly r103463.
2685
2686         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 71.
2687         This version is not supported by the debugger, wait for 72.
2688
2689 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
2690
2691         * object.h: Changed array related functions to use
2692         mono_array_size_t instead of guint32. Forgot to commit this file.
2693
2694         Patch by Luis F. Ortiz.
2695         Contributed under X11 license.
2696         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
2697
2698
2699 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
2700
2701         * object.h: Don't use G_MAXINT32 or G_MAXUINT32 as old glibs
2702         don't define it. Use the number literal instead.
2703
2704 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
2705
2706         * icall.c: Changed array related functions to use
2707         mono_array_size_t instead of guint32.
2708
2709         * icall.c (ves_icall_System_Array_GetLength): Check for length
2710         overflow under MONO_BIG_ARRAYS.
2711
2712         Based on patch by Luis F. Ortiz.
2713         Contributed under X11 license.
2714         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
2715
2716 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
2717
2718         * object.c: Add 64bits bounds check for arrays under MONO_BIG_ARRAYS.
2719
2720         Based on patch by Luis F. Ortiz.
2721         Contributed under X11 license.
2722         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
2723
2724 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
2725
2726         * object.c, object.h: Changed array related functions to use
2727         mono_array_size_t instead of guint32.
2728
2729         Patch by Luis F. Ortiz.
2730         Contributed under X11 license.
2731         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
2732
2733 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
2734
2735         * object.h: Introduced mono_array_size_t typedef. This must be used
2736         in all places an array length is expected. This is 64bits wide if
2737         MONO_BIG_ARRAYS is enabled.
2738
2739         Patch by Luis F. Ortiz.
2740         Contributed under X11 license.
2741         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
2742
2743 2008-05-27  Zoltan Varga  <vargaz@gmail.com>
2744
2745         * security-manager.c class.c: Set the class exception info by calling
2746         mono_class_set_failure ().
2747
2748         * class.c (mono_class_get_exception_data): New accessor function.
2749         (mono_class_set_failure): Store exception_data in the property hash.
2750
2751         * class-internals.h (struct _MonoClass): Store 'exception_data' outside
2752         the struct as a property.
2753
2754         * loader.c (mono_get_method_full): Store the lookup result for method
2755         tokens in method_cache, the others in methodref_cache to decrease the memory
2756         usage of hash tables.
2757
2758         * image.c (mono_image_close): Destroy method_cache and methodref_cache.
2759         (mono_image_init): method_cache is lazy inited now.
2760
2761         * metadata-internals.h (struct _MonoImage): Change method_cache to
2762         a MonoValueHashTable, add a separate methodref_cache.
2763
2764 2008-05-27  Eyal Alaluf <eyala@mainsoft.com>
2765
2766         * number-formatter.h: Fix tables to avoid arithemtic overflow in
2767           Double.ToString as exposed by Bug #383531.
2768
2769 2008-05-26  Zoltan Varga  <vargaz@gmail.com>
2770
2771         * number-formatter.h: Make some tables static.
2772
2773         * class.c (mono_method_set_generic_container): New accessor function.
2774         (mono_method_get_generic_container): Ditto.
2775
2776         * class-internals.h (struct _MonoMethod): Remove rarely used 
2777         'generic_container' field, store it in the property hash instead. Add 
2778         'is_generic' boolean field instead.
2779
2780         * image.c (mono_image_init): Initialize property_hash.
2781         (mono_image_close): Destroy property_hash.
2782
2783         * metadata-internals.h (struct _MonoImage): Add 'property_hash' hash table to
2784         hold rarely used fields of runtime structures belonging to this image.
2785
2786         * class.c loader.c verify.c icall.c reflection.c: Use the new accessor functions
2787         to get/set method->generic_container.
2788
2789         * loader.c (mono_get_method_from_token): Avoid loading the method header for
2790         generic methods.
2791
2792 2008-05-25  Zoltan Varga  <vargaz@gmail.com>
2793
2794         * class.c (mono_class_inflate_generic_method_full): Don't increase
2795         mono_stats.inflated_method_count for methods found in the cache.
2796
2797         * threads.c (mono_thread_request_interruption): Add a comment about 
2798         QueueUserAPC ().
2799
2800 2008-05-24  Zoltan Varga  <vargaz@gmail.com>
2801
2802         * class.c (setup_interface_offsets): Use sizeof (guint16) when allocating the
2803         interface_offsets_packed table.
2804         
2805         * class.c (mono_class_init): Remove some dead code.
2806
2807         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Call
2808         mono_class_setup_vtable () when CAS is active to detect security problems.
2809
2810 2008-05-23 Rodrigo Kumpera  <rkumpera@novell.com>
2811
2812         * verify.c (mono_delegate_type_equal): Handle VAR, MVAR and GENERICINST.
2813
2814         * verify.c (mono_delegate_signature_equal): Don't compar number of generic
2815         parameters as it's irrelevant for delegate checking.
2816
2817 2008-05-23  Zoltan Varga  <vargaz@gmail.com>
2818
2819         * class-internals.h class.c: Correct the name of the 'mono_no_setup_vtable_in_class_init' variable.
2820
2821         * class.c (mono_class_init): Control the creation of a generic vtable using
2822         a global which is true by default, but set to false by the runtime startup code.
2823         
2824         * class.c (mono_class_init): Avoid constructing a generic vtable in most cases.
2825         Disabled for now since it breaks the embedding API.
2826         Move the setup of class->methods for arrays to mono_class_setup_methods ().
2827         (mono_class_setup_methods): Add a memory barrier.
2828
2829         * object.c (mono_class_create_runtime_vtable): Add code to handle the case
2830         when mono_class_init () doesn't compute the generic vtable.
2831         
2832 2008-05-23  Massimiliano Mantione  <massi@ximian.com>
2833         * profiler.c: Added mono_profiler_install_statistical_call_chain,
2834         mono_profiler_stat_get_call_chain_depth and mono_profiler_stat_call_chain
2835         to support call chains (backtrace) in the stat profiler.
2836         * profiler.c, profiler-private.h: Likewise.
2837
2838 2008-05-22  Mark Probst  <mark.probst@gmail.com>
2839
2840         * generic-sharing.c: Init generic class when a method of it is
2841         requested via a runtime generic context.
2842
2843 2008-05-22  Zoltan Varga  <vargaz@gmail.com>
2844
2845         * class.c (mono_class_init): Add a comment about trying to avoid calling this.
2846
2847         * reflection.c (mono_type_get_object): Add a FIXME.
2848
2849         * loader.c (find_method_in_class): Use mono_class_get_method_by_index ().
2850
2851         * class.c (mono_class_get_method_by_index): New helper function, returning an
2852         entry in the class->methods array.
2853
2854 2008-05-21  Zoltan Varga  <vargaz@gmail.com>
2855
2856         * class.c (mono_class_init): Only do the array optimization for szarrays. 
2857         Avoid creating a generic vtable for generic instances as well.
2858         (mono_class_get_method_from_name_flags): Don't search in the metadata for
2859         generic instances.
2860
2861 2008-05-21 Rodrigo Kumpera  <rkumpera@novell.com>
2862
2863         * loader.c (mono_get_method_constrained): Inflate the signature
2864         with class context. Fix #325283.
2865
2866 2008-05-21  Zoltan Varga  <vargaz@gmail.com>
2867
2868         * object.c (mono_class_create_runtime_vtable): Add a comment.
2869
2870         * class.c (get_implicit_generic_array_interfaces): Call mono_class_init ()
2871         where needed.
2872         (setup_interface_offsets): Handle the case when this is called twice for arrays.
2873         (mono_class_setup_vtable_general): Add an assert.
2874         (mono_class_init): Avoid creating a generic vtable for arrays.
2875
2876         * class.c (mono_generic_class_get_class): Don't call setup_interface_offsets ()
2877         here, let mono_class_init () do that.
2878
2879         * class.c (mono_class_init): Avoid calling mono_class_setup_methods () for
2880         interfaces in mscorlib.
2881
2882         * class.c (mono_class_setup_vtable): Avoid calling setup_methods () for
2883         interfaces. Add some comments.
2884         (mono_class_init): Call mono_class_setup_methods () here since it is no
2885         longer called by mono_class_setup_vtable ().
2886
2887         * object.c (mono_class_proxy_vtable): Null out entries in pvt->vtable which are
2888         not set in class->vtable.
2889         (mono_class_create_runtime_vtable): Reenable the disabled code.
2890
2891         * object.c (mono_class_create_runtime_vtable): Disable the last change for
2892         now as it causes some test failures.
2893
2894         * object.c (mono_class_create_runtime_vtable): Avoid creating a generic vtable
2895         if using the vtable trampoline. Also remove some strange code which put the
2896         generic methods themselves into the vtable slots. Remove the AOT init_vtable
2897         stuff as it is no longer needed.
2898
2899 2008-05-19 Rodrigo Kumpera  <rkumpera@novell.com>
2900
2901         * pedump.c: Give make --verify all option check code as well.
2902         Using --verify code won't check for metadata now.
2903
2904 2008-05-19  Martin Baulig  <martin@ximian.com>
2905
2906         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 70.
2907
2908         * mono-debug.c
2909         (_mono_debug_using_mono_debugger): New global variable; it's set
2910         directly by the debugger, so mono_debug_using_mono_debugger() also
2911         works after attaching.
2912
2913 2008-05-18 Rodrigo Kumpera  <rkumpera@novell.com>
2914
2915         * object.c (mono_class_create_runtime_vtable): Use memory barriers
2916         as we do double checked locking on MonoClass::runtime_info and
2917         MonoClassRuntimeInfo::domain_vtables.
2918
2919 2008-05-18  Zoltan Varga  <vargaz@gmail.com>
2920
2921         * debug-helpers.c (print_field_value): Fix a warning.
2922
2923 2008-05-16  Zoltan Varga  <vargaz@gmail.com>
2924
2925         * object.c (mono_object_get_virtual_method): Fix a crash if method->slot is not
2926         set in the AOT case.
2927
2928 2008-05-16 Rodrigo Kumpera  <rkumpera@novell.com>
2929
2930         * class.c (mono_class_setup_vtable_general): Use memory barriers
2931         as we do double checked locking on MonoClass::vtable.
2932
2933 2008-05-16 Rodrigo Kumpera  <rkumpera@novell.com>
2934
2935         * reflection.c (resolve_object): Inflate only if the generic context
2936         is not null. Fixes #389886.
2937
2938 2008-05-15  Jonathan Chambers  <joncham@gmail.com>
2939
2940         * metadata.c (emit_marshal_string): Free return strings using mono_marshal_free
2941         instead of g_free.
2942
2943         Code is contributed under MIT/X11 license.
2944
2945 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
2946
2947         * class.c: Revert unrelated change.
2948
2949 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
2950
2951         * verify.c (check_is_valid_type_for_field_ops): Type on stack can be
2952         a generic instantiation, use mono_class_from_mono_type instead of playing
2953         with MonoType directly.
2954
2955 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
2956
2957         * class.c: Added mono_class_has_parent_and_ignore_generics. Visibility
2958         checks must ignore generic instantiations, so mono_class_has_parent is not
2959         suitable. Fixes #390128.
2960
2961 2008-05-14  Zoltan Varga  <vargaz@gmail.com>
2962
2963         * reflection.c (mono_image_create_token): Add a 'register_token' argument, and use
2964         it to avoid registering tokens during metadata generation. Fixes #390023.
2965
2966 2008-05-14  Kornél Pál  <kornelpal@gmail.com>
2967
2968         * coree.c: Rename dwOldProtect to OldProtect that makes naming convention
2969         consistent.
2970
2971         Contributed under MIT/X11 license.
2972
2973 2008-05-14  Kornél Pál  <kornelpal@gmail.com>
2974
2975         * domain.c (mono_init_internal): Enable LoadLibrary support. Load EXE image
2976         even when get_runtimes_from_exe didn't load it that allows mono_fixup_exe_image
2977         to fixup the EXE image.
2978         (mono_cleanup): Use mono_close_exe_image.
2979         (mono_close_exe_image): New function.
2980         * image.c: Include "marshal.h".
2981         (mono_image_open_from_module_handle): Add ref_count argument. Return the image.
2982         (mono_image_open_full, mono_image_close): Fix LoadLibrary/FreeLibrary reference
2983         counting when the image is loaded outside of mono_image_open_full. Set status
2984         based on GetLastError.
2985         * coree.c: Include required headers. Add init_from_coree.
2986         (_CorDllMain): Support fix in mono_image_open_full, mono_image_close. Call
2987         mono_assembly_open only when the image has vtfixups. Set init_from_coree.
2988         (_CorExeMain): Set init_from_coree.
2989         (CorExitProcess): Only call ExitProcess for now.
2990         (CorBindToRuntimeEx): New stub implementation.
2991         (CorBindToRuntime): New function.
2992         (MonoFixupCorEE): Fixup CorBindToRuntime and CorBindToRuntimeEx.
2993         (MonoFixupExe): ILONLY executables require no fixups.
2994         (mono_set_act_ctx): New function to set activation context.
2995         (mono_load_coree): Use init_from_coree. Call mono_set_act_ctx.  
2996         * coree.h: Move STATUS_SUCCESS and STATUS_INVALID_IMAGE_FORMAT to header.
2997         Declare mono_module_handle, coree_module_handle, mono_get_module_file_name,
2998         mono_load_coree, mono_fixup_exe_image and mono_image_open_from_module_handle
2999         as MONO_INTERNAL.
3000         * domain-internals.h: Add mono_close_exe_image.
3001
3002         Contributed under MIT/X11 license.
3003
3004 2008-05-13 Rodrigo Kumpera  <rkumpera@novell.com>
3005
3006         * metadata.c (mono_metadata_compute_size): Correctly calculate field
3007         size for generic param and event tables. Fixes #388977.
3008
3009 2008-05-13  Zoltan Varga  <vargaz@gmail.com>
3010
3011         * loader.c (mono_method_signature): Use memory barriers because of the double
3012         checked locking pattern.
3013
3014         * threads.c (remove_and_abort_threads): Stop and wait for threads which are
3015         aborting or aborted as well. Fixes #376391.
3016         
3017         * threads.c (mono_thread_execute_interruption): Avoid depending on no longer
3018         existing runtime state in the Suspend handler during shutdown.
3019
3020 2008-05-12  Zoltan Varga  <vargaz@gmail.com>
3021
3022         * threads.c (mono_thread_request_interruption): Add some FIXMEs.
3023
3024         * threads.c (mono_thread_suspend_all_other_threads): Add support for threads 
3025         which are starting up or shutting down.
3026
3027         * threads.c (mono_threads_set_shutting_down): Don't return a value since
3028         this function never returns if the runtime is already shutting down.
3029
3030         * icall.c (ves_icall_System_Environment_Exit): Update after 
3031         mono_threads_set_shutting_down () signature change.
3032         
3033 2008-05-09 Rodrigo Kumpera  <rkumpera@novell.com>
3034
3035         * class.c: Added can_access_instantiation to verify if the instantiation
3036         is visible. Fix access check for nested types as they returned TRUE
3037         before doing type and generic instantiation visibility checks.
3038
3039 2008-05-08 Rodrigo Kumpera  <rkumpera@novell.com>
3040
3041         * reflection.c (mono_reflection_create_generic_class): The created type
3042         must have a different container from its TypeBuilder. Otherwise they
3043         will end sharing generic arguments, which is wrong.
3044
3045         Due to the sharing, making a generic instance of the created type using
3046         the TypeBuider generic arguments resulted in the generic type definition
3047         been returned, which is wrong as well.
3048
3049         As a bonus the code was leaking the type_params array. This memory should
3050         be allocated from the image mempool.
3051
3052         This fixes bug #354047.
3053
3054 2008-05-08 Rodrigo Kumpera  <rkumpera@novell.com>
3055
3056         * metadata-internals.h: Move MONO_SECMAN_FLAG macros from mini/declsec.h
3057         to here         as they are now used in assembly.c new code.
3058         Added a skipverification flag to MonoAssembly.
3059         New internal function mono_assembly_has_skip_verification.
3060
3061         * assembly.c: New function mono_assembly_has_skip_verification. It checks
3062         if an assembly has a version 2.0 SkipVerification security attribute. Fixes
3063         part of #387274.
3064
3065 2008-05-07  Zoltan Varga  <vargaz@gmail.com>
3066
3067         * object.c (mono_object_get_virtual_method): Inflate the resulting method if
3068         needed. Fixes #387034.
3069
3070         * class.c (mono_class_inflate_generic_type): Avoid a crash if context is NULL.
3071
3072 2008-05-06  Miguel de Icaza  <miguel@novell.com>
3073
3074         * assembly.c (mono_assembly_load_reference): Prevent crash while
3075         disassembling Silverlight 2.0 executables while we still do not
3076         have GACed libraries.
3077
3078 2008-05-07  Zoltan Varga  <vargaz@gmail.com>
3079
3080         * reflection.c: Special case generic type definitions as well. Fixes #383444.
3081
3082 2008-05-06  Zoltan Varga  <vargaz@gmail.com>
3083
3084         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Fix handling
3085         of the dynamic case. Fixes #387404.
3086
3087 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
3088
3089         *verify.c (mono_verifier_is_class_full_trust): If under
3090         verify_all and the verifier mode was not set, only
3091         gac and corlib types are fulltrust. This makes --verify-all
3092         usable to detect unverifiable code, which is the expected
3093         use case.
3094
3095 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
3096
3097         * verify.h: Ops, commited the header with debug
3098         enabled.
3099
3100 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
3101
3102         * verify.c (merge_stack): Use the new value on unverifiable
3103         stack merges.
3104
3105         * verify.c (verify_type_compatibility_full): Comparison
3106         of nullable types can't use mono_class_is_assignable_from.
3107
3108         * verify.c, verify.h: Added MONO_VERIFY_REPORT_ALL_ERRORS
3109         that makes all verification errors be reported.
3110
3111         * pedump.c: Pass MONO_VERIFY_REPORT_ALL_ERRORS to
3112         mono_method_verify.
3113
3114 2008-05-05  Robert Jordan  <robertj@gmx.net>
3115
3116         * marshal.c (mono_marshal_get_thunk_invoke_wrapper):
3117         support for value types. See #386415.
3118
3119         * object.c: comments.
3120
3121         Code is contributed under MIT/X11 license.
3122
3123 2008-05-05  Martin Baulig  <martin@ximian.com>
3124
3125         * debug-mono-symfile.h
3126         (MONO_SYMBOL_FILE_COMPATIBILITY_VERSION): Removed; dropped support
3127         for old pre-terrania symbol files.
3128
3129 2008-05-05  Andreas Färber  <andreas.faerber@web.de>
3130
3131         * mono-config.c: Add ppc64 architecture.
3132
3133         Code is contributed under MIT/X11 license.
3134
3135 2008-05-05  Andreas Färber  <andreas.faerber@web.de>
3136
3137         * object.c (mono_create_ftnptr, mono_get_addr_from_ftnptr):
3138           PPC64 uses function descriptors as well.
3139
3140         Code is contributed under MIT/X11 license.
3141
3142 2008-05-04  Zoltan Varga  <vargaz@gmail.com>
3143
3144         * object.c (compute_class_bitmap): Ignore literal static fields.
3145
3146         * sgen-gc.c (mono_gc_base_init): Print some help when the MONO_GC_DEBUG env
3147         var has an invalid format.
3148         (describe_ptr): Add some sanity checks for the vtable.
3149         (add_nursery_frag): Clear unused nursery fragments.
3150         (major_collection): Clear all remaining nursery fragments.
3151
3152 2008-05-03  Robert Jordan  <robertj@gmx.net>
3153
3154         * image.c, metadata-internals.h: add thunk_invoke_cache.
3155
3156         * marshal.c, marshal.h: implement
3157         mono_marshal_get_thunk_invoke_wrapper ().
3158
3159         * object.c, object.h: implement mono_method_get_unmanaged_thunk ().
3160
3161         Code is contributed under MIT/X11 license.
3162
3163 2008-05-02 Rodrigo Kumpera  <rkumpera@novell.com>
3164
3165         * verify.c (do_leave): Empty the stack.
3166
3167 2008-05-02 Rodrigo Kumpera  <rkumpera@novell.com>
3168
3169         * class.c (mono_class_is_assignable_from): Variance
3170         doesn't work between reference and value types. For example,
3171         given type C<T+>, C<int32> is not assignable to C<object>.
3172         Break the argument checking loop on first error. 
3173
3174 2008-05-02  Atsushi Enomoto  <atsushi@ximian.com>
3175
3176         * icall.c : base64_to_byte_array() needs some more strict
3177           check for sequence of '=' characters. Patch by Santa
3178           Marta (http://deee.g.hatena.ne.jp/santamarta).
3179
3180           Contributed under MIT/X11 license.
3181           (see http://www.lingr.com/room/mono-jp/archives/2008/04/20)
3182
3183 2008-05-02  Jonathan Chambers  <joncham@gmail.com>
3184
3185         * domain.c: Disable LoadLibrary support to fix Win32 build.
3186
3187         Code is contributed under MIT/X11 license.
3188
3189 2008-05-02  Zoltan Varga  <vargaz@gmail.com>
3190
3191         * sgen-gc.c: Add support for clearing nursery memory when a tlab is allocated,
3192         to help with cache behaviour.
3193
3194 2008-05-01  Miguel de Icaza  <miguel@novell.com>
3195
3196         * appdomain.c (mono_domain_from_appdomain): Add new accessor
3197         method. 
3198
3199 2008-05-01  Zoltan Varga  <vargaz@gmail.com>
3200
3201         * sgen-gc.c: Implement thread-local allocation and a managed allocation routine.
3202
3203 2008-05-01  Dick Porter  <dick@ximian.com>
3204
3205         * process.c (process_get_fileversion): Only pass 16 bits of
3206         language ID to VerLanguageName.  Fixes bug 381204.
3207
3208 2008-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
3209
3210         * verify.c (mono_method_verify): Fix the comparison
3211         operator for code bounds check.
3212
3213 2008-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
3214
3215         * verify.c (mono_method_verify): Check the bounds of
3216         all access of the code array.
3217
3218 2008-04-29  Kornél Pál  <kornelpal@gmail.com>
3219
3220         * appdomain.c: Use HAVE_SYS_UTIME_H that fixes MSVC build.
3221
3222 2008-04-28  Zoltan Varga  <vargaz@gmail.com>
3223
3224         * image.c (mono_image_strong_name_position): Fix return value when the rva is
3225         not valid.
3226
3227 2008-04-28  Kornél Pál  <kornelpal@gmail.com>
3228
3229         * loader.c (mono_get_method_from_token, mono_method_signature): Add
3230         support for METHOD_IMPL_ATTRIBUTE_NATIVE.
3231         * domain.c (mono_init_internal): Load and fixup mscoree.dll on startup and
3232         fixup main EXE images when using mono.exe for mixed-mode assembly support.
3233         * domain-internals.h: Add MonoLoadFunc, mono_install_runtime_load and
3234         mono_runtime_load.
3235         * appdomain.c: Add mono_install_runtime_load, mono_runtime_load to support
3236         runtime initialization from metadata.
3237         * assembly.c: Remove obsolete ceGetModuleFileNameA.
3238         (mono_set_rootdir): Use mono_get_module_file_name.
3239         (mono_assembly_load_from_full): Call mono_image_fixup_vtable for module
3240         handles.
3241         * cil-coff.h: Add MonoVTableFixup. Update mono_cli_rva_image_map signature.
3242         * metadata-internals.h: Add is_module_handle to _MonoImage on Windows.
3243         * image.c (mono_cli_rva_image_map): Use MonoImage instead of
3244         MonoCLIImageInfo. Add support for module handles.
3245         (load_cli_header): Update mono_cli_rva_image_map signature.
3246         (load_metadata_ptrs): Update mono_cli_rva_image_map signature.
3247         (mono_image_strong_name_position): Use mono_cli_rva_image_map.
3248         (mono_image_rva_map): Add support for module handles.
3249         (mono_image_ensure_section_idx): Add support for module handles.
3250         (mono_image_close): Add support for module handles.
3251         (do_load_header): Add support for module handles.
3252         (mono_image_open_from_module_handle): New function for internal use.
3253         (mono_image_open_full): Load normal images using LoadLibrary on Windows.
3254         (mono_image_load_module): Call mono_image_fixup_vtable for module handles.
3255         (mono_image_load_file_for_image): Call mono_image_fixup_vtable for module
3256         handles.
3257         (mono_image_fixup_vtable): New function for mixed-mode assembly support.
3258         * image.h: Add mono_image_fixup_vtable.
3259         * coree.c: New file for mscoree.dll functions and mixed-mode assembly
3260         support.
3261         * coree.h: New file.
3262         * marshal.c (mono_marshal_get_native_wrapper): Throw exception for
3263         unsupported native code.
3264         (mono_marshal_set_callconv_from_modopt): New function splitted from
3265         mono_marshal_get_managed_wrapper.
3266         (mono_marshal_get_managed_wrapper): Use
3267         mono_marshal_set_callconv_from_modopt.
3268         (mono_marshal_get_vtfixup_ftnptr): New function for mixed-mode assembly support.
3269         * marshal.h: Add mono_marshal_get_vtfixup_ftnptr.
3270         * gc.c (mono_gc_init): Don't wait for the finalizer thread on Windows because
3271         that results in a deadlock when the runtime is loaded in _CorDllMain.
3272         * Makefile.am: Add coree.c and coree.h.
3273
3274         Contributed under MIT/X11 license.
3275
3276 2008-04-28  Mark Probst  <mark.probst@gmail.com>
3277
3278         * generic-sharing.c: Search for type arguments in array element
3279         types as well.
3280
3281 2008-04-28  Mark Probst  <mark.probst@gmail.com>
3282
3283         * class-internals.h, generic-sharing.c: New, small runtime generic context.
3284
3285         * metadata-internals.h, domain.c, image.c: Less bookkeeping is required for the new RGCTX.
3286
3287         * object.c: Don't setup the RGCTX when the vtable is created,
3288         because we're setting it up lazily now.
3289
3290 2008-04-26  Zoltan Varga  <vargaz@gmail.com>
3291
3292         * sgen-gc.c: Make the 'desc' variables an mword instead of a guint32 to fix 
3293         64 bit support.
3294
3295 2008-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
3296
3297         * verify.c (verify_class_for_overlapping_reference_fields): 
3298         If class is under fulltrust allow reference types to overllap
3299         if they have the same RVA.
3300
3301 2008-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
3302
3303         * pedump.c: Added new flag valid-only, that makes the verifier
3304         behaves just like --security=validil. It won't fail type load
3305         due to unverifiable restrictions.
3306
3307 2008-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
3308
3309         * class-internals.h (struct MonoMethod): Added a verification_success
3310         field to cache verifier executions. Reduced MonoMethod:slot size by
3311         one bit.
3312
3313 2008-04-23  Zoltan Varga  <vargaz@gmail.com>
3314
3315         * sgen-gc.c (OBJ_RUN_LEN_SIZE): Make this and other macros take a 'desc' argument
3316         instead of a 'vt' argument to save an indirection and to allow these to be used
3317         for valuetypes.
3318         (scan_vtype): New helper function to scan an area using a gc descriptor.
3319         (mono_gc_wbarrier_value_copy): Implement this.
3320         (handle_remset): Add support for REMSET_VTYPE.
3321         (find_in_remset_loc): Ditto.
3322         (mono_gc_base_init): Allow some debugging options to be controlled through the
3323         use of the MONO_GC_DEBUG env variable.
3324         (mono_gc_alloc_obj): Add support the 'collect-before-allocs' debug option.
3325         (collect_nursery): Add support for the 'check-at-minor-collection' debug option.
3326
3327 2008-04-23  Martin Baulig  <martin@ximian.com>
3328
3329         * domain.c (mono_domain_create): Move the call to
3330         mono_debug_domain_create() down, after allocating the domain id.
3331
3332 2008-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
3333
3334         verify.c (verify_class_for_overlapping_reference_fields): Skip
3335         static fields while verifying for overlapping fields as they
3336         don't matter at all.
3337
3338 2008-04-23  Marek Habersack  <mhabersack@novell.com>
3339
3340         * domain-internals.h: added a declaration of
3341         mono_make_shadow_copy.
3342
3343         * assembly.c (mono_assembly_open_full): shadow copying of
3344         assemblies moved to here, so that all the assemblies within the
3345         application domain's private binary directories can be
3346         processed. Fixes bug #380546
3347
3348         * appdomain.c (mono_make_shadow_copy): make_shadow_copy renamed to
3349         mono_make_shadow_copy and made non-static. The decision whether
3350         to shadow-copy an assembly is made based on its location - it's
3351         copied if it's in one of the private application domain binary
3352         directories and its different to the target file in the shadow
3353         directory. Fixes bug #380546
3354
3355 2008-04-22  Zoltan Varga  <vargaz@gmail.com>
3356
3357         * reflection.c (fixup_method): Handle {Method|Constructor}OnTypeBuilderInst.
3358
3359         * object-internals.h: Add MonoReflection{Method|Constructor}OnTypeBuilderInst
3360         types.
3361
3362         * reflection.c (mono_image_create_token): Handle 
3363         Method/ConstructorOnTypeBuilderInst.
3364         (resolve_object): Ditto.
3365         (inflate_mono_method): Receive the inflated class instead of a MonoGenericClass
3366         so it can be called from resolve_object. Also handle the case when the inflated
3367         class already has its methods setup.
3368
3369 2008-04-21  Martin Baulig  <martin@ximian.com>
3370
3371         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 69.
3372
3373 2008-04-20  Geoff Norton  <gnorton@novell.com>
3374
3375         * icall.c: Fix the _NSGetEnviron define to prevent an impropoer
3376         pointer dereference.
3377
3378 2008-04-15  Marek Habersack  <mhabersack@novell.com>
3379
3380         * appdomain.c (try_load_from): if IOMAP is in effect, call the
3381         portability API to look up the assembly file. Fixes behavior in
3382         situations when the application has a bin/ directory, but the
3383         assembly search patch refers to Bin/ (and thus the requested file
3384         name is Bin/SomeLibrary.dll). Fixes bug #379888
3385
3386 2008-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
3387
3388         verify.c (mono_type_is_generic_argument): Extracted this check
3389         from a dozen places to here.
3390
3391         verify.c: Fixed all issues related to boxing generic arguments
3392         and their constraints.
3393
3394 2008-04-14 Rodrigo Kumpera  <rkumpera@novell.com>
3395
3396         verify.c (mono_class_interface_implements_interface): Fix win32 build.
3397
3398 2008-04-14  Zoltan Varga  <vargaz@gmail.com>
3399
3400         * reflection.c (mono_custom_attrs_construct): Fix crash when the cattr type
3401         isn't finished yet. Fixes #363447.
3402
3403 2008-04-13  Zoltan Varga  <vargaz@gmail.com>
3404
3405         * class.c (mono_bounded_array_class_get): Fix the name of bounded array types.
3406         Fixes #346419.
3407
3408 2008-04-13  Jb Evain  <jbevain@novell.com>
3409
3410         * domain.c: update the 2.1 profile versions.
3411         Merged from the Moonlight 2 branch.
3412
3413 2008-04-12  Zoltan Varga  <vargaz@gmail.com>
3414
3415         * assembly.c (mono_assembly_load_from_full): Do the check for loading other
3416         mscorlibs for the non-refonly case as well.
3417
3418         * image.c (do_mono_image_load): Remove the mscorlib check, it is already done
3419         in mono_assembly_load_from_full (). Fixes #378924.
3420
3421 2008-04-11  Geoff Norton  <gnorton@novell.com>
3422
3423         * icall.c: The global extern environ doesn't exist on Mac.  We
3424         need to call NSGetEnviron instead.
3425
3426 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
3427
3428         verify.c: Add generic method constraint verification.
3429
3430 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
3431
3432         class.c (mono_class_inflate_generic_method_full): Add a long
3433         explanation to the is_mb_open hack. Remove the FIXME.
3434
3435 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
3436
3437         * verify.c (mono_method_verify): Mark all unknown opcodes
3438         as invalid. Mark jmp as unverifiable.
3439
3440 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
3441
3442         * verify.c: Add code to do type constraint verification on class instances.
3443
3444         * verify.c (mono_verifier_verify_class): Use the type constraint 
3445         verification code.
3446
3447 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
3448
3449         * class.c (mono_class_get_field_default_value): Don't pass cindex
3450         as hint to mono_metadata_get_constant_index. The local is not initialized
3451         and should contain garbage most of the time. This could only work
3452         with a lot of luck.
3453
3454 2008-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
3455
3456         * tokentype.h: Add MONO_TOKEN_GENERIC_PARAM.
3457
3458 2008-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
3459
3460         * class-internals.h: Add generic_param_token to MonoClass::sizes union.
3461
3462         * class.c (mono_class_from_generic_parameter): Save the token of the
3463         generic param in MonoClass::sizes.generic_param_token.
3464
3465         * reflection.c (mono_custom_attrs_from_class): If the class type is
3466         VAR or MVAR retrieve the attributes of the generic param.
3467
3468 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
3469
3470         * class.c (mono_class_init): Do class verification if the verifier
3471         is enabled.
3472
3473 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
3474
3475         * verify-internal.h: Added mono_verifier_verify_class.
3476
3477         * verify.c: Added mono_verifier_verify_class. It checks for
3478         classes with explicit layout that have overlapping reference fields.
3479
3480         * pedump.c: Init the verifier state prior to verification. Fixed
3481         command line arguments.
3482
3483 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
3484
3485         * Makefile.am: Added verify-internals.h, hopefully fix the build.
3486
3487 2008-04-08  Zoltan Varga  <vargaz@gmail.com>
3488
3489         * verify-internals.h: Fix a warning.
3490
3491 2008-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
3492
3493         * verify-internals.h: New header with the verifier configuration
3494         extracted from mini.c.
3495
3496         * verify.c: Implemented the new functions exported by verify-internals.h.
3497
3498 2008-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
3499
3500         * verify.c: Add proper verification of ckfinite.
3501
3502 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
3503
3504         * verify.c (do_conversion): Improved error message to something
3505         more meanfull.
3506
3507         * verify.c (check_is_valid_type_for_field_ops): Fix to work
3508         with primitive types.
3509
3510 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
3511
3512         * verify.c: Added tail prefix checking. Marked icall
3513         as unverifible.
3514
3515 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
3516
3517         * verify.c: Fix the detection of branches to the middle
3518         of an instruction.
3519
3520 2008-04-03 Rodrigo Kumpera  <rkumpera@novell.com>
3521
3522         * verify.c: Implemented verification of volatile. and
3523         unaligned. prefix. Check if a type is valid after retrieving it.
3524
3525 2008-04-01  Dick Porter  <dick@ximian.com>
3526
3527         * process.c (process_get_fileversion): If there's no string block,
3528         set the file language to en_US.  Fixes the other new part of bug
3529         374600.
3530
3531 2008-03-29 Rodrigo Kumpera  <rkumpera@novell.com>
3532
3533         * class.c: New functions mono_method_can_access_field_full and
3534         mono_method_can_access_method_full. They perform type visibility
3535         and type site check.
3536
3537         * class-internal.h: Added exported functions.
3538
3539         * verify.c: Use new functions to implement proper visibility checks.
3540
3541 2008-03-29  Zoltan Varga  <vargaz@gmail.com>
3542
3543         * mono-config.h: Add missing G_BEGIN_DECLS/G_END_DECLS. Fixes #375188.
3544
3545 2008-03-28  Dick Porter  <dick@ximian.com>
3546
3547         * process.c (process_get_fileversion): Use the first language ID
3548         we see, rather than insisting on an invariant language.  Fixes bug
3549         374600.
3550
3551 2008-03-28  Zoltan Varga  <vargaz@gmail.com>
3552
3553         * reflection.c (calc_section_size): Use add_stream_zero to align the size of
3554         the streams to fix reading of invalid memory later.
3555
3556         * metadata.h (MonoType): Use 'MonoTypeEnum' instead of int for the 'type' field
3557         to ease debugging.
3558
3559 2008-03-26  Zoltan Varga  <vargaz@gmail.com>
3560
3561         * marshal.c (signature_dup): Use mono_metadata_signature_alloc ().
3562         (cominterop_method_signature): Ditto. Fix the size passed to memcpy.
3563
3564 2008-03-26  Massimiliano Mantione  <massi@ximian.com>
3565         * threads.h: Added MonoThreadManageCallback type and
3566         mono_thread_set_manage_callback prototype
3567         * object-internals.h: In _MonoThread, renamed unused6 to manage_callback
3568         (used to store the mono_thread_manage callback).
3569         * threads.c: Added mono_thread_set_manage_callback, and handle
3570         "MonoThread->manage_callback" in build_wait_tids.
3571
3572 2008-03-26  Dick Porter  <dick@ximian.com>
3573
3574         * process.c (process_get_fileversion): Set FileVersionInfo strings
3575         to Empty when the resource doesn't have the particular info.
3576         Fixes bug 355717.
3577
3578 2008-03-25 Rodrigo Kumpera  <rkumpera@novell.com>
3579
3580         * verify.c (mono_method_verify): Proper prefix validation.
3581
3582 2008-03-25  Zoltan Varga  <vargaz@gmail.com>
3583
3584         * icall.c (ves_icall_InternalInvoke): Return exceptions thrown by the icall
3585         itself in a separate argument instead of throwing them. Fixes #373448.
3586
3587         * appdomain.c: Bump corlib version.
3588
3589 2008-03-24 Rodrigo Kumpera  <rkumpera@novell.com>
3590
3591         * verify.c: Implemented readonly prefix and verify controled mutability pointers.
3592
3593 2008-03-20  Kornél Pál  <kornelpal@gmail.com>
3594
3595         * file-io.c, filewatcher.c, threadpool.c, threads.c: Removed Windows
3596         version macros.
3597
3598 2008-03-20  Mark Probst  <mark.probst@gmail.com>
3599
3600         * generic-sharing.c, class-internals.h: Code for putting
3601         reflection types into the runtime generic context.
3602
3603 2008-03-19 Rodrigo Kumpera  <rkumpera@novell.com>
3604
3605         * icall.c (ves_icall_get_method_info): Return correct values for the call convention.
3606         Fixes #340662. 
3607
3608
3609 2008-03-17 Rodrigo Kumpera  <rkumpera@novell.com>
3610
3611         * verify.c (VerifyContext): Added instruction prefix data to the struct.
3612
3613         * verify.c (is_compatible_boxed_valuetype): Don't check if the type is a valuetype, been boxed is enough.
3614
3615         * verify.c (do_invoke): Support constrained callvirt form. Grouped similar checks together.
3616
3617         * verify.c (do_cast): Let the result value keep the boxed status.
3618
3619         * verify.c (mono_method_verify): Add proper support for prefixed and implement contrained.
3620
3621 2008-03-17  Jb Evain  <jbevain@novell.com>
3622
3623         * reflection.c: when running on a 2.0 runtime, emit
3624         unconditionally the #~ header version as 2.0, and the
3625         CLI header version as 2.5, for symmetry's sake with csc.
3626
3627 2008-03-16  Zoltan Varga  <vargaz@gmail.com>
3628
3629         * class.c: Remove the unused cache_interface_offsets stuff.
3630
3631         * class.c loader.c domain.c verify.c metadata.c debug-helpers.c threadpool.c
3632         profiler.c: Fix warnings.
3633
3634 2008-03-16  Mark Probst  <mark.probst@gmail.com>
3635
3636         * generic-sharing.c, class-internals.h: Support for putting
3637         methods into the runtime generic context.
3638
3639 2008-03-16  Zoltan Varga  <vargaz@gmail.com>
3640
3641         * class.c (mono_class_setup_fields): Ignore calls made to this function for
3642         classes which are generic instances of not-yet finished typebuilders. Fixes
3643         #351172.
3644
3645         * reflection.c (fixup_method): Add support for FieldOnTypeBuilderInst.
3646
3647 2008-03-15  Zoltan Varga  <vargaz@gmail.com>
3648
3649         * metadata-internals.h (MonoDynamicImage): Add 'generic_def_objects' hash table.
3650
3651         * class-internals.h (MonoMethodInflated): Remove the rarely used reflection_info
3652         field, replace it with a hash table in MonoDynamicImage.
3653
3654         * reflection.c (inflate_mono_method): Access the generic definition object from
3655         image->generic_def_objects instead of imethod->reflection_info.
3656
3657         * reflection.c (mono_reflection_bind_generic_method_parameters): Ditto. 
3658
3659         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition): Ditto.
3660         
3661         * image.c (mono_image_close): Move the dynamic image freeing code to a separate
3662         function in reflection.c so it is easier to keep in sync with the dynamic image
3663         creation code.
3664
3665         * reflection.c (mono_dynamic_image_free): New internal function, extracted from
3666         mono_image_close ().
3667
3668 2008-03-15  Mark Probst  <mark.probst@gmail.com>
3669
3670         * class.c (mono_class_generic_sharing_enabled): Disable generic
3671         sharing for all architectures except AMD64 and x86 to fix build.
3672
3673 2008-03-14 Rodrigo Kumpera  <rkumpera@novell.com>
3674
3675         * verify.c: Use the generic definition MonoGenericContext when available.
3676         Remove code for checking generics instance compatibility in favor of
3677         mono_class_is_assignable_from.
3678
3679 2008-03-14  Mark Probst  <mark.probst@gmail.com>
3680
3681         * marshal.c, marshal.h, metadata-internals.h, image.c,
3682         wrapper-types.h: New wrapper for invoking a shared static method
3683         without having to pass the runtime generic context argument.
3684
3685 2008-03-14 Rodrigo Kumpera  <rkumpera@novell.com>
3686
3687         * icall-def.h: Add missing function PerformanceCounterCategory::GetInstanceNames.
3688
3689 2008-03-14  Zoltan Varga  <vargaz@gmail.com>
3690
3691         * reflection.c (mono_image_get_field_on_inst_token): Add caching.
3692         
3693         * reflection.c (mono_image_get_field_on_inst_token): New helper function to
3694         create a token from a FieldOnTypeBuilderInst.
3695         (mono_image_create_token): Handle FieldOnTypeBuilderInst.
3696         (resolve_object): Ditto.
3697
3698         * object-internals.h (MonoReflectionFieldOnTypeBuilderInst): New structure
3699         mirroring System.Reflection.Emit.FieldOnTypeBuilderInst.
3700
3701 2008-03-14  Martin Baulig  <martin@ximian.com>
3702
3703         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 68.
3704
3705         * debug-mono-symfile.h
3706         (MONO_SYMBOL_FILE_VERSION): Bump to 41.
3707         (MONO_SYMBOL_FILE_COMPATIBILITY_VERSION): New #define.
3708
3709 2008-03-10  Martin Baulig  <martin@ximian.com>
3710
3711         * debug-mono-symfile.h
3712         (MonoSymbolFileMethodAddress): Removed `num_lexical_blocks' and
3713         `lexical_block_table_offset'.
3714         (MonoDebugMethodInfo): Removed `num_lexical_blocks' and
3715         `lexical_blocks'.
3716         (MonoSymbolFile): Added `version'.
3717
3718         * mono-debug.h
3719         (MonoDebugLexicalBlockEntry): Removed.
3720         (MonoDebugMethodJitInfo): Removed `num_lexical_blocks' and
3721         `lexical_blocks'.
3722
3723         * mono-debug.c (mono_debug_add_method): Don't compute lexical
3724         blocks here; the debugger now does this internally.
3725
3726 2008-02-27  Martin Baulig  <martin@ximian.com>
3727
3728         * object.c (mono_runtime_exec_main): Call
3729         `mono_debugger_event (MONO_DEBUGGER_EVENT_REACHED_MAIN)' and
3730         `mono_debugger_event (MONO_DEBUGGER_EVENT_MAIN_EXITED)' here.
3731
3732 2008-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
3733
3734         * verify.c (verify_type_compatibility_full): Allow native int to be converted
3735         to native pointer in non-strict mode. Required to "(IntPtr)null" work.
3736
3737 2008-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
3738
3739         * verify.c (verify_ldftn_delegate): Accept a sealed type when using
3740         ldftn with a virtual method.
3741
3742 2008-03-13  Geoff Norton  <gnorton@novell.com>
3743
3744         * decimal.c:  Only include memory.h if the platform has it.
3745
3746 Wed Mar 12 12:11:06 CET 2008 Paolo Molaro <lupus@ximian.com>
3747
3748         * assembly.c, class.c, metadata-internals.h: make sure public key
3749         tokesns are compared in a case-insensitive way. Also, all
3750         the lookups in the GAC use a lowercase public key token
3751         (gaacutil already does the lowercasing on install). Fixes
3752         bug #369541.
3753
3754 2008-03-11 Rodrigo Kumpera  <rkumpera@novell.com>
3755
3756         * verify.c (mono_delegate_signature_equal): Do proper variance check on arguments
3757         and return value.
3758
3759 Tue Mar 11 17:41:38 CET 2008 Paolo Molaro <lupus@ximian.com>
3760
3761         * image.c: when someone loads a mscorlib from a file, return the
3762         currently loaded mscorlib (fixes bug #369253).
3763
3764 Tue Mar 11 16:47:32 CET 2008 Paolo Molaro <lupus@ximian.com>
3765
3766         * class.c: handle types with no parents by forcing them to have
3767         System.Object as a parent and marking them as broken (this currently
3768         allows the first part of bug #369173 to work as well, likely because
3769         we don't check for typeload exceptions everywhere yet).
3770
3771 Tue Mar 11 15:23:54 CET 2008 Paolo Molaro <lupus@ximian.com>
3772
3773         * class.c: more complete check that types belong to corlib
3774         (fixes second part of bug #369173).
3775
3776 2007-03-10  Bill Holmes  <billholmes54@gmail.com>
3777
3778         * generic-sharing.c:  Including glib.h for the MSVC builds to define
3779           "inline" to "__inline" before including mono-membar.h.
3780           
3781         * mono-perfcounters.c:  Adding HAVE_SYS_TIME_H check for MSVC builds.
3782           Rename "Unknown" to "CatTypeUnknown" to avoid name collisions for 
3783           MSVC builds.
3784
3785         Contributed under MIT/X11 license.
3786
3787 2008-03-10 Rodrigo Kumpera  <rkumpera@novell.com>
3788
3789         * verify.c (do_invoke_method): Remove return type validation.
3790
3791         * verify.c (do_ret): Do return type validation at return site instead of
3792         call site.
3793
3794 2008-03-10 Rodrigo Kumpera  <rkumpera@novell.com>
3795
3796         * verify.c (do_invoke_method): Mark callvirt to static methods unverifiable.
3797
3798         * verify.c: Some todos cleaned and improved a few error messages.
3799
3800 2008-03-08  Zoltan Varga  <vargaz@gmail.com>
3801
3802         * class.c (mono_class_setup_mono_type): Improve the test for corlib.
3803
3804 2008-03-07  Zoltan Varga  <vargaz@gmail.com>
3805
3806         * class.c (mono_class_setup_mono_type): Handle types whose name clashes with
3807         system types correctly.
3808
3809         * exception.h exception.c (mono_exception_from_token_two_strings): New helper
3810         function.
3811
3812 2008-03-06  Zoltan Varga  <vargaz@gmail.com>
3813
3814         * assembly.c (build_assembly_name): Fix a warning.
3815
3816 Thu Mar 6 19:43:41 CET 2008 Paolo Molaro <lupus@ximian.com>
3817
3818         * marshal.c: ldfld_remote and stfld_remote needs just one wrapper as
3819         the called function takes an object type argument. Fixes storing or
3820         valuetypes across remoting as well as reducing memory usage.
3821         * image.c, metadata-internals.h: remove now unused ldfld_remote and
3822         stfld_remote wrapper caches.
3823
3824 2008-03-06  Zoltan Varga  <vargaz@gmail.com>
3825
3826         * icall.c (mono_lookup_internal_call): Update the exception message when an icall
3827         is not found.
3828
3829         * reflection.c (mono_image_register_token): New helper function to save
3830         a token->object mapping.        
3831
3832         * icall.c (ves_icall_ModuleBuilder_RegisterToken): New icall to access it from
3833         managed code.
3834
3835         * reflection.c (_mono_reflection_parse_type): Distinguish between vectors and
3836         one dimension arrays. Fixes #367670.
3837         (mono_reflection_get_type_internal): Ditto.
3838
3839 Tue Mar 4 19:04:02 CET 2008 Paolo Molaro <lupus@ximian.com>
3840
3841         * marshal.c: mono_load_remote_field_new() always returns object.
3842         so use the proper signature (fixes bug #366445).
3843
3844 2008-03-04  Zoltan Varga  <vargaz@gmail.com>
3845         
3846         * class-internals.h (MonoMethod): Remove unused uses_this flag, 
3847         add an 'inline_failure' flag instead.
3848
3849 2008-03-04  Mark Probst  <mark.probst@gmail.com>
3850
3851         * domain-internals.h, domain.c: Replaced MonoGenericSharingContext
3852         with a new structure, MonoGenericJitInfo, in the MonoJitInfo.  It
3853         contains the location of "this", used for exception handling.
3854
3855 2008-03-04  Zoltan Varga  <vargaz@gmail.com>
3856
3857         * class.c (mono_class_layout_fields): Set the min alignment of small structs to
3858         their size on all platforms for perf reasons.
3859
3860 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
3861
3862         * reflection.h: Move mono_reflection_is_valid_dynamic_token to
3863         object-internal.h
3864
3865         * object-internal.h: Same.
3866
3867 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
3868
3869         * reflection.h: Fix the build I just broke.
3870
3871 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
3872
3873         * reflection.c (mono_reflection_is_valid_dynamic_token): New function,
3874         Test if a token is valid, this remove explicit usage of 
3875         MonoDynamicImage::tokens from the verifier code.
3876
3877         * reflection.h: Added mono_reflection_is_valid_dynamic_token.
3878
3879         * verify.c (token_bounds_check): Use mono_reflection_is_valid_dynamic_token
3880         instead of direct access to MonoDynamicImage::tokens.
3881
3882 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
3883
3884         * verify.c (token_bounds_check): Fix the build I just broke.
3885
3886 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
3887
3888         * verify.c (token_bounds_check): Fix bounds check for dynamic images.
3889
3890         * verify.c (verifier_load_method): Fixed the errors message.
3891
3892         * verify.c (mono_method_verify): Fixed a debug message.
3893
3894 Thu Feb 28 19:49:45 CET 2008 Paolo Molaro <lupus@ximian.com>
3895
3896         * icall-def.h, domain.c, mono-perfcounters-def.h, mono-perfcounters.c,
3897         mono-perfcounters.h, class-internals.h: support for predefined
3898         writable counters, query of categories and counters, bugfixes.
3899
3900 2008-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
3901
3902         * verify.c (do_refanytype): Verify the refanytype opcode.
3903
3904         * verify.c (mono_method_verify): Use do_refanytype.
3905
3906 2008-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
3907
3908         * verify.c (do_mkrefany): Verify the mkrefany opcode.
3909
3910         * verify.c (mono_method_verify): Use do_mkrefany.
3911
3912 Wed Feb 27 19:49:16 CET 2008 Paolo Molaro <lupus@ximian.com>
3913
3914         * Makefile.am, icall-def.h, icall.c, mono-perfcounters-def.h,
3915         mono-perfcounters.c, mono-perfcounters.h: basic performance counter
3916         implementation.
3917
3918 2008-02-27  Zoltan Varga  <vargaz@gmail.com>
3919
3920         * marshal.c (mono_marshal_get_synchronized_wrapper): Fix the code which throws
3921         the type load exception.
3922
3923 2008-02-27 Rodrigo Kumpera  <rkumpera@novell.com>
3924
3925         * verify.c: Added a few FIXME for method signatures
3926
3927         * verify.c (do_invoke_method): Use mono_method_get_signature_full instead
3928         of mono_method_get_signature and get vararg call working. Removed unused
3929         checks for return value.
3930
3931         * verify.c (do_refanyval): Verify the refanyval opcode.
3932
3933         * verify.c (mono_method_verify): Implemented verification of arglist and
3934         use do_refanyval.
3935
3936 2008-02-27  Zoltan Varga  <vargaz@gmail.com>
3937
3938         * class.c (mono_class_setup_methods): Move the check for synchronized methods on
3939         vtypes to marshal.c.
3940
3941         * marshal.c (mono_marshal_get_synchronized_wrapper): Do the vtype check here so
3942         it works for AOT as well.
3943
3944 Tue Feb 26 17:46:32 CET 2008 Paolo Molaro <lupus@ximian.com>
3945
3946         * monitor.c, threads.c, threadpool.c: replace the use of GetTickCount ()
3947         with mono_msec_ticks () which is monotonic and doesn't cause bugs when
3948         the system time is adjusted.
3949
3950 Tue Feb 26 17:40:10 CET 2008 Paolo Molaro <lupus@ximian.com>
3951
3952         * icall.c, icall-def.h: use the new time functions (fixes the
3953         non-monotonic behaviour of TickCount).
3954
3955 2008-02-26  Zoltan Varga  <vargaz@gmail.com>
3956
3957         * reflection.c (mono_custom_attrs_from_builders): Revert the last change as
3958         it breaks the build.
3959         
3960         * reflection.c (mono_custom_attrs_from_builders): Assert instead of a crash if the
3961         cattr is not finished yet.
3962
3963 2008-02-25 Rodrigo Kumpera  <rkumpera@novell.com>
3964
3965         * verify.c: Proper token validation for field, method and type.
3966
3967 2008-02-25 Rodrigo Kumpera  <rkumpera@novell.com>
3968
3969         * loader.c (field_from_memberref): Generate a loader error if the type is not found.
3970
3971         * loader.c (method_from_memberref): Generate type load error instead of method missing
3972         if the type is not found.
3973
3974 2008-02-23  Zoltan Varga  <vargaz@gmail.com>
3975
3976         * marshal.c (mono_marshal_emit_managed_wrapper): Avoid generating invalid IL if
3977         some of the conversions caused the generation of a marshal directive exception.
3978
3979 2008-02-21 Rodrigo Kumpera  <rkumpera@novell.com>
3980
3981         verify.c: Report which exception should be thrown by the JIT.
3982         Added a lot of FIXME notes.
3983
3984 2008-02-22  Mark Probst  <mark.probst@gmail.com>
3985
3986         * generic-sharing.c: Runtime generic context slots are not
3987         instantiated on init anymore.  Instead, provide function to do the
3988         instantiating on demand.
3989
3990         * class-internals.h: Added vtable to runtime generic context.
3991         Macros for encoding direct and indirect slot offsets in one
3992         guint32.
3993
3994 2008-02-21  Mark Probst  <mark.probst@gmail.com>
3995
3996         * object.c, generic-sharing.c: Moved some generic sharing code
3997         from object.c to generic-sharing.c.
3998
3999         * generic-sharing.c: Added support for extensible runtime generic
4000         context.
4001
4002         * metadata-internals.h: Two new hash tables in MonoImage for
4003         extensible runtime generic context support.
4004
4005         * domain.c: Unregister generic vtables upon domain unloading.
4006
4007         * image.c: Destroy new hash tables upon image unloading.
4008
4009         * metadata.c: Unregister generic subclasses upon image unloading.
4010
4011         * class-internals.h: New data structure for runtime generic
4012         context template.  New fields in the runtime generic context for
4013         extensible part.
4014
4015         * Makefile.am: Added generic-sharing.c.
4016
4017 2008-02-21 Rodrigo Kumpera  <rkumpera@novell.com>
4018
4019         icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): If
4020         there is a pending loader exception, raise it.
4021
4022         icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
4023         same.
4024
4025         icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): 
4026         same.
4027
4028         Fixes #363450.
4029
4030 2008-02-20  Zoltan Varga  <vargaz@gmail.com>
4031
4032         * icall.c (ves_icall_Type_GetPacking): Handle dynamic types.
4033
4034         * assembly.c (mono_assembly_load_from_full): Fix a leak in the previous patch.
4035         
4036         * assembly.c (mono_assembly_load_from_full): Return the non-refonly corlib for
4037         ref-only requests for compatibility with MS.
4038
4039 2008-02-20  Raja R Harinath  <harinath@hurrynot.org>
4040
4041         * reflection.c (mono_custom_attrs_from_method): Don't silently
4042         return an empty list for generic method instances.
4043         (mono_custom_attrs_from_param): Likewise.
4044
4045 2008-02-20  Rodrigo Kumpera  <rkumpera@novell.com>
4046             Raja R Harinath  <harinath@hurrynot.org>
4047
4048         Fix #354757
4049         * class-internals.h (struct _MonoMethodInflated.is_mb_open): Add.
4050         * class.c (mono_class_inflate_generic_method_full): Initialize it
4051         when a fully-open method is instantiated.
4052         * metadata.c (inflated_method_equal, inflated_method_hash): Update
4053         to new field.
4054         * reflection.c (inflate_mono_method): Don't create a temporary context.
4055
4056 2008-02-20  Raja R Harinath  <harinath@hurrynot.org>
4057
4058         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
4059         Compute correct value, to prepare for imethod->reflection_info going away.
4060
4061 2008-02-19  Zoltan Varga  <vargaz@gmail.com>
4062
4063         * class.c (mono_class_setup_vtable_general): Ignore static methods in interfaces.
4064
4065 2008-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
4066
4067         * verify.c: Implement skip visibility flag.
4068
4069 2008-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
4070
4071         * verify.h: Added MONO_VERIFY_SKIP_VISIBILITY and struct MonoVerifyInfoExtended
4072         which contains an extra field to tell the kind of exception that should be thrown.
4073
4074         * verify.c: Use MonoVerifyInfoExtended instead of MonoVerifyInfo.
4075
4076 2008-02-17  Raja R Harinath  <harinath@hurrynot.org>
4077
4078         * loader.c (mono_method_get_param_names): Initialize 'klass' after
4079         'method' is updated.
4080
4081 2008-02-11  Zoltan Varga  <vargaz@gmail.com>
4082
4083         * class.c (mono_class_layout_fields): Set class->min_align for classes using
4084         explicit layout as well. Fixes #360375.
4085
4086 2008-02-11  Geoff Norton  <gnorton@novell.com>
4087
4088         * loader.c: Guard and dereference against inflated generic methods
4089
4090 2008-02-10  Gert Driesen  <drieseng@users.sourceforge.net>
4091
4092         * class.c: Include Retargetable spec in assembly name.
4093         * assembly.c: Always include PublicKeyToken spec in assembly name
4094         (with value "null" if assembly is not signed), and include
4095         Retargetable spec.
4096         * icall-def.h: Added icall for Assembly.get_fullname.
4097         * icall.c: Added icall returning the fullname of an assembly.
4098
4099 2008-02-09  Zoltan Varga  <vargaz@gmail.com>
4100
4101         * class.c (mono_class_setup_vtable_general): Add a missing call to
4102         mono_class_setup_methods () which is needed in the AOT case.
4103
4104 2008-02-08 Rodrigo Kumpera  <rkumpera@novell.com>
4105
4106         * verify.c (mono_type_get_stack_name): Added. Return the name for the
4107         stack type of the given MonoType.
4108
4109         * verify.c (verify_type_compatibility_full): Handle the void type.
4110
4111         * verify.c (is_compatible_boxed_valuetype): Changed to fit the
4112         way stack merging works.
4113
4114         * verify.c (store_local): Improved verification message.
4115
4116         * verify.c (do_branch_op): If the merging is invalid, the method
4117         is unverifiable and not invalid. Improved error message.
4118
4119         * verify.c (merge_stacks): Properly merge a boxed valuetype and
4120         a reference type diferent than System.Object. Improved error
4121         message.
4122
4123 2008-02-07 Rodrigo Kumpera  <rkumpera@novell.com>
4124
4125         * verify.c (mono_type_is_enum_type): Added. Test if a type is an enum.
4126
4127         * verify.c (mono_type_get_underlying_type_any): Added. Return the underlying
4128         type of an enum even if the argument is byref.
4129
4130         * verify.c: Replace all explicit uses of enumtype and enum_basetype
4131         to calls to mono_type_is_enum_type and mono_type_get_underlying_type_any.
4132
4133         * verify.c: Check for an enum in all cases of MONO_TYPE_GENERICINST.
4134
4135         *verify.c (verify_type_compatibility_full): Make enum types
4136         compatible with their base types.
4137
4138         * verify.c (is_compatible_boxed_valuetype): Added. Check if both
4139         types are compatible for the special case of a boxed valuetype and
4140         System.Object.
4141
4142         * verify.c (verify_stack_type_compatibility): The function
4143         is_compatible_boxed_valuetype was extracted from here.
4144
4145         * verify.c (push_arg): Only set ctx->has_this_store if the method
4146         is not static.
4147
4148         * verify.c (do_ldelem): Fixed a typo in an error message and added
4149         strict check for mixing int32 and native int as the array type
4150         and ldelem type.
4151
4152         * verify.c (merge_stacks): Consider boxed valuetypes in the
4153         compatibility checks.
4154
4155 2008-02-07  Massimiliano Mantione  <massi@ximian.com>
4156         * profiler.h: (MonoGCEvent): Added start-stop the world events.
4157
4158 2008-02-06  Massimiliano Mantione  <massi@ximian.com>
4159         *class.c: use_new_interface_vtable_code: renamed the env var to have
4160         a "MONO_" prefix, and fix the logic to enable it by default.
4161
4162 2008-02-06  Massimiliano Mantione  <massi@ximian.com>
4163         *class.c:
4164         mono_class_setup_vtable_general: rewrote the way in which interface
4165         methods are added to vtables. Makes bug-77127.exe pass, and hopefully
4166         makes the code more maintainable.
4167         For now the old code is still there, and can be activated setting
4168         the env var "USE_NEW_INTERFACE_VTABLE_CODE".
4169
4170 2008-02-06 Rodrigo Kumpera  <rkumpera@novell.com>
4171
4172         * verify.c: guarded some debug functions around and #ifdef.
4173
4174         * verify.c (merge_stacks): implement proper PIII 1.8.1.3 stack state merging.
4175
4176 2008-02-06  Zoltan Varga  <vargaz@gmail.com>
4177
4178         * marshal.c (mono_marshal_get_runtime_invoke): Revert the direct_wrapper
4179         changes for now since they seem to break too many things.
4180
4181 2008-02-05  Mark Probst  <mark.probst@gmail.com>
4182
4183         * marshal.c, marshal.h (mono_marshal_find_bitfield_offset,
4184         mono_marshal_find_nonzero_bit_offset): Added macro and function
4185         for finding the byte- and bit-offset of a bitfield within a
4186         struct.
4187
4188 2008-02-05  Zoltan Varga  <vargaz@gmail.com>
4189
4190         * marshal.c (mono_marshal_get_ptr_to_struct): Make the signature non-pinvoke.
4191         (mono_marshal_get_struct_to_ptr): Ditto.
4192
4193         * marshal.c (mono_marshal_get_runtime_invoke): Fix the signature of 
4194         cctor_signature.
4195
4196 2008-02-03  Zoltan Varga  <vargaz@gmail.com>
4197
4198         * marshal.c (mono_marshal_get_runtime_invoke): Fix sharing of runtime wrappers
4199         between methods for non-corlib types.
4200
4201 2008-02-02  Geoff Norton  <gnorton@novell.com>
4202
4203         * loader.c (mono_method_get_param_names): Populate the parameter name for 
4204         generic parameters as well. (Fixes #342536)
4205
4206 2008-01-31 Rodrigo Kumpera  <rkumpera@novell.com>
4207
4208         * verify.c (is_valid_bool_arg): Allow boxed values and null literals as well.
4209
4210         * verify.c (do_invoke_method): Fix for calling with byref structs.
4211
4212         * verify.c (do_cast): push a boxed value type based on the type token and not
4213         the type of stack.
4214
4215 2008-01-31  William Holmes  <billholmes54@gmail.com>
4216
4217         * process.c (process_module_string_read): Check the size returned form 
4218           VerQueryValue to avoid out of memory exception. 
4219
4220 2008-01-30  Zoltan Varga  <vargaz@gmail.com>
4221
4222         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
4223         Handle properly modules which are not in the moduleref table. Fixes
4224         #356938.
4225
4226 2008-01-29  Zoltan Varga  <vargaz@gmail.com>
4227
4228         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Remove
4229         the dynamic case which is now in managed code.
4230         (ves_icall_System_Reflection_Assembly_GetTypes): Ditto.
4231
4232         * marshal.c (mono_string_to_bstr): Fix a warning.
4233         (init_com_provider_ms): Ditto.
4234
4235         * appdomain.c (ves_icall_System_AppDomain_createDomain): Add some FIXMEs.
4236
4237         * exception.c (mono_get_exception_out_of_memory): New helper function.
4238
4239 2008-01-28  Jonathan Chambers  <joncham@gmail.com>
4240
4241         * marshal.c: Add support for BSTR marshalling
4242         using other COM systems.
4243
4244         Code is contributed under MIT/X11 license.
4245
4246 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
4247
4248         * object.c (mono_runtime_invoke_array): reverted previous
4249         commit as it breaks the build.
4250
4251 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
4252
4253         * object.c (mono_runtime_invoke_array): Verify arguments for
4254         invalid types. Fixes #348522.
4255
4256 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
4257
4258         * verify.c: added IL_CODE_CALL_NONFINAL_VIRTUAL to track calls to
4259         non-final virtual calls using call. 
4260
4261         * verify.c (do_invoke): fixed some TODOs.
4262
4263         * verify.c (push_arg): set has_this_store for "ldarga 0".
4264
4265 2008-01-27  Zoltan Varga  <vargaz@gmail.com>
4266
4267         * reflection.c (reflection_methodbuilder_to_mono_method): Allow DynamicMethods
4268         which belong to an inflated class. Fixes #356531.
4269
4270 2008-01-26  Robert Jordan  <robertj@gmx.net>
4271
4272         * file-io.c: Implement and use wrappers for GetFileAttribute|Ex ()
4273         which resort to FindFirstFile when a certain error condition
4274         (ERROR_SHARING_VIOLATION) occured. Fixes bug #325212.
4275         Code is contributed under MIT/X11 license.
4276
4277 2008-01-24  Jonathan Chambers  <joncham@gmail.com>
4278
4279         * marshal.c (emit_marshal_string): Fix out string marshalling
4280         to use specified encoding. Fixes #323900.
4281
4282         Code is contributed under MIT/X11 license.
4283
4284 2008-01-24  Raja R Harinath  <harinath@hurrynot.org>
4285
4286         * class.c (mono_class_inflate_generic_method_full): Don't modify
4287         iresult->context after cache check.
4288
4289 2008-01-23  Zoltan Varga  <vargaz@gmail.com>
4290
4291         * class.c (mono_class_inflate_generic_method_full): Change the
4292         struct assignments to memcpy for better visibility and add some comments.
4293
4294 2008-01-23  Dick Porter  <dick@ximian.com>
4295
4296         * threads.c (mono_threads_set_shutting_down): Simplify shutdown
4297         procedure, and make it work on windows.
4298
4299 2008-01-22  Zoltan Varga  <vargaz@gmail.com>
4300
4301         * object-internals.h (MonoReflectionGenericClass): Make the 'generic_type' field
4302         a MonoReflectionTypeBuilder since it is always of that type.
4303
4304         * reflection.c (mono_type_get_object): Remove an unneccesary check.     
4305
4306         * reflection.c (mono_generic_class_get_object): Simplify this a bit.
4307
4308         * reflection.c (mono_reflection_bind_generic_parameters): Ditto.
4309         
4310         * icall.c (ves_icall_MonoGenericClass_GetParentType): Ditto.
4311
4312         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Ditto.
4313
4314         * reflection.c (mono_reflection_create_runtime_class): Remove already created
4315         instantiations from the type cache.
4316
4317 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
4318
4319         * verify.c (do_ldstr): fixed token verification. previous code was 100% broken.
4320
4321         * verify.c (do_unbox_value): push a controled mutability managed pointer.
4322
4323 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
4324
4325         * verify.c (do_ldstr): added, verifies if the #US token is valid.
4326
4327         * verify.c (mono_method_verify): removed old TODO
4328
4329 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
4330
4331         * verify.c (do_newobj): add visibility check.
4332
4333 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
4334
4335         * verify.c (do_load_function_ptr): add visibility check.
4336
4337 2008-01-21  Massimiliano Mantione  <massi@ximian.com>
4338         *class.c:
4339         mono_generic_class_get_class: hook profiler events.
4340         mono_field_get_offset: added to support heap-shot in the new profiler.
4341         *class.h: exported mono_field_get_offset.
4342         * reflection.c:
4343         mono_reflection_setup_internal_class: hook profiler events.
4344
4345 2008-01-20  Zoltan Varga  <vargaz@gmail.com>
4346
4347         * marshal.c (mono_marshal_emit_native_wrapper): Add a 'check_exceptions' 
4348         argument here too and use it to avoid checking for pending exceptions if 
4349         possible.
4350
4351 2008-01-20  Gert Driesen  <drieseng@users.sourceforge.net>
4352
4353         * assembly.c (build_assembly_name): add arg for passing the assembly
4354         flags. Do not consider a PublicKey with value "null" valid.
4355         (mono_assembly_name_parse_full): added boolean argument that will be
4356         set if the assembly name contains a PublicKeyToken spec. Added support
4357         for the Retargetable spec for which only Yes or No are allowed as valid
4358         value. Consider assembly name invalid if Retargetable spec is set, but
4359         either version, culture or public key (token) are not specified.
4360         * metadata-internals.h: sync signature of mono_assembly_name_parse_full
4361         with implementation in assembly.c.
4362         * icall.c (fill_reflection_assembly_name): also copy assembly flags
4363         from MonoAssemblyName.
4364         (ves_icall_System_Reflection_AssemblyName_ParseName): use newly
4365         introduced argument for mono_assembly_name_parse_full to know if the
4366         assembly name has a PublicKeyToken spec, and if it has instruct
4367         fill_reflection_assembly_name to use default value for keyToken (if
4368         PublicKeyToken is null).
4369
4370 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
4371
4372         * verify.c (mono_method_verify): fixed ovf ops with
4373         float values. They are unverifiable now.
4374
4375 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
4376
4377         * class.c (set_failure_from_loader_error): add BadImageException to the
4378         list of exceptions that can cause a type to fail to load.
4379
4380         * class.c (mono_class_get_exception_for_failure): same.
4381
4382 2008-01-17  Rodrigo Kumpera  <rkumpera@novell.com>
4383
4384         * verify.c (in_any_exception_block): added, check if offset
4385         is part of any exception handling clause.
4386
4387         * verify.c (get_stack_type): added VAR and MVAR types.
4388
4389         * verify.c (do_stobj): better error messages.
4390
4391         * verify.c (do_cpobj): added, check cpobj.
4392
4393         * verify.c (do_initobj): added, check initobj.
4394
4395         * verify.c (do_sizeof): added, check sizeof.
4396
4397         * verify.c (do_localloc): added, check localloc.
4398
4399         * verify.c: adde proper verification for cpobj, initobj, sizeof and localloc.
4400
4401 2008-01-17  Zoltan Varga  <vargaz@gmail.com>
4402
4403         * method-builder.c (mono_mb_emit_native_call): Get rid of the unused
4404         save_lmf/restore_lmf opcodes.
4405
4406         * threads.c (mono_threads_install_notify_pending_exc): New function to
4407         install a callback notifying the JIT there is a pending exception on a thread.
4408         (mono_thread_request_interruption): Call the new callback.
4409         (mono_thread_get_and_clear_pending_exception): New function to return the
4410         exception pending on a thread.
4411
4412         * marshal.c (mono_marshal_get_icall_wrapper): Add a check_exceptions argument
4413         to turn off checking for pending exceptions.
4414         (mono_marshal_get_native_wrapper): Ditto.
4415
4416 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
4417
4418         * threads-types.h: Get rid of the unnecessary extern declarations.
4419
4420 2008-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
4421
4422         * icall.c (ves_icall_Type_GetField): if NonPublic flag is set, only
4423         return field from parent class if not private.
4424         (ves_icall_Type_GetFields_internal): if NonPublic flag is set, only
4425         returns fields from parent class if they are not private.
4426         (method_nonpublic): added function to determine if a given method
4427         should be considered non-public. Returns false for private methods
4428         on parent class, and internal methods from parent on the 1.0 profile.
4429         (ves_icall_Type_GetMethodsByName): if NonPublic flag is set, then
4430         use method_nonpublic function to determine whether method should be
4431         returned.
4432         (property_accessor_public): use newly introduced method_nonpublic
4433         function to determine whether accessor is non-public. 
4434         (ves_icall_MonoType_GetEvent): If NonPublic flag is set, only return
4435         event from parent class if not private. Only return static event if
4436         Static flag is set, and only return static event from parent class if
4437         FlattenHierarchy flag is set.
4438         (ves_icall_Type_GetEvents_internal): If NonPublic flag is set, only
4439         include non-private events from parent class.
4440
4441 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
4442
4443         * icall.c (ves_icall_System_NumberFormatter_GetFormatterTables): Fix a
4444         warning.
4445
4446 2008-01-16  Wade Berrier <wberrier@novell.com>
4447
4448         * security.c: Add assembly.h header to appease some warnings
4449
4450 2008-01-16  Dick Porter  <dick@ximian.com>
4451
4452         * process.c (process_module_string_read): Remove trailing null
4453         when saving string.
4454
4455 2008-01-16  Mark Probst  <mark.probst@gmail.com>
4456
4457         * class-internals.h: A new data structure describing the layout of
4458         a runtime generic context (MonoRuntimeGenericContextTemplate).
4459
4460         * metadata-internals.h: Added a hash table to MonoDomain that maps
4461         from open generic classes to their runtime generic context
4462         templates.
4463
4464         * object.c: Building of the runtime generic context, including
4465         proper handling of generic type arguments of superclasses.
4466         Building of the runtime generic context according to the template.
4467
4468 2008-01-15  Zoltan Varga  <vargaz@gmail.com>
4469
4470         * class.c (mono_class_setup_fields): Set field.count for generic instances.
4471         Fixes #350856.
4472
4473         * image.c (do_mono_image_open): Pass TRUE as last_exists to 
4474         mono_portability_find_file (). Fixes #325466.
4475         (mono_image_get_public_key): Fix a warning.
4476
4477 2008-01-14  Zoltan Varga  <vargaz@gmail.com>
4478
4479         * class.c (mono_class_from_name): Fix comments for NULL-ness of image parameter.
4480         Fixes #353550.
4481         (mono_class_from_name_case): Ditto.
4482
4483 2008-01-13  Eyal Alaluf <eyala@mainsoft.com>
4484
4485         * icall-def.h number-formatter.h icall.c: Implemented a cross app-domain
4486           common storage for the tables used in the System/NumberFormatter class.
4487
4488 2008-01-13  Zoltan Varga  <vargaz@gmail.com>
4489
4490         * marshal.c (mono_marshal_get_runtime_invoke): Fix a typo.
4491
4492 2008-01-11  Rodrigo Kumpera  <rkumpera@novell.com>
4493
4494         * verify.c (get_boxable_mono_type): check if the token is valid.
4495
4496         * verify.c (set_stack_value): changed to add an error if an
4497         invalid type is set on stack. Changed all callers due to signature change.
4498
4499         * verify.c (do_stobj): implement stobj validation.
4500
4501 2008-01-11  Zoltan Varga  <vargaz@gmail.com>
4502
4503         * reflection.c (reflection_methodbuilder_to_mono_method): No need to
4504         set container->is_method, it was set earlier.
4505
4506         * metadata.c (type_in_image): Handle MVARs which belong to not finished
4507         generic methods.
4508
4509         * reflection.c (mono_reflection_initialize_generic_parameter): Set
4510         is_method of the generic container to TRUE for methods.
4511
4512 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
4513
4514         * metadata.c (type_in_image): Handle type parameters properly.
4515
4516         * class-internals.h (MonoGenericParam): Add an 'image' argument to track
4517         memory ownership of this structure.
4518
4519 2008-01-10  Rodrigo Kumpera  <rkumpera@novell.com>
4520
4521         * verify.c (get_boxable_mono_type): make typedref types been just
4522         unverifiable. check for void type.
4523
4524         * verify.c (do_unbox_any): added, verify opcode unbox.any.
4525
4526         * verify.c (do_load_function_ptr): accept method spec tokens.
4527
4528 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
4529
4530         * marshal.c (mono_class_native_size): Always set *align even if this is called
4531         recursively.
4532
4533 2008-01-09  Zoltan Varga  <vargaz@gmail.com>
4534
4535         * verify.c (mono_verify_corlib): Remove this as it was not used and was 
4536         out-of-date.
4537
4538 2008-01-09  Rodrigo Kumpera  <rkumpera@novell.com>
4539
4540         * verify.c: removed some old unused tables. A huge bunch of small fixes
4541         to things found while testing the verifier with mono basic.
4542
4543         * verify.c (dump_stack_value): dump null literal flag to.
4544
4545         * verify.c (verify_type_compatibility_full): fix comparison
4546         for types that have a generic super type.
4547
4548         * verify.c (verify_stack_type_compatibility): fix compatibility
4549         between null literals and reference types. fix compatibility between
4550         boxed valuetypes and object. fix corner case test for enums.
4551
4552         * verify.c (do_cmp_op): proper verification of cgt.un in case
4553         of reference types.
4554
4555         * verify.c (do_invoke_method): fix error message.
4556
4557         * verify.c (do_store_indirect
4558
4559         * verify.c (check_is_valid_type_for_field_ops): proper verification
4560         of managed pointers to valuetypes and boxed valuetypes. proper verification
4561         of null literals.
4562
4563         * verify.c (do_unbox_value): expect valuetypes to be always boxed. don't
4564         allow token to be a reference type.
4565
4566         * verify.c (do_cast): proper handling of boxes valuetypes.
4567
4568         * verify.c (do_stelem): proper handling of storing a boxed valuetype
4569         in object[].
4570
4571         * verify.c (mono_method_verify): pass the opcode to do_cmp_op
4572         to handle cgt.un properly. Implement add/mul/sub ovf opcodes.
4573         fixed the decoding of unbox_any
4574
4575 2008-01-08  Zoltan Varga  <vargaz@gmail.com>
4576
4577         * boehm-gc.c (mono_gc_deregister_root): Fix the size passed to libgc.
4578
4579 2008-01-08  Rodrigo Kumpera  <rkumpera@novell.com>
4580
4581         * verify.c (do_newobj): do delegate verification.
4582
4583         * verify.c (verify_delegate_compatibility): perform delegate
4584         verification.
4585
4586         * verify.c (verify_ldftn_delegate): perform tests related to
4587         ldftn delegates.
4588
4589         * verify.c (mono_delegate_signature_equal): perform the
4590         slightly diferent signature comparison required by delegates.
4591
4592         * metadata.c (mono_metadata_type_equal_full): added and exported
4593         as MONO_INTERNAL. This is a version of mono_metadata_type_equal that
4594         allows signature only comparison.
4595
4596         * metadata-internal.h (mono_metadata_type_equal_full): added and exported
4597         as MONO_INTERNAL.
4598
4599 2008-01-07  Rodrigo Kumpera  <rkumpera@novell.com>
4600
4601         * verify.c: added a bunch of stack_slot_* functions to
4602         make access to stack slot type easier. This is required to
4603         allow optional flags, like null literal, boxed value and
4604         this pointer.
4605         All access paths to IlStackDesc::stype have been changed 
4606         to use these new funcions.
4607         Removed a bunch of unused functions and cleared all warnings.
4608         This patch introduces the usage of the this pointer and 
4609         boxed value flags.
4610
4611 2008-01-07  Zoltan Varga  <vargaz@gmail.com>
4612
4613         * boehm-gc.c (mono_gc_deregister_root): Fix win32 build.
4614
4615 2008-01-06  Zoltan Varga  <vargaz@gmail.com>
4616
4617         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Change signature to
4618         match managed version.
4619
4620         * appdomain.c: Bump corlib version.
4621         
4622         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Check for a null
4623         argument.
4624
4625 2008-01-06  Gert Driesen  <drieseng@users.sourceforge.net>
4626
4627         * icall.c (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies)
4628         Set public key token to zero-length byte array if assembly is not
4629         strongnamed.
4630
4631 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
4632
4633         * icall.c (ves_icall_System_Array_SetValueImpl): Use a write barrier when
4634         writing a vtype array elem.
4635
4636 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
4637
4638         * assembly.c (build_assembly_name): return FALSE if length of token is
4639         not 16 (if not "null").
4640         (mono_assembly_name_parse_full): return FALSE if value of version,
4641         culture, token or key is 0.
4642         * icall.c (fill_reflection_assembly_name): add boolean arguments to
4643         specify whether public key and public key token must be set to default
4644         value (zero-length byte array) if not available. Set versioncompat to
4645         SameMachine. If public key is available or the default is set, then
4646         set PublicKey flag.
4647         (ves_icall_System_Reflection_Assembly_FillName): if no public key
4648         is available, use empty byte array as default value. On the 2.0
4649         profile, use default value for public key token if not set.
4650         (ves_icall_System_Reflection_InternalGetAssemblyName): on the 1.0
4651         profile, use default value for public key if not set. On the 2.0
4652         profile, use default value for public key token if not set.
4653         (ves_icall_System_Reflection_AssemblyName_ParseName): do not set
4654         default values for public key and public key token.
4655
4656 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
4657
4658         * object-internals.h (MonoReflectionAssemblyName): Add 'processor_architecture'
4659         field to keep it in synch with the managed object.
4660
4661         * marshal.c (emit_marshal_object): Add support for byref marshalling of
4662         delegates. Fixes #351520.
4663
4664         * sgen-gc.c (conservatively_pin_objects_from): Tell valgrind that the pin queue
4665         contains defined memory.
4666         
4667         * sgen-gc.c: Fix 64 bit warnings. Fix some typos. Update GC stats in mono_stats.
4668
4669         * sgen-gc.c (build_nursery_fragments): Handle half-constructed objects correctly.
4670         
4671         * sgen-gc.c (check_consistency): New helper function to do a consistency check
4672         of the GC data structures.
4673
4674         * gc-internal.h: Moved the REGISTER/UNREGISTER macros here from os/gc_wrapper.h.
4675
4676         * *.c: Include metadata/gc-internal.h instead of os/gc_wrapper.h.
4677         
4678         * object.c (mono_array_full_copy): Fix detection of whenever to use a write
4679         barrier.
4680         (mono_array_clone_in_domain): Ditto.
4681         (mono_array_clone_in_domain): Ditto.
4682
4683         * threads.c (start_wrapper): Register the thread start argument as a GC root.
4684         (cache_culture): Use a write barrier.
4685
4686         * icall.c (ves_icall_System_Array_SetValueImpl): Call a write barrier.
4687         (ves_icall_get_property_info): Ditto.
4688
4689         * object.h (MONO_STRUCT_SETREF): New macro.
4690
4691         * class-internals.h (MonoStats): Add some GC statistics.
4692
4693         * boehm-gc.c null-gc.c: Define mono_gc_deregister_root ().
4694
4695 2008-01-04  Andreas Faerber  <andreas.faerber@web.de>
4696
4697         * exception.c (mono_exception_from_name_two_strings):
4698         Break from loop after method is found.
4699
4700 2008-01-04  Dick Porter  <dick@ximian.com>
4701
4702         * process.c (process_module_string_read): Rename variable to
4703         reflect correct usage, after fixing bug 345972.
4704
4705 2008-01-03  Rodrigo Kumpera  <rkumpera@novell.com>
4706
4707         * verify.c (mono_type_create_fnptr_from_mono_method): 
4708         created a MonoType function pointer instance to be used during
4709         verification. The verifier releases this memory at end.
4710
4711         * verify.c (mono_method_is_constructor): extracted repeated
4712         checks for constructor into a single class.
4713
4714         * verify.c (do_push_field): use new extracted method
4715         for constructor check.
4716
4717         * verify.c (do_newobj): same.
4718
4719         * verify.c (do_ldftn): renamed to do_load_function_ptr
4720         and make it verify ldvirtftn too.
4721
4722         * verify.c (mono_method_verify: proper verification
4723         of ldvirtftn. release created MonoMethod instances.
4724
4725 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
4726
4727         * verify.c (token_bounds_check): added.
4728
4729         * verify.c (do_ldftn): added.
4730
4731         * verify.c (mono_method_verify): proper verificartion of ldftn.
4732
4733 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
4734
4735         * metadata.c (mono_metadata_decode_row): Assert if index is bigger
4736         than the table row count. It's the resposibility of the caller to
4737         make the bounds check and raise the correct error.
4738
4739         * metadata.c (mono_metadata_decode_row_col): Same.
4740
4741         * loader.c (mono_get_method_from_token): perform bounds check
4742         on token for methoddef table.
4743
4744 2007-12-29  Miguel de Icaza  <miguel@novell.com>
4745
4746         * icall.c
4747         (ves_icall_System_CurrentSystemTimeZone_GetTimeZoneData): Turn the
4748         assert into a negative result, the managed code already coped with
4749         that.
4750
4751         Some folks on Windows reported this error. 
4752
4753 2007-12-28  Gert Driesen  <drieseng@users.sourceforge.net>
4754
4755         * appdomain.c: Bump corlib version.
4756         * icall.c:
4757         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies): Use
4758         CultureInfo.CreateCulture to create CultureInfo for name.
4759         (fill_reflection_assembly_name): Use CultureInfo.CreateCulture to
4760         create CultureInfo for name. Fixes bug #347174.
4761
4762 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
4763
4764         * verify.c: added IL_CODE_FLAG_STACK_INITED and IL_CODE_STACK_MERGED
4765         flags.
4766
4767         * verify.c (is_valid_branch_instruction): allow branching to the
4768         first instruction of the protected block.
4769
4770         * verify.c (is_valid_cmp_branch_instruction): same.
4771
4772         * verify.c (stack_init): use IL_CODE_FLAG_STACK_INITED flag to
4773         avoid double initialization.
4774
4775         * verify.c (merge_stacks): use IL_CODE_STACK_MERGED to
4776         detect which cases the eval stack should just be copied.
4777
4778         * verify.c (mono_method_verify): check if the eval stack
4779         is empty when entering a protected block.
4780
4781 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
4782
4783         * verify.c: added is_clause_in_range, is_clause_inside_range,
4784         is_clause_nested and verify_clause_relationship. They perform
4785         the verifications stated in P1 12.4.2.7.
4786
4787         * verify.c (mono_method_verify): remove some unused variables,
4788         add the new exception clause checks, add instruction border
4789         checks for protected block start/end, improved some error 
4790         messages and fixed a bug in the way invalid instruction access
4791         is detected.
4792
4793 2007-12-26  Zoltan Varga  <vargaz@gmail.com>
4794
4795         * boehm-gc.c (mono_gc_register_thread): Use the new GC_register_my_thread () routine
4796         from GC 7.0 if available.
4797
4798         * object.c: Remove an unused define.
4799         
4800         * object.c (mono_class_compute_gc_descriptor): Fix a warning.
4801
4802         * boehm-gc.c (mono_gc_make_descr_for_array): Implement.
4803
4804         * null-gc.c (mono_gc_make_descr_for_array): Implement.
4805
4806         * object.c (mono_class_compute_gc_descriptor): Remove an #ifdef SGEN_GC.
4807
4808         * gc-internal.h: Change the signature of mono_gc_make_descr_for_string ()
4809         to take the same arguments as the other make_descr functions.
4810
4811         * boehm-gc.c null-gc.c: Add implementation for make_descr functions.
4812
4813         * objects.c: Get rid of the MAKE_DESCRIPTOR macros, call make_descr functions
4814         directly.
4815
4816         * boehm-gc.c (mono_gc_base_init): Moved the setting of GC_stackbottom here from
4817         mini.c.
4818
4819         * object.c (mono_class_compute_gc_descriptor): Move the GC_init_gcj_malloc () 
4820         call to boehm-gc.c.
4821
4822         * boehm-gc.c (mono_gc_register_root): Fix a warning.
4823
4824         * null-gc.c (mono_gc_register_root): Fix a warning.
4825
4826         * reflection.c (ALLOC_REFENTRY): Use mono_gc_alloc_fixed for boehm as well.
4827
4828         * boehm-gc.c (mono_gc_register_root): Moved definition here from gc_wrapper.h.
4829         (mono_gc_base_init): Call GC_init ().
4830
4831         * null-gc.c: Define mono_gc_register_root () as a no-op.
4832
4833         * domain.c appdomain.c: Call mono_gc_base_init () instead of MONO_GC_PRE_INIT ().
4834
4835 2007-12-24  Rodrigo Kumpera  <rkumpera@novell.com>
4836
4837         * verify.c: add prototype for merge_stacks at top
4838
4839         * verify.c (do_switch): added.
4840
4841         * verify.c (merge_stacks): on some cases the stack merging
4842         was not happening properly. Unequal stack sizes at merge
4843         points should be invalid.
4844
4845         * verify.c (mono_method_verify): added more debug info on stack state.
4846         verify switch properly.
4847
4848 2007-12-24  Zoltan Varga  <vargaz@gmail.com>
4849
4850         * method-builder.h: New file, moved the mono_mb_ declarations here from 
4851         marshal.h.
4852
4853         * boehm-gc.c marshal.c: Include method-builder.h.
4854
4855         * marshal.c: Use mono_mb_emit_branch_label () in a few places.
4856
4857         * marshal.c: Remove some code which is now in method-builder.c.
4858
4859 2007-12-23  Zoltan Varga  <vargaz@gmail.com>
4860
4861         * method-builder.c: New file, extraction of the method builder functionality 
4862         from marshal.c.
4863
4864         * marshal.c: Move the mb functions into method-builder.c.
4865
4866         * marshal.h marshal.c: Export some mono_mb_... functions.
4867
4868         * marshal.c: Use mono_mb_get_label () and mono_mb_patch_branch () in all places.
4869
4870         * loader.c (field_from_memberref): Remove the dynamic case, it is handled in
4871         the caller.
4872
4873         * class.c (mono_class_get_full): Check the token type in the dynamic case.
4874
4875         * loader.c (mono_field_from_token): Ditto.      
4876
4877         * loader.c (mono_get_method_from_token): Change the check so it checks memberref
4878         type as well.
4879         
4880         * loader.c (mono_get_method_from_token): Check the token type in the dynamic case.
4881         Fixes #342565.
4882
4883         * class-internals.h: Add new loader error type MONO_EXCEPTION_BAD_IMAGE plus
4884         a helper function for setting it.
4885
4886         * loader.c (mono_loader_error_prepare_exception): Handle MONO_EXCEPTION_BAD_IMAGE.
4887
4888         
4889         * assembly.c: Significally simplify code now that referenced assemblies are 
4890         loaded lazily. Get rid of the 'loading' hashtables. Hopefully fixes #347629.
4891
4892         * threads.h: Don't include  the internal threads-types.h header file. Fixes
4893         #349952.
4894
4895 2007-12-21  Rodrigo Kumpera  <rkumpera@novell.com>
4896
4897         * verify.c: added enum value IL_CODE_FLAG_WAS_TARGET, to represent
4898         instructions that were target of branches or are at protected block boundaries.
4899
4900         * verify.c (in_same_block): handle filter clauses.
4901
4902         * verify.c (is_valid_branch_instruction): added. checks the target of
4903         instructions br or brtrue/false.
4904
4905         * verify.c (is_valid_cmp_branch_instruction): added. checks the target of
4906         binary branch instructions such as beq and bge.
4907
4908         * verify.c (init_stack_with_value): renamed to init_stack_with_value_at_exception_boundary
4909         and made it pin the instruction as been part of the exception block.
4910
4911         * verify.c (do_boolean_branch_op): use is_valid_branch_instruction instead
4912         of in_same_block.
4913
4914         * verify.c (do_branch_op): use is_valid_cmp_branch_instruction instead
4915         of in_same_block.
4916
4917         * verify.c (do_ret): ret from a protected block is unverifiable and
4918         not invalid.
4919
4920         * verify.c (do_static_branch): verify br and br.s instructions.
4921
4922         * verify.c (merge_stacks): add extra param to support detection
4923         of branches in the middle of instructions.
4924         
4925         * verify.c (mono_method_verify): verify branches and exception blocks
4926         that target the middle of instructions. Proper verification of br and br.s.
4927
4928 2007-12-21  Zoltan Varga  <vargaz@gmail.com>
4929
4930         * reflection.c (reflection_methodbuilder_from_ctor_builder): Initialize
4931         skip_visibility field.
4932         (reflection_methodbuilder_from_dynamic_method): Ditto.
4933
4934         * object.c (mono_class_compute_gc_descriptor): Remove more unused icall
4935         registrations. Fixes #348193.
4936
4937         * threads.h: Move the internal mono_thread_get_pending_exception () to
4938         threads-types.h and rename it to mono_thread_get_undeniable_exception ().
4939
4940 2007-12-20  Zoltan Varga  <vargaz@gmail.com>
4941
4942         * object.c (mono_class_compute_gc_descriptor): Remove unused GC_gcj_fast_malloc
4943         icall registration. Fixes #348193.
4944
4945         * marshal.c (mono_marshal_get_runtime_invoke): Put all runtime invoke wrappers
4946         for corlib classes into object. Fixes #349621.
4947
4948 2007-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
4949
4950         * icall.c (property_accessor_nonpublic): new function to determine
4951         whether an accessor allows a property to be considered non-public.
4952         Returns false for private accessor(s) from parent class, and internal
4953         accessor(s) from parent on 2.0 profile (and higher).
4954         (ves_icall_Type_GetPropertiesByName): Use newly introduced function
4955         to determine whether property should be included if NonPublic flag
4956         is set. Fixes bug #349078.
4957
4958 2007-12-20  Rodrigo Kumpera  <rkumpera@novell.com>
4959
4960         * verify.c (init_stack_with_value): added.
4961
4962         * verify.c (mono_method_verify): extracted common
4963         code for exception initialization into init_stack_with_value.
4964
4965         * verify.c (mono_method_verify): initialize the exception
4966         for handler clauses as well.
4967
4968         * verify.c (mono_method_verify): fix the exception clause
4969         ordering rules, it should use handler end offset and not
4970         start offset.
4971
4972 Thu Dec 20 12:27:24 CET 2007 Paolo Molaro <lupus@ximian.com>
4973
4974         * rawbuffer.c: remove useless warning.
4975
4976 Thu Dec 20 12:10:38 CET 2007 Paolo Molaro <lupus@ximian.com>
4977
4978         * threads.h, threads-types.h: move functions to the correct header
4979         (fixes bug#349952).
4980
4981 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
4982
4983         * verify.c (mono_method_verify): proper verification
4984         of exception handling clauses ranges and fallthru in
4985         and out of protected blocks.
4986
4987 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
4988
4989         * verify.c (mono_method_verify): fixed compilation issue.
4990
4991 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
4992
4993         * verify.c (mono_method_verify): a printf slipped in, changed
4994         to use verifier debug macro.
4995
4996 2007-12-18  Rodrigo Kumpera  <rkumpera@novell.com>
4997
4998         * verify.c (is_correct_leave): check for filter clauses.
4999
5000         * verify.c (do_filter): added.
5001
5002         * verify.c (mono_method_verify): property verification of leave.
5003
5004
5005 2007-12-18  Mark Probst  <mark.probst@gmail.com>
5006
5007         * threads.c: Disable calls to _wapi_thread_signal_self() to fix
5008         Win32 build, until we figure out how to do the proper thing on
5009         Win32.
5010
5011 2007-12-17  Zoltan Varga  <vargaz@gmail.com>
5012
5013         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Fix a crash introduced
5014         by the previous patch.
5015         
5016         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Avoid calling
5017         the assembly resolve handler for refonly assemblies.
5018
5019 2007-12-17  Mark Probst  <mark.probst@gmail.com>
5020
5021         * threads.c, thread-types.h, icall.c: New shutdown safeguards.
5022         Make sure only one thread is allowed to commence shutdown, and
5023         don't allow new threads to be started once shutdown is in
5024         progress.
5025
5026 2007-12-14  Rodrigo Kumpera  <rkumpera@novell.com>
5027
5028         * verify.c (is_correct_endfilter): added.
5029
5030         * verify.c (is_unverifiable_endfilter): added.
5031
5032         * verify.c (do_endfilter): added.
5033
5034         * verify.c (mono_method_verify): property verification of endfilter
5035         and fixed a corner case or endfinally.
5036
5037 2007-12-13  Rodrigo Kumpera  <rkumpera@novell.com>
5038
5039         * verify.h: new flags to support fail fast of unverifiable code and
5040         do non-strict verification. Non-strict verification is required to
5041         have MS runtime compatibility. There are a huge amount of unverifiable
5042         code that it accepts as verifiable. The strict mode verifies the code
5043         as the specs says.
5044         Non-strict mode will be required in cases where code needs to be
5045         accepted as verifiable but fails under strict mode.
5046
5047         * pedump.c: added support to fail fast and non-strict verification.
5048
5049         * verify.c: added support for both fail fast and non-strict verification.
5050
5051 2007-12-12  Rodrigo Kumpera  <rkumpera@novell.com>
5052
5053         * verify.c (is_correct_endfinally): added.
5054
5055         * verify.c (mono_method_verify): property verification of endfinally.
5056
5057 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
5058
5059         * verify.c (in_any_block): check for filter clauses.
5060
5061         * verify.c (is_correct_rethrow): added.
5062
5063         * verify.c (mono_method_verify): property verification of rethrow.
5064
5065         * metadata.h: added MONO_OFFSET_IN_FILTER macro.
5066
5067 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
5068
5069         * verify.c (do_throw): added.
5070
5071         * verify.c (mono_method_verify): property verification of throw
5072
5073 2007-12-11  Zoltan Varga  <vargaz@gmail.com>
5074
5075         * assembly.c (mono_assembly_load_reference): Try an assembly resolve for ref-only
5076         assemblies. Fixes #346425.
5077
5078 2007-12-10  Zoltan Varga  <vargaz@gmail.com>
5079
5080         * reflection.c (mono_reflection_get_token): Call mono_image_create_token () for
5081         FieldBuilders.
5082
5083         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Fix a warning.
5084
5085         * class.c (mono_lookup_dynamic_token_class): Add a 'valid token' argument to
5086         prevent asserts when this is called with a token which might not be valid.
5087
5088         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Call
5089         lookup_dynamic_token_class with valid_token == FALSE.
5090
5091         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.       
5092
5093         * icall.c (ves_icall_System_Reflection_Module_ResolveStringToken): Ditto.
5094
5095         * icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
5096         
5097 2007-12-10  Mark Probst  <mark.probst@gmail.com>
5098
5099         * gc.c: Don't delay threadpool thread finalization unless Mono is
5100         shutting down.
5101
5102 Mon Dec 10 11:06:23 CET 2007 Paolo Molaro <lupus@ximian.com>
5103
5104         * threads.c: turn an assert into a non-fatal warning.
5105
5106 2007-12-09  Robert Jordan  <robertj@gmx.net>
5107
5108         * icall.c (GetVirtualMethod): Add missing argument validation.
5109
5110 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
5111
5112         * verify.c (do_cast): added.
5113
5114         * verify.c (mono_method_verify): property verification of castclass and isinst.
5115
5116
5117 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
5118
5119         * verify.c (mono_type_from_opcode): added opcodes for stelem.X.
5120
5121         * verify.c (do_stelem): added.
5122
5123         * verify.c (mono_method_verify): property verification of stelem.X.
5124
5125 2007-12-07  Mark Probst  <mark.probst@gmail.com>
5126
5127         * class.c, class-internals.h: Introduce an environment variable
5128         (MONO_GENERIC_SHARING) through which the extent of generic code
5129         sharing can be controlled (share all classes, share only corlib
5130         classes, or share nothing).
5131
5132         * object.c: Only create runtime generic context for classes for
5133         which sharing is enabled.
5134
5135 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
5136
5137         * verify.c (do_ldelem): refactor it to work with ldelem.any.
5138
5139         * verify.c (mono_method_verify): property verification of ldelem.any.
5140
5141 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
5142
5143         * verify.c (get_indirect_op_mono_type): renamed to mono_type_from_opcode,
5144         added ldelem.X opcodes.
5145
5146         * verify.c (do_ldelema): fixed possible invalid usage of MonoType.
5147
5148         * verify.c: proper verification of ldelem.X 
5149
5150 2007-12-06  Zoltan Varga  <vargaz@gmail.com>
5151
5152         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Allow interface cctors to be called too.
5153
5154 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
5155
5156         * verify.c (mono_method_verify): null literal requires special handling,
5157         the value pushed on stack need to be flagged as so.
5158
5159         * verify.c (do_ldelema): Verify ldelema properly.
5160
5161 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
5162
5163         * verify.c: Verify ldlen properly.
5164
5165 2007-12-05  Zoltan Varga  <vargaz@gmail.com>
5166
5167         * icall.c (ves_icall_MonoField_GetValueInternal): Check that the field belongs
5168         to the target object's type. Fixes #346160.
5169
5170 2007-12-05  Dick Porter  <dick@ximian.com>
5171
5172         * threadpool.c (socket_io_add_poll): Asynchronous connect() on
5173         Solaris needs the same workaround as BSD-derived systems.  Fixes
5174         bug 323524, patch by Burkhard Linke
5175         <burkhard.linke@CeBiTec.Uni-Bielefeld.DE>
5176
5177 2007-12-04  Gert Driesen  <drieseng@users.sourceforge.net>
5178
5179         * process.c: When ProcessStartInfo.ErrorDialog is true, pass window
5180         handle to use when error dialog is shown; otherwise, update mask
5181         to show no error dialog when an error occurs.
5182
5183 2007-12-03  Zoltan Varga  <vargaz@gmail.com>
5184
5185         * icall.c (ves_icall_MonoField_GetRawConstantValue): New icall.
5186
5187         * class.c (mono_class_get_field_default_value): New helper function to initialize
5188         field->def_type and field->data.
5189
5190 2007-11-30  Zoltan Varga  <vargaz@gmail.com>
5191
5192         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Use the delegate trampoline instead of
5193         the general one.
5194
5195         * object.c (mono_runtime_create_delegate_trampoline): New helper function.
5196
5197         * marshal.c: Avoid depending on delegate->method_info being set.
5198
5199         * object.c (mono_delegate_ctor): Avoid initializing delegate->method_info.
5200         
5201         * object.c (mono_delegate_ctor): Set delegate->method.
5202
5203         * object-internals.h (struct _MonoDelegate): Add 'method' field.
5204
5205         * appdomain.c: Bump corlib version.
5206
5207 2007-11-27  Raja R Harinath  <harinath@gmail.com>
5208
5209         * metadata.c (mono_generic_inst_equal_full): Short-circuit
5210         equality check if we're comparing canonicalized MonoGenericInsts.
5211
5212 2007-11-23  Zoltan Varga  <vargaz@gmail.com>
5213
5214         * class.c (generic_array_methods): Call mono_class_setup_methods () before
5215         accessing class->methods.
5216
5217 2007-11-22  Dick Porter  <dick@ximian.com>
5218
5219         * threads.c: Ensure that the synch_cs is set before trying to use
5220         it.
5221
5222 Thu Nov 22 12:34:04 CET 2007 Paolo Molaro <lupus@ximian.com>
5223
5224         * profiler.c: r89126 broke the statistial profiler, unbreak.
5225
5226 2007-11-22  Martin Baulig  <martin@ximian.com>
5227
5228         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 66.
5229
5230         * mono-debug.c
5231         (mono_debug_debugger_version): Bump to 3.
5232         (mono_debug_init): Hook `mono_debugger_class_loaded_methods_func'
5233         -> mono_debugger_class_initialized().
5234
5235         * mono-debug-debugger.c
5236         (mono_debugger_add_type): Renamed into mono_debugger_class_initialized().
5237
5238         * class.c
5239         (mono_debugger_start_class_init_func): Removed.
5240         (mono_debugger_class_loaded_methods_func): Added.
5241         (mono_class_setup_methods): Call it here.
5242
5243 2007-11-22  Martin Baulig  <martin@ximian.com>
5244
5245         * mono-debug.c
5246         (mono_debug_add_delegate_trampoline): New public method.
5247         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_DELEGATE_TRAMPOLINE'.
5248
5249         * mono-debug.h
5250         (MonoSymbolTable): Added `global_data_table'.
5251         (MonoDebuggerTypeKind): Removed.
5252
5253 2007-11-21  Zoltan Varga  <vargaz@gmail.com>
5254
5255         * marshal.c (mono_marshal_get_generic_array_helper): Skip visibility checks for
5256         these methods.
5257
5258         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5259         
5260 Tue Nov 20 23:10:41 CET 2007 Paolo Molaro <lupus@ximian.com>
5261
5262         * object.c: some fields don't have a valid rva: ignore them (bug #343083).
5263
5264 2007-11-20  Martin Baulig  <martin@ximian.com>
5265
5266         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 65.
5267
5268         * mono-debug-debugger.c
5269         (mono_debugger_insert_method_breakpoint): Moved here from debug-mini.c
5270         (mono_debugger_remove_breakpoint): Likewise.
5271         (mono_debugger_check_breakpoints): Likewise.
5272         (mono_debugger_register_class_init_callback): New public method.
5273         (mono_debugger_remove_class_init_callback): Likewise.
5274         (mono_debugger_add_type): Likewise.
5275
5276         * mono-debug-debugger.h
5277         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_CLASS_INITIALIZED'.
5278
5279 Tue Nov 20 20:54:12 CET 2007 Paolo Molaro <lupus@ximian.com>
5280
5281         * class.c: more interface implementations needed for the
5282         array enumerator (fixes bug #341112).
5283
5284 2007-11-18  Gert Driesen  <drieseng@users.sourceforge.net>
5285
5286         * icall.c: Renamed arguments for ves_icall_System_Enum_ToObject to
5287         fix ParamName of ArgumentNullExceptions.
5288
5289 2007-11-17  Miguel de Icaza  <miguel@novell.com>
5290
5291         * reflection.c (mono_reflection_encode_sighelper): Generate the
5292         modopts and modreqs.   I have a useless test that crashes monodis,
5293         but that shows the code working.
5294
5295 2007-11-17  Zoltan Varga  <vargaz@gmail.com>
5296
5297         * boehm-gc.c (create_allocator): Fix size calculation for the string allocator.
5298         (mono_gc_get_managed_allocator): Enable the string allocator on amd64.
5299
5300 2007-11-15  Dick Porter  <dick@ximian.com>
5301
5302         * threads.c (ves_icall_System_Threading_Thread_Join_internal):
5303         When joining a thread, it's the thread that's calling Join that
5304         gets WaitSleepJoin state not the target.  Fixes the standalone
5305         test case in bug 334740, and hopefully the whole bug too.
5306
5307 2007-11-15  Dick Porter  <dick@ximian.com>
5308
5309         * process.c: Read file version info from the files pointed at by
5310         process modules, not the current process.  Fixes bug 315969.
5311
5312         Use windows typedef names in some places to fix warnings on the
5313         windows build.
5314
5315 2007-11-15  Mark Probst  <mark.probst@gmail.com>
5316
5317         * image.c, metadata-internals.h: Added a generic_class_cache hash
5318         to MonoImage for looking up generic classes when sharing generics.
5319
5320 Thu Nov 15 16:11:30 CET 2007 Paolo Molaro <lupus@ximian.com>
5321
5322         * sgen-gc.c: warning cleanups.
5323
5324 2007-11-15  Zoltan Varga  <vargaz@gmail.com>
5325
5326         * icall.c (ves_icall_Type_GetPropertiesByName): Implement proper hiding of
5327         inherited properties.
5328
5329 2007-11-14  Mark Probst  <mark.probst@gmail.com>
5330
5331         * object.c, class-internals.h: Added more information to the
5332         runtime generic context.
5333
5334 2007-11-13  Zoltan Varga  <vargaz@gmail.com>
5335
5336         * marshal.c (mono_marshal_get_delegate_invoke): Take a delegate as argument
5337         instead of just the target method. Generalize the abstract method handling to
5338         handle any non-static method.
5339
5340         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
5341         mono_marshal_get_delegate_invoke () signature change.
5342
5343 2007-11-13  Mark Probst  <mark.probst@gmail.com>
5344
5345         * class.c, class-internals.h: Made
5346         mono_type_get_basic_type_from_generic () public.  Fixed member
5347         access check for shared generics.
5348
5349         * loader.c: Don't insert field into field cache if it's part of a
5350         non-inflated generic class.
5351
5352         * domain.c, domain-internals.h: The generic sharing context is now
5353         part of the jit info data structure.  Added two accessor
5354         functions.
5355
5356 2007-11-12  Zoltan Varga  <vargaz@gmail.com>
5357
5358         * marshal.c (mono_marshal_get_runtime_invoke): Create a non-shared wrapper for
5359         the array Get/Set/Address methods, since the JIT inlines them.
5360
5361         * metadata-internals.h (MonoImage): Add 'runtime_invoke_direct_cache'.
5362
5363         * image.c (mono_image_close): Free runtime_invoke_direct_cache.
5364         (mono_image_init): Initialize runtime_invoke_direct_cache.      
5365
5366         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
5367         mono_marshal_get_delegate_invoke signature change.
5368
5369         * marshal.c (mono_marshal_get_delegate_invoke): Receive the target_method as
5370         an additional argument. Add support for invoking abstract methods.
5371
5372         * metadata-internals.h (MonoImage): Add 'delegate_abstract_invoke_cache'.
5373
5374         * image.c (mono_image_close): Free delegate_abstract_invoke_cache.      
5375
5376 2007-11-09  Mark Probst  <mark.probst@gmail.com>
5377
5378         * class.c: Do field layout for open generic classes as well.
5379
5380 2007-11-09  Mark Probst  <mark.probst@gmail.com>
5381
5382         * gc.c, gc-internal.h: Don't finalize threadpool threads with
5383         other objects, because the threadpool is still around.  Put them
5384         in a list instead and after finalizing all other objects in the
5385         root domain shut down the thread pool and then finalize the
5386         threads.  Fixes bug #337383.
5387
5388         * threads.c, thread-types.h: New mono_thread_create_internal()
5389         function for marking a thread with the threadpool flag before it
5390         started.  Set synch_cs to NULL after freeing it.
5391
5392         * threadpool.c: Mark threadpool threads before they start.
5393
5394 Thu Nov 8 15:31:21 CET 2007 Paolo Molaro <lupus@ximian.com>
5395
5396         * reflection.h, reflection.c: don't export random functions
5397         and lazy load dbnull and missing objects.
5398
5399 2007-11-07  Jonathan Chambers <joncham@gmail.com>
5400
5401         * class.c: Initialize COM types if COM interfaces
5402         are present (not just COM classes).
5403         
5404         Code is contributed under MIT/X11 license.
5405
5406 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
5407         * reflection.c:
5408         create_dynamic_mono_image: hook module profiler events (dynamic case).
5409         mono_image_basic_init: hook assembly profiler events (dynamic case).
5410
5411 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
5412         * profiler.c:
5413         simple_appdomain_unload: completely terminate the profiler
5414         instead of only processing the statistical samples.
5415         simple_shutdown: make sure this is really called exactly once,
5416         even in multithreaded applications, and always listen to
5417         appdomain events.
5418         * gc.c (mono_domain_finalize): don't call mono_profiler_appdomain_event
5419         here, the "[un]load" functions will do it.
5420         Fixes bugs #333791 and #325261.
5421
5422 2007-11-07  Geoff Norton  <gnorton@novell.com>
5423
5424         * socket-io.c:  Use the configure defines for HAVE_SOCKADDR_IN(6)_SIN_LEN
5425         rather than depend on __APPLE__.
5426
5427 2007-11-07  Mark Probst  <mark.probst@gmail.com>
5428
5429         * icall.c: Safety checks in InitializeArray.  Fixes bug #324535.
5430
5431 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com> 
5432
5433         * object.c: Fix mono_string_to_utf8 to handle NULL values inside the
5434         UTF16 MonoString. Fix the crash from bug #335488
5435
5436 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com>
5437
5438         * marshal.c: Correct (for non-Win32 OS) length != size in 
5439         mono_string_from_bstr. Fix #339530.
5440
5441 2007-11-06  Geoff Norton  <gnorton@novell.com>
5442
5443         * socket-io.c: Apple requires sin(6)_len to be set for getnameinfo
5444         to succeed
5445
5446 2007-11-05  Kornél Pál  <kornelpal@gmail.com>
5447
5448         * process.c: Added run-time GetProcessId API detection for Windows.
5449
5450 2007-11-04  Miguel de Icaza  <miguel@novell.com>
5451
5452         * reflection.c  (mono_param_get_objects): If a parameter has the
5453         attribute [System.Runtime.InteropServices.Optional] we should
5454         set the DefaultValue of the ParameterInfo to be
5455         System.Reflection.Missing instead of DBNull.
5456
5457         See bug #339013.
5458
5459         (mono_get_reflection_missing_object): New method,
5460         returns the System.Reflection.Missing.Value singleton instance.
5461
5462 2007-11-03  Atsushi Enomoto  <atsushi@ximian.com>
5463
5464         * culture-info-table.h : regenerated.
5465
5466 2007-11-02  Jonathan Chambers <joncham@gmail.com>
5467
5468         * icall.c: Use GetEnvironmentStrings on windows
5469         so we are using the same environment block as 
5470         GetEnvironmentVariable/SetEnvironmentVariable. Fixes
5471         #333740.
5472         
5473         Code is contributed under MIT/X11 license.
5474
5475 2007-10-31  Martin Baulig  <martin@ximian.com>
5476
5477         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 64.
5478
5479         * mono-debug-debugger.h
5480         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_TRAMPOLINE'.
5481
5482 2007-10-30  Zoltan Varga  <vargaz@gmail.com>
5483
5484         * reflection.c (mono_custom_attrs_from_class): Add support for dynamic inflated 
5485         classes.
5486
5487 2007-10-30  Atsushi Enomoto  <atsushi@ximian.com>
5488
5489         * culture-info-table.h : regenerated.
5490
5491 2007-10-30  Robert Jordan  <robertj@gmx.net>
5492
5493         * icall-def.h, icall.c:
5494         Add ves_icall_Remoting_RemotingServices_GetVirtualMethod ().
5495
5496         Code is contributed under MIT/X11 license.
5497
5498 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
5499
5500         * class.c (mono_class_setup_vtable): Find the inflated methods in the
5501         inflated class instead of inflating them again.
5502         
5503         * class.c (mono_class_setup_vtable): Inflate the override methods in the 
5504         dynamic case.
5505
5506         * class.c (mono_generic_class_get_class): Set klass->property.count as well.
5507         Call setup_supertypes () after klass->parent is set.
5508         (mono_class_setup_properties): Enable this to work on dynamic generic classes.
5509
5510         * reflection.c (mono_type_get_object): Only return a MonoGenericClass object
5511         for inflated instances of not yet created dynamic generic classes.
5512         (ctorbuilder_to_mono_method): Handle the case when this is called multiple
5513         times from inflated_method.
5514         (methodbuilder_to_mono_method): Ditto.
5515
5516 Mon Oct 29 21:02:53 CET 2007 Paolo Molaro <lupus@ximian.com>
5517
5518         * gc.c: code cleanup and removed old untested option of not creating the
5519         finalizer thread.
5520
5521 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
5522
5523         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Avoid
5524         creating a jump trampoline for dynamic methods.
5525
5526 2007-10-29 Rodrigo Kumpera <rkumpera@novell.com>
5527
5528         * reflection.c (mono_image_create_token): Correctly encode methods and constructors of
5529         generic TypeBuilders when called from another method of the same type (bug #335131).
5530
5531
5532 2007-10-27  Zoltan Varga  <vargaz@gmail.com>
5533
5534         * reflection.c (methodbuilder_to_mono_method): Revert the last change as it
5535         doesn't seem to work perfectly.
5536         
5537         * reflection.c (ctorbuilder_to_mono_method): Handle the case when this is
5538         called multiple times.
5539         (methodbuilder_to_mono_method): Ditto.
5540         (resolve_object): Inflate FieldBuilder's.
5541
5542 Fri Oct 26 19:38:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
5543
5544         * string-icalls.c, string-icalls.h, appdomain.c: patch from
5545         Tyler Larson <mono-devel@tlarson.com> to fix the handling of
5546         RemoveEmptyEntries in the string.Split implementation (bug #322375).
5547
5548 2007-10-26  Dick Porter  <dick@ximian.com>
5549
5550         * appdomain.c (MONO_CORLIB_VERSION): Bump version because of
5551         Thread initialisation changes
5552
5553 2007-10-26 Rodrigo Kumpera <rkumpera@novell.com>
5554
5555         * verify.c: fix compatibility check between arrays and System.Array
5556
5557 2007-10-26  Zoltan Varga  <vargaz@gmail.com>
5558
5559         * reflection.c (mono_reflection_get_custom_attrs_info): Handle MonoGenericClass
5560         too. Fixes #336999.
5561
5562 2007-10-25  Zoltan Varga  <vargaz@gmail.com>
5563
5564         * object.c (mono_value_box): Use typed allocation here.
5565
5566 2007-10-23  Zoltan Varga  <vargaz@gmail.com>
5567
5568         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Create a jump
5569         trampoline instead of compiling the method right away.
5570
5571         * class-internals.h object.c: Add a JIT callback to create a jump trampoline.
5572
5573 2007-10-21  Zoltan Varga  <vargaz@gmail.com>
5574
5575         * class.c (mono_generic_class_get_class): Avoid setting klass->size_inited and
5576         related fields for dynamic classes. Fixes #334493.
5577
5578 2007-10-20  Zoltan Varga  <vargaz@gmail.com>
5579
5580         * class.c (mono_generic_class_get_class): Set klass->field.count as well.
5581         
5582         * class.c (mono_class_layout_fields): Use 1 instead of TRUE for consistency.
5583
5584         * class.c (mono_class_layout_fields): Set size_inited for generic classes as well.
5585         (mono_class_setup_vtable): Obtain overrides for dynamic generic classes correctly.
5586
5587         * class.c (mono_class_setup_methods): Handle dynamic inflated classes correctly.
5588
5589         * reflection.c (create_generic_typespec): Initialize klass->generic_container
5590         if needed.
5591         (reflection_methodbuilder_to_mono_method): Set container->is_method to TRUE.
5592
5593 2007-10-18  Jonathan Chambers <joncham@gmail.com>
5594
5595         * marshal.c: Use correct key when removing item
5596         from ccw_hash.
5597         
5598         Code is contributed under MIT/X11 license.
5599
5600 2007-10-17  William Holmes  <billholmes54@gmail.com>
5601
5602         *marshal.c: Adding a case to marshal booleans to U1
5603
5604         Code is contributed under MIT/X11 license.
5605
5606 2007-10-18  Zoltan Varga  <vargaz@gmail.com>
5607
5608         * class.c (mono_class_from_name): Search the modules compromising dynamic
5609         assemblies. Fixes #331601.
5610
5611 2007-10-16  Zoltan Varga  <vargaz@gmail.com>
5612
5613         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Throw an
5614         exception if the type name contains an assembly component. Fixes #334203.
5615
5616         * reflection.c (mono_reflection_get_type_with_rootimage): Search all the
5617         modules inside dynamic assemblies. Fixes #334200.
5618         
5619         * reflection.c: Set image->public_key and image->public_key_length;
5620
5621         * metadata-internals.h (MonoDynamicImage): Add public_key and public_key_len
5622         fields.
5623
5624         * image.c (mono_image_get_public_key): Handle dynamic assemblies. Fixes #334173.        
5625         
5626 2007-10-16  Mark Probst  <mark.probst@gmail.com>
5627
5628         * metadata.c: Implemented correct comparing of generic classes.
5629         An inflated generic class can be equal to a non-inflated one if it
5630         is inflated with generic type variables as type arguments.  Fixes
5631         bug #333798.
5632
5633 2007-10-15  Dick Porter  <dick@ximian.com>
5634
5635         * monitor.c (mono_monitor_try_enter_internal): Set thread state to
5636         WaitSleepJoin while it is waiting to acquire a lock.  Fixes bug
5637         81646.
5638
5639         * threads.c: Turn the thread synch_lock into a CRITICAL_SECTION,
5640         instead of a monitor lock.  This means that monitor_try_enter and
5641         co can set the thread state safely.
5642         (ves_icall_System_Threading_Thread_Interrupt_internal): Always set
5643         thread_interrupt_requested, so interrupt actually works.
5644
5645         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal,
5646         ves_icall_System_Net_Sockets_Socket_Select_internal): Use thread
5647         state accessor function
5648
5649 2007-10-15  Martin Baulig  <martin@ximian.com>
5650
5651         * mono-debug.h
5652         (MONO_DEBUGGER_VERSION): Bump to 63 to make it impossible to use
5653         the debugger with the current runtime.
5654
5655 Mon Oct 15 10:20:56 CEST 2007 Paolo Molaro <lupus@ximian.com>
5656
5657         * object.c, object-internals.h: added the ability to set a single
5658         trampoline for all the slots in a vtable.
5659
5660 Fri Oct 12 17:50:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
5661
5662         * marshal.c: deal with a possible race condition during multicast
5663         delegate invocation.
5664
5665 Fri Oct 12 13:31:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
5666
5667         * class.c: ensure value type methods don't have the synchronized
5668         flag set.
5669
5670 Fri Oct 12 08:10:59 CEST 2007 Paolo Molaro <lupus@ximian.com>
5671
5672         * string-icalls.c, string-icalls.h: reverted unapproved patch that
5673         breaks the build.
5674
5675 2007-10-11  Joel Reed  <joelwreed@comcast.com>
5676
5677         * string-icalls.c, string-icalls.h: modify System_String_InternalSplit
5678         to take an options parameter so that empty entries can be removed during
5679         the split procedure. Patch from: Tyler Larson <mono-devel@tlarson.com>
5680
5681 Thu Oct 11 20:16:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
5682
5683         * marshal.c: make sure we don't store the signature from a dynamic
5684         method into the runtime invoke cache (bug #327189).
5685
5686 Thu Oct 11 18:22:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
5687
5688         * marshal.c: make sure the wrapper methods are properly initialized.
5689
5690 2007-10-11  Mark Probst  <mark.probst@gmail.com>
5691
5692         * metadata.c, metadata-internals.h: Generalized
5693         mono_type_stack_size() to mono_type_stack_size_internal() which
5694         takes an additional argument specifying whether it allows open
5695         types.
5696
5697 2007-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
5698
5699         * verify.c (do_invoke_method): handle typedbyref params
5700         correctly and check for unverifiable return values.
5701
5702         * verify.c (do_newobj): fix a warning.
5703
5704 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
5705
5706         * verify.c: don't tread typedbyref as allways unverifable,
5707         so uses, like (ld/st)loc.0 are valid. verify for the cases
5708         that it matters, like boxing related operations.
5709
5710 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
5711
5712         * verify.c: add verification of the newobj opcode. verification
5713         of delegate instantation still missing due ldftn and virldftn not
5714         pushing the function type on stack
5715
5716 2007-10-08  Mark Probst  <mark.probst@gmail.com>
5717
5718         * class-internals.h: Runtime generic context data structure
5719         definition.
5720
5721         * object.c: Initialization of runtime generic context at runtime
5722         vtable creation time.
5723
5724 2007-10-08  Massimiliano Mantione  <massi@ximian.com>
5725         * class.c (mono_class_create_from_typedef,
5726         mono_class_from_generic_parameter, mono_ptr_class_get,
5727         mono_fnptr_class_get, mono_bounded_array_class_get)
5728         * domain.c (mono_domain_create, mono_domain_free)
5729         * assembly.c (mono_assembly_load_from_full, mono_assembly_close)
5730         * image.c (do_mono_image_load, mono_image_close):
5731         Hooked up load-unload profiler events.
5732
5733 Mon Oct 8 11:38:04 CEST 2007 Paolo Molaro <lupus@ximian.com>
5734
5735         * domain.c: track statistics about the actual amount of native code
5736         allocated.
5737
5738 Sat Oct 6 10:01:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
5739
5740         * class.c: the valuetype enumerators don't have the additional
5741         supertypes interfaces.
5742
5743 Fri Oct 5 20:33:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
5744
5745         * class.c: need more interfaces setup for the IEnumerator<T>
5746         object created for arrays (tests/ienumerator-interfaces.2.cs).
5747
5748 2007-10-05  Zoltan Varga  <vargaz@gmail.com>
5749
5750         * class.c (mono_ldtoken): Handle methodspec tokens as well. Fixes #331097.
5751
5752 2007-10-05  Alp Toker  <alp@atoker.com>
5753
5754         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
5755         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
5756         #315863.
5757
5758 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
5759
5760         * verify.c (verify_type_compatibility_full): verification of
5761         compatibility improved, validates correctly non-strict checks between
5762         native int and I4 types different than (unsigned)int32.
5763
5764         * verify.c (do_store_indirect): added, do all verification of
5765         ldind.X opcodes. 
5766
5767         * verify.c (get_load_indirect_mono_type): renamed to
5768         get_indirect_op_mono_type, as it now returns the MonoType for 
5769         ldind.X and stind.X opcodes.
5770
5771 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
5772
5773         * reflection.c: Fix the encoding of generic type definition for
5774         TypeBuilders.
5775
5776         * reflection.c (mono_image_typedef_or_ref_full: do the same thing as
5777         mono_image_typedef_or_ref but allows to specify if typespec lookups should
5778         be made. Typespec check is done prior to typeref cache lookup.
5779
5780         * reflection.c (mono_image_typedef_or_ref): now just delegate to
5781         mono_image_typedef_or_ref_full.
5782
5783         * reflection.c (encode_generic_class): encode the generic class
5784         directly instead of calling encode_type.
5785
5786         * reflection.c (encode_type): encode the generic type definition
5787         MonoClass as a generic instantiation.
5788
5789         * reflection.c (create_typespec): cache typespec tokens in
5790         the assembly->typespec cache. Don't create typespec for a generic
5791         instance MonoClass. Create typespec for the generic type defintion.
5792
5793         * reflection.c (create_generic_typespec): encode the generic
5794         class directly instead of calling encode_type.
5795
5796         * reflection.c (mono_image_create_token): encode the generic
5797         type definition not using a typespec for MonoType instances.
5798
5799
5800 2007-10-04  Raja R Harinath  <rharinath@novell.com>
5801
5802         Fix #328812
5803         * class.c (mono_image_init_name_cache): Don't return nested
5804         'protected internal' classes.
5805         (mono_class_from_name_case): Likewise.
5806
5807 2007-10-04  Atsushi Enomoto  <atsushi@ximian.com>
5808
5809         * icall-def.h, icall.c : get_bundled_machine_config() is now the
5810           common function used by both DefaultConfig in System.dll and
5811           InternalConfigurationHost in System.Configuration.dll.
5812
5813 Wed Oct 3 17:26:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
5814
5815         * class.c: automatically add to vectors only a few essential explicit
5816         generic interfaces. The rest of the interfaces that arrays should
5817         provide are currently implicitly added (but still not lazily, see the
5818         design in the discussion of bug#325495 for the details of what is
5819         needed for that). Additionally, implicit interfaces are assigned the
5820         same vtable slot as the explicit interfaces (as they are compatible):
5821         this enables huge memory savings since we don't need to instantiate
5822         as many memthods and as large vtables anymore. Also, Since
5823         GetEnumerator<T> returns an instance of a type that is required to
5824         support a similarly large set of interfaces as arrays, we add
5825         implicit interfaces and interface offset sharing support to those
5826         types, too. This change adds all the required interfaces so that
5827         the anonarray.cs test case in the bug report works (we don't add
5828         all the interfaces to arrays of arrays 3-level deep and more because
5829         of the memory requirements explained in the bug and since they are much
5830         less common: the lazy-loading support will enabled them to work, too).
5831
5832 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
5833
5834         * verify.c (merge_stacks): major clean up, all type compatibility
5835         checks are done by verify_type_compatibility. This fix my earlier lack
5836         of understanding of the CLR type system and merge_stacks no longer looks
5837         scary.
5838
5839         * verify.c: fixed some bad spelling.
5840
5841 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
5842
5843         * verify.c (mono_type_from_stack_slot): added. returns the MonoType for
5844         a given stack slock.
5845         
5846         * verify.c: killed verify_type_compat in favor of verify_type_compatibility and
5847         verify_type_compatibility_full. This removed a near indentical function and fixed
5848         handling of Int32 and IntPtr across all opcodes.
5849
5850 Tue Oct 2 15:24:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
5851
5852         * class.c: only vectors have the additional generic interfaces.
5853
5854 2007-10-01  Jonathan Chambers <joncham@gmail.com>
5855
5856         * mono-config.c: Use g_strcasecmp instead of
5857         strcasecmp like everywhere else to fix
5858         compilation with MSVC.
5859         
5860         Code is contributed under MIT/X11 license.
5861
5862 Mon Oct 1 14:39:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
5863
5864         * object.c, object-internals.h: refactored the IMT code to enable
5865         building a single slot at a time and lazily creating the IMT trampolines
5866         and thunks.
5867
5868 2007-09-29  Zoltan Varga  <vargaz@gmail.com>
5869
5870         * loader.c (inflate_generic_signature): Allocate inflated signatures from the heap.
5871
5872         * metadata.c (mono_metadata_free_inflated_signature): Free the signature itself too.
5873         Fixes #328501.
5874         
5875 2007-09-29  Raja R Harinath  <harinath@gmail.com>
5876
5877         * loader.c (method_from_methodspec): Rearrange to avoid
5878         un-necessary exposition.  Don't assert out if the method's
5879         declaring type is a generic type definition.
5880
5881 2007-09-28  Martin Baulig  <martin@ximian.com>
5882
5883         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 61.
5884
5885 Fri Sep 28 20:15:47 CEST 2007 Paolo Molaro <lupus@ximian.com>
5886
5887         * class-internals.h: optimize field layout of MonoClass to
5888         requires less cachelines at runtime and save a few bytes on 64 bit
5889         systems.
5890
5891 2007-09-28  Jb Evain  <jbevain@novell.com>
5892
5893         * reflection.c: when encoding type names in custom attributes,
5894         if the type is a closed generic type, its generic arguments
5895         have to be serialized as AssemblyQualifiedName, so that when
5896         they are deserialized, it's possible to re-create them properly.
5897         Fixes #329450.
5898
5899
5900 Fri Sep 28 19:19:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
5901
5902         * object.c, class-internals.h: added delegate-creation counter.
5903
5904 Fri Sep 28 18:07:53 CEST 2007 Paolo Molaro <lupus@ximian.com>
5905
5906         * class.c: cleanup of the code that synthetizes interfaces for
5907         arrays in 2.0: saves quit a bit of corlib mempool memory.
5908         Code to fix bug #325495 ifdeffed out for now until the issues
5909         with memory usage and O(n^2) behaviour are fixed.
5910
5911 Fri Sep 28 17:19:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
5912
5913         * marshal.c: when possible, do not duplicate the name of the methods
5914         in the method builder and in the generated MonoMethod.
5915
5916 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
5917         * verify.c: added support for type checking ldind_* opcodes.
5918
5919 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
5920
5921         * class-internals.h (struct _MonoGenericClass): new field is_tb_open
5922         which is used to distinguish the fully open instantiation of a TypeBuilder
5923         with the rest. This temporary hack is required to restore the property that
5924         the fully open instantiation is the same type of the generic type definition.
5925
5926         * class-internals.h (mono_generic_class_is_generic_type_definition):
5927         new function as part of the internal API.
5928
5929         * class.c (inflate_generic_type): return NULL when the generic inst is
5930         fully open. The fully open generic type is now the same as the generic type
5931         definition for non TypeBuilder types.
5932
5933         * class.c (mono_generic_class_get_class): removed assert since it is
5934         no longer valid, gklass->cached_class can point to the generic type definition.
5935
5936         * class.c (mono_generic_class_is_generic_type_definition): new.
5937
5938         * metadata.c (mono_generic_class_hash): added is_tb_open field
5939         to the hash calculation.
5940
5941         * metadata.c (free_generic_class): if the generic class is associated
5942         with the generic type definition, its field will come from the mempool and
5943         must not be freed.
5944
5945         * metadata.c (mono_metadata_is_type_builder_generic_type_definition):
5946         new, this function identifies the corner case of a TypeBuilder fully open
5947         instantiation.
5948
5949         * metadata.c (mono_metadata_lookup_generic_class): use is_tb_open
5950         for lookup. Set gclass->cached_class to be the container class in case of
5951         the fully open instantiation of non TypeBuilder types.
5952
5953         * metadata.c (_mono_metadata_generic_class_equal): use is_tb_open
5954         to compare generic classes.
5955
5956         * reflection.c (method_encode_methodspec): remove assert that
5957         no longer is valid.
5958
5959         * reflection.c (mono_reflection_generic_class_initialize): add
5960         an aditional assert to ensure the proper type is used.
5961
5962 2007-09-26  Rodrigo Kumpera  <rkumpera@novell.com>
5963
5964         * verify.c: disabled all debug spew by default, define MONO_VERIFIER_DEBUG
5965         to enjoy it.
5966
5967 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
5968
5969         * verify.c (push_arg): Fixed support for ldarga
5970         * verify.c (set_stack_value): Removed superfluous parameter, fixed the
5971         MonoType used as first arg in case of instance calls.
5972
5973 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
5974
5975         * verify.c: Support for verifying VAR and MVAR types, 
5976
5977 2007-09-25  Zoltan Varga  <vargaz@gmail.com>
5978
5979         * icall.c (ves_icall_get_property_info): Set the reflected type of the
5980         accessors correctly.
5981
5982 Tue Sep 25 14:56:03 CEST 2007 Paolo Molaro <lupus@ximian.com>
5983
5984         * threads.c: support OSX and other systems in
5985         mono_thread_get_stack_bounds (bug #328026).
5986
5987 2007-09-25  Martin Baulig  <martin@ximian.com>
5988
5989         * mono-debug.h
5990         (MonoDebugVarInfo): Replace `MonoClass *klass' with `MonoType *type'.
5991
5992 2007-09-24  Martin Baulig  <martin@ximian.com>
5993
5994         * mono-debug.h
5995         (MonoDebugClassEntry): Moved the definition of this struct into
5996         mono-debug.c to make it private.
5997
5998         * mono-debug.c
5999         (MonoDebugClassEntry): Removed `symfile_id'; since we now use one
6000         type table per symbol file, we don't need to store the symfile id
6001         any longer.
6002
6003 2007-09-24  Martin Baulig  <martin@ximian.com>
6004
6005         Create one type table per symbol file, since a `MonoClass *' gets
6006         invalid when its image is unloaded.
6007
6008         * mono-debug.h (MonoSymbolTable): Removed `type_table'.
6009         (MonoDebugHandle): Added `type_table'.
6010
6011 Mon Sep 24 17:25:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
6012
6013         * mempool.c, mempool.h: added mono_mempool_new_size () API
6014         to be able to specify a smaller initial size for the pool.
6015         Adjusted the code to slowly increase pool size before using
6016         the previous default size.
6017         * image.c: use a small initial size for image mempools.
6018
6019 2007-09-23  Zoltan Varga  <vargaz@gmail.com>
6020
6021         * marshal.c (emit_marshal_array): Generate valid IL for byref array case.
6022         Fixes ##320990.
6023
6024         * icall.c (ves_icall_System_Reflection_Assembly_get_ManifestModuleInternal): 
6025         Rename this to ves_icall_System_Reflection_Assembly_GetManifestModuleInternal.
6026
6027 2007-09-22  Zoltan Varga  <vargaz@gmail.com>
6028
6029         * metadata.c (mono_type_create_from_typespec): Remove an invalid
6030         free. Fixes #327438.
6031
6032 2007-09-21  Raja R Harinath  <harinath@gmail.com>
6033
6034         * metadata.c (type_in_image) <MONO_TYPE_SZARRAY>: Handle arrays of
6035         generic instantiations, etc.
6036         <MONO_TYPE_ARRAY>: Likewise.
6037
6038 2007-09-21  Martin Baulig  <martin@ximian.com>
6039
6040         * mono-debug.h (MonoSymbolFilePriv, MonoDebugHandlePriv): Removed;
6041         these structs were never defined.
6042         (MonoDebugHandle): Removed the `_priv' field, it was never used.
6043
6044 2007-09-21  Martin Baulig  <martin@ximian.com>
6045
6046         * mono-debug.h (MonoDebugVarInfo): Add `MonoClass *klass'.
6047
6048 Fri Sep 21 14:39:45 CEST 2007 Paolo Molaro <lupus@ximian.com>
6049
6050         * image.c: removed the guid hash tables: we can get the same info
6051         without the additional memory usage hit (partially fixes also bug #327052).
6052
6053 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
6054
6055         * profiler.h, profiler-private.h, profiler.c: add a new profiler
6056         event to handle unloading methods. After the event is called, the
6057         corresponding MonoMethod* must be considered invalid.
6058         * loader.c (mono_free_method): call the new mono_profiler_method_free
6059         event.
6060
6061 2007-09-20  Mark Probst  <mark.probst@gmail.com>
6062
6063         * domain-internals.h: New flag in MonoJitInfo which marks shared
6064         generic methods.  New hash table (shared_generics_hash) in
6065         MonoDomain to keep track of shared generic methods.  Prototypes
6066         for functions to register and lookup shared generic methods.
6067
6068         * domain.c: Support for registering and looking up shared generic
6069         methods via a hash table (shared_generics_hash) in MonoDomain.
6070
6071         * class-internals.h: New exception to signal failure of shared
6072         compilation of a generic method.  New counters for generics
6073         sharing in MonoStats.
6074
6075 Thu Sep 20 16:59:36 CEST 2007 Paolo Molaro <lupus@ximian.com>
6076
6077         * image.c, metadata-internals.h: don't keep a file descriptor open
6078         for loaded assemblies (bug#325988).
6079
6080 2007-09-19  Raja R Harinath  <rharinath@novell.com>
6081
6082         * metadata.c (signature_in_image): New.  Carve out of type_in_image.
6083         (ginst_in_image, gclass_in_image): Simplify.  Change signature to
6084         use the corresponding datatypes.
6085         (type_in_image): Update to changes.
6086         (CleanForImageUserData): Simplify.
6087         (steal_gclass_in_image): Carved out of old 'gclass_in_image'.
6088         Avoid quadratic behaviour in handling the "stolen" list by
6089         separating the filter predicate out, and by prepending the stolen
6090         items rather than appending them.
6091         (steal_ginst_in_image): Likewise.
6092         (mono_metadata_clean_for_image): Update to changes.
6093
6094 2007-09-19  Martin Baulig  <martin@ximian.com>
6095
6096         * domain.c (mono_cleanup): Call mono_debug_cleanup() here.
6097
6098 2007-09-19  Martin Baulig  <martin@ximian.com>
6099
6100         * mono-debug.c (mono_debug_cleanup): Don't call
6101         mono_debugger_cleanup(); this is now called earlier from mini_cleanup().
6102
6103 2007-09-19  Raja R Harinath  <harinath@gmail.com>
6104
6105         Fix crash on 'make run-test' in mcs/errors
6106         * metadata.c (type_in_image): New.  Carve out of ginst_in_image.
6107         Avoid more potential allocations in mono_class_from_mono_type.
6108         (ginst_in_image): Update to changes.
6109         (gclass_in_image): Rearrange slightly.
6110
6111 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
6112
6113         * class.c (mono_class_init): Move the code that sets up class->methods to 
6114         mono_class_setup_methods () for inflated generic classes too. Ditto for properties.
6115
6116         * metadata.c (mono_metadata_get_inflated_signature): New function to return a
6117         canonical instance of an inflated generic signature.
6118         (mono_type_create_from_typespec): Remove an invalid free.
6119
6120         * loader.c (mono_method_get_signature_full): Use mono_metadata_get_inflated_signature.  
6121
6122 2007-09-18  Marek Habersack  <mhabersack@novell.com>
6123
6124         * domain-internals.h: added a declaration of the
6125         mono_assembly_load_full_nosearch internal function.
6126
6127         * assembly.c (mono_assembly_load_with_partial_name): use
6128         mono_try_assembly_resolve return value properly.
6129         (mono_assembly_load_full_nosearch): copied the function body from
6130         mono_assembly_load_full, without the code to invoke assembly
6131         search hooks.
6132         (mono_assembly_load_full): calls the above new function and if the
6133         assembly is not resolved, invokes the search hooks.
6134
6135         * appdomain.c (mono_runtime_init): restore the global postload
6136         assembly search handlers.
6137
6138 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
6139
6140         * class.c (mono_class_init): Make sure class->methods and class->properties
6141         are never NULL in the generics case.
6142
6143         * metadata.c (free_generic_class): Enable this again, skip the dynamic case.
6144
6145 2007-09-17  Zoltan Varga  <vargaz@gmail.com>
6146
6147         * metadata.c (free_generic_class): Disable some code to fix the build.
6148
6149         * domain.c (mono_cleanup): Fix a crash introduced by a previous patch.
6150
6151         * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data
6152         from the image mempool.
6153
6154         * metadata.c (free_generic_class): Free more data from the inflated class.
6155
6156         * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool.
6157
6158         * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
6159         mempool.
6160         (mono_type_create_from_typespec): Ditto.
6161
6162         * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
6163         MonoImage to the caller.
6164         (mono_init_internal): Save the opened image in a global variable.
6165         (mono_cleanup): Close the image opened in get_runtimes_from_exe.
6166
6167         * reflection.c (resolve_object): Fix a leak.
6168
6169         * metadata.c: Fix the freeing of data in the generics caches.
6170         
6171         * metadata.c (free_generic_inst): Comment this out to fix the build.
6172         (free_generic_class): Ditto.
6173
6174         * metadata.c: Free cached generic methods, instantinations and classes when
6175         they are removed from the caches.
6176         (mono_metadata_free_type): Free the type itself.
6177
6178         * class.c: Free the result of mono_class_inflate_generic_type () in a few
6179         places.
6180
6181 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
6182
6183         * boehm-gc.c: restrict managed allocs to __thread supporting
6184         architectures.
6185
6186 2007-09-16  Zoltan Varga  <vargaz@gmail.com>
6187
6188         * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
6189         (mono_generic_class_get_class): Fix a leak.
6190
6191         * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
6192         mono_metadata_free_type ().
6193         (mono_metadata_inflate_generic_inst): Fix a leak.
6194
6195 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
6196
6197         * mono-debug.c (free_header_data): Fix a leak missed earlier.
6198
6199         * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
6200         mempool.
6201
6202         * mono-debug.c (mono_debug_close_image): Fix call to 
6203         g_hash_table_remove ().
6204
6205 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
6206
6207         * icall-def.h: redirect all the string ctor to the managed
6208         CreateString () methods.
6209         * string-icalls.c, string-icalls.h: removed dead code for string
6210         ctors and icalls.
6211
6212 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
6213
6214         * mono-debug.c: Fix memory leaks.
6215
6216 2007-09-14  Jonathan Chambers <joncham@gmail.com>
6217
6218         * threads-types.h: Implement mono_hazard_pointer_set and 
6219         mono_hazard_pointer_clear macros using do/while(0) to fix
6220         compilation with MSVC.
6221         
6222         Code is contributed under MIT/X11 license.
6223
6224 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
6225
6226         * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
6227         -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
6228
6229 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
6230
6231         * icall-def.h, string-icalls.c: get rid of old, no longer used, string
6232         icalls.
6233
6234 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
6235
6236         * boehm-gc.c, gc-internal.h, object.c: allow strings to be
6237         managed-code allocated as well.
6238
6239 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
6240
6241         * class.c (mono_class_is_assignable_from): Add support for generic variance.
6242
6243 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
6244
6245         * boehm-gc.c: fixed the build after the AOT changes.
6246
6247 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
6248
6249         * wrapper-types.h: Add an ALLOC wrapper type.
6250
6251         * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
6252         reference managed allocator methods.
6253
6254 2007-09-12  Marek Safar  <marek.safar@gmail.com>
6255
6256         * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
6257         of Type array and not MonoType, a fix suggested by Hari.
6258         
6259 2007-09-12  Jonathan Chambers <joncham@gmail.com>
6260
6261         * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
6262         and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
6263         
6264         Code is contributed under MIT/X11 license.
6265
6266 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
6267
6268         * domain.c, object.c, mono-config.c, object-internals.h: Fixed  #82416.
6269
6270 2007-09-12  Marek Habersack  <mhabersack@novell.com>
6271
6272         * image.c (do_mono_image_open): if assembly file fails to open and
6273         MONO_IOMAP is in effect, try to find the path in a
6274         case-insensitive way.
6275
6276         * appdomain.c (mono_runtime_init): do not install postload hooks -
6277         tests show that MS.NET doesn't use anything of that sort to
6278         trigger the AppDomain.AssemblyResolve event.
6279         (mono_try_assembly_resolve): renamed from try_assembly_resolve and
6280         made non-static.
6281         (mono_runtime_init): init portability helpers here.
6282
6283         * assembly.c (mono_assembly_load_with_partial_name): if other   
6284         attempts fail, trigger the AppDomain.AssemblyResolve event handler
6285         to resolve the assembly.
6286
6287         * domain-internals.h: added mono_try_assembly_resolve and marked
6288         it as internal.
6289
6290 2007-09-11  Jb Evain  <jbevain@novell.com>
6291
6292         * object-internals.h (MonoReflectionDynamicMethod): add
6293         a `MonoReflectionType *owner` field. The owner is used
6294         * reflection.c:
6295         (mono_reflection_create_dynamic_method): use the owner of the dynamic
6296         method as the class declaring the dynamic method.
6297         (reflection_methodbuilder_from_dynamic_method): copy the owner of the
6298         dynamic method to the declaring type of the methodbuilder.
6299
6300 2007-09-11  Mark Probst  <mark.probst@gmail.com>
6301
6302         * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
6303         rules for calling methods via reflection.
6304
6305 2007-09-11  Zoltan Varga  <vargaz@gmail.com>
6306
6307         * reflection.c (resolve_object): Add support for MonoGenericClass. 
6308         Inflate MonoType's.
6309
6310 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
6311
6312         * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
6313         provide a managed method that does fast allocations without needing
6314         a managed->unmanaged transition. Boehm GC implementation currently
6315         enabled for ptrfree objects on sane architectures.
6316
6317 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
6318
6319         * marshal.c, marshal.h: exported a couple of useful functions and
6320         added mono_mb_get_label () to easily handle backward branches.
6321
6322 2007-09-10  Zoltan Varga  <vargaz@gmail.com>
6323
6324         * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
6325
6326 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
6327
6328         * loader.c (find_method): Fixed the regression introduced while
6329         fixing bug #81466.
6330
6331 2007-09-09  Zoltan Varga  <vargaz@gmail.com>
6332
6333         * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
6334         well.
6335         
6336         * class.c loader.c metadata.c object.c class-internals.h object-internals.h
6337         icall.c reflection.c: Pass a MonoGenericContext argument to 
6338         mono_lookup_dynamic_token ().
6339
6340         * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
6341         #82744.
6342         
6343 2007-09-09  Robert Jordan  <robertj@gmx.net>
6344
6345         * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
6346         for generic methods.
6347
6348         * object.c (mono_object_get_virtual_method): Handle generic methods.
6349         Fixes bug #78882.
6350
6351         Code is contributed under MIT/X11 license.
6352
6353 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
6354
6355         * image.c: fix locking in mono_image_load_file_for_image ().
6356
6357 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
6358
6359         * reflection.c, icall.c, icall-def.h: the methodinfos name field is
6360         used only as a cache: added an icall to fill it.
6361
6362 2007-09-16  Rodrigo Kumpera  <rkumpera@novell.com>
6363
6364         * reflection.h: exposed mono_reflection_free_type_info
6365         * reflection.c (mono_reflection_get_type_internal): type_args is always freed
6366         since mono_reflection_bind_generic_parameters makes a copy of it.
6367         * reflection.c (free_type_info): subinfos should be freed.
6368         * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and 
6369         made non static.
6370         * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
6371         replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
6372         this fixes #82695 and #81726.
6373    
6374
6375 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
6376
6377         * process.h, process.c:  added support for user profile/info in
6378           ProcessStartInfo. For now only Windows works.
6379
6380 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
6381
6382         * metadata.c: consider the generic arguments when comparing
6383         signatures (bug #82614).
6384
6385 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
6386
6387         * cil-coff.h, image.c: updated assembly loader to cope with the
6388         PE32+ 64 bit file format.
6389
6390 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
6391
6392         * assembly.c, class.c, domain.c, loader.c: remove useless
6393         inclusion of cil-coff.h.
6394
6395 2007-08-29  Jonathan Chambers  <joncham@gmail.com>
6396
6397         * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
6398         if interface is marked with CoClassAttribute. 
6399    
6400         Code is contributed under MIT/X11 license.
6401
6402 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
6403
6404         * sgen-gc.c: ensure no object from the to space is copied again or finalized
6405         if it's seen twice in major collections.
6406
6407 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
6408
6409         * sgen-gc.c: big objects are not copied to the gray area, but they
6410         need to be considered for scanning, too, if they are brought alive
6411         by an object ready for finalizations or a survived one.
6412
6413 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
6414
6415         * sgen-gc.c: properly account the number of disappearing links when
6416         they are nullified.
6417
6418 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
6419
6420         * sgen-gc.c: share the code to scan the registered roots between the
6421         different types of collections.
6422
6423 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
6424
6425         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
6426
6427 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
6428
6429         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
6430         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
6431
6432 2007-08-28  Mark Probst  <mark.probst@gmail.com>
6433
6434         * security-manager.c (mono_security_manager_get_methods):
6435         LinkDemandSecurityException now has 2 arguments instead of 3.
6436
6437 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
6438
6439         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
6440         platforms which need it.
6441
6442 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
6443
6444         * sgen-gc.c: unregister thread data structures with a pthread_key_t
6445         dtor.
6446
6447 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
6448
6449         * threads.c: free the thread static data on thread exit.
6450
6451 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
6452
6453         * class.c: walk the hierarchy to find the generic definition for
6454         a class (fixes runtime part of bug #82498).
6455
6456 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
6457
6458         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
6459         ...
6460
6461         * image.c (mono_image_close): Here. Hopefully fixes #82510.
6462
6463 2007-08-24  Mark Probst  <mark.probst@gmail.com>
6464
6465         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
6466
6467 2007-08-24  Robert Jordan  <robertj@gmx.net>
6468
6469         * appdomain.c: don't perform the ':'->';' substitution on Win32.
6470
6471 2007-08-24  Jb Evain  <jbevain@novell.com>
6472
6473         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
6474         for byref types.
6475
6476 2007-08-24  Mark Probst  <mark.probst@gmail.com>
6477
6478         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
6479         #82286.
6480
6481 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
6482
6483         * assembly.c: Fix a warning.
6484         
6485 2007-08-23  Marek Habersack  <mhabersack@novell.com>
6486
6487         * appdomain.c: parse the <runtime> section looking for the probing
6488         element with the 'privatePath' attribute, which sets additional
6489         directories in which the runtime should look for assemblies.
6490
6491 2007-08-23  Robert Jordan  <robertj@gmx.net>
6492
6493         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
6494         Fixes #82499.
6495
6496 2007-08-23  Martin Baulig  <martin@ximian.com>
6497
6498         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
6499         _mono_debug_init_corlib() and remove it from the header file.
6500
6501 2007-08-23  Martin Baulig  <martin@ximian.com>
6502
6503         * mono-debug-debugger.c
6504         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
6505         don't notify the debugger about it.
6506
6507         * mono-debug-debugger.h
6508         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
6509
6510 2007-08-23  Robert Jordan  <robertj@gmx.net>
6511
6512         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
6513         Code is contributed under MIT/X11 license.
6514
6515 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
6516
6517         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
6518
6519 2007-08-22  Martin Baulig  <martin@ximian.com>
6520
6521         * mono-debug.c: Store debugging info on a per-domain basis and
6522         free it on domain unload.  Add support for unloading symbol files.
6523
6524         * mono-debug.h
6525         (MonoDebugList): New typedef.
6526         (MonoSymbolTable):
6527         - add `data_tables and `type_table'.
6528         - replace 'symbol_files' and `num_symbol_files' with a
6529           `MonoDebugList *'.
6530         (mono_debug_data_table): Removed.
6531         (mono_debug_list_add): New public function.
6532         (mono_debug_list_remove): New public function.
6533         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
6534         (mono_debug_init_2_memory): Renamed into
6535         mono_debug_open_image_from_memory().
6536         (mono_debug_close_image): New public function.
6537         (mono_debug_domain_create): Likewise.
6538         (mono_debug_domain_unload): Likewise.
6539         (MONO_DEBUGGER_VERSION): Bump to 60.
6540
6541         * mono-debug-debugger.h
6542         (MonoDebuggerEvent):
6543         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
6544         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
6545         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
6546         - rename `THREAD_CREATED' and `THREAD_EXITED' into
6547           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
6548         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
6549           meaning.
6550         (mono_debugger_add_symbol_file): Removed.
6551         (mono_debugger_add_type): Removed.
6552         (mono_debugger_lookup_type): Removed.
6553         (mono_debugger_lookup_assembly): Removed.
6554
6555         * domain.c
6556         (mono_domain_create): Call mono_debug_domain_create().
6557         (mono_init_internal): Call mono_debug_init_corlib().
6558
6559         * assembly.c
6560         (mono_assembly_close): Call mono_debug_close_image().
6561
6562 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
6563
6564         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
6565         mmap call.
6566
6567 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
6568
6569         * sgen-gc.c: ensure section->pin_queue_end is initialized
6570         correctly when non pinning objects in the section have been found.
6571
6572 2007-08-22  Marek Habersack  <mhabersack@novell.com>
6573
6574         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
6575         containing a list of directories separated by ':'. MSDN docs say
6576         the directories should be separated with ';'. Part of a bugfix for
6577         bug #81446
6578
6579 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
6580
6581         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
6582         it should MonoType and not MonoClass.
6583
6584 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
6585
6586         * culture-info-table.h : regenerated.
6587
6588 2007-08-20  William Holmes  <billholmes54@gmail.com>
6589
6590         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
6591          to call ReplaceFile Kernel32 on windows or in io-layer.
6592         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
6593         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
6594          as an internal call.
6595
6596         Code is contributed under MIT/X11 license.
6597
6598 2007-08-20  Jb Evain  <jbevain@novell.com>
6599
6600         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
6601         and MONO_EXCEPTION_FIELD_ACCESS.
6602
6603         * debug-helpers.[c|h]: new mono_field_full_name function.
6604
6605 2007-08-20  Mark Probst  <mark.probst@gmail.com>
6606
6607         * class.c: Removed class_security_level() and moved it to
6608         security-core-clr.c.
6609
6610         * security-core-clr.c, security-core-clr.h: class_security_level()
6611         is now public and renamed to mono_security_core_clr_class_level().
6612         It also looks for security attributes in the classes a class is
6613         nested in.
6614
6615 2007-08-20  Mark Probst  <mark.probst@gmail.com>
6616
6617         * security-core-clr.c, security-core-clr.h: CoreCLR security
6618         utility functions.
6619
6620         * Makefile.am: Added security-core-clr.[ch].
6621
6622         * security-manager.c, security-manager.h: Functions and enum for
6623         setting and getting the security mode.
6624
6625         * class.c: CoreCLR security checks.
6626
6627 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
6628
6629         * icall-def.h, process.c, process.h: implemented icall to get
6630         user/system processor times.
6631
6632 2007-08-17  Mark Probst  <mark.probst@gmail.com>
6633
6634         * domain.c, threads.c, class-internals.h, domain-internals.h: New
6635         reader-lock-free jit_info_table.
6636
6637 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
6638
6639         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
6640
6641         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
6642
6643         * object-internals.h (MonoException): Add missing _data member.
6644
6645 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
6646
6647         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
6648         checking that only methods with matching qname or fqname are picked
6649         from implemented interfaces.
6650
6651 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
6652
6653         * verify.c (do_newarr):added, do type verification of
6654         newarr ops, push the right value on the eval stack.
6655         * verify.c (mono_method_verify): use do_newarr
6656
6657
6658 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
6659
6660         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
6661         factored the common code into get_boxable_mono_type, which
6662         is now using mono_type_get_full, this fixed byref related tests.
6663
6664 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
6665
6666         * class.c: added mono_type_get_full, this function has the same
6667         behavior of mono_class_get_full but the returned MonoType has
6668         all metadata of the associated token in case of a typespec token.
6669         * class.c: added mono_type_retrieve_from_typespec, used by 
6670         mono_type_get_full to retrieve the token type.
6671         * class.c (mono_class_create_from_typespec): changed to use
6672         mono_type_retrieve_from_typespec.
6673         * class.c (mono_ldtoken): changed to use mono_type_get_full
6674         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
6675         * class-internals.h: exported mono_type_get_full for internal use.
6676
6677 2007-08-16  Jb Evain  <jbevain@novell.com>
6678
6679         * domain.c (supported_runtimes): add entry for
6680         the 'moonlight' runtime version.
6681
6682 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
6683
6684         * verify.c (mono_method_verify): small typo sliped in.  
6685
6686 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
6687
6688         * verify.c (do_unbox_value): added, do type verification of
6689         unboxing ops
6690         * verify.c (mono_method_verify): use do_unbox_value
6691
6692
6693 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
6694
6695         * verify.c (dump_stack_value): fixed typo, was printing string
6696         instead of object on stack.
6697         * verify.c (do_box_value): moved the byref check up as it leads
6698         to invalid code and should be done earlier.
6699         * verify.c: improved error messages for and ldobj
6700
6701 2007-08-15  William Holmes  <billholmes54@gmail.com>
6702
6703         * marshal.c (emit_marshal_custom): Omit the call to 
6704           marshal_native_to_managed when calling native to managed 
6705           and the argument is specified as an out argument.
6706
6707         Code is contributed under MIT/X11 license.
6708
6709 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
6710
6711         * verify.c: fixed the type checks for generics, function pointers and vectors.
6712         Added type verification for ldobj and ldtoken. The verifier
6713         would segfault if header or signature of a method contained references
6714         to non-existant types.
6715
6716 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
6717
6718         * marshal.c (cominterop_get_ccw): Patch from
6719         Bill Holmes to no walk up interface hierarchy. 
6720         All parent methods should be present in the interface for COM.
6721    
6722         Code is contributed under MIT/X11 license.
6723
6724 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
6725
6726         * marshal.c (emit_marshal_com_interface): Patch from
6727         Bill Holmes to handle COM Interfaces as return values
6728         for native->managed calls.
6729    
6730         Code is contributed under MIT/X11 license.
6731
6732 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
6733
6734         * marshal.c (cominterop_get_idispatch_for_object): Implement
6735         for runtime callable wrappers.
6736    
6737         Code is contributed under MIT/X11 license.
6738
6739 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
6740
6741         * pedump.c (main): changed from mono_init to mono_init_from_assembly
6742         so 2.0 types are accessible
6743
6744
6745 2007-08-13  Miguel de Icaza  <miguel@novell.com>
6746
6747         * domain.c (mono_init_internal): Call mono_assembly_load_friends
6748         once we load mscorlib.   Due to the order in which we initialize,
6749         the mono_assembly_load_full routine that loads mscorlib did not
6750         load friends.   We now load it once we load the
6751         mono_defaults.internals_visible_class class. 
6752
6753         * assembly.c: Expose the mono_load_friend_assemblies method.
6754
6755 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
6756
6757         * verify.c: improved the handling of boxing, better
6758         type checking for unary ops and conversion. Fix bug
6759         regarding managed pointer compatibility checking
6760
6761 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
6762
6763         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
6764
6765         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
6766
6767 2007-08-09  Raja R Harinath  <rharinath@novell.com>
6768
6769         * reflection.c (dup_type): Remove.
6770         * class.c (dup_type): Remove.
6771         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
6772         instead of the dodgy 'dup_type'.
6773         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
6774         handle the case where 'dup_type' needed the second argument.
6775
6776 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
6777
6778         * domain.c: Fix a warning.
6779
6780 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
6781
6782         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
6783         checking that methods with the same fqname are not overridden
6784         with a method from an ancestor.
6785
6786 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
6787
6788         * threads.c (free_thread_static_data_helper): Avoid a crash if
6789         thread->static_data is not yet set.
6790
6791 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
6792
6793         * marshal.c: Use correct image when emitting
6794         native wrapper for COM calls.
6795    
6796         Code is contributed under MIT/X11 license.
6797
6798 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
6799
6800         * icall-def.h, security.c, security.h :
6801           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
6802
6803 2007-08-07  Martin Baulig  <martin@ximian.com>
6804
6805         * mono-debug-debugger.h
6806         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
6807
6808         * domain.c (mono_domain_free): Call
6809         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
6810
6811 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
6812
6813         * verify.c (check_underflow, check_overflow): error message now returns IL offset
6814         * verify.c (in_same_block): code should test if either offset is inside the clauses
6815         * verify.c (mono_method_verify): push the exception into the eval stack of exception
6816         and filter blocks
6817
6818 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
6819
6820         * image.c (mono_image_close): Fix a leak.
6821
6822         * object.c (mono_runtime_invoke_array): Avoid using alloca.
6823
6824         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
6825
6826 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
6827
6828         * domain.c, threads.c, threads-types.h: fix memory retention issue
6829         with thread static variables not being cleared on domain unload.
6830         Reuse thread static slots after domain unload.
6831
6832 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
6833
6834         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
6835         nullable type.
6836
6837         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
6838         now done in mono_runtime_invoke_array.
6839
6840         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
6841         receiver is a nullable type.
6842
6843         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
6844         generic parameter.
6845
6846 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
6847
6848         * marshal.c: Implement COM Objects as return type for 
6849         managed->unmanaged calls. Added Release calls for COM Object
6850         out/return values in managed->unmanaged calls.
6851
6852         Code is contributed under MIT/X11 license.
6853
6854 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
6855
6856         * threads.h, threads-type.h: move the hazard pointer declarations
6857         to the private header.
6858
6859 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
6860
6861         * file-io.c, appdomain.c: memory leak fixes.
6862
6863 2007-08-02  Dick Porter  <dick@ximian.com>
6864
6865         * socket-io.c
6866         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
6867         SO_REUSEADDR setting into io-layer/sockets.c.
6868
6869 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
6870
6871         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
6872         from Object when called on a generic parameter. Fixes #82211.
6873
6874 2007-08-01  Dick Porter  <dick@ximian.com>
6875
6876         * file-io.c (convert_share): Test FileShare values bit-by-bit.
6877         Fixes bug 79250 yet again.
6878
6879 2007-07-30  Martin Baulig  <martin@ximian.com>
6880
6881         Merged the `debugger-dublin' branch.
6882
6883         * mono-debug.h
6884         (MonoDebugDataTable): New typedef.
6885         (MonoDebugMethodAddressList): New typedef.
6886         (MonoDebugWrapperData): Removed.
6887         (MonoDebugSymbolTable): Removed `current_data_table',
6888         `current_data_table_size', `current_data_table_offset'.
6889         (MonoDebugDataItemType): Moved into mono-debug.c.
6890         (MonoDebugMethodJitInfo): Remove `address'.
6891         (mono_debug_data_table): New global variable.
6892         (mono_debug_lookup_method_addresses): New public function.
6893         (mono_debug_find_method): Take a `MonoMethod *', not a
6894         `MonoDebugMethodInfo *'.
6895
6896         * mono-debug.c: Drop support for the old symbol tables.
6897
6898 2007-06-28  Martin Baulig  <martin@ximian.com>
6899
6900         * mono-debug.c (mono_debug_debugger_version): New public variable.
6901
6902 2007-07-31  William Holmes  <billholmes54@gmail.com>
6903
6904         * metadata.c Changed mono_type_create_from_typespec to not insert
6905           the type into the hash map until after
6906           do_mono_metadata_parse_type has completed.
6907         Fixes Bug #82194
6908         Code is contributed under MIT/X11 license.
6909
6910 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
6911
6912         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
6913         generic parameter. Fixes #82211.
6914
6915 2007-07-27  Jb Evain  <jbevain@novell.com>
6916
6917         * pedump.c (dump_metadata, dump_metadata_header): dump
6918         versions contained in the metadata header.
6919
6920 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
6921
6922         * threads.c: register small_id_table with the GC.
6923
6924 2007-07-27  Mark Probst  <mark.probst@gmail.com>
6925
6926         * threads.c, threads.h, class-internals.h, object-internals.h:
6927         Hazard pointers, to be used by lock-free parallel algorithms.
6928
6929 2007-07-26  Dick Porter  <dick@ximian.com>
6930
6931         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
6932         routine on non-windows platforms, as I've not managed to think of
6933         a non-kludgy way of doing this.  Finishes off bug 78739.
6934
6935 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
6936
6937         * object.c: properly setup interface_bitmap in proxy vtables.
6938
6939 2007-07-25  Marek Habersack  <mhabersack@novell.com>
6940
6941         * appdomain.c (get_shadow_assembly_location): do not use TickCount
6942         to create unique shadow copy target directories, use the domain's
6943         serial number instead. Each domain gets a unique target directory
6944         that way.
6945
6946         * domain.c (mono_domain_create): added code to increment domain
6947         shadow copy serial number and cache the value in the current
6948         domain structure.
6949
6950         * domain-internals.h (struct _MonoDomain): added a new field -
6951         shadow_serial to hold the serial number used in generation of
6952         shadow-copy directories. This is to make sure that the directory
6953         name is unique for each and every domain created. We avoid a race
6954         condition with overriding assemblies already in use by other app
6955         domains.
6956
6957 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
6958
6959         * class.c (mono_bounded_array_class_get): fixed memory leak when 
6960         binding generic parameters.
6961
6962 2007-07-24  Raja R Harinath  <rharinath@novell.com>
6963
6964         * metadata.c (do_mono_metadata_parse_generic_class): Use
6965         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
6966         error.
6967
6968 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
6969
6970         * loader.c, class-internals.h, reflection.c: removed the per-method
6971         generics hashtable: we use the global one through the call of
6972         mono_class_inflate_generic_method ().
6973
6974 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
6975
6976         * class.c, metadata.c, class-internals.h: introduce yet another
6977         generics global cache for inflated methods (fixes 98% of the perf
6978         issue in bug #81806).
6979
6980 2007-07-23  Raja R Harinath  <rharinath@novell.com>
6981
6982         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
6983         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
6984         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
6985         return a MonoGenericInst containing (a copy) of those types.
6986         (mono_metadata_inflate_generic_inst): Update to changes.
6987         (mono_metadata_parse_generic_inst): Likewise.
6988         (mono_get_shared_generic_inst): Likewise.
6989         * reflection.c (mono_class_bind_generic_parameters): Likewise.
6990         (mono_reflection_bind_generic_method_parameters): Likewise.
6991         * metadata-internals.h: Likewise.
6992         * icall.c (free_generic_context): Kill.
6993         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
6994
6995         * reflection.c (reflection_methodbuilder_to_mono_method): Use
6996         mono_metadata_type_dup.
6997         * marshal.c (mono_mb_create_method): Likewise.
6998
6999         * metadata.c (mono_metadata_type_dup): Rename from
7000         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
7001         MonoImage.  Handle a few more cases, esp. when no mempool is given.
7002         * marshal.c, metadata-internals.h: Update to changes.
7003
7004 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
7005
7006         * class.c: fixed a small leak for array classes and removed warning.
7007
7008 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
7009
7010         * loader.c (mono_method_get_param_token): Make this work on generic methods.
7011         Return 0x8000000 for return parameters. Fixes #82161.
7012
7013 2007-07-21  Marek Habersack  <grendello@gmail.com>
7014
7015         * appdomain.c (get_shadow_assembly_location): append the current
7016         ticks value to the path. Avoids overwriting the same assemblies by
7017         several threads at the same time.
7018
7019 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
7020         and Raja R Harinath  <rharinath@novell.com>
7021
7022         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
7023         Simplify slightly.
7024         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
7025         property for testing if a method is a generic method definition.
7026
7027 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
7028
7029         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
7030
7031 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
7032
7033         * verify.c: used function from private branch, reverted to the one in class.h 
7034
7035 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
7036
7037         * verify.c: a typo slipped in and the code wont compile
7038
7039 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
7040
7041         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
7042         disabled box instruction as it is doing the wrong thing
7043         improved stack dump messages, now it is easier to debug type related issues
7044
7045
7046 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
7047
7048         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
7049
7050 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
7051
7052         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
7053         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
7054         grouped with class and valuetype. This change will simply 
7055         the code as it should be handled just like unmanaged pointers.
7056
7057 2007-07-19  Mark Probst  <mark.probst@gmail.com>
7058
7059         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
7060
7061 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
7062
7063         * verify.c: several stack merge issues fixed, reference comparisons now
7064         check the type size. strict type check now works correctly.
7065         added more uses of IS_MANAGED_POINTER macro.
7066         fixed issues pointed by running the test suite against .net.
7067         
7068
7069 2007-07-19  Mark Probst  <mark.probst@gmail.com>
7070
7071         * class.c, loader.c, class-internals.h: Removed the
7072         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
7073         defines.
7074
7075         * icall.c: Better error checking in some internal reflection
7076         methods.
7077
7078 2007-07-18  William Holmes  <billholmes54@gmail.com>
7079
7080         * filewatcher.c : removed unused variable 'filename' in 
7081           ves_icall_System_IO_FSW_SupportsFSW
7082
7083 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
7084
7085         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
7086         obsolete, removed.
7087
7088 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
7089
7090         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
7091         
7092         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
7093
7094 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
7095
7096         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
7097         Implement generics support.
7098         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
7099
7100         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
7101         type_args and method_args arguments.
7102         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
7103         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
7104         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
7105
7106 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
7107
7108         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
7109           It adds a rootimage parameter to mono_reflection_get_type_internal,
7110           adds new function mono_reflection_get_type_with_rootimage and use
7111           the rootimage to resolve the types instead of the current image
7112
7113 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7114
7115         * culture-info-table.h: Forgot to update after r78304.
7116
7117 2007-07-13  Raja R Harinath  <rharinath@novell.com>
7118
7119         * class.c (mono_class_is_open_constructed_type)
7120         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
7121
7122 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
7123
7124         * class.c (mono_bounded_array_class_get):  method fails if used with
7125         an incomplete TypeBuilder enum (no basetype field), fixed it by 
7126         avoiding calculating the size for such array as it cannot be instantiated.
7127         Fix bug #82015
7128
7129 2007-07-12  Raja R Harinath  <rharinath@novell.com>
7130
7131         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
7132         field.
7133         * metadata.c, reflection.c: Update to changes.
7134
7135 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
7136
7137         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
7138         mono_class_is_valid_enum, they are used to valide a enum when loading.
7139         * reflection.c: used new functions to throw TypeLoadException when and
7140         invalid enum is build with TypeBuilder. Fixes #82018
7141   
7142 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
7143
7144         * object.c: forgot commit of mono_class_setup_methods () to access
7145         iface->methods.
7146         * object-internals.h: added a few more handy fields to
7147         MonoIMTCheckItem.
7148
7149 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
7150
7151         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
7152         iface->methods.
7153
7154 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
7155
7156         * class-internals.h, object-internals.h, object.c: IMT-based
7157         interface invocation core from Massimiliano Mantione
7158         (massi@ximian.com) with a reworked arch-specific interface,
7159         bsearch implementation and a few bugfixes and memory savings by me.
7160
7161 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
7162
7163         * class.c (mono_class_create_from_typedef): mono would segfault if 
7164         an enum did not have a __value field. It now throws a TypeLoadException
7165         for such cases. Fix bug #82022
7166
7167 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
7168
7169         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
7170
7171 2007-07-09  Mark Probst  <mark.probst@gmail.com>
7172
7173         * class.c (mono_class_init): If a class is already inited but has
7174         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
7175
7176 2007-07-09  Mark Probst  <mark.probst@gmail.com>
7177
7178         * class.c: Properly handle the case of an unimplemented interface
7179         method.  Fixes: 81673.
7180
7181 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
7182
7183         * class-internals.h, object.c: cleanup patch from massi: use
7184         MonoVTable->interface_bitmap since the vtable interfaces offset array
7185         is going away.
7186
7187 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
7188
7189         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
7190         GetMDStreamVersion icall instead.
7191
7192 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
7193
7194         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
7195         not use mono_dl_build_path() with a full library name: makes
7196         fallbacks to libgaim and libfam work.
7197
7198 2007-07-06  William Holmes  <billholmes54@gmail.com>
7199
7200         * assembly.c: Added a continue statement in probe_for_partial_name when
7201          parse_assembly_directory_name fails.  Fixes : 82002
7202
7203 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
7204
7205         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
7206         and added a verification  for TYPEDBYREF.
7207         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
7208         make native int interchangeable with int32 and some small cleanup and formating.
7209         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
7210         handle byref of byref.
7211         * verify.c (push_local): handle byref of byref.
7212         * verify.c (do_binop): invalid mix of values is unverifiable
7213         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
7214         added visibility checks
7215         * verify.c (field related method): added visibility checks
7216         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
7217
7218 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
7219
7220         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
7221         string.
7222
7223 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
7224
7225         * profiler.c (mono_profiler_load): Fix an off-by-one error.
7226
7227         * marshal.c (emit_marshal_string): When returning a string from managed code,
7228         allways make a copy even for unicode strings. Fixes #81990.
7229
7230 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
7231
7232         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
7233         of byref generic inst types (bug #81997).
7234
7235 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
7236
7237         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
7238         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
7239
7240 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
7241
7242         * marshal.c (emit_marshal_string): Add support for unicode strings in
7243         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
7244
7245 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
7246
7247         * verify.c: field load/store are now verified, missing only access checks now
7248
7249 2007-06-28  Martin Baulig  <martin@ximian.com>
7250
7251         * mono-debug.c (mono_debug_debugger_version): New public variable.
7252
7253 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
7254
7255         * locales.c: When constructing DateTimeFormat or NumberFormat for
7256         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
7257         MonoCultureInfo contructed from the current locale is always
7258         read-only and has UseUserOverride set to true. All MonoCultureInfo
7259         instances returned for GetCultures have both IsReadOnly and
7260         UseUserOverride set to true. Fixes part of bug #81930.
7261
7262 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
7263
7264        * icall-def.h: Update System.__ComObject icalls
7265        * marshal.c: Avoid managed transition (and object creation)
7266        when looking up COM interface in RCW.
7267        * marshal.h: Ditto.
7268        
7269        Code is contributed under MIT/X11 license.
7270
7271 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
7272
7273         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
7274         to avoid crashes during assembly unloading.
7275
7276 2007-06-22  Raja R Harinath  <rharinath@novell.com>
7277
7278         Fix MethodInfo.IsGenericMethodDefinition
7279         * reflection.c (mono_reflection_bind_generic_method_parameters):
7280         Rearrange code to ensure we always uses a generic method definition.
7281         * class.c (mono_class_inflate_generic_method_full): Set
7282         'generic_container' field only for generic method definitions.
7283         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
7284         Use presense of 'generic_container' field as indication of being a
7285         generic method definition.
7286
7287 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
7288
7289         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7290
7291         * object-internals.h: Reflect changes in the layout of the managed Delegate
7292         class.
7293         
7294         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
7295         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
7296         runtime memory used by the dynamic method. Fixes #77146.
7297
7298 2007-06-21  Dick Porter  <dick@ximian.com>
7299
7300         * file-io.h: 
7301         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
7302         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
7303         81767.
7304
7305 2007-06-21  Raja R Harinath  <rharinath@novell.com>
7306
7307         * reflection.c (method_encode_methodspec): Add a tripwire.
7308         * class.c (inflate_generic_type): The fully open generic type is
7309         not the same as the generic type definition.
7310
7311 2007-06-21  Martin Baulig  <martin@ximian.com>
7312
7313         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
7314
7315         * mono-debug-debugger.h
7316         (MonoDebuggerBreakpointInfo): Removed.
7317         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
7318         (mono_debugger_remove_breakpoint): Likewise.
7319         (mono_debugger_breakpoint_callback): Likewise.
7320         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
7321
7322 2007-06-21  Raja R Harinath  <rharinath@novell.com>
7323
7324         * metadata.c (mono_metadata_lookup_generic_class): The fully open
7325         generic type is not the same as the generic type definition.
7326         * class.c (mono_generic_class_get_class): Likewise.
7327
7328 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
7329
7330         * icall.c: The second argument to 
7331         System.Reflection.MethodBase.GetMethodFromHandleInternalType
7332         is a MonoType not a MonoClass.
7333
7334 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
7335
7336         * verify.c: support for function pointers in the verifier
7337
7338 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
7339
7340         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
7341
7342 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
7343
7344         * assembly.c: removed Mono.Data.SqliteClient from the list of
7345         forward-compatible assemblies as it breaks the ABI (bug #81899).
7346
7347 2007-06-19  Raja R Harinath  <rharinath@novell.com>
7348
7349         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
7350         lookup/update with the loader lock.
7351         * reflection.c (mono_class_bind_generic_parameters): No need to
7352         protect mono_metadata_lookup_* with the loader lock.
7353         * class.c (inflate_generic_type): Likewise.
7354         
7355         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
7356         on a generic instantiated type.
7357
7358 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
7359
7360         *verify.c: produce meanfull error messages on verification error
7361         *verify.c: fixed some cases of verification errors reported as validation errors
7362         *pedump.c: fixed the error name array, now it shows validation errors properly
7363         *verify.h: fixed the contant that should be used for verification errors
7364
7365 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
7366
7367         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
7368         for bug #77596, 81858 and 80743 (generics data structures on domain
7369         unload).
7370
7371 2007-06-15  Raja R Harinath  <rharinath@novell.com>
7372
7373         Avoid allocating 'MonoGenericContext' on the heap.
7374         * class-internals (_MonoMethodInflated::context): Make field
7375         inline, not a pointer.
7376         * loader.c (method_from_methodspec): Allocate 'new_context' on the
7377         stack.  Use the context embedded within the inflated method as the
7378         hash key, rather than 'new_context'.
7379         * class.c (inflate_generic_context): Simplify.  Return a struct
7380         rather than allocating on the heap.
7381         (mono_class_inflate_generic_method_full): Update to changes.  Now,
7382         doesn't salt away a copy of the context -- simplifying the
7383         lifetime rules of a 'MonoGenericContext *'.
7384         (mono_method_get_context): Return pointer to embedded context.
7385         (setup_generic_array_ifaces): Allocate temporary context on stack.
7386         * reflection.c (inflate_mono_method): Likewise.
7387         (mono_reflection_bind_generic_method_parameters): Likewise.
7388         Use the context embedded within the inflated method as the hash key.
7389
7390         Avoid a source of allocation of 'MonoGenericContext'.
7391         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
7392         and 'cached_context' fields into embedded 'MonoGenericContext' field.
7393         * class.c: Update to changes.
7394         (mono_generic_class_get_context): Simplify drastically.  Now just
7395         returns a pointer to the field.
7396         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
7397         argument as a const pointer.
7398         (mono_metadata_generic_context_equal): Likewise.
7399         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
7400         Update to changes.
7401
7402 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
7403
7404         * verify.c improved the handling of brtrue/brfalse, factored out common code
7405
7406 2007-06-14  Raja R Harinath  <rharinath@novell.com>
7407
7408         Kill MonoGenericMethod.
7409         * class-internals.h (MonoGenericContext::method_inst): Rename from
7410         'gmethod' and convert to a MonoGenericInst.
7411         (MonoGenericMethod): Remove.
7412         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
7413         * loader.c (method_from_methodspec): Update to changes.  Use a
7414         MonoGenericContext as the key to the hashtable.
7415         * metadata.c (mono_metadata_generic_context_equal): Rename from 
7416         'mono_metadata_generic_method_equal' and take MonoGenericContext.
7417         (mono_metadata_generic_context_hash): Likewise from
7418         'mono_metadata_generic_method_hash'.  Change hash function.
7419         (mono_metadata_load_generic_params): Update to changes.
7420         (mono_get_shared_generic_method): Remove.
7421         * metadata-internals.h (mono_get_shared_generic_method): Remove.
7422         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
7423         (inflate_generic_context): Likewise.
7424         (mono_class_inflate_generic_method_full): Likewise.
7425         (setup_generic_array_ifaces): Likewise.
7426         (mono_class_create_from_typespec): Likewise.
7427         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
7428         (method_encode_methodspec): Update callsite.
7429         (reflection_methodbuilder_to_mono_method): Update to changes.
7430         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
7431         MonoGenericContext as the key to the hashtable.
7432         (inflate_mono_method): Update to changes.
7433
7434         * class-internals.h (MonoGenericMethod::container): Remove.
7435         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
7436
7437 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
7438
7439         * profiler-private.h, profiler.c, profiler.h: added API to profile
7440         exception events.
7441
7442 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
7443
7444         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
7445
7446 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
7447
7448         * verify.c: method invocation is now validated, now we verify parameter types on stack.
7449         Fixed overflow and underflow not aborting the verification process.
7450
7451 2007-06-13  Mark Probst  <mark.probst@gmail.com>
7452
7453         * class-internals.h (MonoStats): Added stats entries for dynamic
7454         code allocations.
7455
7456 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
7457
7458         * loader.c (mono_free_method): Free header->locals and header->clauses.
7459
7460         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
7461         dynamic case.
7462
7463         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
7464
7465         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
7466
7467 2007-06-12  Raja R Harinath  <rharinath@novell.com>
7468
7469         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
7470         the tables.
7471
7472 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
7473
7474         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
7475
7476 2007-06-11  Raja R Harinath  <harinath@gmail.com>
7477
7478         MonoGenericMethod on a diet
7479         * class-internals.h (_MonoMethodInflated::reflection_info): Move
7480         here ...
7481         (_MonoGenericMethod::reflection_info): ... from here.
7482         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
7483         Update to changes.
7484         * reflection.c (inflate_mono_method): Likewise.
7485         (mono_reflection_bind_generic_method_parameters): Likewise.
7486
7487 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
7488
7489         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
7490         *verify.c: factored long ldarg forms to share code with short forms
7491
7492 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
7493
7494         *verify.c: fixed code formating factored some duplicate code
7495         into a new function
7496
7497         *verify.h: fixed binary incompatibility introduced earlier
7498
7499         *pedump.c: fixed formating
7500
7501 2007-06-11  Raja R Harinath  <harinath@gmail.com>
7502
7503         Fix assertion when disassembling Mono.C5.dll
7504         * loader.c (method_from_methodspec): Avoid inflating a method
7505         twice with the same context.  If the methodref is inflated, use
7506         the declaring method instead.
7507
7508         * class.c (mono_class_from_generic_parameter): Fix case similar to
7509         bug #81830 handled below, but for method containers.
7510
7511 2007-06-10  Raja R Harinath  <harinath@gmail.com>
7512
7513         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
7514         get_shared_generic_class.  Directly inflate the instance.
7515         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
7516         (inflate_generic_class): Delete.
7517         (get_shared_generic_class): Delete.  Move setting of
7518         'cached_class' and 'cached_context' ...
7519         * metadata.c (mono_metadata_lookup_generic_class): ... here.
7520
7521         * metadata.c (mono_metadata_lookup_generic_class): Change
7522         signature to take the components of a MonoGenericClass rather than
7523         an allocated MonoGenericClass.  Change semantics to be intern-like.
7524         * reflection.c (mono_class_bind_generic_parameters): Update to
7525         changes.  Make locking region tighter.
7526         * class.c (inflate_generic_class): Update to changes.
7527         (get_shared_generic_class): Likewise.
7528         * metadata-internals.h: Likewise.
7529
7530         * reflection.c (mono_class_bind_generic_parameters): Take and
7531         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
7532         (mono_reflection_bind_generic_parameters): Use
7533         'mono_class_bind_generic_parameters' rather than duplicate the code.
7534         * class.c (mono_bounded_array_class_get): Update to changes.
7535         * object-internals.h: Likewise.
7536
7537         * reflection.c (mono_class_bind_generic_parameters): Only support
7538         parameterizing generic type definitions.  Remove support for other
7539         open types.
7540
7541 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
7542
7543         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
7544
7545         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
7546         in the dynamic case.
7547
7548 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
7549
7550         * threads.c: When cleaning up thread, reset the Background bit.
7551         Fixes bug #81720.
7552
7553 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
7554
7555        * metadata.c: Move variable declarations to top of scope.
7556        * verify.c: Move variable declarations to top of scope.
7557
7558        Code is contributed under MIT/X11 license.
7559
7560 2007-06-08  Raja R Harinath  <rharinath@novell.com>
7561
7562         * reflection.c (mono_class_bind_generic_parameters): Replace
7563         open-coded loop with mono_metadata_inflate_generic_inst.
7564
7565         * class.c (get_shared_generic_class): Don't call
7566         mono_get_shared_generic_inst.  Use the container's own
7567         'class_inst'.
7568
7569         * metadata.c (mono_metadata_load_generic_params): Move
7570         initialization of 'context' field here from ...
7571         * class.c (mono_class_create_from_typedef): ... here, and ...
7572         * loader.c (mono_get_method_from_token): ... here.
7573
7574         * class.c (get_shared_generic_class): Rename from
7575         mono_get_shared_generic_class and make static.
7576         (mono_get_shared_generic_inst): Move to metadata.c.
7577         * loader.c (mono_get_shared_generic_method): Likewise.
7578         * class-internals.h, metadata-internals.h: Update to changes.
7579
7580         Fix #81830
7581         * class.c (mono_class_from_generic_parameter): Don't assume a
7582         generic container owner exists.  Generic containers from monodis
7583         don't have any.
7584
7585 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
7586
7587         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
7588         * verify.h: new typedefs to returns the non-verifiable status
7589         * verify.c: initial implementation of generics, stack merging and object compatibility check
7590
7591 2007-06-06  Mark Probst  <mark.probst@gmail.com>
7592
7593         * class.c, image.c, class-internals.h (MonoImage): class_cache is
7594         a MonoInternalHashTable again (fixed bug in internal hash table
7595         code).
7596
7597 2007-06-06  Mark Probst  <mark.probst@gmail.com>
7598
7599         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
7600         MonoInternalHashTable again (fixed bug in internal hash table
7601         code).
7602
7603 2007-06-06  Mark Probst  <mark.probst@gmail.com>
7604
7605         * class.c, image.c, class-internals.h, domain.c,
7606         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
7607         changes.  Have to figure out what makes them break the SWF
7608         regression.
7609
7610 2007-06-04  Mark Probst  <mark.probst@gmail.com>
7611
7612         * class.c, image.c, class-internals.h (MonoImage): class_cache is
7613         a MonoInternalHashTable now.
7614
7615 2007-06-04  Mark Probst  <mark.probst@gmail.com>
7616
7617         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
7618         MonoInternalHashTable now.
7619
7620 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
7621
7622         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
7623         invoke_impl code.
7624
7625         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
7626
7627         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
7628         dependent trampoline.
7629
7630         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7631
7632         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
7633
7634 2007-05-29  Robert Jordan  <robertj@gmx.net>
7635
7636         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
7637
7638 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
7639
7640         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
7641
7642 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
7643
7644        * marshal.c: Fix interface lookup loops for
7645        cominterop_get_com_slot_for_method and 
7646        cominterop_get_method_interface. Only need to lookup
7647        if type is a class, else use interface type method is on.
7648
7649        Code is contributed under MIT/X11 license.
7650
7651 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
7652
7653         * reflection.c: HasSecurity can be present even if no specially 
7654         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
7655         SecurityAttribute). Fix CAS regression tests on buildbot.
7656
7657 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
7658
7659        * appdomain.c: Add configure checks for header files.
7660        * image.c: Add configure checks for header files.
7661        * file-io.c: Add configure checks for header files.
7662        * debug-mono-symfile.c: Add configure checks for header files.
7663        * threadpool.c: Add configure checks for header files.
7664        * console-io.c: Add configure checks for header files.
7665        * profiler.c: Add configure checks for header files.
7666        * rawbuffer.c: Add configure checks for header files.
7667        * icall.c: Add configure checks for header files.
7668        * rand.c: Add configure checks for header files.
7669        * socket-io.c: Add configure checks for header files.
7670
7671        Code is contributed under MIT/X11 license.
7672
7673 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
7674
7675         * reflection.c (mono_custom_attrs_from_builders): Remove the 
7676         assertion as it breaks the build.
7677         
7678         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
7679
7680         * reflection.c (lookup_custom_attr): Make a copy here too.
7681
7682         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
7683         dynamic images.
7684
7685         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
7686         images.
7687
7688         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
7689         info.
7690
7691 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
7692
7693         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
7694         (load_cattr_value): Ditto.
7695
7696 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
7697
7698         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
7699
7700 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
7701
7702         * threads.c: In "start_wrapper", set apartment_state to MTA if
7703         apartment_state is Unknown and we're running on 2.0 profile or
7704         higher.
7705         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
7706         to main method, then set apartment_state to Unknown on 1.0 profile,
7707         and MTA on 2.0 profile.
7708
7709 2007-05-16  Jb Evain  <jb@nurv.fr>
7710
7711         * class-internals.h (MonoDefaults): Add an attribute_class and
7712           customattribute_data_class.
7713         * domain.c (mono_init_internal): Populate them.
7714         * reflection.c: Use them to remove duplicates. Make a vew
7715         MonoClass variables `static'.
7716
7717 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
7718
7719         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
7720         step in implementing IMT, so that all isinst checks now can go
7721         through the bitmap.
7722         This was needed because vtables for TransparentProxy need to look
7723         like the vtable of the "target" class, so they need to point to
7724         its interface bitmap directly.
7725
7726         * object.c: inside "mono_class_create_runtime_vtable" and
7727         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
7728
7729 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
7730
7731         * object-internals.h
7732           culture-info.h : added territory field in MonoCulture and
7733           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
7734         * locales.c : fill territory field above too.
7735         * culture-info-table.h : regenerated.
7736
7737 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
7738
7739         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
7740         Fixes #81599.
7741
7742 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
7743
7744         * object.c: Always initialize apartment, even if 
7745         there is no custom attributes on entry point.
7746         
7747         Code is contributed under MIT/X11 license.
7748
7749 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
7750
7751         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
7752         * metadata.c: If no encoding is set, check for unicode
7753         on class.
7754         
7755         Code is contributed under MIT/X11 license.
7756
7757 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
7758
7759         * threads.c: Handle if mono_thread_current returns NULL 
7760         
7761         Code is contributed under MIT/X11 license.
7762
7763 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
7764
7765         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
7766         in start_wrapper. Added mono_thread_init_apartment_state and
7767         mono_thread_cleanup_apartment_state.
7768         * object.c: Initialize thread apartment state on main thread
7769         by checking for STAThreadAttribute on entry point.
7770         * object-internals.h: Add apartment_state field to MonoThread.
7771         * threads-types.h: Add unmanaged definition of 
7772         System.Threading.ApartmentState, MonoThreadApartmentState.
7773         
7774         Code is contributed under MIT/X11 license.
7775         
7776 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
7777
7778         * class.c: Fix windows build.
7779         * class-internals.h: Fix windows build.
7780         
7781         Code is contributed under MIT/X11 license.
7782
7783 2007-05-08  Robert Jordan  <robertj@gmx.net>
7784
7785         * process.c (CreateProcess_internal):
7786         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
7787         .CreateNoWindow was specified. Fixes #81496.
7788
7789 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
7790
7791         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
7792         step in implementing IMT, replaced it with two compact arrays
7793         (interfaces_packed and interface_offsets_packed) and a bitmap that
7794         is used for isinst checks (interface_bitmap).
7795
7796         * class.c: (compare_interface_ids): compare function to pass to
7797         bsearch when looking for an interface with a given id.
7798         (mono_class_interface_offset): reimplemented using bsearch on
7799         interfaces_packed, getting the offset from interface_offsets_packed.
7800         (print_implemented_interfaces): utility debugging function.
7801         (setup_interface_offsets): reworked to initialize interfaces_packed,
7802         interface_offsets_packed and interface_bitmap.
7803
7804         * object.c: replaced all accesses to "MonoClass.interface_offsets"
7805         with uses of interfaces_packed and interface_offsets_packed.
7806
7807 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
7808
7809         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
7810         mono_class_interface_offset prototype to wrap all accesses to
7811         "MonoClass.interface_offsets".
7812
7813         * class.c: Implemented mono_class_interface_offset, and wrapped all
7814         accesses to "MonoClass.interface_offsets".
7815
7816         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
7817         "MonoClass.interface_offsets".
7818
7819 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
7820
7821         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
7822         GetMethodFromHandle overloads (bug #78637).
7823
7824 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
7825
7826         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
7827         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
7828
7829 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
7830
7831         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
7832         #81498.
7833
7834         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
7835         gracefully.
7836         (mono_custom_attrs_from_index): Ditto.
7837
7838         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
7839         Fixes #81501.
7840
7841 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
7842
7843         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
7844         is now allocated from a mempool.
7845
7846 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
7847
7848         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
7849         caller holds threads_lock, leading to deadlocks. Fixes #81476.
7850
7851 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
7852
7853         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
7854         mono_loader_clear_error () too late. Fixes #81463.
7855
7856 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
7857
7858         * culture-info-table.h : regenerated.
7859
7860 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
7861
7862         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
7863         is missing.
7864
7865 2007-04-25  Dick Porter  <dick@ximian.com>
7866
7867         * Makefile.am: Put the mingw enforced-optimisation back into the
7868         PLATFORM_WIN32 section.
7869
7870 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
7871
7872         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
7873         patch.
7874
7875         * image.c (mono_image_load_module): New API function to load a module reference.
7876
7877         * image.c (load_modules): Load modules lazily. Fixes #80812.
7878
7879         * class.c (mono_class_from_typeref): Use mono_image_load_module.
7880         
7881         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
7882
7883         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
7884         to mono_image_load_module_dynamic.
7885
7886 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
7887
7888         * marshal.c: Fix calling convention for CCW on non-windows
7889         platforms. STDCALL on windows, CDECL everywhere else to work 
7890         with XPCOM and MainWin COM.
7891         
7892         Code is contributed under MIT/X11 license.
7893
7894 2007-04-23  Martin Baulig  <martin@ximian.com>
7895
7896         Fix #80969.
7897
7898         * loader.c
7899         (method_from_memberref): Added `gboolean *used_context' argument.
7900         (mono_get_method_from_token): Likewise.
7901         (mono_get_method_full): Don't insert the method in the cache when
7902         `used_context' is true.
7903
7904 2007-04-23  Raja R Harinath  <rharinath@novell.com>
7905
7906         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
7907
7908         * reflection.c (mono_reflection_bind_generic_parameters): Don't
7909         create new MonoTypes for returned types.
7910         * class.c (mono_generic_class_get_class): Export mono-internal.
7911         * class-internals.h: Update to changes.
7912
7913 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
7914
7915         * threadpool.c, threadpool.h, icall-def.h: patch from
7916         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
7917
7918 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
7919
7920         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
7921         
7922         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
7923
7924         * threads.c (mono_thread_get_stack_bounds): New helper function.
7925
7926         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
7927         Correctly compute stack bounds when attaching. Fixes #81394.
7928
7929 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
7930
7931         * reflection.c: fix handling of doubles in custom attributes
7932         for the arm-fpa format (bug #81368).
7933
7934 2007-04-18  Raja R Harinath  <rharinath@novell.com>
7935
7936         * reflection.c (assembly_add_win32_resources): Mildly relax an
7937         bounds check to let the end pointer point just past the end of the
7938         allocated buffer.  (may fix #81384)
7939
7940 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
7941
7942         * culture-info-table.h : regenerated.
7943
7944 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
7945
7946         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
7947         the thread is aborted early.
7948
7949 2007-04-05  Dick Porter  <dick@ximian.com>
7950
7951         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
7952         FindFirstFile()/FindNextFile() to find entries.  This lets the
7953         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
7954         81038.
7955
7956         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
7957         the parameters of
7958         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
7959
7960 2007-04-04  Martin Baulig  <martin@ximian.com>
7961
7962         * debug-helpers.c
7963         (mono_method_desc_full_match): Add support for nested classes.
7964
7965 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
7966
7967         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
7968
7969 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
7970
7971         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
7972         waiting for too many threads.
7973
7974 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
7975
7976         * environment.c: Fix return value check on uname so we can get the 
7977         executing version on Solaris operating systems.
7978
7979 2007-03-28  Jb Evain  <jbevain@gmail.com>
7980
7981         * class.c (mono_type_get_name_recurse): Complete the
7982         fix for the creation of assembly qualified names for
7983         pointer types. Fixes #81208.
7984
7985 2007-03-27  Dick Porter  <dick@ximian.com>
7986
7987         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
7988         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
7989         changed.
7990
7991         * threads.c
7992         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
7993         the value of ReleaseMutex().
7994
7995 2007-03-27  Dick Porter  <dick@ximian.com>
7996
7997         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
7998         in little-endian order, not network endian, so must be converted
7999         to host endian here.  Fixes bug 80593.
8000
8001 2007-03-22  Jb Evain  <jbevain@gmail.com>
8002
8003         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
8004         qualified names for pointer types. Fixes #81208.
8005
8006 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
8007
8008         * marshal.c: Add support for PreserveSigAttribute. 
8009         
8010         Code is contributed under MIT/X11 license.
8011
8012 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
8013
8014         * process.c: Fix endianness issues. Fixes #81126.
8015
8016         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
8017         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
8018
8019         * image.c (mono_image_lookup_resource): Make this work on big-endian
8020         machines.Change API contract so the caller needs to free the return value.
8021         
8022         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
8023         API change.
8024         
8025 2007-03-14  Martin Baulig  <martin@ximian.com>
8026
8027         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
8028         mono_type_get_desc() as well.
8029
8030 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
8031
8032         * icall.c:  Fix environ access in VS.  
8033         
8034 2007-03-13  Alp Toker  <alp@atoker.com>
8035
8036         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
8037         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
8038         #63841.
8039
8040 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
8041
8042         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
8043         circular references among dynamic methods. Fixes #81091.
8044
8045         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
8046
8047 2007-03-09  Martin Baulig  <martin@ximian.com>
8048
8049         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
8050
8051 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
8052
8053         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
8054         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
8055         
8056         Code is contributed under MIT/X11 license.
8057         
8058 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
8059
8060         * loader.c: Reapply patch for bug #79424.
8061
8062 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
8063
8064         * metadata.c (mono_type_to_unmanaged): Only convert object to
8065         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
8066
8067 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
8068
8069         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
8070         (and incorrectly set) is_reference field from MonoGenericInst.
8071
8072 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
8073
8074         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
8075         a little earlier.
8076
8077         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
8078
8079         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
8080
8081 2007-03-05  Miguel de Icaza  <miguel@novell.com>
8082
8083         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
8084         FileOptions.1 value to mean "temporary", map that to
8085         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
8086
8087         Fixes 80688
8088
8089 2007-03-03  Marek Habersack  <mhabersack@novell.com>
8090
8091         * appdomain.c: implement MS .Net style shadow copying. Copies of
8092         the assemblies are made in a subdirectory of the dynamic base
8093         directory, the assembly names are preserved.
8094         Copy .mdb and .config files along with the assemblies being shadowed.
8095
8096 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
8097
8098         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
8099         (emit_marshal_handleref): Ditto.
8100
8101         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
8102         on Visual C++. Fixes #80671.
8103
8104 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
8105
8106         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
8107         for clone operations.
8108
8109 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
8110
8111         * marshal.c: Fix warnings.
8112
8113 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
8114
8115         * loader.c: allow case-insensitive matching of the dll name
8116         in dllmap handling when prefixed with "i:".
8117
8118 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
8119
8120         * threads.c: Fix #ifdef for dummy_apc function for VS.
8121
8122 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
8123
8124         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
8125
8126 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
8127         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
8128         giving precedence to the methods with a fully qualified name
8129         (InterfaceName.MethodName) when building the interface sections
8130         of the vtable.
8131
8132 2007-02-16  Dick Porter  <dick@ximian.com>
8133
8134         * threadpool.c (append_job): Fix fast-path array handling, so it's
8135         less likely the array will grow exponentially when the load is
8136         heavy.
8137
8138 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
8139
8140         * metadata-internals.h, loader.c: fix dllmap lookup order
8141         for non-function maps, too, and prepare for fallback code.
8142
8143 2007-02-12  Robert Jordan  <robertj@gmx.net>
8144
8145         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
8146         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
8147         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
8148         GlobalFree. Fixes a part of bug #77075.
8149
8150 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
8151
8152         * loader.c: implemented typedef parent in field memberref.
8153
8154 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
8155
8156         * marshal.c: Fix warnings and remember to call Release on
8157         IUnknown of RCW.
8158         
8159         Code is contributed under MIT/X11 license.
8160
8161 2007-02-10  Miguel de Icaza  <miguel@novell.com>
8162
8163         * class-internals.h: Add MonoHandleRef definition, and
8164         handleref_class to mono_defaults. 
8165
8166         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
8167         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
8168
8169         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
8170         (do nothing on this stage)
8171         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
8172         (emit_marshal_handleref): New method, used for argument handling
8173         of HandleRefs. 
8174
8175 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
8176
8177         * class.c (mono_class_setup_parent): Lazily init com types.
8178         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
8179         init com types.
8180         * object.c (mono_remote_class_vtable): Lazily init com types.
8181         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
8182         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
8183         * domain-internals.h: Expose mono_init_com_types.
8184         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
8185         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
8186         Add support for COM Callable Wrapper marshalling.
8187         * marshal.h: Add icall definitions.
8188         * gc.c: Handle freeing of CCWs in finalizer code.
8189         
8190         Code is contributed under MIT/X11 license.
8191
8192 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
8193
8194         * reflection.c: changed all the signature encoding code to use
8195         a variable-sized buffer.
8196
8197 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
8198
8199         * marshal.c: locking fixes: never take the loader lock
8200         or other runtime locks when holding the marshal lock
8201         (fixes bug#80664).
8202
8203 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
8204
8205         * marshal.c: make the delegate function pointer mapping
8206         work for the moving GC.
8207
8208 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
8209
8210         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
8211         for bug #80618.
8212
8213 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
8214
8215         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
8216         gmodule.
8217
8218 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
8219
8220         * threadpool.c: made the code moving-GC safe.
8221
8222 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
8223
8224         * assembly.c, boehm-gc.c, class-internals.h, class.c,
8225         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
8226         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
8227         warning cleanup.
8228         * reflection.c: warning cleanup, some threading and moving GC fixes.
8229
8230 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
8231
8232         * class.c, loader.c: create the needed Set/Get/Address array methods
8233         as well as the .ctors in mono_class_init (), fixes bug #80567.
8234
8235 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
8236
8237         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
8238         we doesn't decrease its alignment. Should fix the sparc build.
8239
8240 2007-01-24  Dick Porter  <dick@ximian.com>
8241
8242         * socket-io.c
8243         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
8244         Create the returned object if we need to ignore an unsupported
8245         socket option.  Fixes a segfault reported by Atsushi.
8246
8247 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
8248
8249         * class.c, object.c: restrict GC-tracked fields to
8250         UIntPtr fields used inside corlib, so we provide better
8251         type info to the GC and also allow broken packing as in
8252         bug #80580.
8253
8254 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
8255
8256         * sgen-gc.c: removed duplicated function.
8257
8258 2007-01-19  Miguel de Icaza  <miguel@novell.com>
8259
8260         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
8261         value that means that the value is not supported, but that we
8262         should not return a failure, but instead report this as a
8263         successful operation.
8264
8265 2007-01-19  Raja R Harinath  <rharinath@novell.com>
8266
8267         Fix tests/bug79956.2.il
8268         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
8269         (mono_generic_class_get_class): If the generic definition in an
8270         enum, copy over other fields related to it.
8271
8272 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
8273
8274         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
8275         genericinst enums (bug #79215).
8276
8277 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
8278         * class.c: Fix bug 80307.
8279
8280 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
8281
8282         * image.c: if the file table is not present, try to load
8283         all the modules, since we don't have info about them
8284         having or not metadata (bug #80517).
8285         * assembly.c: allow mono_assembly_load_references () to
8286         work for netmodules.
8287
8288 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
8289
8290         * image.c, metadata-internals.h, object.c: execute module
8291         cctors when running on the 2 runtime if present (bug #80487).
8292
8293 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
8294
8295         * icall.c: optimized InitializeArray() on bigendian.
8296
8297 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
8298
8299         * icall.c: fix for the broken ARM FPA double format.
8300
8301 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
8302
8303         * icall.c: handle endian issues for r4 and r8 types, too, in
8304         the InitializeArray() icall.
8305
8306 2007-01-15  Miguel de Icaza  <miguel@novell.com>
8307
8308         * loader.c (mono_loader_error_prepare_exception): Clear the error
8309         once we have extracted the information from it, do this before we
8310         call into the JIT's class loading mechanisms.
8311
8312         * object.c (mono_class_create_runtime_vtable): Do not clear the
8313         loader error before calling mono_class_get_exception_for_failure
8314         as the loader error is needed inside
8315         mono_class_get_exception_for_failure to throw the error (thinko).
8316
8317         Fixes #80521
8318         
8319 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
8320
8321         * reflection.c: align fields rva data so it's faster to load at
8322         runtime.
8323
8324 2007-01-12  Raja R Harinath  <rharinath@novell.com>
8325
8326         Prepare to simplify GenericMethod handling.
8327         * class-internals.h (mono_method_get_context): New accessor function.
8328         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
8329         rather than directly accessing '->context' field.
8330
8331         * class-internals.h (_MonoGenericParam.method): Move ...
8332         (_MonoGenericContainer): ... here.  Add into union with klass field.
8333         * class.c, icall.c, loader.c, metadata.c, reflection.c:
8334         Update to changes.
8335
8336 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
8337
8338         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
8339         the wrapper type enum and reduce relocations.
8340
8341 2007-01-12  Raja R Harinath  <rharinath@novell.com>
8342
8343         * reflection.c (inflate_mono_method): Reuse method instantiation
8344         from the generic method, if available.
8345
8346 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
8347
8348         * marshal.c (emit_marshal_variant): Fix conv_arg
8349         type in last commit, based on whether parameter is byref.
8350         
8351 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
8352
8353         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
8354         marshalling.
8355         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
8356         MONO_TYPE_OBJECT back for VARIANT support.
8357
8358 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
8359
8360         * marshal.c, marshal.h, icall-def.h: Implement 
8361         Marshal.ReAllocCoTaskMem.
8362
8363 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
8364
8365         * marshal.c: memory retention fixes: use the proper
8366         image cache for runtime_invoke method lookups.
8367
8368 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
8369
8370         * mempool.c: added code to help debug mempool allocations.
8371
8372 2007-01-11  Dick Porter  <dick@ximian.com>
8373
8374         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
8375         support (experimenting with faking it with IP_MTU_DISCOVER for
8376         systems that don't have IP_DONTFRAGMENT.)
8377         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
8378         icall.
8379
8380         * icall-def.h: new System.Net.Sockets.Disconnect icall.
8381
8382         * socket-io.h: Add new fields to MonoSocketAsyncResult
8383         corresponding to the new ones in Socket.cs.
8384
8385 2007-01-11  Raja R Harinath  <rharinath@novell.com>
8386
8387         Fix IronPython regression mentioned in #80249
8388         * metadata.c (do_mono_metadata_parse_generic_class): Clear
8389         'cached_context' field, since it may have been initialized as a
8390         side-effect of metadata parsing.
8391
8392         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
8393         (_MonoGenericClass.cached_class): Move here and rename from lone
8394         remaining field of ...
8395         (_MonoInflatedGenericClass): ... this.  Remove.
8396         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
8397         to changes.
8398
8399         Fix mcs/tests/test-128.cs regression.
8400         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
8401         2007-01-10 change below.
8402         [MONO_TYPE_OBJECT]: Recurse into array case.
8403
8404 2007-01-11  Raja R Harinath  <harinath@gmail.com>
8405
8406         * class-internals.h (mono_get_inflated_generic_class): Remove.
8407         * class.c (mono_get_inflated_generic_class): Remove.
8408         (mono_generic_class_get_class): Rename from
8409         mono_class_create_generic.
8410         (mono_class_from_mono_type) [GENERICINST]: Use it.
8411         * reflection.c, metadata.c: Update to changes.  Use
8412         'mono_class_from_mono_type'.
8413
8414 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
8415
8416         * reflection.c: use passed type when encoding an array element
8417         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
8418
8419 2007-01-09  Robert Jordan  <robertj@gmx.net>
8420
8421         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
8422         result arguments (someDelegate.EndInvoke (unrelatedAres)).
8423         Fixes bug #80392.
8424
8425 2007-01-09  Raja R Harinath  <rharinath@novell.com>
8426
8427         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
8428
8429         * object.c (set_value): Avoid aliasing between type->data.klass
8430         and type->data.generic_class.
8431
8432         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
8433
8434 2007-01-08  Raja R Harinath  <rharinath@novell.com>
8435
8436         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
8437         between type->data.klass and type->data.generic_class.
8438
8439 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
8440
8441         * marshal.c: In MS.NET, StringBuilder objects are not copied by
8442         value in out parameters.
8443
8444 2007-01-08  Raja R Harinath  <rharinath@novell.com>
8445
8446         Simplify invariant for MonoGenericClass::klass field.
8447         * class.c (mono_class_create_generic): Verify 'klass' is null.
8448         * metadata.c (do_mono_metadata_parse_generic_class): Don't
8449         initialize 'klass' field.
8450
8451 2007-01-05  Raja R Harinath  <rharinath@novell.com>
8452
8453         Ongoing work to avoid redundant data and simplify invariants.
8454         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
8455         'generic_class', and change type to a GenericInst.
8456         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
8457         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
8458
8459 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
8460
8461         * class.c : skip io-layer under PLATFORM_WIN32.
8462
8463 2007-01-03  Tor Lillqvist  <tml@novell.com>
8464
8465         Fix #80305: In a bundled executable, look in the bundled exe
8466         assembly to determine the runtime version. Add the possibility to
8467         bundle also the machine.config file.
8468         
8469         * assembly.c (mono_assembly_open_from_bundle): Make
8470         non-static. Allow being called even if we have no bundled
8471         assemblies, and return NULL right away in that case.
8472
8473         * domain-internals.h: Declare mono_assembly_open_from_bundle()
8474         here.
8475
8476         * domain.c (app_config_parse): Take an assembly exe file name as
8477         parameter instead of a config file name. Check for a bundled
8478         config file for that assembly by calling
8479         mono_config_string_for_assembly_file() (see below) before looking
8480         for one in the file system.
8481         (get_runtimes_from_exe): Corrsponding change to call of
8482         app_config_parse().
8483         (get_runtimes_from_exe): Check for bundled assembly exe file first
8484         by calling mono_assembly_open_from_bundle(). If no bundled
8485         assembly exe file is found, call mono_image_open() as before to
8486         look it up in the file system.
8487
8488         * mono-config.c: Add variable bundled_machinec_onfig.
8489         (mono_config_string_for_assembly_file): New function.
8490         (mono_config_for_assembly): Move code snippet that looks for a
8491         bundled assembly .config file into the above new function. Call
8492         it.
8493         (mono_register_machine_config, mono_get_machine_config): New
8494         functions to set and retrieve
8495
8496         * assembly.h: Declare mono_register_machine_config().
8497
8498         * mono-config.h: Declare mono_get_machine_config() and
8499         mono_config_string_for_assembly_file().
8500
8501         * icall.c: No declaration of environ necessary on Win32. It is
8502         declared (as a macro expanding to a function call) in stdlib.h.
8503         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
8504         New internal mono function. Returns the value of
8505         mono_get_machine_config() as a Mono string.
8506
8507         * icall-def.h: Add get_bundled_machine_config().
8508
8509 2007-01-04  Raja R Harinath  <rharinath@novell.com>
8510
8511         Remove redundant field
8512         * class-internals.h (_MonoGenericContext.container): Remove field.
8513         * loader.c (mono_method_get_signature_full): Don't parse a
8514         "container" for a signature parse when the signature is inflated
8515         immediately.
8516         (method_from_methodspec): Likewise, for a generic_inst.
8517         * class.c, metadata.c, reflection.c: Update to changes.
8518
8519 2006-01-04  Raja R Harinath  <rharinath@novell.com>
8520
8521         * class-internals.h (_MonoGenericClass): Rename 'context' field to
8522         'cached_context', and change semantics -- it starts off NULL, and
8523         is initialized on demand.
8524         * class.c (mono_generic_class_get_context): New accessor to
8525         replace 'context' field accesses.
8526         (mono_class_get_context): New helper.
8527         (*): Update to changes.
8528         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
8529
8530 2007-01-03  Miguel de Icaza  <miguel@novell.com>
8531
8532         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
8533         before the memcpy.   Fixes Marshal2 regression.
8534
8535 2007-01-02  Jb Evain  <jbevain@gmail.com>
8536
8537         * blob.h: add a MONO_TYPE_ENUM definition
8538         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
8539         fix the encoding of arrays of enums in custom attributes.
8540
8541         Fixes #79666.
8542
8543 2007-01-01  Miguel de Icaza  <miguel@novell.com>
8544
8545         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
8546         string is null terminated, but only cut the string short if it
8547         overflows the buffer.   
8548         
8549         (mono_string_to_byvalstr): Also fix this routine.   The code here
8550         was not properly terminating a string (it was only terminated
8551         because of the previous catch-all memset). 
8552
8553         I left the memset, because I do not know if applications expect
8554         the runtime to clear this region. 
8555
8556         Fixes #79944.
8557
8558         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
8559         Clear the error before returning to unmanaged code to prevent the
8560         runtime from being confused later on (fixes  80420).
8561         (ves_icall_type_from_name): Always call mono_loader_clear_error
8562         after parsing a type that could have failed.
8563         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
8564
8565         * loader.c (mono_loader_clear_error): Fix indentation.
8566
8567 2006-12-28  Martin Baulig  <martin@ximian.com>
8568
8569         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
8570
8571 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
8572
8573         * reflection.c: patch from Rolf Bjarne Kvinge to fix
8574         getting a token for an EnumBuilder.
8575
8576 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
8577
8578         * reflection.c: be more careful in case resource generation
8579         fails to create the data array.
8580
8581 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
8582
8583         * sgen-gc.c: write barrier for clone and fix unregister handles.
8584
8585 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
8586
8587         * reflection.c: some fixes needed in the generics code for the moving GC.
8588
8589 2006-12-22  Robert Jordan  <robertj@gmx.net>
8590
8591         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
8592         account. Fixes bug #80299.
8593
8594 2006-12-21  Raja R Harinath  <rharinath@novell.com>
8595
8596         Fix WaitHandle usage in delegates.
8597         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
8598         * object.c (mono_wait_handle_new): Use the property set method to
8599         initialize the handle.
8600         (mono_wait_handle_get_handle): New.
8601         * threadpool.c (mono_async_invoke): Use it.
8602         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
8603         Likewise.
8604         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
8605
8606 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
8607
8608         * marshal.c (emit_marshal): Call emit_marshal_variant and
8609         emit_marshal_com_interface when applicable.
8610         (emit_marshal_variant, emit_marshal_com_interface): Add
8611         methods for this case and remove if's from emit_marshal_object.
8612         
8613 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
8614
8615         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
8616
8617 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
8618
8619         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
8620         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
8621         and GlobalFree on Windows. Remove FIXME.
8622
8623 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
8624
8625         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
8626         implementation for managed objects.
8627
8628 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
8629
8630         * object.c: implemented code to be used for checking
8631         that no reference field overlaps with non-references.
8632
8633 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
8634
8635         * threadpool.c: fix queue code to be compatible with the
8636         moving GC.
8637
8638 2006-12-18  Miguel de Icaza  <miguel@novell.com>
8639
8640         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
8641         in structures by throwing ArgumentNullException.
8642
8643         (emit_marshal_safehandle): Also when they are null parameters.
8644
8645         (emit_marshal_safehandle): Add support for ref
8646         SafeHandles parameters
8647
8648 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
8649
8650         * profiler.c: updated to use the mono-dl API instead of
8651         gmodule.
8652
8653 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
8654
8655         * profiler.c: updated to use the mono-dl dynamic loading
8656         API instead of gmodule.
8657
8658 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
8659
8660         * profiler.c: use readlink, older versions of glib don't have
8661         g_file_read_link ().
8662
8663 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
8664
8665         * profiler.c: try to detect the path to mono if libc fails to provide
8666         a useful name (bug #80286).
8667
8668 2006-12-16  Raja R Harinath  <rharinath@novell.com>
8669
8670         Fix #80242
8671         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
8672         instance, use the generic type definition instead.
8673         (ves_icall_Type_GetNestedTypes): Likewise.
8674         * class.c (mono_class_create_generic): Always set the
8675         nested_classes of a generic instance to NULL, even if the generic
8676         type definition has nested types.
8677
8678 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
8679
8680         * marshal.c (mono_string_from_bstr): Revert previous Windows change
8681         and fix on Linux.
8682         
8683 2006-12-15  Miguel de Icaza  <miguel@novell.com>
8684
8685         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
8686         my arguments were in the wrong order.   I also fixed the Windows
8687         version which seems to have had the same issue.
8688
8689         (mono_free_bstr): On Unix, this is g_free.
8690         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
8691         conversions (for the tests in corlib to pass).
8692
8693 2006-12-14  Miguel de Icaza  <miguel@novell.com>
8694
8695         * marshal.c (emit_ptr_to_object_conv): For now, ignore
8696         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
8697         exception if a ref SafeHandle in a struct has changed).
8698         
8699         (emit_struct_conv): Do not perform layout checks for classes
8700         derived from SafeHandle, as those are specially handled. 
8701
8702         (emit_object_to_ptr_conv): Add support for
8703         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
8704
8705         (emit_marshal_safehandle): Implement conversion of return values
8706         of safehandles (MARSHAL_ACTION_CONV_RESULT).
8707         
8708         * threads.c: WaitHandle now is compiled with two different handles
8709         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
8710         for 2.0.
8711         
8712         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
8713         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
8714         these routines to cope with both kinds of fields.
8715
8716 2006-12-12  Miguel de Icaza  <miguel@novell.com>
8717
8718         * metadata.c (mono_type_to_unmanaged): Handle the case where
8719         type->data.klass is a SafeHandle, and in that case, return the
8720         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
8721         MONO_MARSHAL_CONV_SAFEHANDLE. 
8722
8723 2006-12-11  Miguel de Icaza  <miguel@novell.com>
8724
8725         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
8726         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
8727         calling emit_marshal_object.
8728
8729         (emit_marshal_safehandle): Implement marshalling of
8730         SafeHandle parameters (no ref support yet).
8731
8732         (MarshalAction): Document the defines as I implement
8733         them for SafeHandle.
8734
8735         (emit_marshal_object): indentation police.
8736
8737         * class-internals.h: Define MonoSafeHandle.
8738         Add safehandle_class to MonoDefaults type.
8739
8740         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
8741         list of classes to check for fields. 
8742
8743         * domain.c (mono_init_internal): Add SafeHandle to the list of
8744         mono_defaults loaded.
8745
8746 2006-12-15  Raja R Harinath  <rharinath@novell.com>
8747
8748         Fix #80253
8749         * reflection.c (mono_reflection_bind_generic_parameters): If the
8750         generic type definition is a type builder, ensure that it is fully
8751         initialized before instantiating it.  Kill some dead code.
8752
8753 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
8754
8755         * object.c: clear the loader_error () before loading
8756         more metadata stuff (bug #80258).
8757
8758 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
8759
8760         * icall.c, icall-defs.h: type modifiers icalls for
8761         parameters and properties.
8762
8763 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
8764
8765         * object.c, icall.c: fixed warnings.
8766
8767 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
8768
8769         * marshal.c: fixed a couple of leaks and coding style in a few places.
8770
8771 2006-12-08  Dick Porter  <dick@ximian.com>
8772
8773         * process.c: Cope with NULL ProcessStartInfo arguments on windows
8774         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
8775         80173.
8776
8777 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
8778
8779         * process.c: ProcessStartInfo may have only filename set and
8780         arguments can be NULL.
8781
8782 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
8783
8784         * icall.c: fix leak found by Robert Jordan.
8785
8786 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
8787
8788         * marshal.c, marshal.h: generate managed method to access an element
8789         of a multi-dimensional array.
8790
8791 2006-11-30  Paolo Molaro (lupus@ximian.com)
8792
8793         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
8794
8795 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
8796
8797         * icall.c: back out GetFields () fix until the serialization code is
8798         fixed to not depend on the incorrect behaviour.
8799
8800 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
8801
8802         * profiler.c: provide defaults if none are set.
8803
8804 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
8805
8806         * Makefile.am, attrdefs.h: new public header file with
8807         constants for attributes for use by embedders.
8808
8809 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
8810
8811         * icall.c: GetFields () fix for bug #80064.
8812
8813 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
8814
8815         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
8816         removed long unused icalls.
8817
8818 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
8819   
8820         * marshal.c: 
8821                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
8822                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
8823                 can be generated without a delegate class.
8824                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
8825         
8826         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
8827
8828 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8829
8830         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
8831         #80069.
8832
8833 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
8834
8835         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
8836         icall-def.h: added icalls needed by System.GC.
8837
8838 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
8839
8840         * loader.c: ensure the class in catch clauses is handled
8841         correctly for generics methods (fixes bug#79980).
8842
8843 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
8844
8845         * monitor.h, monitor.c: added mono_locks_dump () function
8846         to help debug deadlocks involving managed locks.
8847
8848 2006-11-13  Dick Porter  <dick@ximian.com>
8849
8850         * file-io.c (get_file_attributes): If the file is a symlink try
8851         and get the stat data for the target, but also add the
8852         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
8853         the specs for the windows symlink support, but will probably have
8854         to be reworked when I have test data from a vista machine.  Fixes
8855         bug 79887.
8856
8857 2006-11-13  Dick Porter  <dick@ximian.com>
8858
8859         * gc.c (mono_domain_finalize): 
8860         * marshal.c (mono_delegate_begin_invoke): 
8861         * threadpool.c (socket_io_init, mono_thread_pool_init)
8862         (mono_thread_pool_finish): 
8863         * monitor.c (mono_monitor_try_enter_internal): 
8864         * threads.c (mono_thread_resume, mono_thread_init)
8865         (mono_thread_suspend_all_other_threads)
8866         (mono_thread_execute_interruption): 
8867         * appdomain.c (mono_domain_unload): Check for NULL error returns
8868         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
8869         75733.
8870
8871 2006-11-11  Miguel de Icaza  <miguel@novell.com>
8872
8873         * process.c
8874         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
8875         Only close the handle if the value of the handle is not
8876         INVALID_HANDLE_VALUE.  This just makes the process a bit more
8877         robust.
8878
8879         Improvement for #75733, so that we do not run into this problem. 
8880
8881         
8882         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
8883         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
8884         internal variables.  Fixes #79462 
8885         
8886
8887 2006-11-09  Dick Porter  <dick@ximian.com>
8888
8889         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
8890         Use poll() not select().  Fixes bug 79397.
8891
8892 2006-11-09  Raja R Harinath  <rharinath@novell.com>
8893
8894         Fix #79872
8895         * assembly.c (mono_assembly_load_from_full): Check that the given
8896         image has an assembly manifest.
8897
8898 2006-11-09  Ankit Jain  <jankit@novell.com>
8899
8900         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
8901         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
8902         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
8903
8904 2006-11-07  Dick Porter  <dick@ximian.com>
8905
8906         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
8907         Put the old resolver behaviour back for pre-2.0 profiles.
8908
8909 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
8910
8911         * threadpool.c: precise GC and locking fixes.
8912
8913 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
8914
8915         * class.c: don't load types that have an explicit unaligned
8916         managed reference. Provide better info in the TypeLoad exception.
8917         Part of the fix for bug #79744.
8918         * object.c: use the correct check for class type load issues.
8919
8920 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
8921
8922         * class.c: enforce alignment of fields with managed references
8923         even when Pack=1 is forced by the user (bug #77788).
8924
8925 2006-11-03  Dick Porter  <dick@ximian.com>
8926
8927         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
8928         If the address reverse lookup fails, return it as the hostname
8929         anyway.  Fixes bug 79721.
8930
8931 2006-11-03  Dick Porter  <dick@ximian.com>
8932
8933         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
8934         Fix build on Windows.
8935
8936 2006-11-02  Dick Porter  <dick@ximian.com>
8937
8938         * icall-def.h: 
8939         * object-internals.h: 
8940         * exception.c (mono_get_exception_thread_interrupted): 
8941         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
8942         Fixes bug 74525.
8943
8944         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
8945         Check for pending Thread.Interrupt.
8946
8947 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
8948         * loader.c: Fixed bug 79684.
8949
8950 2006-10-27  Dick Porter  <dick@ximian.com>
8951
8952         * file-io.c (get_file_attributes): Force symlinks to directories
8953         to be returned as a regular file.  Fixes bug 79733.
8954 2006-10-26  Dick Porter  <dick@ximian.com>
8955
8956         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
8957         CreateFile to open a directory then we need to set the
8958         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
8959
8960 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
8961
8962         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
8963         friends.
8964
8965 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
8966
8967         * sgengc.c: small cleanup of timer code.
8968
8969 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
8970
8971         * sgen-gc.c: fix some warnings and start adding support for
8972         complete object removal on domain unload.
8973
8974 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
8975
8976         * assembly.c: build_assembly_name should not consider a version
8977         number without build or revision number invalid. Fixes bug #79715.
8978
8979 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
8980
8981         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
8982         call kernel32 function OutputDebugString directly.
8983         
8984         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
8985         
8986 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
8987
8988         * reflection.c: small cleanup, using a function to insert a MonoString
8989         in the string heap.
8990
8991 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
8992
8993         * reflection.c: moving GC fixes.
8994
8995 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
8996
8997         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
8998         all the objects with finalizers belonging to an unloading appdomain.
8999
9000 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
9001
9002         * sgen-gc.c: added ability to allocate even when the nursery is fully
9003         pinned and fixed a couple of bugs.
9004
9005 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
9006
9007         * threads.h: Revert the last change for now.
9008
9009         * threads.h (mono_thread_get_pending_exception): Rename this to
9010         mono_thread_get_undeniable_exception ().
9011
9012 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
9013
9014         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
9015         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
9016         when fname does not refer to valid assembly. This result in a more
9017         meaningful error message.
9018         * exception.c: added mono_get_exception_bad_image_format2 which 
9019         constructs a BadImageFormatException using the ctor taking a custom
9020         message and the file name. Passing in a NULL msg results in a default
9021         message.
9022         * exception.h: define mono_get_exception_bad_image_format2 function.
9023         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
9024         when file name pointed to an invalid IL image. Use 
9025         mono_get_exception_file_not_found2 to construct FileNotFoundException,
9026         as this results in a more meaningful error message.
9027
9028 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
9029
9030         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
9031         #79465.
9032
9033 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
9034
9035         * metadata.c (mono_type_size): Change the align parameter to guint32 for
9036         consistency with the other _size functions.
9037         (mono_type_stack_size): Ditto.
9038
9039         * class.c object.c icall.c: Fix warnings caused by the above change.
9040
9041         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
9042
9043         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
9044
9045         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
9046
9047 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
9048
9049         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
9050         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
9051         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
9052         threadpool.h, threads-types.h: mark more internal functions.
9053
9054 2006-10-11  Dick Porter  <dick@ximian.com>
9055
9056         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
9057         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
9058         reproduce the bug even before applying the fix.)
9059
9060 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
9061
9062         * reflection.c: allow retrieving attributes for arguments in generic
9063         methods (bug #79241).
9064
9065 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
9066
9067         * debug-mono-symfile.c: properly check fopen () result (found by
9068         coverity).
9069
9070 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
9071
9072         * reflection.c: make error message clearer and fixed two
9073         issuelets found by Coverity.
9074
9075 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
9076
9077         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
9078
9079 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
9080
9081         * object-internals.h, gc-internal.h, profiler-private.h:
9082         mark internal functions.
9083
9084 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
9085
9086         * reflection.c: put data in the text section.
9087         * icall.c: recognize more types in type_from_typename ().
9088         * process.c, marshal.c: added some GC FIXMEs.
9089
9090 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
9091
9092         * loader.c: check for NULL before initializing.
9093
9094 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
9095
9096         * gc.c (finalizer_thread): Use a non-alertable wait here.
9097
9098         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
9099         until the correct solution is found.
9100
9101 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
9102
9103         * reflection.c (mono_module_get_object): Avoid an assert when operating on
9104         modules with no metadata. Fixes #79596.
9105
9106         * image.c (load_metadata_ptrs): Put back the error message when
9107         the #- heap is encountered since the support is not complete yet.
9108
9109 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
9110
9111         * gc.c: do not allow the user to SuppressFinalize () a
9112         delegate because it would leak the trampoline if present.
9113
9114 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
9115
9116         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
9117         PropertyPtr table.
9118
9119 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
9120
9121         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
9122
9123         * metadata.c (mono_metadata_get_param_attrs): Ditto.
9124
9125         * row-indexes.h: Add definitions for *Ptr tables.
9126
9127         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
9128
9129         * metadata.c (mono_metadata_translate_token_index): New helper function to
9130         translate table indexes used in uncompressed metadata.
9131         (mono_metadata_decode_table_row): Ditto.
9132         (mono_metadata_decode_table_row_col): Ditto.
9133
9134         * metadata.c: Add table schema for *Ptr tables.
9135
9136         * class.c loader.c: Use the new helper function to access the affected metadata
9137         tables.
9138         
9139         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
9140         #38532.
9141         
9142 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
9143
9144         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
9145         sequences which can be unbounded in size. Fixes #79583.
9146
9147 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
9148
9149         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
9150         static initialization.
9151
9152         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
9153
9154         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
9155
9156         * domain.c (mono_domain_free): Free up type_init_exception_hash.
9157
9158         * object.c (mono_runtime_class_init): Implement correct semantics when a static
9159         ctor fails, i.e. throw the same exception on subsequent accesses.
9160         
9161 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
9162
9163         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
9164         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
9165         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
9166         Handle marshalling of interfaces and VARIANTs contained in structs.
9167         
9168         Code is contributed under MIT/X11 license.
9169         
9170 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
9171
9172         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
9173         
9174         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
9175         mempool.
9176
9177 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9178
9179         * console-io.c: ignore previous SIGINT handler.
9180
9181 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
9182
9183         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
9184         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
9185         #79460, #79461, #79485.
9186
9187         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
9188
9189         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
9190         #79217.
9191
9192 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
9193
9194         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
9195         could be generated from it.
9196
9197 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
9198
9199         * rand.c: fix read loop to correctly handle EINTR.
9200
9201 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
9202
9203         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
9204         internal calls are defined to keep methods closer to the declaring
9205         type and allow a significant reduction in runtime relocations and
9206         memory usage.
9207
9208 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
9209
9210         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
9211         exception message to have FileNotFoundException use the default
9212         assembly load error message. Fixes bug #79426.
9213         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
9214
9215 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9216
9217         * threadpool.c: (start_thread_or_queue) use the root domain when
9218         creating the thread instead of the async object one.
9219
9220 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
9221
9222         * class.c, object.c, class-internals.h, reflection.c:
9223         for arrays, store element_size inside MonoClass (speedup
9224         for array object creation).
9225
9226 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
9227
9228         * icall.c: fixed CodeBase to use the file name and not the module
9229         name (bug #79365).
9230
9231 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
9232
9233         * mono-debug.c, mono-debug.h: export find_method as
9234         mono_debug_find_method ().
9235
9236 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
9237
9238         * debug-helpers.c, class-internals.h: added a few functions useful
9239         when debugging under gdb.
9240
9241 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9242
9243         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
9244         characters that need special handling.
9245
9246 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
9247
9248         * mono-config.c: make the os/cpu specification more flexible,
9249         allowing lists and negation.
9250
9251 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
9252
9253         * marshal.c: COM Interop fixes. Handle case where method->klass.
9254         is interface. Handle BSTR/MonoString when null. Use CDECL as 
9255         calling convention on non-windows platforms. This is for
9256         compatibility with XPCOM and MainWin COM.
9257         
9258         Code is contributed under MIT/X11 license.
9259         
9260
9261 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
9262
9263         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
9264         correctly. Fixes #79217.
9265
9266         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
9267
9268 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
9269
9270         * mono-config.c: allow both an os and cpu attribute for dllmap
9271         and dllentry elemnets to enable a single config file to be used
9272         for multiple architectures.
9273
9274 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
9275
9276         * loader.c: MonoLoaderError was cleared too soon on load failure.
9277         Fixes bug #79424.
9278
9279 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
9280
9281         * icall.c: use the defining class vtable when accessing a
9282         static field, not a pobblibly derived class.
9283
9284 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
9285
9286         * icall.c string-icalls.c: Remove references to unicode.h.
9287
9288         * unicode.h unicode.c Makefile.am: Remove these unused source files.
9289
9290         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
9291
9292         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
9293         indicating the image where custom marshaller types should be looked up.
9294         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
9295         custom marshallers, instead of corlib. Fixes #79425.
9296
9297 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
9298
9299         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
9300
9301 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
9302
9303         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
9304         Implement Environment.ProcessorCount.
9305         
9306         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
9307         Implement Environment.ProcessorCount.
9308         
9309         * icall.c: 
9310         Add Environment.ProcessorCount icall.
9311         
9312         Patch by Jason McFall.
9313
9314 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9315
9316         * assembly.c: don't append .exe/.dll when the filename already contains
9317         one of those extensions.
9318
9319 2006-09-12  Martin Baulig  <martin@ximian.com>
9320
9321         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
9322         to array interfaces.
9323
9324 2006-09-11  Martin Baulig  <martin@ximian.com>
9325
9326         * reflection.c (mono_image_build_metadata): Create the
9327         MethodImpl's after emitting all types and methods, so we don't
9328         need another fixup pass for them.
9329
9330 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
9331
9332         * class.c (mono_class_from_name_case): Fix regression introduced by the last
9333         change.
9334
9335 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
9336
9337         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
9338         unload.
9339
9340 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
9341
9342         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
9343         args is not set. Fixes #78926.
9344
9345 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
9346
9347         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
9348
9349         * image.c (load_class_names): Move this to class.c, and rename it to 
9350         'mono_image_init_name_cache'.
9351         (load_modules): Fix a warning.
9352
9353         * class.c icall.c image.c: Initialize image->name_cache lazily.
9354
9355         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
9356         on its name using information in the AOT file.
9357
9358         * class.c (mono_class_from_name): Use the new hook function.
9359
9360 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
9361
9362         * reflection.c (mono_param_get_objects): Handle enum default parameter values
9363         correctly.
9364
9365         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
9366         Fixes #79289.
9367         
9368 2006-09-06  Martin Baulig  <martin@ximian.com>
9369
9370         * icall.c (mono_lookup_internal_call): Small fix.
9371
9372 2006-09-05  Raja R Harinath  <rharinath@novell.com>
9373
9374         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
9375         double g_free.
9376
9377 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
9378
9379         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
9380         when --debug is specified.
9381
9382 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
9383
9384         * class.c (setup_generic_array_ifaces): Fix a warning.
9385
9386 2006-09-04  Miguel de Icaza  <miguel@novell.com>
9387
9388         * Temporarily remove the patch to assemly.c that checks the
9389         assembly versions as it breaks our gacutil.
9390
9391 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
9392
9393         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
9394
9395         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
9396         a net 1.0 runtime.
9397
9398         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
9399         created using the default ctor. Fixes #79152.
9400         (mono_string_builder_to_utf16): Ditto.
9401
9402 2006-09-01  Martin Baulig  <martin@ximian.com>
9403
9404         Fix handling of the generic array interfaces.
9405
9406         * class-internals.h
9407         (MonoDefaults): Removed `generic_array_class' and added
9408         `generic_ilist' class.
9409
9410         * class.c
9411         (mono_bounded_array_class_get): Add the new generic array interfaces.
9412         (setup_generic_array_ifaces): New static method; create vtable
9413         entries for each method in the generic array interfaces.
9414
9415         * metadata.c
9416         (select_container): Allow "parent-less" generic methods.
9417
9418         * marshal.c
9419         (mono_marshal_get_generic_array_helper): New public method.
9420
9421         * icall.c
9422         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
9423         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
9424         moved the interncall into System.Array.
9425
9426 2006-09-01  Raja R Harinath  <rharinath@novell.com>
9427
9428         A few more cases of avoiding work on types with ->byref set.
9429         Has the real fix for #79238
9430         * icall.c (is_generic_parameter): New helper.
9431         (ves_icall_Type_GetGenericParameterPosition): Use it.
9432         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
9433         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
9434         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
9435         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
9436         reference types.
9437         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
9438         reference types.
9439         (ves_icall_Type_get_IsGenericInstance): Likewise.
9440         (ves_icall_Type_get_IsGenericType): Likewise.
9441
9442 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
9443
9444         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
9445         class if possible.
9446
9447         * mempool.h (mono_mempool_get_allocated): New helper function.
9448
9449         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
9450         change.
9451
9452         * mempool.c: Fix warnings and the calculation of stats.
9453
9454         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
9455
9456         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
9457
9458         * loader.c (mono_get_method_from_token): Update method_count stat.
9459
9460         * class-internals.h (MonoStats): Add some stats.
9461
9462 2006-08-31 Robert Jordan  <robertj@gmx.net>
9463
9464         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
9465         with managed variants.
9466         All code is contributed under the MIT/X11 license.
9467         
9468 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
9469
9470         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
9471         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
9472
9473         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
9474
9475         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
9476         with cycles in classes.
9477
9478         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
9479
9480         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
9481         missing a [MarshalAs] directive. Fixes #79203.
9482
9483         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
9484         klass->marshal_info. Fixes #79217.
9485
9486 2006-08-30  Martin Baulig  <martin@ximian.com>
9487
9488         Committing a patch from Joachim Ante <joe@otee.dk>:
9489         Add support for binary data symbol stores.
9490
9491         * debug-mono-symfile.c
9492         (mono_debug_open_mono_symbol_file): Renamed into
9493         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
9494         arguments.
9495
9496         * mono-debug.c
9497         (mono_debug_open_image): Added `raw_contents' and `size' args.
9498         (mono_debug_init_2_memory): New public function.
9499
9500 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
9501
9502         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
9503
9504 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9505
9506         * appdomain.c: implement support for ShadowCopyFiles.
9507
9508 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
9509
9510         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
9511         when value is NULL (and should remove CID #51).
9512
9513 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9514
9515         * image.c: moved 2 functions to ../utils.
9516
9517 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
9518
9519         * gc.c: cope with the target object of a GC handle being NULL
9520         (bug #78877).
9521
9522 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
9523
9524         * class.c: recursively check parent's explicit implementations
9525         of interface methods (fixes bug #79125).
9526
9527 2006-08-19  Miguel de Icaza  <miguel@novell.com>
9528
9529         * filewatcher.c: Avoid warnings when building, do not redefine
9530         constants that are defined.
9531
9532         Remove warnings.
9533
9534 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9535
9536         * image.c: don't fail when the link points to an absolute path.
9537
9538 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
9539
9540         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
9541         Fix CID #3.
9542
9543 2006-08-17  Miguel de Icaza  <miguel@novell.com>
9544
9545         * image.c (full_path): A new method used to obtain the actual path
9546         of an assembly even in the presence of symbolic links.  
9547
9548         This is necessary for the case where we are running a binary that
9549         has been GACed, but we are using the "published" path name
9550         ($prefix/mono/1.0/blah.exe) which happens to point to the real
9551         file in the GAC.
9552
9553         This was the source of the failure for the `xsp' command with the
9554         recent AppDomain changes, as far as the runtime was concerned,
9555         there were two different assemblies: $prefix/mono/1.0/blah.exe and
9556         $prefix/mono/gac/blah/version/blah.exe.
9557
9558         (do_mono_image_open): use full path
9559
9560 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
9561
9562         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
9563
9564 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
9565
9566         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
9567         domain_id is supplied. Fix CID #241 and corlib's unit tests.
9568
9569 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
9570
9571         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
9572         small structures. Fixes #78990.
9573
9574 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
9575
9576         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
9577
9578         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
9579
9580 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9581
9582         * appdomain.c:
9583         * marshal.c: don't load all the assemblies from a domain into newly
9584         created ones. The new domains might have different rules and load
9585         assemblies from different locations. Fixes bug #76757.
9586
9587         Patch by Lluis. Conflicts resolved by Brian Crowell.
9588
9589 2006-08-16  Alp Toker  <alp@atoker.com>
9590
9591         * socket-io.c: First half of the fix for #79084.
9592         Set sa_size to the length of the content, not that of the struct.
9593         Don't add NULL suffix to the content, this should be done in
9594         managed code if needed.
9595
9596 2006-08-14  Raja R Harinath  <rharinath@novell.com>
9597
9598         Fix part of #79012
9599         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
9600         mono_metadata_parse_type returns NULL.
9601
9602 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
9603
9604         * normalization-tables.h : new file for string normalization data.
9605         * locales.c, locales.h, icall.c :
9606           added load_normalization_resource() for string normalization,
9607           and icall as well.
9608         * Makefile.am : added normalization-tables.h to the sources.
9609
9610 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
9611
9612         * marshal.c: Add more helper functions to reduce code duplication and use them
9613         everywhere.
9614
9615 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
9616
9617         * marshal.c: Fix non-x86 stdcall warnings.
9618         
9619         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
9620         them everywhere.
9621
9622 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
9623
9624         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
9625         type check on multi-dimensional arrays. Fixes #79000.
9626
9627 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
9628
9629         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
9630         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
9631         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
9632         * class-internals.h: add is_com_object to class structure.
9633         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
9634         null checks to COM object marshalling. Fix .ctor call on RCW.
9635         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
9636         
9637         All code is contributed under the MIT/X11 license.
9638
9639 2006-08-09  Dick Porter  <dick@ximian.com>
9640
9641         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
9642         racing mono_monitor_allocator_lock() somewhere, so don't delete
9643         the critical section for now.  Found by running and exiting
9644         monodevelop.
9645
9646 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
9647
9648         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
9649         (ves_icall_System_ComObject_FindInterface): Ditto.
9650         (ves_icall_System_ComObject_CacheInterface): Ditto.
9651
9652         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
9653         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
9654
9655 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9656
9657         * threadpool.c: treat pipes from process asynchronous reads as sockets
9658         when reading from them, so we get select/poll or epoll to wait for
9659         data.
9660
9661 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
9662
9663         * loader.c: Fix a typo (CID #233) in the null check.
9664
9665 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
9666
9667         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
9668         Hopefully fixes #78949.
9669         
9670         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
9671         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
9672         bytes. Fixes #78972.
9673
9674 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9675
9676         * filewatcher.c: we need to set errno here.
9677
9678 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9679
9680         * filewatcher.c: let Win32Exception get the error value.
9681
9682 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9683
9684         * filewatcher.c: translate errno into win32 errors for Win32Exception
9685         to know what happened.
9686
9687 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
9688
9689         * threadpool.c: Fix more warnings.
9690
9691         * assembly.c (search_loaded): Fix warnings.
9692
9693         * threadpool.c (mono_thread_pool_finish): Fix warnings.
9694         (mono_async_invoke): Ditto.
9695
9696 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
9697
9698         * object.c (mono_remote_class_vtable): Need to create proxy vtable
9699         entries for __ComObject type in addition to ComImport types.
9700         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
9701         about hash table.
9702         
9703         All code is contributed under the MIT/X11 license.
9704
9705 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
9706
9707         * image.c: avoid tentative loading of modulerefs that contain
9708         no metadata (P/Invoke library names).
9709
9710 2006-07-28  Dick Porter  <dick@ximian.com>
9711
9712         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
9713         mono_loader_lock() somewhere, so don't delete the critical section
9714         for now.  Found by running and exiting monodevelop.
9715
9716 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9717
9718         * filewatcher.c: define the inotify syscalls when we're building on
9719         linux and have sys/syscall.h. The build system might not have support
9720         for inotify but the target system might have it.
9721
9722 2006-07-26  Miguel de Icaza  <miguel@novell.com>
9723
9724         * domain.c: Documentation updates.
9725
9726         * loader.c (mono_free_method): Do not release the method
9727         information if we are being profiled, as profilers will use this
9728         information at shut down to present some data to the user.
9729
9730         This is needed so that the profiler does not crash, as the
9731         profiler tends to keep MonoMethods around, and they might become
9732         invalid if we free these.
9733
9734         (mono_get_method_constrained): Return the original CIL stream
9735         method as well, so verification can be performed against it.
9736
9737 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9738
9739         * filewatcher.[ch]: support for inotify file system watcher.
9740         * icall.c: add new internal calls for the inotify file system watcher.
9741
9742 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9743
9744         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
9745         #78888.
9746
9747 2006-07-20  Dick Porter  <dick@ximian.com>
9748
9749         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
9750         warning.
9751
9752 2006-07-20  Dick Porter  <dick@ximian.com>
9753
9754         * threads.c (start_wrapper): Do the thread cleanup while we still
9755         hold a reference to its object.  Fixes bug 78123.
9756
9757 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
9758
9759         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
9760         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
9761           "managed-to-managed".
9762         * icall.c: Redirect string constructors that take sbyte* to
9763           ves_icall_System_String_ctor_RedirectToCreateString.
9764         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
9765           to CreateString () methods with matching signature.
9766         * reflection.c: Use original security informations for
9767           MONO_WRAPPER_MANAGED_TO_MANAGED.
9768         * security-manager.c: Use original security informations for
9769           MONO_WRAPPER_MANAGED_TO_MANAGED.
9770         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
9771           that is a placeholder and only its address should be used.
9772         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
9773           that is a placeholder and only its address should be used.
9774
9775 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
9776
9777         Begin implementing COM Interop.
9778         * appdomain.c: Increment corlib version.
9779         * class.c: Set ComImport classes' parent to __ComObject.
9780         * loader.c: Mark cominterop methods as such.
9781         * domain.c: Add __ComObject class to MonoDefaults structure.
9782         * image.c: Add 2 hashtables to the image for COM Interop related methods
9783         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
9784         using the mempool allocator
9785         
9786         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
9787         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
9788         declaration for mono_metadata_type_dup_mp.
9789         
9790         * debug-helpers.c: Added strings for two additional wrapper types
9791         * object.c: Create proxy objects for ComImport classes
9792         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
9793         and added __ComObject class to MonoDefaults structure.
9794         
9795         * object-internals.h: Finish MonoRealProxy definition, and add definition of
9796         MonoComInteropProxy and MonoComObject.
9797         
9798         * marshal.c: Added support for COM Interop
9799         (signature_cominterop): Converts managed signature to corresponding
9800         unmanaged COM signature.
9801         (cominterop_get_function_pointer): gets unmanaged function pointer via
9802         COM object vtable
9803         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
9804         (cominterop_get_method_interface): returns interface type that method is defined on
9805         (mono_mb_emit_cominterop_call): emits native call to function pointer
9806         gotten from vtable
9807         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
9808         that matches signature of unmanaged function.
9809         (cominterop_get_native_wrapper): wrapper around adjusted method call.
9810         (cominterop_get_invoke): forwards call from proxy to __ComObject
9811         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
9812         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
9813         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
9814         
9815         * marshal.h: Added Marshal icall declarations.
9816         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
9817         so we can access them in finalizer
9818         
9819 2006-07-14  Dick Porter  <dick@ximian.com>
9820
9821         * object.c (mono_type_initialization_cleanup): Fix a race
9822         condition by temporarily commenting out the critical section
9823         deletion.
9824
9825 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
9826
9827         * reflection.c (create_custom_attr): Fix some warnings.
9828         (create_custom_attr_data): Ditto.
9829         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
9830         types. Fixes #78855.
9831
9832 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
9833
9834         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
9835
9836         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
9837
9838 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
9839
9840         * reflection.c (resolve_object): Add support for DynamicMethod.
9841
9842         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
9843         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
9844
9845 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
9846
9847         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
9848         don't leak GPtrArray's pdata has we have no use (nor free) for it.
9849
9850 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
9851
9852         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
9853         Fixes #77888.
9854
9855 2006-06-30  Raja R Harinath  <rharinath@novell.com>
9856
9857         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
9858         slightly: remove a shadow local variable.
9859
9860 2006-06-29  Raja R Harinath  <rharinath@novell.com>
9861
9862         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
9863         definition that introduces the virtual function slot.
9864         Also fix Coverity #105.
9865
9866 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
9867
9868         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
9869         for dynamic assemblies. Fixes #78724.
9870
9871 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
9872
9873         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
9874         Fixes #78722.
9875
9876 2006-06-21  Martin Baulig  <martin@ximian.com>
9877
9878         * reflection.c
9879         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
9880         fixes #76484.
9881
9882 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
9883
9884         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
9885
9886 2006-06-20  Raja R Harinath  <rharinath@novell.com>
9887
9888         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
9889         nor TYPEREFs.
9890         * class.c (mono_class_create_from_typespec): Add 'context' argument.
9891         Inflate result if necessary.
9892         (mono_class_get_full): Remove old version.  Rename from
9893         'mono_class_get' and add 'context' argument.  Pass it to
9894         ..._create_from_typespec.
9895         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
9896         (mono_ldtoken): Revert change below.
9897
9898 2006-06-20  Martin Baulig  <martin@ximian.com>
9899
9900         * class.c (mono_ldtoken): Don't pass the generic context to
9901         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
9902
9903 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
9904
9905         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
9906         and later freeing it. Fixes #78638.
9907
9908 2006-06-15  Miguel de Icaza  <miguel@novell.com>
9909
9910         * icall.c (mono_class_get_throw): Revert over-zealous error
9911         throwing, the caller for mono_class_get_throw will cope with
9912         errors when classes are not properly initialized already.
9913
9914         The code still copes with loader exceptions though.
9915
9916         Fixes the regression in reftype1 and reftype3 from the CAS tests.
9917         
9918 2006-06-14  Miguel de Icaza  <miguel@novell.com>
9919
9920         Fixes the `make run1' version of RuntimeAbort (to be commited,
9921         source is in Bugzilla).
9922         
9923         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
9924         FALSE on class loading failure instead of returning true.
9925
9926         * class.c (mono_class_create_from_typedef): It is possible for
9927         mono_metadata_interfaces_from_typedef_full to fail if a class is
9928         not found, cope with this.
9929         
9930
9931 2006-06-14  Dick Porter  <dick@ximian.com>
9932
9933         * socket-io.c: 
9934         * process.c: Fix a bunch of signed/unsigned warnings from gcc
9935         4.1.1
9936
9937 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
9938
9939         * culture-info-table.h : oops, forgot to make it nsync with r61548.
9940
9941 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
9942
9943         * icall.c: Another fix for building mono in Visual Studio.
9944
9945 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
9946
9947         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
9948         
9949 2006-06-09  Martin Baulig  <martin@ximian.com>
9950
9951         * debug-mono-symfile.c: Put this back and really fix it this
9952         time. Sorry for all the trouble.
9953
9954 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
9955
9956         * icall.c (mono_class_get_throw): Fix a warning.
9957         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
9958         ReflectionTypeLoadException if needed. Fixes #78606.
9959
9960         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
9961         (mono_class_init): Ditto.
9962
9963         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
9964         ref_only exceptions.
9965         (mono_loader_clear_error): Make this work even if there is no error.
9966
9967 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
9968
9969         * object-internals.h marshal.c marshal.h icall.c: Implement method 
9970         Marshal.GetComSlotForMethodInfo using internal call.
9971
9972 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
9973
9974         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
9975         a function for signalling it.
9976
9977         * class.c (mono_class_from_typeref): Use the new kind of loader error when
9978         a referenced assembly is not found.
9979
9980         * loader.c (mono_loader_error_prepare_exception): Add support for 
9981         LOADER_ERROR_ASSEMBLY. Fix formatting.
9982
9983 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
9984
9985         * domain.c appdomain.c class-internals.h marshal.c: Add support 
9986         for VARIANT marshalling on windows and increment corlib version
9987         since Variant struct was added.
9988
9989 2006-06-03  Miguel de Icaza  <miguel@novell.com>
9990
9991         * debug-mono-symfile.c: Revert Martin's previous patch which broke
9992         stack trace line information:
9993
9994         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
9995         (Martin) when looking up B which is between A and C, return A not C.
9996
9997         Bug is #78573.
9998
9999         Thanks to Alexander Olk for tracking this down.
10000
10001 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
10002
10003         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
10004         
10005         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
10006         avoid clobbering its value.
10007         (mono_string_to_lpstr): Fix a warning on windows.
10008
10009 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
10010
10011         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
10012
10013         * reflection.c loader.c: Removed references to 'dummy' flag.
10014
10015         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
10016
10017         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
10018         it gets GC tracking.
10019
10020         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
10021         GC tracking.
10022         
10023         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
10024
10025         * marshal.c threadpool.c: Update callers of mono_async_result_new.
10026
10027         * appdomain.c: Bump corlib version.
10028
10029 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
10030
10031         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
10032         CEE_STIND_REF when working with object references.
10033
10034 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
10035
10036         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
10037         Fixes #78539.
10038
10039 2006-05-30  Miguel de Icaza  <miguel@novell.com>
10040
10041         * loader.c (method_from_memberref): Fix argument value for
10042         mono_loader_set_error_method_load (I was passing the MonoClass
10043         instead of the class name char *).
10044
10045 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
10046
10047         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
10048         CEE_STIND_REF when working with object references.
10049
10050 2006-05-30  Martin Baulig  <martin@ximian.com>
10051
10052         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
10053         mono_method_full_name() change and replace the ':' with a '.'
10054         here.
10055
10056 2006-05-30  Martin Baulig  <martin@ximian.com>
10057
10058         * debug-mono-symfile.c
10059         (mono_debug_symfile_lookup_location): Fix the algorithm:
10060         when looking up B which is between A and C, return A not C.
10061
10062 2006-05-29  Martin Baulig  <martin@ximian.com>
10063
10064         * mono-debug.h
10065         (MonoDebugMethodInfo): Make the typedef public.
10066         (MonoDebugSourceLocation): New public struct.
10067
10068         * mono-debug.c
10069         (mono_debug_source_location_from_address): Removed.
10070         (mono_debug_source_location_from_il_offset): Removed.
10071         (mono_debug_il_offset_from_address): Removed.
10072         (mono_debug_address_from_il_offset): Removed.
10073         (mono_debug_lookup_method): New public function.
10074         (mono_debug_lookup_source_location): New public function; replaces
10075         the old mono_debug_source_location_from_*() functions; see the
10076         inline documentation.
10077         (mono_debug_free_source_location): New public function.
10078         (mono_debug_print_stack_frame): New public function; see the
10079         inline documentation.
10080
10081         * debug-mono-symfile.c
10082         (mono_debug_find_source_location): Renamed into
10083         mono_debug_symfile_lookup_location(); only take a
10084         `MonoDebugMethodInfo *' and an `offset' argument; added inline
10085         documentation.
10086         (mono_debug_find_method): Renamed into
10087         mono_debug_symfile_lookup_method().
10088
10089 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
10090
10091         * assembly.c (mono_assembly_open_full): Dont overwrite the status
10092         returned by mono_image_open_full ().
10093
10094         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
10095         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
10096         #78517.
10097
10098         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
10099         #78518.
10100
10101 2006-05-27  Miguel de Icaza  <miguel@novell.com>
10102
10103         * class.c (mono_class_from_typeref): handle missing images
10104         earlier, deals with bug #78418.   Refactor code; 
10105
10106         Fix a warning introduced in my previous commit (some stale code
10107         from before I revisited my patch).
10108
10109         * class.c (mono_class_create_from_typedef): On failure, remove the
10110         class from the MonoImage->class_cache as the class is not
10111         initialized;   Fixes the leak pointed out by Paolo.
10112
10113 2006-05-25  Dick Porter  <dick@ximian.com>
10114
10115         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
10116         DeleteCriticalSections until I figure out which one may still be
10117         sometimes locked when mono_thread_cleanup is called.
10118
10119 2006-05-24  Dick Porter  <dick@ximian.com>
10120
10121         * threads.c (mono_thread_cleanup): Move the threading cleanup out
10122         of mono_thread_manage and back into its own function, so it can be
10123         called after the finalizer thread has finished.
10124
10125         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
10126
10127 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
10128
10129         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
10130         Fixes #78495.
10131
10132         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
10133         with non-blittable elements.
10134         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
10135
10136 2006-05-24  Martin Baulig  <martin@ximian.com>
10137
10138         * mono-debug-debugger.h (MonoDebuggerEvent): Added
10139         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
10140
10141         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
10142         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
10143         `mono_debugger_event_handler' to NULL.
10144
10145 2006-05-24  Martin Baulig  <martin@ximian.com>
10146
10147         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
10148
10149 2006-05-24  Martin Baulig  <martin@ximian.com>
10150
10151         * mono-debug-debugger.h
10152         (mono_debugger_create_notification_function): Added
10153         `MonoCodeManager *' argument.
10154
10155 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
10156
10157         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
10158
10159 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
10160
10161         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
10162         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
10163         implementation.
10164
10165 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
10166
10167         * icall.c: precise GC support: objects can't be stored in unmanaged
10168         memory anymore, even if they are kept alive by other references: since
10169         they can move the GC needs to be able to always find them.
10170
10171 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
10172
10173         * object.c: precise GC support for static fields. Support
10174         for moving GCs: write barriers and pinned allocation for interned
10175         strings.
10176
10177 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
10178
10179         * domain.c, domain-internals.h: precise GC support for the MonoDomain
10180         structure.
10181
10182 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
10183
10184         * class.c, gc.c: sgen and precise GC updates.
10185
10186 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
10187
10188         * marshal.h, marshal.c: added write barrier wrapper and precise type
10189         fixes.
10190
10191 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
10192
10193         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
10194         support.
10195
10196 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
10197
10198         * reflection.c: precise and sgen GC updates.
10199
10200 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
10201
10202         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
10203
10204 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
10205
10206         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
10207
10208 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
10209
10210         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
10211         MONO_TYPE_OBJECT. Fixes #78462.
10212
10213 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
10214
10215         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
10216         and blittable types.
10217
10218 2006-05-17  Miguel de Icaza  <miguel@novell.com>
10219
10220         * class.c (mono_class_get_exception_for_failure): Implement parts
10221         of a TODO: if the loader error is set (instead of the class
10222         error), we return a Loader exception that can be properly thrown
10223         elsewhere.
10224
10225         This was exposed by some Winforms 2.0 code that I tried to run
10226         (Atsushi pointed me to it).
10227
10228 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
10229
10230         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
10231         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
10232         
10233         * marshal.c (emit_marshal_vtype): Add limited support for 
10234         UnmanagedType.LPStruct. Fixes #78427.
10235
10236         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
10237         Applied a patch from kangaroo to fix #77523.
10238
10239 2006-05-17  Martin Baulig  <martin@ximian.com>
10240
10241         * threads.c
10242         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
10243         (debugger_thread_created): Removed.
10244         (debugger_thread_exited): Removed.
10245
10246 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
10247
10248         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
10249
10250         * object-internals.h (MonoReflectionResource): Sync with managed version.
10251
10252 2006-05-12  Wade Berrier <wberrier@novell.com>
10253
10254         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
10255
10256 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
10257
10258         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
10259         functions try to allocate from the image mempool.
10260
10261 2006-05-12  Dick Porter  <dick@ximian.com>
10262
10263         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
10264
10265 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
10266
10267         * object.c: The FieldGetter and FieldSetter methods require the full
10268         name of the class, not only the name. Fixes bug #78277.
10269
10270 2006-05-11  Miguel de Icaza  <miguel@novell.com>
10271
10272         * loader.c (method_from_memberref): Do not pass the NULL klass to
10273         mono_loader_set_error_() methods.  Pass the non-NULL value
10274         (class). 
10275
10276 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
10277
10278         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
10279         (mono_assembly_close): Null out assembly->image->references after freeing it.
10280
10281         * image.c (mono_image_close): Free image->references.
10282         
10283         * reflection.c (mono_image_basic_init): Fix a small memory leak.
10284
10285 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
10286
10287         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
10288         before checking if it's NULL (g_assert).
10289
10290 2006-05-10  Martin Baulig  <martin@ximian.com>
10291
10292         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
10293         I thought I already killed that two months ago, but now it somehow reappeared.
10294
10295 2006-05-10  Martin Baulig  <martin@ximian.com>
10296
10297         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
10298
10299 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
10300
10301         * reflection.c: Allocate memory for dynamically created methods in the image
10302         mempools.
10303
10304 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
10305
10306         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
10307         don't use the ad pointer before checking if it's NULL (g_assert).
10308
10309 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
10310
10311         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
10312         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
10313
10314         * marshal.c: Allocate all signatures from mempools.
10315
10316         * marshal.c: Allocate some more signatures from mempools.
10317
10318 2006-05-09  Miguel de Icaza  <miguel@novell.com>
10319
10320         * object.c (mono_load_remote_field): The code used to provide a
10321         temporary variable for returning results if the user did not
10322         provide a result pointer.  But our temporary variable was allocted
10323         on the satck.
10324
10325         Fix calling code to always pass a result area.   Coverity ID 103.
10326
10327 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
10328
10329         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
10330         value, not the old. Fixes #78312.
10331         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
10332
10333         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
10334         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
10335         per-image cache.
10336
10337         * assembly.c (mono_assembly_close): Free image->references.
10338
10339         * assembly.c (mono_assembly_names_equal): Fix a warning.
10340         (mono_assemblies_cleanup): Cleanup more global data.
10341
10342         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
10343
10344         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
10345         ptr_cache and image->modules.
10346
10347         * image.c (mono_image_init): Allocate array_cache lazily.
10348         
10349 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10350
10351         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
10352         behavior was changed recently and has bad side effects.
10353
10354 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
10355
10356         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
10357         
10358         * assembly.c (mono_assembly_close): Remove a debug printf.
10359
10360         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
10361
10362         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
10363         to also allow for temporary references between mono_image_open ()/close ().
10364
10365         * domain.c (get_runtimes_from_exe): Add a FIXME.        
10366
10367 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
10368
10369         * marshal.c: Fix support for dynamic methods.
10370
10371         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
10372
10373         * marshal.c (mono_marshal_cleanup): New cleanup function.
10374
10375         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
10376         image mempools.
10377
10378         * class.c (mono_class_init): Fix leaking class->nested_classes.
10379
10380         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
10381
10382         * image.c (mono_image_init): Initialize the new cashes.
10383
10384         * image.c (mono_image_close): Destroy the new cashes.
10385
10386         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
10387
10388         * mempool.c (mono_mempool_strdup): New helper function.
10389
10390         * class-internals.h: Add prototype for mono_loader_unlock ().
10391
10392         * domain.c (mono_jit_info_table_find): Fix a warning.
10393         (mono_debugger_check_runtime_version): Ditto.
10394
10395         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
10396         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
10397         functions to these modules.
10398
10399         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
10400         metadata modules.
10401         
10402         * marshal.c (mono_free_bstr): Fix a warning.
10403
10404         * assembly.c (mono_assembly_open_full): Fix another small leak.
10405
10406         * object.c: Fix some unload leaks in the remoting code.
10407
10408         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
10409         function.
10410
10411         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
10412
10413         * reflection.c: Fix some unload leaks in dynamic assemblies.
10414
10415 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
10416
10417         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
10418         * marshal.h: Add BSTR support on Win32
10419         * icall.c: Add BSTR icalls
10420         * metadata.h: Add BSTR enums
10421
10422 2006-04-28  Miguel de Icaza  <miguel@novell.com>
10423
10424         Work to catch the crash from #76795 and turn it into an
10425         exception.   As I stubbed out pieces of the VisualBasic support,
10426         I found a number of places where the code was failing and I added
10427         checks to those places. 
10428         
10429         * metadata.c (do_mono_metadata_parse_generic_class): Make this
10430         function return a status code.  If we fail to parse the signature
10431         from mono_metadata_parse_generic_inst, return FALSE.
10432
10433         * loader.c (mono_get_method_from_token): If we fail to load the
10434         method (mono_class_get) return NULL.   
10435
10436         * (method_from_memberref): Return NULL if we are unable to parse
10437         the method signature
10438
10439         (mono_loader_error_prepare_exception): Since we now use the
10440         loader_error flag internally to stop processing, and obtaining
10441         exceptions that might be thrown will walk this code path the
10442         proper way of going from a MonoLoaderError into a
10443         MonoException was convoluted.   This new routine encapsulates the
10444         process of turning the error into an exception and *clearing* the
10445         error afterwards.
10446         
10447 2006-04-27  Miguel de Icaza  <miguel@novell.com>
10448
10449         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
10450         with missing assemblies), and to cope with:
10451
10452                 * Missing fieldref from a non-existing assembly.
10453                 * Missing methodref from a non-existing assembly.
10454
10455         The first batch of work to address *some* of the issues from 76661.
10456         
10457         * object.c (mono_class_create_runtime_vtable): If we fail to
10458         initialize the class raise the exception here. 
10459
10460         * metadata.c (mono_class_get_overrides_full): If any methods fail
10461         to load return the failure to the caller.
10462
10463         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
10464         flagging assemblies that failed to load.   
10465
10466         Do not crash if we are unable to load the assembly.
10467
10468         (mono_assembly_close): Do nothing with REFERENCE_MISSING
10469         assemblies. 
10470
10471         * loader.c (mono_loader_set_error_type_load): Change the
10472         convention to always pass unallocated strings, so we make our own
10473         copies (I know our own code had duplicated strings before, but
10474         this keeps the normal conventions).
10475         (method_from_memberref): Call mono_loader_set_error_method_load
10476         for all possible failures of loading the class. 
10477         Remove assert, turn into a loader error.
10478
10479         (mono_loader_error_to_exception): Move this routine from mini
10480         (mini_loader_error_to_exception) there was no need to have that in
10481         mini. 
10482
10483         * class.c (mono_class_from_typeref): If we were not able to load
10484         the assembly with mono_assembly_load_reference, call the
10485         mono_loader_set_error_type_load to register the problem.
10486
10487         (mono_class_setup_fields): If we fail to load the type from
10488         mono_metadata_parse_type_full, call mono_class_set_failure and
10489         break from the loop.
10490
10491         If class->exception_type is set, we do not layout the fields as
10492         that might crash the runtime, and instead return (from breaking
10493         from the previous loop).
10494
10495         (mono_class_setup_vtable): This now returns a boolean indicating
10496         whether the table was properly setup.   The decision is driven by
10497         mono_class_get_overrides_full which might run into non-existing
10498         methods. 
10499         
10500         (mono_class_init): Returns TRUE on success or FALSE if there was a
10501         problem in loading the type (incorrect assemblies, missing
10502         assemblies, methods, etc).
10503
10504         When we call mono_class_setup_fields we also check for a potential
10505         error inside this call (either a class exception or a general
10506         loader exception).
10507
10508         (mono_class_create_from_typedef): If the parent fails to load
10509         (calling mono_class_get_full) return NULL.
10510         
10511         ** Important **
10512
10513         calls to mono_metadata_parse_type_full should be checked
10514         everywhere and set the mono_class_set_failure
10515         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
10516
10517         The current patch checks the places where my manually constructed
10518         tests show the errors are showing up, but we should do it
10519         everywhere. 
10520
10521         ** Important2 **
10522
10523         mono_class_init return values should be tested everywhere, like
10524         the previous case this is something that we should audit
10525         everywhere and not only on the cases exposed by the tests I
10526         created. 
10527
10528 2006-04-26  Miguel de Icaza  <miguel@novell.com>
10529
10530         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
10531         boolean parameter and instead pass the information on `options'
10532         parameter (FileOptions).
10533
10534         * icall.c: Register the new signature for MonoIO.Open.
10535
10536         * debug-helpers.c (dis_one): Trying to understand how coverity
10537         works.  Fix Run 5, item 78.
10538
10539 2006-04-26  Dick Porter  <dick@ximian.com>
10540
10541         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
10542         dereference.
10543
10544 2006-04-25  Martin Baulig  <martin@ximian.com>
10545
10546         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
10547
10548         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
10549         debugger_thread_created().
10550         (debugger_gc_push_all_stacks): Don't handle the main thread in any
10551         special way.
10552         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
10553         (mono_debugger_finalize_threads): New function; undo the effects
10554         of mono_debugger_init_threads().
10555         (mono_debugger_create_all_threads): Removed.
10556
10557 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
10558
10559         * image.c (mono_image_close): Tidy up trace messages.
10560
10561         * assembly.c (mono_assembly_close): Ditto.
10562
10563         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
10564         no longer references an already freed assembly. Fixes #78168.
10565
10566 2006-04-21  Dick Porter  <dick@ximian.com>
10567
10568         * threads.c (mono_thread_detach): Fix reference counting when
10569         detaching threads.
10570
10571 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
10572
10573         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
10574         #78155.
10575
10576 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
10577
10578         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
10579         (mono_type_to_stind): Ditto.
10580
10581         * marshal.c: Use the new helper functions to simplify code.
10582
10583         * image.c (mono_image_close): Add some code for help debug assembly unloading
10584         problems.
10585
10586         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
10587         image mempool.
10588
10589         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
10590         assembly was already loaded in another appdomain. Fixes #78083.
10591
10592 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
10593
10594         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
10595         referenced assemblies.
10596         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
10597
10598         * domain.c (mono_domain_free): Add a trace message.
10599
10600         * appdomain.c (add_assemblies_to_domain): Ditto.        
10601
10602         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
10603         field.  
10604
10605 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
10606
10607         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
10608
10609 2006-04-12  Martin Baulig  <martin@ximian.com>
10610
10611         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
10612         `USE_INCLUDED_LIBGC'.   
10613
10614 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
10615
10616         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
10617         the patch contains ../ and a small directory name later. Hopefully fixes
10618         #78035.
10619
10620 2006-04-10  Martin Baulig  <martin@ximian.com>
10621
10622         Clean up the debugger's thread-handling code.
10623
10624         The debugger's thread-handling code has been moved from
10625         ../mini/debug-debugger.c to threads.c.  We now iterate directly
10626         over the `threads' hash, keep track of exiting threads and also
10627         use proper locking.
10628
10629         We can now debug XSP and XSP based applications with the debugger.
10630
10631         * object-internals.h (MonoThread): Added `gpointer end_stack'.
10632
10633         * threads.h
10634         (MonoThreadCallbacks): Removed; this was only used by the debugger.
10635         (mono_install_thread_callbacks): Likewise.      
10636
10637         * threads.c (mono_thread_callbacks): Removed.
10638         (debugger_thread_created, debugger_thread_exited): New static functions.
10639         (start_wrapper): Call debugger_thread_created().
10640         (thread_cleanup): Call debugger_thread_exited().
10641         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
10642         (mono_debugger_init_threads): New public function.
10643         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
10644         iterate directly over the `threads' hash and also use proper locking.
10645
10646         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
10647
10648         * mono-debug-debugger.h
10649         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
10650
10651 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
10652
10653         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
10654         argument type=array. Fixes #78057.
10655
10656 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
10657
10658         * culture-info-table.h : regenerated. Fixed bug #69652.
10659
10660 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
10661
10662         * loader.c metadata.c: Reapply a variant r59116.
10663         
10664         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
10665
10666         * class.c (mono_class_setup_interface_offsets): New internal function.
10667
10668         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
10669         interfaces too. Fixes #77398.
10670
10671         * reflection.c (encode_cattr_value): Add support for 
10672         parameter type=object, argument type=array.
10673         (load_cattr_value): Ditto. Fixes #77916.
10674
10675         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
10676         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
10677
10678         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
10679         a byval char array and CharSet is Ansi.
10680
10681         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
10682
10683 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
10684
10685         * metadata.c: Add some locking comments.
10686         
10687         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
10688         mempool.
10689         (mono_metadata_free_method_signature): Don't free the signature itself.
10690
10691         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
10692
10693         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
10694         reference the same MonoImage.
10695         (mono_assembly_load_from_full): Add an assert.
10696
10697 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
10698
10699         * image.c (mono_image_close): Don't put the image we are about to free into the
10700         loaded_images_guid_hash.
10701
10702         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
10703         to reduce code duplication.
10704
10705         * marshal.c: Register the native functions called by this module as icalls, to
10706         somewhat centralize the creation of MonoMethodSignature's.
10707
10708         * loader.c (mono_method_signature): Add a cache for method signatures.
10709
10710         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
10711         the parameter attributes of a method.
10712         (mono_metadata_parse_method_signature_full): Refactored the computation of
10713         parameter attributes into a separate function. Also avoid one allocation in
10714         most cases.
10715
10716         * assembly.c (mono_assembly_close): Ditto.
10717
10718         * image.c (mono_image_close): Log trace messages with INFO level.
10719
10720         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
10721
10722         * image.c reflection.c: Correct reference counting of image modules.
10723         
10724         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
10725         of this function from the image mempool.
10726         
10727         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
10728         to allow more cached types to be used.
10729
10730         * mono-debug.c (mono_debug_add_method): Appled patch from
10731         David S. Miller  <davem@sunset.davemloft.net>: Access 
10732         minfo->lexical_blocks[] entry elements using read32().
10733
10734 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
10735
10736         * loader.c (mono_free_method): No longer free the method header for non-dynamic
10737         methods as it is allocated from the mempool.
10738
10739         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
10740         image mempool.
10741
10742         * metadata-internals.h: Add comments describing the reference counting scheme
10743         used for MonoImage and MonoAssembly.
10744
10745         * image.c assembly.c reflection.c: Rework reference counting of images and 
10746         assemblies so they are freed when the runtime is shut down. Free some 
10747         additional memory structures when an image is unloaded.
10748         
10749 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
10750
10751         * class.c loader.c reflection.c: Allocate more data structures in
10752         the image mempool.
10753
10754 2006-03-31  Miguel de Icaza  <miguel@novell.com>
10755
10756         * icall.c
10757         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
10758         build on pre glib 2.4 systems.
10759
10760 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
10761
10762         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
10763
10764         * icall.c: Fix some warnings.
10765
10766 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
10767
10768         * culture-info-table.h : regenerated.
10769
10770 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
10771
10772         * threads.c, object-internals.h, verify.c: changed the culture caching
10773         code to use a normal MonoArray for storage so the GC can keep track of
10774         them easily. Fixed bits of the cache logic, too and simplified the
10775         code.
10776
10777 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
10778
10779         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
10780         thread for non-Boehm GCs.
10781
10782 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
10783
10784         * domain.c, object.c, domain-internals.h: reduce the amount of memory
10785         needed to keep track of the data for static fields.
10786
10787 2006-03-29  Raja R Harinath  <rharinath@novell.com>
10788
10789         Fix #75172
10790         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
10791         for interface classes.  Use 'num_methods' instead.
10792         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
10793         before using '->vtable_size' field.
10794
10795 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
10796
10797         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
10798         doesn't contain managed pointers, so use a normal hashtable.
10799
10800 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
10801
10802         * reflection.c, class-internals.h, domain.c: fixed handling of types
10803         used as values for objects in custom attributes (bug #77915):
10804
10805 2006-03-24  Martin Baulig  <martin@ximian.com>
10806
10807         * class.c (mono_class_setup_fields): Added support for generic
10808         instances; fixes #77580.
10809
10810 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10811
10812         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
10813
10814 2006-03-24  Dick Porter  <dick@ximian.com>
10815
10816         * file-io.c (get_file_attributes): More stat macro breakage.
10817         Fixes bug 77759.
10818
10819 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
10820
10821         * profiler.c: added the file=filename option in the default profiler
10822         to output the profile data to filename.
10823
10824 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10825
10826         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
10827         bug #77877.
10828
10829 2006-03-22  Martin Baulig  <martin@ximian.com>
10830
10831         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
10832         allocated `MonoClassField *' in `fb->handle'.
10833
10834 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
10835
10836         * class.c, image.c, metadata-internals.h: implemented new mechanism to
10837         allocate interface ID to save memory and allow better ID reuse on
10838         appdomain unload. setup_generic_vtable () removal from Martin.
10839
10840 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
10841
10842         * object.h, appdomain.c, domain.c, exception.c, icall.c,
10843         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
10844         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
10845         write barriers for reference stores with managed objects accessed with
10846         C structures in the runtime and in embedding programs.
10847
10848 2006-03-20  Raja R Harinath  <rharinath@novell.com>
10849
10850         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
10851         'interface_id' and 'max_interface_id' fields of MonoClasses
10852         representing open generic types.
10853
10854 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
10855
10856         * object.h, object.c, icall.c: added functions to deal with
10857         storing valuetypes that contain references in managed objects.
10858         * reflection.c, string-icalls.c, threads.c, marshal.c: small
10859         fixes and comments around uses of mono_array_addr ().
10860
10861 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
10862
10863         * object.h, icall.c, monitor.c: object.GetHashCode ()
10864         implementation that supports the moving garbage collector.
10865
10866 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
10867
10868         * icall.c, threads-types.h, threads.c: implemented finalizer for
10869         LocalDataStoreSlot.
10870
10871 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
10872
10873         * metadata.c (mono_type_size): Add a fixme.
10874         (mono_type_stack_size): Ditto.
10875
10876         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
10877         'type_forwarders' field.
10878
10879         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
10880         attribute from net 2.0.
10881
10882         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
10883         from class.c.
10884
10885         * class.c (mono_class_setup_fields): Fix a warning.
10886         
10887         * class.c (mono_class_from_name): Add support for assemblyref entries
10888         in the EXPORTEDTYPE table.
10889
10890         * reflection.c: Add support for handling type forwarders under net 2.0.
10891
10892         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
10893         
10894 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
10895
10896         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
10897         overwriting entries in ModuleBuild->types, also clean up the code
10898         a little. Fixes #77774.
10899
10900 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
10901
10902         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
10903         load friend assembly info when present.
10904
10905 2006-03-14  Raja R Harinath  <rharinath@novell.com>
10906
10907         Fix crasher on gtest-158.cs.
10908         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
10909         the return value if the MonoClass we want is yet in an
10910         inconsistent state.
10911         * class.c (mono_class_create_from_typedef): Add an comment
10912         explaining an order dependency between mono_class_setup_parent and
10913         mono_class_setup_mono_type.
10914
10915 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
10916
10917         * class.c: documentation updates and events bug fix.
10918
10919 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
10920
10921         * class.c: some cleanup, locking fixes.
10922
10923 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
10924
10925         * class.c: fix the generics code to setup nested
10926         type info to the instantiated type (bug #77770).
10927
10928 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
10929
10930         * marshal.c: fixed a few type correctness issues.
10931
10932 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
10933
10934         * loader.c: the Set/Get/Addrtess array methods should be public.
10935
10936 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
10937
10938         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
10939         
10940         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
10941         info->wrapper.
10942
10943 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
10944
10945         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
10946
10947         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
10948
10949         * mempool.c (mono_mempool_alloc): Speed this up a bit.
10950         (mono_mempool_alloc0): Ditto.
10951
10952 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10953
10954         * socket-io.c:
10955         (create_object_from_sockaddr): it was allocating 4 extra bytes
10956         for the AF_UNIX data. Fixes bug #77747.
10957
10958 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
10959
10960         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
10961
10962 2006-03-09  Dick Porter  <dick@ximian.com>
10963
10964         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
10965         Fixes bug 76966 again.
10966
10967 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
10968
10969         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
10970         names from r57532
10971         * appdomain.c: Bumped corlib version to 48 (due to r57532)
10972
10973 2006-03-07  Martin Baulig  <martin@ximian.com>
10974
10975         * object.c
10976         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
10977
10978 2006-03-07  Martin Baulig  <martin@ximian.com>
10979
10980         * class.c
10981         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
10982         regression introduced in r56970; see gtest-252.cs.
10983
10984         * loader.c (mono_get_method_constrained): Correctly handle generic
10985         methods; see gtest-253.cs.
10986
10987 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
10988
10989         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
10990
10991 2006-03-04  Martin Baulig  <martin@ximian.com>
10992
10993         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
10994         compute the parent type at runtime, just like we're already doing
10995         it for interfaces.
10996
10997         * reflection.c
10998         (mono_reflection_bind_generic_parameters): Don't compute the
10999         parent type anymore.
11000
11001         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
11002
11003 2006-03-04  Martin Baulig  <martin@ximian.com>
11004
11005         * mono-debug-debugger.h
11006         (mono_debugger_create_notification_function): Allocate memory at
11007         runtime and return a pointer to it.
11008
11009 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
11010
11011         * assembly.c: Fix windows build.
11012         
11013         * assembly.c: Fix build.
11014
11015         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
11016
11017         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
11018         
11019 2006-03-03  Dick Porter  <dick@ximian.com>
11020
11021         * process.c
11022         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
11023         Check parameters before dereferencing them.  Fixes Aaron's part of
11024         bug 77393.
11025
11026 2006-03-03  Raja R Harinath  <rharinath@novell.com>
11027
11028         Fix performance regression.
11029         * loader.c (find_method_in_class): Add 'from_class' argument.
11030         Rename 'klass' argument to 'in_class'.  The signature is compared
11031         against the method in 'in_class', and the corresponding method is
11032         returned from 'from_class'.
11033         (find_method): Walk both 'in_class' and 'from_class' in parallel.
11034         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
11035         type definition and generic instantiation in parallel.
11036         (mono_get_method_constrained): Update to changes.
11037
11038 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
11039
11040         * threads.c: make sure the domain is correct, too when doing
11041         mono_thread_attach ().
11042
11043 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
11044
11045         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
11046         windows. Fixes #77683.
11047
11048 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
11049
11050         * object.h, *: introduced specific way to set elements of an array
11051         of references to be used as write barrier. Still need to audit the
11052         uses of mono_array_addr.
11053
11054 2006-03-01  Miguel de Icaza  <miguel@novell.com>
11055
11056         * object-internals.h: New field to cache the assmebly name, patch
11057         from Tambet Ingo (tambet@ximian.com)
11058
11059 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
11060
11061         * decimal.h, class-internals.h, metadata-internals.h,
11062         file-io.h: mark a few function declarations as internal, to
11063         reduce the number of PLT entries.
11064
11065 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11066
11067         * file-io.c: fix typo in warning message.
11068
11069 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
11070
11071         * loader.c: on unix, lookup the "*A" version of a function
11072         if charset is auto as a second option before failing.
11073
11074 2006-02-28  Raja R Harinath  <rharinath@novell.com>
11075
11076         * class.h (mono_class_inflate_generic_method): Revert to two
11077         argument version.
11078         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
11079         (mono_class_inflate_generic_method_full): Add.
11080         * class.c (mono_class_inflate_generic_method_full): Rename from
11081         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
11082         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
11083         * loader.c, reflection.c: Update to changes.
11084
11085 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
11086
11087         * icall.c: const fixes and small improvements.
11088
11089 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11090
11091         * threadpool.c: for asynchronous connect(), enable the same workaround
11092         for BSD 6 as for the Mac. Fixes bug #77637.
11093
11094 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
11095
11096         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
11097         formatted classes. Fixes #77524.
11098
11099 2006-02-24  Raja R Harinath  <rharinath@novell.com>
11100
11101         * class.c (inflate_generic_type): Add a couple more
11102         micro-optimizations.
11103         (inflate_generic_context): Don't use the 'gmethod' from
11104         'inflate_with'.
11105         (mono_class_inflate_generic_method): If the method has generic
11106         parameters, but the passed-in context doesn't have a 'gmethod',
11107         create one.  Use the possibly simplified generic instantiation
11108         from the declaring class instead of the one passed in.
11109
11110 2006-02-24  Raja R Harinath  <harinath@gmail.com>
11111
11112         Make generic method signature and method header handling lazy.
11113         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
11114         (inflate_generic_header): Likewise.
11115         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
11116         parameter to avoid inflating types.
11117         (mono_get_inflated_method): Empty out.
11118         * class.h (mono_class_inflate_generic_method): Update to changes.
11119         * loader.c (mono_get_method_from_token): Don't parse signature for
11120         generic methods, nor methods of generic classes.
11121         (mono_method_signature): Rename from 'mono_method_signature'.
11122         Inflate signature on demand.
11123         (mono_method_get_header): Inflate method header on demand.
11124         * reflection.c: Update to changes.
11125
11126 2006-02-23  Raja R Harinath  <rharinath@novell.com>
11127
11128         * metadata.c (mono_metadata_inflate_generic_inst): If the
11129         instantiation is closed, don't bother expanding it in the new
11130         context.
11131         * class.c (inflate_generic_class): If the generic instantiation
11132         doesn't change after inflation, return the argument itself.
11133         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
11134         Add bounds checks.
11135         (inflate_generic_context): If neither the generic class nor the
11136         generic method instantiations change, return the original context.
11137         * reflection.c (mono_method_get_object): Do
11138         'mono_get_inflated_method' before accessing the ->klass field.
11139         (inflate_mono_method): Don't create a MonoGenericMethod unless
11140         necessary.
11141         (inflate_method): Don't pass a constructed type as the declaring
11142         type of a methodbuilder.
11143
11144 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
11145
11146         * object.c: fix memory overwrite.
11147
11148 2006-02-22  Dick Porter  <dick@ximian.com>
11149
11150         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
11151         it doesn't work any more.
11152         (mono_threads_request_thread_dump): Fix unused variable warnings.
11153
11154 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
11155
11156         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
11157         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
11158         the public header file.
11159
11160 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
11161
11162         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
11163
11164 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
11165
11166         * class-internals.h, object.c: reduce the size of MonoVTable
11167         and store the interface_offsets array at negative offsets.
11168
11169 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
11170
11171         * metadata.c: tweak table descriptors data structures to reduce
11172         size and runtime relocations.
11173
11174 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
11175
11176         * marshal.c: fix some types and opcodes to be type-safe
11177         in marshaling wrappers.
11178
11179 2006-02-21  Ankit Jain  <jankit@novell.com>
11180
11181         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
11182
11183 2006-02-21  Raja R Harinath  <rharinath@novell.com>
11184
11185         * metadata.c (get_constraints): Relax debugging checks for monodis.
11186
11187 2006-02-21  Ankit Jain  <jankit@novell.com>
11188
11189         * metadata.c (mono_metadata_load_generic_params): Move the code
11190         checking for ambiguous generic params from here to mono/dis/get.c
11191         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
11192
11193 2006-02-21  Raja R Harinath  <harinath@gmail.com>
11194
11195         Fix assertion triggered when compiling nemerle.
11196         * class.c (mono_get_shared_generic_inst): Rename from
11197         get_shared_inst and make non-static.
11198         * loader.c (mono_get_shared_generic_method): New.  Used to create
11199         the MonoGenericContext-equivalent of a MonoGenericContainer.
11200         (mono_get_method_from_token): Initialize the 'context' field of
11201         the created MonoGenericContainer.
11202         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
11203         * metadata.c (get_constraints): Add sanity check.
11204         * class-internals.h: Add new internal methods.
11205
11206         * reflection.c (verify_safe_for_managed_space): New sanity check.
11207         Currently checks that owner-less generic parameters aren't allowed
11208         in managed space.
11209         (mono_type_get_object): Use it.
11210         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
11211         that are now in mono_type_get_object.
11212         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
11213
11214 2006-02-19  Raja R Harinath  <harinath@gmail.com>
11215
11216         * metadata.c (mono_type_create_from_typespec): Rename from
11217         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
11218         argument and caching of types in the generic container.
11219         (unwrap_arrays, find_generic_param): Remove.
11220         * metadata-internals.h: Update.
11221         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
11222
11223 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
11224
11225         * class.c (mono_class_get_exception_for_failure): Fix a warning.
11226
11227         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
11228         return values. Fixes #77581.
11229
11230         * class.c (mono_fnptr_class_get): Switch name and name_space.
11231
11232         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
11233         classes and add support for [In, Out] attributes.
11234         (mono_marshal_free_asany): Ditto. Fixes #77524.
11235
11236 2006-02-18  Raja R Harinath  <harinath@gmail.com>
11237
11238         * class.c (mono_class_from_generic_parameter): Make more robust to
11239         incomplete MonoGenericContainers from monodis.
11240
11241 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
11242
11243         * class-internals.h: added some more exception types.
11244         * class.c, metadata.c: added a few checks to handle missing
11245         types.
11246
11247 2006-02-17  Raja R Harinath  <rharinath@novell.com>
11248
11249         Use owner-less generic-params some more.
11250         * class.c (my_mono_class_from_generic_parameter): Remove.
11251         (mono_class_from_generic_parameter): Handle null image,
11252         param->name and param->owner.
11253         (mono_class_from_mono_type): Update.
11254         (mono_class_create_from_typespec): Remove 'container' parameter.
11255         If that parameter is non-null, the result is always inflated by
11256         'mono_class_get_full' anyway.
11257         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
11258         parameter.
11259         (mono_class_get_full): Update.
11260
11261         * class.c (inflate_generic_type) [GENERICINST]: If the generic
11262         instance is not open, don't bother inflating.
11263         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
11264         parse metadata for inflated classes.
11265         (_mono_class_get): Change GenericContext* parameter to
11266         GenericContainer*.
11267         (mono_class_create_from_typespec): Likewise.  Simplify, and
11268         implement trivially.  All the cases are handled in
11269         mono_class_from_mono_type.  Don't inflate returned class.
11270         (mono_class_get_full): Delegate GENERICINST optimization to
11271         inflate_generic_type.
11272         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
11273
11274 2006-02-16  Dick Porter  <dick@ximian.com>
11275
11276         * socket-io.c (create_object_from_sockaddr): Fix typo.
11277         (create_sockaddr_from_object): Check array lengths before
11278         potentially accessing items off the end.
11279         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
11280         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
11281         (ves_icall_System_Net_Sockets_Socket_Send_internal)
11282         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
11283         length checks to avoid wraparound overflows.
11284         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
11285         contents of the array of sockets
11286         (hostent_to_IPHostEntry2)
11287         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
11288         Check return value of inet_ntop ().
11289         (addrinfo_to_IPHostEntry): Fix typo
11290
11291 2006-02-16  Raja R Harinath  <rharinath@novell.com>
11292
11293         Type metadata parsing doesn't use generic-instantiation information.
11294         * metadata.c (mono_metadata_parse_array_full): Change
11295         MonoGenericContext* parameter to MonoGenericContainer*.
11296         (mono_metadata_parse_type_full): Likewise.
11297         (mono_type_create_from_typespec_full): Likewise.
11298         (mono_metadata_parse_mh_full): Likewise.
11299         (mono_metadata_parse_generic_inst): Likewise.
11300         (do_mono_metadata_parse_generic_class): Likewise.
11301         (do_mono_metadata_parse_type): Likewise.
11302         * metadata-internals.h: Update to changes.
11303         * class.c (mono_class_find_enum_basetype): Likewise.
11304         (mono_class_setup_fields): Likewise.
11305         (mono_class_create_from_typespec): Likewise.
11306         * loader.c (method_from_methodspec): Likewise.
11307         (mono_get_method_from_token): Likewise.
11308         (mono_method_get_header): Likewise.
11309
11310 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
11311
11312         * marshal.c: handle additional GENERICINST case (patch from
11313         Thong Nguyen <tum@veridicus.com>).
11314         Fix a few cases where LDIND_I/STIND_I was used for references.
11315
11316 2006-02-16  Raja R Harinath  <rharinath@novell.com>
11317
11318         * reflection.c (mono_reflection_get_token): Remove unused variable.
11319
11320 2006-02-16  Martin Baulig  <martin@ximian.com>
11321
11322         * reflection.c (mono_reflection_get_token): Add support for fields
11323         in instantiated generic types.
11324
11325         * icall.c
11326         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
11327
11328 2006-02-15  Martin Baulig  <martin@ximian.com>
11329
11330         * icall.c
11331         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
11332         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
11333         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
11334         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
11335
11336 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
11337
11338         * class.c, metadata.c, metadata.h, object.c, icall.c,
11339         marshal.c: changed mono_type_get_underlying_type () to do
11340         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
11341         Fixed handling of instantiated generic valuetypes (bug #75479).
11342
11343 2006-02-15  Raja R Harinath  <rharinath@novell.com>
11344
11345         * metadata.c (mono_metadata_decode_signed_value): Simplify.
11346         Delegate to mono_metadata_decode_value, and work on the returned value.
11347
11348         * icall.c (ves_icall_MonoType_GetGenericArguments):
11349         Add consistency check here too.
11350         
11351 2006-02-15  Ankit Jain  <jankit@novell.com>
11352
11353         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
11354         char/short etc.
11355
11356 2006-02-15  Ankit Jain  <jankit@novell.com>
11357
11358         * metadata.c (mono_metadata_decode_signed_value): New function to decode
11359         signed values, used only for representing lower bounds of arrays.
11360         (mono_metadata_parse_array_full): Use new
11361         mono_metadata_decode_signed_value to decode lower bounds.
11362
11363 2006-02-14  Martin Baulig  <martin@ximian.com>
11364
11365         * reflection.c
11366         (mono_reflection_get_token): Support "MonoGenericMethod" and
11367         "MonoGenericCMethod" and allow generic instances / methods.
11368
11369 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
11370
11371         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
11372         to obtain the terminal size using an ioctl.
11373
11374         * object.c (mono_nullable_init): Revert this as nullable reference
11375         types are not valid.
11376         (mono_nullable_box): Ditto.
11377
11378 2006-02-09  Dick Porter  <dick@ximian.com>
11379
11380         * threads.c (mono_thread_detach): Drop a reference to the thread
11381         we're detaching.
11382
11383 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
11384
11385         * object.c (mono_nullable_init): Handle nullable reference types.
11386         (mono_nullable_box): Ditto. Fixes #77446.
11387
11388 2006-02-07  Martin Baulig  <martin@ximian.com>
11389
11390         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
11391
11392 2006-02-07  Ankit Jain  <jankit@novell.com>
11393
11394         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
11395         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
11396         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
11397         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
11398         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
11399         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
11400
11401 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
11402
11403         * class.c (mono_class_create_generic): Set type_token as well.
11404
11405         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
11406         compatible with MS.
11407
11408 2006-02-02  Martin Baulig  <martin@ximian.com>
11409
11410         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
11411         has never been used so far.
11412
11413 2006-02-02  Martin Baulig  <martin@ximian.com>
11414
11415         * mono-debug-debugger.h: Changed comment at the top of this file;
11416         the header is not installed, but it's safe to #include it from
11417         within the JIT.
11418
11419         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
11420         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
11421
11422 2006-02-02  Martin Baulig  <martin@ximian.com>
11423
11424         * mono-debug.h
11425         (MonoSymbolTable): Removed the `metadata_info' field.
11426
11427         * mono-debug.c
11428         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
11429
11430         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
11431         (mono_debugger_add_builtin_types): Removed.
11432         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
11433         (mono_debugger_create_notification_function): We now operate on a
11434         pre-allocated area; take a `gpointer' and return `void'.
11435
11436         * mono-debug-debugger.c
11437         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
11438         (mono_debugger_add_builtin_types): Removed.
11439
11440 2006-02-02  Martin Baulig  <martin@ximian.com>
11441
11442         * threads.c (mono_debugger_create_all_threads): New public method.
11443
11444 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
11445
11446         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
11447         breaks on several platforms.
11448
11449 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
11450
11451         * assembly.c: the VS.NET build doesn't supply default values for
11452         MONO_ASSEMBLIES and MONO_CFG_DIR.
11453
11454 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
11455
11456         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
11457         helper function.
11458
11459         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
11460
11461         * loader.c (method_from_memberref): Fix a warning.
11462
11463         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
11464
11465         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
11466         with explicit layout. Fixes #77433.
11467
11468 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
11469
11470         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
11471         max_interface_id is initialized before using it. Fixes #77398.
11472         (ves_icall_Type_GetInterfaces): Ditto.
11473
11474 2006-01-30  Raja R Harinath  <rharinath@novell.com>
11475
11476         * metadata.c (mono_metadata_parse_method_signature_full): Don't
11477         allocate memory for parameter attributes when parsing memberref
11478         signatures.
11479         * loader.c (mono_loader_set_error_method_load): Don't warn.
11480         (method_from_memberref): Ensure MissingMethodException gets thrown
11481         if method is not found.  Make warning more informative.
11482
11483 2006-01-29  Raja R Harinath  <harinath@gmail.com>
11484
11485         Fix #77397
11486         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
11487         return true if is byref.
11488         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
11489         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
11490         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
11491
11492 2006-01-27  Raja R Harinath  <rharinath@novell.com>
11493
11494         Fix tests/find-method.2.il
11495         * loader.c (find_method, find_method_in_class): Remove is_inflated
11496         argument.  Revert 2006-01-18 change.
11497         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
11498         is generic, search for method in its generic definition.
11499         * class.c (mono_class_setup_vtable_general): Print generic
11500         arguments of generic types in debugging printf.
11501
11502 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
11503
11504         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
11505
11506         * threads.c (mono_threads_request_thread_dump): New helper function.
11507
11508 2006-01-25  Raja R Harinath  <rharinath@novell.com>
11509
11510         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
11511
11512 2006-01-25  Ankit Jain  <jankit@novell.com>
11513
11514         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
11515         move definition to ..
11516         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
11517         
11518 2006-01-25  Ankit Jain  <jankit@novell.com>
11519             Raja R Harinath  <rharinath@novell.com>
11520
11521         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
11522         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
11523         as necessary.
11524
11525 2006-01-25  Martin Baulig  <martin@ximian.com>
11526
11527         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
11528         `MonoDebuggerThread' into debug-debugger.c.
11529
11530 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
11531
11532         * profiler.c: fix printing of data.
11533
11534 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
11535
11536         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
11537           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
11538
11539 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
11540
11541         * object.c: fix deadlock related to string interning.
11542
11543 2006-01-23  Martin Baulig  <martin@ximian.com>
11544
11545         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
11546
11547         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
11548
11549 2006-01-23  Martin Baulig  <martin@ximian.com>
11550
11551         * mono-debug.h: Moved the prototypes of some functions which are
11552         used by the JIT here from mono-debug-debugger.h.
11553
11554 2006-01-21  Martin Baulig  <martin@ximian.com>
11555
11556         * Makefile.am: Don't install mono-debug-debugger.h.
11557
11558 2006-01-21  Martin Baulig  <martin@ximian.com>
11559
11560         * mono-debug-debugger.h: Enforce the private status of this header
11561         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
11562         Moved some stuff from mono-debugger-jit-wrapper.h here.
11563
11564 2006-01-20  Raja R Harinath  <rharinath@novell.com>
11565
11566         * class.c (mono_class_from_typeref): Add a sanity test to help
11567         catch lack of assembly load/search hooks.
11568
11569 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
11570
11571         * marshal.c (emit_struct_conv): Relax the fields with same offset
11572         check even more. Fixes #77230.
11573
11574 2006-01-18  Martin Baulig  <martin@ximian.com>
11575
11576         * loader.c (find_method_in_class): Added `gboolean is_inflated'
11577         argument; if false, we compare the uninstantiated signatures.
11578         (method_from_memberref): Compare the uninstantiated signatures;
11579         fixes #76417.
11580
11581 2006-01-18  Robert Jordan  <robertj@gmx.net>
11582
11583         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
11584         Clear the weak link. Fixes bug #77170.
11585
11586         * gc.c (mono_gchandle_free):
11587         Reflect *-gc.c changes (tiny optimization).
11588
11589 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
11590
11591         * metadata.c (mono_metadata_signature_dup): Applied patch from
11592         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
11593         Fixes #77288.
11594
11595 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
11596
11597         * marshal.c (emit_struct_conv): Allow fields with the same offset when
11598         marshalling from native to managed code. Fixes #77230.
11599
11600 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11601
11602         * threadpool.c: fix problem (Mac only) when more than one asynchronous
11603         connect. Fixes bug #77020.
11604
11605 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
11606
11607         * class.c: fixed id assignement for nested interfaces (bug #77275).
11608         Added also better info for --print-vtable debugging.
11609
11610 2006-01-12  Martin Baulig  <martin@ximian.com>
11611
11612         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
11613         interfaces on-the-fly; fixes #76625.
11614
11615         * class-internals.h
11616         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
11617         don't need that anymore.
11618
11619 2006-01-12  Miguel de Icaza  <miguel@novell.com>
11620
11621         * socket-io.c
11622         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
11623         To avoid initing the nested_classes when not needed I turned the
11624         PeerCredData as a toplevel internal class, as it has to be shared
11625         anyways. 
11626
11627         Fixes the CASA issue.
11628
11629 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
11630
11631         * domain.c: Accessors for MonoJitInfo
11632
11633         * profiler-private.h: Add jitinfo to the end jit hook
11634
11635         * profiler.[ch]: Define new hooks, called after jitting which give
11636         the MonoJitInfo that was compiled
11637
11638 2006-01-10  Martin Baulig  <martin@ximian.com>
11639
11640         * class.c (mono_class_setup_events): Add support for generic
11641         classes; fixes #76440.
11642
11643 2006-01-06  Raja R Harinath  <rharinath@novell.com>
11644
11645         Fix #77160.
11646         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
11647         on passed-in method.
11648
11649 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
11650
11651         * object.c (mono_runtime_invoke_array): Add Nullable support.
11652
11653         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
11654
11655 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
11656
11657         * file-io.c: Don't consider sockets as directory and avoid an endless
11658         loop. Fix bug #76966.
11659
11660 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
11661
11662         * object.c (mono_nullable_init): New helper function.
11663         (mono_nullable_box): Ditto.
11664
11665         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
11666
11667         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
11668
11669         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
11670         
11671 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
11672
11673         * class.c (mono_class_is_assignable_from): Make T assignable to 
11674         Nullable<T>.
11675
11676 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
11677
11678         * appdomain.c: Bump corlib version to 46.
11679         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
11680         serialization purpose) and changed ves_icall_System_Reflection_
11681         Assembly_get_code_base signature to accept a boolean (to escape, or 
11682         not, the assembly code base).
11683
11684 2005-12-23  Dick Porter  <dick@ximian.com>
11685
11686         * icall.c: 
11687         * threads-types.h: 
11688         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
11689         CreateEvent icall now returns "created" boolean parameter.
11690
11691 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
11692
11693         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
11694         #76967.
11695
11696         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
11697         when attr_klass is an interface. Fixes #77045.
11698
11699 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
11700
11701         * marshal.c (emit_struct_conv): Fix previous patch.
11702         
11703         * marshal.c (emit_struct_conv): Add a check for fields with the same
11704         offset.
11705
11706 2005-12-20  Raja R Harinath  <rharinath@novell.com>
11707
11708         Fix regression in Mono.C5.
11709         * class.c (mono_class_create_generic): If 'klass' is an interface
11710         set up the interface offsets.
11711         (mono_class_is_assignable_from): Don't throw away generic arguments.
11712
11713 2005-12-19  Raja R Harinath  <rharinath@novell.com>
11714
11715         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
11716         type parameters.
11717
11718 2005-12-15  Raja R Harinath  <rharinath@novell.com>
11719
11720         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
11721         dead store.
11722         (do_mono_metadata_parse_generic_class): Don't pass the current
11723         generic context when parsing the type being instantiated: it
11724         cannot use it, anyway.
11725
11726         * loader.c (method_from_memberref): Don't inflate a signature if
11727         it doesn't contain any type parameters.
11728
11729 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
11730
11731         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
11732
11733 2005-12-14  Martin Baulig  <martin@ximian.com>
11734
11735         * class.c
11736         (mono_type_get_name_recurse): Don't return null for type
11737         parameters and open generic classes.
11738         (mono_class_setup_methods): Don't exclude generic instances.
11739         (mono_get_unique_iid): Use different IDs for different
11740         instantiations of the same generic type.
11741         (mono_class_setup_vtable): Only use setup_generic_vtable() for
11742         open generic instances; create a normal vtable for closed generic
11743         instances.
11744         (mono_class_setup_vtable_general): We're now also called for
11745         closed generic instances.
11746
11747         * reflection.c
11748         (mono_reflection_bind_generic_parameters): Correctly use
11749         mono_metadata_lookup_generic_inst() everywhere.
11750
11751 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
11752
11753         * object.c (mono_class_create_runtime_vtable): Call 
11754         mono_class_setup_vtable ().
11755
11756         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
11757         function.
11758         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
11759         #76959.
11760
11761         * loader.c (mono_loader_set_error_type_load): Print the type load
11762         warnings to the console so they are more visible to the user.
11763         (mono_loader_set_error_method_load): Ditto.
11764
11765         * reflection.c (ensure_runtime_vtable): Revert the last change as it
11766         is still broken.
11767         
11768         * reflection.c (ensure_runtime_vtable): Fix build.
11769
11770         * reflection.c (ensure_runtime_vtable): Disable an optimization which
11771         doesn't work in all cases.
11772
11773 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
11774
11775         * object.c (mono_array_new_full): Treat a single dimensional array
11776         with 0 lower bounds as an szarray. Fixes #76973.
11777
11778         * reflection.c (custom_attr_visible): Really fix this.
11779
11780 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
11781
11782         * reflection.c (custom_attr_visible): Allow nested public attributes
11783         as well.
11784
11785         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
11786         interface check.
11787
11788 2005-12-12  Raja R Harinath  <harinath@gmail.com>
11789
11790         * class.c (set_generic_param_owner): Delete.
11791         (mono_class_create_from_typedef): Don't set ->owner field of
11792         generic parameters to "param containers" of enclosing classes.
11793         * reflection.c (mono_reflection_initialize_generic_parameter):
11794         Likewise.
11795
11796 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
11797
11798         * reflection.c (custom_attr_visible): Fix build.
11799
11800 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
11801
11802         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
11803         private attributes.
11804         
11805         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
11806         handling of null parameter defaults.
11807
11808 2005-12-09  Raja R Harinath  <rharinath@novell.com>
11809
11810         * class.c (mono_class_from_generic_parameter): Don't set
11811         klass->generic_container.
11812         (my_mono_class_from_generic_parameter): Likewise.
11813
11814 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
11815
11816         * reflection.c (load_public_key): Fix a warning.
11817         (method_encode_code): Fix unaligned accesses.
11818
11819 2005-12-07  Martin Baulig  <martin@ximian.com>
11820
11821         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
11822
11823         * reflection.c
11824         (write_generic_param_entry): Encode our custom attrs.
11825
11826         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
11827
11828 2005-12-07  Martin Baulig  <martin@ximian.com>
11829
11830         * reflection.c (encode_new_constraint): Removed; we don't use the
11831         `NewConstraintAttribute' anymore.
11832
11833 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
11834
11835         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
11836         not fire a TypeResolve event when Assembly.GetType () is called.
11837
11838 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
11839
11840         Beginning of support for nullable types in the runtime. Parts of
11841         this patch are from Martin.
11842
11843         * appdomain.c (MONO_CORLIB_VERSION): Bump
11844
11845         * domain.c (mono_init_internal): get the nullable type
11846
11847         * class.c (mono_class_is_nullable): New method
11848         (mono_class_get_nullable_param): New mehod
11849         (mono_class_create_generic): In types T? set cast_class to T
11850
11851         * class-internals.h (MonoDefaults): new nullable default class
11852         (mono_class_get_nullable_param, mono_class_get_nullable_param):
11853         new methods.
11854
11855 2005-12-05  Raja R Harinath  <rharinath@novell.com>
11856
11857         * metadata.c (select_container): New.  Refactor code to select the
11858         appropriate GenericContainer given the type of generic parameter
11859         we are looking for.
11860         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
11861         not a MonoGenericContext.  Use select_container.  Update parameters.
11862         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
11863         and MONO_TYPE_MVAR.
11864         (unwrap_arrays): Remove duplicate tests.
11865         (find_generic_param): Rename from 'has_same_context'.  Now walks a
11866         generic instantiated class to find any arguments that are generic
11867         parameters.
11868         (mono_type_create_from_typespec_full): Use find_generic_param to
11869         avoid evicting some generic instantiations from the typespec
11870         cache.
11871
11872 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
11873
11874         * reflection.c: fixed writing of doubles on ARM FPA.
11875
11876 2005-12-02  Robert Jordan  <robertj@gmx.net>
11877
11878         * icall.c: Fixed EventInfo.ReflectedType (#76829).
11879
11880 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11881
11882         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
11883         least on SUSE 10 they are not the same (on debian, they are just the
11884         same thing).
11885
11886 2005-12-01  Raja R Harinath  <rharinath@novell.com>
11887
11888         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
11889         DeclaringType for VARs and MVARs.
11890         * class.c (set_generic_param_owner): Fix initialization of owner
11891         fields.
11892
11893 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
11894
11895         * icall.c: fixed Enum.ToObject() to correctly convert the values.
11896
11897 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11898
11899         * threadpool.c: workaround for a bug that shows up on the Mac:
11900         select()+connect() on a blocking socket is not like it should
11901         be, so we proceed to connect() in that case, wasting the I/O
11902         threadpool thread until connect succeedes. Fixes bug #75436.
11903
11904 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11905
11906         * threadpool.c: fix typo when setting file descriptor states.
11907
11908 2005-11-28  Raja R Harinath  <rharinath@novell.com>
11909
11910         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
11911         * metadata.c (mono_metadata_parse_method_signature_full): Don't
11912         create a temporary signature container.
11913         (mono_metadata_parse_generic_param): Update to changes.
11914         (mono_type_create_from_typespec_full): Update to changes.
11915         * loader.c (method_from_memberref): Don't use a
11916         MonoGenericContainer while parsing a memberref signature.
11917         (method_from_methodspec): Remove dead-store of the 'container'
11918         variable.  It's overwritten before use.
11919
11920         * metadata.c (mono_type_create_from_typespec_full): Make debugging
11921         checks tighter.
11922         (mono_metadata_parse_generic_param): Likewise.
11923         * loader.c (find_method_in_class): Does not need a
11924         MonoGenericContainer.  Use 'mono_method_signature' rather than
11925         'mono_method_signature_full'.
11926         (find_method, mono_get_method_constrained, method_from_memberref):
11927         Update to changes.
11928
11929         * metadata.c (mono_type_create_from_typespec_full): Ensure that
11930         owner-less generic-parameters are never evicted from the typespec
11931         cache.
11932
11933         * loader.c (method_from_memberref): Don't use the current context
11934         when parsing signatures.
11935         (method_from_methodspec, mono_get_method_from_token): Update to changes.
11936
11937         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
11938         side-effects in g_assert.
11939         * loader.c (mono_get_method_from_token): Resolve klass earlier so
11940         that we don't potentially lose information.
11941
11942 2005-11-26  Dick Porter  <dick@ximian.com>
11943
11944         * icall.c:
11945         * threads.c: icalls to implement basic (ie, not named)
11946         System.Threading.Semaphore.
11947
11948 2005-11-24  Dick Porter  <dick@ximian.com>
11949
11950         * process.c
11951         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
11952         Use GetProcessId() if it's available.
11953
11954 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
11955
11956         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
11957
11958 2005-11-23  Raja R Harinath  <rharinath@novell.com>
11959             Ankit Jain  <jankit@novell.com>
11960
11961         * loader.c (mono_get_method_from_token): Initialize 'method' field
11962         of all generic parameters before parsing the signature.  Remove
11963         code that "fixed"-up MVAR references.
11964
11965 2005-11-23  Ankit Jain  <jankit@novell.com>
11966
11967         * metadata.c (mono_metadata_has_generic_params):
11968         (mono_metadata_load_generic_param_constraints):
11969         (mono_metadata_load_generic_params): Move duplicate code ...
11970         (mono_metadata_get_generic_param_row): ... here. Returns the
11971         first row-id in GenericParam table for a given owner (token).
11972         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
11973         prototype.
11974
11975 2005-11-23  Raja R Harinath  <rharinath@novell.com>
11976             Ankit Jain  <jankit@novell.com>
11977
11978         * metadata.c (mono_metadata_class_equal): Pass signature_only when
11979         comparing VARs too.
11980         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
11981         type->data.generic_param only if the type is an MVAR.
11982         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
11983         leak owner-less VARs and MVARs into managed space.
11984
11985 2005-11-21  Martin Baulig  <martin@ximian.com>
11986
11987         * class-internals.h
11988         (MonoMethod): Moved the `generic_container' here from
11989         `MonoMethodNormal' since we now also need it for
11990         `MonoMethodPInvoke';
11991         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
11992         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
11993         an union containing both `MonoMethodNormal' and
11994         `MonoMethodPInvoke'.
11995
11996         * loader.c
11997         (mono_get_method_from_token): Allow implementing generic methods
11998         as interncalls.
11999
12000         * threads.c
12001         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
12002         icall.
12003
12004 2005-11-17  Dick Porter  <dick@ximian.com>
12005
12006         * icall.c: 
12007         * process.h: 
12008         * process.c: Split the Process Start_internal icall into
12009         ShellExecuteEx_internal and CreateProcess_internal, which are
12010         called depending on whether UseShellExecute is true.  Fixes bug
12011         76670.
12012
12013         * appdomain.c (MONO_CORLIB_VERSION): Incremented
12014
12015 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
12016
12017         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
12018         'msize' parameters, use the information in 'mspec' instead.
12019         (emit_object_to_ptr_conv): Ditto.
12020
12021         * marshal.c (emit_struct_conv): Handle explicit layout structs with
12022         fields out of order. Fixes #76733.
12023
12024 2005-11-17  Ankit Jain  <jankit@novell.com>
12025
12026         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
12027
12028 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
12029
12030         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
12031           bug #76575.
12032
12033 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
12034
12035         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
12036         for types with non-auto layout. Fixes #76717.
12037
12038 2005-11-16  Ankit Jain  <jankit@novell.com>
12039
12040         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
12041         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
12042         if generic_context is null.
12043           (mono_metadata_generic_param_equal): param->owner can be null.
12044           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
12045         null.
12046
12047 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
12048
12049         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
12050         the correct value.
12051
12052 2005-11-15  Martin Baulig  <martin@ximian.com>
12053
12054         * object.c (set_value): Use mono_class_from_mono_type() instead of
12055         the hack for generic instances; fixes #76136.
12056
12057 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
12058
12059         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
12060         fields.
12061
12062         * image.c (load_metadata_ptrs): Initialize the new fields.
12063
12064         * reflection.c (create_dynamic_mono_image): Ditto.
12065
12066         * reflection.c (build_compressed_metadata): Use the new fields.
12067
12068         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
12069         icall.
12070
12071         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
12072         icall.
12073         
12074 2005-11-15  Ankit Jain  <jankit@novell.com>
12075             Raja R Harinath  <harinath@gmail.com>
12076
12077         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
12078         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
12079         new per-generic_container cache if the cached MonoType's context matches
12080         the current context.
12081           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
12082         to the expected context.
12083           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
12084
12085 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12086
12087         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
12088         we changed the signature of an icall.
12089         * icall.c: Modify to mono_double_ParseImpl return true/false 
12090         depending on the success, instead of throwing the exception. This will
12091         help us in Double.TryParse methods.
12092         
12093 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
12094
12095         * marshal.c (emit_marshal_object): Throw an exception when
12096         marshalling 'object' instead of crashing. Fixes #76696.
12097
12098 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
12099
12100         * class-internals.h: Add prototype for mono_type_get_full_name ().
12101
12102 2005-11-11  Dick Porter  <dick@ximian.com>
12103
12104         * threads.c (mono_thread_manage): Make sure the main thread has
12105         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
12106
12107 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
12108
12109         * loader.c (mono_loader_set_error_type_load): Log a warning to the
12110         console about the missing type.
12111         (mono_loader_set_error_method_load): Ditto.
12112
12113 2005-11-09  Miguel de Icaza  <miguel@novell.com>
12114
12115         * mono-config.c (mono_get_config_dir): Set the system defaults if
12116         none is specified.
12117
12118         * assembly.c (mono_set_dirs): New API entry point to set the
12119         assembly and the config directory in one call
12120
12121 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
12122
12123         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
12124         the ftnptr was created from a delegate in a domain other than the
12125         current domain. Fixes #75377.
12126
12127         * exception.h exception.c: Add mono_get_exception_not_supported ().
12128
12129 2005-11-08  Martin Baulig  <martin@ximian.com>
12130
12131         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
12132
12133 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
12134
12135         * security-manager.h: Added definitions to deal with strongname key 
12136         pairs bigger (and smaller) than 1024 bits.
12137         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
12138         adjust wrt the public key length being used.
12139
12140 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
12141
12142         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
12143           Windows build (r51396-51397).
12144
12145 2005-11-03  Martin Baulig  <martin@ximian.com>
12146
12147         * class.c (mono_class_setup_vtable_general): Also add generic
12148         methods to the vtable; fixes #76581.
12149
12150 2005-11-01  Miguel de Icaza  <miguel@novell.com>
12151
12152         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
12153         sure that we lookup GetString method from the System.Text.Encoding
12154         class, not the derived class or we get an empty method.
12155
12156         Fixed class #76612.
12157
12158 2005-10-25  Miguel de Icaza  <miguel@novell.com>
12159
12160         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
12161         if it has been previously set (embedders). 
12162
12163         Make mono_set_rootdir available also on Unix.
12164
12165 005-10-24  Robert Jordan  <robertj@gmx.net>
12166
12167         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
12168
12169 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
12170
12171         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
12172         only calls which are made to native code use this flag.
12173
12174         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
12175
12176 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
12177
12178         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
12179         Add support for FieldBuilders.
12180
12181 2005-10-29  Martin Baulig  <martin@ximian.com>
12182
12183         * mono-debug.c
12184         (mono_debug_using_mono_debugger): New public method; returns
12185         whether we're running inside the debugger.
12186
12187 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
12188
12189         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
12190         for Method/Constructor/FieldBuilders.
12191
12192 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
12193
12194         * reflection.c (module_add_cattrs): Save custom attributes for global methods
12195         and fields as well.
12196
12197 2005-10-26  Martin Baulig  <martin@ximian.com>
12198
12199         * mono-debug-debugger.c
12200         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
12201
12202 2005-10-24  Raja R Harinath  <harinath@gmail.com>
12203
12204         * icall.c (base64_to_byte_array): Don't pass an out-of-range
12205         integer to isspace.
12206
12207 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
12208
12209         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
12210         when passing valuetypes byref. Fixes #76502.
12211
12212 2005-10-19  Jackson Harper  <jackson@ximian.com>
12213
12214         * profiler.c: Don't put a . in front of types that are not in a
12215         namespace.
12216
12217 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
12218
12219         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
12220
12221 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
12222
12223         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
12224         #76436.
12225         (mono_marshal_get_ldflda_wrapper): Fix a warning.
12226
12227 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12228
12229         * assembly.c metadata-internals.h icall.c: Define an additional
12230         parameter for mono_assembly_name_parse_full, so we can avoid creating
12231         S.R.AssemblyName.Version when no version info wasn't passed.
12232         
12233 2005-10-09  Miguel de Icaza  <miguel@novell.com>
12234
12235         * class.c (mono_type_get_full_name): Reimplement method that was
12236         removed. 
12237
12238         * image.c: Some docs
12239
12240 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
12241
12242         * profiler.c (output_newobj_profile): Fix printing of Total memory
12243         on x86.
12244
12245 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
12246
12247         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
12248
12249 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
12250
12251         * threads.c: remove debug output.
12252
12253 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
12254
12255         * threads.c (mono_thread_manage): Fix crashes if more than 64
12256         threads need to be aborted. Hopefully fixes #75899.
12257
12258         * assembly.c (mono_stringify_assembly_name): New helper function.
12259
12260         * class.c: Use mono_stringify_assembly_name instead of the similar
12261         static function.
12262
12263         * assembly.h assembly.c: Add support for calling a postload search 
12264         hook if an assembly cannot be loaded.
12265
12266         * appdomain.c: Register new search hooks which call the AssemblyResolve
12267         events in AppDomain. Fixes #75231
12268
12269 2005-10-07  Martin Baulig  <martin@ximian.com>
12270
12271         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
12272         methods without debug info.
12273
12274 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
12275
12276         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
12277         wrappers.
12278
12279 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12280
12281         * file-io.c: now that we return symlinks, use lstat and, when the file
12282         is a symbolic link, stat, to get the file attributes. Also avoid the
12283         conversion to/from utf16/external.
12284
12285 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
12286
12287         * class.c (mono_class_layout_fields): Compute klass->has_references
12288         correctly if an embedded valuetype is not yet initialized. Fixes
12289         #76331.
12290
12291 2005-10-04  Martin Baulig  <martin@ximian.com>
12292
12293         * metadata.c
12294         (mono_metadata_load_generic_param_constraints): New public
12295         function; splitted the constraints loading out from
12296         mono_metadata_load_generic_params().
12297
12298         * class.c (mono_class_create_from_typedef): Call
12299         mono_metadata_load_generic_param_constraints() after setting up
12300         the type and creating our parent; fixes #75329.
12301
12302 2005-10-04  Martin Baulig  <martin@ximian.com>
12303
12304         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
12305         non-dynamic parent classes.
12306
12307 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
12308
12309         * file-io.c : win32 build fix (ETXTBSY seems not found).
12310
12311 2005-10-04  Martin Baulig  <martin@ximian.com>
12312
12313         * reflection.c
12314         (mono_image_get_methodspec_token): Make the cache actually work;
12315         fixes #75974.
12316
12317 2005-10-04  Martin Baulig  <martin@ximian.com>
12318
12319         * class.c (mono_class_name_from_token): Removed the unneccessary
12320         `MonoGenericContext *' argument.
12321
12322 2005-10-04  Martin Baulig  <martin@ximian.com>
12323
12324         * loader.c
12325         (method_from_methodspec): Make the caching work again; fixes the
12326         performance regression from #76262.
12327
12328 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12329
12330         * file-io.c:
12331         * file-io.h:
12332         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
12333         GetFileSystemEntries that performs the same work but without going
12334         into io-layer, locking, etc.
12335
12336 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
12337
12338         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
12339         ThreadState_Stopped as well. Fixes #76047.
12340
12341 2005-09-29  Martin Baulig  <martin@ximian.com>
12342
12343         * class.c
12344         (inflate_generic_context): If the new context has a `gmethod', set
12345         its `container' that that gmethod's `container'.
12346
12347         * metadata.c
12348         (mono_metadata_parse_generic_param): Simplify things;
12349         `generic_container = generic_context->container;' is just fine.
12350
12351         * loader.c (method_from_methodspec): Code cleanups.
12352
12353 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
12354
12355         * decimal.c: fix warning (and let gcc generate correct
12356         code on ARM with optimizations).
12357
12358 2005-09-28  Martin Baulig  <martin@ximian.com>
12359
12360         * loader.c
12361         (method_from_memberref): Added `MonoGenericContext *class_context'
12362         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
12363         (method_from_methodspec): If we're a memberref, use the enclosing
12364         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
12365
12366 2005-09-28  Martin Baulig  <martin@ximian.com>
12367
12368         * object.c (mono_runtime_invoke_array): Added support for
12369         MONO_TYPE_GENERICINST; fixes #75917.
12370
12371 2005-09-27  Martin Baulig  <martin@ximian.com>
12372
12373         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
12374         `k->byval_arg.type' to determine the actual type.
12375
12376         * loader.c (method_from_methodspec): Removed some hacks.
12377
12378 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
12379
12380         * class-internals.h (mono_field_is_deleted): Do the test for
12381         rtspecialname before we check the actual name of the field. This
12382         prevents us from dereferencing a pointer into the string table,
12383         saving us from accessing a few pages
12384
12385         * *.c: Replace the use of {Enter,Leave}CriticalSection with
12386         macros. This will allow a deadlock debugger to easily be plugged
12387         in.
12388
12389 2005-09-27  Martin Baulig  <martin@ximian.com>
12390
12391         * loader.c (method_from_methodspec): Create a "signature"
12392         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
12393
12394 2005-09-27  Martin Baulig  <martin@ximian.com>
12395
12396         * class.c
12397         (inflate_generic_class): Correctly set the new context's
12398         container.
12399
12400         * loader.c
12401         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
12402         instead of a `MonoGenericContext *'.
12403         (mono_method_signature_full): Take a `MonoGenericContainer *'
12404         instead of a `MonoGenericContext *'.
12405
12406         * metadata.c
12407         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
12408         instead of a `MonoGenericContext *'.
12409         (mono_metadata_parse_method_signature_full): Likewise.
12410
12411 2005-09-26  Martin Baulig  <martin@ximian.com>
12412
12413         * class.c
12414         (mono_class_from_generic_parameter): Set `klass->generic_container'
12415         (mono_class_from_generic_parameter): Likewise.
12416         (mono_bounded_array_class_get): We inherit the generic container
12417         from the element class.
12418
12419         * loader.c
12420         (find_method, find_method_in_class): Take a `MonoGenericContext *'
12421         argument rather than computing it here.
12422         (method_from_memberref): Correctly set the generic context before
12423         parsing the signature.  Fixes #75681.
12424
12425 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
12426
12427         * object.c (mono_class_has_special_static_fields): Fix warnings.
12428
12429 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12430
12431         * assembly.c: Add parse_public_key function, to
12432         par the public keys. Also added mono_assembly_name_parse_full,
12433         to define it the parsed key should be freed or not.
12434         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
12435         to parse a long format assembly name.
12436         * metadata-internals.h: Keep mono_assembly_name_parse_full as
12437         private, since calling it to preserve the key requires
12438         freeing it manually.
12439         
12440 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
12441
12442         * locales.c : removed HAVE_ICU part.
12443
12444 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
12445
12446         * object.c (mono_class_create_runtime_vtable): Avoid calling 
12447         field_is_special_static if the klass has no special static fields.
12448
12449         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
12450         (MonoCachedClassInfo): Likewise.
12451
12452         * object.c (mono_class_has_special_static_fields): New helper function.
12453
12454 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
12455
12456         * class.c (mono_class_create_from_typedef): Don't call 
12457         interfaces_from_typedef_full for enums.
12458         (mono_class_create_from_typedef): Compute the base types of enums directly
12459         without calling mono_class_setup_fields ().
12460         (mono_class_find_enum_basetype): New helper function.
12461
12462         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
12463         one place inside the string heap.
12464         
12465 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
12466
12467         * class.c: locking fixes, code cleanups, some docs added.
12468         Allocate some data structures in the image mempool.
12469
12470 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
12471
12472         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
12473         the example code.
12474         
12475 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
12476
12477         * class-internals.h, class.c, reflection.c: reduce memory taken by
12478         MonoClass.
12479
12480 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
12481
12482         * metadata.c, metadata.h, loader.h: documentation updates, code and
12483         API cleanups.
12484
12485 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
12486
12487         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
12488         the example code.
12489
12490         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
12491         page faults caused by the runtime while reading metadata.
12492
12493 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12494
12495         * socket-io.c: the field names were changed 3 months ago and no one
12496         realized until bug #76077 got filed!
12497
12498 2005-09-20  Martin Baulig  <martin@ximian.com>
12499
12500         * icall.c (assembly_icalls): Removed some unused debugger icalls.
12501
12502 2005-09-20  Martin Baulig  <martin@ximian.com>
12503
12504         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
12505         write the rank into the class entry.
12506
12507 2005-09-20  Martin Baulig  <martin@ximian.com>
12508
12509         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
12510
12511 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
12512
12513         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12514
12515         * icall.c (custom_attrs_defined_internal): New icall.
12516
12517         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
12518         function.
12519         (mono_custom_attrs_construct_by_type): New helper function.
12520
12521 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
12522
12523         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
12524         terminate the resulting string. Fixes #76123.
12525
12526 2005-09-16  Martin Baulig  <martin@ximian.com>
12527
12528         * mono-debug.c
12529         (mono_debug_add_method): Ignore inflated methods for the moment.
12530
12531 2005-09-14  Martin Baulig  <martin@ximian.com>
12532
12533         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
12534
12535 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
12536
12537         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
12538         return a success/failure indication.
12539         (mono_metadata_interfaces_from_typedef_full): Ditto.
12540         (get_constraints): Ditto.
12541
12542 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
12543
12544         * marshal.c (emit_marshal_array): Fix handling of null arrays.
12545         
12546         * marshal.c (emit_marshal_array): Add support for returning string
12547         arrays from delegates. Fixes #76063.
12548
12549         * marshal.c: Use the emit_ldloc/stloc macros where possible.
12550
12551 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
12552
12553         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
12554         icall.
12555
12556 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
12557
12558         * reflection.c icall.c: Fix after mono_get_exception_type_load
12559         signature change.
12560
12561         * assembly.c (mono_assembly_get_assemblyref): New helper function.
12562         (mono_assembly_load_reference): Use the new helper.
12563
12564         * class-internals.h (MonoLoaderError): New structure containing 
12565         information about type loading errors.
12566
12567         * class-internals.h loader.c: Add APIs to store per-thread loader
12568         error information.
12569
12570         * loader.c class.c: Set the loader error if needed.
12571
12572         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
12573
12574 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
12575
12576         * decimal.c: fixed to handle the broken ARM fp format.
12577
12578 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
12579
12580         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
12581         broken.
12582
12583 2005-09-06  Martin Baulig  <martin@ximian.com>
12584
12585         * domain.c (supported_runtimes): Added v2.0.50727.
12586
12587 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
12588
12589         * culture-info.h: reduce the size of some structures.
12590
12591 2005-09-05  Martin Baulig  <martin@ximian.com>
12592
12593         Reflect latest API changes in the August CTP.
12594
12595         * icall.c
12596         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
12597         ("MonoType.HasGenericArguments"): Removed.
12598         ("MonoMethod.BindGenericParameters"): Renamed to
12599         "MakeGenericMethod".
12600         ("MethodBuilder.BindGenericParameters"): Renamed to
12601         "MakeGenericMethod".    
12602
12603 2005-09-05  Martin Baulig  <martin@ximian.com>
12604
12605         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
12606
12607 2005-09-05  Martin Baulig  <martin@ximian.com>
12608
12609         Applying a patch from Michal Moskal <malekith@nemerle.org>.
12610
12611         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
12612         generic_container is non-NULL.
12613
12614 2005-09-05  Martin Baulig  <martin@ximian.com>
12615
12616         Applying a patch from Michal Moskal <malekith@nemerle.org>.
12617
12618         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
12619
12620 2005-08-29  Michal Moskal  <malekith@nemerle.org>
12621
12622         * reflection.c (encode_locals,
12623         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
12624         for large generic types.
12625
12626 2005-09-05  Martin Baulig  <martin@ximian.com>
12627
12628         Applying a patch from Michal Moskal <malekith@nemerle.org>.
12629
12630         * class.c (mono_dup_array_type): New public method.
12631         (mono_metadata_signature_deep_dup): New public method.
12632         (dup_type): Correctly duplicate array and function types.
12633
12634 2005-09-05  Martin Baulig  <martin@ximian.com>
12635
12636         Applying a patch from Michal Moskal <malekith@nemerle.org>.
12637
12638         * reflection.c (get_default_param_value_blobs): Handle generic types
12639         and generic methods.
12640
12641 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
12642
12643         * class.c: Fixed error reporting (method/class were inversed) for 
12644         inheritance demands.
12645         * security-manager.c|h: Added the AppDomain when calling the managed
12646         System.Security.SecurityManager.InheritanceDemand method.
12647
12648 2005-09-01  Raja R Harinath  <rharinath@novell.com>
12649
12650         * reflection.c (encode_marshal_blob): 'marshaltype' and
12651         'marshaltyperef' are alternate sources for the custom marshaler
12652         name.
12653
12654 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
12655
12656         * class.c: fix creation of array classes with rank == 1
12657         (patch by Ankit Jain <jankit@novell.com>).
12658
12659 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
12660
12661         * object.c: fix check for creating the bound data for arrays vs
12662         szarrays.
12663
12664 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12665
12666         * object.c: configuration file name is now based on the executable name,
12667         not the image name. Fixes bug #75931.
12668
12669 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
12670
12671         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
12672         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
12673
12674 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
12675
12676         * rand.c: Use wincrypt.h instead of WinCrypt.h.
12677
12678 2005-08-24  Ankit Jain  <jankit@novell.com>
12679             Raja R Harinath  <rharinath@novell.com>
12680
12681         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
12682           called by it recursively.
12683           (mono_class_init): Remove special case in pending_init handling, since it's
12684           superseded by the fix to mono_class_from_typeref.
12685
12686 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
12687
12688         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
12689         BROKEN_THREAD_START stuff.
12690
12691 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
12692
12693         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
12694         trampoline.
12695
12696         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
12697         
12698         * object.c (mono_delegate_ctor): Replace the original function address with
12699         a delegate trampoline.
12700
12701 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
12702
12703         * icall.c: add boolean argument to base64_to_byte_array and 
12704         InternalFromBase64String to control whether a whitespace-only string
12705         is allowed (or should casue a FormatException to be thrown). We need
12706         this as the behavior has changed between MS.NET 1.x and 2.0, and we
12707         to match the MS behaviour in both profiles.
12708         * appdomain.c: Bump corlib version.
12709
12710 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12711
12712         This patch implements a big portion of publisher policy
12713         support, used to bind assembly versions and redirect
12714         one assembly from version A to version B.
12715
12716         * assembly.c:
12717         New GSList loaded_assembly_bindings, for storing the cached
12718         assembly bindings.
12719         (assembly_binding_maps_name): New static function for checking if a 
12720         assembly binding information maps an assembly name.
12721         (mono_assembly_binding_info_free): New function for freeing
12722         assembly binding information resources.
12723         (get_publisher_policy_info): New static function for retrieving 
12724         assembly binding information from a MonoImage.
12725         (compare_versions): New static function for comparing an assembly
12726         binding information data and the version of an assembly name.
12727         (check_policy_versions): New static function for checking if an
12728         assembly binding info mapping an assembly name is valid for it.
12729         (mono_assembly_load_publisher_policy): New static function for
12730         loading the 'policy.major.minor.MyAssembly' image for an assembly
12731         with an assembly name 'aname'.
12732         (mono_assembly_bind_version): New static function for updating
12733         assembly redirection.
12734         (mono_assembly_apply_binding): New static function for applying
12735         assembly binding.
12736         (search_binding_loaded): New static function for searching 
12737         loaded assembly binding infos in the cache domain.
12738         (mono_assembly_load_full): Don't apply assembly binding for
12739         reflection only assemblies.
12740
12741         * metadata-internals.h: Add MonoAssemblyBindingInfo,
12742         which contains information about assembly binding. Also
12743         declare signature for mono_config_parse_publisher_policy ()
12744         function, used to retrieve pub policy info.
12745         
12746         * mono-config.c:
12747         (publisher_policy_start): New static function used to parse publisher 
12748         policy config files.
12749         (publisher_policy_parser): New static MonoParseHandler containing 
12750         the functions used when parsing config files.
12751         (mono_config_parse_publisher_policy): New function for parsing
12752         publisher policy files.
12753         
12754 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
12755
12756         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
12757
12758         * marshal.c (mono_delegate_free_ftnptr): Ditto.
12759
12760         * object.c (mono_get_addr_from_ftnptr): New helper function.
12761
12762         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
12763
12764         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12765
12766 2005-08-19  Dick Porter  <dick@ximian.com>
12767
12768         * threads.c, threads.h, appdomain.c, appdomain.h,
12769         profiler-private.h, monitor.c, object.c, object-internals.h,
12770         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
12771         store the thread ID, so it can hold a 64 bit value if needed.
12772
12773 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
12774
12775         * reflection.c (mono_reflection_create_dynamic_method): Store the
12776         handle class into the method references as well so ldtoken works in
12777         dynamic methods.
12778
12779         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
12780         types.
12781
12782 2005-08-19  Ankit Jain <jankit@novell.com>
12783
12784         Fix #75847.
12785         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
12786           here rather than using the method signature of a arbitrary function
12787           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
12788           two arguments.
12789           Hack done with Harinath.
12790
12791 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12792
12793         * threadpool.c: disable printing stack traces when we get a exception
12794         in a threadpool thread. I need to do more testing to figure out which
12795         cases actually print this. Fixes bug #75828.
12796
12797 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12798
12799         * icall.c: there might be ignored whitespace after the last '='. This
12800         fixes length computation and bug #75840.
12801
12802 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
12803
12804         * assembly.c (mono_assembly_load_full): Consider .exe extension as
12805         well. Fixes #75809.
12806
12807         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
12808         #75784.
12809         
12810         * reflection.c (create_custom_attr_data): Ditto.
12811
12812 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
12813
12814         * locales.c, culture-info.h : removed RegionLCIDMap.
12815         * culture-info-tables.h : regenerated.
12816
12817 2005-08-16  Martin Baulig  <martin@ximian.com>
12818
12819         * class.c (mono_type_get_name_recurse): Small fix.
12820
12821 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
12822
12823         * locales.c : indentation fixie.
12824
12825 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
12826
12827         * object-internals.h,
12828           locales.h,
12829           locales.c,
12830           culture-info.h,
12831           icall.c : added RegionInfo table support.
12832         * culture-info-table.h : regenerated for region support.
12833
12834 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
12835
12836         * reflection.c (resolve_object): handle all kinds of MonoMethod
12837         including generic ones
12838
12839 2005-08-12  Ankit Jain <jankit@novell.com>
12840
12841         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
12842           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
12843
12844 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
12845
12846         * process.c: Don't close a thread handle when it's NULL. This is a
12847         workaround for bug #75733.
12848
12849 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
12850
12851         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
12852
12853 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
12854
12855         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
12856
12857 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12858
12859         * threadpool.c: if a work item in the thread pool has a callback that
12860         catches a exception, don't propagate it after invoking the callback.
12861         Fixes bug #75336.
12862
12863 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
12864
12865         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
12866
12867         * class-internals.h (MonoCachedClassInfo): Add some new fields.
12868
12869         * class.c (mono_class_init): Load field info lazily in the AOT case.    
12870
12871         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
12872
12873 2005-08-03  Ankit Jain  <jankit@novell.com>
12874
12875         Fix #75683.
12876         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
12877           PInvoke calling convention is 0.
12878
12879 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
12880
12881         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
12882         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
12883
12884 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
12885
12886         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
12887         to handle threads not started by the GC (patch by Michael Meeks
12888         <michael.meeks@novell.com>).
12889
12890 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
12891
12892         * reflection.c: Make buffer used in emitting types larger for some
12893         big generic types (patch by Michal Moskal).
12894
12895 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
12896
12897         * mono-debug.c: Fix some (not all) alignment problems.
12898
12899 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12900
12901         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
12902         Invoke mono_image_load_from_data_full passing the refonly
12903         parameter.
12904
12905         * assembly.c
12906         (mono_assembly_open_from_bundle): Add the refonly argument, 
12907         in order to pass it to other methods it calls to.
12908         (do_mono_assembly_open): Add the refonly argument, in order 
12909         to pass it to other methods it calls to.
12910         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
12911         the refonly parameter to it.
12912
12913         * image.c: Add loaded_images_refonly_hash and
12914         loaded_images_refonly_guid_hash to cache the reflection
12915         only loaded images.
12916         (mono_images_init): Initialize the hash tables used for
12917         caching the reflection only images.
12918         (load_modules): Invoke mono_image_open_full passing the refonly
12919         parameter to load the modules the correct way.
12920         (build_guid_table): Add the refonly argument, to re-build the 
12921         correct hash table.
12922         (do_mono_image_open): Added the refonly argument, in order to
12923         define it for the loaded image.
12924         (mono_image_loaded_full): New function, which receives an
12925         additional parameter to look for the image in the refonly or
12926         non-refonly section.
12927         (mono_image_loaded): Updated, using mono_image_loaded_full.
12928         (mono_image_loaded_by_guid_full): The same case that happens
12929         with mono_image_loaded_full.
12930         (mono_image_loaded_by_guid): Likewise.
12931         (register_image): Use the ref_only variable inside MonoImage
12932         to decide in which hash table store the current image.
12933         (mono_image_open_from_data_full): Rename
12934         mono_image_open_from_data to mono_image_open_from_data_full,
12935         adding the refonly argument, to define the ref_only variable 
12936         inside MonoImage.
12937         (mono_image_open_from_data): Return 
12938         mono_image_open_from_data_full.
12939         (mono_image_open_full): Rename mono_image_open to
12940         mono_image_open_full, receiving the new refonly argument,
12941         to pass it to inner methods.
12942         (mono_pe_file_open): Update this function, to open
12943         a MonoImage as a non-refonly image.
12944         (mono_image_close): Use the refonly variable inside
12945         MonoImage to remove the image from the correct caches.
12946
12947         * image.h: Add the signatures of mono_image_open_full,
12948         mono_image_open_from_data_full, mono_image_loaded_full,
12949         mono_image_loaded_by_guid_full.
12950
12951         * metadata-internals.h: Add the ref_only field to 
12952         MonoImage.
12953         
12954 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12955
12956         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
12957         Fix the last behavior, which used to load the assemblies and
12958         extract MonoReflectionAssemblyName information, instead of
12959         extract it from the metadata tables. Needed for Reflection
12960         Only assemblies.
12961         
12962 2005-07-29  Martin Baulig  <martin@ximian.com>
12963
12964         * mono-debug-debugger.c
12965         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
12966         not initialized.
12967
12968         * mono-debug.c
12969         (mono_debug_address_from_il_offset): Check whether we have
12970         debugging support before attempting to take the lock.
12971         (mono_debug_source_location_from_address): Likewise.
12972         (mono_debug_source_location_from_il_offset): Likewise.
12973         (mono_debug_il_offset_from_address): Likewise.
12974         (mono_debug_address_from_il_offset): Likewise.
12975
12976 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
12977
12978         * class.c (mono_class_from_name_case): Add support for dynamic images.
12979         Fixes #75650.
12980
12981         * object.c (mono_class_compute_gc_descriptor): Add a workaround
12982         for #75479.
12983
12984 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
12985         
12986         * reflection.c (mono_method_get_object): Fix warning.
12987
12988 2005-07-28  Martin Baulig  <martin@ximian.com>
12989
12990         * mono-debug.c
12991         (mono_debug_add_wrapper): Also write the wrapper type.
12992
12993 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
12994
12995         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
12996         
12997         * class.c (mono_class_init): Avoid reading nested classes if the AOT
12998         data indicates the class has none.
12999
13000 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
13001
13002         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
13003         loader lock with the debugger lock. Prevents deadlocks for beagle.
13004
13005         Beagle can now run on an smp box for a weekend without any
13006         issues. Woohoo!
13007
13008 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
13009
13010         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
13011         in a module. Fixes #75629.
13012
13013 2005-07-26  Martin Baulig  <martin@ximian.com>
13014
13015         * mono-debug.c (mono_debug_add_wrapper): New static method.
13016         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
13017         interncall or a wrapper.
13018
13019         * mono-debug.h (MonoDebugWrapperData): New public typedef.
13020         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
13021         (MONO_DEBUGGER_VERSION): Bump to 51.
13022
13023         * mono-debug-debugger.c
13024         (mono_debugger_add_type): Removed this empty function.
13025         (mono_debugger_add_method): Likewise.
13026
13027 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
13028
13029         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
13030         before accessing method->slot.
13031
13032 2005-07-21  Jb Evain  <jbevain@gmail.com>
13033
13034         * reflection.c (method_encode_clauses/class): Handle filters clauses.
13035         Fixes #75010.
13036
13037 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
13038
13039         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
13040         #75587.
13041
13042 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
13043
13044         * image.h image.c: Add mono_image_get_guid () API function.
13045
13046 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
13047
13048         There were issues when multiple threads tried to load
13049         assemblies. A deadlock was created between assemblies_mutex and
13050         mono_domain_assemblies_lock. This fixes the issue by making the
13051         assembly ref counting be lock free. See bug 75586.
13052         
13053         * image.c (mono_image_close): The add ref function here was using
13054         Interlocked operations while the unref was using a mutex and a
13055         --. I don't think this was ever a bug that would be exposed in a
13056         non-pendantic way (ie, by an embedder doing a ref on one thread
13057         and an unref on another), but for the sake of correctness, this is
13058         now Interlocked.
13059
13060         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
13061         (mono_assembly_load_reference): Call mono_assembly_addref rather
13062         than touching the refcount ourselves.
13063         (mono_assembly_close): Use InterlockedDecrement to unref the
13064         assembly. Don't acquire the lock unless it is actually needed.
13065
13066 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
13067
13068         * class.c (mono_class_layout_fields): Fix calculation of has_references
13069         for generic types.
13070
13071 2005-07-12  Martin Baulig  <martin@ximian.com>
13072
13073         Applying a patch from Michal Moskal <malekith@nemerle.org>.
13074
13075         * metadata.c
13076         (mono_type_hash): Provide better hashing for generic instances.
13077         (mono_generic_inst_hash): Improve hashing.
13078         (mono_generic_class_hash): Likewise.
13079
13080         * reflection.c (mymono_metadata_type_hash): Improve hashing for
13081         generic instances.
13082
13083 2005-07-12  Martin Baulig  <martin@ximian.com>
13084
13085         * reflection.c (mono_reflection_create_runtime_class): Remove the
13086         hack for generic type definitions and non-`Run' assemblies.
13087         (mono_reflection_bind_generic_parameters): Also use
13088         `klass->wastypebuilder' to check for TypeBuilders.
13089
13090 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
13091
13092         * class.c (mono_class_layout_fields): Fix calculation of has_references
13093         for generic types.
13094
13095         * class.c (inflate_generic_class): Fix a leak.
13096         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
13097         for generic types.
13098
13099 2005-07-11  Martin Baulig  <martin@ximian.com>
13100
13101         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
13102         on error.
13103
13104 2005-07-11  Martin Baulig  <martin@ximian.com>
13105
13106         * loader.c (find_method): Also lookup in
13107         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
13108
13109 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
13110
13111         * appdomain.c (mono_domain_unload): Don't free the error message
13112         before passing it to mono_get_exception_...
13113
13114         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
13115         
13116 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
13117
13118         * threads.c: try to better guess an available RT signal (bug #75387).
13119
13120 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
13121
13122         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
13123         and CACHE_OBJECT.
13124
13125 2005-07-07  Martin Baulig  <martin@ximian.com>
13126
13127         * class.c (mono_type_get_name_full): Return NULL for
13128         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
13129         fixes #75408.
13130
13131 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
13132
13133         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
13134         exit the appdomain as well being aborted.
13135
13136         * threadpool.c: Create all threadpool threads inside the root appdomain, and
13137         change back to the root domain after calling managed code. This enables
13138         appdomains using threadpools to be unloaded.
13139
13140 2005-07-07  Martin Baulig  <martin@ximian.com>
13141
13142         * class-internals.h
13143         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
13144         into `MonoDynamicGenericClass' since we only need it for dynamic
13145         types.
13146
13147         * reflection.c (mono_class_bind_generic_parameters): We don't need
13148         to compute the `parent' here.
13149
13150 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
13151
13152         * culture-info-table.h : regenerated.
13153
13154 2005-07-06  Martin Baulig  <martin@ximian.com>
13155
13156         * icall.c
13157         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
13158
13159         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
13160
13161 2005-07-06  Martin Baulig  <martin@ximian.com>
13162
13163         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
13164         we're doing a signature-only comparision; fixes #74945.
13165
13166 2005-07-06  Martin Baulig  <martin@ximian.com>
13167
13168         * class-internals.h (MonoGenericClass): Moved some things out into
13169         a new `MonoInflatedGenericClass' type.  
13170         (MonoInflatedGenericClass): New type; the `klass' of a
13171         `MonoGenericClass' is now computed lazyly in
13172         mono_get_inflated_generic_class().      
13173
13174         * class.c (mono_get_inflated_generic_class): New public function.
13175         (mono_class_inflate_generic_method): Removed the unused
13176         `MonoClass *' argument.
13177         (setup_generic_vtable): Don't call mono_get_inflated_method() on
13178         all the methods.
13179         (mono_class_create_generic): Make this static and merge it with
13180         mono_class_create_generic_2(); we're now called automatically from
13181         mono_get_inflated_generic_class().
13182
13183         * loader.c (mono_method_signature): Call
13184         mono_get_inflated_method() here.
13185
13186 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
13187
13188         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
13189         type of fields with RVA.
13190
13191         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
13192         for this pseudo class.
13193         (my_mono_class_from_generic_parameter): Likewise.
13194         (mono_class_init): Allow interfaces to have cctors.
13195
13196 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
13197
13198         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
13199         lazily for AOT methods.
13200
13201 2005-07-05  Martin Baulig  <martin@ximian.com>
13202
13203         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
13204         returns FALSE for a successful match, not TRUE.
13205
13206 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
13207
13208         * loader.c (mono_method_get_index): Optimize this a bit.
13209
13210 2005-07-04  Martin Baulig  <martin@ximian.com>
13211
13212         * class.c
13213         (class_compute_field_layout): Move the check for generic type
13214         definitions into mono_class_layout_fields().  Fixes #74684.
13215         (mono_class_from_generic_parameter): Correctly compute
13216         `klass->parent'; fixes #75457.
13217
13218         * reflection.c (register_assembly, register_module): Make sure
13219         `domain->rejobject_hash' is already created.
13220
13221 2005-07-02  Martin Baulig  <martin@ximian.com>
13222
13223         * class-internals.h
13224         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
13225         `MonoDynamicGenericClass'.      
13226
13227 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
13228
13229         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
13230         returned by a field getter is null, since null is a valid value.
13231
13232 2005-07-01  Martin Baulig  <martin@ximian.com>
13233
13234         * reflection.c (mono_reflection_generic_class_initialize): Update
13235         the `dgclass->fields [i].parent' to the correct class.
13236         (mono_image_get_fieldref_token): Use the declaring type, not the
13237         reflected type.
13238
13239 2005-07-01  Martin Baulig  <martin@ximian.com>
13240
13241         * loader.c (find_method): Also look in the interfaces; fixes #75429.
13242
13243 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
13244
13245         * threads.c (thread_cleanup): assert that thread != NULL
13246         (wait_for_tids_or_state_change): We were using the wrong variable
13247         when accessing wait->threads. `i' was always out of the bounds of
13248         the array.
13249
13250 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13251
13252         * loader.c: map user32 and kernel32 to libMonoSupportW
13253
13254 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
13255
13256         * appdomain.c (unload_thread_main): Mark this as WINAPI.
13257
13258 2005-06-28  Martin Baulig  <martin@ximian.com>
13259
13260         * loader.c (method_from_methodspec): Fix #75334.
13261
13262 2005-06-28  Martin Baulig  <martin@ximian.com>
13263
13264         Fix #74953 - Arrays now implement the generic IList<T> interface
13265         on the 2.0 platform.
13266
13267         * class-internals.h (MonoDefaults): Added `generic_array_class'.
13268
13269         * reflection.c (mono_class_bind_generic_parameters): New public
13270         function; similar to mono_reflection_bind_generic_parameters(),
13271         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
13272
13273         * domain.c (mono_init_internal): Try to initialize.
13274         `mono_defaults.generic_array_class' here; this'll only succeed if
13275         we're using the 2.0 corlib.
13276
13277         * icall.c
13278         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
13279         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
13280         (mono_lookup_internal_call): Added support for nested classes.
13281
13282         * loader.c
13283         (mono_get_method_from_token): Set `result->signature->pinvoke' if
13284         we're an interncall and have generic arguments.
13285
13286         * class.c
13287         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
13288         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
13289         instance of System.Array.InternalArray<T> for arrays, so they
13290         implement the generic IList<T> interface.
13291
13292 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
13293
13294         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
13295         (chastamar@yahoo.com). Fixes #75374.    
13296
13297 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
13298
13299         * culture-info-table.h: regenerated.
13300
13301 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13302
13303         * icall.c: handle spaces correctly for base64 strings.
13304
13305 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
13306
13307         * *.c: Kill some warnings.
13308
13309 2005-06-23  Duncan Mak  <duncan@novell.com>
13310
13311         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
13312         that this builds on Solaris 10 (x86).
13313
13314 2005-06-23  Martin Baulig  <martin@ximian.com>
13315
13316         * class.c
13317         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
13318         generic type definitions.
13319
13320 2005-06-23  Martin Baulig  <martin@ximian.com>
13321
13322         Fix #75331.
13323
13324         * metadata.c (mono_class_get_overrides): Renamed to
13325         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
13326         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
13327         pass it to mono_get_method_full().
13328
13329 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
13330
13331         * reflection.c (mono_reflection_create_runtime_class): take the
13332         mono_domain_lock in this method. Prevents deadlocks
13333
13334 2005-06-22  Martin Baulig  <martin@ximian.com>
13335
13336         * loader.c (method_from_methodspec): Fix #75330.
13337
13338 2005-06-22  Martin Baulig  <martin@ximian.com>
13339
13340         * reflection.c (type_get_qualified_name): Use
13341         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
13342         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
13343         argument; use it if we don't have an assembly name.
13344
13345 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
13346
13347         * object.c: In mono_message_init, set "copy out" flag for in
13348         parameters with the [Out] flag.
13349
13350 2005-06-21  Martin Baulig  <martin@ximian.com>
13351
13352         * class.c
13353         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
13354         and MONO_TYPE_PTR.
13355
13356 2005-06-21  Martin Baulig  <martin@ximian.com>
13357
13358         * class.c (mono_class_init): Don't initialize `class->fields' for
13359         generic instances since they're initialized again in
13360         compute_field_layout(). 
13361         (compute_field_layout): Set the field's `generic_info' here; fix
13362         #75320. 
13363
13364 2005-06-21  Martin Baulig  <martin@ximian.com>
13365
13366         * class-internals.h
13367         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
13368
13369         * metadata.c (mono_metadata_generic_method_equal): Also
13370         distinguish the `generic_class'; fixes #75334.
13371
13372 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13373
13374         * domain.c:
13375         * appdomain.c:
13376         * domain-internals.h:
13377         * reflection.c: 'domain_assemblies' field is now protected by its own
13378         lock. Don't call into managed code to run the AssemblyLoad event if we
13379         now there are no registered delegates for it.
13380
13381 2005-06-20  Martin Baulig  <martin@ximian.com>
13382
13383         * class.c (mono_class_is_assignable_from): Use a custom version of
13384         mono_class_has_parent() to make things work for generic instances;
13385         fix #75300.
13386
13387 2005-06-20  Martin Baulig  <martin@ximian.com>
13388
13389         * loader.c (method_from_methodspec): Apply a patch from
13390         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
13391
13392 2005-06-20  Martin Baulig  <martin@ximian.com>
13393
13394         * class.c (mono_class_init): Reverted Zoltan's last change; it
13395         breaks generics.
13396
13397 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
13398
13399         * threads.c (wait_for_tids_or_state_change): Add missing locking.
13400
13401 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13402
13403         * socket-io.c: fix the index in the socket array for writable/error
13404         sockets. Fixes bug #75306.
13405
13406 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
13407
13408         * class.c (mono_class_init): Allow interfaces to have static ctors.
13409
13410 2005-06-17  Martin Baulig  <martin@ximian.com>
13411
13412         * loader.c (method_from_methodspec): Use `context->container' when
13413         parsing the `gmethod->inst'.
13414
13415 2005-06-17  Martin Baulig  <martin@ximian.com>
13416
13417         * class.c (mono_type_get_name_recurse): Don't add the assembly
13418         name for type arguments.
13419
13420 2005-06-15  Martin Baulig  <martin@ximian.com>
13421
13422         * reflection.c (mono_image_get_inflated_method_token): Encode
13423         correct klass; fixes #75260.
13424
13425 2005-06-13 Michal Moskal <malekith@nemerle.org>
13426
13427         * icall.c: Make GetCorrespondingMethod/Constructor take
13428         MonoReflectionMethod method not MonoMethod. Removed
13429         MonoType.GetCorrespondingField, and make
13430         MonoGenericType.GetCorrespondingField take name not
13431         MonoClassField.
13432
13433 2005-06-13  Michal Moskal <malekith@nemerle.org>
13434
13435         * reflection.c (field_encode_signature, encode_locals):
13436          Make sizes of buffers for types larger (for big generic types).
13437          (create_generic_typespec,
13438          mono_reflection_sighelper_get_signature_local,
13439          mono_reflection_sighelper_get_signature_field):
13440          Add asserts for too small buffers.
13441
13442 2005-06-15  Martin Baulig  <martin@ximian.com>
13443
13444         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
13445         if our parent is not a dynamic type.
13446
13447 2005-06-15  Martin Baulig  <martin@ximian.com>
13448
13449         * class-internals.h (MonoTypeNameFormat): New enum.
13450
13451         * class.c
13452         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
13453         (mono_type_get_full_name): Removed.
13454         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
13455         argument instead of the boolean's.
13456
13457         * icall.c (ves_icall_System_MonoType_getFullName):
13458         Added `gboolean assembly_qualified'.    
13459
13460         * reflection.h
13461         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
13462
13463         * reflection.c (mono_reflection_parse_type): Parse the new type
13464         name format.
13465
13466 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13467
13468         * icall.c: no need to convert from utf16 to utf8 and then back again
13469         after the call to GetLogicalDrives.
13470
13471 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13472
13473         * icall.c: frombase64. Fix problems exposed by new tests.
13474
13475 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13476
13477         * icall.c: added internal calls for converting char [] and strings in
13478         base64 into byte [].
13479
13480 2005-06-10  Martin Baulig  <martin@ximian.com>
13481
13482         * class.c (mono_class_create_generic_2): Read the nested classes
13483         from the metadata rather than from `gklass->nested_classes' since
13484         `gklass' might not be initialized yet.
13485
13486 2005-06-09  Duncan Mak  <duncan@novell.com>
13487
13488         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
13489         all public headers. Fixes #74919.
13490
13491 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
13492
13493         * domain.c: The key for proxy_vtable_hash is now a pointer
13494         array. Added new GHashFunc and GCompareFunc functions for this.
13495
13496         * class.h: The list of interfaces in MonoRemoteClass is known in
13497         advance and can't grow (we create a new MonoRemoteClass if needed),
13498         so now the interface array can be allocated together with
13499         MonoRemoteClass.
13500         
13501         * object.c: Added a new method create_remote_class_key.
13502         Fixed mono_remote_class so it does not depend on
13503         mono_upgrade_remote_class.
13504         Removed extend_interface_array.
13505         Added new method clone_remote_class(), which makes a copy of a remote
13506         class and adds a new interface or class to it.
13507         mono_upgrade_remote_class() now creates a new remote class (or gets
13508         it from the cache) if an vtable upgrade is needed. In this way
13509         we make sure that other objects sharing the same remote class
13510         don't get the new vtable with unwanted interfaces.
13511         
13512         * object-internals.h:
13513         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
13514         
13515         * marshal.c: Track changes in mono_upgrade_remote_class().
13516
13517 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
13518         * icall.c: Add runtime methods for obtaining members of inflated
13519         class, which were created from supplied non-inflated members. It
13520         is used in internal Get{Method,Constructor,Field} methods in
13521         System.Type
13522
13523 2005-06-09  Martin Baulig  <martin@ximian.com>
13524
13525         * reflection.c
13526         (mono_reflection_bind_generic_method_parameters): Fix #75169.
13527
13528 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13529         * reflection.c (mono_image_basic_init): Define
13530         Version in MonoDynamicAssembly. 
13531         
13532 2005-06-08  Martin Baulig  <martin@ximian.com>
13533
13534         Fix #75136.
13535
13536         * loader.c
13537         (mono_method_signature_full): New public method; takes a
13538         `MonoGenericContext *'.
13539         (find_method): Use mono_method_signature_full() and pass the
13540         klass'es context to it.
13541
13542         * class.c (mono_class_is_inflated_method): Use
13543         mono_method_signature_full() and pass the context to it.
13544
13545 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
13546
13547         * object.c: add proper locking in mono_remote_class_vtable(),
13548         fixes possible memory corruption.
13549
13550 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
13551
13552         * marshal.c (mono_remoting_marshal_init): set
13553         initialized after initialization.
13554
13555 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
13556
13557         * locales.c : hush.
13558
13559 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
13560
13561         * object.c (extend_interface_array): fix really silly
13562         memory corrupting / comparison bug.
13563
13564 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13565
13566         * reflection.c: Functions added to support the creation
13567         of CustomAttributeData, which includes Attribute data
13568         used by ReflectionOnly methods.
13569
13570         * reflection.h:  mono_reflection_get_custom_attrs_data and
13571          mono_custom_attrs_data_construct added (functions exposed).
13572
13573          * icall.c: Added mono_reflection_get_custom_attrs_data
13574          as icall.
13575         
13576 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
13577
13578         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
13579         lupus's request.
13580
13581 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
13582
13583         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
13584
13585         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
13586         dynamic DllImportAttribute.
13587
13588         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
13589         dynamic DllImportAttribute.
13590
13591         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
13592         Fixes #75162.
13593
13594 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13595
13596         * threads.c: avoid segfault when an unstarted thread is aborted.
13597
13598 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
13599
13600         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
13601         Returns the name and version of the runtime for reporting.
13602
13603 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13604
13605         * appdomain.c: bump corlib version.
13606         * object-internals.h: new field in MonoReflectionAssembly.
13607
13608 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13609
13610         * object-internals.h: Carlos forgot to add this field.
13611
13612 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13613
13614         * icall.c: Added create_version to create instances
13615         of Version of MonoReflectionAssemblyName. This change helps
13616         the AssemblyName tests to keep running fine.
13617         
13618 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
13619   
13620         * object.c (mono_method_return_message_restore): A somehow less
13621         intrusive fix for #75138.
13622
13623 2005-06-03  Raja R Harinath  <rharinath@novell.com>
13624
13625         * object.c (mono_method_return_message_restore): Fix computation
13626         of expected number of out args.
13627
13628 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
13629
13630         * reflection.c (mono_image_get_method_info): Fix the case when the
13631         charset is empty.
13632
13633 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
13634
13635         * object.c: Added missing null check in
13636           mono_method_return_message_restore.
13637
13638 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
13639
13640         * reflection.c (mono_image_get_method_info): Handle the case when
13641         dllentry is empty.
13642
13643 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
13644
13645         * object.c: When creating the vtable for a proxy, take into account
13646         all inherited interfaces, not only the ones registered in
13647         iclass->interfaces. This fixs bug #74996.
13648         Also, in mono_method_return_message_restore, verify that the array
13649         of out args has the expected lengh.
13650
13651 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13652
13653         * socket-io.c: update the timeout in Poll when the call is interrupte.
13654
13655 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13656
13657         * socket-io.c: support abort/suspend in Select_internal after last
13658         change.
13659
13660 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13661
13662         * threadpool.c: remove warning.
13663
13664 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13665
13666         * icall.c:
13667         * socket-io.[ch]: Select_internal uses poll() now when available, thus
13668         removing the 1024 limit from select(). Runtime part of the fix for
13669         bug #71203.
13670
13671 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13672
13673         * socket-io.c: when resolving the addresses for the same
13674         host returned by gethostname(), get the local IPs from the interface
13675         list. Loopback addresses are discarded if the are interfaces up with
13676         non-loopback ones. Fixes bug #63265.
13677
13678 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
13679
13680         * appdomain.c, verify.c, object-internals.h, reflection.c:
13681         bumped corlib number to 36, and added new extra_flags field
13682         to ReflectionMethodBuilder and friends.  Fixes #75060.
13683
13684 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
13685
13686         * gc.c: register a new weak link only if the object is non-null
13687         (fixes bug#75047).
13688
13689 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
13690
13691         * culture-info.h : short time pattern too.
13692
13693 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
13694
13695         * culture-info.h : expand long time pattern string length.
13696
13697 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
13698
13699         * culture-info-table.h : update (more French date format; #72788).
13700
13701 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
13702
13703         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
13704         the method is static. Fixes #75029.
13705
13706 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
13707
13708         * reflection.c: Update the table_idx field of method builders after
13709         saving the module, since it can change. This is a workaround for
13710         bug #74914. 
13711
13712 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
13713
13714         * culture-info-table.h : update (additional French date format).
13715
13716 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
13717
13718         * icall.c (ves_icall_type_Equals): Revert last change.
13719         
13720         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
13721
13722         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
13723
13724 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
13725
13726         * class-internals.h: Added executioncontext_class field to 
13727         MonoDefaults structure.
13728         * domain.c: Cache System.Threading.ExecutionContext class in 
13729         mono_defaults.
13730         * object.c: Capture the ExecutionContext for asynchroneous calls in
13731          mono_async_result_new.
13732         * object-internals.h: Added execution_context and original_context 
13733         fields to MonoAsyncResult. Added execution_context to MonoThread.
13734         * security-manager.c|.h: Added mono_get_context_capture_method to 
13735         return the capture method (if required by the security manager or by
13736         the framework version used).
13737         * threadpool.c: Apply capture (if present) ExecutionContext in 
13738         mono_async_invoke and revert to original context after it completes.
13739
13740 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
13741
13742         * culture-info-table.h : updated (real hacky solution for zh-CHT).
13743
13744 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
13745
13746         * culture-info-table.h : zh-CHT related workaround.
13747
13748 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
13749
13750         * marshal.c (emit_marshal_custom): Add some error checking and call the
13751         methods in the ICustomMarshaler interface. Fixes #74875.
13752         
13753         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
13754         native->managed wrappers.
13755
13756 2005-05-12  Martin Baulig  <martin@ximian.com>
13757
13758         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
13759         here and use the loader lock.
13760
13761         * mono-debug.c: Properly lock when the debugger is not attached.
13762         (mono_debug_init): Release the initial lock if we're not running
13763         in the debugger.
13764
13765 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
13766
13767         * marshal.c (emit_marshal_custom): Pass through NULL values without
13768         calling the custom marshalling routines.
13769
13770         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
13771         conversion in structures. Fixes #74882.
13772
13773 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
13774
13775         * culture-info-table.h : zh-* cultures were missing.
13776
13777 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
13778
13779         * threads.c: Added a new event background_change_event which is signaled
13780         when a thread changes its background mode.
13781         Moved here several checks previously done in managed code. The checks
13782         require the thread lock, and using the thread lock in managed code
13783         can result in deadlocks.
13784         Merged Start_internal and Thread_internal into a single method. Now 
13785         Thread_internal does all work of creating and starting a thread.
13786         Added icalls for setting and getting the state of the object. Moved from
13787         managed code to avoid locking there.
13788         Added wait_for_tids_or_state_change() which is called instad of
13789         wait_for_tids when waiting for non-backround threads to end. This method
13790         will return if one of the threads ends or the background_change_event
13791         is signaled.
13792         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
13793         the background mode. This method signals the background_change_event
13794         event.
13795         * icall.c:
13796         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
13797         removed Start_internal.
13798         
13799 2005-05-11  Martin Baulig  <martin@ximian.com>
13800
13801         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
13802         to order of some fields to get proper alignment on 64-bit machines.
13803
13804 2005-05-11  Martin Baulig  <martin@ximian.com>
13805
13806         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
13807         changes as they're broken and completely fuck up the debugger.
13808
13809         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
13810
13811 2005-05-10  Martin Baulig  <martin@ximian.com>
13812
13813         * reflection.c (mono_reflection_generic_class_initialize): Don't
13814         call mono_class_setup_parent() here.
13815
13816 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13817
13818         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
13819         send/receive timeout use an integer in milliseconds. We were using a
13820         struct timeval.
13821
13822 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13823
13824         * locales.c:
13825         (internal_get_cultures): reserve the first slot of the array for the
13826         InvariantCulture, which will be filled in managed code.
13827
13828 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
13829
13830         * reflection.c (mono_image_fill_module_table): Initialize the
13831         GENERATION field as well.
13832
13833 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13834
13835         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
13836         Monitor.Enter on the object.
13837
13838 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
13839
13840         * threads.c: Enable the wait for running threads when exiting.
13841         * icall.c: Suspend all threads before exiting.
13842
13843 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
13844
13845         * assembly.c (mono_assembly_load_reference): Fix warning.
13846
13847 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13848
13849         * threadpool.c: changed the default number of threads per cpu. From now
13850         on, the default will be 20 + (5 * number of cpus) instead of 50.
13851
13852 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
13853
13854         * loader.c (mono_method_get_signature_full): Add locking here.
13855
13856 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
13857
13858         * appdomain.c: Moved methods for parsing and freeing assembly
13859         names to assembly.c.
13860         * assembly.c, domain-internals.h: Created public methods for parsing
13861         assembly names. Fixed mono_assembly_load_with_partial_name:
13862         it now finds the best match, taking into account the version,
13863         token and culture specified in the partial name. Also return
13864         the latest version if no version information is specified.
13865
13866 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
13867
13868         * threadpool.c: replace check for SocketAsyncCall class.
13869
13870 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13871
13872         * threadpool-internals.h:
13873         * Makefile.am: added threadpool-internals.h
13874
13875         * threadpool.c: call mono_unhandled_exception on exceptions not handled
13876         that happen in threadpool threads (tested on MS).
13877         (mono_thread_pool_remove_socket): new function that dispatch any pending
13878         AIO call on a socket that is closing. By now only epoll really needs it,
13879         as select/poll wake up when the socket closes.
13880
13881
13882         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
13883
13884 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
13885
13886         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
13887
13888 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
13889
13890         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
13891
13892 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
13893
13894         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
13895         has an abort request, convert it into a suspend request.
13896
13897 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
13898
13899         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
13900         warning for the usage of `UnmanagedFunctionPointerAttribute' which
13901         is not supported yet.
13902
13903 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13904
13905         * image.c: register assemblies loaded from data (bundles) in the loaded
13906         assemblies hash. Fixes bug #74772.
13907
13908 2005-04-29  Martin Baulig  <martin@ximian.com>
13909
13910         * class.c (mono_type_get_name_recurse): Update to the new naming
13911         schema from the latest .NET 2.x beta2.
13912         (mono_class_setup_vtable_general): If we're a generic instance,
13913         copy the vtable from our generic type definition and inflate all
13914         the methods in it.
13915
13916         * loader.c (find_method): Update to the new naming schema from the
13917         latest .NET 2.x beta2.
13918
13919 2005-04-29  Raja R Harinath  <harinath@gmail.com>
13920
13921         * class.c (mono_class_init): Add a mono_loader_unlock to the
13922         #74734 fix.
13923
13924 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
13925
13926         * icall.c (ves_icall_System_Environment_Exit): Remove the 
13927         suspend_all_other_threads () call for the time being, since it can hang.
13928
13929         * threads.c (mono_thread_manage): Similarly, disable the waiting for
13930         the background threads to exit, since it can also hang.
13931
13932         * class.c (mono_class_init): Applied patch from Ankit Jain 
13933         (radical@gmail.com). Avoid pending init errors when a field refers
13934         to a nested class using a typeref. Fixes #74734.
13935
13936         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
13937         this for dynamic modules.
13938
13939 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13940
13941         * threads.c: don't wait for threads that are in the process of aborting
13942         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
13943         and waiting for background threads to finish. This makes xsp and
13944         mod-mono-server exit without random length delays and/or hangs.
13945
13946 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13947
13948         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
13949
13950 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
13951
13952         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
13953         dynamic types to prevent infinite loops. Fixes #74727.
13954
13955         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
13956         ..._is_assignable_to.
13957
13958 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
13959
13960         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
13961
13962 2005-04-25  Martin Baulig  <martin@ximian.com>
13963
13964         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
13965
13966         * domain.c
13967         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
13968
13969         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
13970
13971         * reflection.c (build_compressed_metadata): Set metadata header
13972         version to 2.0.
13973
13974 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
13975
13976         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
13977         number into an integral and a decimal part. Fixes #70473.
13978
13979         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
13980
13981 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
13982
13983         * culture-info-table.h : reflected the latest locale-builder output.
13984
13985 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13986
13987         * threadpool.c: check for SuspendRequested too when deciding if
13988         mono_thread_interruption_checkpoint should be called.
13989
13990 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13991
13992         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
13993         * threads.c: remove interruption_mutex and use Interlocked instead. When
13994         suspending all the threads, wait for all the suspended events at once.
13995         If we're shutting down and get an APC that is going to be queued,
13996         call mono_thread_execute_interruption immediately, as the thread might
13997         be sleeping on a pthread condition or mutex.
13998
13999         * icall.c: call mono_runtime_set_shutting_down before suspending the
14000         threads.
14001
14002         Fixes bug #74693. And now xsp is happier when exiting.
14003
14004 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
14005
14006         * loader.c (mono_stack_walk): Fix #74690.
14007
14008 2005-04-22  Martin Baulig  <martin@ximian.com>
14009
14010         * mono-debug.h (MonoDebugMethodJitInfo): Added
14011         `MonoDebugMethodJitInfo *jit'.
14012
14013         * mono-debug.c (mono_debug_read_method): Cache the
14014         MonoDebugMethodJitInfo in `address->jit'.
14015         (mono_debug_free_method_jit_info): New public method.
14016
14017 2005-04-22  Martin Baulig  <martin@ximian.com>
14018
14019         * class.c (mono_class_is_assignable_from): Disallow
14020         type parameter -> interface.
14021
14022 2005-04-21  Dick Porter  <dick@ximian.com>
14023
14024         * threads.c (mono_thread_create): Turn an assertion into an error.
14025
14026 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
14027
14028         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
14029         
14030         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
14031         Fix some gcc 4.0 warnings.
14032
14033 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
14034
14035         * file-io.c: fix alt dir separator char on unix systems
14036         and cleanup (fixes bug #71214).
14037
14038 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
14039
14040         * marshal.c: Use CALLVIRT instead of CALL when dispatching
14041         a call to a remote domain, since the method may be an
14042         interface method in the client domain. This fixes bug #74192.
14043
14044 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14045
14046         * threadpool.c: recv/send are now performed before going back to managed
14047         code to save one transition.
14048
14049 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14050
14051         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
14052
14053         * metadata/threadpool.c: removed hack to workaround the bug above.
14054
14055         Fixes bug #74618.
14056
14057 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
14058
14059         * reflection.c reflection.h: Fix handling of parameter defaults in
14060         dynamic methods. Also fixes handling of parameter attributes.
14061         Fixes #74609.
14062
14063         * mono-debug.c (mono_debug_close_image): Fix warning.
14064
14065 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14066
14067         * socket-io.h: replaced old unused field with new 'blocking'.
14068         * threadpool.c: restore socket blocking state on windows(tm).
14069
14070 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
14071
14072         * icall.c: don't return the codebase in the AssemblyName[] returned by
14073         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
14074         * object-internals.h: Removed FIXME (fields were presents) and fixed
14075         versioncompat declaration.
14076
14077 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14078
14079         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
14080         not closed, so don't cleanup when it happens.
14081
14082 2005-04-13  Chris Toshok  <toshok@ximian.com>
14083
14084         * mono-debug-debugger.h: change prototype for
14085         mono_debugger_lookup_type.
14086
14087         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
14088         this function, although it should probably be named
14089         mono_debugger_init_type.
14090
14091 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14092
14093         * threadpool.c: fix non-AIO case.
14094
14095 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
14096
14097         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
14098         the built-in profiler to measure just JIT compilation times.
14099
14100 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14101
14102         * threadpool.c: the epollfd might be closed by another thread at
14103         any time, so ignore EBADF at treat it as a "we're closing" sign.
14104
14105 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14106
14107         * threadpool.c: release the semaphores with a count equals to the number
14108         of working threads in both IO and regular pools. Fixed typo that messed
14109         up the count of IO pool threads. Don't initialize the pipe handles if
14110         we're using epoll.
14111
14112 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14113
14114         * threadpool.c: some systems don't like a NULL when deleting the socket
14115         from epoll.
14116
14117 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14118
14119         * threadpool.c: fix semaphore allocation.
14120
14121 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14122
14123         * threadpool.c: added epoll() based implementation for asynchronous IO
14124         that is used instead of the default poll() when available.
14125         It can be disabled by setting MONO_DISABLE_AIO.
14126
14127 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14128
14129         * threadpool.c: windows needs 'closesocket' and instead of returning
14130         0 when the stream is closed while in select, it returns -1. Fixes bug
14131         #74573.
14132
14133 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
14134
14135         * class.c (class_compute_field_layout): Fix the regression caused by
14136         the previous try.
14137
14138 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14139
14140         * threadpool.c: separate pool for socket async. IO.
14141         * threadpool.h: mono_max_worker_threads is not a global any more.
14142
14143 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
14144
14145         * class.c (class_compute_field_layout): Fix #74549.
14146
14147 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14148
14149         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
14150         use 2 connected sockets instead.
14151
14152 2005-04-08  Miguel de Icaza  <miguel@novell.com>
14153
14154         * mono-config.c: Add new entry point for mkbundle
14155         mono_config_parse_memory. 
14156
14157 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14158
14159         * threadpool.c: removed another unused function.
14160
14161 2005-04-08  Ankit Jain  <radical@corewars.org>
14162
14163         * reflection.c (get_default_param_value_blobs): Add 'types'
14164         parameter to get the types encoded in the constant table.
14165         (mono_param_get_objects): Use the type from the constant table,
14166         not the type of the parameter, when creating default values.
14167         Handle null default values correctly.
14168
14169 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14170
14171         * file-io.c:
14172         * file-io.h:
14173         * threadpool.c:
14174         * threadpool.h:
14175         * icall.c:
14176         * socket-io.c: removed dead code for async IO.
14177
14178 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14179
14180         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
14181
14182         * threadpool.c: intercept socket async. calls and pass them to a thread
14183         that is polling and dispatching the job items to the threadpool as
14184         socket become ready. Fixes bugs #71217, #71933.
14185
14186         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
14187         between char and short/ushort arrays.
14188
14189         * socket-io.c: remove dead code.
14190
14191 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
14192
14193         * locales.c,
14194           icall.c : removed InternalToUpper_Comp() and
14195           InternalToLower_Comp().
14196
14197 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
14198
14199         * char-conversions.h : The tables were incorrectly generated. Should
14200           be generated against invariant culture.
14201
14202 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
14203
14204         * object.c (mono_runtime_invoke_array): Fix return value when 
14205         passing pre-created valuetype objects to ctors.
14206
14207         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
14208         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
14209         Fixes #74338.
14210
14211 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
14212
14213         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
14214         only used with --security and hides the wrong corlib version error.
14215
14216 2005-03-30  Joshua Tauberer  <tauberer@for.net>
14217
14218         * class.c: Changed mono_class_name_from_token so that types
14219         outside of a namespace don't have an initial period.  Improved
14220         the g_warning message used in _mono_class_get when loading
14221         fails.
14222         * assembly.c: In mono_assembly_load_reference, when an assembly
14223         can't be found, "No such file or directory" is misleading and
14224         unhelpful because a few paths were checked for the presence of
14225         the assembly.  When that happens (ENOENT), display a nicer
14226         message indicating the directories that were searched.  In all
14227         cases, the warning is made easier to read for non-hackers.
14228
14229 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
14230
14231         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
14232         project/solution.
14233         * appdomain.h|domain.c: Removed inline from functions.
14234         * appdomain.c: Reduced warnings when compiling on windows.
14235         * icall.c: Fixed output_debug declaration to gunichar2*.
14236         * mono-config.c: Reduced warnings when compiling on windows.
14237         * rand.c: Added missing "windows.h". Added missing return value.
14238         * rawbuffer.c: Added missing winsock2.h for windows.
14239         * sysmath.h: Added mono-compiler.h header to allow/ease 
14240         compilation with non-GCC compilers.
14241         * threads.c: Fixed declarations to compile with VS.NET C compiler.
14242         Removed cast warnings.
14243
14244         Adapted from the work of J Lothian (for VC6).
14245
14246 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
14247
14248         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
14249         from default_path.
14250
14251 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
14252
14253         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
14254         the 2.0 profile.
14255
14256 2005-03-27  Raja R Harinath  <harinath@gmail.com>
14257
14258         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
14259         has to be in $(exec_prefix).  $(prefix) is for arch-independent
14260         stuff, and it would probably use $(prefix)/share rather than
14261         $(prefix)/lib.
14262
14263 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14264
14265         * console-io.c: added 2 includes that might be missing.
14266
14267 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
14268
14269         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
14270         profile.
14271
14272         * reflection.c (create_custom_attr): Allocate the params array using
14273         alloca so it gets GC tracking.
14274
14275 2005-03-23  Chris Toshok  <toshok@ximian.com>
14276
14277         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
14278         out some spew.
14279
14280 2005-03-24  Raja R Harinath  <rharinath@novell.com>
14281
14282         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
14283         changes to pick up any changes in prefix, etc.
14284
14285 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
14286
14287         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
14288         
14289         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
14290         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
14291
14292 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
14293
14294         * class-internals.h object-internals.h class.c reflection.c: Extend the
14295         mono_lookup_dynamic_token () function to return the class of the
14296         token as well. 
14297
14298         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
14299         well. Fixes #73848.
14300
14301 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
14302
14303         * security-manager.c: Skip inheritance checks for intra-corlib
14304         class inheritance and method overrides. This skips a lot of checks
14305         and (anyway) permissions cannot work until corlib is loaded.
14306
14307 2005-03-23  Martin Baulig  <martin@ximian.com>
14308
14309         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
14310         MONO_TYPE_GENERICINST.  
14311
14312 2005-03-23  Martin Baulig  <martin@ximian.com>
14313
14314         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
14315
14316 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
14317
14318         * class.c: added locking comments to some functions.
14319         Cache the interface offsets arrays (saves about 20 KB
14320         of runtime memory in a typical app).
14321         Reduce the time overhead in mono_class_setup_supertypes ().
14322
14323 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
14324
14325         * icall.c: speedup and fix leaks in GetMethodsByName and
14326         GetPropertiesByName.
14327
14328 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
14329
14330         * reflection.c: some locking fixes.
14331
14332 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
14333
14334         * metadata.c: added missing break in case statement.
14335
14336 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
14337
14338         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
14339         typedbyref return values. Fixes #73941.
14340
14341 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
14342
14343         * security-manager.c|h: Added demandunmanaged method and 
14344         suppressunmanagedcodesecurity class to MonoSecurityManager.
14345         Renamed aptc class to allowpartiallytrustedcallers.
14346
14347 2005-03-17  Martin Baulig  <martin@ximian.com>
14348
14349         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
14350
14351 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14352
14353         * file-io.c: disabled file async. IO using aio_*. It uses the
14354         threadpool now. Workaround for bug #73718.
14355
14356 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
14357
14358         * assembly.h, mono-config.c: added code to deal with bundled configs
14359         for bundled assemblies.
14360
14361 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
14362
14363         * *.c, private.h: cleanup, removing old private.h header file.
14364
14365 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
14366
14367         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
14368         and throw_on_unmappable_char attributes.
14369
14370 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
14371
14372         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
14373         _ProcessName_internal.
14374
14375 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
14376
14377         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
14378         #73631.
14379
14380         * icall.c threads.c threads-types.h: Remove slothash icalls as they
14381         are no longer used.
14382
14383 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
14384
14385         * object.c (compute_class_bitmap): Add support for generics. Fixes
14386         #73527.
14387
14388 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
14389
14390         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
14391
14392 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14393
14394         * filewatcher.c: commented out the code for windows watcher, as we don't
14395         use it (we use the managed implementation instead).
14396
14397 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
14398
14399         * object-internals.h (MonoThread): Remove 'unused1' field.
14400
14401         * appdomain.c: Bump corlib version.
14402
14403         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
14404
14405         * reflection.c (mono_reflection_create_runtime_class): Remove the
14406         AssemblyBuilder.Save optimization since it causes too many problems.
14407
14408 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
14409
14410         * exception.c|h: Added mono_get_exception_reflection_type_load to
14411         create a ReflectionTypeLoadException object.
14412         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
14413         to return NULL is a InheritanceDemand fails during reflection. Updated
14414         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
14415         ReflectionTypeLoadException if an InheritanceDemand fails during 
14416         reflection. Added icall mapping for GetLinkDemandSecurity.
14417         * security-manager.c|h: Added ves_icall_System_Security_
14418         SecurityManager_GetLinkDemandSecurity internal call to return the
14419         class and methods permissions set for a LinkDemand. Removed unused
14420         fields in MonoSecurityManager.
14421
14422 2005-03-10  Martin Baulig  <martin@ximian.com>
14423
14424         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
14425         it's a generic instance.
14426
14427 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
14428
14429         * reflection.c (mono_get_object_from_blob): Applied patch from
14430         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
14431
14432         * class.c (mono_class_is_assignable_from): Another try at fixing 
14433         #73469 without breaking anything.
14434
14435 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
14436
14437         * class.c: (mono_class_is_assignable_from): Revert the last changes
14438         since they don't work with generics.
14439         
14440         * class.c (mono_class_is_assignable_from): Fix build bustage.
14441
14442         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
14443         the managed IsAssignableFrom method. Fixes #73469.
14444
14445         * reflection.c (mono_reflection_call_is_assignable_from): New helper
14446         function.
14447
14448 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
14449
14450         * object.c (mono_load_remote_field_new): Fix returning uninitialized
14451         memory when the remoting callback does not sets the out arguments.
14452         Fixes #73007.
14453
14454         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
14455         by mistake.
14456
14457         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
14458
14459         * object-internals.h (MonoStackFrame): Sync with managed object layout.
14460
14461         * appdomain.c: Bump corlib version.
14462
14463 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
14464
14465         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
14466         function.
14467
14468         * threads.c (mono_thread_attach): Detect threads which are not started
14469         by the GC pthread wrappers.
14470
14471 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
14472
14473         * icall.c: Added new icall for RNG.
14474         * rand.c|h: Added new icall to open the RNG. This allows to share a 
14475         single handle on Linux to access /dev/urandom and fix #73183.
14476
14477 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
14478
14479         * object.c: setting the new vtable in a transparent proxy object must
14480         not change the GC descriptor.
14481
14482 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
14483
14484         * object.c: fixed compilation without GCJ support.
14485         * reflection.c: for runtime-created types ensure klass->has_references
14486         is correct (bug #73215).
14487
14488 2005-03-02  Martin Baulig  <martin@ximian.com>
14489
14490         * class.c (mono_class_is_assignable_from): Make this work if
14491         `oklass' is a generic instance; fixes #72831.
14492
14493 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
14494
14495         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
14496         with hasthis set.
14497         
14498         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
14499
14500         * marshal.c: Reorganize native->managed marshalling code to also use
14501         the emit_marshal_... functions.
14502
14503 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
14504
14505         * object.c: typed allocs have issues with bitmap sizes > 30,
14506         so check for max_set >= 30.
14507
14508 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
14509
14510         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
14511         managed code. Fixes #73012.
14512
14513         * metadata.h (MonoMarshalSpec): Add elem_mult field.
14514
14515         * metadata.c reflection.c: Load/Emit elem_mult as well.
14516         
14517         * metadata.h (MonoMarshalSpec): Add comment.
14518
14519         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
14520
14521         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
14522         num_elem to -1 if not given.
14523
14524         * object-internals.h (MonoReflectionMarshal): Add has_size field.
14525
14526         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
14527         given values.
14528
14529 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
14530
14531         * null-gc.c (mono_gc_free_fixed): Was not compilable.
14532
14533 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
14534
14535         * reflection.c (encode_marshal_blob): Encode param_num field as well.
14536
14537         * object-internals.h (MonoReflectionMarshal): Add param_num field.
14538
14539 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
14540
14541         * object.c: generalized the reference bitmap creation
14542         and added hooks for the new GC.
14543         * class-internals.c: removed the gc_bitmap field from MonoClass.
14544
14545 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
14546
14547         * domain.c: help the compiler to produce better code
14548         in mono_jit_info_table_find ().
14549
14550 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
14551
14552         * object.c: make all allocations look typed.
14553
14554 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
14555
14556         * socket-io.c: load Mono.Posix if it's not loaded already
14557         (fixes bug#73033).
14558
14559 2005-02-24  Martin Baulig  <martin@ximian.com>
14560
14561         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
14562         * reflection.c (dup_type): Likewise.
14563
14564 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
14565
14566         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
14567         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
14568
14569 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
14570
14571         * domain.c, threads.c, object-internals.h: make the critical thread
14572         local vars use the fast access mode (even when we're compiled in
14573         a lib). Provide accessors to be used by the jit during codegen.
14574
14575 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14576
14577         * appdomain.c: Changed hook functios behavior to include
14578         support for the reflection only assemblies. Some icalls were changed
14579         to support the mentioned assemblies too. Signatures of static methods
14580         try_assembly_resolve and real_load now have an additional parameter:
14581         refonly.
14582
14583         * assembly.c: General changes to mono_assembly_ methods to support
14584         reflection only api. Functions mono_assembly_open, mono_assembly_load,
14585         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
14586         suffix, to support an additional gbool parameter to specify whether
14587         the assembli is reflection only or not. Created some new hook functions 
14588         to add support for reflection only assemblies. Signatures of static 
14589         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
14590         have now an additional parameter: refonly.
14591
14592         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
14593         indicating whether the assembly is reflection only or not.
14594
14595         * exception.c: Add mono_get_exception_invalid_operation.
14596
14597         * icall.c: Throw an InvalidOperationException when trying to invoke
14598         a property/method/event, or trying to set/get the value of a field.
14599         Also add an icall to retrieve the ref_only flag to the
14600         MonoReflectionAssembly.
14601
14602 2005-02-23  Chris Toshok  <toshok@ximian.com>
14603
14604         Part of fix for #72827.
14605         * mono-debug.c (mono_debug_add_method): add lexical block data to
14606         the info we write.  Kind of a hack at the moment - we copy the
14607         lexical block info from the MonoDebugMethodInfo to the
14608         MonoDebugMethodJitInfo here, before writing it.
14609         (mono_debug_read_method): read the lexical block info.
14610
14611         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
14612
14613         * debug-mono-symfile.h: add lexical block support.
14614
14615         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
14616         support.
14617
14618 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
14619
14620         * loader.c (mono_lookup_pinvoke_call): Fix warning.
14621
14622         * object.c (mono_runtime_free_method): Call mono_free_method () and
14623         put the TODOs there.
14624
14625         * loader.c (mono_free_method): Free up most memory allocated for 
14626         dynamic methods.
14627
14628 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
14629
14630         * reflection.c: properly flag a Type argument to a
14631         named custom attr value (bug #72248).
14632
14633 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
14634
14635         * reflection.c: reduce code duplication in named custom
14636         attribute encoding.
14637
14638 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
14639
14640         * reflection.c: properly encode custom attrs of type object
14641         (bug #72649).
14642
14643 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
14644
14645         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
14646
14647 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
14648
14649         * socket-io.c: load System.dll if it's not loaded already
14650         (bug #72850 and #70477).
14651
14652 2005-02-21  Martin Baulig  <martin@ximian.com>
14653
14654         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
14655         generic instances.
14656
14657 2005-02-21  Martin Baulig  <martin@ximian.com>
14658
14659         * reflection.c (mono_image_build_metadata): We also need to
14660         "fixup" the MethodImpl table after we computed the final method
14661         indices.  Call fixup_methodimpl() to do that.
14662         (fixup_methodimpl): New private method.
14663
14664 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
14665
14666         * assembly.c: special case mscorlib.dll (bug#72536),
14667         patch from Carlos Alberto Cortez.
14668
14669 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
14670
14671         * threads-types.h threads.c: Fix build bustage.
14672
14673         * threads.c: Use a union for long<->double conversions.
14674
14675         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
14676         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
14677
14678         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
14679         containing the checkpoint call with NOT_TAKEN.
14680         
14681         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
14682         checkpoint before pushing the arguments, so they won't have to be
14683         spilled to stack.
14684
14685 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
14686
14687         * domain.c, assembly.c, domain-internals.h: make some data
14688         const and relocation-free.
14689
14690 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
14691
14692         * object.c, appdomain.c, class-internals.h: introduce the
14693         MonoClassRuntimeInfo structure to hold the info needed to
14694         use a class at runtime. Made mono_class_vtable() lock-free
14695         for all the appdomains.
14696
14697 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
14698
14699         * metadata-internals.h, image.c: introduce a per-image mempool to
14700         be used for memory that has the same lifetime as the image.
14701
14702 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
14703
14704         * domain.c: In mono_init_internal(), instead of selecting the first
14705         runtime version supported by an executable, get a list of all
14706         supported versions and select the one for which an mscorlib exists
14707         (since even if the runtime supports a given version, it doesn't mean
14708         that the framework for that version is installed).
14709         Modified get_runtimes_from_exe to support this behavior.
14710         In supported_runtimes, added information about additional system
14711         assembly versions.
14712         
14713         * assembly.c: Added support for more than one system assembly version
14714         per runtime version. Updated the assembly list.
14715         In mono_assembly_remap_version, removed the initial version check,
14716         since we don't know to which version we need to compare until we
14717         get the version set on which the assembly is based.
14718         Moved the code for loading corlib into the new method
14719         mono_assembly_load_corlib(), so it can be used by the initialization
14720         code.
14721         
14722         * domain-internals.h: Updated data structures and added declaration
14723         for mono_assembly_load_corlib.
14724
14725 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
14726
14727         * reflection.c (resolve_object): Fix the creation of the signature in 
14728         the SignatureHelper case.
14729
14730         * assembly.c (mono_assembly_remap_version): Fix binary search.
14731         
14732 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
14733  
14734         * class.c: Added inheritance check when a method is overloaded (from a
14735         virtual method or when implementing an interface) and when a class is
14736         inherited. Added functions to set a failure for a class and to 
14737         retreive the exception from a failure.
14738         * class-internals.h: Added fields to MonoClass to keep the exception
14739         information status for inheritance (or other exceptions) to be thrown
14740         later (i.e. not at load time).
14741         * object.c: Throw the inheritance SecurityException when a type is to 
14742         be created with either class or method inheritance violations.
14743         * reflection.c|h: Fix when getting declsec from a class. Removed 
14744         unrequired code for class. Improved sanity in parameter naming.
14745         * security-manager.c|h: Added functions to check for class and method
14746         inheritance.
14747
14748 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
14749
14750         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
14751         and has_finalize in dynamic types as well.
14752
14753 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
14754
14755         * culture-info-table.h : fixed currency format for en-GB (and so on).
14756
14757 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
14758
14759         * gc.c: ensure the GC handles never have 0 as a value.
14760
14761 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
14762
14763         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
14764         a pointer to a struct to unmanaged code. Fixes #72625.
14765
14766 2005-02-16  Martin Baulig  <martin@ximian.com>
14767
14768         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
14769
14770 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
14771
14772         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
14773
14774 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
14775
14776         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
14777
14778         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
14779         UnmanagedFunctionPointerAttribute, use it for determining calling convention
14780         etc. Fixes #71471.
14781
14782         * reflection.c (mono_custom_attrs_get_attr): New helper function.
14783
14784         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
14785
14786 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
14787
14788         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
14789         changes to make the current context a field in MonoThread.
14790
14791 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
14792
14793         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
14794         the last change.
14795         
14796         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
14797         extracted from mono_marshal_get_native_wrapper.
14798
14799         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
14800         to create wrappers around native functions.
14801
14802         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
14803         delegates for arbitrary function pointers. Fixes #71472.
14804
14805 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
14806
14807         * threads.c: cleaned up the code a little.
14808
14809 2005-02-15  Martin Baulig  <martin@ximian.com>
14810
14811         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
14812         the data table.
14813
14814         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
14815         allocate larger chunks if needed.
14816
14817 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
14818
14819         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
14820         in by mistake.
14821
14822 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
14823
14824         * domain.c: keep the domains in an array and ensure the domain ids
14825         are kept small, so they can be used as indexes to domain-specific data
14826         with a small memory overhead.
14827
14828 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
14829
14830         * icall.c: Handle byref types in Type icalls. Fixes #72544.
14831
14832 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
14833
14834         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
14835
14836 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
14837
14838         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
14839
14840         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
14841         values.
14842
14843         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
14844         
14845 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
14846
14847         * domain-internals.h: add the hashtable here.
14848
14849         * class-internals.h: Remove `info' from MonoMethod
14850
14851         * domain.c: Add a new hashtable, jit_trampoline_hash
14852
14853 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
14854
14855         * object.c: don't set the value of static fields
14856         (fixes bug#72494).
14857
14858 2005-02-11  Martin Baulig  <martin@ximian.com>
14859
14860         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
14861         (mono_debug_add_method): Silently ignore the method if it's too big.
14862         (mono_debug_add_type): Likewise.
14863
14864 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
14865
14866         * threads.c, appdomain.c: remove #ifdefs from the code.
14867
14868 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
14869
14870         * metadata-internals.h: Added flags to MonoAssembly to cache the most
14871         common security informations. This allows us to stay in unmanaged code
14872         when doing LinkDemand and it's special cases (except for the first 
14873         time for initialization). The flags a very much used with --security.
14874         * reflection.c|h: Added code to get declarative security attributes 
14875         for LinkDemand and InheritanceDemand. This required to refactor the
14876         existing code for Demand.
14877         * security-manager.c|h: Added new method fields for the special cases
14878         of LinkDemand.
14879
14880 2005-02-10  Martin Baulig  <martin@ximian.com>
14881
14882         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
14883         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
14884
14885 2005-02-10  Martin Baulig  <martin@ximian.com>
14886
14887         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
14888         debugging code; this is almost a complete rewrite.
14889
14890         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
14891
14892 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
14893
14894         * domain.c, object.h: expose mono_string_equal () and 
14895         mono_string_hash ().
14896         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
14897         it's implemented in managed code.
14898
14899 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
14900
14901         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
14902         lo leak objects between appdomains.
14903
14904 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
14905
14906         * assembly.c: old compilers compilation fix from 
14907         robertj@gmx.net (Robert Jordan).
14908
14909 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
14910
14911         * class-internals.h: Little reminder for the future.
14912
14913         * debug-helpers.c: Fix up wrapper_type_names
14914
14915 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
14916
14917         * image.c, metadata-internals.h: when loading an image from a file,
14918         mmap all of it and use the same codepaths as when using a
14919         in-memory image: the code is simpler and we use less memory
14920         (both writable and readonly).
14921
14922 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
14923
14924         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
14925         API to alloc runtime data structures that need to be tracked by the
14926         GC and contain pointers.
14927         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
14928         make the code more readable and eventually use a different GC.
14929
14930 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
14931
14932         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
14933         for out arguments.
14934         
14935 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
14936
14937         * object.c: In release_type_locks(), don't release the cctor lock
14938         if it has already been released. This fixes a crash in the
14939         thread5 test.
14940
14941 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
14942
14943         * gc.c, marshal.c, icall.c: register a delegate for finalization
14944         only when the native function pointer has been allocated for it.
14945
14946 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
14947
14948         * object.c: cleaned up some code, allocate objects that are
14949         pointer free with the atomic malloc variant. Allocate memory
14950         for static data from the mempool if it's pointer-free.
14951         Allocate the bounds array at the end of the array data, when needed.
14952         * object-internals.h, object.h: move a private function in a private
14953         header.
14954         * class.c: handle missing case in tracking references in fields.
14955
14956 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
14957
14958         * class.c, class-internals.h: keep track if a type has
14959         reference fields in either the instance or static fields.
14960
14961 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
14962
14963         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
14964         and renamed to MonoRuntimeInfo. Added fields to store the expected
14965         framework assembly version. Changed mono_get_framework_version and
14966         mono_get_runtime_version for a single mono_get_runtime_info method.
14967         
14968         * assembly.c: Added method to remap system assembly versions to the
14969         current executing runtime version. Removed old mapping code.
14970         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
14971         
14972         * icall.c, reflection.c: Track api changes.
14973
14974 2005-02-06  Miguel de Icaza  <miguel@novell.com>
14975
14976         * loader.c (method_from_memberref): Improve error reporting,
14977         produce the class name instead of the typeref/typedef index. 
14978
14979 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
14980
14981         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
14982
14983 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
14984
14985         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
14986         stdcall and charset name mangling.  Reorganize the code and add
14987         some tracing stuff.
14988
14989 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
14990
14991         * monodiet.c: More iters!
14992
14993         * marshal.c: Iter usage.
14994
14995         * icall.c: Iter usage.
14996
14997         * object.c: Use iters.
14998
14999         * debug-helpers.c: More iters
15000
15001 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
15002
15003         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
15004         under win32.
15005
15006 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
15007
15008         * mono-debug-debugger.c: use iters
15009
15010         * class.c, class-internals.h: mono_class_setup_events is static
15011         now
15012
15013         * All callers: use iters
15014
15015 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
15016
15017         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
15018         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
15019
15020 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
15021
15022         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
15023
15024         * marshal.h: Add prototypes for ldfld/stfld_remote.
15025
15026         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
15027         this is called during startup.
15028         
15029 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
15030
15031         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
15032         MonoThreadsSync struct private in monitor.c. Changed the way
15033         MonoThreadsSync is allocated so it's faster and there is no
15034         need to keep track of it with a finalizer and it uses less memory.
15035         This also finally allows us to allocate mono objects as ptrfree when
15036         there are no reference fields.
15037
15038 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
15039
15040         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
15041         disappearing link to the GC interface and use them to simplify
15042         the gchandles code.
15043
15044 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
15045
15046         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
15047         stfld_remote which call mono_load/store_field_new. This allows methods
15048         calling ldfld/stfld wrappers to be AOTed.
15049
15050         * console-io.c: Include sys/filio.h under solaris.
15051         
15052         * console-io.c: Include curses.h if needed correctly.
15053
15054 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
15055         
15056         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
15057         method->klass as well.
15058
15059         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
15060
15061         * class.c (mono_class_init): Switch on lazy initialization of 
15062         methods.
15063
15064         * class.c (mono_class_get_finalizer): Handle the case when the 
15065         finalizer is inherited.
15066
15067 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15068
15069         * console-io.c: <curses.h> is needed by term.h on solaris.
15070
15071 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
15072
15073         * icall.c, class-internals.h, monodiet.c, class.c: Remove
15074         mono_class_setup_properties where possible. Remove this ftn from
15075         the header file, and make it static.
15076
15077 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
15078
15079         * loader.c: Add missing setup_... call.
15080
15081         * class.c: Add missing setup_... calls.
15082
15083         * class.c (mono_class_init): Switch on lazy initialization of 
15084         the generic vtable.
15085         
15086         * class.c (mono_class_init): Fix generics broken by the recent changes.
15087
15088         * monodiet.c (handle_type): Add missing setup_... calls.
15089
15090         * class.c: Back out garbage in previous patch.
15091         
15092         * class.c: Add missing setup_... calls.
15093
15094         * class.c (mono_class_get_method_from_name_flags): Avoid calling
15095         mono_class_setup_methods () if possible.
15096
15097         * class-internals.h (MonoClass): Add 'has_cctor' flag.
15098
15099         * class-internals.h (MonoCachedClassInfo): New structure.
15100
15101         * class.c: Initialize properties and events fields of MonoClass lazily.
15102
15103         * class.c: Add infrastructure for lazily initializing the methods and
15104         vtable fields of MonoClass. Not yet used.
15105
15106         * class.c (mono_class_get_finalizer): New helper function.
15107
15108         * class.c: Add infrastructure for loading some class related data from
15109         an AOT file.
15110
15111         * object.c: Add infrastructure for initializing the vtable from data
15112         in the AOT file.
15113
15114         * gc.c (run_finalize): Use mono_class_get_finalizer ().
15115
15116         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
15117         appropriate initialization function before accessing parts of the
15118         MonoClass structure.
15119
15120         * marshal.c: Fix warnings.
15121         
15122         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
15123
15124         * mono-debug-debugger.c (get_exception_message): Use 
15125         mono_class_get_method_from_name_flags ().
15126
15127 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
15128
15129         * reflection.c, appdomain.c: Replace a few manual searches that
15130         Zoltan missed. (Paolo approved this part of my initial patch).
15131
15132 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
15133
15134         * profiler.c: disable recording statistical events at report time.
15135
15136 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
15137
15138         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
15139         to byteswap arrays of enum values, too (bug #72080).
15140
15141 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
15142
15143         * appdomain.c (set_domain_search_path): Allow this to be called if
15144         domain->setup is not yet set.
15145
15146         * loader.c (mono_method_get_index): New helper function.
15147
15148         * loader.c reflection.c: Use mono_method_get_index ().
15149
15150         * class.c (mono_class_get_method_from_name_flags): New helper method.
15151
15152         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
15153         this.
15154
15155         * class.c (mono_class_get_cctor): New helper method.
15156
15157         * string-icalls.c object.c class.c marshal.c reflection.c: Use
15158         mono_class_get_method () to look up methods.
15159
15160 2005-02-01  Miguel de Icaza  <miguel@novell.com>
15161
15162         * console-io.c: Fix the build, this should work on Windows.
15163
15164 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
15165
15166         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
15167         be set to null to keep things valid
15168
15169 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15170
15171         * icall.c: added Console 2.0 icalls.
15172         * Makefile.am: added console-io.[ch]
15173         * console-io.[ch]: internal calls for Console 2.0 API.
15174
15175 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
15176
15177         * class.c: make sure we consider all the interfaces
15178         when calculating max_interface_id (bug found by
15179         Jeroen Frijters running ikvm).
15180
15181 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
15182
15183         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
15184         valuetype fields to null.
15185
15186         * object.c (set_value): Ditto. Fixes #71669.    
15187
15188 2005-01-31  Martin Baulig  <martin@ximian.com>
15189
15190         * metadata.c (mono_metadata_has_generic_params): New public
15191         function; checks whether something is a generic method.
15192
15193 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
15194
15195         * appdomain.c: fix infinite recursion when adding assemblies.
15196
15197 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
15198
15199         * object.c: Fix small typo to return all items for Environment.
15200         GetCommandLineArgs.
15201
15202 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
15203
15204         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
15205         reflection.c: more domain and assembly-unload related fixes
15206         and memory leaks plugs.
15207
15208 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
15209
15210         * 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.
15211
15212 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
15213
15214         * loader.c (mono_method_signature): Make this method lazy
15215         (mono_get_method_from_token): Don't computate the signature here.
15216
15217         Doing this saves quite a bit of memory. I got 90 kb on starting up
15218         monodoc. It should also save some disk reads on startup.
15219
15220         * *: MonoMethod->signature might be NULL now. You *MUST* use
15221         mono_method_signature.
15222
15223 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
15224
15225         * object.c (mono_runtime_get_main_args): Return an array from the
15226         current domain here. Fixes #71938.
15227
15228 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
15229
15230         * monitor.c: formatting changes to comply with the
15231         mono coding style and remove #ifdefs from the code.
15232
15233 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
15234
15235         * metadata.c, private.h: remove some unneeded data
15236         and use a more compact representation for table schemas.
15237
15238 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
15239
15240         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
15241         to get a better distribution in hash tables.
15242         * *.c: use mono_aligned_addr_hash() where appropriate.
15243         * assembly.c: make var static.
15244
15245 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
15246
15247         * domain-internals.h: Put MonoJitInfo on a diet.
15248
15249         * domain.c: Fix a warning.
15250
15251 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
15252
15253         * gc.c: rework the gc handles code to reuse handles
15254         when freed.
15255
15256 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
15257
15258         * domain.c: fixed long standing bug in mono_string_equal() which
15259         was brought to light with the ldstr changes.
15260
15261 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
15262
15263         * reflection.c: Remove warning by adding missing include for marshal.h
15264
15265 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
15266
15267         * domain.c, object.c: change the ldstr_table to hold
15268         MonoString* as keys: makes the runtime isinterned lookup
15269         faster and simplifies memory management.
15270
15271 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
15272  
15273         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
15274         possible to add imperative security checks before calling the icall.
15275         * reflection.c: Return security attributes on the original MonoMethod
15276         (and not the wrapped one). This fix permissions on icalls.
15277
15278 2005-01-25  Dick Porter  <dick@ximian.com>
15279
15280         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
15281         the check for mktime() support actually test the mktime() return
15282         value.  "Fixes" bug 71682, though the output is still different to
15283         MS.
15284
15285 2005-01-25  Martin Baulig  <martin@ximian.com>
15286
15287         * class.c (mono_class_is_assignable_from): Make this work for
15288         generic instances.
15289
15290 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
15291
15292         * marshal.c (mono_string_utf8_to_builder)
15293         (mono_string_builder_to_utf16): We might not have ownership of the
15294         string. In thise case, we need to create a new buffer.
15295
15296         * object-internals.h (mono_stringbuilder_capacity): sb->str might
15297         be null, in which case, use the default capacity.
15298
15299 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
15300
15301         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
15302         GC events to the profiler.
15303
15304 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
15305
15306         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
15307         if you don't want the GC to run.
15308
15309 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
15310
15311         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
15312         start providing a GC API and keeping different implementations in
15313         their own file.
15314         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
15315
15316 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
15317
15318         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
15319         mmap rather than allocating a huge buffer.
15320         (mono_debug_close_mono_symbol_file): Free the buffer allocated
15321         above.
15322
15323 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
15324
15325         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
15326         and CheckExecutionRights.
15327         * reflection.c|h: Keep the index of the declarative security to be 
15328         used, instead of the pointer, when AOT compiler is used. Also add 
15329         class initialization when requesting demands.
15330         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
15331         CheckExecutionRights. Both properties are now FALSE by default, and
15332         unmodifiable, unless the --security option is used.
15333
15334 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
15335
15336         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
15337         reflection.c: properly refcount images and assemblies, many leaks fixed.
15338
15339 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15340
15341         * threadpool.c: increase the timeout for threads in the thread pool to
15342         10s.  Fixes bug #67159.
15343
15344 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
15345
15346         * class-internals.h: Sun's compiler insists on explicit
15347         signed on bit fields to handle then correctly.
15348
15349 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
15350
15351         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
15352         Make the size of the array fit only the number of invalid path
15353         chars that we have.
15354
15355         * class.c (_mono_class_get): Improve the error reporting when a
15356         class referenced is not found, to assist debugging. 
15357
15358 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
15359
15360         * threads.c: fix off-by-one error.
15361         * domain.c: free data allocated in the domain.
15362
15363 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
15364
15365         * reflection.c (mono_method_body_get_object): Fill out exception info
15366         as well.
15367
15368         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
15369         structure.
15370         
15371 2005-01-19  Martin Baulig  <martin@ximian.com>
15372
15373         * loader.c (mono_get_method_constrained): Make this work again.
15374
15375 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
15376
15377         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
15378         guint16 to match the managed side.
15379
15380         * reflection.c (mono_reflection_body_get_object): Fill out local
15381         variables array.
15382
15383         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
15384         as well.
15385
15386         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
15387         'local_var_sig_token'.
15388
15389 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
15390
15391         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
15392         System.Drawing.
15393
15394         * reflection.c (mono_method_body_get_object): Handle abstract and
15395         runtime methods.
15396
15397 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
15398
15399         * marshal.c, loader.c, class-internals.h, reflection.c:
15400         store the emthod data for a wrapper in an array instead of a list.
15401
15402 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
15403
15404         * marshal.c: change the code to allocate memory more
15405         conservatively for method wrappers.
15406
15407 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
15408
15409         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
15410         fields from MonoClass to the marshal info structure where they belong.
15411
15412 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
15413
15414         * class.c, object.c, class-internals.h, marshal.c: rearrange
15415         some fields and tweak some types to lower memory usage.
15416
15417 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
15418
15419         * threads.c (signal_thread_state_change): Handle the case when the
15420         target thread is the current thread.
15421
15422         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
15423
15424         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
15425         emit_ptr_to_object_conv. 
15426
15427         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
15428         marshalling. Fixes #71352.
15429
15430 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
15431
15432         * metadata.h, blob.h: move table enum to blob.h so it can be included
15433         in any header.
15434         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
15435         cut the size of MonoImage/MonoDynamicImage.
15436
15437 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
15438
15439         * profiler.c (mono_profiler_install_simple): Fix default arguments.
15440
15441 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
15442
15443         * reflection.c, reflection.h, icall.c: add a function to check
15444         if an attribute type is defined for a metadata object.
15445
15446 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
15447
15448         * object-internals.h: Added some needed fields from StringBuilder class.
15449         * marshal.c: Set the maxCapacity when creating a StringBuilder.
15450
15451 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
15452
15453         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
15454         threads before shutting down the runtime.
15455
15456         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
15457
15458 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
15459
15460         * object-internal.h, threads.c: implement stacksize and 
15461         parameterized thread start functionality (requires
15462         matching corlib). Marked broken code for later removal.
15463
15464 2005-01-12  Martin Baulig  <martin@ximian.com>
15465
15466         * class-internals.h (MonoGenericClass): Moved the `initialized'
15467         flag to MonoDynamicGenericClass, removed `init_pending'.
15468         (MonoGenericInst): Added `is_reference' flag.
15469
15470 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
15471
15472         * reflection.c (mono_image_create_pefile): Only set the pe_offset
15473         inside the MSDOS header. Fixes #71201.
15474
15475         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
15476         gc thread.
15477         (mono_domain_finalize): Ditto.
15478
15479 2005-01-12  Martin Baulig  <martin@ximian.com>
15480
15481         * class.c (mono_get_shared_generic_class): Use the cache for
15482         non-dynamic generic classes.
15483
15484         * class-internals.h (mono_class_create_generic_2): Removed
15485         function prototype, this function is now static inside class.c.
15486
15487         * class.c (mono_class_create_generic_2): Made this static, only
15488         call it from mono_class_init() and mono_class_setup_parent().
15489         (collect_implemented_interfaces_aux): Call mono_class_init() on
15490         the interfaces we collect.
15491         (mono_class_setup_vtable): Call mono_class_init (class->parent).
15492
15493 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
15494
15495         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
15496         it a real thread handle.
15497
15498         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
15499         MonoJitExceptionInfo, since each catch clause needs its own variable.
15500         
15501 2005-01-11  Dick Porter  <dick@ximian.com>
15502
15503         * image.c (mono_pe_file_open): New variant on mono_image_open()
15504         that does not set up the CLI metadata; used for FileVersionInfo so
15505         it can get the data for windows binaries too.
15506         
15507         * process.c (process_read_string_block): Don't read off the end of
15508         the StringTable block.
15509
15510         These both fix bug 70766.
15511
15512 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
15513
15514         * gc.c: set some fields to NULL at GC cleanup time.
15515         * threads.c: if we quit the main thread, call exit ().
15516
15517 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
15518
15519         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
15520
15521 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
15522
15523         * threads.h, threads.c, object.c: added accessor and settor for
15524         main_thread. Handle it specially when exiting from it: wait
15525         for other foreground threads to exit.
15526
15527 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
15528
15529         * process.c, verify.c: remove some bloat.
15530
15531 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
15532
15533         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
15534         the calling convention to cdecl under win32.
15535
15536 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
15537
15538         * object.c (mono_object_get_size): New function to get the size of
15539         an object instance.
15540
15541         * profiler.c (simple_allocation): Use above.
15542
15543 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
15544
15545         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
15546         ves_icall_System_AppDomain_getRootDomain (as it's not required to
15547         get an appdomain by it's id and we can't assume the root's id is 0).
15548         * domain-internals.h: Change the function prototype to match.
15549         * icall.c: Change the icall table for AppDomain.
15550
15551 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
15552
15553         * locales.c (string_invariant_compare_char): Only compute
15554         GUnicodeTypes in the case where we need them.  Test for ordinality
15555         first and return if so.
15556
15557         From the commit:
15558
15559                 /*
15560                  * FIXME: here we must use the information from c1type and c2type
15561                  * to find out the proper collation, even on the InvariantCulture, the
15562                  * sorting is not done by computing the unicode values, but their
15563                  * actual sort order.
15564                  */
15565
15566 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
15567
15568         * loader.c: for P/Invoke methods, allow the "Internal" shared
15569         library name to refer to the calling process symbol namespace.
15570
15571 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
15572
15573         * Makefile.am: Add the security manager to the build.
15574         * security-manager.c|h: New. Initialization of the security manager.
15575
15576 2005-01-07  Dick Porter  <dick@ximian.com>
15577
15578         * threads.c: 
15579         * monitor.c: Update thread state during Monitor and WaitHandle
15580         waits.  Fixes bug 71031.
15581
15582 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
15583
15584         * reflection.c (property_encode_signature): Correctly handle when the
15585         property has no methods.
15586
15587 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
15588
15589         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
15590         
15591         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
15592         fields from mb, not rmb. Fixes #71017.
15593
15594         * marshal.c (emit_ptr_to_str_conv): Add support for 
15595         ByValTStr -> string conversion. Fixes #71015.
15596
15597         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
15598
15599         * mempool.c (mono_mempool_contains_addr): New helper function.
15600
15601 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
15602
15603         * metadata.c (mono_metadata_compute_size): Fix size calculation of
15604         HasSematics encoded fields.
15605         
15606         * metadata.c (mono_type_to_unmanaged): Improve error message for 
15607         invalid string marshalling.
15608
15609         * metadata.c: Fix warnings.
15610         
15611 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
15612
15613         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
15614         profiler support.
15615
15616 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
15617
15618         * domain.c object.c domain-internals.h: Revert part of r38077 since the
15619         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
15620         tests.
15621
15622 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
15623
15624         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
15625         so methods containing these can be AOTed.
15626
15627 2005-01-03  Martin Baulig  <martin@ximian.com>
15628
15629         * loader.c (find_method): Removed the hack for generic instances.
15630         (method_from_memberref): If our parent is a generic instance, pass
15631         its generic type definition to find_method() and then inflate the
15632         method.
15633         (mono_get_method_constrained): Pass the generic type definition to
15634         find_method() and inflate the method later.
15635
15636         * class-internals.h (MonoStats): Added `generic_class_count'.
15637
15638         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
15639         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
15640
15641         * reflection.c (mono_custom_attrs_from_params): Don't ignore
15642         generic type definitions.
15643
15644 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
15645
15646         * loader.c icall.c: Fix warnings.
15647
15648 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
15649
15650         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
15651         blittable types. Fixes #70864.
15652
15653 2004-12-29  Martin Baulig  <martin@ximian.com>
15654
15655         * icall.c
15656         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
15657
15658         * reflection.c (mono_method_get_object): Create a
15659         "System.Reflection.MonoGenericMethod" for inflated methods; don't
15660         call mono_get_inflated_method().
15661
15662         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
15663
15664 2004-12-27  Martin Baulig  <martin@ximian.com>
15665
15666         * class-internals.h (MonoMethod): Added `is_inflated' flag.
15667         (MonoMethodInflated): Added `inflated' field.
15668
15669         * class.c (mono_class_inflate_generic_method): Don't really
15670         inflate the method here; just set the `is_inflated' flag in the
15671         MonoMethod.
15672         (mono_class_get_inflated_method): Actually inflate the method here
15673         if it's not already inflated; we use the MonoMethodInflated's new
15674         `inflated' field as a cache.
15675
15676 2004-12-26  Martin Baulig  <martin@ximian.com>
15677
15678         * class.c
15679         (inflate_generic_class): Moved some code out of inflate_generic_type().
15680         (mono_class_inflate_generic_method): If we're already inflated,
15681         inflate the context and use the declaring method; ie. make sure
15682         the declaring method of an inflated method is always the generic
15683         method definition.
15684         (mono_class_create_from_typedef): Create
15685         `class->generic_container->context->gclass'.
15686
15687 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
15688
15689         * metadata-internals.h, marshal.c, reflection.c: More
15690         MonoGHashTable->GHashTable.
15691
15692         * domain-internals.h, class.c: Change MonoGHashTable's into
15693         GHashTables for some cases where no gc stuff is used
15694
15695         All users: update apis
15696
15697 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
15698
15699         * metadata.c (builtin_types): Make this `const'. Makes this get
15700         put into the shareable section.
15701         (mono_metadata_init): Casts to make gcc happy.
15702
15703 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
15704
15705         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
15706
15707 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
15708
15709         * icall.c: Added an internal call to retrieve the position and length
15710         of assembly-level declarative security attributes (RequestMinimum, 
15711         RequestOptional and RequestRefuse). This is used by the Assembly class
15712         to re-create the corresponding permission sets.
15713
15714 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
15715
15716         * marshal.c: fix the stelemref wrapper to be type correct
15717         (and faster).
15718
15719 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
15720
15721         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
15722         to do key & 0x7fffffff. Hashtable already does this. It just
15723         results in longer code.
15724
15725 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
15726
15727         * appdomain.c: Bump corlib version.
15728         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
15729         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
15730         * reflection.c|h: Add functions to get declarative security infos
15731         (blob position and length) for assemblies, classes and methods.
15732
15733 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
15734
15735         * reflection.c: sort the constant table (bug #70693).
15736
15737 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
15738
15739         * object-internals.h, threads.c, domain.c: add accessors for
15740         the MonoThread and MonoDomain tls keys.
15741
15742 2004-12-18  Martin Baulig  <martin@ximian.com>
15743
15744         * class.c (inflate_generic_type): If we're inflating a generic
15745         instance, set `ngclass->context->container = context->container';
15746         ie. the container we inflated into.
15747
15748         * metadata.c (mono_metadata_parse_generic_param): Reflect above
15749         inflate_generic_type() changes.
15750
15751 2004-12-17  Martin Baulig  <martin@ximian.com>
15752
15753         * class-internals.h
15754         (MonoGenericClass): Replaced `MonoType *generic_type' with
15755         `MonoClass *generic_class'.  Removed `dynamic_info'; if
15756         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
15757         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
15758
15759 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
15760
15761         * exception.c (mono_exception_from_token): New helper function.
15762
15763 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
15764
15765         * assembly.c (mono_assembly_load_with_partial_name): Call 
15766         mono_assembly_loaded before invoking the preload hooks. Fixes
15767         #70564.
15768
15769         * object-internals.h (MonoThread): Change culture_info and 
15770         ui_culture_info into an array.
15771
15772         * threads.c: Cache culture info objects from more than one appdomain.
15773
15774         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
15775         current UI culture.
15776
15777 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
15778
15779         * threads.h threads.c appdomain.c: Clear the culture_info field of
15780         all threads during unloading if they point to an object in the dying
15781         appdomain.
15782
15783 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
15784
15785         * culture-info.h (TextInfoEntry): New struct
15786         * object-internals.h: sync with managed
15787         * locales.c: fill the `text_info_data' field
15788         * culture-info-tables.h: update
15789
15790 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
15791
15792         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
15793         collector.
15794
15795 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
15796
15797         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
15798         (ves_icall_ModuleBuilder_getMethodToken): Ditto
15799
15800 2004-12-12  Martin Baulig  <martin@ximian.com>
15801
15802         * mono-debug-debugger.c (write_type): If we're an enum and the
15803         builtin types have already been initialized, call mono_class_init().
15804
15805 2004-12-11  Martin Baulig  <martin@ximian.com>
15806
15807         * metadata.c (mono_metadata_load_generic_params): Added
15808         `MonoGenericContainer *parent_container' argument; automatically
15809         compute `container->is_method'; pass the correct owner to
15810         get_constraints().      
15811
15812         * reflection.c (compare_genericparam): Sort the GenericParam table
15813         according to increasing owners. 
15814
15815 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
15816
15817         * profiler.c: allow disabling the default profiler.
15818
15819 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
15820
15821         * decimal.c, icall.c: allow disabling System.Decimal support.
15822
15823 2004-12-09  Marek Safar <marek.safar@seznam.cz>
15824
15825         * reflection.c: Add support for null attribute arguments.
15826
15827 2004-12-09  Martin Baulig  <martin@ximian.com>
15828
15829         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
15830         names to get rid of compiler warnings.
15831
15832 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
15833
15834         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
15835         mono_marshal_load_type_info (). Fixes #69625.
15836         (mono_marshal_get_ptr_to_struct): Likewise.
15837
15838 2004-12-08  Martin Baulig  <martin@ximian.com>
15839
15840         * mono-debug.h: Bumped version number to 47.
15841
15842         * mono-debug-debugger.c
15843         (mono_debugger_event_handler, mono_debugger_event): Take two
15844         guint64 arguments insteed of a gpointer and a guint32.  
15845
15846 2004-12-08  Martin Baulig  <martin@ximian.com>
15847
15848         * debug-mono-symfile.h
15849         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
15850         `address' to `native_offset'.
15851
15852 2004-12-08  Martin Baulig  <martin@ximian.com>
15853
15854         * class.c (mono_class_create_from_typespec): Only inflate if we
15855         either have `context->gclass' or `context->gmethod'.
15856
15857 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
15858
15859         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
15860
15861         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
15862
15863         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
15864
15865         * reflection.c (mono_assembly_get_object): Remove the workaround put
15866         in for the release.
15867         
15868         * appdomain.c: Use the corlib_internal field from MonoAssembly.
15869
15870         * appdomain.c: Bump corlib version.
15871
15872         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
15873         be visible in other appdomains.
15874
15875 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
15876
15877         * threads.c: Interlocked inc and dec for longs were messed up,
15878         use a KISS based impl for this. Fixes 70234
15879
15880 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
15881
15882         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
15883
15884 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
15885
15886         * icall.c: fix to follow policy not to allow struct
15887         arguments in icalls.
15888
15889 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15890
15891         * process.c: make the patch that handles spaces in file paths work
15892         on mono/windows too.
15893
15894 2004-12-06  Martin Baulig  <martin@ximian.com>
15895
15896         * class.c (mono_class_create_generic): Call
15897         mono_class_setup_supertypes() if we're dynamic.
15898         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
15899
15900 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
15901
15902         * object-internals.h: Add new fields to MonoThread.
15903
15904         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
15905
15906         * icall.c threads-types.h threads.c: Add new icalls.
15907
15908         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
15909
15910         * object-internals.h (MonoReflectionAssembly): Sync object layout with
15911         managed side.
15912
15913         * appdomain.c: Bump corlib version.
15914
15915         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
15916         internal assemblies. Fixes #69181.
15917
15918 2004-12-05  Martin Baulig  <martin@ximian.com>
15919
15920         * class.c (mono_class_inflate_generic_signature): Make this a
15921         no-op if `context' is NULL or we don't have any type parameters;
15922         also copy `sentinelpos'.        
15923
15924 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
15925
15926         * image.c: Add unbox_wrapper_cache.
15927
15928         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
15929
15930         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
15931         function generator.
15932         
15933         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
15934         Fixes #70173.
15935
15936         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
15937         
15938 2004-12-04  Martin Baulig  <martin@ximian.com>
15939
15940         * loader.c (mono_method_get_signature_full): New public function;
15941         like mono_method_get_signature(), but with an additional
15942         `MonoGenericContext *' argument.
15943
15944         * class.c (mono_class_inflate_generic_signature): Formerly known
15945         as inflate_generic_signature(); make this public.
15946
15947 2004-12-04  Martin Baulig  <martin@ximian.com>
15948
15949         * metadata.c
15950         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
15951         instead of a `MonoGenericContainer *'.  
15952         (mono_metadata_parse_array_full): Likewise.
15953         (mono_metadata_parse_signature_full): Likewise.
15954         (mono_metadata_parse_method_signature_full): Likewise.
15955         (mono_metadata_parse_generic_inst): Likewise.
15956         (mono_metadata_parse_generic_param): Likewise.
15957         (mono_metadata_parse_mh_full): Likewise.
15958         (mono_type_create_from_typespec_full): Likewise.
15959
15960 2004-12-03  Martin Baulig  <martin@ximian.com>
15961
15962         * class-internals.h (MonoGenericContainer): Replaced the
15963         `MonoGenericContext * pointer with a `MonoGenericContext'
15964         structure and made it the first element.
15965
15966 2004-12-03  Martin Baulig  <martin@ximian.com>
15967
15968         * class.c
15969         (inflate_generic_type): Set the `context->container' when creating
15970         a new MonoGenericContext.
15971         (mono_class_inflate_generic_method): Likewise.
15972         (mono_class_create_from_typespec): Just use `context->container'
15973         to get the container.
15974
15975         * loader.c (method_from_methodspec): Set `context->parent' from
15976         `context->container' - and if that's a method container, use its
15977         parent.  Also set the `context->container' when creating a new
15978         MonoGenericContext.
15979         (mono_get_method_from_token): Use just `context->container' to get
15980         the container.
15981
15982         * metadata.c (do_mono_metadata_parse_generic_class): Also set
15983         `gclass->context->container'.
15984
15985         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
15986         the `context->container' when creating a new MonoGenericContext.
15987
15988 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
15989
15990         * reflection.c (compare_genericparam): Sort params with identical
15991         owner by their number. Fixes gen-111 on sparc.
15992
15993 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
15994
15995         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
15996         around the domain changes.
15997
15998         * appdomain.c (mono_domain_unload): Handle the case when the thread
15999         calling Unload is itself being aborted during unloading. Fixes #70022.
16000
16001         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
16002
16003         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
16004         checkpoint_func as an icall so it gets a wrapper.
16005         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
16006         in the cross-appdomain wrappers too.
16007
16008         * threads.c (mono_thread_has_appdomain_ref): Make this public.
16009
16010         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
16011
16012         * reflection.c: Fix some memory leaks.
16013         
16014 2004-12-02  Martin Baulig  <martin@ximian.com>
16015
16016         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
16017
16018         * metadata.c (generic_class_cache): New static hashtable.
16019         (mono_metadata_lookup_generic_class): New public method.
16020
16021 2004-12-02  Martin Baulig  <martin@ximian.com>
16022
16023         * class.c (mono_class_create_from_typedef): Call
16024         mono_class_setup_parent() and mono_class_create_mono_type() before
16025         parsing the interfaces.
16026
16027 2004-12-02  Martin Baulig  <martin@ximian.com>
16028
16029         * metadata.c (generic_inst_cache): New static hashtable.
16030         (mono_metadata_lookup_generic_inst): New public function.
16031         (mono_metadata_inflate_generic_inst): New public function.
16032         (mono_metadata_parse_generic_inst): New public function.
16033         (do_mono_metadata_parse_generic_class): Use the new
16034         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
16035         since this'll also use the cache.
16036
16037         * reflection.c (mono_reflection_bind_generic_method_parameters):
16038         Use mono_metadata_lookup_generic_inst() to use the new cache.
16039
16040         * class.c (inflate_mono_type): Use
16041         mono_metadata_inflate_generic_inst() to inflate a generic
16042         instance; this'll also use the new cache.
16043
16044         * loader.c (method_from_methodspec): Use
16045         mono_metadata_parse_generic_inst() and
16046         mono_metadata_inflate_generic_inst() rather than parsing it
16047         manually, so we can use the new cache.
16048
16049 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
16050
16051         * threads.c (wait_for_tids): Do not incorrectly free threads when 
16052         the wait times out.
16053
16054 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
16055
16056         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
16057         iter->args based on whether parameters are passed in registers (i.e.
16058         MONO_ARCH_REGPARMS is defined)
16059
16060 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
16061
16062         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
16063         the exception message. Fixes #70070.
16064         (method_from_methodspec): Fix warnings.
16065
16066 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16067
16068         * process.c: (complete_path) return the path quoted
16069
16070 2004-12-01  Martin Baulig  <martin@ximian.com>
16071
16072         * class-internals.h (MonoGenericInst): New structure.
16073         (MonoGenericClass): Replaced `type_argc', `type_argv' and
16074         `is_open' with `MonoGenericInst *inst'.
16075         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
16076         `is_open' with `MonoGenericInst *inst'.
16077
16078 2004-11-30  Martin Baulig  <martin@ximian.com>
16079
16080         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
16081
16082         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
16083         to `generic_class_cache'.
16084
16085         * metadata.c
16086         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
16087         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
16088         (mono_generic_inst_is_valuetype): Renamed to
16089         mono_generic_class_is_valuetype().
16090
16091         * class-internals.h
16092         (MonoGenericInst): Renamed to MonoGenericClass.
16093         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
16094         (MonoClass): Renamed `generic_inst' to `generic_class'.
16095         (MonoGenericContext): Renamed `ginst' to `gclass'.
16096
16097         * object-internals.h
16098         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
16099
16100         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
16101         mono_reflection_generic_class_initialize().
16102
16103         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
16104         now known as "System.Reflection.MonoGenericClass".
16105         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
16106
16107 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
16108
16109         * class-internals.h: Added a flag field to MonoClass to cache the
16110         declarative security attributes actions associated with the class.
16111         * domain-internals.h: Added booleans to MonoJitInfo to cache the
16112         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
16113         applicable to the JITted method.
16114         * reflection.c|h: Added functions to extract (as flags) which security
16115         actions are available (declaratively) for a method, class or assembly.
16116         * metadata.c|h: Added functions to search the declarative security
16117         table in the metadata.
16118         
16119 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
16120
16121         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
16122         EXPORTEDTYPES are already in the class name cache, so there is no
16123         need to add extra code here to look at them. Just removes a bit of
16124         cruft.
16125
16126         (ves_icall_System_Environment_get_TickCount): No need for #if
16127         WINDOWS. We already have the code in io-layer.
16128
16129 2004-11-28  Martin Baulig  <martin@ximian.com>
16130
16131         * loader.c
16132         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
16133         Fixes gen-112.cs.
16134
16135 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
16136
16137         * assembly.c (do_mono_assembly_open): Instead of having a
16138         conditional WITH_BUNDLE, incorporate support for bundles here, by
16139         having a global `bundles' variable holding a pointer to the actual
16140         bundles. 
16141
16142         (mono_register_bundled_assemblies): New API call used by the
16143         bundle code. 
16144
16145         See mkbundle.1 for details.
16146         
16147 2004-11-27  Martin Baulig  <martin@ximian.com>
16148
16149         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
16150         the vtable for generic methods.
16151
16152 2004-11-26  Martin Baulig  <martin@ximian.com>
16153
16154         * metadata.c
16155         (mono_metadata_generic_method_hash): New public function.
16156         (mono_metadata_generic_method_equal): Likewise.
16157
16158         * class-internals.h
16159         (MonoGenericContainer): Added `GHashTable *method_hash'.
16160
16161         * reflection.c (ReflectionMethodBuilder): Added
16162         `MonoGenericContainer *generic_container'.
16163         (reflection_methodbuilder_to_mono_method): Don't create a new
16164         MonoGenericContainer each time we're called.
16165         (mono_reflection_bind_generic_method_parameters): Use
16166         `container->method_hash' to cache the results so we don't create a
16167         different method if we're called several times with the same
16168         arguments.
16169
16170         * loader.c (method_from_methodspec): Use the new
16171         `container->method_hash' here, too.
16172
16173 2004-11-26  Martin Baulig  <martin@ximian.com>
16174
16175         * class.c (inflate_generic_signature): Correctly compute
16176         `res->has_type_parameters'.
16177         (mono_class_vtable): Use the `has_type_parameters' flag to
16178         determine whether we're a generic method.
16179
16180         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
16181
16182 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
16183
16184         * object.c (mono_runtime_run_main): Fix a small memory leak.
16185
16186 2004-11-25  Martin Baulig  <martin@ximian.com>
16187
16188         * class.c (set_generic_param_owner): Fixed the loop.
16189
16190 2004-11-25  Martin Baulig  <martin@ximian.com>
16191
16192         * object.c (mono_class_vtable): Don't create any JIT wrappers for
16193         generic methods.
16194
16195 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
16196
16197         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
16198         names. Fixes #69787.
16199
16200 2004-11-24  Martin Baulig  <martin@ximian.com>
16201
16202         * class.c (mono_class_create_generic_2): If we don't have a
16203         `ginst->parent', inflate `gklass->parent' to get our parent.
16204
16205 2004-11-24  Martin Baulig  <martin@ximian.com>
16206
16207         * reflection.c (compare_genericparam): Correctly sort the
16208         GenericParam table; fixes #69779.
16209
16210 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
16211
16212         * reflection.c: When writing a PE file, don't create a huge
16213         buffer in memory. Just write the arrays we have to the file.
16214         This reduces memory usage.
16215
16216         * metadata-internals.h: MonoDynamicStream pefile is no longer used
16217         globally.
16218
16219 2004-11-17  Martin Baulig  <martin@ximian.com>
16220
16221         * class.c (mono_class_init): Don't setup `class->parent' for
16222         dynamic instances; moved this to mono_class_generic_2().
16223         (mono_class_create_generic): Also set `klass->inited' for dynamic
16224         generic instances.
16225         (mono_class_create_generic_2): Don't do anything for dynamic
16226         generic instances.  Set `klass->parent' here and also call
16227         mono_class_setup_parent() here. 
16228
16229         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
16230         `MonoType *parent' argument; set `ginst->parent' before calling
16231         mono_class_create_generic_2(), so we set the correct parent.
16232
16233 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
16234
16235         * reflection.c: allow getting attributes from ModuleBuilder
16236         (used by ikvm).
16237
16238 2004-11-17  Martin Baulig  <martin@ximian.com>
16239
16240         * class.c (mono_class_create_from_typedef): If a type parameter is
16241         inherited from an outer class, set its owner to that class.
16242
16243 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
16244
16245         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
16246           for (int*) written size. This fixes bug #69592.
16247
16248 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
16249
16250         * icall.c: Added IsAuthenticodePresnet internal call.
16251         * image.c|h: New function that check a MonoImage for an Authenticode
16252         signature in the certificate PE data directory.
16253         * security.c|h: New internal call to ask the runtime if an 
16254         Authenticode signature seems referenced in the PE header.
16255
16256 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
16257
16258         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
16259
16260         * reflection.c (mono_image_create_pefile): Free the assembly streams
16261         after writing out the assembly file.
16262
16263         * object.c (mono_runtime_run_main): Fix small memory leak.
16264
16265         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
16266         property access modifiers. Fixes #69389.
16267
16268 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
16269
16270         * domain.c, object.c, object-internals.h, domain-internals.h,
16271         object.h, marshal.c: keep dynamic code info per domain.
16272
16273 2004-11-15  Martin Baulig  <martin@ximian.com>
16274
16275         * class.c (mono_type_get_name_recurse): Put type arguments in
16276         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
16277         see bug #68387.
16278
16279 2004-11-15  Martin Baulig  <martin@ximian.com>
16280
16281         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
16282         (mono_class_setup_vtable): When computing `the_cname' for a
16283         generic instance, don't include the namespace since we'd otherwise
16284         add it twice.
16285
16286 2004-11-15  Martin Baulig  <martin@ximian.com>
16287
16288         * class.c (mono_class_create_generic): Changed return type to void.
16289         (mono_class_create_generic_2): New public function; setup
16290         `class->method', `class->field' and `class->interfaces' here
16291         instead of in mono_class_init().
16292
16293         * class.h (mono_class_create_generic): Moved to class-internals.h.
16294
16295 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
16296
16297         * reflection.c (mono_image_create_pefile): take a file HANDLE.
16298         rather than writing to memory, write to this file. Right now,
16299         we are just writting into a buffer, and copying that. However
16300         we can avoid the buffer later.
16301
16302         (mono_dynamic_stream_reset): new function
16303
16304         * icall.c, object-internals.h: update for the above.
16305
16306 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
16307
16308         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
16309         have been using gc'd memory. First it is slower, unlikely
16310         the comment in the source code said, secondly, it increases
16311         our footprint to do it in the gc.
16312
16313         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
16314         the method so that it does not have to copy to managed code.
16315
16316 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
16317
16318         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
16319
16320 2004-11-12  Martin Baulig  <martin@localhost>
16321
16322         * reflection.c (mono_image_create_token): Allow generic method
16323         definitions here, since they may appear in an `.override'; see
16324         gen-98/gen-99 for an example.
16325
16326 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
16327
16328         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
16329         #69365.
16330
16331         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
16332         descriptive.
16333
16334 2004-11-11  Martin Baulig  <martin@ximian.com>
16335
16336         * class.c (mono_class_setup_vtable): In an explicit interface
16337         implementation, the method name now includes the arity.
16338
16339 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
16340
16341         * object.c (mono_array_full_copy): Fix warning.
16342
16343 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
16344
16345         * appdomain.c: Removed look_for_method_by_name(). Use the new method
16346         mono_class_get_method_from_name() instead.
16347         
16348         * class-internals.h: Added two new types of wrappers. 
16349         Added MonoRemotingTarget enum. Added new trampoline function type, which
16350         takes an additional MonoRemotingTarget value as parameter, so it is
16351         possible to request a trampoline for a specific target.
16352         
16353         * class.c: Added new mono_class_get_method_from_name() method.
16354         
16355         * class.h: In MonoRemoteClass, we can have now to vtables, one for
16356         general remoting sinks and one specific for cross domain calls.
16357         
16358         * debug-helpers.c: Added new wrapper names.
16359         
16360         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
16361         of a remote class.
16362         
16363         * image.c: Porperly delete value objects form the remoting invoke hashtable.
16364         
16365         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
16366         with several other methods (mono_marshal_get_xappdomain_dispatch,
16367         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
16368         and others) can generate a fast remoting wrapper for cross domain calls.
16369         More information can be found in docs/remoting.
16370         Other changes: Removed mono_find_method_by_name, and used
16371         mono_class_get_method_from_name instead.
16372         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
16373         is stored in the remoting invoke hashtable.
16374         
16375         * marshal.h: published the new method for getting the xdomain wrapper,
16376         and also added a method for getting the adequate wrapper for a given
16377         method and target.
16378         
16379         * object-internals.h, object.c: Added a couple of methods for capying and
16380         cloning arrays.
16381         Modified mono_install_remoting_trampoline, which takes the new remoting
16382         trampoline that has a remoting target as parameter.
16383         mono_class_proxy_vtable now also takes a remoting target as parameter, and
16384         will return the most suitable vtable for the target.
16385         Added mono_remote_class_vtable, which returns the vtable of a remote class
16386         (which can be the normal remoting vtable or the xdomain vtable).
16387         
16388         * threads.c: the xdomain invoke and dispatch wrappers must also be
16389         protected against interruptions.
16390
16391 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16392
16393         * icall.c: use memmove in BlockCopyInternal when the source and
16394         destination arrays are the same.
16395
16396 2004-11-09  Martin Baulig  <martin@ximian.com>
16397
16398         * class-internals.h (MonoGenericContainer): Removed `method' and
16399         `signature', replaced them with `is_method' and `is_signature'
16400         flags.  Added `context'.
16401
16402         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
16403         instead of a `MonoGenericContainer *'.
16404
16405         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
16406         for dynamic type parameters.
16407         (mono_metadata_load_generic_params): Setup `container->context'.
16408
16409         * reflection.c (mono_reflection_setup_generic_class): Setup
16410         `tb->generic_container->context'.
16411         (do_mono_reflection_bind_generic_parameters): Use
16412         mono_class_inflate_generic_type() to correctly inflate types,
16413         rather than using our own hack just for MONO_TYPE_VAR.
16414
16415 2004-11-09  Martin Baulig  <martin@ximian.com>
16416
16417         * class.c (mono_class_inflate_generic_method): Small fix; don't
16418         crash here.
16419
16420         * icall.c
16421         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
16422         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
16423         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
16424         (ves_icall_Type_BindGenericParameters): Likewise.
16425         (ves_icall_Type_get_IsGenericInstance): Likewise.
16426         (ves_icall_Type_GetGenericParameterPosition): Likewise.
16427         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
16428         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
16429         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
16430
16431 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
16432
16433         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
16434         assembly versions and public key tokens. Fixes #69113.
16435
16436 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
16437
16438         * metadata.c: fix bug introduced with the type cache changes
16439         on 2004-11-06.
16440
16441 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
16442
16443         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
16444         the MonoClass pointer instead of the token in exception clauses.
16445         * reflection.c: updates for the above and make the code not depend
16446         on the structure of MonoExceptionClause.
16447
16448 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
16449
16450         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
16451         Add support for dynamic assemblies. Fixes #69114.
16452
16453         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
16454
16455 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
16456
16457         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
16458         since most only those methods use it. the code member of
16459         MonoMethodPInvoke was dead, so that can be removed too. Also,
16460         remove inline_count (again, not used), and move slot so that it
16461         can share bits with some other flags. This saves 8 bytes in the
16462         structure and gives us about 50 kb back for mcs helloworld.cs
16463
16464         * *.[ch]: Do naming changes for the above.
16465
16466         * loader.c (mono_method_get_header): Lazily init the header
16467         on first access.
16468         (mono_get_method_from_token): don't init the header here
16469         (mono_free_method): the header may never be allocated
16470
16471         Overall, this saves 150 kb of unmanaged allocations
16472         for mcs helloworld.cs. That accounts for 10% of the unmanaged
16473         memory at runtime.
16474         
16475         * loader.c, loader.h (mono_method_get_header): new accessor.
16476
16477         * *.[ch]: use the above method. Prepares us to lazily load
16478         the header.
16479
16480         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
16481         three warnings, which are actual bugs (see 69206).
16482
16483         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
16484         unused. Saves a cool 4 bytes / method.
16485
16486 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
16487
16488         * metadata.c (builtin_types): Add types for System.Object here.
16489         (mono_metadata_parse_type_full): Cache MonoType*'s that are
16490         for a class or valuetype from klass->this_arg or klass->byval_arg.
16491
16492         On mcs for a hello world, this gets us down from 21836 MonoType's
16493         to 14560.
16494
16495         (mono_metadata_free_type): Account for the above change.
16496
16497 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
16498
16499         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
16500         exception instead of asserting if name is null.
16501         (ves_icall_System_AppDomain_GetData): Ditto.
16502
16503 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
16504
16505         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
16506         EnumBuilder.
16507
16508         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
16509         Return NULL when the domain does not have entry_assembly set.
16510
16511         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
16512         Add a 'resource_modules' argument.
16513         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
16514
16515         * reflection.c (mono_reflection_create_runtime_class): Move setting
16516         of wastypebuilder here, so mono_get_type_object () returns a MonoType
16517         for enums too.
16518
16519         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
16520         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
16521         Throw an ArgumentNullException if 'ptr' is null.
16522
16523         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
16524         assemblies here. Fixes #69020.
16525
16526 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
16527
16528         * reflection.c (build_compressed_metadata): Fix the previous patch for
16529         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
16530         the stack.
16531
16532 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
16533
16534         * assembly.c (mono_assembly_names_equal): Allow a match if one of
16535         the cultures is false. Fixes #69090.
16536
16537         * reflection.c (build_compressed_metadata): Fix invalid memory read 
16538         detected by valgrind.
16539         
16540         * reflection.c (mono_reflection_get_type): Avoid triggering a 
16541         TypeResolve multiple times for the same type. Fixes #65577.
16542
16543 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
16544
16545         * marshal.c: Avoid using ldftn to call managed functions. It is
16546         much slower than just a call.
16547
16548         * reflection.c (mono_module_get_object): free the basename we
16549         allocate here from glib.
16550         
16551         * reflection.c (ensure_runtime_vtable): make sure to free
16552         overrides.  Also, we were allocating an array of MonoMethod not an
16553         array of MonoMethod*.
16554
16555         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
16556
16557         * image.c (mono_image_close): free image->guid here.
16558
16559 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
16560
16561         * reflection.c: Fix some spec conformance issues with the PE file
16562         structures so mcs compiled apps run on the Net 2.0 beta.
16563
16564 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
16565
16566         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
16567         Implement this. Fixes #67264.
16568
16569         * debug-helpers.h debug-helpers.c marshal.c: Move 
16570         mono_find_method_by_name to debug-helpers.c.
16571
16572 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
16573
16574         * object.c (mono_release_type_locks): type_initialization_hash is
16575         a GHashTable.
16576
16577         * reflection.c object.c object-internals.h: Fix warnings.
16578
16579         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
16580         without accessors. Fixes #61561.
16581
16582         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
16583         application base from the root domain if not set. Fixes #65641.
16584         (mono_runtime_init): Fix warning.
16585
16586 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16587
16588         * appdomain.c: call mono_thread_pool_init.
16589         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
16590         of worker threads based on the number of CPUs and the environment
16591         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
16592         for non-windows (windows) systems.
16593
16594 2004-10-27  Chris Toshok  <toshok@ximian.com>
16595
16596         * mono-debug-debugger.c (write_class): don't call mono_class_init
16597         here, as even with the check for (!klass->init_pending), we get
16598         into a situation where we're hitting cycles in class
16599         initialization.  Fixes #68816.
16600
16601 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
16602
16603         * image.c: Avoid overwriting values in the loaded_images_hash when an
16604         assembly is loaded multiple times. Fixes #61152.
16605
16606         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
16607         so multiple satellite assemblies for the same name can be loaded.
16608         Fixes #68259.
16609
16610         * mono_domain_assembly_preload: Actually return the loaded assembly, 
16611         not NULL.
16612
16613         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
16614         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
16615
16616         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
16617         pending finalizers are not invoked after the appdomain has been 
16618         unloaded. Fixes #67862.
16619
16620 2004-10-22  Martin Baulig  <martin@ximian.com>
16621
16622         * mono-debug-debugger.c
16623         (mono_debugger_runtime_invoke): Don't box valuetypes.
16624
16625 2004-10-22  Chris Toshok  <toshok@ximian.com>
16626
16627         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
16628         don't hide private methods.
16629
16630 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
16631
16632         * icall.c: Allows the runtime to "share" (when known) the public key
16633         token of an assembly. This avoid the need to recalculate the token 
16634         (from the public key) in managed code.
16635
16636 2004-10-21  Chris Toshok  <toshok@ximian.com>
16637
16638         * debug-helpers.c (append_class_name): argh, revert last patch.
16639         
16640 2004-10-21  Chris Toshok  <toshok@ximian.com>
16641
16642         * debug-helpers.c (append_class_name): use '+' as the delimiter,
16643         not '/', so that it matches what the debugger uses to look up
16644         methods.
16645
16646 2004-10-21  Martin Baulig  <martin@ximian.com>
16647
16648         * mono-debug-debugger.c (mono_debugger_throw_exception): New
16649         public method; this is called each time an exception is thrown and
16650         allows the debugger to use exception catch points.
16651
16652 2004-10-21  Martin Baulig  <martin@ximian.com>
16653
16654         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
16655         the stack pointer and the exception object in some struct and pass
16656         that to the debugger.
16657
16658 2004-10-21  Chris Toshok  <toshok@ximian.com>
16659
16660         * mono-debug-debugger.c (do_write_class): add instance/static
16661         event support.  We don't expose "raise" or "other" yet.
16662         (event_is_static): new method.
16663
16664 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
16665
16666         * mono-debug-debugger.c
16667         (mono_debugger_handle_exception): Remove
16668         bogus return value for fussy compilers.
16669
16670 2004-10-20  Martin Baulig  <martin@ximian.com>
16671
16672         * mono-debug-debugger.c
16673         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
16674         (mono_debugger_handled_exception): Likewise.
16675
16676 2004-10-20  Martin Baulig  <martin@ximian.com>
16677
16678         * mono-debug-debugger.h (MonoDebuggerEvent): Added
16679         MONO_DEBUGGER_EVENT_EXCEPTION.
16680
16681         * mono-debug-debugger.c (mono_debugger_handle_exception): New
16682         public function to send the debugger a notification for an
16683         exception and inform it about a catch/finally clause.
16684
16685 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
16686
16687         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
16688         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
16689         fix 2.95 build. 
16690
16691         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
16692
16693 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
16694
16695         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
16696         marshalled as [In,Out]. Fixes #58325.
16697
16698 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
16699
16700         * reflection.c (mono_method_body_get_object): Implement some fields.
16701
16702 2004-10-12  Martin Baulig  <martin@ximian.com>
16703
16704         * reflection.c (mono_reflection_bind_generic_parameters): Small
16705         fix, correctly retrieve our parent from a generic instance.
16706
16707 2004-10-12  Martin Baulig  <martin@ximian.com>
16708
16709         * metadata.c (mono_metadata_generic_param_equal): We always have
16710         an owner.
16711
16712         * class.c
16713         (mono_class_from_generic_parameter): We need to have an owner.
16714         (my_mono_class_from_generic_parameter): Likewise.
16715
16716         * reflection.c (mono_reflection_setup_generic_class): Renamed to
16717         mono_reflection_create_generic_class() and added a new
16718         mono_reflection_setup_generic_class().  
16719         (mono_reflection_initialize_generic_param): If we're a nested
16720         generic type and inherited from the containing class, set our
16721         owner to the outer class.
16722
16723 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
16724
16725         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
16726
16727         * reflection.c (mono_method_body_get_object): New function to create
16728         a MethodBody object.
16729
16730         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
16731
16732 2004-10-11  Martin Baulig  <martin@ximian.com>
16733
16734         * metadata.c (_mono_metadata_type_equal): Renamed to
16735         do_mono_metadata_type_equal() and made static.
16736
16737 2004-10-11  Martin Baulig  <martin@ximian.com>
16738
16739         * appdomain.c: Bump corlib version number to 28.
16740
16741 2004-10-10  Martin Baulig  <martin@ximian.com>
16742
16743         * class-internals.h
16744         (MonoGenericInst): Added `MonoGenericContainer *container'.
16745         (MonoGenericMethod): Likewise.
16746         (MonoGenericContext): Likewise.
16747         (MonoGenericParam): Added `MonoGenericContainer *owner'.
16748
16749         * metadata.c
16750         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
16751         (do_mono_metadata_parse_generic_inst): Likewise.
16752         (mono_metadata_parse_type_full): New public method.  This is the actual
16753         mono_metadata_parse_type() implementation - with an additional
16754         `MonoGenericContainer *' argument.
16755         (mono_metadata_parse_array_full): Likewise.
16756         (mono_metadata_parse_signature_full): Likewise.
16757         (mono_metadata_parse_method_signature_full): Likewise.
16758         (mono_metadata_parse_mh_full): Likewise.
16759         (mono_type_create_from_typespec): Likewise.
16760         (mono_metadata_interfaces_from_typedef_full): New public method;
16761         this is similar to the other _full() methods, but we take a
16762         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
16763         (mono_metadata_parse_generic_param): Take an additional
16764         `MonoGenericContainer *' argument and lookup the MonoGenericParam
16765         from that container.
16766         (mono_metadata_generic_param_equal): New static method to compare
16767         two type parameters.
16768         (_mono_metadata_type_equal): New static method; takes an
16769         additional `gboolean signature_only' argument - if true, we don't
16770         compare the owners of generic parameters.
16771         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
16772         with a TRUE argument - do a signature-only comparision.
16773
16774         * loader.c: Use the new _full() methods and pass the
16775         MonoGenericContainer to them.
16776
16777         * object-internals.h (MonoReflectionTypeBuilder): Added
16778         `MonoGenericContainer *generic_container' field.
16779         (MonoReflectionMethodBuilder): Likewise.
16780
16781 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
16782
16783         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
16784         case initial images of dynamic assemblies.
16785
16786         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
16787
16788         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
16789
16790         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
16791         length of event->other array.
16792         (typebuilder_setup_events): Ditto.
16793
16794         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
16795         'assembly_by_name' and add an 'assemblies' list.
16796
16797         * assembly.h assembly.c: Add a new search hook for determining whenever
16798         an assembly is already loaded. Use this instead of searching in the
16799         loaded_assemblies list.
16800
16801         * domain.c appdomain.c: Implement the new search hook so loaded 
16802         assemblies are now scoped by appdomain. Fixes #67727.
16803
16804 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
16805
16806         * threads.c (mono_thread_attach): Initialize synch_lock field so
16807         mono_thread_detach works again.
16808
16809         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
16810         'lib' too. Fixes #63130.
16811
16812 2004-10-06  Jackson Harper  <jackson@ximian.com>
16813
16814         * culture-info-tables.h: regenerated.
16815
16816 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
16817
16818         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
16819         implemented by other interfaces in the result. Fixes #65764.
16820         
16821         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
16822         Handle unloadable modules without crashing.
16823
16824         * image.c (load_modules): Revert the previous patch since modules must
16825         have a fixed index inside the array.
16826         
16827         * image.c (load_modules): Don't include native modules in the modules
16828         array.
16829
16830 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
16831
16832         * reflection.h: Add param_defaults field.
16833
16834         * reflection.c: Add support for parameter defaults in dynamic methods.
16835         Fixes #64595.
16836
16837         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
16838         an empty string when a type has no namespace. Fixes #64230.
16839
16840 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
16841
16842         * tabledefs.h: Added "internal" security actions to support non-CAS
16843         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
16844         Note: they do not seems to be used anymore in 2.0 (new metadata format)
16845
16846 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
16847
16848         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
16849         constructor of abstract class. Fixes #61689.
16850
16851 2004-10-04  Martin Baulig  <martin@ximian.com>
16852
16853         * class-internals.h (MonoGenericContainer): New type.
16854         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
16855         `MonoGenericContainer *generic_container'.
16856         (MonoClass): Replaced `gen_params' and `num_gen_params' with
16857         `MonoGenericContainer *generic_container'.
16858
16859         * metadata.c (mono_metadata_load_generic_params): Return a
16860         `MonoGenericContainer *' instead of a `MonoGenericParam *';
16861         removed the `num' argument.
16862
16863 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
16864
16865         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
16866         for dynamic images.
16867
16868         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
16869         machine fields.
16870
16871         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
16872
16873         * reflection.c: Save pe_kind and machine values into the generated
16874         image file.
16875
16876         * appdomain.c: Bump corlib version number.
16877
16878         * object-internals.h: Reorganize layout of LocalBuilder.
16879
16880         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
16881         New helper function.
16882
16883         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
16884         created MonoType for dynamic types. Fixes #66180.
16885
16886 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
16887
16888         * threadpool.c: the ares hashtable needs a critical section around it.
16889         this prevents some nasty segfaults
16890
16891 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
16892
16893         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
16894         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
16895         bug 67324).
16896         
16897 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
16898
16899         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
16900         
16901 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
16902
16903         * image.c: Always canonicalize image file names, to avoid loading
16904         the same assembly twice when referenced using a relative path.
16905
16906 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
16907
16908         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
16909
16910         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
16911
16912         * marshal.c: Fix warnings.
16913
16914 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
16915
16916         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
16917         attempting to marshal the delegate_trampoline as the method_addr.
16918         This patch has a static hashtable of marshalled delegates so that 
16919         we can map delegate_trampoline addresses back to delegates.  This
16920         allows a delegate passed to managed code to be passed back into native
16921         code.  Fixes #67039
16922
16923 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
16924
16925         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
16926
16927         * reflection.c (method_encode_code): Align method headers properly.
16928         Fixes #66025.
16929
16930 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
16931
16932         * marshal.c: In the runtime invoke wrapper, reset the abort
16933         exception if it is cached. This avoids the automatic rethrowal of 
16934         the exception after the catch of the wrapper. Also check for pending
16935         interruptions before calling the managed method. This is done using
16936         the new method emit_thread_force_interrupt_checkpoint, since the
16937         normal checkpoint method is ignored when running the invoke wrapper.
16938         * object.c: If the abort exception is rethrown, set the abort_exc
16939         field of the thread, so it will be rethrown aftere every catch.
16940         * threadpool.c: Only run an interruption checkpoint if what has been
16941         requested is a stop of the thread (aborts will be ignored).
16942         * threads.c: By default, a thread will now never be interrumped while
16943         running the runtime invoke wrapper (this ensures that runtime_invoke
16944         will always return to the caller if an exception pointer is provided).
16945         There is a new special method mono_thread_force_interruption_checkpoint()
16946         to force an interruption checkpoint even if running a protected
16947         wrapper, which is used by the same runtime invoke wrapper to do a check
16948         at a safe point.
16949
16950 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
16951
16952         * object.c, object-internals.h: Implemented mono_release_type_locks,
16953         which releases the cctor locks held by a thread.
16954         * threads.c, threads.h: In thread_cleanup, release cctor locks held
16955         by a thread. Added mono_thread_exit() method to be used to safely stop
16956         a thread.
16957
16958 2004-09-28  Raja R Harinath  <rharinath@novell.com>
16959
16960         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
16961         Move null check before dereference.  Avoid indexing beyond the end
16962         of the 'modules' array.
16963
16964 2004-09-28  Raja R Harinath  <rharinath@novell.com>
16965
16966         * metadata-internals.h (MonoImage): Add module_count field.
16967         * image.c (load_modules): Set image->module_count.
16968         (mono_image_load_file_for_image): Use image->module_count.
16969         * reflection.c (mono_image_load_module): Append to image->modules array 
16970         of dynamic assembly.
16971         (mono_module_get_object): Fix loop to actually increment index.
16972         Use image->module_count.
16973         * assembly.c (mono_assembly_load_references): Use image->module_count.
16974         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
16975         Likewise.
16976
16977 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
16978
16979         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
16980         Avoid assert on generic types.
16981
16982 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
16983
16984         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
16985
16986         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
16987
16988         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
16989         function to convert a MarshalSpec structure to its managed counterpart.
16990
16991         * reflection.c: Fix warnings.
16992         
16993         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
16994         field.
16995
16996         * icall.c (mono_create_icall_signature): Fix build.
16997
16998 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
16999
17000         * icall.c: Add MakePointType icall.
17001
17002         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
17003         warnings.
17004
17005 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17006
17007         * threadpool.c: reuse allocated slots in the queue.
17008
17009 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
17010
17011         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
17012
17013         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
17014
17015         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
17016         previous change.
17017
17018         * tabledefs.h: Add constants for pinvoke attributes BestFit and
17019         ThrowOnUnmappableChar.
17020
17021         * icall.c (ves_icall_Type_GetPacking): New icall.
17022
17023 2004-09-24  Martin Baulig  <martin@ximian.com>
17024
17025         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
17026
17027 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17028
17029         * appdomain.c:
17030         (mono_domain_set): allow setting a domain that is being unloaded.
17031         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
17032         being unloaded.
17033
17034 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
17035
17036         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
17037         the GetCustomAttributes icall.
17038
17039 2004-09-23  Martin Baulig  <martin@ximian.com>
17040
17041         * object-internals.h (MonoReflectionGenericParam): Replaced
17042         'has_ctor_constraint', `has_reference_type' and `has_value_type'
17043         with `guint32 attrs'.
17044
17045 2004-09-23  Martin Baulig  <martin@ximian.com>
17046
17047         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
17048
17049 2004-09-23  Martin Baulig  <martin@ximian.com>
17050
17051         * object-internals.h (GenericParameterAttributes): New enum.
17052
17053 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
17054
17055         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
17056         
17057         * class.c (init_events): Fill out event->other field.
17058
17059         * class.c: Fix warnings.
17060
17061         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
17062
17063 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
17064
17065         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
17066         walk which doesn't supply the IL offset.
17067
17068 2004-09-22  Martin Baulig  <martin@ximian.com>
17069
17070         * reflection.c (mono_reflection_setup_internal_class): If we're
17071         System.ValueType, System.Object or System.Enum, set
17072         `klass->instance_size' and create the vtable.
17073         (mono_reflection_create_internal_class): If we're an enum type,
17074         get the base class from our current corlib.
17075
17076 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
17077
17078         * reflection.h (MonoResolveTokenError): New type.
17079
17080         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
17081         icall.
17082
17083         * icall.c: Add an 'error' argument to the ResolveToken icalls.
17084
17085 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
17086
17087         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
17088         Support also calling constructors, but only for already allocated objects.
17089
17090 2004-09-17  Geoff Norton <gnorton@customerdna.com>
17091
17092         * reflection.c (type_get_qualified_name): If the klass is null
17093         return the typename to avoid a NullRefEx.
17094         (encode_cattr_value): Get the qualified name of the boxed type,
17095         not the underlying enumtype.  Fixes #62984.
17096
17097 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
17098
17099         * marshal.c: Fix problems with previous checkin.
17100
17101 2004-09-21    <vargaz@freemail.hu>
17102
17103         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
17104         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
17105
17106         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
17107
17108 2004-09-21  Geoff Norton <gnorton@customerdna.com>
17109
17110         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
17111         should only return a type for pointers, arrays, and passbyref types.
17112         Fixes bug #63841.
17113
17114 2004-09-21  Martin Baulig  <martin@ximian.com>
17115
17116         * domain.c (mono_debugger_check_runtime_version): New public
17117         function.
17118
17119         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
17120
17121 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
17122
17123         * reflection.c: Added missing sort to the declarative security 
17124         attributes table. MS implementation stops seeing the attributes if the
17125         token number regress in the table (as shown by ildasm and permview).
17126
17127 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
17128
17129         * object-internals.h (MonoReflectionModule): Add 'token' field.
17130         
17131         * reflection.c (mono_reflection_get_token): Add support for Module
17132         and Assembly.
17133         (mono_module_get_object): Set 'token' field.
17134         (mono_module_file_get_object): Set 'token' field.
17135
17136         * icall.c: Add new Assembly and Module icalls.
17137
17138         * appdomain.c: Bump corlib version.
17139
17140 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
17141
17142         * loader.h loader.c class.h class.c: Add helper functions for obtaining
17143         tokens of metadata objects.
17144
17145         * reflection.h reflection.c (mono_reflection_get_token): New function
17146         to obtain the token of a metadata object.
17147
17148         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
17149
17150 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
17151
17152         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
17153         
17154         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
17155
17156 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
17157
17158         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
17159         * object-internals.h: Added 3 MonoArray* members to MonoReflection
17160         AssemblyBuilder to access the permissions set in the class lib.
17161         * reflection.c: Added security attributes encoding step in 
17162         mono_image_build_metadata.
17163         * tabledefs.h: Added new security actions defined in 2.0:
17164         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
17165
17166 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
17167
17168         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
17169         macro parameter.
17170
17171 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
17172  
17173         * locales.c: nullify the ICU_collator member of CompareInfo when it is
17174           finalized. There where random SIGSEVs at program termination, when
17175           an object being finalized was trying to do a string comparison and
17176           the current culture was already finalized.
17177  
17178 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17179
17180         * threads.c: call thread_cleanup before finishing the thread if we get
17181         there.
17182
17183 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
17184
17185         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
17186         assemblies from the parent. Fixes #65665.
17187
17188 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
17189
17190         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
17191         modifiers.
17192
17193 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
17194
17195         * reflection.h: add prototype for mono_get_dbnull_object
17196         * reflection.c: add prototypes for get_default_param_value_blobs 
17197         and mono_get_object_from_blob for fussier compilers
17198
17199 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
17200  
17201         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
17202         false deadlock checks in class initialization.
17203  
17204 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
17205
17206         * image.c (mono_image_addref): Fix comment.
17207
17208         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
17209         possible.
17210
17211 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
17212
17213         * reflection.c (mono_param_get_objects): Modified to return
17214         ParameterInfo.DefaultValue object.
17215
17216         (get_default_param_value_blobs):
17217         (mono_get_object_from_blob):
17218         (mono_get_dbnull_object): New helper routines. 
17219
17220         * object.c (mono_get_constant_value_from_blob): New helper routine
17221         carved out from get_default_field_value ()
17222
17223         * object-internals.h (mono_get_constant_value_from_blob): Added
17224         function declaration.
17225
17226 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
17227
17228         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
17229         referenced assemblies. Fixes #62135.
17230
17231         * exception.h exception.c (mono_get_exception_file_not_found2): New
17232         helper function.
17233
17234 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
17235
17236         * class.h class.c: Add mono_type_get_underlying_type ().
17237
17238 2004-09-09  Geoff Norton <gnorton@customerndna.com>
17239
17240         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
17241         Fix GetTypes() to support dynamically created assemblies.
17242
17243 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
17244
17245         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
17246         
17247         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
17248         previous patch.
17249
17250         * reflection.h reflection.c loader.c: Allow dynamic construction of
17251         pinvoke methods. Fixes #65571.
17252         
17253         * reflection.c (mono_reflection_get_type): Revert previous change since
17254         it causes regressions.
17255
17256 2004-09-08  Martin Baulig  <martin@ximian.com>
17257
17258         * class.c (class_compute_field_layout): Don't call
17259         mono_class_layout_fields() for open generic instances.
17260
17261 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
17262         * threads.c appdomain.c: fix typo in GC macro
17263
17264 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17265
17266         * threads.c: don't call mono_thread_detach() in start_wrapper(),
17267         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
17268
17269 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
17270
17271         * image.c (mono_image_close): Applied patch from 
17272         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
17273         assembly is loaded multiple times from data.
17274         
17275         * image.c (mono_image_open): Fix warning.
17276
17277 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
17278
17279         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
17280         once. Fixes #58334.
17281         
17282         * reflection.c (mono_reflection_create_runtime_class): Initialize
17283         klass->nested_classes. Fixes #61224.
17284
17285 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
17286
17287         * threads.c: sched_yield() on exit, to allow threads to quit.
17288
17289 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
17290
17291         * object.c (mono_unhandled_exception): Remove leftover debug code.
17292
17293 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
17294
17295         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
17296
17297 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
17298
17299         * marshal.c (emit_marshal_array): Really null terminate string arrays.
17300         
17301         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
17302
17303 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
17304
17305         * marshal.c (emit_marshal_array): Null terminate string arrays.
17306         
17307         * marshal.c (raise_auto_layout_exception): Fix warning.
17308
17309         * reflection.c (mono_param_get_objects): Initialize the default value
17310         with DBNull.Value, not null. Fixes #62123.
17311
17312 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
17313
17314         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
17315         throw an exception with a cute explanation.
17316
17317 2004-09-06  Dick Porter  <dick@ximian.com>
17318
17319         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
17320         Close the new process's thread handle, as we don't use it.  The
17321         handle stays around forever otherwise.
17322
17323 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
17324
17325         * object.c (arith_overflow): Fix warning.
17326
17327         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
17328         calling conventions in method refs. Fixes #65352.
17329
17330         * reflection.c: Fix warnings.
17331
17332 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
17333
17334         * icall.c: Add a new icall for Array.Clear
17335
17336 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
17337
17338         * object.c: When allocating an array, we have to throw
17339         an overflow exception if any of the lengths are < 0.
17340
17341 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
17342
17343         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
17344         properly. Also move implementation of string array marshalling to 
17345         managed code. Fixes #42316.
17346
17347 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17348
17349         * assembly.c: provide more information when loading an assembly fails.
17350
17351 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17352
17353         * filewatcher.c: don't expect the development fam package to be
17354         installed.
17355
17356 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
17357
17358         * marshal.c: Make a copy of the signature cookie since it will be
17359         freed by the caller.
17360         
17361         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
17362
17363         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
17364
17365         * metadata.c (mono_metadata_free_marshal_spec): New function to free
17366         marshal specs.
17367
17368         * marshal.c: More refactoring.
17369         
17370         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
17371         smaller functions.
17372
17373 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
17374
17375         * object.c: In mono_message_invoke, fill the output parameter array after
17376           calling the managed method (it was done before the call). This fixes
17377           bug #59299.
17378
17379 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
17380
17381         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
17382         as well.
17383
17384 2004-09-02  Martin Baulig  <martin@ximian.com>
17385
17386         * class.c (mono_class_instance_size): Don't allow generic type
17387         definitions or open generic instances.
17388         (mono_class_array_element_size): If we're a value type, call
17389         mono_class_instance_size() on the original class.
17390
17391         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
17392         handle generic instances.
17393
17394         * mono-debug-debugger.c (write_type): Handle generic instances
17395         like classes.
17396
17397 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
17398
17399         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
17400         the allocation request fails. Fixes #65089.
17401
17402         * object.c (mono_runtime_free_method): Do not call mono_free_method.
17403         
17404         * object.c (mono_runtime_free_method): New function to free a dynamic
17405         method.
17406
17407         * marshal.c (mono_delegate_free_ftnptr): New function to free the
17408         delegate trampoline.
17409
17410         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
17411         with hasthis as dynamic,
17412
17413         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
17414
17415         * domain.c (mono_jit_info_table_remove): New function to remove an
17416         entry from the jit info table.
17417
17418         * class-internals.h (MonoMethod): Add 'dynamic' field.
17419
17420         * loader.c: Fix warnings.
17421
17422 2004-09-01  Martin Baulig  <martin@ximian.com>
17423
17424         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
17425         instead of mono_debugger_lock() because the latter one is a no-op
17426         unless running in the debugger.
17427
17428 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
17429
17430         * class.c (class_compute_field_layout): Classes with auto-layout or
17431         reference fields are not blittable.
17432         
17433 2004-09-01  Dick Porter  <dick@ximian.com>
17434
17435         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
17436         mono_image_get_filename() to get the assembly location.
17437
17438         * icall.c:
17439         * metadata.h: Fix compile warnings
17440
17441 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
17442
17443         * class.c (class_compute_field_layout): System.Object is blittable.
17444
17445         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
17446         as in/out. Fixes #59909.
17447
17448 2004-09-01  Martin Baulig  <martin@ximian.com>
17449
17450         * metadata.h (MONO_TYPE_ISREFERENCE): Call
17451         mono_metadata_generic_inst_is_valuetype() if we're a generic
17452         instance to check whether our underlying type is a reference type.
17453
17454 2004-09-01  Martin Baulig  <martin@ximian.com>
17455
17456         * metadata.c (mono_type_size): If we're a generic instance, call
17457         mono_class_value_size() for value types.
17458
17459 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
17460
17461         * marshal.c: Implement more custom marshalling functionality. Fixes
17462         #64915.
17463
17464 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
17465
17466         * mono-debug.c, debug-mono-symfile.c: add some locking love.
17467
17468 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
17469
17470         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
17471
17472         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
17473
17474         * icall.c: Fix some warnings.
17475
17476         * threads.c (abort_appdomain_thread): Fix unref errors.
17477         (mono_thread_current): Fix THREAD_DEBUG define.
17478
17479 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
17480
17481         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
17482
17483         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
17484
17485 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
17486
17487         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
17488         string arrays.
17489
17490 2004-08-28  Martin Baulig  <martin@ximian.com>
17491
17492         * metadata.c
17493         (mono_metadata_generic_inst_is_valuetype): New public function.
17494
17495         * metadata.h (MONO_TYPE_ISSTRUCT): Call
17496         mono_metadata_generic_inst_is_valuetype() if we're a generic
17497         instance to check whether our underlying type is a valuetype.
17498
17499 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
17500
17501         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
17502         #63768.
17503
17504 2004-08-25  Martin Baulig  <martin@ximian.com>
17505
17506         * loader.c (mono_get_method_from_token): Abstract methods can also
17507         be generic and thus have type parameters.
17508
17509         * metadata-internals.h
17510         (MonoDynamicImage): Added `GPtrArray *gen_params'.
17511
17512         * reflection.c (mono_image_get_generic_param_info): Don't create a
17513         metadata row, just add an entry to the `gen_params' array.
17514         (build_compressed_metadata): Sort the `gen_params' array and then
17515         actually create the metadata.
17516
17517 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17518
17519         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
17520
17521 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
17522
17523         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
17524
17525 2004-08-24  Martin Baulig  <martin@ximian.com>
17526
17527         * class.cs (mono_class_is_subclass_of): Like an interface, a
17528         generic instance also derives from System.Object.
17529
17530 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
17531
17532         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
17533         custom modifiers to be in any order. Fixes #61990.
17534
17535 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
17536
17537         * object.c: Register mono_object_new_fast icall.
17538         
17539         * object.c (mono_class_get_allocation_ftn): Return to calling
17540         mono_object_new_fast, since it seems faster to compute the object 
17541         size in unmanaged code than passing it as a parameter.
17542
17543         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
17544
17545         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
17546         this function with Boehm as the oom handler, so we don't have to check
17547         the result of GC_malloc.
17548
17549         * object.c: Remove checks for oom.
17550
17551         * object.h object.c (mono_class_get_allocation_ftn): New function to
17552         return the icall which can be used to allocate an instance of a given
17553         class. 
17554
17555         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
17556
17557         * class-internals.h: Add 'enabled' field.
17558
17559 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
17560
17561         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
17562
17563 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
17564         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
17565         value 0x0010.
17566
17567 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
17568
17569         * appdomain.c: use the Tls function for appdomain too,
17570         at Zoltan's request. Actually return in mono_context_get
17571
17572         * appdomain.c, profiler.c, threads.c: use __thread
17573
17574 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
17575
17576         * appdomain.c threads.c: Call GC_CreateThread on windows.
17577
17578         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
17579         multiple libraries since this don't work on windows.
17580
17581 2004-08-18  Martin Baulig  <martin@ximian.com>
17582
17583         * class-internals.h
17584         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
17585         MonoMethodHeader.
17586
17587         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
17588         MonoMethodNormal since we also need it for abstract and interface
17589         methods.
17590
17591         * reflection.c
17592         (build_compressed_metadata): Sort the GenericParam table.
17593         (mono_image_create_token): Added `gboolean create_methodspec'
17594         argument; this is false when generating a MethodImpl token.
17595         (reflection_methodbuilder_to_mono_method): Abstract and interface
17596         methods may also have generic parameters.
17597
17598 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
17599
17600         * appdomain.c: thread local alloc
17601
17602 2004-08-17  Martin Baulig  <martin@ximian.com>
17603
17604         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
17605
17606         * icall.c
17607         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
17608         argument.
17609
17610         * class.c (mono_type_get_full_name): New public function.
17611         (mono_type_get_name): Don't include the type arguments.
17612
17613 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
17614
17615         * Makefile.am: Build static versions of libmetadata and libmonoruntime
17616         for inclusion into the mono executable.
17617
17618 2004-08-16  Martin Baulig  <martin@ximian.com>
17619
17620         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
17621         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
17622
17623 2004-08-14  Martin Baulig  <martin@ximian.com>
17624
17625         * class.c (dup_type): Also copy the `byref' field.
17626
17627 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
17628
17629         * reflection.c (create_dynamic_mono_image): Revert the last change 
17630         since it breaks bootstrap.
17631
17632 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
17633
17634         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
17635
17636         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
17637         not free them with g_free.
17638
17639 2004-08-11  Martin Baulig  <martin@ximian.com>
17640
17641         * reflection.c (mono_reflection_setup_internal_class): Also call
17642         mono_class_setup_mono_type() if we already have a `tb->type.type'.
17643
17644 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
17645
17646         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
17647         called during default (first) AppDomain creation. Keep track of
17648         Evidence when loading assemblies.
17649
17650 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
17651
17652         * opcodes.c, opcodes.h: reduce runtime relocations.
17653
17654 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
17655
17656         * culture-info.h, locales.c: fixes and chages to sue the new
17657         optimized format of the locale data.
17658         * culture-info-tables.h: regenerated.
17659
17660 2004-08-06  Geoff Norton <gnorton@customerdna.com>
17661         
17662         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
17663
17664 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
17665
17666         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
17667         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
17668         * domain-internals.h: icall declaration.
17669         * icall.c: icall registration.
17670         * object-internals.h: New fields in MonoAssembly for CAS.
17671
17672 2004-08-05  Duncan Mak  <duncan@ximian.com>
17673
17674         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
17675         CEE_LDELEM_ANY.
17676
17677 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
17678
17679         * reflection.c: fix to deal with object[] arrays in custom ctors
17680         (bug #62550).
17681
17682 2004-08-05  Martin Baulig  <martin@ximian.com>
17683
17684         * class.c (mono_class_array_element_size): Added support for
17685         generic instances and correctly handle "recursive" types.
17686
17687 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
17688
17689         * assembly.c: Fix warnings.
17690
17691 2004-08-04  Martin Baulig  <martin@ximian.com>
17692
17693         * class.c
17694         (mono_type_get_name_recurse): Added `gboolean include_arity'
17695         argument specifying whether or not we should include the generic
17696         arity in the type name.
17697         (_mono_type_get_name): New static function.
17698         (mono_class_setup_vtable): If we're a generic instance, don't
17699         include the generic arity in the names of explicit method
17700         implementations.        
17701
17702 2004-08-03  Martin Baulig  <martin@ximian.com>
17703
17704         * class.c (mono_type_get_name_recurse): Enclose the generic type
17705         arguments in `<', '>'.
17706
17707 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
17708
17709         * gc.c: make GC warning messages use the trace API, they are just
17710         noise to most of the users.
17711
17712 2004-08-03  Martin Baulig  <martin@ximian.com>
17713
17714         * debug-mono-symfile.c (read_string): Correctly read the string.
17715
17716 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
17717
17718         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
17719         
17720         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
17721         icalls.
17722         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
17723
17724 2004-07-30  Martin Baulig  <martin@ximian.com>
17725
17726         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
17727         Reflect latest symbol writer changes.   
17728
17729 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
17730
17731         * object.c: always create an object if null is passed
17732         to Invoke() where a valuetype is expected.
17733
17734 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
17735
17736         * marshal.c (mono_marshal_init): make managed
17737         signatures match native ones better for 64bits.
17738
17739 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17740
17741         * appdomain.c: hack to build correctly the private bin path on windows.
17742         Fixes bug #61991.
17743
17744 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
17745
17746         * assembly.c: Load mscorlib from the correct framework directory
17747           (mono/<version>/mscorlib.dll).
17748         * appdomain.h: Added prototypes for new functions.
17749         * internals.h: Added some prototypes.
17750         * domain.c: When initializing the runtime, get from the executable and
17751           the configuration files the runtime version that the app supports.
17752           Added support methods for reading app.exe.config. Added list of versions
17753           supported by the JIT. Added two new methods: mono_init_from_assembly,
17754           which initializes the runtime and determines the required version from
17755           the provided exe file, and mono_init_version, which initializes
17756           the runtime using the provided version.
17757         * icall.c: Get machine.config from version-specific directory.
17758         * reflection.c: When generating an image, embed the version number
17759           of the current runtime.
17760
17761 2004-07-28  Dick Porter  <dick@ximian.com>
17762
17763         * socket-io.c
17764         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
17765         returned sockaddr size before creating the remote address object.
17766         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
17767         61608.
17768
17769 2004-07-28  Dick Porter  <dick@ximian.com>
17770
17771         * locales.c (string_invariant_compare_char): Fix invariant char
17772         compares between upper and lower cases.  Fixes bug 61458.
17773
17774 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
17775         
17776         * marshal.c: actually cache stelem.ref wrappers.
17777         
17778 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
17779
17780         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
17781         sections and remove the mono_cli_rva_map () function.
17782
17783 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
17784
17785         * debug-mono-symfile.c: fix one more endianess issue, from a patch
17786         by Geoff Norton (<gnorton@customerdna.com>).
17787
17788 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
17789
17790         * class.c: fix class loads for pointer types (typeof(int) !=
17791         typeof(int*)).
17792
17793 2004-07-27  Martin Baulig  <martin@ximian.com>
17794
17795         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
17796         reading the debugging information from an external ".mdb" file.
17797
17798 2004-07-24  Martin Baulig  <martin@ximian.com>
17799
17800         * reflection.c (mono_image_get_type_info): Only write a class
17801         layout entry if we actually have a size or a packing size.
17802
17803 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
17804
17805         * reflection.c (type_get_fully_qualified_name): 
17806         insert cast to get type checking of ?: with non-gcc compilers
17807
17808 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
17809
17810         * rand.c: use g_getenv for both lookups of
17811         MONO_EGD_SOCKET
17812
17813 2004-07-17  Martin Baulig  <martin@ximian.com>
17814
17815         * reflection.c (mono_reflection_bind_generic_method_parameters):
17816         Set `gmethod->reflection_info'.
17817
17818 2004-07-17  Martin Baulig  <martin@ximian.com>
17819
17820         * class.c (mono_class_create_from_typedef): Insert the newly
17821         created class into the hash table before computing the interfaces
17822         since we could be called recursively.
17823
17824 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
17825
17826         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
17827         function to implement stelem.ref in managed code
17828         * class-internals.h, debug-helpers.c: a new wrapper type
17829         for the above.
17830
17831 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
17832
17833         * gc.c: allow GC handles to work even when no GC is compiled in.
17834         Fix part of bug #61134 (GetAddrOfPinnedObject).
17835
17836 2004-07-13  Peter Williams  <peter@newton.cx>
17837  
17838         * process.c (complete_path): Make sure we don't attempt to execute
17839         directories.
17840  
17841 2004-07-12  Geoff Norton <gnorton@customerdna.com>
17842
17843         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
17844           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
17845           and will add/subtract the hour if needed
17846
17847 2004-07-12  Martin Baulig  <martin@ximian.com>
17848
17849         * reflection.c (mono_field_get_object): If we have
17850         `field->generic_info', take the attributes from
17851         `field->generic_info->generic_type'.    
17852
17853 2004-07-12  Martin Baulig  <martin@ximian.com>
17854
17855         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
17856         This function must be called before initializing the runtime.
17857         (mono_debug_init_1): New function; call this after initializing
17858         the runtime, but before loading the assembly.  It tells the
17859         debugger to load corlib and the builtin types.
17860
17861         * mono-debug-debugger.c: Did some larger changes in the debugging
17862         code; support recursive class declarations, make sure we actually
17863         add all classes.
17864
17865 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17866
17867         * debug-helpers.c: undo my previous patch and fixed the real issue in
17868         ../mini/exceptions-x86.c
17869
17870 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17871
17872         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
17873         when no HOME env. variable was set and a NullRef was thrown in a .cctor
17874         called from other .cctors.
17875
17876 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
17877
17878         * loader.c: Removed the mono_loader_wine_init hack now that we are
17879         doing a managed version of Windows.Forms.
17880
17881 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
17882
17883         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
17884         threadpool.c, threads.c: remove static data from rootset.
17885
17886 2004-07-09  Dick Porter  <dick@ximian.com>
17887
17888         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
17889         Don't do any more processing if the matched length was 0.  It was
17890         increasing the size of the string before.  Fixes bug 61167.
17891
17892 2004-07-09  Dick Porter  <dick@ximian.com>
17893
17894         * socket-io.h:
17895         * socket-io.c
17896         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
17897         Add support for SO_PEERCRED if its available.
17898
17899 2004-07-09  Peter Bartok <pbartok@novell.com>
17900         * loader.c: winelib.exe.so error message is now only displayed if
17901         MONO_DEBUG is set. To help us avoid questions when people are trying
17902         out the new Managed.Windows.Forms.
17903
17904 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
17905
17906         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
17907         for isinst and castclass wrappers.
17908
17909         * class-internals.h icall.c: Move registration and lookup of JIT icalls
17910         to libmetadata from the JIT, so they could be used by the marshalling
17911         code and the interpreter.
17912
17913         * marshal.c: Register marshalling related JIT icalls here instead of
17914         in mini.c. Use CEE_MONO_ICALL instead of the family of 
17915         CEE_MONO_PROC<x> opcodes to call marshalling functions.
17916
17917         * metadata.h: Remove unneeded marshalling conversions.
17918
17919         * opcodes.c: Update for new opcodes.
17920         
17921 2004-07-08  Martin Baulig  <martin@ximian.com>
17922
17923         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
17924         (mono_debug_get_domain_data): Make this function static.
17925
17926 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
17927
17928         * gc.c, object.h: add nice GC handle API for embedders.
17929
17930 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
17931
17932         * reflection.c: more changes for the new api
17933
17934         * object.c: When we reflect on a field w/ a constant value, it
17935         will not have a memory location, so we must access metadata. Also,
17936         allow easier reading of strings so that we can read them from
17937         the constant data.
17938
17939         * class.c (mono_class_layout_fields): no need for literal fields here.
17940
17941         * class-internals.h: api changes for const fields
17942
17943         * icall.c (ves_icall_get_enum_info): use new apis for const fields
17944
17945 2004-07-06  Martin Baulig  <martin@ximian.com>
17946
17947         * mono-debug.h: Increment version number to 44.
17948
17949         * mono-debug.c (mono_debug_add_wrapper): The second argument is
17950         now a gpointer, rewrote this whole method.
17951
17952         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
17953         function.  Add information about the wrapper in a new "misc table".
17954
17955         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
17956         for the new misc table.
17957
17958 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
17959
17960         * metadata-internals.h image.c: Add a cache for helper signatures.
17961
17962         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
17963
17964 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
17965
17966         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
17967         delegates from a delegate. Fixes #61033.
17968         
17969         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
17970         marshalling of stringbuilder arrays. Fixes #59900.
17971
17972 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
17973
17974         * icall.c: Add EnumBuilder:setup_enum_type icall.
17975
17976 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
17977
17978         * icall.c: Added a new icall for the property version of
17979         OffsetOfStringData.
17980
17981 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
17982
17983         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
17984         it has a constant size across platforms.
17985
17986         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
17987         stack trace.
17988
17989 2004-06-29  Martin Baulig  <martin@ximian.com>
17990
17991         * mono-debug.c (mono_debug_add_method): Protect the whole function
17992         in mono_debugger_lock(), not just parts of it.
17993
17994 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
17995
17996         * reflection.c: make sure padding bytes in heaps are zeroed.
17997
17998 2004-06-24  David Waite  <mass@akuma.org>
17999
18000         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
18001         image.c, loader.c, locales.c, marshal.c, metadata.c,
18002         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
18003         string-icalls.c, threads.c: change to C90-style comments from C99 /
18004         C++ -style
18005
18006 2004-06-24  Dick Porter  <dick@ximian.com>
18007
18008         * threads.c
18009         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
18010         return createdNew.  Fixes bug 60412.
18011
18012         * threads-types.h: 
18013         * icall.c: Add createdNew parameter to CreateMutex icall
18014
18015 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
18016
18017         * reflection.c, object-internals.h: save default value in params.
18018
18019 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18020
18021         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
18022         no need to build a new path combining that with the application base.
18023         Fixes bug #60442.
18024
18025 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
18026
18027         * reflection.c: fixed minor standard compliance issues.
18028
18029 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
18030
18031         * reflection.c: fixed issue with encoding some custom attributes
18032         (arrays in properties and fields, bug #60411).
18033
18034 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18035
18036         * reflection.c: fix start address when copying the public key token.
18037
18038 2004-06-23  Martin Baulig  <martin@ximian.com>
18039
18040         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
18041         the `exc' object in a static object to put it into the GC's root set.
18042
18043 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
18044
18045         * reflection.c: make mono_reflection_setup_internal_class ()
18046         callable a second time to setup a new parent class.
18047
18048 2004-06-23  Dick Porter  <dick@ximian.com>
18049
18050         * threads.c: Check for WAIT_IO_COMPLETION return values.
18051
18052 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
18053
18054         * appdomain.c: Removed the g_free on the public key token. Now copy 
18055         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
18056         * assembly.c: Added public key token string value when loading 
18057         assemblies. Fix bug #60439.
18058         * icall.c: Added missing informations (like public key) in 
18059         GetReferencedAssemblies. Fix #60519.
18060         * image.h: Changed definition for public key token from const char*
18061         public_tok_value to guchar public_key_token [17];
18062         * reflection.c: Updated for changes to public key token.
18063
18064 2004-06-22  Lluis Sanchez Gual
18065
18066         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
18067         for the field in base classes.
18068
18069 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
18070
18071         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
18072         mark headers as not supported, they are installed only for use by the
18073         debugger.
18074
18075 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
18076
18077         * *.c, *.h: avoid namespace pollution in public headers.
18078
18079 2004-06-21  Martin Baulig  <martin@ximian.com>
18080
18081         * exception.c (mono_get_exception_security): It's in
18082         "System.Security", not in "System".
18083
18084         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
18085         the exception classes.
18086
18087 2004-06-21  Martin Baulig  <martin@ximian.com>
18088
18089         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
18090         Protect the exception object from being finalized.
18091
18092 2004-06-21  Martin Baulig  <martin@ximian.com>
18093
18094         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
18095         public function.
18096
18097 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
18098
18099         * reflection.c: Load the assembly in mono_reflection_type_from_name,
18100         if it was not loaded before. Fix parts of #60439.
18101
18102 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
18103
18104         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
18105         code that was broken since Ben's change: wrappers are now
18106         dependent on the method signature only again.
18107
18108 2004-06-21  Martin Baulig  <martin@ximian.com>
18109
18110         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
18111         added interface support.
18112
18113 2004-06-21  Martin Baulig  <martin@ximian.com>
18114
18115         * class.c (mono_vtable_get_static_field_data): New public method.
18116
18117 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
18118
18119         * filewatcher.c : Windows build fix to be compliant with API changes.
18120
18121 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
18122
18123         * class.h, class.c: more accessors.
18124         * metadata.h, metadata.c: prepare for hiding MonoType and
18125         MonoMethodSignature: people should use the accessors from now on
18126         outside of the tree.
18127
18128 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
18129
18130         * *.c, *.h: more API cleanups.
18131
18132 2004-06-18  Jackson Harper  <jackson@ximian.com>
18133
18134         * assembly.c: Trace loading assemblies.
18135         * loader.c: Trace loading native libraries.
18136         * mono-config.c: Trace loading config files.
18137         
18138 2004-06-18  Dick Porter  <dick@ximian.com>
18139
18140         * locales.c: Tell ICU the lengths of strings, it can cope with
18141         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
18142
18143 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
18144
18145         * image.c: swapped name/filename;
18146
18147 2004-06-18  Martin Baulig  <martin@ximian.com>
18148
18149         * mono-debug-debugger.c (write_class): Write the parent class at
18150         the end of the header.
18151
18152 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
18153
18154         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
18155
18156 2004-06-17  Raja R Harinath  <rharinath@novell.com>
18157
18158         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
18159         (bundle_obj): New conditional define.
18160         (BUILT_SOURCES): Remove.
18161         ($(bundle_srcs)): Make parallel-make safe.
18162         (libmonoruntime_la_LIBADD): Make unconditional.
18163         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
18164         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
18165
18166 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
18167
18168         * culture-info-tables.h: It was inconsistent with the latest
18169           supp info files.
18170
18171 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
18172
18173         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
18174         be loaded.
18175
18176         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
18177         with gcc 2.95.
18178
18179 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
18180
18181         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
18182         cleaned up public header threads.h.
18183
18184 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
18185
18186         * Makefile.am, *.c, *.h: more API cleanups.
18187
18188 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
18189
18190         * Makefile.am: removed monosn from compilation.
18191         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
18192         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
18193         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
18194         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
18195         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
18196         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
18197
18198 2004-06-15  Jackson Harper  <jackson@ximian.com>
18199
18200         * assembly.c: Make locales lower case when searching the GAC for
18201         assemblies. gacutil will always make locales lowercase when
18202         installing so this effectively makes them case insensitive.
18203         
18204 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
18205
18206         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
18207         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
18208           parameter which allows to choose whether the wait can be interrupted or 
18209           not. Also added the method mono_monitor_enter(), which locks the monitor
18210           using an infinite wait and without allowing interruption.
18211           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
18212           interrupted.
18213         * object.h: Added new fields in MonoThread. suspend_event holds the event
18214           used to susped/resume the thread. synch_lock is the lock object to use for
18215           modifying the thread state.
18216         * threads.c: Use the new synch_lock object for locking, instead of "this",
18217           which can generate deadlocks.
18218           Moved thread state change in Thread.Sleep and Thread.Join from managed
18219           to unmanaged code. This avoids a deadlock when the thread was suspended
18220           just after acquiring the thread lock.
18221           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
18222           Implemented Thread.Suspend using an event instead of ThreadSuspend,
18223           which is not fully implemented in the io-layer.
18224         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
18225
18226 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
18227
18228         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
18229         threads-types.h: more API cleanups.
18230
18231 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
18232
18233         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
18234         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
18235         threadpool.c, threads.c: first pass at the exported API cleanup.
18236
18237 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
18238
18239         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
18240
18241 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18242
18243         * icall.c: added internalGetHome.
18244
18245 2004-06-14  Dick Porter  <dick@ximian.com>
18246
18247         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
18248         possible to return successfully when '.' or '..' were the only
18249         entries in a directory, but were skipped.  The MonoIOStat was not
18250         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
18251         Fixes bug 59574.
18252
18253 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
18254
18255         * reflection.c: make binaries run on .Net 1.1 by default.
18256
18257 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
18258
18259         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
18260
18261 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
18262
18263         * marshal.c: keep track of struct size with explicit layout
18264         (bug #59979).
18265
18266 2004-06-12  Martin Baulig  <martin@ximian.com>
18267
18268         * mono-debug-debugger.c: Comment out a debugging g_message().
18269
18270 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
18271
18272         * reflection.c, reflection.h: do not free custom attrs that are cached.
18273         * icall.c: use braces to make code clearer.
18274
18275 2004-06-11  Martin Baulig  <martin@ximian.com>
18276
18277         * class.h (MonoInflatedField): New type.
18278         (MonoClassField): Replaced `MonoType *generic_type' with
18279         `MonoInflatedField *generic_info'.
18280
18281         * icall.c
18282         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
18283
18284 2004-06-11  Martin Baulig  <martin@ximian.com>
18285
18286         * reflection.c (mono_image_create_method_token): Correctly encode
18287         varargs methods.
18288
18289 2004-06-11  Martin Baulig  <martin@ximian.com>
18290
18291         * metadata.c (mono_metadata_parse_method_signature): When parsing
18292         a MethodDef which has VarArgs, also set sentinelpos if we don't
18293         have any parameters.
18294
18295 2004-06-11  Martin Baulig  <martin@ximian.com>
18296
18297         * verify.c (mono_method_verify): In CEE_CALL, use
18298         mono_method_get_signature() to get the method's signature, unless
18299         we're a PInvoke method.
18300
18301 2004-06-10  Jackson Harper  <jackson@ximian.com>
18302
18303         * assembly.c: Use <path>/lib/mono/gac for the extra paths
18304         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
18305         logical name as the supplied path is just a prefix to the gac not
18306         the direct path to it.
18307         
18308 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
18309
18310         * reflection.c: make the token for a created method match
18311         the token of the MethodBuilder it was created from
18312         (IKVM requires this behaviour now).
18313
18314 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
18315
18316         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
18317         reflection.c, socket-io.c: leak fixes.
18318
18319 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
18320
18321         * icall.c: handle sentinel pos in vararg methods in position different
18322         from 0.
18323
18324 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18325
18326         * culture-info-tables.h: freshly generated.
18327
18328 2004-06-09  Martin Baulig  <martin@ximian.com>
18329
18330         * loader.c (mono_get_method_constrained): Call `mono_class_init
18331         (constrained_class)'.   
18332
18333 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
18334
18335         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
18336         any methods. Fixes #59629.
18337
18338 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
18339
18340         * culture-info-tables.h: reflecting locale-builder updates.
18341
18342 2004-06-08  Dick Porter  <dick@ximian.com>
18343
18344         * object.h:
18345         * locales.c: Fixed compile warnings, including a real bug in
18346         CompareInfo_internal_compare.
18347         
18348 2004-06-08  Dick Porter  <dick@ximian.com>
18349
18350         * locales.c
18351         (ves_icall_System_Globalization_CompareInfo_internal_index):
18352         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
18353         Double-check the resuls of usearches, because ICU currently
18354         ignores most of the collator settings here.  Fixes bug 59720.
18355         
18356 2004-06-08  Dick Porter  <dick@ximian.com>
18357
18358         * locales.c
18359         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
18360         Fix memory leak and segfault-causing typo.  No idea how this one
18361         lasted so long without being noticed.
18362
18363 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
18364
18365         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
18366         any methods. Fixes #59629.
18367
18368 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18369
18370         * assembly.c:
18371         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
18372         own the critical section before). Removed dead code (that's done
18373         in the preload hook).
18374
18375         (mono_assembly_load_with_partial_name): call the preload hook.
18376
18377 2004-06-08  Martin Baulig  <martin@ximian.com>
18378
18379         * metadata.c (mono_metadata_signature_alloc): Default
18380         `sentinelpos' to -1.
18381
18382         * reflection.c (mono_image_get_array_token): Likewise.
18383
18384 2004-06-08  Martin Baulig  <martin@ximian.com>
18385
18386         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
18387
18388         * metadata.c (mono_metadata_parse_method_signature): When parsing
18389         a MethodDef which has VarArgs, set sentinelpos.
18390
18391         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
18392         `gint16' since we're using -1 for non-varargs methods.
18393
18394         * reflection.c
18395         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
18396         (method_encode_signature): Added varargs support.
18397         (method_builder_encode_signature): Likewise.
18398         (mono_image_get_varargs_method_token): New static method.
18399         (mono_image_create_method_token): New public method; this is
18400         called via an icall instead of mono_image_create_token() when
18401         calling a varargs method.       
18402
18403 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
18404
18405         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
18406
18407 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
18408
18409         * culture-info-tables.h : Reflecting the latest locale-builder that
18410           fixed empty array representation ({} to {0}).
18411
18412 2004-06-07  Jackson Harper  <jackson@ximian.com>
18413
18414         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
18415         looking up extra gac paths. This allows MONO_GAC_PATH to act
18416         exactly like a prefix.
18417         
18418 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
18419
18420         * reflection.c (mono_reflection_type_from_name): Make a copy of the
18421         type name before modifying it. Fixes #59405.
18422
18423 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
18424
18425         * culture-info.h: added fields for "all datetime patterns".
18426         * locales.c: (  ves_icall_System_Globalization_CultureInfo
18427           _construct_datetime_format ()): fill xxx_patterns fields.
18428         * object.h: added fields for "all datetime patterns" to
18429           MonoDateTimeFormatInfo.
18430         * culture-info-tables.h: reflecting locale-builder updates.
18431
18432 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
18433
18434         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
18435         the event has no add and remove methods. Fixes #59629.
18436
18437 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
18438
18439         * object.c: Fixed possible integer overflow when allocating large
18440         strings.
18441
18442 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
18443
18444         * culture-info-tables.h: reflecting locale-builder updates.
18445
18446 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
18447
18448         * culture-info-tables.h: reflecting locale-builder updates.
18449
18450 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
18451
18452         * culture-info-tables.h: reflecting locale-builder updates.
18453
18454 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
18455
18456         * threads.c: Made Thread.Sleep abortable.
18457
18458 2004-06-02  Martin Baulig  <martin@ximian.com>
18459
18460         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
18461
18462         * debug-mono-symfile.h: Bumped symbol file version number to 37.
18463
18464 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
18465
18466         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
18467
18468 2004-05-30  Jackson Harper  <jackson@ximian.com>
18469
18470         * reflection.c: Do not hardcode assembly versions or public key
18471         tokens anymore. All of this except the corlib section was dead
18472         code anyways.
18473         
18474 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
18475
18476         * object.c (mono_runtime_invoke_array): Automatically create boxed
18477         objects for byref valuetypes if needed. Fixes #59300.
18478         
18479         * object.c (mono_method_return_message_restore): Handle 
18480         MONO_TYPE_OBJECT as well.
18481
18482 2004-05-28  Jackson Harper  <jackson@ximian.com>
18483
18484         * reflection.c: The modified type encoding was causing build
18485         problems. Reverted for now.
18486         
18487 2004-05-28  Jackson Harper  <jackson@ximian.com>
18488
18489         * reflection.c/h: Take an assembly ref so that we dont create
18490         fully qualified names when encoding types in the same assembly as
18491         the custom attribute being emitted.
18492         * appdomain.c: Increment version number.
18493         
18494 2004-05-26  Duncan Mak  <duncan@ximian.com>
18495
18496         * icall.c
18497         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
18498         Set the full version number (major, minor, build, revision).
18499
18500 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
18501
18502         * marshal.c (emit_struct_conv): increment src/dst after blit
18503         (mono_marshal_get_managed_wrapper,
18504         mono_marshal_get_native_wrapper): make sure we have marshalling
18505         info before marshalling params (info computation affects
18506         blittable)
18507
18508         * class.c (class_compute_field_layout): correctly deal with
18509         blittable
18510         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
18511         value types (as per what windows dows by default)
18512         (mono_class_setup_mono_type): System.ValueType is blittable
18513         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
18514         blittable
18515
18516         * marshal.c (mono_marshal_load_type_info): flag types  as
18517         non-blittable if the native layout doesn't match the managed
18518         layout
18519
18520 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18521
18522         * appdomain.c: don't add stuff in the private search path that is
18523         above the application base. If application base is not set, there's
18524         no private search path.
18525
18526 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
18527
18528         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
18529         byref struct arguments in native->managed marshalling.
18530
18531 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
18532
18533         * marshal.c (mono_marshal_get_runtime_invoke): correctly
18534         cache methods using signature (special case for methods
18535         that are value type or string class)
18536         
18537         * image.c (mono_image_close): clean up allocated GSList's
18538         in runtime_invoke_cache.
18539
18540 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18541
18542         * mono-config.c: set the correct path for mono_cfg_dir on windows when
18543         there's no MONO_CFG_DIR environment variable defined.
18544
18545 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18546
18547         * threads.c: windows version must be >= 0x0500 to include OpenThread.
18548
18549 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
18550
18551         * threadpool.c: Really wait for 500ms after the async call, even if the wait
18552           is interrumped.
18553         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
18554           before waiting for it, and call CloseHandle after the wait to unref it.
18555           This will make sure that handles are not disposed too early.
18556
18557 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18558
18559         * appdomain.c:
18560         * appdomain.h:
18561         * icall.c: removed
18562         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
18563         needed now.
18564
18565         * object.c: se the application_base only for the domain that runs
18566         Main. Fixes bug #59216,
18567
18568 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18569
18570         * appdomain.c:
18571         * object.c: only the domain in which Main is run have
18572         SetupInformation.ConfigurationFile set, so moved a few lines from
18573         appdomain.c to object.c.
18574
18575 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18576
18577         * appdomain.c: we tried to load [name].(dll|exe), but according
18578         to bug #57710, we must also try [culture]/[name].(dll|exe) and
18579         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
18580         There's a test case attached to bug #58922.
18581
18582 2004-05-27  Dick Porter  <dick@ximian.com>
18583
18584         * icall.c:
18585         * file-io.c: Implemented icalls for locking and unlocking regions
18586         in a file.
18587         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
18588         FALSE on error (fixes both compiler warning and real bug.)
18589
18590 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
18591
18592         * culture-info-tables.h: reflecting locale-builder updates.
18593
18594           (Added missing ChangeLog entry for 05/26)
18595
18596 2004-05-27  Jackson Harper  <jackson@ximian.com>
18597
18598         * locales.c: Fix some cut and paste errors.
18599         
18600 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18601
18602         * mono-config.c: set the correct path for config. directory on windows.
18603
18604 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
18605
18606         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
18607           on win32.
18608
18609 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
18610
18611         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
18612         from pinvoke functions.
18613         
18614         * marshal.c (mono_ftnptr_to_delegate): Implement this.
18615
18616 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
18617
18618         * culture-info-tables.h: reflecting locale-builder updates.
18619
18620 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
18621
18622         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
18623         #59086.
18624
18625 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
18626
18627         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
18628         * icall.c: Modified icalls for RNG.
18629         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
18630         Windows (CryptoAPI).
18631
18632 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
18633
18634         * locales.c: Fix build.
18635
18636 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
18637
18638         * culture-info-tables.h: reflecting locale-builder updates.
18639
18640 2004-05-25  Jackson Harper  <jackson@ximian.com>
18641
18642         * locales.c: When creating the current culture use the $LANGs
18643         specific culture. So DateTimeFormat and NumberFormat entries are created.
18644         
18645 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
18646
18647         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
18648         a char array as parameter.
18649
18650 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
18651
18652         * image.c: In mono_image_open(), always use an absolute path name to
18653           look for already loaded images.
18654
18655 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
18656
18657         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
18658         missing in the windows build (like older cygwin include files).
18659
18660 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
18661
18662         * icall.c: Fixed check for possible integer overflow in Buffer_
18663         BlockCopy icall. Replaced comments style // by /* */.
18664
18665 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
18666
18667         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
18668         
18669         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
18670         check after MONO_VTADDR. Fixes pinvoke2.exe.
18671
18672         * marshal.h marshal.c metadata.h: Add beginnings of support for
18673         ftnptr -> delegate marshalling.
18674
18675 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
18676
18677         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
18678         * threads.c: Fix warnings.
18679
18680 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
18681
18682         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
18683         * icall.c: Registered icalls for Suspend and Resume.
18684         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
18685           Thread.Abort.
18686         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
18687         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
18688         * process.c: Use WaitForSingleObjectEx.
18689         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
18690           checkpoints.
18691         * threads.c, threads.h: Make use of new Ex wait methods. Improved
18692           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
18693           for Suspend and Resume. Added new mono_thread_stop, used for stoping
18694           background threads. Added basic support for Abort in Windows.
18695           Start new threads using a managed delegate invoke wrapper. This wrapper
18696           has an interruption checkpoint that is needed since an interruption
18697           can be requested before the thread leaves the unmanaged code that starts 
18698           the thread.
18699         * marshal.c: Added interruption checkpoint after every native call, and
18700           also before managed calls for wrappers called from unmanaged code to
18701           go into managed code.
18702         * object.h: Added new field in MonoThread to keep track of interruption
18703           requests.
18704
18705 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
18706
18707         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
18708         calls.
18709
18710 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18711
18712         * appdomain.c:
18713         * assembly.c:
18714         * gc.c:
18715         * locales.c:
18716         * mono-config.c:
18717         * rand.c: getenv -> g_getenv (windows!)
18718
18719         * process.c: complete_path is also used on non-windows platforms.
18720
18721 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18722
18723         * icall.c: new signature for Process_Start.
18724
18725         * process.[ch]: new signature for Process_Start. If we're on windows
18726         and UseShellExecute is false, we have to search for the program by
18727         ourselves if we don't get a full path.
18728
18729 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
18730
18731         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
18732         marshalling and call CleanUpNativeData if needed. Fixes #58646.
18733
18734 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18735
18736         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
18737         Fixes bug #58373.
18738
18739 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18740
18741         * process.c: use double quotes to quote program name and arguments on
18742         windows. Fixes bug #58575.
18743
18744 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18745
18746         * file-io.c: don't return "." and ".." when using windows Find*File.
18747
18748 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
18749
18750         * marshal.c: Don't pass wrappers to message init because method 
18751         addressed used to lookup metadata. part of remoting[2|3] fix.
18752
18753 2004-05-15  Jackson Harper  <jackson@ximian.com>
18754
18755         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
18756         path is essentially the same as MONO_PATH except that it points to
18757         GACs instead of lib directories.
18758         * loader.h: The user gac is gone so we dont need function to
18759         enable/disable it.
18760         * mono-config.c: user gac option is now gone.
18761         
18762 2004-05-15  Jackson Harper  <jackson@ximian.com>
18763
18764         * culture-info.h: Make defines more consistent, add calendar data
18765         to the culture info table.
18766         * culture-info-tables.h: Add basic calendar data. Basically
18767         everyone gets default gregorian until all the data is
18768         updated.
18769         * locales.c: Use the new consistent defines. Set calendar data for
18770         culture info objects.
18771         * object.h: add a field for calendar data to CultureInfo
18772         
18773 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
18774
18775         * image.c: image->runtime_invoke_cache is keyed on signatures now.
18776         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
18777         a signature.
18778         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
18779         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
18780         an extra param that is the pointer of the method to invoke. The IL for
18781         the invoke method is no longer specific to the method, but to the
18782         signature of the method. Thus, we can share the same code for multiple
18783         methods. This reduces the number of methods that have to be compiled.
18784
18785 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
18786
18787         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
18788
18789         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
18790
18791         * icall.c: Optimize Buffer.BlockCopy.
18792
18793 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18794
18795         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
18796         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
18797         quote). Changed them to "MMMM yyyy".
18798
18799 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
18800
18801         * rand.c
18802         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
18803
18804 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
18805
18806         * reflection.h: Updated after changes to managed structures.
18807
18808         * appdomain.c: Bump corlib version.
18809
18810 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18811
18812         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
18813         windows.
18814
18815 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18816
18817         * Makefile.am: link to ../os/libmonoos.la on windows.
18818
18819         * assembly.c:
18820                 -If MONO_DEBUG, warn about non-existing directories in
18821                 MONO_PATH.
18822                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
18823                 compile time variable.
18824                 -Removed init_default_path and call mono_set_rootdir from
18825                 libmonoos.a instead (windows only).
18826
18827         * assembly.h: declare mono_assembly_getrootdir().
18828
18829         * domain.c:
18830         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
18831
18832         * loader.c: s/getenv/g_getenv/
18833
18834 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
18835
18836         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
18837
18838         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
18839
18840         * metadata.h: Add new marshalling conversions.
18841
18842         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
18843         function.
18844
18845         * reflection.c (mono_reflection_get_type): Lookup the type in all
18846         modules of a multi-module assembly. Fixes #58291.
18847
18848 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
18849
18850         * threads.c: Before aborting a background, set the StopRequested
18851         state.  This avoids throwing the Abort exception.
18852         In mono_thread_manage, don't continue with the shutdown until all
18853         aborted threads have actually stopped.
18854
18855 2004-05-10  Jackson Harper  <jackson@ximian.com>
18856
18857         * locales.c: Remove the modifier from culture names.
18858         
18859 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18860
18861         * Makefile.am: monosn is not installed any more. It has been deprecated
18862         in favor of sn.
18863
18864 2004-05-07  Jackson Harper  <jackson@ximian.com>
18865
18866         * locales.c
18867         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
18868         Fix array construction, add bailout if the length is 0.
18869
18870 2004-05-07  Dick Porter  <dick@ximian.com>
18871
18872         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
18873         machine doesn't have a DNS entry.  Patch by Urs Muff
18874         (umuff@quark.com), fixes bug 57928.
18875
18876 2004-05-06  Jackson Harper  <jackson@ximian.com>
18877
18878         * reflection.c: Handle null PublicTokens properly. alloc mem for
18879         assembly names culture so we dont crash when freeing it.
18880         
18881 2004-05-06  Jackson Harper  <jackson@ximian.com>
18882
18883         * assembly.c: Check the usergac when loading with partial names.
18884         
18885 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
18886
18887         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
18888         does nothing for now (not required for Linux/Windows) but the class
18889         library can call it (and a newer or modified runtime could need it).
18890         * icall.c: Registred icall.
18891
18892 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18893
18894         * loader.c: prints a message on module loading error we set MONO_DEBUG
18895         environment variable.
18896
18897 2004-05-05  Jackson Harper  <jackson@ximian.com>
18898
18899         * appdomain.c: Handle PublicKeyToken=null properly.
18900         
18901 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
18902
18903         * environment.c|h: Added icall ves_icall_System_Environment_
18904         GetOSVersionString to get the current OS version as a string.
18905         * icall.c: Registred icall.
18906
18907 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
18908
18909         * object.c: in mono_object_get_virtual_method(), take into account that
18910         non-virtual methods don't have a slot in the vtable. Check needed when
18911         the object is a proxy.
18912
18913 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
18914
18915         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
18916         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
18917
18918         * object.c (mono_class_compute_gc_descriptor): Fix warning.
18919
18920         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
18921         passed when a valuetype is expected.
18922
18923         * object.c (mono_unhandled_exception): Only set the exit code if the
18924         exception happens in the main thread. Fixes thread5.exe.
18925
18926         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
18927         invalid names. Fixes #58047.
18928
18929 2004-05-03  Jackson Harper  <jackson@ximian.com>
18930
18931         * assembly.c: This line was committed accidently and is unneeded.
18932         
18933 2004-05-03  Jackson Harper  <jackson@ximian.com>
18934
18935         * icall.c: Add new icall for Assembly::LoadWithPartialName
18936         * assembly.c/.h: new function that probes the GAC to load partial
18937         assembly names by Paolo Molaro.
18938         
18939 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18940
18941         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
18942         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
18943         (type_get_fully_qualified_name): Added PublicKeyToken when building a
18944         full type name.
18945
18946 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18947
18948         * appdomain.c: fixed check for 'neutral' culture and removed warning.
18949         * reflection.c: fix bug when parsing a full type name and Version is not
18950         the last thing in the string.
18951
18952 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
18953
18954         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
18955         crashes when it is freed.
18956
18957 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18958
18959         * assembly.c: print the compat warning to stderr.
18960
18961 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
18962
18963         * assembly.c (mono_assembly_load_references): Add a compatibility
18964         hack to run old applications that might be still referencing the
18965         3300-based assemblies, only do this for System.xxx.
18966
18967 2004-05-01  Jackson Harper  <jackson@ximian.com>
18968
18969         * appdomain.c: If the culture is neutral we set it to "".
18970         
18971 2004-04-29  Jackson Harper  <jackson@ximian.com>
18972
18973         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
18974
18975 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
18976  
18977         * string-icalls.c: added low overhead function for copying chars
18978         * icall.c: added needed icall for the above function
18979  
18980 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18981
18982         * icall.c: fix return value of get_global_assembly_cache.  Implemented
18983         Environment.GetLogicalDrives.
18984
18985 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
18986
18987         * rand.c: try and talk to egd or prngd
18988         for random bytes if opening devices fail.
18989
18990 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
18991
18992         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
18993         alignment for the type using the native alignment of its members 
18994         instead of using klass->min_align.
18995
18996         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
18997
18998 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18999
19000         * file-io.c:
19001         * socket-io.c: added check for sys/aio.h.
19002
19003 2004-04-28  Dick Porter  <dick@ximian.com>
19004
19005         * threads.c: Don't abort a thread thats already aborting, when
19006         terminating everything.
19007
19008 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19009
19010         * icall.c: added 2 new async calls for Socket.
19011
19012         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
19013         IO on *nix systems.
19014
19015         * threadpool.c: removed unused variable.
19016
19017 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
19018
19019         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
19020
19021 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
19022
19023         * locales.c: put back string_invariant_tolower () and
19024         string_invariant_toupper ().
19025
19026 2004-04-26 David Waite <mass@akuma.org>
19027
19028         * file-io.h:
19029         * socket-io.h:
19030         * threads.h:
19031         * unicode.h: remove comma from end of enumeration declarations
19032
19033 2004-04-26 David Waite <mass@akuma.org>
19034
19035         * debug-mono-symfile.h:
19036         * decimal.c:
19037         * mono_debug.h:
19038         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
19039
19040
19041 2004-04-26  Jackson Harper  <jackson@ximian.com>
19042
19043         * appdomain.c: Increment version number.
19044         
19045 2004-04-26  Jackson Harper  <jackson@ximian.com>
19046
19047         * appdomain.c: Set assembly references public token value when
19048         PublicKeyToken is specified, not the hash_value. Free public token
19049         values when free assembly name data. Previously the public key
19050         token was hex decoded, however we are using hex encoded public key
19051         tokens, so this is not neccasary.
19052         * assembly.c: Lookup assemblies in the gac if their public token
19053         value is set. Add function to allow enabling user gac
19054         lookups. Specify whether or not the assembly was loaded from the
19055         GAC. Compare full assembly names when checking the cache for
19056         assemblies (Temporarily disabled see comment in code). Remove
19057         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
19058         specifies trace-loader they get extra info to stdout on the
19059         loading of assemblies.
19060         * image.h: Add a field for an assembly references public token
19061         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
19062         whether an assembly has been loaded from the GAC.
19063         * image.c: Remove a corlib -> mscorlib name mapping.
19064         * loader.h: Add function to enable/disable the user gac.
19065         * mono-config.c: Check if the usergac is enabled in the config
19066         file.
19067         * icall.c: New icall to determine whether or not an assembly has
19068         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
19069         * tabldefs.h: Add constant for assemblyref flag that specifies a
19070         full public key is used instead of a public token.
19071         * reflection.c: Remove mscorlib -> corlib mappings. Set
19072         PublicTokenValue instead of hash value. This value is a hex
19073         string so it does not need to be expanded.
19074
19075 2004-04-26  Martin Baulig  <martin@ximian.com>
19076
19077         * mono-debug-debugger.c (mono_debugger_initialize): Set
19078         `mono_debugger_initialized' before calling mono_debug_lock().
19079
19080 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
19081
19082         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
19083           InternalToUpper/InternalToLower.
19084         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
19085           removed invariant culture shortcut.  This is now done in managed code.
19086         * locales.c: (string_invariant_toupper/tolower) removed.
19087
19088 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19089
19090         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
19091         Added Poll internal call.
19092
19093         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
19094         call for Poll. Select was too heavy for polling a single socket.
19095
19096         * threadpool.[ch]: added mono_threadpool_cleanup.
19097         * threads.c: use it. Don't use Thread_Abort on windows.
19098
19099 2004-04-23  Martin Baulig  <martin@ximian.com>
19100
19101         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
19102
19103 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
19104
19105         * icall.c: Registred new icalls for key pair protection and added an
19106         icall for Environment.GetFolderPath on Windows.
19107         * security.c|h: Added new icalls for key pair protection.
19108
19109 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19110
19111         * socket-io.c: don't display the non-supported family warning for known
19112         families. Now this is not displayed on windows when checking support
19113         for IPv4/IPv6.
19114
19115 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19116
19117         * class.c: don't display the layout warning for static fields.
19118
19119 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
19120
19121         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
19122         * locales.c, locales.h: Added new icalls for culture-specific
19123         Char.ToLower and Char.ToUpper.
19124
19125 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19126
19127         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
19128         by David Waite.
19129
19130 2004-04-20  Martin Baulig  <martin@ximian.com>
19131
19132         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
19133         of the type name before passing it to mono_reflection_type_from_name().
19134
19135 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
19136
19137         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
19138         encodings here. Fixes #56965.
19139
19140 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
19141
19142         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
19143         fix test on strstr result not that I can see anything that
19144         relies on the result.
19145
19146 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
19147
19148         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
19149         Fixes #57081.
19150
19151         * marshal.c (mono_marshal_get_string_encoding): New helper function.
19152
19153         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
19154         function to determine which marshalling to use for strings. Fixes
19155         #56965.
19156
19157         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
19158
19159         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
19160
19161 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
19162
19163         * icall.c: #include mono-config.h
19164
19165 2004-04-15  Jackson Harper  <jackson@ximian.com>
19166
19167         * culture-info-tables.h: Fix date formats for en-US culture.
19168         
19169 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
19170
19171         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
19172         ThreadPool.SetMinThreads.
19173         * threadpool.c: Implemented ThreadPool.GetMinThreads and
19174         ThreadPool.SetMinThreads.
19175
19176 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
19177
19178         * mono-config.c: also load the .config file in the directory
19179         where the assembly was found.
19180
19181 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
19182
19183         * assembly.c: load per-assembly config files.
19184         * icall.c: decrapified code to get the config dir and moved to
19185         mono-config.c.
19186         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
19187         per-assembly config files. When doing a dll map lookup give precedence
19188         to the per-assembly data.
19189
19190 2004-04-14  Martin Baulig  <martin@ximian.com>
19191
19192         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
19193         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
19194         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
19195
19196         * mono-debugger-debugger.c: While the debugger is locked, remember
19197         whether the symbol tables have changes and send one single
19198         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
19199
19200 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
19201
19202         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
19203
19204         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
19205         function.
19206
19207         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
19208         account when marshalling string arrays. Fixes #56965.
19209
19210 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
19211
19212         * icall.c: Add new icalls mapping for security.
19213         * security.c|h: Add internal calls for WindowsIdentity,
19214         WindowsImpersonationContext and WindowsPrincipal.
19215
19216 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
19217
19218         * class.c: Added comment to ensure the System.MonoDummy class
19219         is removed when no longer necessary
19220
19221 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
19222
19223         * appdomain.c: Pass arguments to the bootstraping exceptions to
19224         minimize JITed methods at boot
19225
19226         * metadata.c (mono_exception_from_name_two_strings): Allow for the
19227         second string to be null.
19228
19229         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
19230         Change the protocol to minimize the JIT methods at startup.  Now
19231         it Returns the internal codepage, if the value of "int_code_page"
19232         is 1 at entry, and we can not compute a suitable code page
19233         number, returns the code page as a string.
19234
19235 2004-04-13  Jackson Harper  <jackson@ximian.com>
19236
19237         * culture-info-tables.h: Fix number of decimal digits for all
19238         english locales.
19239
19240 2004-04-13  Jackson Harper  <jackson@ximian.com>
19241
19242         * icall.c: Clairfy out of sync error message. It is not always
19243         your corlib that is out of sync.
19244
19245 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
19246
19247         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
19248         properties when only the set accessor is overriden. Fixes #55874.
19249
19250 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
19251
19252         * assembly.c (mono_assembly_load_references): Make this thread safe.
19253         Fixes #56327.
19254
19255 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
19256
19257         * monosn.c: Add missing initialization calls.
19258
19259 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
19260
19261         * locales.c:
19262         ves_icall_System_Globalization_CultureInfo_construct_number_format
19263         Fix g_assert so it compiles on fussier compilers re int/ptr
19264         mismatch
19265
19266 2004-04-08  Dick Porter  <dick@ximian.com>
19267
19268         * socket-io.h:
19269         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
19270         53992.  Also rearrange the code so that the internal calls return
19271         an error value and exceptions are thrown from managed code.
19272
19273         * icall.c: Add type info to the socket icalls.
19274
19275 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19276
19277         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
19278         owes me a beer.
19279
19280 2004-04-07  Martin Baulig  <martin@ximian.com>
19281
19282         * class.c (mono_class_from_generic_parameter): Don't default
19283         `klass->parent' to `mono_defaults.object_type'.
19284
19285 2004-04-07  Martin Baulig  <martin@ximian.com>
19286
19287         * reflection.c (mono_reflection_initialize_generic_parameter): Set
19288         `param->pklass->reflection_info'.       
19289
19290 2004-04-07  Jackson Harper  <jackson@ximian.com>
19291
19292         * culture-info-tables.h: Fix date separator symbol.
19293         
19294 2004-04-07  Martin Baulig  <martin@ximian.com>
19295
19296         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
19297         from System.Type to System.MonoType.
19298
19299 2004-04-07  Martin Baulig  <martin@ximian.com>
19300
19301         * reflection.h
19302         (MonoReflectionGenericParam): Added `has_reference_type' and
19303         `has_value_type' fields.
19304
19305         * reflection.c (mono_image_get_generic_param_info): Encode the
19306         correct flags if we have the `class' or `struct' constraint.
19307
19308 2004-04-07  Martin Baulig  <martin@ximian.com>
19309
19310         * reflection.h
19311         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
19312
19313 2004-04-07  Jackson Harper  <jackson@ximian.com>
19314
19315         * appdomain.c: Revert extra patches, just wanted to bump the
19316         version number.
19317         
19318 2004-04-07  Jackson Harper  <jackson@ximian.com>
19319
19320         * Makefile.am: Add culture-info private headers.
19321         * icall.c: Add new icalls for contructing locales.
19322         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
19323         * locales.h: Declare new culture info construction methods.
19324         * object.h: Add new fields used to avoid the CultureMap to
19325         MonoCultureInfo.
19326         * culture-info.h: Definition of structs used in the culture info
19327         tables.
19328         * culture-info-tables.h: Autogenerated tables that contain culture
19329         info data. This file was generated with the locale-builder tool.
19330         * appdomain.c: Incement corlib version number.
19331         
19332 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
19333
19334         * appdomain.c: (mono_runtime_init) move mono_thread_init
19335         to before mono_object_new calls so critical sections
19336         are initialized before use.
19337
19338 2004-04-07  Martin Baulig  <martin@ximian.com>
19339
19340         * icall.c
19341         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
19342         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
19343         (ves_icall_MonoGenericParam_initialize): Removed.
19344         (monogenericparam_icalls): Removed.
19345         (generictypeparambuilder_icalls): Added new table for
19346         System.Reflection.Emit.GenericTypeParameterBuilder.
19347
19348         * reflection.c
19349         (mono_reflection_define_generic_parameter): Removed.
19350         (mono_reflection_initialize_generic_parameter): This is now called
19351         from GenericTypeParameterBuilder's .ctor.
19352
19353 2004-04-06  Martin Baulig  <martin@ximian.com>
19354
19355         * class.c (mono_class_init): Don't inflate nested classes in a
19356         generic instance.
19357         (mono_type_get_name_recurse): Include the generic arguments for
19358         generic instances and generic type declarations.
19359         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
19360         (_mono_class_get_instantiation_name): Removed.
19361         (mono_class_create_generic): Always use `gklass->name' as our name.
19362
19363         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
19364
19365         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
19366         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
19367         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
19368         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
19369         closed generic methods here.
19370
19371         * reflection.c
19372         (mono_reflection_generic_inst_get_nested_types): Removed.
19373         (inflate_mono_method): Copy the generic parameters from the
19374         MonoMethodHeader into out MonoGenericMethod.
19375
19376 2004-04-06  Martin Baulig  <martin@ximian.com>
19377
19378         * row-indexes.h
19379         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
19380
19381         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
19382
19383         * reflection.c (build_compressed_metadata): If we have any entries
19384         in the GenericParam, MethodSpec or GenericParamConstraint tables,
19385         set the header version to 1.1.
19386
19387 2004-04-06  Martin Baulig  <martin@ximian.com>
19388
19389         * class.c (mono_class_init): If we're a generic instance,
19390         initialize our nested classes, too.
19391         (_mono_class_get_instantiation_name): Deal with the new `!%d'
19392         suffix. 
19393
19394 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19395
19396         * process.c: quote the argument passed to the shell on windows.
19397
19398 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
19399
19400         * threads.c (mono_alloc_special_static_data): Allow this to be
19401         called during startup.
19402
19403 2004-04-02  Martin Baulig  <martin@ximian.com>
19404
19405         * icall.c
19406         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
19407
19408 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
19409
19410         * icall.c: Fix build.
19411
19412 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
19413
19414         * Makefile.am: Added security.c|h.
19415         * icall.c: Added icall for get_UserName;
19416         * security.c: New file for security related icalls. Added function
19417         get_UserName for System.Environment (fix #56144).
19418         * security.h: New. Header file for security.c
19419
19420 2004-04-02  Dick Porter  <dick@ximian.com>
19421
19422         * icall.c: Deleted the icalls that were obsoleted some time ago
19423         by the ICU string code, and which were mixed into the icall
19424         rearranging.  Fixes bug 55969.
19425
19426         * string-icalls.h: 
19427         * string-icalls.c: Deleted the code that those icalls reference.
19428
19429 2004-04-01  Martin Baulig  <martin@ximian.com>
19430
19431         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
19432
19433         * class.c (mono_class_from_generic_parameter): Don't set 
19434         TYPE_ATTRIBUTE_INTERFACE.
19435         (my_mono_class_from_generic_parameter): Likewise.
19436
19437 2004-04-01  Martin Baulig  <martin@ximian.com>
19438
19439         * loader.c (find_method): Added an optional `MonoClass *ic'
19440         argument to search in a specific interface.
19441         (mono_get_method_constrained): New public function.
19442
19443 2004-04-01  Martin Baulig  <martin@ximian.com>
19444
19445         * reflection.c (mono_image_get_generic_field_token): Use the
19446         `handleref' cache here.
19447
19448 2004-04-01  Martin Baulig  <martin@ximian.com>
19449
19450         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
19451
19452         * reflection.c (create_generic_typespec): Use the `typespec' hash
19453         here, not the `typeref' one.    
19454
19455 2004-04-01  Martin Baulig  <martin@ximian.com>
19456
19457         * class.c (mono_class_inflate_generic_type): Moved the
19458         functionality into a new static inflate_generic_type() which
19459         returns NULL if it didn't do anything.  Only increment the
19460         `mono_stats.inflated_type_count' if we actually inflated
19461         something.
19462         (mono_class_get_full): Check the classes type to see whether we
19463         need to inflate it; also inflate MONO_TYPE_(M)VAR.
19464
19465 2004-04-01  Jackson Harper  <jackson@ximian.com>
19466
19467         * reflection.c: Set culture for assembly references.
19468         
19469 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
19470
19471         * reflection.[ch], icall.[ch], Fix support for pinning variables.
19472
19473 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19474
19475         * assembly.c:
19476         (do_mono_assembly_open): the critical section also covers
19477         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
19478
19479 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19480
19481         * threads.c:
19482         (mono_manage_threads): abort the background threads when finishing.
19483         Fixes bug #47232.
19484
19485 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19486
19487         * gc.c: only close the done_event handle if there was no timeout.
19488         C-ified comments.
19489
19490 2004-03-30  Martin Baulig  <martin@ximian.com>
19491
19492         * icall.c (icall_entries): It's called "System.Activator", not
19493         "System.Activation".    
19494
19495 2004-03-30  Martin Baulig  <martin@ximian.com>
19496
19497         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
19498         (mono_class_create_from_typespec): Likewise.
19499
19500 2004-03-30  Martin Baulig  <martin@ximian.com>
19501
19502         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
19503         `has_ctor_constraint' and `initialized'.
19504
19505 2004-03-30  Martin Baulig  <martin@ximian.com>
19506
19507         * reflection.c (encode_new_constraint): New static function to add
19508         the constructor constraint attribute to a type parameter.
19509         (encode_constraints): Call encode_new_constraint() if necessary.
19510
19511         * reflection.h
19512         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
19513
19514         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
19515         
19516 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
19517
19518         * reflection.c, icall.c: add support for pinning variables. 
19519
19520 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
19521
19522         * marshal.c (mono_marshal_get_managed_wrapper):
19523         init bool local with zero rather than null.
19524
19525 2004-03-29  Martin Baulig  <martin@ximian.com>
19526
19527         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
19528         the "official" behavior here.
19529         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
19530
19531 2004-03-29  Martin Baulig  <martin@ximian.com>
19532
19533         * icall.c: Reflect latest API changes.
19534
19535 2004-03-29  Martin Baulig  <martin@ximian.com>
19536
19537         * loader.c (mono_get_method_from_token): Also call
19538         mono_metadata_load_generic_params () for abstract and interface
19539         methods; replace the type arguments in the method signature with
19540         the ones which are loaded from the metadata.
19541
19542 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
19543
19544         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
19545         of the lock is not the current thread. MS.NET don't do it, in spite of
19546         what the documentation says. See bug #56157.
19547
19548 2004-03-28  Martin Baulig  <martin@ximian.com>
19549
19550         * class.c (mono_class_init): Don't call init_properties() and
19551         init_events() for generic instances; set `prop->parent' when
19552         inflating properties.
19553
19554         * reflection.c (mono_generic_inst_get_object): Call
19555         `mono_class_init (ginst->klass)'.
19556         (mono_type_get_object): Only create a MonoGenericInst if your
19557         generic type is a TypeBuilder.
19558         (do_mono_reflection_bind_generic_parameters): Only set
19559         `ginst->is_dynamic' if our generic type is a TypeBuilder.
19560
19561 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
19562
19563         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
19564         Fixes #56091.
19565
19566 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19567
19568         * icall.c: added Kill_internal icall.
19569         * process.[ch]: added Kill_internal icall.
19570
19571 2004-03-25  Martin Baulig  <martin@ximian.com>
19572
19573         * class.h (MonoStats): Added `generic_instance_count',
19574         `inflated_method_count', `inflated_type_count' and
19575         `generics_metadata_size'.       
19576
19577 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19578
19579         * reflection.c: no warnings now.
19580
19581 2004-03-25  Martin Baulig  <martin@ximian.com>
19582
19583         * class.c (mono_class_get_full): New public function; does a
19584         mono_class_get(), but also takes a `MonoGenericContext *'.
19585
19586         * loader.c (mono_field_from_memberref): Renamed to
19587         `field_from_memberref', made static and added `MonoGenericContext *'
19588         argument.
19589         (mono_field_from_token): Added `MonoGenericInst *' argument.
19590         (method_from_memberef): Likewise.
19591         (mono_get_method_from_token): Likewise.
19592         (mono_get_method_full): New public function; does a
19593         mono_get_method(), but also takes a `MonoGenericContext *'.
19594
19595         * verify.c (mono_method_verify): Get the method's generic context
19596         and pass it to mono_field_from_token(), mono_get_method_full() and
19597         mono_class_get_full().
19598
19599 2004-03-25  Martin Baulig  <martin@ximian.com>
19600
19601         * class.c (mono_class_inflate_generic_type): Take a
19602         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
19603         `MonoGenericMethod *'.
19604
19605 2004-03-25  Martin Baulig  <martin@ximian.com>
19606
19607         * loader.h (MonoMethodInflated): Store the MonoGenericContext
19608         instead of the MonoGenericMethod here.
19609
19610 2004-03-25  Martin Baulig  <martin@ximian.com>
19611
19612         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
19613         each time we create a new MonoGenericInst, we also create a new
19614         context which points back to us.
19615
19616         * class.c (inflate_method): Use `ginst->context' instead of
19617         creating a new context.
19618
19619         * loader.c (method_from_memberref): Use
19620         `klass->generic_inst->context' instead of creating a new context.
19621
19622 2004-03-25  Martin Baulig  <martin@ximian.com>
19623
19624         * class.h (MonoGenericContext): New struct.
19625         (MonoGenericMethod): Removed `generic_inst'.
19626
19627         * class.c (mono_class_inflate_generic_method): Take a
19628         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
19629
19630 2004-03-25  Martin Baulig  <martin@ximian.com>
19631
19632         * loader.h (MonoMethodInflated): New typedef.
19633
19634         * metadata.h (MonoMethodSignature): Removed `gen_method', make
19635         `generic_param_count' consume just 30 bits, added `is_inflated'
19636         and `has_type_parameters' flags (one bit each).
19637
19638         * class.c (mono_class_inflate_generic_method): Create a
19639         MonoMethodInflated instead of a MonoMethodNormal and set
19640         `is_inflated' in the method signature.
19641
19642         * class.h (MonoGenericMethod): Removed `generic_method'.
19643
19644 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
19645
19646         * image.c: Make sure the name of a MonoImage is always an absolute path.
19647           This fixes bug #54415.
19648
19649 2004-03-24  Martin Baulig  <martin@ximian.com>
19650
19651         * class.c (mono_class_setup_vtable): If we're a generic instance,
19652         use our generic type's vtable size.
19653
19654 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
19655
19656         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
19657         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
19658         problems.
19659
19660 2004-03-23  Martin Baulig  <martin@ximian.com>
19661
19662         * class.h (MonoDynamicGenericInst): Added `int count_events' and
19663         `MonoEvent *events'.
19664
19665         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
19666         (typebuilder_icalls): Added "get_event_info"; calls
19667         mono_reflection_event_builder_get_event_info(). 
19668
19669         * reflection.c (mono_reflection_generic_inst_initialize): Added
19670         `MonoArray *events'.
19671         (mono_reflection_event_builder_get_event_info): New function.
19672
19673 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
19674
19675         * object.h: add mono_type_initialization_init
19676
19677         * object.c (mono_runtime_class_init): 
19678         implement class constructor synchronization rules
19679         to cope with threading issues.  
19680         add mono_type_initialization_init
19681
19682         * appdomain.c (mono_runtime_init): call 
19683         mono_type_initialization_init
19684
19685         * class.h: removing initializing field from MonoVTable
19686
19687 2004-03-23  Martin Baulig  <martin@ximian.com>
19688
19689         * class.c (my_mono_class_from_generic_parameter): Use
19690         `param->name' if it's not NULL. 
19691
19692 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
19693
19694         * class.c: do not insert non-virtual methods in the vtable.
19695         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
19696         that means the method is non-virtual. This never would have
19697         happened before.
19698
19699 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
19700
19701         * profiler.c: Added lock for accessing coverage_hash.
19702
19703 2004-03-22  Martin Baulig  <martin@ximian.com>
19704
19705         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
19706         `method->method->signature->generic_param_count != 0' to make it
19707         work for interface methods.
19708
19709 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19710
19711         * process.c: quote the string passed to the shell using g_shell_quote.
19712
19713 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19714
19715         * threads.c:
19716         (mono_threads_manage): don't remove the finalizer thread and self
19717         from the threads hash table so that mono_thread_manage can be called
19718         more than once.
19719
19720 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19721
19722         * process.c: quote the arguments when UseShellExecute is true. Fixes
19723         bug #55790.
19724
19725 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19726
19727         * threads.c: set mono_thread_detach as a cleanup routine for every
19728         thread. This way it's always executed upon thread termination, either
19729         aborted or finished normally. No more xsp hangs!
19730
19731 2004-03-17  Martin Baulig  <martin@ximian.com>
19732
19733         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
19734         `int count_nested' and a `MonoType **nested'.
19735
19736         * reflection.c (mono_reflection_bind_generic_parameters): Moved
19737         most of the functionality into a new static
19738         do_mono_reflection_bind_generic_parameters() and don't take a
19739         `MonoType *nested_in' argument any more.  Don't compute nested
19740         types here.
19741         (mono_reflection_generic_inst_get_nested_types): New public method
19742         to get nested types.
19743
19744         * class.c (mono_class_create_generic): Set `klass->nested_in' if
19745         we're a nested class.
19746
19747         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
19748         mono_reflection_generic_inst_get_nested_types() to compute the
19749         nested types.
19750
19751 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
19752
19753         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
19754         descriptive error message under windows.
19755         
19756 2004-03-17  Martin Baulig  <martin@ximian.com>
19757
19758         * class.c (dup_type): Added `const MonoType *original' argument;
19759         copy the attrs from the original type.
19760
19761 2004-03-17  Martin Baulig  <martin@ximian.com>
19762
19763         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
19764         `m->generic_inst_cache' here.
19765
19766 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
19767
19768         * exception.h exception.c: Add stack_overflow_exception.
19769
19770 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19771
19772         * threadpool.c:
19773         (overlapped_callback): call SetEvent *after* invoking the callback.
19774         No need to call CloseHandle.
19775
19776 2004-03-16  Martin Baulig  <martin@ximian.com>
19777
19778         * reflection.c (mono_image_get_fieldref_token): Take a
19779         `MonoReflectionField *' instead of a `MonoClassField *' and a
19780         `MonoClass *'; store the `MonoReflectionField *' in the hash.
19781
19782 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19783
19784         * appdomain.c: don't add the culture to the filename we're looking for
19785         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
19786
19787 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19788
19789         * locales.c: don't ignore symbols when doing case insensitive compares.
19790         Thanks Dick! Fixes bug #54046.
19791
19792         * threads.c: surround 'threads' usage with enter/leave in
19793         mono_thread_manage.
19794
19795 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
19796
19797         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
19798         implicitly marshalled as [Out]. Fixes #55450.
19799
19800         (mono_marshal_get_runtime_invoke): Zero out the result if there is
19801         an exception.
19802
19803 2004-03-16  Martin Baulig  <martin@ximian.com>
19804
19805         * class.c (mono_class_from_generic_parameter): Use the actual
19806         parameter name. 
19807
19808 2004-03-16  Martin Baulig  <martin@ximian.com>
19809
19810         * reflection.c (type_get_signature_size): New static function.
19811         Compues the size of the type in a method signature.
19812         (method_get_signature_size): New static function; calls
19813         type_get_signature_size() to compute the actual size of the
19814         method's signature.
19815         (method_encode_signature): Use method_get_signature_size() to get
19816         the signature's size rather than using `nparams * 10'.
19817
19818 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19819
19820         * file-io.h: define here WapiOverlapped on windows. I don't want the
19821         regular OVERLAPPED one.
19822
19823         * file-io.c:
19824         * threadpool.c: somehow, BindIoCompletionCallback is not found.
19825         Disabling AIO on windows.
19826
19827 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19828
19829         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
19830         bug #55385.
19831
19832 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19833
19834         * appdomain.c: upgraded corlib version.
19835
19836         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
19837         and BeginWrite. Allow opening files for asynchrnous operations.
19838
19839         * file-io.h: new struct that maps FileStreamAsyncResult.
19840         * icall.c: added new icalls.
19841         * process.[ch]: support setting child process environment variables
19842         and use the SHELL or COMSPEC when UseShellExecute is true.
19843
19844         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
19845         callback for async. IO is here and also BindHandle.
19846
19847         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
19848         from here.
19849
19850 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
19851
19852         * reflection.c (create_custom_attr): Allow len == 0.
19853
19854         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
19855         computation on big-endian machines.
19856
19857 2004-03-13  Martin Baulig  <martin@ximian.com>
19858
19859         * class.h (MonoGenericInst): Added `int count_ifaces'.
19860
19861         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
19862         `ginst->count_ifaces' instead `klass->interface_count' since we
19863         may get called before the vtable is created.
19864
19865         * loader.c (mono_method_get_param_names): If we're a generic
19866         instance, return and don't initialize the class.
19867
19868         * reflection.c (mono_reflection_setup_generic_class): Don't call
19869         ensure_runtime_vtable().
19870         (mono_reflection_bind_generic_parameters): Set
19871         `ginst->count_ifaces'.
19872
19873 2004-03-11  Jackson Harper <jackson@ximian.com>
19874
19875         * icall.c:
19876         * unicode.c:
19877         * unicode.h: Remove unused System.Char icalls.
19878         
19879 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
19880
19881         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
19882         code when we P/Invoke the first library in Windows.Forms, instead
19883         of when we first open the assembly.
19884
19885         * assembly.c: Drop the lookup from here.
19886
19887 2004-03-10  Martin Baulig  <martin@ximian.com>
19888
19889         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
19890         class for properties, fields and events.  Finally fixes #54945.
19891
19892 2004-03-10  Martin Baulig  <martin@ximian.com>
19893
19894         * metadata.c (mono_metadata_class_equal): New static function;
19895         checks whether two generic instances or two generic parameters are
19896         equal.
19897         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
19898         compare classes.        
19899
19900 2004-03-10  Martin Baulig  <martin@ximian.com>
19901
19902         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
19903
19904         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
19905         argument and write it into the `reflection_info' field.
19906
19907         * icall.c
19908         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
19909         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
19910
19911 2004-03-09  Jackson Harper  <jackson@ximian.com>
19912
19913         * char-conversions.h: use 8 bits for numeric data its all we need
19914         * icall.c: numeric data is only 8 bits now.
19915
19916 2004-03-09  Martin Baulig  <martin@ximian.com>
19917
19918         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
19919
19920         * class.c (init_properties, init_events): Initialize the new
19921         `parent' field.
19922
19923         * reflection.c (typebuilder_setup_properties): Likewise.
19924         (typebuilder_setup_events): Likewise.
19925
19926         * reflection.h (MonoEventInfo): Replaced `parent with
19927         `declaring_type' and `reflected_type'.
19928
19929         * icall.c (ves_icall_get_property_info): Distinguish between
19930         declaring and reflected type.
19931         (ves_icall_get_event_info): Likewise.
19932
19933 2004-03-09  Martin Baulig  <martin@ximian.com>
19934
19935         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
19936         (ves_icall_Type_GetField): Correctly set field->klass.
19937
19938 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
19939
19940         * loader.h: Fix warning.
19941
19942 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
19943
19944         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
19945         library routine if present.  Notice that it will still continue
19946         executing even if its missing, for those working on the Gtk#
19947         edition of Windows.Forms.
19948
19949         * assembly.c (do_mono_assembly_open): If loading the
19950         System.Windows.Forms call mono_loader_wini_init.
19951
19952 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
19953
19954         * class.h: Added MonoRemoteClass struct.
19955         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
19956         function for MonoStrings.
19957         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
19958         Added internal call for getting the proxy type.
19959         * marshal.c: Get the type of transparent proxies from its remote_class.
19960         Added methods that generate the IL for type checks and casts:
19961         mono_marshal_get_isinst, mono_marshal_get_castclass, 
19962         mono_marshal_get_proxy_cancast.
19963         * marshal.h: Declaration of the previous new methods.
19964         * object.c: Added new moethods for creating and updating MonoRemoteClass
19965         instances: mono_remote_class, mono_upgrade_remote_class, 
19966         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
19967         * verify.c: FIx transparent_proxy_fields layout.
19968         * appdomain.c: Bump corlib version.
19969
19970 2004-03-04  Jackson Harper  <jackson@ximian.com>
19971
19972         * icall.c: Add icall to access char conversion tables.
19973         * char-conversions.h: Character conversion tables.
19974         * Makefile.am: Add char-conversions.h private header file.
19975         
19976 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
19977
19978         * appdomain.c (unload_thread_main): Increase unloading timeout to
19979         10 sec as a temporary workaround for Nant problems.
19980
19981 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
19982
19983         * gc.c: Add checks for GC_enable and GC_disable.
19984
19985         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
19986         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
19987         (bug #54988).
19988         
19989 2004-02-27  Martin Baulig  <martin@ximian.com>
19990
19991         * reflection.c (mono_reflection_bind_generic_parameters): Take a
19992         `MonoReflectionType *' instead of a `MonoType *'.
19993
19994 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
19995
19996         * gc.c (run_finalize): Avoid finalizing the object representing the
19997         finalizer thread.
19998         (finalizer_thread): Fix warning.
19999
20000 2004-02-25  Martin Baulig  <martin@ximian.com>
20001
20002         * class.c (_mono_class_get_instantiation_name): Added `int offset'
20003         argument for nested types.
20004         (mono_class_create_generic): Added support for nested generictypes.
20005
20006         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
20007         `GList *nested'.
20008
20009         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
20010
20011         * reflection.c (method_encode_signature): Increase the minimum
20012         value of `size' from 10 to 11.
20013         (mono_reflection_bind_generic_parameters): Take `int type_argc'
20014         and `MonoType **types' arguments instead of the `MonoArray
20015         *types'; added `MonoType *nested_in'.  Recursively instantiate
20016         nested classes. 
20017
20018 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
20019
20020         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
20021         stack_overflow_ex members which are used by exception handling.
20022
20023         * appdomain.c (mono_runtime_init): Initialize the new members.
20024
20025         * gc.c (mono_gc_enable): New helper function.
20026         * gc.c (mono_gc_disable): New helper function.
20027
20028 2004-02-23  Martin Baulig  <martin@ximian.com>
20029
20030         * icall.c: I must have been really stupid - make it actually work
20031         this time ;-)
20032
20033 2004-02-23  Martin Baulig  <martin@ximian.com>
20034
20035         * loader.c (method_from_memberref): Only inflate the method if
20036         it's in another klass.
20037
20038 2004-02-23  Martin Baulig  <martin@ximian.com>
20039
20040         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
20041         (mono_class_init): If we're a generic instance and an interface,
20042         compute `class->interface_id'; also create `class->interfaces'
20043         here and inflate them.
20044
20045         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
20046         `ginst->is_open'.
20047         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
20048
20049         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
20050
20051 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
20052
20053         * reflection.c (method_encode_code): Improved the error message
20054         generated by the exception.
20055
20056 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20057
20058         * icall.c: Martin did not do what he said in the ChangeLog for
20059         2004-02-18, but put back the changes for properties and events.
20060         Commenting those changes out again and adding comment to bug #54518.
20061         
20062         * process.c: removed warning.
20063
20064 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
20065
20066         * marshal.c (emit_struct_conv): Print an error message instead of
20067         asserting when a type does not have the StructLayout attribute.
20068
20069 2004-02-20  Martin Baulig  <martin@ximian.com>
20070
20071         * reflection.c (mono_type_get_object): Also use the cache for
20072         generic instances.
20073         (mono_reflection_bind_generic_parameters): Always compute
20074         `ginst->ifaces'.        
20075
20076 2004-02-20  Martin Baulig  <martin@ximian.com>
20077
20078         * class.h (MonoGenericMethod): Removed `klass'.
20079
20080         * class.c (mono_class_inflate_generic_method): Added `MonoClass
20081         *klass' argument.
20082
20083 2004-02-20  Martin Baulig  <martin@ximian.com>
20084
20085         * reflection.c (method_encode_methodspec): Actually use the
20086         uninflated signature for the memberref.
20087
20088 2004-02-20  Martin Baulig  <martin@ximian.com>
20089
20090         * class.h (MonoGenericMethod): Removed `declaring'.
20091
20092         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
20093         is NULL, compute it here.
20094
20095 2004-02-20  Martin Baulig  <martin@ximian.com>
20096
20097         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
20098
20099         * metadata.c (mono_metadata_generic_inst_hash): New method.
20100         (mono_metadata_generic_inst_equal): New method.
20101
20102         * reflection.c (mono_reflection_bind_generic_parameters): Use the
20103         `klass->image->generic_inst_cache' cache to avoid creating
20104         duplicate MonoGenericInst's.
20105
20106         * class.c (mono_class_inflate_generic_type): Use the cache.
20107
20108 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
20109
20110         * object.c: fixed gc descriptor calculation for embedded valuetypes.
20111
20112 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20113
20114         * icall.c: added Socket.WSAIoctl icall.
20115
20116         * socket-io.[ch]: implemented
20117         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
20118
20119 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
20120
20121         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
20122
20123 2004-02-18  Urs C Muff  <umuff@quark.com>
20124
20125         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
20126         this work on PPC and other big-endian architectures.
20127
20128         * debug-mono-symfile.h: Prepended the names of all the `guint32'
20129         fields with an underscore to make sure they're only accessed by
20130         the read32() macro.
20131
20132 2004-02-18  Martin Baulig  <martin@ximian.com>
20133
20134         * icall.c: Put the klass->refclass changes back for methods and
20135         fields, but not for properties and events.  We're currently not
20136         distinguishing between DeclaringType and ReflectedType for
20137         properties and events, that's what caused the regressions.
20138
20139 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20140
20141         * object.c:
20142         (mono_async_result_new): the handle can be NULL.
20143
20144         * threadpool.c: Use an event instead of a semaphore, don't initialize
20145         it until needed. This saves quite a few semaphores from being created
20146         when using the threadpool.
20147
20148 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
20149
20150         * object.c (mono_string_is_interned_lookup): Fix interning of long
20151         strings. Fixes #54473.
20152
20153         * domain.c (ldstr_equal): Optimize if the two strings are equal.
20154
20155         * icall.c: Revert the klass->refclass changes since they introduce
20156         regressions (bug #54518).
20157
20158 2004-02-18  Martin Baulig  <martin@ximian.com>
20159
20160         * class.c (mono_class_init): If we're a generic instance and don't
20161         come from a TypeBuilder, inflate our members here.
20162         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
20163         (mono_class_create_generic): New public method.
20164         (mono_class_initialize_generic): Removed.
20165         (get_instantiation_name): Renamed to
20166         _mono_class_get_instantiation_name() and made it public.
20167
20168 2004-02-18  Martin Baulig  <martin@ximian.com>
20169
20170         * class.c (mono_class_inflate_generic_type): Clear the new
20171         instance's `nginst->klass' when inflating a generic instance.
20172         (mono_class_is_subclass_of): Added (basic) support for generic
20173         instances.
20174
20175 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
20176
20177         * appdomain.h, domain.c: use a MonoCodeManager instead of a
20178         MonoMempool to hold compiled native code.
20179
20180 2004-02-17  Martin Baulig  <martin@ximian.com>
20181
20182         * class.h (MonoDynamicGenericInst): Added `count_properties' and
20183         `properties'.
20184
20185         * reflection.c (mono_reflection_generic_inst_initialize): Added
20186         `MonoArray *properties' argument.
20187
20188         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
20189
20190 2004-02-17  Martin Baulig  <martin@ximian.com>
20191
20192         * icall.c (ves_icall_Type_GetFields): Renamed to
20193         ves_icall_Type_GetFields_internal() and added a
20194         `MonoReflectionType *rtype' argument; pass it to
20195         mono_field_get_object() to set the field's "reflected" type.
20196         (ves_icall_Type_GetConstructors): Likewise.
20197         (ves_icall_Type_GetEvents): Likewise.
20198         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
20199         argument; pass it to mono_method_get_object() to set the method's
20200         "reflected" type.       
20201
20202 2004-02-17  Martin Baulig  <martin@ximian.com>
20203
20204         * class.h (MonoDynamicGenericInst): New type.
20205         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
20206
20207         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
20208         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
20209         (ves_icall_MonoGenericInst_GetFields): New interncall.
20210
20211         * class.c (mono_class_from_generic): Don't call
20212         mono_class_initialize_generic() if this is a dynamic instance;
20213         ie. it's being created from a TypeBuilder.
20214         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
20215         `class->byval_arg.type'.
20216
20217         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
20218         to `inflate_method' and made static.
20219         (mono_reflection_inflate_field): Removed.
20220         (mono_reflection_generic_inst_initialize): New public method.
20221
20222         * reflection.h (MonoReflectionGenericInst): Removed `methods',
20223         `ctors' and `fields'; added `initialized'.
20224
20225 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
20226
20227         * debug-helpers.c (mono_method_full_name): Fix output for empty
20228         namespaces.
20229
20230 2004-02-12  Martin Baulig  <martin@ximian.com>
20231
20232         * class.h (MonoClassField): Added `MonoType *generic_type'.
20233
20234         * reflection.c (mono_image_get_fieldref_token): Added support for
20235         instantiated generic types.
20236         (field_encode_inflated_field): Removed.
20237         (mono_image_get_inflated_field_token): Removed.
20238         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
20239
20240         * reflection.h (MonoReflectionInflatedField): Removed.
20241
20242 2004-02-12  Martin Baulig  <martin@ximian.com>
20243
20244         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
20245         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
20246
20247         * reflection.c (mono_image_get_methodspec_token): Take a
20248         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
20249         (mono_image_create_token): Check whether we have a
20250         `method->signature->gen_method' and call
20251         mono_image_get_methodspec_token() if appropriate.
20252         (inflated_method_get_object): Removed.
20253         (mono_reflection_bind_generic_method_parameters): Return a
20254         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
20255         (mono_reflection_inflate_method_or_ctor): Likewise.
20256
20257         * reflection.h (MonoReflectionInflatedMethod): Removed.
20258
20259 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
20260
20261         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
20262         for custom valuetype marshalling.
20263
20264         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
20265
20266 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20267
20268         * icall.c: fixed WSAGetLastError_internal name.
20269
20270 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
20271
20272         * threads.c (mono_thread_attach): Allow this to be called multiple
20273         times for a thread.
20274         
20275         * threads.c (build_wait_tids): Do not wait for ourselves.
20276
20277         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
20278         appdomain list is empty.
20279
20280         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
20281         memory returned by mono_string_builder_to_utf16, since it points into
20282         managed memory. Thanks to Bernie Solomon for noticing this.
20283
20284         * icall.c: Add AppDomainSetup icalls.
20285
20286         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
20287
20288         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
20289         types.
20290
20291         * reflection.c (reflection_methodbuilder_to_mono_method): Save
20292         custom attributes to the method_aux struct. Also fix array indexes etc.
20293
20294         * loader.c (mono_method_get_param_names): Make dynamic case work again.
20295         
20296 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
20297
20298         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
20299         (both static and runtime) and reduce startup time.
20300
20301 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
20302
20303         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
20304         AsAny marshalling conversion instead of crashing.
20305
20306         * marshal.c: Fix warnings.
20307
20308 2004-02-09  Martin Baulig  <martin@ximian.com>
20309
20310         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
20311
20312         * reflection.h (MonoReflectionInflatedMethod): Removed the
20313         `declaring' field, it's now in the unmanaged MonoGenericMethod.
20314
20315         * reflection.c (method_encode_methodspec): Removed the `method'
20316         argument; we get it from `gmethod->declaring'.
20317         (inflated_method_get_object): Removed the `declaring' argument.
20318
20319 2004-02-09  Martin Baulig  <martin@ximian.com>
20320
20321         * class.h (MonoGenericMethod): New type.
20322         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
20323         `generic_method'.
20324
20325         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
20326         a `MonoGenericMethod *gen_method' one.
20327
20328         * class.c (mono_class_inflate_generic_type): Take an additional
20329         `MonoGenericMethod * argument.  This is only non-NULL if we're
20330         inflating types for a generic method.   
20331         (mono_class_inflate_generic_signature): Renamed to
20332         inflate_generic_signature() and made static; take a
20333         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
20334         (inflate_generic_header): Take a `MonoGenericMethod *' argument
20335         instead of a `MonoGenericInst *' one.
20336         (mono_class_inflate_generic_method): Likewise.
20337
20338         * reflection.c (encode_generic_method_sig): Take a
20339         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
20340         (method_encode_methodspec): Likewise.
20341         (inflated_method_get_object): Likewise. 
20342
20343         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
20344         field with a `MonoGenericMethod *gmethod' one.  
20345
20346 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
20347
20348         * class.h (mono_class_has_parent): add parens to expansion
20349         so you can ! this.
20350
20351 2004-02-08  Martin Baulig  <martin@ximian.com>
20352
20353         * image.h (MonoImage): Removed `generics_cache'.
20354
20355         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
20356         instead of a `MonoType *' argument; removed the `inflate_methods'
20357         argument.  Don't inflate methods here.
20358
20359         * loader.c (find_method): If it's a generic instance, call
20360         mono_class_init() on the `sclass->generic_inst->generic_type'.
20361
20362         * metadata.c (mono_type_size): Make this work on uninitialized
20363         generic instances; call it on the `ginst->generic_type's class.
20364
20365         * reflection.c (mono_reflection_bind_generic_parameters): Call
20366         mono_class_from_generic() to create the `ginst->klass'.
20367
20368 2004-02-08  Martin Baulig  <martin@ximian.com>
20369
20370         * class.h (MonoClass): Changed type of `generic_inst' from
20371         `MonoType *' to `MonoGenericInst *'.
20372
20373 2004-02-08  Martin Baulig  <martin@ximian.com>
20374
20375         * icall.c (ves_icall_Type_BindGenericParameters): Just call
20376         mono_type_get_object(), this is now creating a `MonoGenericInst'
20377         for MONO_TYPE_GENERICINST.
20378         (ves_icall_MonoGenericInst_GetParentType): Likewise.
20379         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
20380
20381         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
20382         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
20383         (inflated_method_get_object): Added `MonoClass *refclass' argument.
20384         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
20385         and reflected type.
20386
20387         * reflection.h (MonoReflectionInflatedMethod): Removed
20388         `declaring_type' and `reflected_type'.
20389
20390 2004-02-08  Martin Baulig  <martin@ximian.com>
20391
20392         * class.h (MonoGenericInst): Added `MonoType *parent' and
20393         `MonoType **ifaces'.
20394
20395         * reflection.h (MonoReflectionGenericInst): Removed `klass',
20396         `parent' and `interfaces'.
20397
20398         * reflection.c (mono_reflection_bind_generic_parameters): Take a
20399         `MonoType *' argument and return a `MonoType *'.
20400
20401         * icall.c
20402         (ves_icall_MonoGenericInst_GetParentType): New interncall.
20403         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
20404
20405 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
20406
20407         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
20408         valuetype marshalling.
20409
20410 2004-02-06  Martin Baulig  <martin@ximian.com>
20411
20412         * class.c
20413         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
20414         (my_mono_class_from_generic_parameter): Likewise.
20415
20416 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
20417
20418         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
20419         contents of the symbol files lazily.
20420
20421         * object.h (MonoThread): Add 'name' and 'name_len' fields.
20422
20423         * threads.h threads.c icall.c: New icalls for getting and setting the
20424         threads name.
20425
20426 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
20427
20428         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
20429         Raise an exception when the domain is not found.
20430
20431 2004-02-03  Martin Baulig  <martin@ximian.com>
20432
20433         * reflection.c (mono_image_get_methodspec_token): Use the
20434         uninflated signature; fixes gen-33.
20435
20436 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
20437
20438         * gc.c threads.c: Make the finalizer thread a normal managed thread so
20439         the finalizer code can use thread functionality.
20440
20441         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
20442         the finalizer thread.
20443
20444         * threads.c: Make some functions more robust.
20445
20446         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
20447
20448         * metadata.h: Add new marshalling conventions.
20449
20450         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
20451         stringbuilder marshalling. Fixes #53700.
20452
20453         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
20454
20455         * reflection.c (mono_image_get_type_info): Save declarative security
20456         info.
20457
20458         * reflection.c (mono_image_get_field_info): Handle uninitialized 
20459         unmanaged fields as well.
20460
20461         * appdomain.c: Bump corlib version.
20462
20463 2004-02-01  Martin Baulig  <martin@ximian.com>
20464
20465         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
20466         method type arguments.  
20467
20468 2004-01-30  Duncan Mak  <duncan@ximian.com>
20469
20470         * marshal.h: Add prototype for
20471         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
20472         and
20473         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
20474         fix the build.
20475
20476 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
20477
20478         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
20479         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
20480
20481 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
20482
20483         * marshal.c (mono_marshal_get_native_wrapper): Add support for
20484         custom marshalling of valuetypes.
20485
20486         * marshal.c: Fix some warnings.
20487
20488 2004-01-29  Martin Baulig  <martin@ximian.com>
20489
20490         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
20491         for generic method parameters.
20492
20493         * reflection.c (method_encode_methodspec): Write the uninflated
20494         signature into the methodspec table.
20495         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
20496         is always the uninflated method.
20497         (reflection_methodbuilder_to_mono_method): Copy the generic
20498         parameters from the MethodBuilder into `header->gen_params'.
20499
20500 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
20501
20502         * class.c (mono_class_from_generic_parameter): Fix warning.
20503
20504 2004-01-27  Martin Baulig  <martin@ximian.com>
20505
20506         * class.c (mono_class_from_generic_parameter): Don't create
20507         `klass->methods' here.  
20508
20509 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
20510
20511         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
20512         extension since it does not work with libraries named lib<FOO>.dll.so.
20513
20514 2004-01-25  Martin Baulig  <martin@ximian.com>
20515
20516         * class.c (mono_class_inflate_generic_type): Added support for
20517         MONO_TYPE_GENERICINST.
20518
20519         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
20520         inflate methods on open constructed types.      
20521
20522 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20523
20524         * object.c: fire ProcessExit event in the root AppDomain after running
20525         Main. Fixes bug #53299.
20526
20527 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
20528
20529         * socket-io.c: include the new socket-wrappers.h header.
20530         Use the wrappers instead of the unix socket functions to make the code
20531         more clear.
20532
20533 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
20534
20535         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
20536
20537         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
20538         Fixes #22532.
20539
20540 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
20541
20542         * reflection.c (mono_image_create_pefile): Handle the case when the
20543         entry point is not a MethodBuilder.
20544
20545         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
20546         field to ReflectionMethod since it is not allways a builder.
20547
20548         * reflection.c (type_get_fully_qualified_name): New helper function to
20549         return the fully qualified name of a type.
20550
20551         * reflection.c (encode_marshal_blob): Always emit the fully qualified
20552         type name for custom marshallers.
20553
20554         * reflection.c (mono_marshal_spec_from_builder): Ditto.
20555
20556         * class.c (mono_class_setup_vtable): If a parent class already 
20557         implements an interface, use the implementing methods from that class.
20558         Fixes #53148.
20559
20560 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20561
20562         * threadpool.c: just return instead of ExitThread to allow for thread
20563         clean up earlier.
20564
20565 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
20566
20567         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
20568         when closing resource modules.
20569
20570         * reflection.c (mono_image_create_pefile): Handle the case when the
20571         entry point is not a MethodBuilder.
20572
20573         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
20574         field to ReflectionMethod since it is not allways a builder.
20575
20576 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
20577
20578         * marshal.c (mono_marshal_get_managed_wrapper): 
20579         mono_marshal_alloc takes native int so CONV_I
20580         the arg for 64bits.
20581
20582 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
20583
20584         * reflection.c (fixup_cattrs): New function to fixup the methoddef
20585         tokens in the cattr table. Fixes #53108.
20586
20587 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20588
20589         * loader.c: don't trim ".dll" before looking up in the config file.
20590         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
20591
20592 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
20593
20594         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
20595         Return the module which contains the resource as well.
20596         (ves_icall_System_Reflection_Module_Close): New icall.
20597
20598         * appdomain.c: Bump corlib version number.
20599
20600         * image.c (mono_image_addref): New public function.
20601
20602         * assembly.c: Call mono_image_addref.
20603
20604         * reflection.c (mono_module_get_object): Increase reference count of 
20605         the image.
20606
20607         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
20608         Fixes #22532.
20609
20610         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
20611         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
20612         proper exceptions on DllImport problems.
20613
20614 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
20615
20616         * class.c, metadata.c: eliminate CSIZE macro.
20617
20618 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
20619
20620         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
20621         * object.h: Added async_callback field in MonoAsyncResult.
20622         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
20623         * verify.c: Added async_callback in MonoAsyncResult layout.
20624
20625 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
20626
20627         * reflection.c (mono_reflection_get_custom_attrs): Add support
20628         for Modules.
20629
20630 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
20631
20632         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
20633         marshalling.
20634         (mono_marshal_method_from_wrapper): Add null pointer check.
20635
20636 2004-01-16  Martin Baulig  <martin@ximian.com>
20637
20638         * debug-mono-symfile.h: Set version number to 36 and reflect
20639         latest symbol writer changes.
20640
20641 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
20642
20643         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
20644         multi-dimensional arrays.
20645         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
20646         (mono_class_from_mono_type): Use bounded_array_class_get.
20647         
20648         * class.c (mono_bounded_array_class_get): New function which takes
20649         a 'bounded' bool argument to distinguish vectors from one dimensional
20650         arrays.
20651
20652         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
20653         bounded_array_class_get if the array has bounds.
20654
20655         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
20656         Search modules loaded using AssemblyBuilder:AddModule as well.
20657
20658 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20659
20660         * appdomain.c: increased corlib version.
20661         * filewatcher.c: removed g_print.
20662         * icall.c:
20663         (get_property_info): only allocate what is actually requested.
20664         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
20665
20666 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20667
20668         * Makefile.am: added filewatcher.[ch]
20669         * filewatcher.[ch]: FileSystemWatcher runtime support.
20670         * icall.c: added new FSW icalls.
20671
20672 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
20673
20674         * string-icalls.c: fix stringbuilder regression as suggested by
20675         Iain McCoy <iain@mccoy.id.au>.
20676
20677 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
20678
20679         * process.c (process_read_stringtable_block): Recognize '007f' as
20680         a language neutral stringtable block.
20681
20682 2004-01-12  Patrik Torstensson
20683
20684         * object.h (MonoStringBuilder) : Changed layout to support our
20685         new stringbuilder class.
20686         * marshal.c: Change marshalling to support the new layout of 
20687         string builder.
20688         * appdomain.c: increased version number because new layout of
20689         string builder.
20690
20691 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
20692
20693         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
20694         assembly name as an string instead of an AssemblyName, since it is
20695         easier to extract info from it.
20696
20697         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
20698         the culture subdirectories too. Fixes #52231.
20699
20700 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20701
20702         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
20703         It takes 2 new parameters with an optional name for the method to look
20704         for and case ignoring info.
20705
20706         * threadpool.c: removed unused variable.
20707
20708 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20709
20710         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
20711         It takes 2 new parameters with an optional name for the property to look
20712         for and case ignoring info.
20713         Fixes bug #52753.
20714
20715 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
20716
20717         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
20718         Fix #52451.
20719
20720 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20721
20722         * appdomain.c:
20723         * assembly.c: escape the uri before passing it to g_filename_from_uri.
20724         Fixes bug #52630.
20725
20726 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
20727
20728         * reflection.c: Add support for more than one unmanaged resource.
20729
20730         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
20731         in field->def_value, as done in all other cases.
20732
20733         * reflection.c (mono_reflection_get_custom_attrs): Add support for
20734         TypeBuilders.
20735
20736         * reflection.c (mono_reflection_create_runtime_class): Remove 
20737         errorneous assignment to klass->element_class, since it is already
20738         done in mono_reflection_setup_internal_class.
20739
20740 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20741
20742         * gc.c: added missing LeaveCriticalSection.
20743         * icall.c: indented a couple of lines.
20744         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
20745         if we call EndInvoke inside a callback. Fixes bug #52601.
20746
20747 2004-01-07  Martin Baulig  <martin@ximian.com>
20748
20749         * mono-debug-debugger.h
20750         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
20751
20752 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
20753
20754         * appdomain.c: Use messages in NotImplementedException.
20755
20756         * exception.c (mono_get_exception_not_implemented): Now this takes
20757         a message argument.
20758
20759         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
20760         exception instead of g_asserting an aborting when something is not
20761         implemented.
20762
20763         Add some inline docs.
20764
20765 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
20766
20767         * reflection.h: Update after changes to object layout.
20768
20769         * reflection.c: Implement saving of unmanaged aka win32 resources.
20770
20771         * appdomain.c: Bump version number.
20772
20773         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
20774         Handle missing domains gracefully.
20775
20776 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
20777
20778         * file-io.c : On Windows, there are much more invalid_path_chars.
20779
20780 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
20781
20782         * class.h, object.c: prepare for GetType () speedup.
20783
20784 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
20785
20786         * profiler.c: workaround for --profile null reference exception on
20787           cygwin. Patch by Patrik Torstensson.
20788
20789 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
20790
20791         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
20792         make work for unaligned access.
20793
20794 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
20795
20796         * class.c: small cleanup (class->fields [i] -> field).
20797         * image.c: check address of metadata is valid.
20798
20799 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
20800
20801         * assembly.h assembly.c (mono_assembly_loaded): New public function to
20802         search the list of loaded assemblies.
20803
20804         * reflection.c (mono_reflection_type_from_name): Use 
20805         mono_assembly_loaded instead of mono_image_loaded.
20806
20807         * reflection.c: Fix warnings.
20808
20809 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
20810
20811         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
20812         is dynamic. This is needed since an assembly can contain both dynamic and
20813         non-dynamic images.
20814
20815         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
20816         assembly->dynamic.
20817
20818         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
20819
20820         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
20821         to store modules loaded using AddModule.
20822
20823         * reflection.c (mono_image_fill_file_table): Generalize this so it works
20824         on Modules.
20825
20826         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
20827
20828         * reflection.c (mono_image_fill_export_table_from_module): New function to
20829         fill out the EXPORTEDTYPES table from a module.
20830
20831         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
20832         into a separate function. Also handle loaded non-dynamic modules.
20833
20834         * reflection.c (mono_image_basic_init): Fix memory allocation.
20835
20836         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
20837
20838         * assembly.c (mono_assembly_load_references): Make this public.
20839
20840 2003-12-19  Martin Baulig  <martin@ximian.com>
20841
20842         * class.c (mono_class_initialize_generic): Made this static, take
20843         a `MonoGenericInst *' instead of a `MonoClass *'.
20844         (mono_class_from_generic): Call mono_class_initialize_generic()
20845         unless we're already initialized or being called from
20846         do_mono_metadata_parse_generic_inst().
20847
20848         * class.h (MonoGenericInst): Added `initialized' and
20849         `init_pending' flags.
20850
20851         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
20852         `mono_class_init (gklass)' or mono_class_initialize_generic()
20853         here; set `generic_inst->init_pending' while parsing the
20854         `type_argv'.
20855
20856 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
20857
20858         * locales.c: include string.h for memxxx prototypes
20859
20860 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
20861
20862         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
20863         constructor when accessing literal fields.
20864
20865 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
20866
20867         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
20868
20869         * reflection.c (assembly_add_resource_manifest): New function to fill
20870         the MANIFESTRESOURCE table.
20871
20872         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
20873
20874         * reflection.h: Update to changes in class layout.
20875
20876         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
20877         Reenable call to mono_runtime_is_shutting_down ().
20878
20879         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
20880         determine if the runtime is shutting down.
20881
20882 2003-12-16  Jackson Harper <jackson@ximian.com>
20883
20884         * icall.c: comment out call to mono_runtime_is_shutting_down to
20885         fix build.
20886         
20887 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
20888
20889         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
20890         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
20891
20892 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
20893
20894         * reflection.c: move definition of swap_with_size
20895         to before its first call
20896
20897 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
20898
20899         * appdomain.c (mono_runtime_is_shutting_down): New public function.
20900
20901         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
20902         icall.
20903
20904         * object.c: Fix warnings.
20905
20906         * icall.c (ves_icall_Type_Get...): Only consider inherited static
20907         members if FlattenHierarchy is set.
20908
20909         * reflection.c (mono_image_add_decl_security): New function to emit
20910         declarative security.
20911
20912         * reflection.h reflection.c: Add support for declarative security.
20913
20914         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
20915         
20916 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
20917
20918         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
20919         
20920         * appdomain.c verify.c: Moved corlib version checking into its own
20921         function in appdomain.c since it needs to create vtables etc.
20922
20923 2003-12-13  Patrik Torstensson <p@rxc.se>
20924
20925         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
20926         instead of unwrapped server.
20927
20928 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
20929
20930         * verify.c (check_corlib): Fix field index.
20931
20932 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
20933
20934         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
20935         GetGacPath icall.
20936
20937 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
20938
20939         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
20940         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
20941         cope with sizeof(size_t) != sizeof(guint32).
20942
20943 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20944
20945         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
20946         in case of failure.
20947
20948 2003-12-10  Mark Crichton <crichton@gimp.org>
20949
20950         * icall.c: removed the GetNonZeroBytes.  We now handle this case
20951         in managed code.
20952
20953         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
20954
20955 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
20956
20957         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
20958         marked as deleted.
20959
20960 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
20961
20962         * verify.c (check_corlib): Handle the case when the version field is 
20963         initialized by a static constructor.
20964
20965 2003-12-08  Patrik Torstensson  <p@rxc.se>
20966
20967     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
20968
20969 2003-12-08  Martin Baulig  <martin@ximian.com>
20970
20971         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
20972         a MonoReflectionGenericParameter, also take the parameter index
20973         and name as arguments.
20974         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
20975         (ves_icall_MonoGenericParam_initialize): New interncall.
20976         (ves_icall_Type_make_byref_type): New interncall.
20977
20978         * reflection.h (MonoReflectionGenericParam): Derive from
20979         MonoReflectionType, not just from MonoObject.  Added `refobj' and
20980         `index' fields.
20981
20982         * reflection.c (mono_reflection_define_generic_parameter): Create
20983         and return a new MonoReflectionGenericParam; don't initialize the
20984         constraints here.
20985         (mono_reflection_initialize_generic_parameter): New public method;
20986         initializes the constraints and creates the `param->pklass'.
20987
20988 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
20989
20990         * reflection.h reflection.c: Use the new fields 'num_types', 
20991         'num_fields' and 'num_methods' to track the number of types etc.
20992
20993         * verify.c (check_corlib): Check corlib version number.
20994
20995 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
20996
20997         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
20998         function works on all methods.
20999
21000 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
21001
21002         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
21003         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
21004         the custom_type_info flag of the transparent proxy.
21005         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
21006         objects that supports IRemotingTypeInfo.
21007         * object.h: Added custom_type_info field in transparent proxy.
21008
21009 2003-12-06  Martin Baulig  <martin@ximian.com>
21010
21011         * class.c (mono_class_create_from_generic): Removed.
21012         (mono_class_from_generic): Check `ginst->klass' before doing
21013         anything else.  This is important to fully support "recursive"
21014         generic types.
21015
21016         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
21017         empty `generic_inst->klass' before doing anything else.
21018
21019 2003-12-06  Dick Porter  <dick@ximian.com>
21020
21021         * verify.c: 
21022         * object.h:
21023         * icall.c:
21024         * locales.c: Use C structs to access class fields.  Don't do a
21025         conversion between MonoString and UChar because both are
21026         platform-endian UTF-16.  Compare now takes startindex and count
21027         parameters.  Add a char overload for IndexOf.  Speed up the
21028         invariant string IndexOf.
21029
21030 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
21031
21032         * Makefile.am (monosn_LDADD): Fix parallel build.
21033
21034 2003-12-04  Martin Baulig  <martin@ximian.com>
21035
21036         * icall.c
21037         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
21038         (ves_icall_Type_make_array_type): New interncall.       
21039
21040 2003-12-04  Martin Baulig  <martin@ximian.com>
21041
21042         * locales.c: also change it in the !HAVE_ICU case.
21043
21044 2003-12-04  Dick Porter  <dick@ximian.com>
21045
21046         * icall.c:
21047         * locales.c: construct_compareinfo is now in CompareInfo, not
21048         CultureInfo.
21049
21050 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
21051
21052         * image.c (mono_image_load_file_for_image): Cache loaded images in the
21053         image->files array.
21054
21055         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
21056         table as well.
21057
21058         * assembly.c (mono_assembly_load_references): Only load references
21059         once.
21060
21061         * class.c (mono_class_from_name): Avoid linear search of the 
21062         EXPORTEDTYPE table.
21063
21064         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
21065
21066 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
21067
21068         * image.h (MonoImage): Add 'field_cache' field.
21069
21070         * loader.c (mono_field_from_token): Cache field lookups.
21071         
21072         * reflection.c (mono_module_get_object): Fix name property.
21073
21074         * icall.c (ves_icall_get_enum_info): Update after changes to 
21075         mono_metadata_get_constant_index ().
21076
21077         * icall.c: Get rid of get_type_info icall, use a separate icall for
21078         each type property to avoid needless memory allocations. Fixes #51514.
21079
21080         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
21081         to avoid needless binary searches.
21082
21083         * class.c (class_compute_field_layout): Move the initialization of
21084         field->def_value to mono_class_vtable ().
21085
21086         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
21087         non-corlib types.
21088
21089         * object.c (mono_object_allocate): Make it inline.
21090
21091         * object.c (mono_object_allocate_spec): Make it inline.
21092         
21093 2003-12-02  Dick Porter  <dick@ximian.com>
21094
21095         * locales.c (create_NumberFormat): NumberFormatInfo construction.
21096         Patch by Mohammad DAMT (mdamt@cdl2000.com).
21097
21098 2003-12-01  Dick Porter  <dick@ximian.com>
21099
21100         * threads.c: Fix signature and call in CreateMutex and
21101         CreateEvent.
21102
21103 2003-12-01  Dick Porter  <dick@ximian.com>
21104
21105         * icall.c: 
21106         * locales.c: Implement string compares and searching
21107
21108         * object.h: Add extra Thread field
21109
21110 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
21111
21112         * reflection.c (fixup_method): Add support for MonoCMethod.
21113
21114 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
21115
21116         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
21117
21118         * reflection.c (assembly_name_to_aname): Allow extra characters in
21119         assembly names. Fixes #51468.
21120
21121 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
21122
21123         * exception.c (mono_exception_from_name_domain): New helper function.
21124
21125         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
21126         exception object in the correct domain.
21127
21128         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
21129         formatting + make a copy a the input data.
21130
21131         * loader.c (mono_get_method_from_token): Methods which contain
21132         native code do not have entries in the ImplMap.
21133
21134         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
21135         Thanks to Gonzalo for spotting this.
21136         
21137         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
21138         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
21139
21140         * assembly.h (mono_assembly_load_from): Split the second part of 
21141         assembly loading into a new public function.
21142
21143         * exception.h (mono_get_exception_bad_image_format): New function.
21144
21145 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
21146
21147         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
21148         Enumerate all modules inside a dynamic assembly. Fixes #51293.
21149         
21150         * icall.c: Add new icall for creating dynamic methods.
21151
21152         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
21153
21154         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
21155
21156         * reflection.c (mono_reflection_create_dynamic_method): New icall to
21157         create a dynamic method.
21158
21159         * reflection.c (resolve_object): New helper function.
21160
21161         * reflection.c: Generalize ReflectionMethodBuilder and the functions
21162         which manipulate it so they can also work on dynamic methods.
21163
21164         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
21165         creating the MonoReflectionMethodAux structure if it is not needed.
21166         
21167         * reflection.h verify.c: Update after changes to object layout.
21168
21169         * reflection.c (method_builder_encode_signature): Fix compilation on
21170         gcc 2.95.x.
21171
21172 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
21173
21174         * appdomain.h: Added support for context static fields. Added static_data
21175           field to MonoAppContext and renamed thread_static_fields to a more
21176           generic special_static_fields in MonoAppDomain, since it can now contain
21177           context static fields.
21178         * domain.c: Updated hashtable name.
21179         * object.c: Replaced field_is_thread_static() for a more generic
21180           field_is_special_static() which also checks for context static attribute.
21181           In mono_class_vtable(), added support for static context fields.
21182         * threads.c: Changed methods that manage thread static fields to more
21183           generic methods so they can be reused both for thread and context static
21184           data.
21185         * threads.h: Declared some new methods.
21186
21187 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
21188
21189         * reflection.h: Update after changes to the managed types.
21190
21191         * reflection.c (encode_custom_modifiers): New helper function.
21192
21193         * reflection.c (method_encode_signature): Emit custom modifiers.
21194
21195         * reflection.c (field_encode_signature): Emit custom modifiers.
21196
21197 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
21198
21199         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
21200
21201         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
21202         implementation.
21203
21204         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
21205         icall.
21206
21207         * object.c (mono_field_get_value_object): New function.
21208
21209         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
21210         specific.
21211
21212 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
21213
21214         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
21215         return a preallocated out-of-memory exception instance.
21216
21217         * object.c (out_of_memory): Use the new function.
21218
21219         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
21220         flag is before the custom modifiers. Fixes #49802.
21221
21222 2003-11-16  Martin Baulig  <martin@ximian.com>
21223
21224         * class.c (mono_class_is_open_constructed_type): Implemented the
21225         MONO_TYPE_GENERICINST case.
21226
21227 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
21228
21229         * assembly.c (mono_assembly_fill_assembly_name): New function to
21230         fill out the MonoAssemblyName structure.
21231         (mono_assembly_open): Use the new function.
21232
21233         * icall.c (fill_reflection_assembly_name): New helper function.
21234
21235         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
21236         new function.
21237
21238         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
21239
21240 2003-11-15  Martin Baulig  <martin@ximian.com>
21241
21242         * class.c (mono_class_is_open_constructed_type): New public
21243         function; checks whether a type is an open constructed type,
21244         ie. whether it still contains type parameters.
21245         (mono_class_inflate_generic_type): If we're a type parameter and
21246         the inflated type is also a MONO_TYPE_(M)VAR, return the original
21247         type.
21248
21249         * class.h (MonoGenericInst): Added `guint32 is_open'.
21250
21251         * loader.c (method_from_methodspec): Check whether we're an open
21252         or closed constructed type and set `ginst->is_open'.
21253
21254         * reflection.c (mono_reflection_bind_generic_parameters): Check
21255         whether we're an open or closed constructed type and set
21256         `ginst->is_open'.
21257         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
21258         from open constructed types.
21259
21260 2003-11-15  Martin Baulig  <martin@ximian.com>
21261
21262         * reflection.c (mono_reflection_bind_generic_parameters): If we're
21263         a generic instance (instead of a generic type declaration) with
21264         unbound generic parameters, bind them to our actual types.
21265
21266 2003-11-14  Martin Baulig  <martin@ximian.com>
21267
21268         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
21269
21270         * reflection.c (mono_reflection_bind_generic_parameters): If we're
21271         an interface type, populate `res->interfaces' with instantiated
21272         versions of all the interfaces we inherit.
21273
21274 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
21275
21276         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
21277         when MONO_PATH is set but doesn't contain the install dir.
21278
21279 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21280
21281         * icall.c:
21282         (ves_icall_Type_GetInterfaces): don't return an interface twice when
21283         it's also implemented in base classes. Fixes bug #50927.
21284
21285 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
21286
21287         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
21288         if this method is called from a finalizer. Fixes #50913.
21289
21290 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
21291
21292         * threads.c: Implement VolatileRead/VolatileWrite
21293
21294         * icall.c: Add new icalls for VolatileRead/VolatileWrite
21295
21296 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
21297
21298         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
21299         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
21300         2.95.3.
21301
21302         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
21303         from Peter Ross (pro@missioncriticalit.com).
21304         
21305 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
21306
21307         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
21308
21309 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
21310
21311         * assembly.c (mono_assembly_load_references): Disable check because it
21312         triggers on older corlibs which lots of people have.
21313
21314 2003-11-12  Jackson Harper  <jackson@ximian.com>
21315
21316         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
21317         load corlib.dll if mscorlib.dll is not found.
21318         * assembly.h: Remove corlib name define.
21319         * class.c:
21320         * domain.c:
21321         * image.c: Change corlib name to mscorlib.
21322         
21323 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
21324
21325         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
21326
21327 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
21328
21329         * appdomain.h: Added loader_optimization here to sync with the C#
21330         code, and add disallow_binding_redirects field.
21331
21332 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
21333
21334         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
21335
21336         * reflection.c (mono_image_build_metadata): Fix crash on modules
21337         with no types.
21338
21339         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
21340
21341         * icall.c (ves_icall_get_method_info): Return callingConvention as
21342         well.
21343
21344         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
21345         namespaces from the EXPORTEDTYPE table as well.
21346
21347         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
21348         from all modules inside the assembly.
21349         
21350 2003-11-11  Martin Baulig  <martin@ximian.com>
21351
21352         * reflection.c (mono_reflection_bind_generic_parameters): Make
21353         this work for interfaces.
21354
21355 2003-11-11  Martin Baulig  <martin@ximian.com>
21356
21357         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
21358
21359 2003-11-11  Martin Baulig  <martin@ximian.com>
21360
21361         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
21362         "MonoInflatedMethod" and "MonoInflatedCtor".
21363
21364 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
21365
21366         * reflection.c (resolution_scope_from_image): Use the assembly table
21367         from the manifest module, since other modules don't have it.
21368
21369         * debug-helpers.c (mono_type_full_name): New helper function.
21370
21371         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
21372
21373         * image.c (mono_image_load_file_for_image): New public function which
21374         is a replacement for the load_file_for_image in class.c.
21375
21376         * assembly.c (mono_assembly_load_module): A wrapper for the function
21377         above which does assembly association and reference loading too.
21378
21379         * class.c (mono_class_from_name): Call mono_assembly_load_module.
21380
21381 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21382
21383         * appdomain.c: not all of the attributes for the full assembly name
21384         are required and the order doesn't matter. Fixes bug #50787.
21385
21386 2003-11-10  Dick Porter  <dick@ximian.com>
21387
21388         * locales.c: Use platform-endian UTF16
21389
21390 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
21391
21392         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
21393         
21394 2003-11-10  Martin Baulig  <martin@ximian.com>
21395
21396         * metadata.c
21397         (mono_metadata_load_generic_params): Make this actually work.
21398
21399         * reflection.c (mono_reflection_bind_generic_parameters): If our
21400         parent is a generic instance, pass all the `types' to it, no
21401         matter whether it has the same number of type parameters or not.
21402
21403 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
21404
21405         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
21406
21407         * assembly.c (mono_assembly_load_references): Move the image<->assembly
21408         assignment code to this function so it gets called recursively for all
21409         modules.
21410
21411         * image.c (load_modules): Remove the assembly assignment since it is
21412         now done by mono_assembly_load_references.
21413         
21414         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
21415         Add 'module' argument.
21416         (mono_module_get_types): New helper function.
21417         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
21418
21419 2003-11-08  Martin Baulig  <martin@ximian.com>
21420
21421         * class.c (mono_class_inflate_generic_method): Interface method
21422         don't have a header.
21423
21424         * reflection.c (mono_image_get_methodspec_token): Take an
21425         additional `MonoGenericInst *' argument instead of reading it from
21426         the header; this is necessary to support interfaces.
21427         (mono_image_create_token): Pass the `MonoGenericInst *' from the
21428         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
21429         (inflated_method_get_object): Take an additional `MonoGenericInst *'
21430         argument.
21431
21432         * reflection.h (MonoReflectionInflatedMethod): Added
21433         `MonoGenericInst *ginst'.
21434
21435 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
21436
21437         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
21438
21439 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
21440
21441         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
21442
21443 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
21444
21445         * reflection.c 
21446         (reflection_methodbuilder_from_method_builder):
21447         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
21448         initialize a ReflectionMethodBuilder structure.
21449         (mono_image_get_methodbuilder_token):
21450         (mono_image_get_ctorbuilder_token): New functions to emit memberref
21451         tokens which point to types in another module inside the same assembly.
21452
21453         * reflection.c: Use the new helper functions.
21454         
21455         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
21456
21457         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
21458         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
21459
21460         * reflection.c (resolution_scope_from_image): Emit a moduleref if
21461         neccesary.
21462
21463         * reflection.c (mono_image_build_metadata): Emit metadata only for the
21464         current module. Emit the manifest only for the main module.
21465
21466         * reflection.c (mono_image_create_token): Add assertion when a 
21467         memberref needs to be created.
21468
21469         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
21470
21471         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
21472         larger buffer for the custom attribute blob. Fixes #50637.
21473         
21474 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21475
21476         * threadpool.c: notify listener on async processing handles after
21477         invoking the async callback. Thanks to Zoltan.
21478
21479 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
21480
21481         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
21482         avoid code duplication.
21483
21484         * reflection.h (MonoDynamicImage): New type which is currently unused,
21485         but will be used through the ref.emit code in place of 
21486         MonoDynamicAssembly.
21487
21488         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
21489         object layout.
21490
21491         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
21492         a MonoDynamicImage instead of just a MonoImage.
21493         
21494         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
21495         icalls to ModuleBuilder but keep their semantics, so they will work
21496         with moduleb->assemblyb. This will change later.
21497         
21498 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
21499
21500         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
21501         object layout.
21502
21503         * reflection.c (mono_image_build_metadata): Avoid creation of a default
21504         main module, since it is now done by the managed code.
21505
21506 2003-11-03  Martin Baulig  <martin@ximian.com>
21507
21508         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
21509         `ginst->klass' here.
21510         (method_encode_methodspec): Don't use the `ginst->generic_method's
21511         klass if it's a generic instance, use `ginst->klass' in this case.
21512
21513 2003-11-03  Martin Baulig  <martin@ximian.com>
21514
21515         * reflection.c (mono_image_get_generic_method_param_info):
21516         Removed, use mono_image_get_generic_param_info() instead.
21517         (mono_image_get_type_info): Write the GenericParam table before
21518         the Method table.  This is neccessary because in the GenericParam
21519         table, type parameters of the class (ie. '!0' etc.) must come
21520         before the ones from its generic methods (ie. '!!0' etc).
21521
21522 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
21523
21524         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
21525
21526 2003-11-02  Martin Baulig  <martin@ximian.com>
21527
21528         * reflection.c (create_generic_typespec): Take a
21529         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
21530         the generic parameters from it.
21531
21532 2003-11-02  Martin Baulig  <martin@ximian.com>
21533
21534         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
21535         instead of a `MonoClassField *' since we just need the type.
21536         (create_generic_typespec): New static function.  Creates a
21537         TypeSpec token for a generic type declaration.
21538         (mono_image_get_generic_field_token): New static function.
21539         (mono_image_create_token): If we're a FieldBuilder in a generic
21540         type declaration, call mono_image_get_generic_field_token() to get
21541         the token.
21542
21543 2003-11-02  Martin Baulig  <martin@ximian.com>
21544
21545         * reflection.h
21546         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
21547         `MonoReflectionGenericInst *declaring_type' and
21548         `MonoReflectionGenericInst *reflected_type' fields.
21549
21550         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
21551         `MonoReflectionGenericInst *declaring_type' and a
21552         `MonoReflectionGenericInst *reflected_type' argument instead of a
21553         single `MonoReflectionGenericInst *type' one.  Set
21554         `res->declaring_type' and `res->reflected_type' from them.
21555         (mono_reflection_inflate_field): Likewise.      
21556
21557 2003-11-02  Martin Baulig  <martin@ximian.com>
21558
21559         * class.c (mono_class_setup_vtable): Don't store generic methods
21560         in the vtable.  
21561
21562 2003-11-02  Martin Baulig  <martin@ximian.com>
21563
21564         * reflection.h (MonoReflectionGenericInst): Added
21565         `MonoReflectionType *declaring_type'.
21566
21567         * reflection.c (mono_reflection_bind_generic_parameters): Use
21568         `if (tb->parent)' instead of `klass->parent'.
21569
21570 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
21571
21572         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
21573         with an empty ASSEMBLY table.
21574
21575         * reflection.c (mono_image_build_metadata): Avoid using the same loop
21576         variable in the inner and outer loops.
21577
21578 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
21579
21580         * metadata.h (mono_metadata_make_token): Put parentheses around macro
21581         argument.
21582
21583         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
21584         
21585         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
21586         icalls. Instead, do everything in managed code. This is needed since
21587         it is hard to restore the original domain etc. in unmanaged code in the
21588         presence of undeniable exceptions.
21589
21590         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
21591         New icalls to push and pop appdomain refs.
21592
21593 2003-10-31  Martin Baulig  <martin@ximian.com>
21594
21595         * class.c (inflate_generic_type): Renamed to
21596         mono_class_inflate_generic_type() and made it public.
21597
21598         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
21599         New interncall.
21600
21601         * loader.c (mono_field_from_memberref): Also set the retklass for
21602         typespecs.
21603
21604         * fielder.c (mono_image_get_inflated_field_token): New static
21605         method; creates a metadata token for an inflated field.
21606         (mono_image_create_token, fixup_method): Added support for
21607         "MonoInflatedField".
21608         (fieldbuilder_to_mono_class_field): New static function.
21609         (mono_reflection_inflate_field): New public function.
21610
21611         * reflection.h
21612         (MonoReflectionGenericInst): Added `MonoArray *fields'.
21613         (MonoReflectionInflatedField): New typedef.     
21614
21615 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
21616
21617         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
21618         for Solaris and other platforms without s6_addr16
21619
21620 2003-10-30  Martin Baulig  <martin@ximian.com>
21621
21622         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
21623         argument instead of two.
21624         (mono_class_inflate_generic_signature): Likewise.
21625         (inflate_generic_header): Likewise.
21626         (mono_class_inflate_generic_method): Likewise.  In addition, if
21627         `ginst->klass' is set, it becomes the new `method->klass'.
21628
21629         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
21630         field.
21631
21632         * reflection.c (encode_generic_method_sig): Write a 0xa as the
21633         first byte. [FIXME]
21634         (method_encode_methodspec): If we have generic parameters, create
21635         a MethodSpec instead of a MethodRef.
21636         (fixup_method): Added support for "MonoInflatedMethod" and
21637         "MonoInflatedCtor".
21638         (mono_image_create_token): Added support for "MonoInflatedMethod"
21639         and "MonoInflatedCtor".
21640         (inflated_method_get_object): New static function; returns a
21641         managed "System.Reflection.MonoInflatedMethod" object.
21642         (mono_reflection_bind_generic_method_parameters): Return a
21643         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
21644         (mono_reflection_inflate_method_or_ctor): Likewise.
21645         (mono_image_get_generic_method_param_info): Initialize unused
21646         fields to zero.
21647         (mono_image_get_generic_param_info): Likewise.
21648
21649         * reflection.h (MonoReflectionInflatedMethod): New public
21650         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
21651         "S.R.MonoInflatedCtor" classes.
21652
21653         * loader.c (method_from_memberref): If we're a TypeSpec and it
21654         resolves to a generic instance, inflate the method.
21655
21656 2003-10-28  Dick Porter  <dick@ximian.com>
21657
21658         * object.c (mono_runtime_run_main): Convert command-line arguments
21659         into utf8, falling back to the user's locale encoding to do so.
21660
21661 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
21662
21663         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
21664         at this time.
21665
21666         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
21667
21668         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
21669         up icalls at method definition time. Partially fixes #33569.
21670
21671 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
21672
21673         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
21674         marshalling of arrays. Fixes #50116.
21675
21676         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
21677
21678         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
21679         points to a vtable in the dying appdomain.
21680
21681         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
21682         listeners into unmanaged code inside the lock.
21683
21684         * object.c (mono_class_vtable): Turn off typed allocation in non-root
21685         domains and add some comments.
21686
21687 2003-10-25  Martin Baulig  <martin@ximian.com>
21688
21689         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
21690
21691         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
21692
21693         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
21694         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
21695         currently parsing.  Create the generic class and store it in
21696         `generic_inst->klass' before parsing the type arguments.  This is
21697         required to support "recursive" definitions; see mcs/tests/gen-23.cs
21698         for an example.
21699         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
21700         to support recursive typespec entries.
21701
21702         * class.c (mono_class_setup_parent): If our parent is a generic
21703         instance, we may get called before it has its name set.
21704         (mono_class_from_generic): Splitted into
21705         mono_class_create_from_generic() and mono_class_initialize_generic().
21706
21707 2003-10-25  Martin Baulig  <martin@ximian.com>
21708
21709         * icall.c (ves_icall_Type_BindGenericParameters): Return a
21710         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
21711         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
21712         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
21713
21714         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
21715         (create_typespec): Likewise.
21716         (mono_reflection_bind_generic_parameters): Return a
21717         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
21718         (mono_reflection_inflate_method_or_ctor): New public function.
21719
21720         * reflection.h (MonoReflectionGenericInst): New typedef.        
21721
21722 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
21723
21724         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
21725         inside the domain lock. Fixes #49993.
21726         
21727         * object.c (mono_class_vtable): When typed allocation is used, 
21728         allocate vtables in the GC heap instead of in the mempool, since the
21729         vtables contain GC descriptors which are used by the collector even
21730         after the domain owning the mempool is unloaded.
21731
21732         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
21733
21734         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
21735         reflect what it does. Also invalidate mempools instead of freeing
21736         them if a define is set.
21737
21738         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
21739         of the appdomain.
21740         
21741         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
21742         hold the finalizable objects in this domain.
21743
21744         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
21745         appdomain.
21746
21747         * appdomain.c (mono_domain_set): New function to set the current
21748         appdomain, but only if it is not being unloaded.
21749
21750         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
21751         appdomain which is being unloaded.
21752         
21753         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
21754         unloading of the root appdomain.
21755
21756         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
21757         icall to execute a method in another appdomain. Intended as a 
21758         replacement for InternalSetDomain, which can confuse the code 
21759         generation in the JIT.
21760
21761         * appdomain.c (mono_domain_is_unloading): New function to determine
21762         whenever an appdomain is unloading.
21763
21764         * appdomain.c (mono_domain_unload): New function to correctly unload
21765         an appdomain.
21766
21767         * assembly.c (mono_assembly_load_references): Check that an assembly
21768         does not references itself.
21769
21770         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
21771         domain manually, it asks the finalizer thread to do it, then waits for
21772         the result. Also added a timeout.
21773
21774         * icall.c: Register the new icalls.
21775
21776         * threads.h threads.c: Export the mono_gc_stop_world and 
21777         mono_gc_start_world functions.
21778         
21779         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
21780         function to fill out the mempool with 0x2a.
21781
21782 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
21783
21784         * reflection.h (MonoReflectionMethodAux): New structure to store
21785         information which is rarely used, thus is not in the MonoMethod
21786         structure.
21787
21788         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
21789         store the aux info.
21790
21791         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
21792         and marshalling info into the aux structure.
21793
21794         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
21795         from the aux structure.
21796
21797         * loader.c (mono_method_get_param_names): Retrieve the param names from
21798         the aux structure.
21799         
21800 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
21801
21802         * exception.h exception.c: Add AppDomainUnloadedException && fix 
21803         warning.
21804
21805 2003-10-21  Dick Porter  <dick@ximian.com>
21806
21807         * socket-io.c
21808         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
21809         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
21810
21811 2003-10-21  Martin Baulig  <martin@ximian.com>
21812
21813         * reflection.c (mono_reflection_bind_generic_parameters):
21814         `klass->parent' is NULL for interfaces.
21815
21816 2003-10-21  Martin Baulig  <martin@ximian.com>
21817
21818         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
21819
21820 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
21821
21822         * exception.c (mono_exception_from_name_msg): New helper function for
21823         creating exceptions and initializing their message field.
21824
21825         * exception.c: Simplify functions using the new helper.
21826
21827         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
21828         New function.
21829
21830         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
21831         mono_raise_exception, since otherwise gcc doesn't generate the function
21832         epilog for raise_exception, confusing the stack unwinding in the JIT.
21833         Fixes #45043.
21834
21835         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
21836         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
21837         Fixes #49499.
21838
21839 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21840
21841         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
21842         utf8.
21843
21844 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
21845
21846         * icall.c: Removed GetUninitializedObject method because
21847           AllocateUninitializedClassInstance does the same.
21848
21849 2003-10-18  Martin Baulig  <martin@ximian.com>
21850
21851         * class.c (inflate_generic_signature): Renamed to
21852         mono_class_inflate_generic_signature() and made it public.
21853         (my_mono_class_from_generic_parameter): New static function; if we
21854         don't already have the generic parameter's MonoClass, create a
21855         very simple one which is just used internally in the runtime and
21856         not passed back to managed code.
21857
21858         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
21859
21860         * metadata.h (MonoMethodSignature): Moved the
21861         `MonoGenericParam *gen_params' to the MonoMethodHeader.
21862         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
21863
21864         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
21865         ves_icall_MonoMethod_GetGenericArguments(); this is now an
21866         interncall on the MonoMethod class, not on MethodInfo.
21867         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
21868         calling mono_reflection_bind_generic_method_parameters() directly.
21869
21870         * loader.c (mono_method_get_signature): If this is a MethodSpec;
21871         return the already computed `method->signature'.
21872         (method_from_methodspec): New static function to load a method
21873         from a MethodSpec entry.
21874         (mono_get_method_from_token): Call the new method_from_methodspec()
21875         for MethodSpec tokens.  
21876         (mono_get_method_from_token): If we're a generic method, load the
21877         type parameters.
21878
21879         * reflection.c (mono_image_get_memberref_token): Allow
21880         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
21881         table.
21882         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
21883         (mono_image_create_token): First check whether it's a generic
21884         method (so we'd need to create a MethodSpec), then do the other
21885         two alternatives.
21886         (mono_reflection_bind_generic_method_parameters): Return a
21887         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
21888         called directly from the interncall.
21889
21890 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
21891
21892         * reflection.c (load_public_key): Move loading of the public key
21893         into managed code.
21894
21895         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
21896
21897         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
21898         fields.
21899
21900         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
21901         culture, hash_alg and public_key. Fixes #49555.
21902
21903 2003-10-17  Martin Baulig  <martin@ximian.com>
21904
21905         * class.h (MonoGenericInst): Moved this declaration here and added
21906         `MonoMethod *generic_method'.
21907
21908         * icall.c
21909         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
21910         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
21911
21912         * metadata.c (mono_metadata_type_equal): Two types of
21913         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
21914         index; ie. don't compare the address of the `MonoGenericParam'
21915         structure.
21916         (mono_metadata_load_generic_params): Removed the `MonoMethod
21917         *method' argument.
21918
21919         * metadata.h (MonoGenericInst): Moved declaration to class.h.
21920         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
21921
21922         * reflection.c (method_encode_signature): Encode the number of
21923         generic parameters.
21924         (encode_generic_method_sig): New static function.
21925         (method_encode_methodspec): New static function; creates an entry
21926         in the MethodSpec table for a generic method.
21927         (mono_image_get_methodspec_token): New static function.
21928         (mono_image_create_token): Call mono_image_get_methodspec_token()
21929         for generic methods.
21930         (mono_reflection_bind_generic_method_parameters): New public
21931         function.  Instantiates a generic method.
21932
21933 2003-10-16  Martin Baulig  <martin@ximian.com>
21934
21935         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
21936         *gen_params' here from MonoMethodHeader.
21937
21938         * metadata.c (mono_metadata_parse_method_signature): If we have
21939         generic parameters, initialize `method->gen_params' and then set
21940         the correct `type->data.generic_param' in all the parameters.
21941
21942 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
21943
21944         * threads.c (mono_threads_get_default_stacksize): New function to 
21945         return the default stacksize.
21946
21947         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
21948         termination of the finalizer thread, since the previous method had
21949         race conditions. Fixes #49628.
21950
21951         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
21952         as for the other managed threads.
21953
21954 2003-10-16  Martin Baulig  <martin@ximian.com>
21955
21956         * class.c (inflate_generic_signature): Copy `generic_param_count'
21957         and `gen_params'.
21958
21959         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
21960         New interncall.
21961
21962         * metadata.c (mono_metadata_parse_method_signature): Actually set
21963         the `method->generic_param_count' here.
21964         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
21965
21966 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
21967
21968         * object.h: Add a new field to TypedRef to simplify the implementation
21969         of the REFANY opcodes in the JIT.
21970
21971         * icall.c: Make use of the new field.
21972
21973         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
21974         dynamically.
21975
21976 2003-10-15  Martin Baulig  <martin@ximian.com>
21977
21978         * class.c (mono_class_from_gen_param): Renamed to
21979         mono_class_from_generic_parameter() and moved most of the
21980         functionality from mono_reflection_define_generic_parameter()
21981         here; ie. we create a "real" class here.
21982         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
21983         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
21984         previously been called.
21985
21986         * class.h (MonoGenericParam): Moved the declaration of this struct
21987         here from metadata.h and added `MonoMethod *method'.
21988
21989         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
21990         interncall.
21991
21992         * loader.c (mono_get_method_from_token): If we have any generic
21993         parameters, call mono_metadata_load_generic_params() to read them
21994         from the MONO_TABLE_GENERICPAR.
21995
21996         * metadata.c (mono_metadata_load_generic_params): Added
21997         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
21998
21999         * metadata.h (MonoMethodSignature): Replaced
22000         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
22001         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
22002
22003         * reflection.c (mono_reflection_define_generic_parameter): Moved
22004         most of the functionality into the new
22005         mono_class_from_generic_parameter(); set the `method' field if
22006         we're a method parameter.       
22007
22008 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
22009
22010         * marshal.c (emit_struct_conv): if native size is 0
22011         emit no code.
22012
22013 2003-10-14  Martin Baulig  <martin@ximian.com>
22014
22015         * icall.c: The generics API has changed in the spec since it was
22016         added to System.Type; these modifications make it match the spec
22017         again.
22018         (ves_icall_Type_GetGenericParameters): Renamed to
22019         `ves_icall_Type_GetGenericArguments'.
22020         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
22021         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
22022         `ves_icall_MonoType_get_HasGenericArguments'.
22023         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
22024         `ves_icall_MonoType_get_IsGenericParameter'.
22025         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
22026         this is no interncall anymore.
22027         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
22028         `ves_icall_TypeBuilder_get_IsGenericParameter'.
22029
22030 2003-10-14  Martin Baulig  <martin@ximian.com>
22031
22032         * reflection.c (mono_reflection_bind_generic_parameters): Also
22033         inflate generic methods if we're reading the class from IL.
22034
22035 2003-10-13  Martin Baulig  <martin@ximian.com>
22036
22037         * reflection.c (mono_reflection_define_generic_parameter): This
22038         method isn't called directly from the icall anymore; take a
22039         `MonoReflectionAssemblyBuilder *' so we can use this for type and
22040         method generic parameters.
22041         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
22042         (method_builder_encode_signature): Encode generic parameters.
22043         (mono_image_get_method_info): Write generic params to the
22044         MONO_TABLE_GENERICPARAM table.
22045
22046         * reflection.h (MonoReflectionMethodBuilder): Added
22047         `MonoArray *generic_params'.
22048
22049         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
22050
22051         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
22052         wrapper for mono_reflection_define_generic_parameter().
22053         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
22054
22055 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
22056
22057         * marshal.h: Add missing function to fix build.
22058
22059         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
22060         the SetLastError pinvoke attribute.
22061
22062         * marshal.c (mono_marshal_set_last_error): New helper function called
22063         by the generated code.
22064         
22065         * marshal.c (mono_mb_emit_branch): New helper function.
22066
22067         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
22068
22069         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
22070         classes as parameters and return values of delegates. Fixes #29256. 
22071
22072 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
22073
22074         * locales.c: use gint32 in non HAVE_ICU case
22075
22076 2003-10-11  Martin Baulig  <martin@ximian.com>
22077
22078         * mono-debug.c (mono_debug_add_method): Added a workaround for
22079         bug #48591.
22080
22081 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
22082
22083         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
22084         delegates passed to native code must use the STDCALL calling 
22085         convention. Fixes #35987.
22086
22087 2003-10-10  Martin Baulig  <martin@ximian.com>
22088
22089         * class.c (inflate_generic_type): If we're inflating for a generic
22090         type instance (and not for a generic method), return
22091         MONO_TYPE_MVAR unchanged.
22092
22093 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22094
22095         * string-icalls.c: Join ignores null strings in the source array.
22096         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
22097         * threads.c: GetAvailableTheads is slightly more accurate.
22098
22099 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
22100
22101         * threads.h threads.c : add mono_threads_set_default_stacksize
22102         and pass default to CreateThread calls.
22103
22104 2003-10-09  Dick Porter  <dick@ximian.com>
22105
22106         * icall.c:
22107         * locales.h:
22108         * locales.c: Internal calls for constructing CultureInfo and
22109         related objects from libicu (if its available.)
22110
22111 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
22112
22113         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
22114
22115 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22116
22117         * threadpool.c: added an argument to async_invoke_thread that is the
22118         item to process, pass the MonoAsyncResult to the thread start function
22119         when creating a new thread. This way we don't need to acquire any lock
22120         when we're creating a new thread. Readded a semaphore for faster
22121         response times (instead of that Sleep i added).
22122
22123 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
22124
22125         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
22126         get daylight change dates better on Windows, fix handling
22127         of platforms without tm_gmtoff.
22128
22129 2003-10-06  Martin Baulig  <martin@ximian.com>
22130
22131         * class.c (inflate_generic_method): Renamed to
22132         mono_class_inflate_generic_method() and made public.
22133         (mono_class_init): Don't inflate the generic methods here.
22134         (mono_class_from_generic): Added `gboolean inflate_methods'
22135         argument.  Inflate the methods here.
22136
22137         * loader.c (mono_method_get_param_names): Ignore instances of
22138         generic types for the moment.
22139
22140         * reflection.c (fixup_method): Added support for inflated methods.
22141         (mono_image_create_token): Use mono_image_get_methodref_token()
22142         for inflated methods.
22143         (mono_custom_attrs_from_param): Ignore instances of generic types
22144         for the moment.
22145         (mono_reflection_bind_generic_parameters): New public function.
22146         Moved all the functionality from
22147         ves_icall_Type_BindGenericParameters() here and added support for
22148         dynamic types.
22149         (mono_reflection_define_generic_parameter): Initialize
22150         `klass->methods' here.
22151
22152         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
22153         functionality into mono_reflection_define_generic_parameter().
22154         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
22155         TypeBuilder, return that TypeBuilder.
22156
22157 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22158
22159         * appdomain.c: removed mono_delegate_semaphore.
22160
22161         * threadpool.c:
22162         (mono_thread_pool_add): moved hash table creation inside and the thread 
22163         creation outside of the critical region.
22164         (mono_thread_pool_finish): removed obsolete code.
22165         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
22166         continue or exit the thread depending on the queue.
22167
22168 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
22169
22170         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
22171         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
22172         handle more bool marshalling options
22173
22174 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
22175
22176         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
22177         arrays of structs. Also add a more descriptive error message when
22178         a structure member is marshalled as LPArray.
22179
22180 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
22181
22182         * marshal.c (mono_marshal_get_native_wrapper): Add support for
22183         marshalling arrays of complex types. Fixes #29098. Also remove an
22184         usused and incomplete function.
22185
22186 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
22187
22188         * gc.c: report heap_size - free_bytes as total memory allocated
22189         (bug#49362).
22190
22191 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
22192
22193         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
22194         fix timezone handling problems on Windows.
22195         
22196         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
22197         asserts when the year is outside the range handled by ms the functions.
22198
22199         * class.c (setup_interface_offsets): If the class is an interface,
22200         fill out its interface_offsets slot.
22201
22202 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22203
22204         * threadpool.c: mark threadpool threads as background.
22205
22206 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
22207
22208         * decimal.c - define DECINLINE to nothing if not using GCC
22209
22210 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
22211
22212         * assembly.c: More refcount fixes.
22213
22214 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22215
22216         * string-icalls.c: if we're not trimming, return the same string.
22217         When not splitting, don't create a new string.
22218
22219 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22220
22221         * image.c:
22222         (mono_image_open): increment the ref_count inside the critical section.
22223
22224 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
22225
22226         * image.c (mono_image_open): Fix reference counting bug.
22227
22228 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
22229
22230         * marshal.c (mono_marshal_type_size) struct alignment changed for 
22231         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
22232         64bits. Avoid leak in mono_marshal_get_native_wrapper when
22233         mono_lookup_pinvoke_call throws.        
22234
22235 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
22236
22237         * reflection.c (mono_reflection_parse_type): Fix #49114.
22238
22239         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
22240         temporary workaround for cygwin header problem.
22241
22242         * object.c (mono_object_isinst): Synchronize this with the code
22243         generated by the JIT for casts.
22244
22245 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
22246
22247         * reflection.c (encode_type): Fix #38332.
22248
22249 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
22250
22251         * marshal.c (mono_marshal_method_from_wrapper): New function to return
22252         the original method from the wrapper method.
22253
22254 2003-09-25  Martin Baulig  <martin@ximian.com>
22255
22256         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
22257         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
22258         (ves_icall_Type_get_IsGenericInstance): New interncall.
22259
22260 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
22261
22262         * object.c: fix cast warning in big endian code.
22263
22264 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
22265
22266         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
22267         
22268 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22269
22270         * assembly.c: don't call check_env from mono_assembly_load. It's
22271         already done once in mono_assemblies_init and may cause headaches when
22272         multiple threads are loading assemblies.
22273
22274 2003-09-19  Martin Baulig  <martin@ximian.com>
22275
22276         * reflection.c (mono_reflection_define_generic_parameter): Don't
22277         allocate `klass->methods', set `klass->flags' to
22278         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
22279
22280 2003-09-18  Martin Baulig  <martin@ximian.com>
22281
22282         * class.c (mono_class_init): Don't create `class->methods' if it's
22283         already initialized.
22284
22285         * metadata.c (mono_metadata_load_generic_params): Make this
22286         actually work.
22287
22288         * reflection.c (mono_reflection_define_generic_parameter): Set
22289         parent class and interfaces from the constraints.
22290
22291         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
22292         to keep this struct in sync with the declaration in TypeBuilder.cs.
22293
22294 2003-09-17  Martin Baulig  <martin@ximian.com>
22295
22296         * metadata.h (MonoType): Replaced the data's `int type_param'
22297         field with `MonoGenericParam *generic_param'.
22298         (MonoGenericParam): Added `MonoClass *klass'.
22299
22300         * class.c (mono_class_from_gen_param): Removed the
22301         `MonoImage *image' and `int type_num' arguments.
22302
22303         * metadata.c (mono_metadata_parse_generic_param): New static
22304         method; creates a MonoGenericParam which just contains the index.
22305         (do_mono_metadata_parse_type): Call
22306         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
22307         MONO_TYPE_MVAR.
22308
22309         * reflection.c (mono_image_typedef_or_ref): Generic type
22310         parameters may be in the same assembly, but never use a typedef
22311         for them.
22312         (mono_reflection_define_generic_parameter): We're now creating a
22313         "real" class for the type parameter; it's now safe to call
22314         mono_class_from_mono_type() on the class'es type, it'll do the
22315         right thing.
22316
22317 2003-09-16  Martin Baulig  <martin@ximian.com>
22318
22319         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
22320         `symfile->range_entry_size' and `symfile->class_entry_size' here;
22321         the `symfile' data structure must be fully initialized before it
22322         gets added to the table.
22323
22324 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
22325
22326         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
22327
22328         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
22329         class init trampolines.
22330
22331 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
22332
22333         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
22334         to the built-in profiler to turn off time and allocation profiling
22335         respectively.
22336
22337 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
22338
22339         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
22340         g_direct_equal.
22341
22342         * debug-helpers.c (mono_method_full_name): Print the wrapper type
22343         in human readable form.
22344
22345 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
22346
22347         * reflection.c icall.c: Fixed warnings.
22348
22349         * image.c (load_class_names): Use a temporary hash table to hold the
22350         namespaces in order to avoid doing many string comparisons.
22351
22352         * image.h: Fix typo.
22353
22354         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
22355         Pass NULL instead of g_direct_equal to the GHashTable constructor 
22356         since the NULL case is short-circuited inside g_hash_table_lookup, 
22357         leading to better performance.  
22358
22359         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
22360         obtain the first custom attribute for a given index. Depends on the
22361         CustomAttribute table being sorted by the parent field.
22362
22363         * reflection.c (mono_custom_attrs_from_index): Use the new function 
22364         for better performance.
22365
22366 2003-09-07  Martin Baulig  <martin@ximian.com>
22367
22368         * class.c (mono_class_init): If we're a generic instance, inflate
22369         all our methods instead of loading them from the image.
22370         (mono_class_from_generic): Set `class->methods = gklass->methods'.
22371
22372 2003-09-07  Martin Baulig  <martin@ximian.com>
22373
22374         * mono-debug-debugger.c: Added support for constructors.
22375
22376 2003-09-06  Martin Baulig  <martin@ximian.com>
22377
22378         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
22379         New interncall.
22380
22381         * reflection.c (mono_reflection_setup_generic_class): Call
22382         ensure_runtime_vtable() to create the vtable.
22383
22384 2003-09-05  Martin Baulig  <martin@ximian.com>
22385
22386         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
22387         MONO_TYPE_MVAR.
22388
22389 2003-09-04  Martin Baulig  <martin@ximian.com>
22390
22391         * reflection.c (mono_reflection_define_generic_parameter): Generic
22392         parameters start with zero.
22393
22394 2003-09-04  Martin Baulig  <martin@ximian.com>
22395
22396         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
22397
22398         * reflection.h (MonoReflectionGenericParam): New typedef.
22399         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
22400         the generic parameters from the managed TypeBuilder.
22401
22402         * reflection.c (mono_reflection_define_generic_parameter): New function.
22403         (mono_reflection_create_runtime_class): Encode generic parameters.
22404         (mono_reflection_setup_generic_class): New function; this is
22405         called after adding adding all generic params to the TypeBuilder.
22406         (encode_type): Added MONO_TYPE_VAR.
22407
22408 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
22409
22410         * class.h class.c (mono_class_needs_cctor_run): Moved this method
22411         here from the JIT.
22412
22413         * assembly.h assembly.c: Moved the AOT loading code into an assembly
22414         load hook.
22415
22416 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
22417
22418         * reflection.h reflection.c class.h class.c: Delete duplicate 
22419         definition of mono_type_get_name () from reflection.c and export the
22420         one in class.c.
22421
22422         * class.c: Class loading fixes from Bernie Solomon 
22423         (bernard@ugsolutions.com).
22424
22425         * reflection.c: Endianness fixes from Bernie Solomon 
22426         (bernard@ugsolutions.com).
22427         
22428 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
22429
22430         * assembly.h assembly.c: Define a file format version for AOT
22431         libraries.
22432         
22433         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
22434
22435         * appdomain.h (MonoJitInfo): New field to determine whenever the
22436         code is domain neutral.
22437         
22438 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
22439
22440         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
22441
22442 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
22443
22444         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
22445         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
22446         Avoid caching the result since strings must be domain specific. Fixes
22447         #48050.
22448
22449 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
22450
22451         * marshal.c (mono_marshal_init): Make this callable multiple times
22452         since it is hard to find a correct place to call it.
22453
22454         * object.c (mono_runtime_class_init): Execute static constructors in
22455         the correct appdomain.
22456
22457         * image.c (build_guid_table): Handle the case when multiple images have
22458         the same GUID.
22459
22460 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22461
22462         * icall.c: added a couple of icalls for System.Web.
22463
22464 2003-08-28  Martin Baulig  <martin@ximian.com>
22465
22466         * icall.c (ves_icall_Type_BindGenericParameters): Use
22467         `klass->generic_inst' instead of `&klass->byval_arg' in the
22468         mono_type_get_object() call.  The returned type must be
22469         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
22470
22471 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
22472
22473         * NOTES: New file.
22474
22475         * object.c (mono_class_proxy_vtable): Make it thread safe.
22476
22477         * pedump.c: Fix warning.
22478
22479         * object.c appdomain.h: Get rid of metadata_section. 
22480         It is no longer needed and it was causing deadlocks with domain->lock.
22481
22482         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
22483
22484 2003-08-26  Martin Baulig  <martin@ximian.com>
22485
22486         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
22487
22488 2003-08-26  Martin Baulig  <martin@ximian.com>
22489
22490         * pedump.c (main): Call mono_metadata_init(),
22491         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
22492         and mono_loader_init().
22493
22494 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
22495
22496         * loader.h: Add missing include to fix build.
22497
22498         * image.h: mono_image_load_references is no more.
22499
22500         * assembly.c: Reworked assembly loading to make it really thread safe.
22501         After these changes, the assembly returned by mono_assembly_open is
22502         fully initialized, i.e. all its references assemblies are loaded.
22503
22504         * assembly.c (mono_image_load_references): Renamed to 
22505         mono_assembly_load_references, and made private, since clients no
22506         longer need to call it.
22507
22508         * class.c: Removed calls to mono_assembly_load_references, since it was
22509         a source of deadlocks.
22510
22511         * loader.h loader.c class.h class.c: Protect data structures using a 
22512         new lock, the loader lock.
22513
22514         * class.c (mono_class_setup_vtable): Create temporary hash tables and
22515         GPtrArrays only when needed.
22516
22517         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
22518         into empty structures by mcs. Fixes pinvoke7.cs.
22519         
22520         * domain.c (mono_init): Call a new initialization function.
22521
22522         * appdomain.c (mono_runtime_init): Call the new initializer function
22523         of the marshal module.
22524
22525         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
22526         inserted into empty structures by mcs. Fixes pinvoke7.cs.
22527
22528         * marshal.h marshal.c: Added locks around the wrapper caches to make
22529         this module thread safe.
22530
22531         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
22532         this argument. Fixes pinvoke1.exe.
22533
22534 2003-08-25  Lluis Sanchez <lluis@ximian.com>
22535
22536         * object.h: Added call_type field to MonoMethodMessage and the corresponding
22537         enumeration of values. Removed fields to store remote call output values in
22538         MonoAsyncResult. Not needed any more.
22539         * object.c: Initialize call_type and async_result fields in mono_message_init.
22540         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
22541         dispatching the message.
22542         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
22543         async call to finish. To do it use a message with EndInvoke call type.
22544
22545 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
22546
22547         * loader.h loader.c (mono_method_hash_marhal_info): New function which
22548         determines whenever a method has marshalling info.
22549
22550 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22551
22552         * assembly.c: fix the build on windows.
22553
22554 2003-08-22 Lluis Sanchez <lluis@ximian.com>
22555
22556         * object.cs: Fixed bug #47785.
22557
22558 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
22559
22560         * string-icalls.c (StringReplace): If their are no occurances of
22561         the old string found return a reference to the supplied
22562         string. This saves some memory and matches MS behavoir.
22563         
22564 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22565
22566         * socket-io.c: fixed compilation for systems that define AF_INET6
22567         and don't define SOL_IP/SOL_IPV6.
22568
22569 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
22570
22571         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
22572         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
22573
22574         * rawbuffer.c rawbuffer.h: Make this module thread safe.
22575
22576         * domain.c: Make this module thread safe.
22577
22578         * domain.c (mono_init): Call new initialization function.
22579
22580         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
22581         reference types too. Fixes #38812.
22582
22583         * image.c (mono_image_init): Fixed warnings.
22584
22585         * class.c (mono_class_from_typeref): Handle assembly load failure
22586         correctly.
22587
22588         * appdomain.c (add_assemblies_to_domain): Handle the case when
22589         the references of an assembly are not yet loaded.
22590
22591         * metadata.c image.c assembly.c: Moved initialization of global
22592         variables to a separate function called at startup since lazy 
22593         initialization of these variables is not thread safe.
22594         
22595         * image.c assembly.c: Made this module thread safe by adding locks in 
22596         the appropriate places.
22597
22598         * domain.c (mono_init): Call the new initialization functions of the
22599         three modules.
22600
22601 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
22602
22603         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
22604           make a direct call. It is proxy's work to make the call asynchronous.
22605           mono_delegate_end_invoke(): If the targe is a proxy, just collect
22606           the return values.
22607         * object.cs: mono_method_call_message_new(): read AsyncResult and
22608           state object from parameters list, if this info is requested.
22609         * object.h: Added fields to store remote call output values in
22610           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
22611
22612 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
22613
22614         * object.h: add needed fields to MonoThread.
22615         * threads.c, threads.h: allow registering a function to cleanup data
22616         allocated per thread by the JIT.
22617
22618 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
22619
22620         * loader.h: portability fix by Bernie Solomon
22621         * <bernard@ugsolutions.com>.
22622
22623 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
22624
22625         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
22626         return a MonoArray. This simplifies the code and also ensures that
22627         the cache allways contains an object reference as a value.
22628
22629         * icall.c (ves_icall_get_parameter_info): Simplified using the new
22630         function.
22631
22632 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22633
22634         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
22635         fixes a problem with byte ordering when getting the address family for
22636         a socket.
22637
22638 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
22639
22640         * .cvsignore: Added monosn.
22641
22642         * reflection.h reflection.c loader.c: Added support for parameter
22643         marshalling to dynamically created types. Fixes #47295.
22644
22645 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
22646
22647         * rand.c: remove useless warnings.
22648
22649 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
22650
22651         * class.c: implemented ldtoken for methods and fieldrefs.
22652
22653 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22654
22655         * threadpool.c: when mono_async_invoke was called, no one took care of
22656         monitoring the queue. So if the method invoked took some time and we
22657         got new async invoke requests after 500 ms (the thread created waited
22658         that long in WaitForSingleObject), the new async invoke was not called
22659         until the previous one finished.
22660
22661         This is fixed now. Thanks to Totte for helping with it.
22662
22663 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22664
22665         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
22666
22667 2003-08-11  Martin Baulig  <martin@ximian.com>
22668
22669         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
22670
22671 2003-08-06  Martin Baulig  <martin@ximian.com>
22672
22673         * mono-debug-debugger.c: Added support for static fields,
22674         properties and methods.
22675
22676 2003-08-06  Martin Baulig  <martin@ximian.com>
22677
22678         * mono-debug-debugger.c: Don't store the MonoString's vtable to
22679         make this work for applications with multiple application domains.
22680
22681 2003-08-04  Martin Baulig  <martin@ximian.com>
22682
22683         * mono-debug-debugger.c: Completely reworked the type support; the
22684         most important thing is that we're now just using one single
22685         `MonoType' instance per type.
22686
22687 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
22688
22689         * mono-endian.h, mono-endian.c, icall.c: Added icall
22690         ves_icall_System_Double_AssertEndianity to assert double word endianity
22691         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
22692
22693 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
22694
22695         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
22696         support, icalls and fixes.
22697
22698 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
22699
22700         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
22701         classes that are a punctuation character in .NET is not the same a
22702         g_unichar_ispunct.
22703
22704 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
22705
22706         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
22707
22708 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
22709
22710         * icall.c: Add new MemCopy internalcall.
22711         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
22712         Simplified code; It is not necessary to handle all the cases here,
22713         as the C# code takes care of it.  Only handle the case of the name
22714         resource embedded into the assembly.
22715
22716         Changed signature to return the data pointer and the size of the
22717         data. 
22718
22719 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
22720
22721         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
22722         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
22723
22724 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
22725
22726         * socket-io.c: ignore EINTR error in select.
22727
22728 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
22729
22730         * class.h, class.c: removed unused subclasses field in MonoClass.
22731
22732 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
22733
22734         * icall.c: improve fix of get_base_definition(). If the parent class
22735           doesn't have the mehod, look at the parent of the parent.
22736         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
22737           to check if a parameter is an in or out parameter
22738           (PARAM_ATTRIBUTE_IN is not set by default).
22739           mono_method_return_message_restore(): Use mono_class_value_size to
22740           get the size of a value type. mono_type_stack_size (parameterType)
22741           does not return the correct value if parameterType is byRef.
22742           mono_load_remote_field(), mono_load_remote_field_new(),
22743           mono_store_remote_field(), mono_store_remote_field_new():
22744           raise exception if the remote call returns an exception.
22745
22746 2003-07-28  Martin Baulig  <martin@ximian.com>
22747
22748         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
22749         method.  This is a wrapper around mono_runtime_invoke() which
22750         boxes the instance object if neccessary.
22751
22752 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
22753
22754         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
22755         metadata.h, row-indexes.h, verify.c: first cut of generics support.
22756
22757 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
22758
22759         * icall.c: disable mcs bug workaround.
22760
22761 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
22762
22763         * object.c (mono_runtime_class_init): Take the metadata_section
22764         mutex before obtaining the domain mutex.
22765
22766         * appdomain.h: Added definition of metadata_section mutex here. 
22767
22768         * object.c: define metadata_mutex here.
22769
22770 2003-07-24  Ravi Pratap  <ravi@ximian.com>
22771
22772         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
22773         fixed.
22774
22775 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
22776
22777         * reflection.c: Fix bug #46669
22778
22779 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22780
22781         * exception.c:
22782         * exception.h:
22783         * icall.c:
22784         * object.h: fill in the type name for TypeLoadException.
22785
22786 2003-07-23  Ravi Pratap  <ravi@ximian.com>
22787
22788         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
22789         relationship between TypeBuilders while compiling corlib) and bug
22790         45993 (Array types returned from the runtime while compiling
22791         corlib were from the loaded corlib).
22792
22793 2003-07-22  Martin Baulig  <martin@ximian.com>
22794
22795         * mono-debug-debugger.c: Reworked the type support a bit more;
22796         distinguish between types and classes.
22797
22798 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
22799
22800         * icall.c: add IsArrayImpl icall.
22801
22802 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
22803
22804         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
22805         initializing real_size only once. Also fix bug #46602.
22806
22807 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
22808
22809         * object.c: Renamed mono_metadata_section to metadata_section.
22810
22811 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
22812
22813         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
22814           empty array if the type is an array. Fixed.
22815           ves_icall_MonoMethod_get_base_definition: if the base method
22816           is abstract, get the MethodInfo from the list of methods of
22817           the class.
22818         * reflection.c: ParameterInfo.PositionImpl should be zero-based
22819           and it was 1-based. Fixed in mono_param_get_objects.
22820
22821 2003-07-20  Martin Baulig  <martin@ximian.com>
22822
22823         * mono-debug.h: Set version number to 31.
22824         (mono_debug_init): Added `MonoDomain *' argument.
22825
22826         * mono-debug-debugger.c: Reworked the type support; explicitly
22827         tell the debugger about builtin types; pass the `klass' address to
22828         the debugger.
22829
22830 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
22831
22832         * image.c: Allow new metadata tables to be loaded without a
22833         warning. Also update the warning message to give the new constant value.
22834                 
22835 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
22836
22837         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
22838         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
22839         array type representation changes.
22840
22841 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
22842
22843         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
22844         on Environment.Exit () call.
22845
22846 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
22847
22848         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
22849         requires a matching corlib.
22850
22851 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
22852
22853         * Changelog: My editor decided to add a CR to each line. Sorry about that.
22854           Committed again without the CRs.
22855         
22856 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
22857
22858         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
22859           getting it from the "this" socket instance. Did not work
22860           if the socket is a subclass of Socket.
22861           Also fixed bug #35371.
22862
22863 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
22864
22865         * metadata.c: fixed size for TypedByRef.
22866         * loader.c: when searching for a method, consider the vararg amrker.
22867         * unicode.c, decimal.c: constify some arrays.
22868
22869 2003-07-15  Dick Porter  <dick@ximian.com>
22870
22871         * socket-io.c: Fixed compilation for gcc < 3.2.
22872
22873         Fixed compilation for machines that don't have AF_INET6 (thanks to
22874         Bernie Solomon <bernard@ugsolutions.com> for that part.)
22875
22876         Fixed compile warnings.
22877         
22878         Fixed formatting and line endings.
22879
22880 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
22881
22882         * socket-io.h:
22883         * socket-io.c: Added IPv6 support.
22884
22885 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
22886
22887         * class.c (mono_class_is_assignable_from): New function to implement
22888         the is_assignable_from logic. Used by mono_object_isinst, 
22889         Type::IsAssignableFrom () and the interpreter.
22890
22891         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
22892         Object, even interfaces.
22893         
22894         * object.c (mono_object_isinst): Implement in terms of 
22895         is_assignable_from.
22896
22897         * icall.c (ves_icall_type_is_assignable_from): New icall.
22898
22899 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
22900
22901         * domain.c (foreach_domain): fix compiler warning.
22902
22903 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
22904
22905         * image.c (load_metadata_ptrs): use g_strndup because strndup is
22906         not available on all plattforms
22907
22908 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
22909
22910         * image.h image.c: Store the metadata version string in MonoImage.
22911         * icall.c: New icall to retrieve the image version.
22912         * reflection.c (create_dynamic_image): Fill in the image version field
22913         * reflection.c (build_compressed_metadata): Use the image version
22914         from the image structure.
22915
22916 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22917
22918         * appdomain.c: modified comment.
22919         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
22920         That will be its last iteration when mono_gc_cleanup is called from
22921         mono_runtime_cleanup and before the domain is unloaded.
22922
22923         Fixes bug #45962.
22924
22925 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
22926
22927         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
22928         attributes.
22929
22930 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
22931
22932         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
22933         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
22934         Bernie Solomon <bernard@ugsolutions.com>.
22935
22936 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
22937
22938         * object.c, object.h: provide mono_object_new_fast() for faster
22939         allocation in some special cases.
22940
22941 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
22942
22943         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
22944         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
22945
22946 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
22947
22948         * threadpool.c: fix leaks.
22949
22950 2003-07-01  Dick Porter  <dick@ximian.com>
22951
22952         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
22953         using MonoGHashTables.  Fixes threadpool bug posted to list.
22954
22955 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
22956
22957         * image.h, image.c: added support to load an assembly from a byte array.
22958         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
22959         assembly bundle support.
22960
22961 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
22962
22963         * threadpool.c (mono_thread_pool_add): keep a reference to the
22964         AsyncResult to prevent GC
22965
22966 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
22967
22968         * class.c: leak fix.
22969
22970 2003-06-25  Dick Porter  <dick@ximian.com>
22971
22972         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
22973         for the async object, the WaitHandle object will close the handle.
22974         Fixes bug 45321.
22975
22976 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
22977
22978         * class.c: in mono_array_class_get (), lookup from the hash with the
22979         same type we insert: this works around a bug in
22980         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
22981         lluis. The real fix will have to wait for after the release.
22982
22983 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
22984
22985         * icall.c: fix memory leak when getting type members.
22986
22987 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
22988
22989         * reflection.c: added more pubtoken special cases.
22990
22991 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
22992
22993         * class.c: handle field offset correctly when class size
22994         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
22995
22996 2003-06-20  Martin Baulig  <martin@ximian.com>
22997
22998         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
22999         *image' field.
23000
23001 2003-06-20  Martin Baulig  <martin@ximian.com>
23002
23003         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
23004
23005 2003-06-20  Martin Baulig  <martin@ximian.com>
23006
23007         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
23008         just distinguish between variables in registers and variables at
23009         an offset relative to a register.
23010
23011 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23012
23013         * icall.c: #ifdef out latest changes until mcs is fixed.
23014
23015 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
23016
23017         * icall.c: return members in metadata order.
23018
23019 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
23020
23021         * icall.c: avoid infinite loop in GetTimeZoneData.
23022
23023 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
23024
23025         * icall.c: added Marshal.Prelink/All icalls.
23026
23027 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
23028
23029         * object.c, object.h: fix warnings and do some overflow checking
23030         when creating arrays.
23031
23032 2003-06-17  Dick Porter  <dick@ximian.com>
23033
23034         * file-io.h:
23035         * file-io.c: File attributes need to be tweaked slightly when
23036         passed from the managed to the w32 world.
23037
23038 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
23039         * profiler.h profiler-private.h profiler.c: Rework last patch
23040         based on suggestion by Paolo.
23041         
23042 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
23043
23044         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
23045         instruction level coverage data collection.
23046         * profiler.h profiler.c (: Added new callback function which can be
23047         used by the profiler to limit which functions should have coverage
23048         instrumentation.
23049         * profiler.c (mono_profiler_load): Call g_module_build_path to
23050         generate the file name of the profiler library.
23051
23052 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
23053
23054         * profiler.c, profiler.h, profiler-private.h: added basic block 
23055         coverage profiling API.
23056
23057 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
23058
23059         * reflection.c (mono_reflection_create_runtime_class): Add support
23060         for events in dynamically generated code.
23061
23062         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
23063         not allocated.
23064
23065 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
23066
23067         * icall.c: when getting timezone info, return reasonable values if we
23068         can't get the actual data.
23069
23070 2003-06-14  Dick Porter  <dick@ximian.com>
23071
23072         * threads.c (start_wrapper): Remove the reference to the thread
23073         object in the TLS data, so the thread object can be finalized.
23074         This won't be reached if the thread threw an uncaught exception,
23075         so those thread handles will stay referenced :-( (This is due to
23076         missing support for scanning thread-specific data in the Boehm GC
23077         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
23078
23079 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
23080
23081         * reflection.c: ensure streams and tables are first allocated with
23082         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
23083
23084 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
23085
23086         * icall.c: fixed GetElementType for byrefs (bug# 44792).
23087
23088 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
23089
23090         * reflection.c (mono_reflection_create_runtime_class): Add support for
23091         properties to dynamically created classes.
23092         * reflection.c: Fix a few places where non-MonoObjects were inserted
23093         into the tokens hashtable.
23094
23095 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
23096
23097         * object.c: some support to handle out of memory exceptions.
23098
23099 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
23100
23101         * marshal.c (mono_marshal_get_native_wrapper): support reference
23102         return types
23103
23104 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
23105
23106         * object.h, object.c: more portability stuff from Bernie Solomon.
23107         Unexport mono_object_allocate(). Added mono_object_unbox ().
23108         Set exitcode when an unhandled exception is thrown.
23109
23110 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
23111
23112         * marshal.c (mono_marshal_get_native_wrapper): use custom
23113         marshaler for return types.
23114
23115 2003-06-10  Dick Porter  <dick@ximian.com>
23116
23117         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
23118         ip_mreq is available
23119
23120 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
23121
23122         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
23123         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
23124         by Bernie Solomon <bernard@ugsolutions.com>.
23125
23126 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
23127
23128         * gc.c (mono_gc_init): Avoid error message on shutdown when
23129         GC_DONT_GC=1 is used.
23130
23131         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
23132         New icall to return the GUID of a module.
23133
23134 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
23135
23136         * class.c: ensure instance size always includes the parent's size
23137         even whem class size is set explicitly (fixes bug#44294).
23138
23139 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
23140
23141         * profiler.h, profiler.c: made the simple profiler thread-safe,
23142         get more accurate timing info. Allow the loading of an
23143         externally-developed profiler module.
23144
23145 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
23146
23147         * marshal.c (mono_marshal_get_native_wrapper): improved
23148         class/byref arguments.
23149         (mono_marshal_get_native_wrapper): better string marshaling support.
23150
23151 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
23152
23153         * class.c: ensure .pack and .size are handled correctly and
23154         simplified layout of static fields.
23155
23156 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
23157
23158         * appdomain.c
23159         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
23160
23161         * loader.c (mono_lookup_pinvoke_call): look for modules in the
23162         current directory (fix bug 44008)
23163
23164 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
23165
23166         * marshal.c (mono_marshal_get_native_wrapper): started support for
23167         custom marshalers.
23168         (mono_delegate_to_ftnptr): consider marshalling specifications
23169
23170 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
23171
23172         * reflection.c, reflection.h: emit custom marshal info.
23173
23174 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23175
23176         * object.c: free the GError.
23177         * icall.c: added CloseEvent_internal.
23178         * threads.[ch]:
23179         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
23180         call.
23181
23182 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
23183
23184         * loader.c (mono_method_get_signature): Add support for dynamic
23185         assemblies.
23186
23187 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
23188
23189         * reflection.c: fixed bug #43905.
23190
23191 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
23192
23193         * class.c, domain.c, icall.c, metadata.h, object.h: support for
23194         handling TypedReference and ArgIterator.
23195         * loader.c, loader.h: added function to get signature at call site.
23196
23197 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
23198
23199         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
23200         data readonly. Buglets and warning fixes. Some MethodSpec support.
23201
23202 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
23203
23204         * class.h, class.c, object.c: remove relative numbering support.
23205
23206 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
23207
23208         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
23209         free the string, until we get a chance to fix Gtk#
23210
23211 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23212
23213         * marshal.c: revert last patch.
23214
23215 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
23216
23217         * icall.c: updates for new mono_class_vtable() not calling
23218         the type constructor anymore.
23219
23220 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
23221
23222         * object.h, object.c: separate vtable creation from type
23223         initialization. Make running the .cctor thread safe.
23224
23225 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
23226
23227         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
23228
23229 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
23230
23231         * loader.c (mono_get_method): consider calling convention
23232
23233 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
23234
23235         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
23236         to return the invisible global type for a module.
23237
23238         * reflection.c (mono_image_build_metadata): Emit global fields too.
23239
23240 2003-05-20  Peter Williams  <peterw@ximian.com>
23241
23242         * loader.c (mono_lookup_internal_call): Add a few newlines.
23243
23244 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
23245
23246         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
23247         literal strings.
23248
23249         * appdomain.c (set_domain_search_path): Recalculate search path when
23250         AppDomainSetup.PrivateBinPath changes.
23251
23252         * object.c (mono_class_compute_gc_descriptor): It turns out some
23253         parts of the class libs (like System.Thread) holds pointers to
23254         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
23255         to treat native int a pointer type here.
23256         
23257 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
23258
23259         * appdomain.h, domain.c: add hashtable for jump target resolution.
23260
23261 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
23262
23263         * reflection.h reflection.c icall.c: Added new icalls 
23264         GetManifestResourceInfoInternal, GetModulesInternal and support
23265         infrastructure.
23266
23267 2003-05-16  Dick Porter  <dick@ximian.com>
23268
23269         * icall.c:
23270         * file-io.h:
23271         * file-io.c: Implement System.IO.MonoIO::GetTempPath
23272
23273 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
23274
23275         * object.c: mono_store_remote_field: little fix to previous patch.
23276
23277 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
23278
23279         * class.c: add constructors to array classes.
23280         * icall.c: special case array construction for InternalInvoke (),
23281
23282 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
23283
23284         * class.h class.c reflection.c object.c: Added support for field
23285         defaults in dynamically generated classes.
23286
23287 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
23288
23289         * reflection.c: properly encode charset for ddlimport.
23290
23291 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
23292
23293         * threads.c: allow compiling without GC.
23294
23295 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
23296
23297         * appdomain.h, object.c, object.h, threads.c, threads.h: added
23298         handling of thread static data.
23299
23300 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
23301
23302         * reflection.h, reflection.c: added mono_custom_attrs_free ().
23303
23304 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
23305
23306         * class.c (mono_array_class_get): always set the serializable flags
23307         (mono_array_class_get): always set the SEALED attribute for array types
23308
23309 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
23310
23311         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
23312         attributes (fix for bug 42021).
23313
23314 2003-05-12  Dick Porter  <dick@ximian.com>
23315
23316         * gc.c: Don't run finalizers when the finalizer thread is
23317         finishing up, because the default domain has already been
23318         destroyed.
23319
23320 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
23321
23322         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
23323         value is null, we should throw an exception.   This is slightly
23324         different than the other conventions used for the constructor.
23325
23326 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23327
23328         * socket-io.c: fixed windows build.
23329
23330 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23331
23332         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
23333
23334 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
23335
23336         * object.c (mono_string_new_wrapper): Compatibility fix for MS
23337         compilers.
23338
23339 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
23340
23341         * class.c (mono_class_layout_fields): Add experimental GC aware
23342         auto layout facility. Requires class library changes to work correctly.
23343
23344         (mono_class_setup_vtable): Avoid overriding explicit interface
23345         method implementations. Fixes iface3.exe test.
23346
23347         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
23348         object reference.
23349         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
23350         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
23351
23352         * metadata.h: Add new type classification macro which determines
23353         whenever the type holds an object reference.
23354
23355 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
23356
23357         * marshal.c (mono_marshal_get_native_wrapper): cleanups
23358
23359 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
23360
23361         * gc.c (finalizer_thread): Work around a GC bug.
23362
23363 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
23364
23365         * marshal.c (emit_struct_conv): allow unions
23366
23367         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
23368
23369 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
23370
23371         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
23372
23373 2003-05-06  Martin Baulig  <martin@ximian.com>
23374
23375         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
23376
23377 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23378
23379         * socket-io.c:
23380         (Select_internal): allow NULLs, don't create arrays if not needed.
23381         Coupled with Socket.cs changes.
23382
23383         * threadpool.c:
23384         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
23385         register a finalizer for it that will close the semaphore handle. This
23386         fixes the leak and make Lupus' test run with > 4080 loops.
23387
23388 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
23389
23390         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
23391         Jerome Laban (bug #42287)
23392
23393 2003-05-02  Martin Baulig  <martin@ximian.com>
23394
23395         * debug-mono-symfile.h
23396         (MonoSymbolFile): Moved declaration into mono-debug.h.
23397         (MonoDebugMethodJitInfo): Likewise.
23398         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
23399         argument.
23400         (_mono_debug_address_from_il_offset): Take a
23401         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
23402
23403         * mono-debug.h
23404         (MonoDebugDomainData): New struct.
23405         (mono_debug_get_domain_data): New function.
23406         (mono_debug_add_method): Take an additional `MonoDomain *'
23407         argument.
23408         (mono_debug_source_location_from_address): Likewise.
23409         (mono_debug_il_offset_from_address): Likewise.
23410         (mono_debug_address_from_il_offset): Likewise.
23411
23412 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
23413
23414         * reflection.c: one more check for null type in custom attrs.
23415
23416 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23417
23418         * reflection.c: avoid warning (comparison is always false due to limited
23419         range of data type).
23420
23421 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23422
23423         * icall.c: throw an exception in Type.GetField if the argument 'name'
23424         is NULL.
23425
23426 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
23427
23428         * reflection.c: fixed handling of enums in named arguments to custom
23429         attributes (bug #42123).
23430
23431 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
23432
23433         * reflection.c: use the right array element type and handle
23434         a null for a Type argument, too.
23435
23436 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
23437
23438         * reflection.c: handle arrays as arguments to custom attributes.
23439
23440 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
23441
23442         * reflection.c: handle a string value in a custom attr
23443         ctor that takes an object.
23444
23445 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
23446
23447         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
23448         (fix bug #42063)
23449
23450 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
23451
23452         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
23453
23454 2003-04-27  Martin Baulig  <martin@ximian.com>
23455
23456         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
23457         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
23458         MONO_DEBUGGER_EVENT_BREAKPOINT.
23459         (mono_breakpoint_trampoline_code): Removed.
23460         (mono_debugger_event_handler): The last argument is now a
23461         `guint32'.
23462         (mono_debugger_insert_breakpoint_full): Removed the
23463         `use_trampoline' argument.
23464         (mono_debugger_method_has_breakpoint): Likewise.
23465         (mono_debugger_trampoline_breakpoint_callback): Renamed to
23466         mono_debugger_breakpoint_callback(); take the method and
23467         breakpoint number as arguments.
23468
23469 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
23470
23471         * metadata.c: fix off by one when loading parameters attributes.
23472
23473 2003-04-24  Martin Baulig  <martin@ximian.com>
23474
23475         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
23476
23477 2003-04-24  Martin Baulig  <martin@ximian.com>
23478
23479         * mono-debug-debugger.c: Moved all code which interacts with the
23480         Mono Debugger here.
23481
23482         * debug-mono-symfile.c: This code now just deals with the symbol
23483         file itself, the debugger code is now in mono-debug-debugger.c.
23484
23485 2003-04-23  Martin Baulig  <martin@ximian.com>
23486
23487         * mono-debug.c (mono_debug_source_location_from_il_offset):
23488         New method; like mono_debug_source_location_from_address(), but
23489         takes an IL offset instead of a machine address.
23490
23491 2003-04-23  Martin Baulig  <martin@ximian.com>
23492
23493         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
23494         `line' field; this is now computed by the debugger.
23495
23496 2003-04-23  Martin Baulig  <martin@ximian.com>
23497
23498         * mono-debug.[ch]: New files.  This is the new debugging interface.
23499
23500         * mono-debug-debugger.[ch]: New files.  Moved all code which
23501         interacts with the Mono Debugger here.
23502
23503 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
23504
23505         * domain.c (mono_init): initialize mono_defaults.monitor_class
23506
23507 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
23508
23509         * reflection.c (method_encode_code): Add a spicy exception to help
23510         future compiler authors.
23511
23512 2003-04-21  Martin Baulig  <martin@ximian.com>
23513
23514         * icall.c
23515         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
23516         Make this work with relative pathnames; g_filename_to_uri() needs
23517         an absolute filename.
23518
23519 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
23520
23521         * icall.c: Track name changes in Object and ValueType.
23522
23523 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
23524
23525         * metadata.c (mono_type_stack_size): size should be a multiple of
23526         sizeof (gpointer)
23527
23528 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23529
23530         * gc.c:
23531         (internal_domain_finalize): moved into mono_domain_finalize. No need
23532         to create another thread because the finalizers will be run in the
23533         finalizer thread.
23534         
23535         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
23536         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
23537         to be run (MS does this too).
23538
23539 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
23540
23541         * object.c (mono_class_compute_gc_descriptor): Update comment.
23542
23543         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
23544
23545         * image.h: Add synchronized wrapper cache.
23546
23547         * image.c (do_mono_image_open): Initialize cache.
23548
23549         * reflection.c (create_dynamic_mono_image): Initialize cache.
23550
23551 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23552
23553         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
23554         ves_icall_System_Buffer_ByteLengthInternal.
23555
23556 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
23557
23558         * reflection.c: setup klass->nested_in earlier. Allow
23559         a dash in the assembly name.
23560
23561 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
23562
23563         * metadata.c (mono_type_to_unmanaged): dont access
23564         type->data.klass for MONO_TYPE_OBJECT
23565         (mono_type_to_unmanaged): consider System.Delegate class
23566
23567 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
23568
23569         * class.c: just setup supertypes in the proper place instead of
23570         initializing the full element class for arrays.
23571
23572 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
23573
23574         * class.c: ensure the element class of arrays is initialized.
23575         Setup the supertype info for array classes, too.
23576
23577 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
23578
23579         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
23580
23581 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23582
23583         * Makefile.am: re-added -m option when running cygpath. This way,
23584         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
23585         separator.
23586         * mono-config.c: same codepath for locating mono config file for WIN32
23587         and the rest.
23588         * assembly.c: if mono_assembly_setrootdir is called, don't override
23589         the value set.
23590
23591 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23592
23593         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
23594         MONO_ASSEMBLIES variable.
23595
23596 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
23597
23598         * icall.c: added Assembly::GetNamespaces() icall.
23599
23600 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23601
23602         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
23603
23604 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
23605
23606         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
23607         * object.c: fixed bug in the construction of vtable for proxies
23608
23609 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
23610
23611         * object.c (mono_array_new): Mark mono_array_new as an icall.
23612
23613 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23614
23615         * class.c: fixed test for public method when overriding interfaces.
23616         Closes bug #40970.
23617
23618 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
23619
23620         * appdomain.h, domain.c: added mono_domain_foreach() to
23621         be able to access the currently loaded appdomains.
23622         * object.c: make string interning work across sppdomains.
23623         Mark some functions for use as icalls.
23624
23625 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
23626
23627         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
23628
23629         * reflection.h reflection.c: Allocate long living data using 
23630         GC_MALLOC_ATOMIC so the collector does not need to scan it.
23631
23632         * reflection.c: Double the allocation size in streams instead of
23633         increasing it, to prevent unneccesary copying on large assemblies.
23634         
23635         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
23636         creation if the assembly does not have the Run flag set.
23637
23638 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
23639
23640         * class.h: avoid the C++ keywords in header files (Jerome Laban
23641         spotted and fixed this).
23642
23643 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23644
23645         * object.c:
23646         (mono_unhandled_exception): fill in the arguments for the
23647         UnhandledException event. Only trigger that event for the default
23648         domain (as MS does).
23649
23650 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
23651
23652         * object.c: Improve typed allocation stuff based on suggestions from
23653         Paolo. Also turn it on if the GC library supports it.
23654
23655 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
23656
23657         * object.c object.h class.h: Added experimental typed allocation
23658         facility using the interfaces in gc_gcj.h.
23659
23660         * os/gc_wrapper.h: Added new include files.
23661         
23662 2003-04-03  Martin Baulig  <martin@ximian.com>
23663
23664         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
23665         which is not yet enabled by default.
23666
23667         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
23668         functions.
23669         (mono_gc_lock, mono_gc_unlock): New static functions.
23670
23671         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
23672         functions; stop/start the world for the garbage collector.  This
23673         is using the windows API; we need to complete the SuspendThread()/
23674         ResumeThread() implementation in the io-layer to make this work on Unix.
23675         (mono_gc_push_all_stacks): New public function; tells the garbage
23676         collector about the stack pointers from all managed threads.
23677
23678 2003-04-03  Martin Baulig  <martin@ximian.com>
23679
23680         * object.h (MonoThread): Added `gpointer stack_ptr'.
23681
23682         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
23683
23684 2003-04-03  Martin Baulig  <martin@ximian.com>
23685
23686         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
23687
23688 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
23689
23690         * reflection.c (typebuilder_setup_fields): Initialize field.first and
23691         field.last.
23692
23693 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
23694
23695         * loader.c (mono_lookup_internal_call): Report the corlib that is
23696         out of sync.
23697
23698 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
23699
23700         * icall.c (ves_icall_type_GetTypeCode): fixed check for
23701         System.DBNull (it's class not valuetype).
23702
23703 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
23704
23705         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
23706         if the array method was already assigned a token (fixes bug#40646).
23707
23708 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
23709
23710         * reflection.c (mono_reflection_get_type): Attempt type resolve even
23711         if no assembly is given.
23712
23713 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
23714
23715         * metadata.h: Added the new tables.
23716
23717         * row-indexes.h: Added definitions for new tables.
23718
23719         * metadata.c: Add schemas for new tables, and add support for
23720         computing the sizes of them.
23721
23722         * class.c: Update for handling the new type cases.
23723
23724 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
23725
23726         * metadata.h (MONO_TYPE_IS_VOID): new macro
23727
23728 2003-03-31  Martin Baulig  <martin@ximian.com>
23729
23730         * threads.h (MonoThreadCallbacks): Added `thread_created'.
23731
23732         * threads.c (mono_thread_new_init): Call `thread_created' in the
23733         mono_thread_callbacks.
23734
23735 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
23736
23737         * loader.h: added marshalbyrefobject_class to mono_defaults
23738         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
23739         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
23740           generation of output parameters.
23741           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
23742         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
23743           contextbound and the target object belongs to the context of the caller.
23744         * object.h: added context and unwrapped_server variables in MonoRealProxy.
23745         * object.c: Implemented support for interfaces and abstract classes
23746           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
23747           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
23748
23749 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
23750
23751         * class.h class.c (mono_class_is_subclass_of): New function.
23752         
23753         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
23754         routines for most common case (calls from ArrayList::ToArray).
23755
23756         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
23757         routine so programs which call Environment::Exit() can be profiled.
23758
23759         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
23760         Added MONO_ARCH_SAVE_REGS.
23761
23762         * icall.c (ves_icall_type_is_subtype_of): Use new function.
23763
23764 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
23765
23766         * blob.h: Add a couple of new MonoType types definitions.
23767
23768         * tabledefs.h: Add a couple of new call convs.
23769
23770 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
23771
23772         * reflection.h (MonoReflectionDynamicAssembly): track changes in
23773         the layout of the class.
23774
23775         * reflection.c (alloc_table): double the size on overflow to avoid
23776         unnecessary copying.
23777
23778         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
23779         avoid filling out metadata tables and blobs. Also set mb->ilgen to
23780         null so it can be garbage collected.
23781         
23782 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
23783
23784         * reflection.c (mono_reflection_get_type): Return the resolved type
23785         only if it is in the assembly we searched.
23786
23787         * reflection.c (ensure_runtime_vtable): Initialize method slots.
23788
23789         * class.c (mono_class_setup_vtable): Set the slot of the overriding
23790         method.
23791
23792 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23793
23794         * appdomain.c:
23795         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
23796         the right one is 'file:///blah', but MS allows it.
23797         * assembly.c:
23798         (mono_assembly_open): allow 'file://blah'
23799
23800         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
23801
23802 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
23803
23804         * socket-io.c: fixes bug #40310.
23805
23806 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
23807
23808         * reflection.c (mono_reflection_parse_type): handle deeply nested
23809         types correctly.
23810
23811         * reflection.c (mono_image_create_token): Use unique token values
23812         since they will be put into a hash table.
23813
23814         * class.c (mono_class_setup_vtable): If a method occurs in more than
23815         one place in the vtable, and it gets overriden, then change the
23816         other occurances too.
23817
23818         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
23819         object as return type.
23820
23821 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
23822
23823         * icall.c: Deleted "ToString" implementation for double and float
23824         because they are full implemented in managed code.
23825
23826 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
23827
23828         * reflection.c, reflection.h: implemented and exported functions
23829         to retrieve info about custom attributes.
23830
23831 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23832
23833         * appdomain.c: moved Uri handling to assembly.c
23834         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
23835         work when using a file Uri in *nix and windows.
23836
23837         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
23838         GetReferencedAssemblies.
23839
23840 2003-03-18  Dick Porter  <dick@ximian.com>
23841
23842         * icall.c: Rename a couple of internal calls
23843
23844         * threads.c: Set the thread state to Stopped when a thread exits.
23845         Fixes bug 39377.
23846
23847 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
23848
23849         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
23850         New icall.
23851
23852         * object.c (mono_class_vtable): fix warning.
23853
23854 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
23855
23856         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
23857
23858         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
23859         memory.
23860         (method_encode_clauses): Create exception info structures in the right
23861         order.
23862         (mono_reflection_setup_internal_class): Initialize supertypes field.
23863
23864         * class.c object.c: Handle interfaces which implement other interfaces 
23865         correctly.
23866
23867         * class.h class.c: Move the supertypes array initialization code into 
23868         a separate function so it can be used for dynamic types too. Also call
23869         it earlier, in mono_class_init(), since it can be used before the
23870         type is initialized.
23871
23872 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23873
23874         * Makefile.am:
23875         * assembly.c:
23876         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
23877
23878         * appdomain.c:
23879         * appdomain.h:
23880         * marshal.c:
23881         * object.c: remove warnings.
23882
23883 2003-03-13  Martin Baulig  <martin@ximian.com>
23884
23885         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
23886         (MonoDebugLexicalBlockEntry): New types.
23887
23888         * debug-mono-symfile.c
23889         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
23890
23891 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23892
23893         * process.c: ret can be any non-zero value accroding to MS doc.
23894
23895 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
23896
23897         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
23898         fixing a warning for a miss-used prototype, would have cause
23899         random memory corruption.
23900
23901 2003-03-07  Martin Baulig  <martin@ximian.com>
23902
23903         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
23904         getting really annoying ....
23905
23906 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
23907
23908         * reflection.c (fixup_method): added support for array methods.
23909
23910 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
23911
23912         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
23913         (pointed out by Michael Adams).
23914
23915 2003-03-04  Dick Porter  <dick@ximian.com>
23916
23917         * icall.c: Temporarily reverted the Double and Single ToString()
23918         change, because it broke nunit.
23919
23920 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
23921
23922         * object.h, threads.h: make include files compatible with C++
23923         (patch by Jerome Laban <jlaban@wanadoo.fr>).
23924
23925 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
23926
23927         * icall.c: Erased ToString helper functions for Double and Single.
23928         Now, that implementations ar all in managed code (Double and Single
23929         Formatters).
23930
23931 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
23932
23933         * appdomain.c: Added method for initializing the default context of
23934         a domain. Added internal call for getting the default context.
23935         * appdomain.h: Added context variable in MonoDomain struct.
23936         * domain.c: mono_domain_set also sets the default context of the domain
23937         * icall.c: Mapped internal method InternalGetDefaultContext.
23938         * object.c: mono_object_get_virtual_method returns always a remoting
23939         wrapper if the object is a transparent proxy.
23940         mono_runtime_invoke_array: when creating an object by calling the
23941         constructor, if the created object is a proxy, then the constructor should
23942         be called using the a remoting wrapper.
23943
23944 2003-03-03  Dick Porter  <dick@ximian.com>
23945
23946         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
23947         variable so it compiles on solaris.  Problem spotted by
23948         Christopher Taylor <ct@cs.clemson.edu>
23949
23950 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23951
23952         * appdomain.c:
23953         (get_info_from_assembly_name): don't leak value.
23954
23955         * icall.c:
23956         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
23957         result.
23958
23959 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
23960
23961         * assembly.c: export mono_image_load_references ().
23962         * class.c: handle function pointers. mono_class_from_name() now
23963         supports nested type names directly.
23964
23965 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
23966
23967         * reflection.h reflection.c: Encode already created dynamic methods 
23968         and fields correctly as a DEF instead of a REF.
23969
23970         * reflection.c: Get rid of the force_ref argument to 
23971         mono_image_typedef_or_ref since it was wrong in the first place.
23972
23973         * string-icalls.c: add error checking to string constructors according
23974         to the MSDN docs.
23975
23976         * reflection.c: Emit types in the order their TypeBuilders were 
23977         created. Previously, a new table index was assigned to each type before
23978         the tables were emitted. This was wrong because the signature blob
23979         might already refer to a type by its original table index.
23980
23981 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
23982
23983         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
23984         change.
23985         
23986 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23987
23988         * Makefile.am: make assemblies dir have \ instead of / on windows.
23989
23990 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
23991
23992         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
23993         iterate over the NESTEDCLASS table using a linear search since the
23994         table is not guaranteed to be sorted by the secondary key.
23995
23996         * class.c (mono_class_create_from_typedef): fixed up call to
23997         mono_metadata_nesting_typedef.
23998         
23999 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
24000
24001         * marshal.c (mono_string_to_byvalstr): clear the memory as
24002         suggested by Jerome Laban <jlaban@wanadoo.fr>
24003
24004 2003-02-26  Dick Porter  <dick@ximian.com>
24005
24006         * process.c: Cope with padding in .rsrc blocks
24007
24008 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
24009
24010         * metadata.h: reverted the filter_len change, it breaks reflection
24011         
24012 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
24013
24014         * metadata.h: added a new field to store the filter_len
24015         
24016
24017 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
24018
24019         * reflection.c: handle custom attributes for types and members
24020         created with Reflection.Emit (bug#38422).
24021
24022 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
24023
24024         * reflection.c: define RTSpecialName automatically for constructors for
24025         compatibility with MS.NET.
24026
24027         * reflection.c (mono_reflection_create_runtime_class): initialize
24028         nested_in field of dynamically created classes.
24029
24030 2003-02-22  Martin Baulig  <martin@ximian.com>
24031
24032         * debug-mono-symfile.h: Incremented version number.
24033
24034 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
24035
24036         * object.h icall.c process.c: fix warnings.
24037
24038 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
24039
24040         * appdomain.h appdomain.c:
24041         (mono_domain_try_type_resolve): split the 
24042         name_or_tb argument into a name and a tb argument.
24043         (mono_domain_has_type_resolve): new function to check whenever the
24044         application has registered a TypeResolve event handler.
24045         
24046         * icall.c reflection.h reflection.c: move the type resolve logic into
24047         mono_reflection_get_type () so it will be invoked when 
24048         Assembly::GetType () is called.
24049
24050         * reflection.c:
24051         (mono_reflection_get_type): renamed to get_type_internal.
24052         (mono_reflection_get_type): fixed type name generation so it works 
24053         for nested types too.
24054         (mono_reflection_get_type): call has_type_resolve () to avoid the 
24055         costly type name generation if there is no resolve event handler.
24056
24057 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
24058
24059         * class.c, image.c: load exported types from file references.
24060
24061 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
24062
24063         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
24064           used to cache the managed methods used to create proxies and make 
24065           remote invocation of methods.
24066         * class.h: Added in MonoVTable a flag to indicate that a class needs 
24067           to be remotely created.
24068         * object.c: Modified the method mono_class_vtable(). It now initializes 
24069           the remote flag of the vtable. Modified mono_object_new_specific(), 
24070           so now it checks the remote flag.
24071         * icall.c: Added a couple of internal methods, one for enabling instance 
24072           creation interception for a type, and one for creating objects bypassing
24073           the remote check.
24074
24075 2003-02-18  Martin Baulig  <martin@ximian.com>
24076
24077         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
24078         New interncall to get a method's metadata token.
24079
24080         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
24081         New interncall for the debugger.
24082
24083 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
24084
24085         * class.c (mono_class_setup_vtable): allocate supertype array
24086
24087 2003-02-18  Martin Baulig  <martin@ximian.com>
24088
24089         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
24090
24091 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24092
24093         * reflection.c:
24094         (assembly_name_to_aname): jump over unknown properties (i've found
24095         something like: 'type, assembly, version=xxx, custom=null, public...',
24096         so now will ignore custom=null and still get the rest of the values).
24097
24098 2003-02-17  Dick Porter  <dick@ximian.com>
24099
24100         * threads.c: Have Thread.Start() wait for a semaphore to signal
24101         that the thread has set up all its local data.  This fixes bug
24102         34323, where Abort() raced the new thread's TLS data.
24103
24104         Also removes the handle_store() call from start_wrapper, because
24105         threads are now always created suspended and there is no longer a
24106         race between the parent and child threads to store the info.
24107
24108 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
24109
24110         * image.c: explain the #- heap issue in a message, hopefully
24111         avoiding FAQs on mono-list.
24112
24113 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24114
24115         * icall.c:
24116         (GetEntryAssembly): if the domain has not invoked
24117         AppDomain.ExecuteAssembly yet, return the assembly of the default
24118         AppDomain.
24119
24120 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
24121
24122         * class.c (mono_ldtoken): make it work in dynamic assemblies.
24123
24124 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
24125
24126         * metadata.c, reflection.c: simple speedup to type hash
24127         and equals code.
24128
24129 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
24130
24131         * image.c, image.h, class.c, assembly.c: move module loading
24132         to MonoImage. When loading metadata, consider alignemnet from
24133         the start of metadata, not from the metadata address in memory.
24134
24135 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
24136
24137         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
24138         AssemblyBuilder objects. Factored out custom attribute creation into
24139         a separate function.
24140         (create_custom_attr): new function to create custom attributes.
24141
24142 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
24143
24144         * Makefile.am: Got tired of typing the full pathname to pedump.
24145         Until there is another option, am installing this.
24146
24147 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
24148
24149         * class.c (class_compute_field_layout): always set field->parent 
24150         (mono_ldtoken): use mono_defaults.fieldhandle_class;
24151
24152 2003-02-11  Dick Porter  <dick@ximian.com>
24153
24154         * threads-types.h:
24155         * monitor.c: Rewrote Monitor, making lock much faster and
24156         Pulse/Wait work as specified.  Also uses much fewer handles, and only
24157         creates them as needed.
24158
24159         * exception.c: Added SynchronizationLockException
24160
24161         * threads.c: Deleted old Monitor implementation.  The new one is
24162         in a new file.
24163
24164 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
24165
24166         * class.c: handled TypedReference type code. Set the correct size for
24167         class data. Setup interface_offsets for interface classes, too.
24168
24169 2003-02-09  Martin Baulig  <martin@ximian.com>
24170
24171         * debug-mono-symfile.h: Reflect latest symbol writer changes.
24172
24173 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
24174
24175         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
24176         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
24177         * object.c: fixed mono_object_get_virtual_method () for interfaces.
24178         * verify.c: check for code that runs after the end of the method.
24179
24180 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
24181
24182         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
24183         "System.Math::Round2".
24184         * sysmath.h: Added Floor, Round and Round2 definitions.
24185         * sysmath.c: Modified certain functions that were not 100% compliant
24186         with MS.NET (math precision) and added the implementation of Floor,
24187         Round and Round2.
24188
24189 2003-02-07  Martin Baulig  <martin@ximian.com>
24190
24191         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
24192
24193 2003-02-07  Martin Baulig  <martin@ximian.com>
24194
24195         * debug-mono-symfile.c: Reflected latest symwriter changes.
24196         (mono_debug_create_mono_symbol_file): Removed.
24197         (mono_debug_open_mono_symbol_file): Take an argument which
24198         specifies whether to create a dynamic symbol file.
24199
24200 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
24201
24202         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
24203
24204 2003-02-05  Martin Baulig  <martin@ximian.com>
24205
24206         * reflection.c (mono_image_build_metadata): Make this public,
24207         protect it against being called multiple times, don't create
24208         resources and don't build the compressed metadata here.
24209         (mono_image_create_pefile): Do this here.
24210
24211         * icall.c
24212         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
24213
24214 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24215
24216         * socket-io.c: fixed bug #36322.
24217
24218 2003-02-06  Piers Haken <piersh@friskit.com>
24219
24220         * appdomain.[ch]:
24221         * class.h:
24222         * debug-mono-symfile.c:
24223         * icall.c:
24224         * loader.c:
24225         * mono-config.c:
24226         * monosn.c:
24227         * reflection.c:
24228         * socket-io.c: warning cleanups
24229
24230 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
24231
24232         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
24233         function. works like remoting invoke, but does a check for the Proxy first.
24234
24235 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
24236
24237         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
24238
24239 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
24240
24241         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
24242         array of pointers.
24243         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
24244         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
24245
24246         * object.c (mono_store_remote_field_new): used by the new jit
24247         instead of mono_store_remote_field
24248         (mono_load_remote_field_new): used by the new jit
24249         instead of mono_load_remote_field
24250
24251 2003-02-05  Patrik Torstensson
24252
24253         * appdomain.c: changed unload to take the domain id instead
24254         of domain
24255         
24256         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
24257
24258
24259 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24260
24261         * appdomain.c: don't look for assemblies in ApplicationBase if
24262         PrivateBinPathProbe is set.
24263
24264 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24265
24266         * object.c: make the first argument in main_args contain the absolute
24267         path to the assembly. Fixes bug #37511.
24268
24269 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24270
24271         * icall.c: get correct UTC offset for countries not using daylight
24272         time saving. Fixes bug #30030.
24273
24274 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24275
24276         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
24277         and 1 are the family).
24278
24279 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
24280
24281         * icall.c (ves_icall_InternalExecute): removed wrong assertion
24282
24283         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
24284
24285 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
24286
24287         * reflection.c: added support for SignatureHelper tokens, which is
24288         needed by the Calli opcode.
24289
24290         * reflection.h: track changes to SignatureHelper class.
24291
24292         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
24293
24294 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24295
24296         * appdomain.c: fixed loading assemblies from PrivateBinPath.
24297
24298 2003-02-03  Patrik Torstensson
24299         * appdomain.[c|h], domain.c : 
24300          - Added support for getting a domain via domain id
24301          - Support for setting and getting domain from System.AppDomain 
24302            (used in cross appdomain channel)
24303          - Added support for get/set for a MonoAppContext on a thread 
24304            (Context class in System.Runtime.Remoting.Contexts),
24305          - Removed hack in Get/SetData and ExecuteAssembly.
24306         
24307         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
24308         the managed world to get control when a proxy is created.
24309
24310         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
24311         
24312 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
24313
24314         * icall.c
24315         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
24316         Populate the codebase field as well.
24317
24318 2003-02-02  Martin Baulig  <martin@ximian.com>
24319
24320         * debug-mono-symfile.c
24321         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
24322         (mono_debug_symfile_add_method): Allow interncalls.
24323
24324 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24325
24326         * icall.c: throw parse exception if strtod fails or the string is empty.
24327
24328 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
24329
24330         * marshal.c: handle object type separately from defined
24331         class types.
24332
24333 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
24334
24335         * marshal.c: handle NATIVE_LPSTR for strings when it's
24336         explicitly specified.
24337
24338 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
24339
24340         * reflection.c, reflection.h, icall.c: setup the reflection
24341         handle cache for ModuleBuilders and AssemblyBuilders.
24342
24343 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
24344
24345         * reflection.c (reflection_methodbuilder_to_mono_method): set
24346         pinvoke flag
24347
24348 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24349
24350         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
24351
24352 2003-01-29  Dick Porter  <dick@ximian.com>
24353
24354         * threads.c: No need for the fake_thread kludge now that Thread
24355         doesn't run a class constructor
24356         
24357 2003-01-29  Dick Porter  <dick@ximian.com>
24358
24359         * threads.c: Use g_direct_hash instead of the rather bogus
24360         g_int_hash
24361
24362 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
24363
24364         * marshal.c (mono_marshal_get_native_wrapper): add check for null
24365         (fix pinvoke12.exe)
24366         (mono_marshal_get_struct_to_ptr): generate valid IL code
24367         (mono_marshal_get_ptr_to_struct): generate valid IL code
24368         (*): correctly set sig->pinvoke, we need to memdup the signature
24369         to do that
24370
24371 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
24372
24373         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
24374         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
24375
24376 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
24377
24378         * profiler.c: provide more callers information.
24379
24380 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
24381
24382         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
24383
24384         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
24385
24386         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
24387
24388 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
24389
24390         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
24391         exception instead of going into an infinite loop on dates which it 
24392         can't yet handle.
24393
24394         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
24395         out-of-range exception if needed.
24396
24397         * class.c (mono_class_setup_vtable): allow a virtual method to provide
24398         an implementation for an interface method and to override an inherited
24399         method at the same time. 
24400         Imagine a scenario when a virtual method is used to override a
24401         virtual abstract method in a parent class, and this same method 
24402         provides an implementation for an method inherited from an interface. 
24403         In this case, the interface resolution code will set im->slot, which 
24404         means that the virtual method override pass will skip this method 
24405         which means a pointer to the abstract method inherited from the parent
24406         will remain in the vtable of this non-abstract class.
24407
24408         * class.c: (mono_class_setup_vtable): continue search for a real 
24409         method if only an abstract method is found.     
24410
24411 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
24412
24413         * reflection.c: add size to encoding for ByValStr and ByValArray
24414         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
24415
24416 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
24417
24418         * class.c (mono_class_setup_vtable): pass the override info as an
24419         argument.
24420
24421         * class.c (mono_class_setup_vtable): set the slot of overriding methods
24422         correctly.
24423         
24424         * reflection.c (ensure_runtime_vtable); add support for method 
24425         overrides.
24426         
24427 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
24428
24429         * reflection.c (resolution_scope_from_image): Hack to work to work with
24430         dynamic assemblies.
24431
24432         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
24433         added a 'force_ref' argument to force this function to allways return 
24434         a TypeRef. This is needed by mono_image_get_memberref_token ().
24435         
24436 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
24437
24438         * reflection.c (mono_image_get_type_info): interfaces really don't have
24439         a parent.
24440
24441         * reflection.c (mono_image_basic_init): fill out missing fields of
24442         image structure.
24443
24444         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
24445         dynamic assemblies. This is required so dynamic assemblies show up in
24446         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
24447         Type::GetType() etc. This is consistent with MS behaviour.
24448
24449         * image.c image.h reflection.c: add newly created classes to the name 
24450         cache so mono_class_get () will find them.      
24451
24452 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
24453
24454         First part of changes to get IKVM.NET running under mono.
24455         
24456         * appdomain.h, appdomain.c: added new function 
24457         mono_domain_try_type_resolve() which will emit TypeResolve events. 
24458         This function will call AppDomain::DoTypeResolve to do the actual work.
24459
24460         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
24461         moved existing code dealing with dynamic tokens to a new function 
24462         called mono_reflection_lookup_dynamic_token (). This function will 
24463         raise TypeResolve events when appropriate. Since reflection.c is not 
24464         part of libmetadata, a new hook function called 
24465         mono_lookup_dynamic_token() is added to class.c which will call this.
24466
24467         * assembly.h assembly.c: make the invoke_load_hook function public,
24468         so it can be called for dynamic assemblies.
24469
24470         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
24471
24472         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
24473         type isn't found.
24474
24475         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
24476         MonoGHashTable, since it contains pointers to objects which the GC 
24477         needs to track.
24478
24479         * assembly.c (search_loaded): remove unused variable.
24480         
24481 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
24482
24483         * object.c: fixed issue exposed by gcc-generated IL programs
24484         that use RVA data for pointers.
24485
24486 2003-01-25  Martin Baulig  <martin@ximian.com>
24487
24488         * threads.c (start_wrapper): Moved the initialization of
24489         `start_func' above the mono_new_thread_init() call to which we
24490         pass it as argument.
24491
24492 2003-01-24  Martin Baulig  <martin@ximian.com>
24493
24494         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
24495         the MonoThread pointer.
24496
24497 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
24498
24499         * icall.c: Rename `PowImpl' to Pow.
24500
24501 2003-01-23  Dick Porter  <dick@ximian.com>
24502
24503         * threads.c (start_wrapper): Create a Thread object if needed, so
24504         the Main() thread can do the class initialisation in a subthread
24505         that has been set up to allow managed code execution.
24506
24507         Pass the thread ID instead of the MonoThread pointer to the thread
24508         start and attach callbacks.  This change is required, because the
24509         jit thread start callback must be called _before_ the Thread
24510         object can be created.
24511         
24512         (mono_thread_init): Removed much object creation code that is no
24513         longer needed.  No managed code is called from here now.
24514
24515         * object.c (mono_runtime_exec_managed_code): Create a subthread
24516         for Main, and call back to the runtime to use it.
24517         Set the exit code when Main exits.
24518
24519         * gc.c: Make sure domain finalisation happens in a subthread.
24520         Re-enable threaded GC, fixing bug 31333 (again).
24521
24522         * environment.c: System.Environment internall calls (so far just
24523         ExitCode is here, the others are still in icall.c)
24524
24525         * appdomain.c (mono_runtime_cleanup): All threads running managed
24526         code should have finished before mono_runtime_cleanup() is
24527         reached, so no need to clean up threads.
24528
24529 2003-01-22  Martin Baulig  <martin@ximian.com>
24530
24531         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
24532         `gpointer func' arguments.      
24533         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
24534         but added `MonoThread *thread' argument.
24535         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
24536
24537         * threads.c (mono_new_thread_init): Added `gpointer func' argument
24538         and pass it to the mono_thread_start_cb callback.
24539         (mono_install_thread_callbacks): New public function to install a
24540         set of callbacks which are set by the debugger.
24541         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
24542
24543 2003-01-22  Martin Baulig  <martin@ximian.com>
24544
24545         * Makefile.am: Install debug-mono-symfile.h.
24546
24547 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
24548
24549         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
24550
24551 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
24552
24553         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
24554         * class.c (mono_ptr_class_get): correctly set access levels of pointers
24555         (mono_array_class_get): correctly set access levels of arrays
24556
24557 2003-01-20      Patrik Torstensson
24558         * image.h (MonoAssemblyName): changed major, minor, build, revision
24559         from signed to unsigned.
24560
24561 2003-01-20  sean kasun <skasun@azstarnet.com>
24562
24563         * reflection.c (load_cattr_value): Now this handles
24564         MONO_TYPE_SZARRAY.  Fixes bug #35629
24565
24566 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
24567
24568         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
24569         integer value
24570
24571 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24572
24573         * decimal.c: fixed bug #26056.
24574
24575 2003-01-17  Martin Baulig  <martin@ximian.com>
24576
24577         * gc.c: Raise an ExecutionEngineException instead of using g_error().
24578
24579 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24580
24581         * exception.[ch]:
24582         (mono_get_exception_type_initialization): new function.
24583
24584         * object.c: throw a TypeInitializationException when an exception is
24585         thrown invoking the class constructor.
24586
24587 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24588
24589         * reflection.c: fixed attribute reading.
24590
24591 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24592
24593         * icall.c:
24594         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
24595         provided, look for the type in the calling assembly and then in
24596         mscorlib; if the assembly name is provided, only try that one.
24597
24598 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
24599
24600         * object.c: register the vtable before there is a chance it's
24601         queried again recursively.
24602
24603 2003-01-13  Duncan Mak  <duncan@ximian.com>
24604
24605         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
24606         gc-internal.h. 
24607         
24608 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
24609
24610         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
24611
24612 2003-01-11  Martin Baulig  <martin@ximian.com>
24613
24614         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
24615         this to 20 for the release.
24616
24617 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
24618
24619         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
24620
24621         * loader.c (mono_method_get_marshal_info): bug fix
24622
24623         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
24624         structures with explicit layout
24625
24626 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
24627
24628         * profiler.c: made the output more readable (and sorted). 
24629         Added caller information for the allocation profiler.
24630
24631 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
24632
24633         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
24634
24635 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24636
24637         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
24638         to get value types.
24639         
24640 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
24641
24642         * object.c, profiler.h, profiler.c, profiler-private.h:
24643         Added object allocation profiler.
24644
24645 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
24646
24647         * reflection.h, reflection.c: handle global methods.
24648         Compress blob entries.
24649
24650 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
24651
24652         * marshal.c: fix compilation.
24653
24654 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
24655
24656         * loader.c (mono_method_get_marshal_info): impl.
24657
24658         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
24659
24660 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24661
24662         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
24663         for reference types.
24664
24665 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
24666
24667         * loader.c: fixed off by one error in loaded parameter names.
24668
24669 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
24670
24671         * marshal.c (mono_marshal_get_icall_wrapper): like
24672         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
24673         instead of a MonoMethod.
24674
24675 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24676
24677         * decimal.c: fixed bug #36537.
24678
24679 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
24680
24681         * marshal.c: throw a missing method exception if a
24682         P/Invoke method is not found.
24683
24684 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
24685
24686         * icall.c: allow a null this for constructors.
24687
24688 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
24689
24690         * icall.c: raise the proper exceptions if the arguments to the
24691         internal Invoke are incorrect.
24692
24693 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
24694
24695         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
24696
24697 2003-01-03  Martin Baulig  <martin@ximian.com>
24698
24699         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
24700
24701 2002-12-31  Martin Baulig  <martin@ximian.com>
24702
24703         * debug-mono-symfile.c: Completely rewrote the type section.
24704         Instead of using individual malloc()ed fields, we use one big
24705         continuous memory area and offsets into this area.
24706         See the comments in the source code for details.
24707
24708 2002-12-30  Martin Baulig  <martin@ximian.com>
24709
24710         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
24711
24712 2002-12-30  Martin Baulig  <martin@ximian.com>
24713
24714         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
24715         line number table in this data blob instead of using an external
24716         pointer.
24717
24718 2002-12-28  Martin Baulig  <martin@ximian.com>
24719
24720         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
24721
24722 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
24723
24724         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
24725         as a boxed return type.
24726
24727 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
24728
24729         * appdomain.c
24730         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
24731         g_build_filename to properly get separators on the filename created.
24732
24733         * object.h: Small change, introduce MonoMarshalByRefObject to
24734         track the layout of that structure in the C# universe as we make
24735         changes there.
24736
24737 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
24738
24739         * object.c: removed assert to allow static fields on interfaces.
24740         * loader.c: a TypeSpec may be used for any type, not just arrays.
24741
24742 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
24743
24744         * class.c, class.h: added mono_class_array_element_size ().
24745         Ignore static methods in interfaces.
24746
24747 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24748
24749         * threads.c: fixed the build under cygwin.
24750
24751 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
24752
24753         * reflection.c: handle nullref constants. Allocate keys for
24754         reflection handles with the GC.
24755
24756 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
24757
24758         * threads.c, threads.h: added mono_thread_get_abort_signal()
24759         to get a suitable signal for thread abort.
24760
24761 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
24762
24763         * metadata.c: fix handling of ExportedType table.
24764
24765 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24766
24767         * icall.c: added WriteWindowsDebugString internal call.
24768
24769 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24770
24771         * reflection.h: added fields to match C# implementation.
24772
24773 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24774
24775         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
24776
24777 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
24778
24779         * gc.h, gc-internal.h: Rename header for GC internal calls to
24780         gc-internal.h from gc.h as to not clash with Boehm GC having its
24781         header installed as <gc.h> in outside include paths.
24782         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
24783         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
24784
24785 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24786
24787         * icall.c: assign minor, build and revision in FillName.
24788
24789 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
24790
24791         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
24792         Added support for running code generated by Reflection.Emit.
24793
24794 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24795
24796         * appdomain.c: check for NULL argument in LoadFrom.
24797
24798 2002-12-10  Dick Porter  <dick@ximian.com>
24799
24800         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
24801
24802 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24803
24804         * appdomain.c: fix buglet when building exe file name.  Handle full
24805         assembly name (needed after latest changes to AssemblyName).
24806         * image.c:
24807         (mono_image_close): free some hashtables.
24808
24809 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
24810
24811         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
24812         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
24813         on some systems (redhat 7.3) 
24814
24815 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
24816
24817         * threads.c: delete the critical section of a sync block,
24818         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
24819
24820 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
24821
24822         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
24823
24824 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24825
24826         * appdomain.[ch]: handle the assembly preload event to try loading the
24827         assemblies using the paths we have in the current domain.
24828
24829         * assembly.[ch]: created an assembly preload hook that is called to try
24830         loading the assembly by other means that the ones provided here.
24831
24832         * domain.c: initialize the domain search path.
24833
24834         From now on, assemblies (TODO: except corlib and System) are loaded
24835         according to these rules when using mono_assembly_load ():
24836
24837                 1. It tries to load the assembly from the ApplicationBase
24838                 of the current domain appending .dll and .exe (TODO: have to
24839                 try loading from name/name.dll and name/name.exe).
24840
24841                 2. It tries the search path specified in PrivateBinPath for the
24842                 current domain (if any).
24843
24844                 3. Previous behavior.
24845
24846 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
24847
24848         * icall.c: implemented GetInterfaceMap() related icall.
24849         * domain.c, loader.h: load MethodInfo in mono_defaults.
24850
24851 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
24852
24853         * gc.c: disable the finalizer thread for now, untill all the issues
24854         with it are resolved.
24855
24856 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
24857
24858         * string-icalls.c: handle embedded nulls in string ctor when the
24859         length is specified.
24860
24861 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
24862
24863         * class.c: look for explicit interface implementation in parent
24864         classes, too.
24865
24866 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
24867
24868         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
24869
24870 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
24871
24872         * gc.c: protect handles with a critical section.
24873
24874 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24875
24876         * icall.c:
24877         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
24878         parameters. If no assembly specified, try getting the type from all
24879         the assemblies in the current domain, else, load the assembly and get
24880         the type from it.
24881
24882 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24883
24884         * marshal.c: applied patch from Aleksey Demakov that fixes
24885         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
24886
24887 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24888
24889         * icall.c: fixed get_location.
24890
24891 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
24892
24893         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
24894         declarations to make it work with older gcc. 
24895
24896         * loader.c (mono_get_method): set signature->pinvoke for native calls
24897
24898 2002-11-20  Dick Porter  <dick@ximian.com>
24899
24900         * threads.c (mono_thread_init): Set the main thread's handle
24901
24902 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
24903
24904         * gc.c: allow compilation without GC support. Changed to match the
24905         mono coding style.
24906
24907 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
24908
24909         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
24910
24911 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
24912
24913         * reflection.c: set a public key token on the core assemblies.
24914
24915 2002-11-18  Dick Porter  <dick@ximian.com>
24916
24917         * threads.c: Split out some thread initialisation so that other
24918         files can set the start callback function.
24919
24920         * gc.c: Run finalisers in a separate thread, to avoid stack
24921         overflow.  Fixes bug 31333.
24922
24923         * appdomain.c: Set up GC finalisation thread.
24924
24925         * reflection.c: 
24926         * object.c: 
24927         * domain.c: Use gc.h macros for GC_malloc
24928         
24929 2002-11-15  Dick Porter  <dick@ximian.com>
24930
24931         * threadpool.c: 
24932         * threads.c:
24933         * appdomain.c: Removed mono_runtime_init_with_attach(),
24934         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
24935         merging the extra parameter with the existing function.  Removed
24936         unneeded code in mono_thread_attach().
24937
24938 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
24939
24940         * image.c (mono_image_loaded_by_guid): a method to get loaded
24941         images by guid. 
24942         (load_metadata_ptrs): we store the guid as string.
24943
24944 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
24945
24946         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
24947
24948         * metadata.c (mono_guid_to_string): imported method form Zoltan
24949         Varga (slightly modified)
24950
24951         * assembly.c (mono_assembly_open): load precompiled code
24952
24953         * loader.h (MonoMethod): we store the method token for use in the
24954         aot compiler. 
24955
24956 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24957
24958         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
24959         the hook function called when an assembly is loaded.
24960         
24961         * domain.c: Modified file.
24962         (mono_domain_assembly_load): removed hash table insertion of assemblies.
24963
24964         Fixes bug #33196.
24965
24966 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
24967
24968         * reflection.c: Map PEFileKind to the value expected by the WinNT
24969         image loader. 
24970
24971 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24972
24973         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
24974         Read until the buffer is filled completely.
24975
24976 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24977
24978         * icall.c: implemented MonoType.InternalGetEvent ().
24979
24980 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24981
24982         * appdomain.c: implemented InitAppDomainSetup. Delayed
24983         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
24984         the entry_assembly.
24985
24986         * assembly.c: base_dir is now an absolute path ending with
24987         G_DIR_SEPARATOR.
24988
24989         * icall.c: modified get_location according to the above changes.
24990
24991         * object.c: init AppDomain.SetupInformation for the default domain after
24992         we have the entry assembly.
24993
24994         * domain.c: when unloading a domain, setup = NULL.
24995
24996 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
24997
24998         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
24999
25000 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
25001
25002         * object.h, object.c: introduced mono_object_get_virtual_method ()
25003         to lookup the method invoked on an object when a callvirt is done on
25004         a method.
25005         * icall.c: make MethodInfo::Invoke() always do a virtual call.
25006
25007 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25008
25009         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
25010         current domain when loaded an assembly and failed to load it.
25011
25012         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
25013
25014 2002-10-31  Dick Porter  <dick@ximian.com>
25015
25016         * icall.c: 
25017         * file-io.h: 
25018         * file-io.c: Return the error status in a parameter, as the
25019         GetLastError() value has long since been blown away if we try and
25020         look it up in a subsequent internal call invocation.  Delete the
25021         GetLastError() internal call, because it's useless.
25022
25023 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
25024
25025         * class.[ch]: added cast_class to fix bug 29517
25026
25027 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
25028
25029         * marshal.c: create valid IL code in the filter clause:
25030         the new JIT is less forgiving:-)
25031
25032 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25033
25034         * icall.c: removed get_property internal call.
25035
25036 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
25037
25038         * appdomain.h domain.c: Added an ID to appdomains.
25039         
25040         * threads.c threads.h icall.c: Implement icall
25041         Thread:GetDomainID(), and remove unused icall 
25042         CurrentThreadDomain_internal.
25043
25044 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25045
25046         * icall.c: Don't recurse through the base types in GetConstructor.
25047         Fixes bug #32063. 
25048
25049 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
25050
25051         * mempool.h, mempool.c: added mono_mempool_empty() and
25052         mono_mempool_stats().
25053
25054 2002-10-23  Dick Porter  <dick@ximian.com>
25055
25056         * file-io.c: 
25057         * file-io.h: 
25058         * icall.c: Added MonoIO.GetFileType internal call
25059
25060 2002-10-17  Dick Porter  <dick@ximian.com>
25061
25062         * appdomain.c (mono_runtime_cleanup): Don't signal the async
25063         delegate semaphore before waiting for all threads to finish,
25064         because new threads can also call async delegates.  Fixes bug
25065         32004.
25066
25067         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
25068         of 3 seconds, in case another async job is queued.  (This part is
25069         needed because the bug fix reintroduced the 3s exit lag.)  This
25070         makes the mono_runtime_shutdown flag superfluous.
25071
25072 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
25073
25074         * reflection.c: include ehader size in method section headers.
25075         Really check for suplicated modules entries.
25076
25077 2002-10-17  Martin Baulig  <martin@gnome.org>
25078
25079         * debug-mono-symfile.c: Added back support for locals.
25080
25081 2002-10-14  Martin Baulig  <martin@gnome.org>
25082
25083         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
25084         MONO_TYPE_VOID.
25085
25086 2002-10-14  Martin Baulig  <martin@gnome.org>
25087
25088         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
25089         mono_class_get() instead of looking in the class cache. 
25090
25091 2002-10-13  Martin Baulig  <martin@gnome.org>
25092
25093         * debug-mono-symfile.c: Set version number to 28, include the
25094         signature in method names.
25095
25096 2002-10-13  Martin Baulig  <martin@gnome.org>
25097
25098         * debug-mono-symfile.h: Set version number to 27.
25099
25100 2002-10-11  Martin Baulig  <martin@gnome.org>
25101
25102         * gc.c: Don't register/unregister NULL pointers as disappearing links.
25103
25104 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
25105
25106         * metadata.c, metadata.h: added helper function to allocate signatures.
25107
25108 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25109
25110         * icall.c: added internal call to get the location of machine.config.
25111
25112 2002-10-08  Martin Baulig  <martin@gnome.org>
25113
25114         * debug-mono-symfile.c: Ignore classes with a pending init for the
25115         moment.
25116
25117 2002-10-03  Dick Porter  <dick@ximian.com>
25118
25119         * threads.c: Freebsd pthread_t is a pointer
25120
25121 2002-10-03  Dick Porter  <dick@ximian.com>
25122
25123         * socket-io.c: Implemented GetHostName_internal
25124
25125 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25126
25127         * mono-config.c:
25128         (mono_config_parse_file): don't leak the text.
25129
25130 2002-10-02  Martin Baulig  <martin@gnome.org>
25131
25132         * debug-mono-symfile.c: Added support for methods.
25133
25134 2002-10-01  Martin Baulig  <martin@gnome.org>
25135
25136         * debug-mono-symfile.c: Don't emit methods and line numbers for
25137         the dynamic symbol file, just write the type table.  We can easily
25138         have an external helper program which creates a symbol file for an
25139         IL file.        
25140
25141 2002-10-01  Dick Porter  <dick@ximian.com>
25142
25143         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
25144         Only add the handle to the cleanup array when we're about to
25145         launch the thread.  Bug 31425 deadlocked when the test was run on
25146         mono under w32.
25147
25148 2002-10-01  Martin Baulig  <martin@gnome.org>
25149
25150         * debug-mono-symfile.c: Added support for properties.
25151
25152 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
25153
25154         * reflection.c: unaligned store fix from Mark Crichton
25155         <crichton@gimp.org>.
25156
25157 2002-09-27  Martin Baulig  <martin@gnome.org>
25158
25159         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
25160         New interncall.
25161
25162 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
25163
25164         * assembly.h, assembly.c: use a sane API to hook into the assembly
25165         loading process instead of a useless special-purpouse hack
25166         (ngen needs a hook, too, for example).
25167
25168 2002-09-27  Dick Porter  <dick@ximian.com>
25169
25170         * threads.c (mono_thread_init): Call GetCurrentProcess() so
25171         io-layer can set up some process handle info.  Not needed on w32,
25172         but doesn't hurt either.
25173
25174         * process.c: Pass the program name in the second parameter to
25175         CreateProcess, so the path is searched.  Include the working
25176         directory. Implemented process name, process enumeration, and some
25177         process detail internal calls.
25178         
25179         * icall.c: Added internal calls for process lookup, and some
25180         process details
25181
25182 2002-09-26  Martin Baulig  <martin@gnome.org>
25183
25184         * assembly.c (mono_install_open_assembly_hook): New global
25185         function to install a function to be invoked each time a new
25186         assembly is loaded.
25187         (mono_assembly_open): Run this callback function if set.
25188
25189         * debug-mono-symfile.c: Put back line numbers for the dynamic
25190         symbol file and also record the .il file as source file.  This
25191         allows us to install the temporary symbol file as `file.dbg' just
25192         like a compiler-generated one.
25193
25194 2002-09-26  Nick Zigarovich <nick@chemlab.org>
25195
25196         * Corrected typo in gc.c (BOHEM vs BOEHM).
25197
25198 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25199
25200         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
25201         GetProperties. Also avoid calling g_slist_length in GetProperties and
25202         GetMethods.
25203
25204 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
25205
25206         * reflection.c: avoid unaligned stores (bug spotted by
25207         Mark Crichton  <crichton@gimp.org>).
25208
25209 2002-09-25  Martin Baulig  <martin@gnome.org>
25210
25211         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
25212         instead of guint64 for addresses and added prologue/epilogue info.
25213
25214 2002-09-25  Martin Baulig  <martin@gnome.org>
25215
25216         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
25217         store line number info.  For the dynamic symbol file, we only need
25218         to provide the JIT generated dynamic line number info for the dynamic
25219         symbol file.
25220
25221 2002-09-25  Martin Baulig  <martin@gnome.org>
25222
25223         * debug-mono-symfile.h: Incremented version number.
25224
25225 2002-09-24  Martin Baulig  <martin@gnome.org>
25226
25227         * class.c (mono_debugger_class_init_func): New global function
25228         pointer variable.
25229         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
25230         call it.
25231
25232         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
25233         function.  This is called via the mono_debugger_class_init_func
25234         hook to add all types to the dynamic type table.
25235         (ves_icall_MonoDebugger_GetType): New interncall to get a class
25236         from its metadata token.
25237
25238         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
25239         New interncall for the debugger.
25240
25241 2002-09-24  Nick Drochak <ndrochak@gol.com>
25242
25243         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
25244         before using it in case it is null.
25245         
25246 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
25247
25248         * metadata.c: allow custom modifiers in local var signatures
25249         (bug spotted by Zoltan Varga).
25250
25251 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
25252
25253         * class.c: deal with the <Module> class that may have a NULL vtable.
25254         Eliminate warnings.
25255
25256 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
25257
25258         * image.c, image.h: more strong name helpers.
25259         * monosn.c: more work: convert pem keys to cryptoapi format.
25260
25261 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
25262
25263         * string-icalls.c: speedup IndexOf.
25264
25265 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
25266
25267         * icall.c: updates from Zoltan.2.Varga@nokia.com.
25268
25269 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
25270
25271         * icall.c: cleanup: use mono_object_domain ().
25272
25273 2002-09-23  Martin Baulig  <martin@gnome.org>
25274
25275         * debug-mono-symfile.c: Improved type support.
25276
25277 2002-09-22  Martin Baulig  <martin@gnome.org>
25278
25279         * debug-mono-symfile.c: Added support for reference types and strings.
25280
25281 2002-09-22  Martin Baulig  <martin@gnome.org>
25282
25283         * debug-mono-symfile.c: Started to work on the type table.
25284
25285 2002-09-21  Martin Baulig  <martin@gnome.org>
25286
25287         * debug-mono-symfile.c: Largely reworked the symbol table format.
25288         The symbol table is now incrementally updated each time a new
25289         method is added.  We're now also using our own magic and version
25290         so that you don't need to recompile all your classes if the
25291         dynamic table changes.
25292         (mono_debug_update_mono_symbol_file): Removed.
25293         (mono_debug_symfile_add_method): New function to add a method.
25294
25295 2002-09-21  Martin Baulig  <martin@gnome.org>
25296
25297         * icall.c
25298         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
25299         New interncall.
25300
25301         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
25302         New interncall to get a method from its metadata token.
25303
25304 2002-09-21  Martin Baulig  <martin@gnome.org>
25305
25306         * debug-mono-symfile.c: Create type table.
25307
25308 2002-09-20  Martin Baulig  <martin@gnome.org>
25309
25310         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
25311
25312 2002-09-20  Martin Baulig  <martin@gnome.org>
25313
25314         * debug-mono-symfile.c: Provide information about params and locals.
25315
25316 2002-09-20  Martin Baulig  <martin@gnome.org>
25317
25318         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
25319         New interncall.
25320
25321         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
25322         interncall to get a method from its metadata token.
25323
25324 2002-09-20  Martin Baulig  <martin@gnome.org>
25325
25326         * debug-mono-symfile.c: Added a few checks for method->header
25327         being non-NULL.  This should never happen, but for the moment
25328         let's use a g_warning() rather than a g_assert().
25329
25330 2002-09-19  Mark Crichton  <crichton@gimp.org>
25331
25332         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
25333         even if support for it isn't present.  Added an #ifdef to fix this.
25334
25335         * socket-io.c: Added checks back for Solaris support.
25336
25337 2002-09-19  Martin Baulig  <martin@gnome.org>
25338
25339         * debug-mono-symfile.c (read_string, write_string): Reflect latest
25340         changes in the symbol file format.
25341
25342 2002-09-18  Martin Baulig  <martin@gnome.org>
25343
25344         * debug-mono-symfile.c: Set version number to 21.
25345
25346 2002-09-18  Dick Porter  <dick@ximian.com>
25347
25348         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
25349         on netbsd.  Fixes bug 30051.
25350
25351 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25352
25353         * reflection.c:
25354         (set_version_from_string): little fix.
25355
25356 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
25357
25358         * monosn.c, Makefile.am: added strong name utility.
25359         * reflection.h, reflection.c: implemented delayed signing,
25360         locale, version and hash id assembly attributes.
25361
25362 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
25363
25364         * loader.c, metadata.c: load param attributes in signatures.
25365
25366 2002-09-16  Martin Baulig  <martin@gnome.org>
25367
25368         * debug-mono-symfile.c: Added string table with all method names.
25369
25370 2002-09-14  Martin Baulig  <martin@gnome.org>
25371
25372         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
25373         fast method lookup.
25374
25375 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
25376
25377         * reflection.c: record the public key token of referenced assemblies.
25378
25379 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
25380
25381         * image.c, image.h: added functions to get the strong name and the
25382         public key of an assembly.
25383         * pedump.c: use them.
25384
25385 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
25386
25387         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
25388
25389 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
25390
25391         * marshal.c (mono_marshal_get_managed_wrapper): Added
25392         MONO_TYPE_BOOLEAN 
25393
25394 2002-09-11  Martin Baulig  <martin@gnome.org>
25395
25396         * gc.c: Call GC_unregister_disappearing_link() on all links when
25397         finalizing them, this is necessary to aviod a crash in boehm's
25398         finalize handler.
25399
25400 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
25401
25402         * gc.c: handle GetTarget for finalized objects spotted and fixed by
25403         nick@chemlab.org.
25404
25405 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
25406
25407         * icall.c: implemented MonoType::Module.
25408         * reflection.c, reflection.h: mono_module_get_object () from
25409         Tomi Pakarinen <tomi.pakarinen@welho.com>.
25410
25411 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
25412
25413         * icall.c: ignore overridden methods in GetMethods ().
25414         Fix for FieldInfo::SetValue().
25415         * object.c: handle float/double in runtime invoke.
25416
25417 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
25418
25419         * object.c: allow a constructor to be called again on an object.
25420
25421 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
25422
25423         * class.h, class.c: move field layout code to it's own function and
25424         export it. Get an interface id earlier. Move fields in MonoClass
25425         so they are more cache friendly and align the bitfields.
25426         * loader.c: temporary handle get_param_names() for a runtime method.
25427         * reflection.c, reflection.h: more code to handle runtime creation of
25428         types.
25429
25430 2002-09-09  Martin Baulig  <martin@gnome.org>
25431
25432         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
25433         signature with the pinvoke field being set for the actual call.
25434
25435 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
25436
25437         * icall.c: removed some unused icalls. Start of map of glib charsets
25438         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
25439
25440 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
25441
25442         * debug-helpers.c: break infinite loop (found and fixed by
25443         Holger Arnold <harnold@gmx.de>).
25444
25445 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
25446
25447         * icall.c: target may be null in create_delegate.
25448
25449 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
25450
25451         * marshal.c: handle a boolean return type.
25452
25453 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
25454
25455         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
25456
25457 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
25458
25459         * gc.c: fix weakreferences.
25460
25461 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
25462
25463         * icall.c: added icall to get default codepage.
25464
25465 2002-09-03  Dick Porter  <dick@ximian.com>
25466
25467         * threads.h: 
25468         * threads.c: Use MonoThread instead of MonoObject where
25469         apropriate.
25470
25471         Store running thread objects in a hash table, so that we have all
25472         the info to hand when waiting for them to finish
25473         (means we don't need OpenThread() any more, so mingw builds should
25474         be fully functional again.)
25475
25476         * verify.c:
25477         * object.h: Added thread ID to MonoThread
25478
25479 2002-09-03  Martin Baulig  <martin@gnome.org>
25480
25481         * icall.c (System.Reflection.Assembly::get_location): New interncall.
25482
25483 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25484
25485         * icall.c: fixed leak in get_temp_path. Thanks lupus.
25486
25487 2002-09-03  Martin Baulig  <martin@gnome.org>
25488
25489         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
25490         argument to store the end address of the disassembled instruction.
25491
25492         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
25493         here from debug-symfile.h.
25494         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
25495         JIT into this struct.
25496         (MonoSymbolFile): Added `char *image_file' field.
25497         (MonoDebugGetMethodFunc): Removed.
25498         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
25499         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
25500         (mono_debug_find_method): New method.
25501
25502         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
25503         create a full symbol file.
25504         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
25505         and static symbol files.
25506         (mono_debug_find_method): The symbol file keeps an internal method hash,
25507         call this to get a MonoDebugMethodInfo from a MonoMethod.
25508
25509         * debug-symfile.[ch]: Removed.
25510
25511 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
25512
25513         * image.c (do_mono_image_open): Remove linker version check.
25514
25515 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
25516
25517         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
25518         wrappers for instance methods.
25519         
25520 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25521
25522         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
25523
25524 2002-08-28  Dick Porter  <dick@ximian.com>
25525
25526         * Makefile.am: Export HOST_CC for w32 builds
25527
25528 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
25529
25530         * file-io.c process.c: MonoString are null terminated, no
25531         need for mono_string_to_utf16() anymore.
25532
25533 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
25534
25535         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
25536
25537 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
25538
25539         * icall.c, reflection.h: speedup System.MonoType.
25540
25541 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
25542
25543         * reflection.c: allow null as the value of a string argument in
25544         custom attributes constructors.
25545
25546 2002-08-27  Martin Baulig  <martin@gnome.org>
25547
25548         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
25549         `trampoline_address' field.
25550
25551 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
25552
25553         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
25554         check (fixes bug #29486) 
25555
25556 2002-08-27  Martin Baulig  <martin@gnome.org>
25557
25558         * debug-mono-symfile.c: Changed the file format in a way that allows us
25559         open it read-only and to use a specially malloced area for all the
25560         dynamic data.  We can now also generate a symbol file on-the-fly if we're
25561         debugging IL code and there is no MCS generated symbol file for it.
25562
25563 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
25564
25565         * object.c: added a define for a good string and array
25566         creation speedup (not enabled by default because we need to deal with
25567         the synch stuff).
25568
25569 2002-08-26  Martin Baulig  <martin@gnome.org>
25570
25571         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
25572         function to create a dynamic symbol file.  This is used by the
25573         debugger to create a symbol file for IL code on-the-fly.
25574
25575 2002-08-26  Martin Baulig  <martin@gnome.org>
25576
25577         * loader.c (mono_lookup_pinvoke_call): Include the error message
25578         from g_module_error() in the error message.
25579
25580 2002-08-24  Martin Baulig  <martin@gnome.org>
25581
25582         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
25583         function to update the symbol file.  The symbol file is mmap()ed
25584         writable, but private.  This allows us to install the symbol file
25585         together with the assembly.
25586
25587 2002-08-24  Martin Baulig  <martin@gnome.org>
25588
25589         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
25590         but they can read the new symbol file format which mcs is now creating.
25591
25592         * debug-symfile.c (mono_debug_find_source_location): Moved to
25593         debug-mono-symfile.c; this is now operating on the new symbol file.
25594
25595 2002-08-23  Martin Baulig  <martin@gnome.org>
25596
25597         * debug-helpers.c (mono_method_desc_from_method): New function to get
25598         a MonoMethodDesc from a MonoMethod.
25599
25600 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
25601
25602         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
25603         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
25604
25605 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
25606
25607         * string-icalls.[ch]: make helper methods static.
25608
25609 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25610
25611         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
25612         types to it and to SetValueInternal.
25613
25614         * object.c: Moved handle_enum label to its proper place. This was the
25615         f... bug! ;-)
25616
25617         This time i compiled mcs and gtk-sharp and they both work.
25618
25619 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25620
25621         * icall.c: reverted partially my previous patch until 
25622         object.c:set_value handles enums correcly.
25623
25624 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25625
25626         * icall.c:
25627         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
25628         (ves_icall_System_Environment_get_MachineName): removed warning when
25629         compiling under cygwin.
25630
25631 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
25632
25633         * object.c: fixed field_get_value() for reference types.
25634
25635 2002-08-22  Dick Porter  <dick@ximian.com>
25636
25637         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
25638         Don't free a buffer while it's still needed.  Patch from Jonathan
25639         Liger <Jonathan.liger@wanadoo.fr>
25640
25641 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
25642
25643         * icall.c (ves_icall_System_Environment_get_Platform): Add new
25644         internal call.
25645
25646 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
25647
25648         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
25649         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
25650
25651         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
25652         we call unmanaged code which throws exceptions.
25653
25654 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
25655
25656         * appdomain.h: added per-domain entry_assembly.
25657         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
25658         arguments.
25659         * icall.c: Assembly::GetEntryAssembly icall.
25660         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
25661         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
25662
25663 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
25664
25665         * appdomain.h, gc.c: added mono_domain_finalize ().
25666
25667 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25668
25669         * object.c:
25670         (mono_print_unhandled_exception): changed g_warning by g_printerr
25671         because g_log has a 1024 characters limit (yeah, i got a big stack
25672         trace). Don't print exception name, that should be in ToString 
25673         returned string.
25674
25675 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25676
25677         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
25678         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
25679
25680 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25681
25682         * object.c:
25683         (mono_print_unhandled_exception): after previous commit, i realized
25684         that MS calls ToString on the exception. I changed this function to
25685         do that. This way we get stack_trace for free.
25686
25687 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25688
25689         * object.c:
25690         (mono_print_unhandled_exception): invoke Message property instead of
25691         getting 'message' field from Exception. Don't allocate memory for
25692         'trace' and 'message' if not needed.
25693
25694 2002-08-18  Dick Porter  <dick@ximian.com>
25695
25696         * unicode.c: Fix asserts to match Encoder.cs checks
25697
25698 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
25699
25700         * marshal.c: fix unaligned store issue and a few wrong
25701         opcode argument types.
25702
25703 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25704
25705         * icall.c: added GetUninitializedObjectInternal internal call.
25706
25707 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
25708
25709         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
25710         to the right domain.
25711
25712 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
25713
25714         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
25715
25716         * class.c (class_compute_field_layout): set blittable to false for Strings
25717
25718         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
25719
25720 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
25721
25722         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
25723         first chunk of code to create types at runtime. Code to
25724         handle ReflectedType/DeclaringType. Make reflection handles
25725         domain specific.
25726
25727 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
25728
25729         * class.c: set correct name in arrays.
25730
25731 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
25732
25733         * appdomain.c (mono_domain_transfer_object): make it work with
25734         valuetypes. bug fixes.
25735
25736 2002-08-12  Dick Porter  <dick@ximian.com>
25737
25738         * object.h: Rename some parameters to avoid c++ keywords (Patch
25739         from Joseph Wenninger <kde@jowenn.at>)
25740
25741 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
25742
25743         * icall.c: added icall to implement Assembly.GetFile*.
25744
25745 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
25746
25747         * reflection.h, reflection.c: code to embed managed resources.
25748
25749 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
25750
25751         * class.c: move all the type size stuff into
25752         class_compute_field_layout().
25753
25754 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
25755
25756         * class.c: ensure enums have always the correct instance size.
25757         * unicode.c: remove wrong assert.
25758
25759 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
25760
25761         * assembly.c: fix mem corruption issue.
25762         * image.h, image.c: added mono_image_get_resource () to access
25763         managed resources.
25764         * icall.c: implemented Assembly.EntryPoint property and some
25765         Managed Resources related internalcalls.
25766
25767
25768 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
25769
25770         * image.c, image.h: impemented mono_image_get_entry_point ().
25771         * appdomain.c: use mono_image_get_entry_point.
25772
25773 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
25774
25775         * reflection.c: support the object type argument when loading
25776         custom attributes.
25777
25778 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
25779
25780         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
25781         String as return type.
25782
25783 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
25784
25785         * reflection.c: fix encoding of named args for custom attrs to match
25786         the ms implementation. Read them back when instantiating custom
25787         attributes.
25788
25789 2002-08-02  Radek Doulik  <rodo@ximian.com>
25790
25791         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
25792         by Dietmar as quick fix
25793         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
25794         16 as stack size, used on more places as quick fix before Dietmar
25795         will fix it properly
25796
25797 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
25798
25799         * object.h, object.c: added accessors for fields and properties.
25800
25801 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
25802
25803         * class.c, class.h: made mono_class_get_field_from_name ()
25804         loop on parent types.
25805         Added mono_class_get_property_from_name ().
25806
25807 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
25808
25809         * class.c, class.h: move the code to setup the type vtable in its own
25810         function so that it can be reused also for types created at runtime.
25811         Eliminate the "class" identifier from the header file.
25812         * reflection.c: setup the vtable for enums so that we can create
25813         objects for use in SetConstant ().
25814
25815 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
25816
25817         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
25818         instead of the delegate itself as this pointer (bug #28383)
25819
25820 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
25821
25822         * marshal.c (mono_marshal_get_managed_wrapper): added return type
25823         conversions.
25824
25825 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
25826
25827         * loader.c: don't set the pinvoke bit on icalls.
25828
25829 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
25830
25831         * debug-helpers.c (mono_method_full_name): only print a number to
25832         indicate wrapper type (so that the output is more readable in traces).
25833
25834 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
25835
25836         * class.c (mono_class_init): include method override patch from Paolo
25837
25838 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
25839
25840         * icall.c: fixed GetTypeCode().
25841
25842 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
25843
25844         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
25845         use real delegate invoke function to make it work with multicast
25846         delegates (fix bug# 28291).
25847
25848 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
25849
25850         * object.c: load constant strings.
25851
25852 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
25853
25854         * reflection.c: no magic numbers.
25855         * tabledefs.h: security action enum.
25856
25857 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
25858
25859         * assembly.c: fix possible memory corruption.
25860
25861 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
25862
25863         * reflection.h, reflection.c: added support for linking resources.
25864         * verify.c: check we have an updated corlib.
25865
25866 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
25867
25868         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
25869         string arrays.
25870         (mono_marshal_string_array): null terminate unmanaged string arrays.
25871         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
25872
25873 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
25874
25875         * icall.c: Type.GetType () can now return also types from the
25876         calling assembly.
25877
25878 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
25879
25880         * loader.h, loader.c: stack walking support.
25881         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
25882         GetCallingAssembly.
25883
25884 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
25885
25886         * marshal.c: added optimisations for blittable types 
25887
25888         * class.c (mono_array_class_get): do not set blittable attribute on arrays
25889         (mono_class_setup_mono_type): set blittable attribute for single
25890         and double.
25891
25892         * marshal.c (mono_string_utf8_to_builder): impl.
25893         (mono_string_builder_to_utf8): impl.
25894         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
25895
25896 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
25897
25898         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
25899         (mono_marshal_get_managed_wrapper): impl. byref types
25900
25901 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25902
25903         * icall.c:
25904         (search_method): don't display debug message. 
25905
25906 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
25907
25908         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
25909
25910 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
25911
25912         * appdomain.c: set the missing filename when throwing exception.
25913
25914 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
25915
25916         * metadata.c (mono_type_size): code cleanup
25917         (mono_type_stack_size): removed some test code
25918
25919 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
25920
25921         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
25922         mono_get_exception_file_not_found now.
25923
25924         * exception.c (mono_exception_from_name_two_strings): New version
25925         that will call a constructor with two string arguments. 
25926         (mono_get_exception_file_not_found): New helper routine, used to
25927         report file-not-found errors.
25928
25929 2002-07-20  Dick Porter  <dick@ximian.com>
25930
25931         * process.h:
25932         * process.c: Pass file handles to CreateProcess
25933         
25934         * icall.c:
25935         * file-io.h:
25936         * file-io.c: Implemented CreatePipe
25937
25938 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
25939
25940         * metadata.c (mono_get_param_info): set alignment for value types
25941
25942 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
25943
25944         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
25945         Constify mono_domain_assembly_open().
25946         * loader.c: handle null namespace in icalls.
25947
25948 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
25949
25950         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
25951         (emit_str_to_ptr_conv): marshal object as structs
25952
25953         * metadata.c (mono_type_to_unmanaged): marshal object as structs
25954
25955         * marshal.c (mono_marshal_get_runtime_invoke): support value types
25956
25957 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
25958
25959         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
25960         (mono_marshal_get_native_wrapper): we an now return value types
25961
25962 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
25963
25964         * verify.c: more checks implemented.
25965
25966 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
25967
25968         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
25969         (fix bug #27695)
25970         (mono_marshal_get_native_wrapper): allow byref arguments
25971         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
25972         impl. PtrToStringXXX methods
25973         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
25974         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
25975         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
25976         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
25977         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
25978
25979 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
25980
25981         * reflection.c: fix buglet in parsing an assembly name.
25982
25983 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
25984
25985         * marshal.c (emit_ptr_to_str_conv): first impl.
25986
25987 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
25988
25989         * object.c, class.h: cache the vtable in the class as suggested by
25990         vargaz@freemail.hu (Zoltan Varga).
25991
25992 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
25993
25994         * class.h, loader.c: added mono_field_from_token().
25995         * verify.c: first cut of type checking code.
25996
25997 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
25998
25999         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
26000
26001 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
26002
26003         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
26004         (fix bug #27782)
26005         (mono_marshal_get_remoting_invoke): impl.
26006         (mono_delegate_begin_invoke): impl.
26007         (mono_mb_emit_save_args): impl.
26008         (mono_delegate_end_invoke): impl.
26009         (mono_marshal_get_delegate_begin_invoke):
26010         (mono_marshal_get_delegate_end_invoke):
26011         (mono_marshal_get_delegate_invoke): generate a special name for
26012         those methods (including the signature) and associate them whith
26013         the delegate class. 
26014
26015 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
26016
26017         * reflection.[ch]: 
26018         (mono_reflection_type_from_name): now it has a MonoImage parameter
26019         which is used as the default image to search the type in. If the image
26020         is NULL or getting the type from it fails, it defaults to corlib.
26021
26022         * icall.c: changed 1 call to mono_reflection_type_from_name to match
26023         new parameter.
26024
26025 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
26026
26027         * reflection.c: update the parameter table index.
26028
26029 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
26030
26031         * domain.c: don't include the mark byte in the string hash.
26032
26033 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
26034
26035         * icall.cs: icall for Type.GetTypeCode ().
26036         * verify: a couple of fixes and disabled local initialization checks.
26037
26038 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
26039
26040         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
26041
26042         * debug-helpers.c (mono_method_full_name): print the type of the
26043         runtime wrapper
26044
26045         * metadata.c (mono_signature_hash): a hash function for signatures
26046         (mono_signature_hash): better hash algorithm
26047
26048         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
26049
26050         * debug-helpers.c (mono_method_full_name): this can now generate
26051         method names with signatures
26052
26053         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
26054         method dont have this pointers.
26055
26056 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
26057
26058         * reflection.c: fixup typebuilder tokens.
26059         * image.c: fix buglet.
26060         * marshal.h: remove whitespace.
26061         * metadata.h, metadata.c: reinstate code that was removed.
26062         * verify.c: handle catch directives and fix another couple of bugs.
26063
26064 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
26065
26066         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
26067         (mono_marshal_get_native_wrapper): make it comp. with the old code
26068         (mono_marshal_get_native_wrapper): support boolean
26069         (mono_marshal_get_managed_wrapper): support more types
26070
26071 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
26072
26073         * class.c (class_compute_field_layout): compute class->blittable attribute.
26074
26075 2002-07-09  Dick Porter  <dick@ximian.com>
26076
26077         * threads.c: Make the thread cleaning up cope with threads that
26078         call ExitThread()
26079
26080 2002-07-08  Radek Doulik  <rodo@ximian.com>
26081
26082         * reflection.c (method_encode_code): use non-translated values to
26083         compute finally_start, this fixes exception handling on ppc, yay!
26084
26085         * decimal.h (struct signscale): fix endianess
26086
26087 2002-07-07  Radek Doulik  <rodo@ximian.com>
26088
26089         * reflection.c: swap box_val and not val
26090
26091 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
26092
26093         * reflection.c, reflection.h: handle full assembly info in type name.
26094         Handle Type arguments when loading custom attributes.
26095         * icall.c: updated to use new mono_reflection_type_from_name () method.
26096
26097 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26098
26099         * loader.c:
26100         (method_from_memberref): also print assembly name when method not found.
26101
26102 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26103
26104         * icall.c:
26105         (ves_icall_TypeGetProperties): fixed bug #27473. 
26106
26107 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26108
26109         * reflection.c: display image name and token when cannot find the
26110         .ctor for an attribute.
26111
26112 2002-07-05  Martin Baulig  <martin@gnome.org>
26113
26114         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
26115
26116 2002-07-04  Dick Porter  <dick@ximian.com>
26117
26118         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
26119         compile on mingw.  This will cause mingw builds to not wait for
26120         subthreads to terminate after the main thread does.  I've lodged a
26121         bug with the mingw developers for them to wrap OpenThread().
26122
26123 2002-07-03  Dick Porter  <dick@ximian.com>
26124
26125         * threads.c: Store thread IDs instead of handles, because
26126         GetCurrentThread() returns a pseudohandle and therefore stores
26127         useless values.  mono_thread_cleanup() continues checking the
26128         array of threads until it is empty, to cope with subthreads
26129         spawning new threads after the main thread has finished.
26130
26131         * profiler.h:
26132         * profiler.c:
26133         * profiler-private.h: Pass the thread ID to thread profiler
26134         functions, instead of a handle
26135
26136 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
26137
26138         * verify.c: fixes to make it more usable.
26139         * pedump.c: added --verify code to verify IL code in an assembly.
26140
26141 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
26142
26143         * reflection.c: turn errors into warnings to allow compiling corlib.
26144
26145 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
26146
26147         * reflection.c: add special cases to compile corlib.
26148
26149 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
26150
26151         * reflection.c: handle properties with only a set method.
26152
26153 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
26154
26155         * opcodes.h: add enum with opcodes in opval order.
26156
26157 2002-07-01  Dick Porter  <dick@ximian.com>
26158         
26159         * object.h:
26160         * object.c (mono_runtime_run_main): Removed unneeded argument
26161
26162 2002-06-28  Martin Baulig  <martin@gnome.org>
26163
26164         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
26165
26166 2002-06-27  Dick Porter  <dick@ximian.com>
26167
26168         * threads.c: Store the handle in both the parent thread and in the
26169         subthread, to minimise the time between starting a new thread and
26170         storing its ID.
26171
26172 2002-06-26  Dick Porter  <dick@ximian.com>
26173
26174         * appdomain.c (mono_runtime_cleanup): Close the socket library
26175         after all the threads have finished, not before
26176
26177 2002-06-26  Martin Baulig  <martin@gnome.org>
26178
26179         * debug-symfile.c (mono_debug_find_source_location): Added
26180         `guint32 *line_number' argument.  If it's not NULL, store the line number
26181         there and return the file name without the line number.
26182
26183 2002-06-25  Dick Porter  <dick@ximian.com>
26184
26185         * icall.c:
26186         * process.h:
26187         * process.c: Process forking and other support functions
26188
26189 2002-06-25  Dick Porter  <dick@ximian.com>
26190
26191         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
26192         things dont happen when the image is closed.
26193         (mono_image_lookup_resource): Walk the resource section looking
26194         for a particular entry
26195
26196         * cil-coff.h: PE resource section decoding
26197
26198 2002-06-25  Dick Porter  <dick@ximian.com>
26199         
26200         * assembly.h:
26201         * assembly.c: 
26202         (mono_assembly_foreach): Accessor functions to walk the list of
26203         loaded assemblies
26204         (mono_assembly_set_main):
26205         (mono_assembly_get_main): Process methods need to know which
26206         assembly is the "main" one
26207
26208         * object.c (mono_runtime_run_main): Record the main assembly
26209
26210         * debug-helpers.c: Fix typo
26211
26212 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
26213
26214         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
26215         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
26216
26217 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
26218
26219         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
26220
26221 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
26222
26223         * image.c (do_mono_image_open): Initialize reference count,
26224         otherwise we leak the MonoImage.
26225
26226 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
26227
26228         * reflection.c: small tweak to handle self-hosting.
26229
26230 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
26231
26232         * reflection.c: fix type name parse code.
26233
26234 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
26235
26236         * reflection.c: break out of the loop.
26237         * image.c: special case corlib.
26238
26239 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
26240
26241         * reflection.c: add all the custom attrs at the end to ensure the
26242         ctors have been properly initialized when the attributes are defined
26243         in the current assembly.
26244
26245 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
26246
26247         * reflection.c: handle correctly multiple-nested types.
26248
26249 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
26250
26251         * row-indexes.h: fix typos.
26252         * reflection.c: adjust for typos and fix method_def_or_ref
26253         encoding in MethodImpl table.
26254
26255 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
26256
26257         * reflection.c: fix entry point patching (thanks Serge!).
26258
26259 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
26260
26261         * verify.c: add check for System.Exception
26262
26263 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
26264
26265         * image.c, class.c: minifix for code just c&p'ed.
26266         * reflection.c: warning fix.
26267         * object.h, loader.h, domain.c: load also StringBuilder.
26268
26269 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
26270
26271         * marshal.h, marshal.c: some support code to handle complex marshaling.
26272
26273 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
26274
26275         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
26276         Better signatures with vtable error dump.
26277
26278 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
26279
26280         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
26281
26282 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
26283
26284         * icall.c (ves_icall_Type_GetField): impl.
26285
26286 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
26287
26288         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
26289         to retrieve a marshal description blob for a field or param.
26290
26291 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
26292
26293         * reflection.h, reflection.c: change order of nested type emission
26294         to avoid table corruption. The NestedTypes table is sorted.
26295         * icall.c: change order of GetConstructor results to workaround mcs bug.
26296
26297 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
26298
26299         * reflection.h, reflection.c: handle field and param marshal
26300         information.
26301
26302 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
26303
26304         * icall.c, marshal.c marshal.h: more Marshal class implementation.
26305
26306 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
26307
26308         * reflection.c: fix call convention.
26309
26310 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
26311
26312         * reflection.h, reflection.c: mono_image_get_memberref_token()
26313         takes a type instead of a class, now. Added
26314         mono_image_get_array_token() to create tokens for the special
26315         multi-dim array methods.
26316
26317 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
26318
26319         * assembly.c: handle modules (no assembly table). Split
26320         loading references in its own function.
26321         * class.c: handle moduleref resolution scope.
26322         * image.c, image.h: cache module name in image.
26323
26324 2002-06-07  Martin Baulig  <martin@gnome.org>
26325
26326         * reflection.c (mono_image_get_type_info): Only add a class layout entry
26327         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
26328
26329 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
26330
26331         * icall.c: more signature fixes that used uint instead of int.
26332
26333 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
26334
26335         * reflection.c: fixed signature of field refs.
26336
26337 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
26338
26339         * class.c, reflection.c: handle typerefs of nested types
26340         (both on read and when writing files).
26341
26342 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
26343
26344         * icall.c: fix method signatures that tried to workaround the previous
26345         typo, d'oh!
26346
26347 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
26348
26349         * debug-helpers.c: fix typo.
26350
26351 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
26352
26353         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
26354         rewrote the PE/COFF writing code (our programs are understood by the
26355         ms runtime, now).
26356
26357 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
26358
26359         * gc.c, gc.h, icall.c: weakreference support.
26360
26361 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
26362
26363         * Makefile.am, mono-config.c: use $(sysconfdir).
26364
26365 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
26366
26367         * icall.c: changed default precision of Double.ToString() to 15.
26368         Fixed memory leak. Unified with Single.ToString.
26369
26370 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
26371
26372         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
26373
26374 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
26375
26376         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
26377         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
26378         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
26379         and myself.
26380
26381 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
26382
26383         * debug-symfile.c, sysmath.c: yet more compilation fixes.
26384
26385 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
26386
26387         * reflection.c, socket-io.c: more compilation fixes.
26388
26389 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
26390
26391         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
26392         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
26393         unicode.c: warning and compiler compatibility fixes.
26394
26395 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
26396
26397         * class.h, metadata.c: fixed warnings/compilation errors.
26398
26399 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
26400
26401         * Makefile.am, mono-config.c, mono-config.h: configuration file
26402         support routines.
26403         * loader.c, loader.h: make Dll mapping configurable at runtime in the
26404         config file. Export methods to insert and lookup mappings.
26405
26406 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
26407
26408         * reflection.c: handle types and boxed objects in custom attr
26409         constructors.
26410
26411 2002-05-30  Martin Baulig  <martin@gnome.org>
26412
26413         * debug-symfile.c
26414         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
26415
26416 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
26417
26418         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
26419         to lookup the implmap row for a P/Invoke method.
26420         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
26421         P/Invoke method from the runtime on an as needed basis.
26422
26423 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
26424
26425         * metadata.c (mono_metadata_parse_signature): impl.
26426
26427 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
26428
26429         * class.c: handle .pack directive.
26430
26431 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
26432
26433         * object.c: initialize static fields with RVA data.
26434
26435 2002-05-25  Martin Baulig  <martin@gnome.org>
26436
26437         * debug-symfile.c
26438         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
26439
26440 2002-05-24  Martin Baulig  <martin@gnome.org>
26441
26442         * debug-symfile.c
26443         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
26444         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
26445         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
26446
26447 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
26448
26449         * object.c: special case string ctros in invoke.
26450         * gc.c: silly whitespace changes.
26451
26452 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
26453
26454         * threadpool.[ch]: impl. a threadpool that can
26455         be used by mint and mono.
26456
26457 2002-05-22  Martin Baulig  <martin@gnome.org>
26458
26459         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
26460         The first argument is now a `MonoReflectionModuleBuilder *', the return
26461         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
26462         `methods' field to get the method builder.  The `token' argument is the
26463         unfixed token.
26464
26465         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
26466         invalid characters instead of g_assert_not_reached()ing.  This seems
26467         to be the behaviour of mscorlib.
26468
26469 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
26470
26471         * object.c (mono_runtime_invoke_array): applied patch from Rachel
26472         Hestilow to fix bug #25104
26473
26474 2002-05-21  Martin Baulig  <martin@gnome.org>
26475
26476         * debug-symfile.c (mono_debug_find_source_location): New function.
26477         Looks up an IL offset in the line number table and returns the source
26478         location as a string.
26479
26480 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26481
26482         * icall.c:
26483         (mono_double_ToStringImpl): changed %f by %g until we have something
26484         better.
26485
26486 2002-05-21  Nick Drochak  <ndrochak@gol.com>
26487
26488         * icall.c : Use different name for Math.Pow's icall.  Needed to check
26489         parameters first in C#.
26490
26491 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
26492
26493         * icall.c, reflection.h: added icall to get info about an event.
26494
26495 2002-05-20  Radek Doulik  <rodo@ximian.com>
26496
26497         * object.c (mono_value_box): don't use memcpy for boxing on BIG
26498         endian
26499         (mono_value_box): don't use memcpy for small sizes on
26500         architectures with unaligned access
26501
26502 2002-05-20  Martin Baulig  <martin@gnome.org>
26503
26504         * reflection.c (mono_reflection_setup_internal_class): Don't crash
26505         if `tb->parent == NULL'.
26506         (mono_reflection_create_internal_class): New function.  This is
26507         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
26508         for enum types.
26509
26510         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
26511         New interncall.
26512
26513 2002-05-19  Martin Baulig  <martin@gnome.org>
26514
26515         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
26516         argument to get the length, don't default to the array length.
26517
26518 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
26519
26520         * assembly.c (mono_assembly_setrootdir): New function used to
26521         override the MONO_ASSEMBLIES directory.
26522
26523 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
26524
26525         * icall.c: ValueType_GetHashCode() initialize local var.
26526
26527 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
26528
26529         * reflection.c: sort custom attributes table.
26530
26531 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
26532
26533         * reflection.c: support named args in custom attributes (write support).
26534
26535 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
26536
26537         * reflection.c: fix finally position calculation.
26538
26539 2002-05-15  Radek Doulik  <rodo@ximian.com>
26540
26541         * reflection.c: fixed endianess at many places
26542
26543         * icall.c (ves_icall_InitializeArray): comment out debug msg
26544
26545 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
26546
26547         * object.c (mono_unhandled_exception): new function to handle
26548         unhandled exceptions.
26549         (mono_unhandled_exception): call the UnhandledException event.
26550         (mono_runtime_delegate_invoke): impl.
26551
26552 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
26553
26554         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
26555         returns the RVA, not the direct pointer to the data. Handle the case
26556         when the class size is fixed.
26557
26558 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
26559
26560         * reflection.c: fix some endianess issues.
26561
26562 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
26563
26564         * object.c (mono_runtime_invoke): is now able to catch exceptions.
26565
26566         * threads.c (mono_thread_init): added a callback which is invoked
26567         at thread start.
26568
26569 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
26570         
26571         * icall.c: make GetHashCode return non-negative values.
26572
26573 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
26574
26575         * object.c, icall.c, gc.c: revert to address-based hashcode.
26576
26577 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
26578
26579         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
26580
26581 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
26582
26583         * icall.c, class.c: special case <Module>.
26584
26585 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
26586
26587         * icall.c: fix bug in GetNow().
26588
26589 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
26590
26591         * object.c (mono_runtime_class_init): make sure that we call all
26592         static class constructors.
26593
26594 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
26595
26596         * reflection.c: sort methodsemantics table.
26597
26598 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
26599
26600         * reflection.h, reflection.c: honour init locals setting.
26601
26602 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
26603
26604         * icall.c: copied Double ToStringImpl for Single ToStringImpl
26605
26606 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
26607
26608         * reflection.c: support ContructorBuilders in attribute blob creation.
26609
26610 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
26611
26612         * reflection.c: some changes to build a binary that can be run
26613         directly in windows.
26614
26615 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
26616
26617         * loader.c: print a big message when an icall can't be found.
26618
26619 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26620
26621         * string-icalls.c: fix bug 24248.
26622
26623 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
26624
26625         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
26626         icall.c, reflection.h: separate assembly loading by pathname and by
26627         assembly name. Use the MONO_PATH env var to search for assemblies.
26628
26629 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
26630
26631         * assembly.c, image.h: add some support for assemblies
26632         with multiple modules.
26633         * class.c, class.h: export mono_class_from_typeref().
26634         * loader.c: remove duplicated code and use mono_class_from_typeref(),
26635         instead.
26636
26637 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
26638
26639         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
26640         documentation says (the ECMA one is correct).
26641
26642 2002-05-02  Dick Porter  <dick@ximian.com>
26643
26644         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
26645         Don't name the synchronisation mutex.
26646
26647 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
26648
26649         * rand.c
26650         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
26651         Make the prototypes match.
26652         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
26653         Same.
26654
26655         * icall.c
26656         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
26657         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
26658         all systems have tm.tm_zone, so use strftime() with %Z to print
26659         the timezone abreviation into a temp string.
26660
26661         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
26662         rather than mono_array_addr() on a MonoString on Big Endian
26663         machines.
26664
26665 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
26666
26667         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
26668         fix bug 24041
26669
26670 2002-04-30  Dick Porter  <dick@ximian.com>
26671
26672         * socket-io.c: Cope with SOCKET being an integer rather than a
26673         pointer now.
26674
26675         * threads.c: Added Thread_free_internal, to deal with thread
26676         handle cleanup.  Moved calls to handle_store() and handle_remove()
26677         to start_wrapper(), so each can only be called once.  Allocate
26678         synchronisation blocks with GC_malloc(), and use GC finalisation
26679         to close the handles.
26680
26681         * icall.c: added System.Threading.Thread::Thread_free_internal
26682
26683 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
26684
26685         * icall.c: support Environment.Exit, CommandLineArgs().
26686
26687 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
26688
26689         * object.c, object.h: added mono_runtime_run_main () and
26690         mono_runtime_get_main_args () for use in System.Environment.
26691
26692 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
26693
26694         * gc.c: fix thinko, enable actual finalization since the jit is now
26695         fixed.
26696
26697 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
26698
26699         * gc.c, object.c: take into account that an object may be offset wrt the address
26700         returned by GC_malloc().
26701
26702 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
26703
26704         * image.c: handle files without entries in the assembly table (modules).
26705
26706 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
26707
26708         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
26709         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
26710         allowed to be null when it's System.Object class setup.
26711
26712 2002-04-27  Martin Baulig  <martin@gnome.org>
26713
26714         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
26715         if `tb->parent == NULL' rather than crashing.
26716
26717 2002-04-28  Nick Drochak  <ndrochak@gol.com>
26718
26719         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
26720         calling acos() where asin() should have been called.
26721
26722 2002-04-26  Martin Baulig  <martin@gnome.org>
26723
26724         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
26725         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
26726         there's a subdirectory called `System', but we don't want to read that
26727         subdirectory as an assembly.
26728
26729 2002-04-25  Martin Baulig  <martin@gnome.org>
26730
26731         * debug-symfile.c: Reflect latest MonoString changes.
26732
26733 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
26734
26735         * rand.c, rand.h: instance method icalls need to have an explicit
26736         this pointer as first argument in the C implementation.
26737
26738 2002-04-25  Nick Drochak <ndrochak@gol.com>
26739
26740         * icall.c: Fix typo in map for GetNonZeroBytes
26741
26742 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
26743
26744         * string-icalls.c : String does now passes unit tests without any 
26745         errors, the following changes has been made:
26746         
26747         Implemented replace methods.
26748         Renaming of methods to (try) follow the standard.
26749         Fixed compare ordinal
26750         Made all memory allocated directly to function instead of via icall function.
26751         Small performance fix in is_in_array function
26752                         
26753  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
26754
26755         c (mono_string_Internal_ctor_charp_int_int):
26756         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
26757         sindex < 0, throw ArgumentOutOfRangeException instead of
26758         ArgumentNullException.
26759
26760         Added new check for length == 0, however
26761         I need to make it return String.Empty from the C code.
26762         
26763         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
26764         that calculate the length for us here.
26765         
26766         (mono_string_Internal_ctor_sbytep_int_int): Replaced
26767         mono_string_new_utf16 with mono_string_new, since value is utf8.
26768
26769 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
26770
26771         * object.c: register the object for finalization if needed.
26772         Allocate one more char in the string for the terminating 0 char.
26773
26774 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
26775
26776         * class.c, class.h, image.c: check if a type implemenst a destructor.
26777         Use the proper key for array class lookups.
26778         * icall.c: register the icalls in the System.GC class.
26779         * gc.c, gc.h: GC-related functions and icalls.
26780
26781 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26782
26783         * icall.c:
26784         * socket-io.c:
26785         * unicode.c: free some strings gotten from mono_string_to_utf8 and
26786         changed a couple of free () by g_free ().
26787
26788         * decimal.c: one-liner in the comments for decimal2string ().
26789
26790 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
26791
26792         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
26793
26794 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
26795
26796         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
26797         * object.c (mono_runtime_invoke_array) : handle null in params
26798
26799 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
26800
26801         * string-icalls.c: fixed bug in split (one off bug)
26802
26803 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
26804
26805         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
26806         * icalls.c: added String::Equals as internal method
26807
26808 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
26809
26810         * threads.c: fixed bug in the double interlocked functions
26811
26812 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
26813
26814         * threads.c: implemented all of the new interlocked icalls.
26815         * string-icalls.c: fix a bug in insert.
26816         * icalls.c: added the icalls for interlocked, removed old string functions.
26817         
26818 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
26819
26820         * loader.c: fix off-by-one error when reading argument names.
26821
26822 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
26823
26824         * profiler.c: win32 counter implementation (untested).
26825         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
26826         (the latter needs testing and more complete impl. from win32 folks).
26827
26828 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
26829
26830         * object.c: mono_array_new_full workaround mono_array_class_get
26831         problem.
26832
26833 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
26834
26835         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
26836         * object.h (mono_string_chars): Changed casting type.
26837
26838 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
26839
26840         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
26841                            method signatures to use gunichar2 instead of gint16.
26842
26843 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
26844
26845         * object.h, object.c: domain-specific versions of mono_object_new and
26846         mono_array_new.
26847
26848 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
26849
26850         * object.c: changed String layout
26851
26852         * string-icalls.c (mono_string_Internal_ctor_chara): added
26853         internal string constructors.
26854
26855 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
26856
26857         * threads.c: pass 'this' to the thread start routine.
26858
26859 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26860
26861         * string-icalls.c: fix IndexOf and LastIndexOf. Now
26862         InternalCompareStr don't call twice mono_string_cmp_char for the last
26863         character. Improved performance in mono_string_cmp_char.
26864
26865 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
26866
26867         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
26868         code into its own library: libmonoruntime.
26869
26870 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
26871
26872         * object.h, object.c: changed array format so that szarrays do not
26873         require a bounds structure.
26874         * icall.c, appdomain.c: support for new szarray format.
26875
26876 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
26877
26878         * metadata.c: compare also the retuns type when comparing signatures:
26879         we didn't do this as an optimization since really overloaded methods
26880         must differ also in the arguments, but this doesn't work with
26881         low-level IL code (or when using explicit conversion operators: see
26882         bug#23498 for an example).
26883
26884 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
26885
26886         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
26887
26888 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
26889
26890         * icall.c: make MonoType::GetElementType its own icall.
26891
26892 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
26893
26894         * icall.c: remove MonoMethod_get_Name().
26895         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
26896         object.
26897
26898 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
26899
26900         * string-icalls.c: optimized a few methods.
26901
26902 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
26903
26904         * icall.c: added all new string internal calls
26905         * string-icalls.c: added, new string internal call implementation.
26906         * object.c: added mono_string_new_size for allocating a string a size
26907
26908 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
26909
26910         * object.c (mono_object_isinst): use the same code as in the
26911         optimized x86 version.
26912
26913 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
26914
26915         * profiler.c: TSC-based timer code (faster and more accurate).
26916         Not hooked up in configure, yet (set USE_X86TSC to 1).
26917
26918 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
26919
26920         * profiler.c, profiler.h: track time spent compiling methods.
26921         * threads.c: track thread creation/destruction.
26922
26923 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
26924
26925         * profiler.c, profiler.h, profiler-private.h: profiling interface
26926         and sample implementation. Moved here so that it can be used also by
26927         the jit.
26928
26929 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
26930
26931         * reflection.c, reflection.h: keep types and other handles separate in
26932         the hash tables for referred tokens. Add guid for modules.
26933
26934 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
26935
26936         * assembly.c: fix bugs found with valgrind.
26937         * metadata.h, metadata.c: added mono_metadata_guid_heap().
26938
26939 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
26940
26941         * threads: added icall support for getting current domain for
26942                    the thread.
26943  
26944 2002-04-13  Martin Baulig  <martin@gnome.org>
26945
26946         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
26947         (MonoDebugVarInfo): Added `index' field for register based addresses.
26948         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
26949         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
26950         `MonoDebugVarInfo *params' and `guint32 this_offset' with
26951         `MonoDebugVarInfo *this_var'.
26952
26953         * debug-symfile.c (relocate_variable): New static function to write
26954         a location description for a local variable or method parameter.
26955
26956 2002-04-12  Martin Baulig  <martin@gnome.org>
26957
26958         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
26959         stack offset and begin/end scope address of a local variable.
26960         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
26961         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
26962         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
26963
26964         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
26965         Added new relocation types for start/end scope of a local variable.
26966
26967 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
26968
26969         * object.h: add mono_object_domain() macro.
26970         * reflection.c: handle typespecs.
26971         * icall.c: MonoMethod::get_Name() implementation.
26972
26973 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
26974
26975         * icall.c: String::GetHashCode() icall implementation.
26976
26977 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
26978
26979         * icall.c: String::IndexOfAny icall.
26980         * object.c, object.h: make array->max_length more useful.
26981         Intrduced mono_object_class() and mono_string_length() macros.
26982
26983 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26984
26985         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
26986         instead of g_unichar_isdigit.
26987
26988 2002-04-11  Nick Drochak  <ndrochak@gol.com>
26989
26990         * icall.c: Implement a simple Double.ToString().
26991
26992 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
26993
26994         * appdomain.h: only io-layer.h is supposed to be included.
26995         * icall.c: explicitly import environ. Fix warning.
26996
26997 2002-04-10  Nick Drochak  <ndrochak@gol.com>
26998
26999         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
27000                 return true even if it's not Daylight Savings time.
27001                 Only return false for the case where the function isn't
27002                 implemented for a plaform (read Windows).
27003
27004 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
27005
27006         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
27007         data with a mutex.
27008
27009 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
27010
27011         * mempool.c (mono_mempool_alloc): only use g_malloc when
27012         absolutely necessary.
27013
27014 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
27015
27016         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
27017
27018         * class.c (mono_class_vtable): use domain mempool to allocate vtable
27019         (mono_class_proxy_vtable): use domain mempool
27020
27021 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
27022
27023         * appdomain.h, appdomain.c: split initialization that requires the
27024         execution engine support into mono_runtime_init().
27025
27026 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
27027
27028         * class.c (mono_class_init): don't include vtable inside MonoClass
27029         to save some memory, gather some statistics.
27030         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
27031
27032 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
27033
27034         * icall.c: internalcall implementation for ValueType.Equals().
27035
27036 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
27037
27038         * object.c (mono_message_init): moved 
27039         (mono_runtime_exec_main): new arch. independent impl.
27040         (mono_runtime_invoke_array): new method - like
27041         mono_runtime_invoke, but you can pass an array of objects.
27042         (mono_remoting_invoke): new arch. independent impl.
27043         (mono_message_invoke): new arch. independent impl.
27044         (mono_runtime_class_init): new arch. independent impl.
27045         (mono_runtime_object_init): new arch. independent impl.
27046
27047 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
27048
27049         * metadata.c, object.c, reflection.c: documented the exported
27050         functions.
27051
27052 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
27053
27054         * icall.c: simpler code to pass the assembly builder data to corlib.
27055         Implement GetNestedTypes() internalcall.
27056
27057 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
27058
27059         * class.c: warn if a type can't be loaded.
27060
27061 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
27062
27063         * image.h: typedef MonoImageOpenStatus
27064         * types.h: removed unused file
27065         
27066 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
27067
27068         * icall.c: Enum_ToObject accepts enum value arguments.
27069
27070 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
27071
27072         * class.c: move initialization of properties, events and nested
27073         classes, so that they happen for interfaces, too.
27074
27075 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
27076
27077         * icall.c: cleanup some ugly casts in Array_SetValue*.
27078
27079 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
27080
27081         * icall.c: the values array fro enums is of the correct type, now.
27082         Implement (correctly) getFullName instead of assQualifiedName for
27083         MonoType.
27084         * reflection.h, reflection.c: added mono_type_get_name ().
27085
27086 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
27087
27088         * assembly.c, image.h: for each MonoImage, record from wich assembly
27089         it was loaded.
27090         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
27091         Make Type.Assembly work.
27092
27093 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
27094
27095         * debug-symfile.h: use char* instead of gpointer to avoid
27096         unnecessary casts.
27097
27098         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
27099
27100         * icall.c (ves_icall_InternalExecute): impl. FielSetter
27101         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
27102
27103 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
27104
27105         * icall.c (mono_message_init): impl. (code cleanup)
27106         (ves_icall_InternalExecute): impl. FieldGetter
27107
27108         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
27109         defined we call all (non-static)methods through the vtable. 
27110
27111 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
27112
27113         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
27114         finalizer even though the memory is still referenced (and the chunk of
27115         memory is not freed).
27116
27117 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
27118
27119         * assembly.c: fix brokeness.
27120
27121 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
27122
27123         * class.c: kill some warnings. Check explicit interface method
27124         implementation also without considering the namespace.
27125         Load also literal strings in static class data.
27126
27127 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
27128
27129         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
27130         (default_assembly_name_resolver): Make the resolver take the
27131         "base" directory where the assembly was originally defined, so we
27132         can load DLLs that are in the same directory as the assembly that
27133         is being referenced.
27134
27135 2002-03-28  Dick Porter  <dick@ximian.com>
27136
27137         * file-io.h: 
27138         * file-io.c:
27139         * socket-io.c: 
27140         * unicode.h: 
27141         * unicode.c: Warning cleanups
27142
27143 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
27144
27145         * object.h, reflection.h: use the correct type instead of MonoObject.
27146
27147 2002-03-28  Martin Baulig  <martin@gnome.org>
27148
27149         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
27150         (mono_debug_update_symbol_file): Initialize classes if necessary.
27151
27152 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
27153
27154         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
27155         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
27156
27157 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
27158
27159         * assembly.h: fix function prototype.
27160         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
27161         * mono-endian.h: use const cast.
27162
27163 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
27164
27165         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
27166
27167 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
27168
27169         * loader.c: don't assert when a typeref can't be loaded, give
27170         a chance to the runtime to trow an exception instead.
27171         * loader.h: fix warning.
27172
27173 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
27174
27175         * class.c (mono_class_proxy_vtable): added proxy support
27176
27177 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
27178
27179         * icall.c: removed last of PAL calls, added System.Environment
27180         * file-io.h, file-io.c: MonoIO implementation
27181         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
27182
27183 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
27184
27185         * appdomain.c: do not use the byte marker in ldstr table lookup.
27186         * debug-helpers.c: allow two ':' to separate class and method name.
27187         * object.c: allocate arrays bounds with the GC, too.
27188         * verify: add a few more checks.
27189
27190 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
27191
27192         * reflection.c: output also literal strings. Allocate parameter data
27193         with GC_malloc() (thanks, Martin, for catching this!).
27194
27195 2002-03-26  Martin Baulig  <martin@gnome.org>
27196
27197         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
27198         include the `this' offset in the `param_offsets'.
27199
27200 2002-03-25  Martin Baulig  <martin@gnome.org>
27201
27202         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
27203         mono_debug_get_class() function to get the classes. Added new
27204         relocation types for arrays and strings.
27205         (mono_debug_get_class): New static function to search in all
27206         referenced assemblies for a metadata token.
27207
27208         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
27209
27210 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
27211
27212         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
27213         hold gc-allocated objects. Make the string heap a stream like the
27214         others. Removed duplicated code when writing stream info.
27215         Added asserts to catch possible buffer overflows. Set the sorted map
27216         for tables that need sorting. Added some documentation.
27217
27218 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
27219
27220         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
27221         for interned strings and vtables.
27222
27223 2002-03-24  Martin Baulig  <martin@gnome.org>
27224
27225         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
27226         it in the array since it was created with g_slist_prepend().
27227
27228 2002-03-24  Martin Baulig  <martin@gnome.org>
27229
27230         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
27231         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
27232         (mono_debug_method_from_token): Renamed to
27233         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
27234         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
27235
27236         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
27237         relocation types.
27238
27239         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
27240
27241 2002-03-24  Martin Baulig  <martin@gnome.org>
27242
27243         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
27244         (mono_debug_method_from_token): New func.
27245
27246         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
27247         New interncall, calls mono_debug_local_type_from_signature().
27248         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
27249         calls mono_debug_method_from_token().
27250
27251 2002-03-23  Martin Baulig  <martin@gnome.org>
27252
27253         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
27254         specifies the number of bytes to be converted, not the array size.
27255         Return the number of chars, not the number of bytes.
27256         (ves_icall_iconv_get_chars): The `byteCount' argument
27257         specifies the number of bytes to be converted, not the array size.
27258
27259 2002-03-23  Martin Baulig  <martin@gnome.org>
27260
27261         * reflection.h (MonoReflectionSigHelper): New type.
27262
27263         * reflection.c (mono_reflection_sighelper_get_signature_local),
27264         (mono_reflection_sighelper_get_signature_local): New functions.
27265
27266         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
27267         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
27268         interncalls.
27269
27270 2002-03-23  Martin Baulig  <martin@gnome.org>
27271
27272         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
27273         is_writeable is set.
27274         (mono_raw_buffer_update): New function to write the modified map
27275         back to disk.
27276
27277         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
27278
27279         * debug-symfile.c (mono_debug_update_symbol_file): Call
27280         mono_raw_buffer_update() when done writing.
27281
27282 2002-03-23  Martin Baulig  <martin@gnome.org>
27283
27284         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
27285
27286         * debug-symfile.c: Added support for arguments and local variables.
27287
27288 2002-03-23  Dick Porter  <dick@ximian.com>
27289
27290         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
27291         protected by ifdefs, hence breaking the w32 build.
27292
27293 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
27294
27295         * object.c: implement is_interned() the right way.
27296
27297 2002-03-21  Martin Baulig  <martin@gnome.org>
27298
27299         * debug-symfile.[ch]: New files to handle debugging information
27300         files. There's also support to dynamically update these symbol
27301         files to include machine dependent information.
27302
27303 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
27304
27305         * threads.c (mono_thread_create): new function to create thread
27306         from C
27307
27308 2002-03-20  Martin Baulig  <martin@gnome.org>
27309
27310         * icall.c (ves_icall_InternalInvoke): Create a new object if the
27311         method is a constructor.
27312         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
27313         points to ves_icall_InternalInvoke().
27314
27315 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
27316
27317         * file-io.c: Flush shouldn't throw exceptions.
27318
27319 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
27320
27321         * file-io.c: FileStream flush support; FileSetLength now
27322         restores file pointer.
27323
27324 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
27325
27326         * class.c: set image for pointer classes.
27327
27328 2002/03/19  Nick Drochak <ndrochak@gol.com>
27329
27330         * sysmath.c: Forgot one.
27331
27332 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
27333
27334         * sysmath.c: Avoid redefining existing names.
27335
27336 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
27337
27338         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
27339         handled by runtime as icall rather than dllimport from libm.so
27340         * file-io.c, file-io.h: fixed handle argument type.
27341
27342 2002-03-18  Dick Porter  <dick@ximian.com>
27343
27344         * reflection.c (mono_image_get_type_info): rename interface to
27345         iface, because of "#define interface struct" on windows.
27346
27347 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
27348
27349         * class.c, class.h: rename and export mono_ptr_class_get().
27350         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
27351         * reflection.c, reflection.h, icall.c: better/saner type name
27352         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
27353         method signatures.
27354
27355 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
27356
27357         * class.c (mono_class_init): removed hardcoded GHC_SLOT
27358
27359         * icall.c (ves_icall_InternalInvoke): impl.
27360
27361 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
27362
27363         * reflection.c: output the interface map table, too.
27364
27365 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
27366
27367         * class.c (class_compute_field_layout): separate computation of 
27368         static field layout
27369
27370 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
27371
27372         * icall.c: added System.Buffer support.
27373         * file-io.c: moved file icalls from PAL to FileStream.
27374
27375 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
27376
27377         * icall.c (ves_icall_System_Object_GetHashCode): impl.
27378
27379 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
27380
27381         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
27382
27383 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
27384
27385         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
27386
27387 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
27388
27389         * debug-helpers.{c,h}: moved here from monograph some useful functions
27390         to locate a method by name/signature in a class or image. Included
27391         also a small and flexible IL disassembler.
27392
27393 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
27394
27395         * reflection.c: fixup tokens in methods with small header size, too.
27396
27397 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
27398
27399         * object.c (mono_string_to_utf8): remove assert(!error), instead
27400         print a warning. 
27401
27402 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
27403
27404         * icall.c: update to the new mono_Array_class_get interface.
27405
27406 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
27407
27408         * appdomain.c, object.c: Boehm-GC enable.
27409         * icall.c: make get_data_chunk() support split data requests.
27410         Ensure a class is initialized in more cases. Return only the first
27411         property found in GetProperties() or the compiler gets confused. 
27412         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
27413         * reflection.h, reflection.c: add fixup mechanism for field and method
27414         tokens. Initialize assembly->typeref in a single place. Output
27415         properties after events. Support custom attributes for events, too.
27416         Typo fix for paramter custom attrs.
27417
27418 2002-03-07  Martin Baulig  <martin@gnome.org>
27419
27420         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
27421
27422 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
27423
27424         * class.c (mono_array_class_get): fix. for multi. dim. arrays
27425
27426 2002-03-06  Martin Baulig  <martin@gnome.org>
27427
27428         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
27429         non-zero lower bounds. See testcases #F10-#F13.
27430
27431 2002-03-05  Martin Baulig  <martin@gnome.org>
27432
27433         * exception.c (mono_get_exception_argument_out_of_range): New exception.
27434
27435         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
27436         ves_icall_System_Array_GetValue(), only calculate the absolute array position
27437         here.
27438         (ves_icall_System_Array_SetValue): Likewise.
27439         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
27440         as argument and does the actual work. This function is used when copying a
27441         multi-dimensional array.
27442         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
27443         now do all the widening conversions of value types.
27444         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
27445
27446 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
27447
27448         * class.c: remove some magic numbers and use the smbolic names,
27449         instead. Added init_events() to load event info at class init time.
27450         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
27451         and mono_metadata_methods_from_event().
27452         * reflection.h, reflection.c: added support for writing out the evnets
27453         related information.
27454
27455 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
27456
27457         * reflection.h, icall.c: use a different method (GetInterfaces)
27458         to gather interface info and add isbyref, isprimitive and
27459         ispointer to the ves_icall_get_type_info() return value.
27460
27461 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
27462
27463         * class.h: stared adding support for events.
27464         * icall.c: split find_members implementation. Added debug icall to get
27465         the address of an object.
27466         * reflection.c: handle TypeBuilders in mono_type_get_object().
27467
27468 2002-03-01  Martin Baulig  <martin@gnome.org>
27469
27470         * icall.c (ves_icall_System_Array_GetLength): This must throw an
27471         ArgumentOutOfRangeException(), not an ArgumentException().
27472         (ves_icall_System_Array_GetLowerBound): Likewise.
27473         (ves_icall_System_Array_GetValue): Improved argument checking.
27474         (ves_icall_System_Array_SetValue): Improved argument checking.
27475
27476 2002-03-01  Martin Baulig  <martin@gnome.org>
27477
27478         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
27479         called with invalid arguments rather than just dying with g_assert().
27480         (ves_icall_System_Array_SetValue): Likewise.
27481         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
27482         raise a NotImplementedException instead.
27483         (ves_icall_System_Array_GetLength): Added argument checking.
27484         (ves_icall_System_Array_GetLowerBound): Added argument checking.
27485
27486 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
27487
27488         * object.h (mono_assert): new macros mono_assert and
27489         mono_assert_not_reached
27490
27491 2002-02-28  Martin Baulig  <martin@gnome.org>
27492
27493         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
27494         and "System::String::IsInterned" to "System::String::_IsInterned".
27495
27496 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
27497
27498         * icall.c: remove hacks for typebuilder. Added icall to create a
27499         modified type from a tybebuilder.
27500         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
27501         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
27502         to create a backing MonoClass for a TypeBuilder.
27503
27504 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
27505
27506         * class.c, class.h: more refactoring of class init.
27507         Export mono_class_setup_mono_type() and mono_class_setup_parent().
27508
27509 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
27510
27511         * marshal.c, marshal.h: start of marshaling interface.
27512
27513 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
27514
27515         * icall.c: fix order in assembly qualified name icall.
27516
27517 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
27518
27519         * class.c: do not free str, since we store it in the hash table.
27520         * reflection.h: add label field to MonoILExceptionInfo.
27521         * reflection.c: handle references to more than one assembly. Handle
27522         case when there isn't a module created in the assembly.
27523
27524 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
27525
27526         * class.c: Fix typo. Start refactoring of class init code.
27527
27528 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
27529
27530         * appdomain.c: exit with 1 on error.
27531         * class.c: we already have the name in MonoClassField.
27532         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
27533         MonoStreamHeader instead of an offset of image->raw_metadata.
27534
27535 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
27536
27537         * appdomain.c (mono_init): Be even more descriptive about the error.
27538
27539 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
27540
27541         * appdomain.c: give the user an informative message when corlib can't
27542         be loaded.
27543
27544 2002-02-26  Martin Baulig  <martin@gnome.org>
27545
27546         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
27547         New icall to get the time zone data.
27548
27549 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
27550
27551         * reflection.c: set virtual and raw size of section correctly.
27552         * threads.c: transfer domain information to newly created threads.
27553
27554 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
27555
27556         * class.c: when instancing a class in a domain, load the default
27557         vaules for static fields from the constant table. Fix System.Enum to
27558         not be an enum.
27559         * icall.c: implement Object::GetType() internalcall. Implemented
27560         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
27561         Fixed checking of binding flags in find_members().
27562         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
27563         * reflection.c: handle enumerations when writing to the constant
27564         table. Use a different object cache for types.
27565
27566
27567 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
27568
27569         * object.c (mono_object_isinst): fix for arrays
27570
27571         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
27572
27573 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
27574
27575         * object.c: don't use mprotect ()  and fix intern pool hash table
27576         lookup for big endian systems.
27577
27578 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
27579
27580         * icall.c: change type_is_subtype_of () signature.
27581
27582 2002-02-21  Mark Crichton  <crichton@gimp.org>
27583
27584         * rand.c, rand.h: Added random number generator for
27585         System.Security.Cryptography classes.
27586
27587         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
27588
27589         * icall.c: Added System.Security.Cryptography calls.
27590
27591 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
27592
27593         * class.c, icall.c, metadata.c: better support for pointer types.
27594         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
27595         * reflection.c: Add support for getting custom attrs for properties
27596         and simplify some code.
27597
27598 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
27599
27600         * icall.c: change getToken () and add custom attribute GetBlob()helper
27601         method.
27602         * reflection.h: add custom attrs array to the reflection builder structures.
27603         * reflection.c: encode and emit custom attributes for all the relevant
27604         reflection objects. Cache fieldref and methodref tokens. Change
27605         mono_image_create_token() interface to take a MonoDynamicAssembly.
27606         More complete custom attributes decoder. Load custom attributes for
27607         Assembly, Field, Method and Constructor objects, too. Make the
27608         returned array an Attribute[] one, not object[]. Added
27609         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
27610         custom attribute constructor.
27611
27612 2002-02-20  Dick Porter  <dick@ximian.com>
27613
27614         * icall.c:
27615         * rawbuffer.c:
27616         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
27617         problem code out for now).
27618
27619 2002-02-19  Radek Doulik  <rodo@ximian.com>
27620
27621         * object.c (mono_ldstr): use hash table to avoid multiple swapping
27622
27623 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
27624
27625         * icall.c: register the GetCustomAttributes method.
27626         * object.c, object.h: add mono_string_new_len ().
27627         * reflection.h, reflection.c: added mono_runtime_invoke(),
27628         mono_install_runtime_invoke(). Added
27629         mono_reflection_get_custom_attrs () to load custom attributes and
27630         create the attribute objects.
27631
27632 2002-02-19  Dick Porter  <dick@ximian.com>
27633         * threads-dummy-types.c:
27634         * threads-dummy-types.h:
27635         * threads-dummy.c:
27636         * threads-dummy.h:
27637         * threads-pthread-types.c:
27638         * threads-pthread-types.h:
27639         * threads-pthread.c:
27640         * threads-pthread.h:  Deleted obsolete files
27641
27642 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
27643
27644         * class.c (mono_class_vtable): runtime init the class when we
27645         allocate static class data.
27646
27647         * icall.c (ves_icall_System_Array_SetValue): check for null values.
27648
27649         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
27650         and String - but we will need generic marshalling support in the
27651         future. 
27652         (mono_init): set the domain name in a ms compatible way
27653
27654         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
27655         String[].
27656
27657 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
27658
27659         * object.c (mono_array_clone): use alloca() instead of g_malloc  
27660         for sizes
27661
27662         * appdomain.c (mono_domain_unload): impl.
27663
27664 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
27665
27666         * appdomain.c, object.c: fix intern pool implementation.
27667         * class.c: fix alignment code.
27668
27669 2002-02-16  Radek Doulik  <rodo@ximian.com>
27670
27671         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
27672         and s2 > s1, just copy lower bytes to be compatible with little
27673         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
27674         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
27675
27676         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
27677         force big_endian to be 1 for big endian machines 
27678         (ves_icall_iconv_new_decoder): ditto
27679
27680 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
27681
27682         * socket-io.c (convert_sockopt_level_and_name): If the system
27683         doesn't define SOL_IP or SOL_TCP, get them by hand using
27684         getprotobyname() and caching the values (because this could be a
27685         slow operation).
27686         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
27687         Use the appropriate struct when the system does support it. Ie,
27688         not all systems have struct ip_mreqn so use struct ip_mreq when
27689         appropriate.
27690
27691 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
27692
27693         * reflection.c: handle finally clauses.
27694
27695 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
27696
27697         * socket-io.c: use g_snprintf() instead of snprintf.
27698
27699 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
27700
27701         * reflection.c (mono_param_get_objects): Cast second argument to
27702         mono_method_get_param_names to a const char** to silence the
27703         compiler warning.
27704
27705         * appdomain.c (mono_domain_assembly_open): Put parens around the
27706         truth statement in the for-loop.
27707
27708         * unicode.c (iconv_convert): Got rid of a compiler warning about
27709         int i being unused when the system has a new iconv.
27710         (iconv_get_length): Same.
27711
27712         * image.c (load_class_names): Cast the second argument to
27713         g_hash_table_insert() to char* to hush compiler warnings about the
27714         arg being a const.
27715         (mono_image_open): Same here.
27716
27717         * socket-io.c: Don't conditionally include sys/filio.h or
27718         sys/sockio.h here anymore since we now get them from
27719         io-layer/io-layer.h
27720         (inet_pton): If the system doesn't support inet_aton, implement
27721         using inet_addr and also #define INADDR_NONE if it isn't defined
27722         by the system.
27723
27724 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
27725
27726         * metadata.c, metadata.h: added function to get packing and size info
27727         of a typedef.
27728         * reflection.h, reflection.c: handle field RVA data. Save info about
27729         the table layout if needed. Assign typedef indexes to all the types
27730         before dumping the info about them to avoid forward reference problems.
27731
27732 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
27733
27734         * socket-io.c (convert_sockopt_level_and_name): ifdef
27735         SO_ACCEPTCONN because it is not defined on my system (old debian)
27736
27737 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
27738
27739         * opcode.c: use stddef.h to get NULL.
27740
27741 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
27742
27743         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
27744         for FIONBIO, FIONREAD and SIOCATMARK.
27745         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
27746         define INADDR_NONE and besides, inet_addr() is deprecated and
27747         should not be used. Use inet_pton() instead - it also has the
27748         added bonus that it can easily handle IPv6 addresses as well.
27749         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
27750
27751 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
27752
27753         * decimal.c: remove _MSC_VER conditional.
27754
27755 2002-02-13  Dick Porter  <dick@ximian.com>
27756
27757         * socket-io.c: 
27758         * icall.c: Internal calls for Blocking, Select, Shutdown,
27759         GetSocketOption and SetSocketOption
27760
27761 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
27762
27763         * assembly.cs: better resolver: use it instead of some kludgy
27764         code.
27765
27766 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
27767
27768         * reflection.c: the best way to speed-up the compiler is to avoid
27769         infinite loops.
27770
27771 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
27772
27773         * class.c (mono_class_vtable): changed the object layout
27774         (obj->vtable->class). 
27775         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
27776
27777 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
27778
27779         * assembly.c: look for assemblies in the assembly dir, too.
27780
27781 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
27782
27783         * class.c: fix thinko in mono_class_from_type().
27784
27785 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
27786
27787         * exception.h, exception.c: added TypeLoadException.
27788         * object.h, object.c: added mono_array_clone ().
27789         * icall.c: handle throwOnError in AssemblyGetType().
27790         Added Array.Clone().
27791         * opcode.h, opcode.c: use a single value for the opcode val.
27792         Compile fix for non-gcc compilers.
27793
27794 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
27795
27796         * opcodes.c, opcodes.h: export interesting info about opcodes.
27797
27798 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
27799
27800         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
27801         icalls. 
27802
27803         * class.c (class_compute_field_layout): set element_class for enums
27804         (mono_class_create_from_typedef): set element_class for normal classes
27805
27806         * icall.c (ves_icall_System_Enum_get_value): impl.
27807
27808         * class.c (mono_class_create_from_typedef): do not set valuetype
27809         flag for System.ValueType and System.Enum
27810
27811 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
27812
27813         * unicode.c (iconv_convert): fix big endian problem.
27814
27815 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
27816
27817         * class.c: add asserts if we are ever going to scribble over memory.
27818         * socket-io.c: not all systems have AF_IRDA defined.
27819
27820 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
27821
27822         * class.c (class_compute_field_layout): do not consider static
27823         fields to compute alignment
27824
27825 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
27826
27827         * appdomain.c (mono_appdomain_get): impl.
27828         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
27829
27830 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
27831
27832         * icall.c: ignore "file://" prefix when loading an assembly.
27833
27834 2002-01-23  Dick Porter  <dick@ximian.com>
27835
27836         * socket-io.c:
27837         * icall.c:
27838         * Makefile.am: Added socket support
27839
27840 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
27841
27842         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
27843         code back.  This should return the assemblies that are loaded by
27844         the runtime on behalf of an application domain. 
27845
27846         The current implementation is still broken, it just returns every
27847         assembly loaded, but until we get real applications domain this
27848         will do.
27849
27850 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
27851
27852         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
27853         AppDomain object.
27854
27855 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
27856
27857         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
27858         the mono_class_from_name lookup.
27859         (ves_icall_get_parameter_info): ditto.
27860         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
27861         method.
27862         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
27863
27864 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
27865
27866         * class.c: load also nested classes on class init.
27867         System.ValueType instance methods gets passed boxed
27868         values, unless methods in derived classed that get a pointer to the
27869         data.
27870         * icall.c: use better name parsing code in GetType().
27871         * image.c, image.h: add mono_image_loaded ().
27872         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
27873         * reflection.c, reflection.h: added mono_reflection_parse_type().
27874
27875 2002-01-22  Veronica De Santis <veron78@interfree.it>
27876
27877         * icall.c : Added mapping of internal calls for Manual and Auto reset events
27878         * threads.c : Added the implementation of internal calls for events
27879         * threads.h : Added prototypes of internal calls for events
27880         
27881 2002-01-21  Radek Doulik  <rodo@ximian.com>
27882
27883         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
27884
27885 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
27886
27887         * class.c (mono_class_init): set min_align to 1 (instead of 0)
27888         (mono_class_value_size): use min_align
27889
27890 2002-01-20  Dick Porter  <dick@ximian.com>
27891
27892         * threads.h:
27893         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
27894         so it compiles on w32.
27895
27896 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
27897
27898         * metadata.c (mono_type_stack_size): impl.
27899
27900         * class.c (mono_class_get_field): impl. memberref token
27901
27902 2002-01-16 Veronica De Santis <veron78@@interfree.it>
27903
27904         * icall.h : Added the internal calls mapping for CreateMutex_internal
27905                     and ReleaseMutex_internal.
27906         * threads.h : Added the prototype of mutexes internal calls.
27907         * threads.c : Added the implementations of mutexes internal calls.
27908
27909 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
27910
27911         * metaparse.h: removed unused file.
27912         * reflection.c, reflection.h: added stream_data_align () function 
27913         to align data in streams and keep stream aligned. Add support for
27914         exception support in method headers.
27915
27916 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
27917
27918         * unicode.c: make iconv_convert () return the number of bytess written
27919         in the output buffer.
27920
27921 2002-01-15  Dick Porter  <dick@ximian.com>
27922         * threads.c: Make the runtime's idea of infinite timeouts coincide
27923         with the class library's
27924
27925         Fix a particularly egregious bug in mono_thread_cleanup(). That
27926         code was so utterly bogus it must have been written on a Monday.
27927
27928 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
27929
27930         * reflection.h: add subtypes field to TypeBuilder.
27931         * reflection.c: encode constants for literal fields.
27932         Handle subtypes. Fix user string token (and add a zero byte)
27933         at the end.
27934         
27935 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
27936
27937         * class.c (mono_class_init): bug fix: assign slot numbers for
27938         abstract methods.
27939
27940 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
27941
27942         * reflection.c: don't try to output a code RVA for abstract methods.
27943         Small fixes for method header format. Output parameter info to the
27944         ParamDef table. Save method overriding info to MethodImpl table.
27945         Fix property support. Allow typedef.extends to be a type in the
27946         building assembly.
27947         * verify.c: fix off-by-one error.
27948
27949 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
27950
27951         * class.c: fix mono_class_from_mono_type () for szarray types.
27952         Remove unused cache check in mono_class_from_type_spec().
27953         * icall.c: *type_from_name () functions handle simple arrays and byref.
27954         * reflection.c: handle byref and szarray types. Handle methods without
27955         body (gets P/Invoke compilation working). Handle types and fields in
27956         get_token ().
27957         * reflection.h: add rank to MonoTypeInfo.
27958
27959 2002-01-10  Dick Porter  <dick@ximian.com>
27960
27961         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
27962         internal calls
27963
27964 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
27965
27966         * icall.c: initialize class in type_from_handle ().
27967         Loop also in parent classes for get_method ().
27968         * reflection.c: properly encode class and valuetype types.
27969         Start on encoding TypeBuilder types. Handle fieldrefs.
27970         Use correct length when registering a user string.
27971         Handle ConstructorBuilder and MonoMethod in get_token ().
27972         Make mono_type_get_object () aware of cached types.
27973         * object.c: back out change to mono_string_new ().
27974
27975 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
27976         * object.c: mono_string_new should return a NULL when the string 
27977         passed in is NULL -- not try to deference it.
27978         
27979 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
27980
27981         * icall.c: hack to make IsSubType work for TypeBuilders.
27982         * reflection.c: emit constructors before methods.
27983         Retrieve param names in mono_param_get_objects().
27984
27985 2002/01/05  Nick Drochak  <ndrochak@gol.com>
27986
27987         * Makefile.am: fix list of headers and sources so automake 1.5
27988         doesn't complain. Removed \# at end of list.
27989
27990 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
27991
27992         * reflection.c: get token for a method ref. Set return type of
27993         constructor to void.
27994         * loader.c: debug message.
27995         * class.c: typo fix.
27996
27997 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
27998
27999         * icall.c: fix array init with rank > 1. FindMembers
28000         loops in parent class as well.
28001         * image.c: do not insert nested types in name cache.
28002         * reflection.c: warning fix.
28003         * reflection.h: add override method (for interface impl).
28004
28005 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
28006
28007         * metadata.c: fix customattr decoding.
28008
28009 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
28010
28011         * rawbuffer.cs: Added native Win32 implementation, avoids using
28012         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
28013
28014 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
28015
28016         * class.c: make the low-level routines handle the cache.
28017
28018 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
28019
28020         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
28021
28022 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
28023
28024         * class.c: fix mono_array_element_size() for objects.
28025         * class.h, class.c: add properties to MonoClass and load them
28026         at init time.
28027         * icall.c: check with isinst() when assigning a value to an array
28028         instead of requiring the classes to match exactly.
28029         Implemented icall for System.Type::GetType().
28030         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
28031         enums. Handle bindingflags when looking for methods and fields.
28032         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
28033         and mono_metadata_methods_from_property().
28034         * reflection.h, reflection.c: added structures for propreties,
28035         parameters and enums. Implemented mono_property_get_object() and
28036         mono_param_get_objects().
28037
28038 2001-12-18  Dick Porter  <dick@ximian.com>
28039
28040         * file-io.c: Use mono_string_to_utf16() instead of
28041         mono_string_chars()
28042
28043         * object.c: Added mono_string_to_utf16(), which copies the non
28044         NULL-terminated MonoString into a new double-null-terminated
28045         buffer.
28046
28047 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
28048
28049         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
28050
28051 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
28052
28053         * file-io.c: raise exceptions if handle is invalid.
28054
28055 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
28056
28057         * assembly.c: yet another check for mscorlib.
28058         * class.c, class.h: load nesting info for classes.
28059         * icall.c: many new functions to support the Reflection classes.
28060         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
28061         * reflection.h, reflection.c: mono_image_create_token(),
28062         mono_assembly_get_object(), mono_type_get_object(),
28063         mono_method_get_object(), mono_field_get_object(): methods to return
28064         objects that parallel the C representation of assemblies, types,
28065         methods, fields.
28066
28067 2001-12-11  Dick Porter  <dick@ximian.com>
28068
28069         * icall.c:
28070         * file-io.c: Internal calls for file IO.
28071
28072 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
28073
28074         * tabledefs.h: missing FileAttributes.
28075         * verify.h, verify.c: use is_valid_string () to simplify and check for
28076         valid strings more correctly. Fix warnings and speeling.
28077         Check more tables: Filed, File, ModuleRef, StandAloneSig.
28078         Check code: branches, maxstack, method calls.
28079
28080 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
28081
28082         * object.c (mono_object_allocate): removed static, so that the jit
28083         can allocate value types.
28084
28085         * icall.c (ves_icall_System_DateTime_GetNow): impl.
28086
28087 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
28088
28089         * class.c: init enum types right away and register the
28090         token->MonoClass map in mono_class_create_from_typedef ().
28091         * verify.h, verify.c: first cut of the verifier.
28092         * pedump.c: add --verify switch to verify metadata tables.
28093         * tabledefs.h: add some missing enums.
28094
28095 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
28096
28097         * class.c (mono_install_runtime_class_init): impl.
28098         (mono_class_init): renamed mono_class_metadata_init to
28099         mono_class_init, also removed the metadata_inited flag
28100
28101         * object.c (mono_object_isinst): use faster algorithm
28102
28103 2001-11-30  Radek Doulik  <rodo@ximian.com>
28104
28105         * mono-endian.h: reverted last change
28106         added function prototypes
28107
28108         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
28109         add mono-endian.c back
28110
28111         * mono-endian.c: returned back, as Paolo pointed out, it's needed
28112         for unaligned access, I've mistaked it with endianess. I am
28113         sorry.
28114         (mono_read16): fix reverted endianess
28115         (mono_read64): ditto
28116         (mono_read32): ditto
28117
28118 2001-11-30  Dick Porter  <dick@ximian.com>
28119
28120         * exception.c: Implement mono_exception_from_name()
28121
28122 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
28123
28124         * metadata.h, metadata.c: remove params_size and locals_size and their
28125         calculation from the metadata code: they are only usefult to the
28126         interp.
28127
28128 2001-11-29  Radek Doulik  <rodo@ximian.com>
28129
28130         * object.c (mono_ldstr): swap bytes here, it's probably not the
28131         best place, but works for me now, I'll redo it once I know mono
28132         better, also note that I add PROT_WRITE and don't reset back, also
28133         note that it's only affects big endians, so x86 should be OK
28134
28135         * mono-endian.h (read16): use just glib macros for both endians
28136
28137         * mono-endian.c: removed as glib macros are used in in
28138         mono-endian.h so we don't need to care about endianess for read
28139         macros as glib does that for us already
28140
28141 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
28142
28143         * class.h, class.h: take minimum alignment into consideration so
28144         that the fields of a class remain aligned also when in an array.
28145
28146 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
28147
28148         * loader.h, loader.c: add mono_method_get_param_names().
28149         * class.c: 0-init class fields.
28150
28151 2001-11-26  Dick Porter  <dick@ximian.com>
28152
28153         * icall.c:
28154         * threads-types.h:
28155         * threads.c: New file that handles System.Threading on all platforms
28156
28157         * object.c: 
28158         * object.h: Remove the synchronisation struct from MonoObject,
28159         replace it with a pointer that gets initialised on demand
28160
28161         * Makefile.am: Replace all the system-specific threading code with
28162         a single file that uses the new wrapper library
28163
28164 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
28165
28166         * class.c, class.h: add mono_install_trampoline() so that the runtime
28167         can register a function to create a trampoline: removes the ugly
28168         requirement that a runtime needed to export arch_create_jit_trampoline.
28169         * object.h, object.c: added mono_install_handler() so that the runtime
28170         can install an handler for exceptions generated in C code (with
28171         mono_raise_exception()). Added C struct for System.Delegate.
28172         * pedump.c: removed arch_create_jit_trampoline.
28173         * reflection.c: some cleanups to allow registering user strings and
28174         later getting a token for methodrefs and fieldrefs before the assembly
28175         is built.
28176         * row-indexes.h: updates and fixes from the new ECMA specs.
28177
28178 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
28179
28180         * class.h, class.c: add enum_basetype field to MonoClass.
28181         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
28182         to get index in the constant table reated to a field, param or
28183         property.
28184         * reflection.h, reflection.c: handle constructors. Set public-key and
28185         version number of the built assembly to 0.
28186         * row-indexes.h: update from new ECMA spec.
28187
28188 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
28189
28190         * class.h, class.c: add a max_interface_id to MonoClass.
28191         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
28192         since it's used to do that. Added mono_type_type_from_obj().
28193         Make GetType() return NULL instead of segfaulting if the type was not
28194         found. Handle simple arrays in assQualifiedName.
28195         * object.h: add a struct to represent an Exception.
28196         * reflection.c: output call convention in method signature.
28197         Add code to support P/Invoke methods and fixed offsets for fields.
28198
28199 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
28200
28201         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
28202         the value.
28203         * icall.c: use mono_array_addr instead of array->vector: fixes the
28204         reflection image writing.
28205         * reflection.c: init call convention byte to 0 in method signature.
28206         Encode the property signature. Don't output property-related methods
28207         twice. Really process the properties for a type (don't cast a field to
28208         a property, my mom always told me that).
28209         Fix 64 bit issues in pointer alignment in a different and more
28210         readable way.
28211
28212 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
28213
28214         * loader.h: Removed type class from MonoDefaults, added monotype
28215
28216         * loader.c: Loaded MonoType, removed loading of Type
28217
28218         * icall.c (my_mono_new_object): Now returns a System.MonoType,
28219         and fills in System.Type._impl with a RuntimeTypeHandle rather
28220         than the actual MonoClass *
28221
28222         (ves_icall_type_from_handle): change from type_class to
28223         monotype_class
28224
28225         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
28226         implemented
28227
28228         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
28229         implemented
28230
28231         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
28232
28233         (ves_icall_System_Reflection_Assembly_GetType): implemented
28234
28235         (ves_icall_System_MonoType_assQualifiedName): implemented
28236
28237         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
28238
28239 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
28240
28241         * assembly.c (mono_assembly_open): Implement a cache for the
28242         assemblies. 
28243
28244         (mono_assembly_close): only destroy the assembly when the last
28245         reference is gone.
28246         
28247 2001-11-09  Dick Porter  <dick@ximian.com>
28248
28249         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
28250
28251 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
28252
28253         * class.c (mono_class_metadata_init): bug fix: compute the right slot
28254
28255 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
28256
28257         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
28258         from Martin Weindel.
28259         * object.h: add mono_string_chars ().
28260
28261 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
28262
28263         * reflection.c (build_compressed_metadata): Eliminates warnings
28264         and uses 64-bit clean code.
28265
28266         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
28267         (mono_type_equal): Change signature to eliminate warnings.
28268
28269 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
28270
28271         * icall.c, loader.c: remove the internalcall array constructors.
28272         Changes to match the new MonoArray structure.
28273         * object.h, object.c: an array object doesn't allocate an extra
28274         vector. Add mono_array_new_full () to create jagged arrays easily.
28275
28276 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
28277
28278         * metadata.h, metadata.c: add mono_metadata_field_info () to
28279         retreive all the info about a field from vairous tables.
28280         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
28281         * class.h, class.c: augment MonoClassField with more info.
28282         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
28283         policy and load a field's RVA if needed.
28284
28285 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
28286
28287         * class.c (mono_class_metadata_init): create a trampoline for all
28288         virtual functions instead of actually compiling them.
28289
28290 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
28291
28292         * class.h, class.c: include name in MonoClassField.
28293         * class.c: fix fundamental type of System.Object and System.String.
28294         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
28295         tokens in ldtoken.
28296         * icall.c: remove internalcalls for the Reflection stuff that is now
28297         done in C# code.
28298         * loader.c: mono_field_from_memberref () implementation.
28299         * mono-endian.c: thinko (s/struct/union/g).
28300         * object.c, object.h: make the mono_string_* prototypes actually use
28301         MonoString instead of MonoObject.
28302         * reflection.c, reflection.h: updates for changes in the reflection
28303         code in corlib: we use C structures that map to the actual C# classes.
28304         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
28305         fat method header if needed and use the info from the ILGenerator for
28306         methods. Handle fields in types. Misc fixes.
28307
28308 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
28309
28310         * class.c (mono_class_metadata_init): bug fix: always allocate
28311         space for static class data
28312
28313 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
28314
28315         * class.c (mono_compute_relative_numbering): use relative
28316         numbering to support fast runtime type checks.
28317
28318 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
28319
28320         * class.c (mono_class_create_from_typeref): added debugging output
28321         to print class name when MonoDummy is returned instead of real class
28322
28323 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
28324
28325         * class.c (mono_class_metadata_init): interface offset table now
28326         contains pointers into the vtable - this is more efficient for the jit
28327
28328 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
28329
28330         * class.c (mono_class_metadata_init): use a temporary vtable (the
28331         old algorithm only worked for the interpreter, but not for the jit)
28332
28333 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
28334
28335         * loader.c (method_from_memberref): use mono_class_get to get the
28336         class of an array instead of using System.Array directly.
28337         (mono_get_method): also add MEMBERREF methods to the method cache
28338         which usefull for arrays.
28339
28340 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
28341
28342         * pedump.c (arch_compile_method): added to compute vtable entry
28343
28344         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
28345         number of interfaces.
28346         
28347         * class.h: merged MonoArrayClass into MonoClass
28348
28349         * class.c (mono_class_create_from_typedef): compute the vtable size and
28350         allocate space to include the vtable inside MonoClass
28351         (mono_class_metadata_init): initialize the vtable
28352
28353 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
28354
28355         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
28356         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
28357         * image.c: endian fixes by Laurent Rioux.
28358         * object.h, object.c: rename MonoStringObject to MonoString and
28359         MonoArrayObject to MonoArray. Change some function names to conform to
28360         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
28361         guint16* as first argument, so don't use char*.
28362         Provide macros to do the interesting things on arrays in a portable way.
28363         * threads-pthread.c: updates for the API changes and #include <sched.h>
28364         (required for sched_yield()).
28365         * icall.c: updates for the API changes above.
28366         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
28367         platforms that need them.
28368
28369 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
28370
28371         * class.c: set the correct type for all the fundamental
28372         type when loading the class.
28373
28374 2001-10-05  Dick Porter  <dick@ximian.com>
28375
28376         * threads-pthread.c (pthread_mutex_timedlock): Simple
28377         compatibility version for C libraries that lack this call.
28378
28379 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
28380
28381         * class.c: MonoTypes stored in MonoClass are stored as
28382         fundamental MonoTypes when the class represents a
28383         fundamental type (System.Int32, ...).
28384         The TypeHandle return by ldtoken is a MonoType*.
28385         * icall.c: ves_icall_get_data_chunk () write out all the
28386         PE/COFF stuff. Implement ves_icall_define_method (),
28387         ves_icall_set_method_body (), ves_icall_type_from_handle ().
28388         * image.c: properly skip unknown streams.
28389         * loader.h, loader.c: add type_class to mono_defaults.
28390         * metadata.c, metadata.h: export compute_size () as
28391         mono_metadata_compute_size () with a better interface.
28392         Typo and C&P fixes.
28393         * pedump.c: don't try to print the entry point RVA if there is no entry point.
28394         * reflection.c, reflection.h: many cleanups, fixes, output method
28395         signatures and headers, typedef and typeref info, compress the metadata
28396         tables, output all the heap streams, cli header etc.
28397         * row-indexes.h: typo fixes.
28398
28399 2001-10-04  Dick Porter  <dick@ximian.com>
28400
28401         * object.h: Add a synchronisation mutex struct to MonoObject
28402
28403         * object.c (mono_new_object): Initialise the object
28404         synchronisation mutexes
28405
28406         * icall.c: System.Threading.Monitor internal calls
28407         
28408         * threads-pthread.h:
28409         * threads-pthread.c: System.Threading.Monitor internal calls
28410
28411         * threads-types.h: New file, includes the system-specific thread
28412         structures
28413         
28414         * threads-pthread-types.h:
28415         * threads-pthread-types.c: New files, handle pthread-specific
28416         synchronisation types
28417
28418         * threads-dummy-types.h: 
28419         * threads-dummy-types.c: New files of dummy support for
28420         thread-specific types
28421
28422         * metadata.c:
28423         * image.c:
28424         * pedump.c: include mono-endian.h not endian.h
28425         
28426         * Makefile.am: More threads files.
28427         Name mono-endian.h not endian.h
28428
28429 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
28430
28431         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
28432         stuff and implement a few more bits.
28433         * icall.c: a field needs to be dereferenced twice. Do not use the same
28434         name for two variables in the same scope.
28435         * image.c, image.h: cleanups.
28436
28437 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
28438
28439         * class.c (mono_class_metadata_init): bug fix: compute the right size
28440
28441 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
28442
28443         * icall.c: implemented some of the Reflection internalcalls.
28444         * image.c, image.h: start writing out the PE/COFF image.
28445         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
28446         that does the reverse than decode_blob_size ().
28447         * object.c: use mono_metadata_encode_value (). Move here
28448         temporary implementation of mono_string_to_utf8 ().
28449         * rawbuffer.c: make malloc_map static.
28450
28451 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
28452
28453         * metadata.c: fix type comparison for arrays.
28454         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
28455         Added a couple of new classes to monodefaults.
28456         * icall.c: added a couple of Reflection-related internalcalls.
28457         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
28458         Added a byval_arg MonoType to MonoClass.
28459
28460 2001-09-28  Dick Porter  <dick@ximian.com>
28461
28462         * icall.c:
28463         * threads-pthread.h: 
28464         * threads-pthread.c: Implemented internal calls for
28465         LocalDataStoreSlot operations.  Applied mutexes around all shared
28466         data.  Reworked the thread creation and Start() operations to
28467         avoid a race condition.
28468         
28469         * threads-dummy.h:
28470         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
28471
28472 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
28473
28474         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
28475
28476 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
28477
28478         * class.c, loader.c: warn and return NULL instead of erroring out.
28479         * icall.c: added System.AppDomain::getCurDomain().
28480         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
28481
28482 2001-09-25  Dick Porter  <dick@ximian.com>
28483
28484         * threads-pthread.h:
28485         * threads-pthread.c: Implemented timed thread joining and added
28486         System.Threading.Thread::Join_internal internal call
28487
28488         * icall.c: Added System.Threading.Thread::Join_internal internal call
28489
28490         * threads-dummy.h:
28491         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
28492
28493 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
28494
28495         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
28496         mono_string_intern () to implement the semantics of the ldstr opcode
28497         and the interning of System.Strings.
28498         * icall.c: provide hooks to make String::IsIntern and String::Intern
28499         internalcalls.
28500
28501 2001-09-23  Dick Porter  <dick@ximian.com>
28502
28503         * threads-dummy.c: 
28504         * threads-dummy.h: New files of dummy threading routines
28505
28506         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
28507         support code based on system specifics
28508
28509         Rename PTHREAD_LIBS to THREAD_LIBS
28510         
28511 2001-09-23  Dick Porter  <dick@ximian.com>
28512
28513         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
28514         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
28515         internal calls.
28516         (mono_thread_init): Set up a Thread object instance to return when
28517         the main thread calls Thread.CurrentThread
28518         (mono_thread_cleanup): Wait for all subthreads to exit
28519
28520         * icall.c: New internal calls for System.Threading.Thread::Sleep
28521         (including Schedule) and CurrentThread
28522
28523         * threads.h: New file, to insulate thread-specific stuff from the
28524         rest of the code
28525
28526 2001-09-21  Dick Porter  <dick@ximian.com>
28527
28528         * threads-pthread.h: 
28529         * threads-pthread.c: New file, for handling pthreads-style
28530         threading support.  Start() now starts a new thread and executes
28531         the ThreadStart delegate instance.
28532
28533         * icall.c: Added the internalcall for
28534         System.Threading.Thread::Start_internal
28535
28536         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
28537
28538 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
28539
28540         * loader.c: work around the different signatures for delegates
28541         constructors csc generates in compiled code vs the ones compiled in mscorlib.
28542
28543 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
28544
28545         * class.h, class.c: add mono_class_get_field_from_name ().
28546         * *: Fix C comments and other ANSI C issues.
28547
28548 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
28549
28550         * endian.h, assembly.c: fix some endianness issues.
28551
28552 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
28553
28554         * loader.h, load.c: add delegate_class to mono_defaults.
28555         Handle runtime provided methods in mono_get_method ().
28556
28557 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
28558
28559         * loader.c (mono_get_method): use pinvoke for internal call
28560
28561         * icall.c: use pinvoke for internal call
28562
28563         * loader.c (method_from_memberref): set the method name
28564
28565 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
28566
28567         * metadata.c: help the compiler generate better code for
28568         mono_class_from_mono_type ().
28569
28570 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
28571
28572         * class.c (mono_class_metadata_init): delayed computing of the
28573         class size to mono_class_metadata_init ()
28574
28575 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
28576
28577         * class.c, class.h: add an interfaces member to MonoClass.
28578         * image.c, image.h: add assembly_name field to MonoImage
28579         from the assembly table.
28580         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
28581
28582 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
28583
28584         * class.c: Handle Array in mono_class_from_mono_type ().
28585         * metadata.c, pedump.c: some endian fixes.
28586
28587 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
28588
28589         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
28590         * metadata.c: fix small problem introduced with the latest commit.
28591
28592 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
28593
28594         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
28595         We don't need a MonoMetadata pointer anymore to compare signatures in
28596         mono_metadata_signature_equal (), update callers.
28597         Reduced memory usage an number of allocations for MonoMethodHeader and
28598         MonoMethodSignature.
28599
28600 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
28601
28602         * metadata.c: added compare for szarray.
28603
28604 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
28605
28606         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
28607         and add a couple more types to it and mono_defaults. Give an hint on
28608         classes that need implementing in our corlib and are referenced
28609         in mscorlib.
28610
28611 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
28612
28613         * class.h, class.c: keep track if a class is also an Enum.
28614         * loader.c: Implement a couple more types for use in libffi
28615         marshalling. Gives better diagnostics when failing to dlopen
28616         a library. Set method->klass for P/Invoke methods, too.
28617
28618 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
28619
28620         * class.c, class.h: add a MonoType this_arg to MonoClass that
28621         represents a pointer to an object of the class' type that
28622         can be used by the interpreter and later the type cache.
28623         Add best guess alignment info for valuetype objects.
28624
28625 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
28626
28627         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
28628         into MonoType: one less level of indirection and allocation and
28629         simplifies quite a bit of code. Added cache for MonoTypes that are
28630         used frequently, so that we don't need to allocate them all the time.
28631
28632 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
28633
28634         * class.c (mono_class_create_from_typedef): System.Enum is also a
28635         value type, although it does not derive from System.ValueType
28636         (maybe a bug in the ms compiler?)
28637
28638         * metadata.c (mono_type_size): return the right size for value types
28639
28640         * loader.c (mono_get_method): only initialize method header if not abstract
28641
28642         * class.c (mono_class_from_mono_type): use mono_default values. 
28643
28644 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
28645
28646         * *: use MonoClass pointers instead of <type_tokens>
28647         
28648         * class.h: new flag: metadata_inited.
28649
28650         * class.c (mono_class_metadata_init): impl.
28651         (mono_class_instance_size): impl.
28652         (mono_class_data_size): impl.
28653
28654 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
28655
28656         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
28657         MonoClass now has the name and name_space fields. 
28658         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
28659         mono_get_method () takes and optional MonoClass as argument.
28660         Removed mono_typedef_from_name() and added mono_class_token_from_name()
28661         instead that takes advantage of a map from class names to typedef
28662         tokens in MonoImage.
28663
28664 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
28665
28666         * metadata.c: zero is not a valid alignment boundary.
28667         Merge MONO_TYPE_VOID in default decoding code.
28668
28669 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
28670
28671         * image.h: merged MonoMetadata into MonoImage
28672
28673         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
28674         identify the type of elements.
28675
28676 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
28677
28678         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
28679         * cil-coff.h: split MonoMSDOSHeader and add size info.
28680         * image.c: add some consistency checks.
28681         * metadata.c: fix row size computation: one programmer
28682         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
28683         add explanation for the locator routine.
28684         Fix decoding of size in method header.
28685         
28686 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
28687
28688         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
28689         (g_concat_dir_and_file): Bring g_concat_dir_and_file
28690         function from gnome-libs.  This uses the right path separator
28691         based on the OS, and also works around a bug in some systems where
28692         a double slash is not allowed. 
28693         (default_assembly_name_resolver): Use g_concat_dir_and_file
28694         (mono_assembly_open): ditto.
28695
28696 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
28697
28698         * metadata.c (mono_metadata_signature_equal): impl.
28699
28700         * *: void is now a realy MonoType (instead of using NULL)
28701         
28702         * metadata.c (do_mono_metadata_parse_type): use
28703         mono_metadata_parse_type to parse void value.
28704
28705 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
28706
28707         * metadata.c, metadata.h: in the signature and method header store
28708         only the space required for holding the loca vars and incoming arguments.
28709
28710 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
28711
28712         * metadata.c (do_mono_metadata_parse_type): treat void like any
28713         other type (instead of assigning NULL);
28714
28715 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
28716
28717         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
28718
28719 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
28720
28721         * image.c (do_mono_image_open): added a cache for arrays.
28722
28723 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
28724
28725         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
28726         decode a single column from a row in a metadata table and changes
28727         to take advantage of it in the typedef locator (gives a nice speed up).
28728         Store offset info for function params.
28729
28730 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
28731
28732         * image.h (MONO_IMAGE_IS_CORLIB): removed 
28733
28734 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
28735
28736         * assembly.c: how could mono_assembly_close () had ever worked?
28737         * metadata.c, metadata.h: provide offset info for local vars.
28738         Implement mono_type_size () to take care of alignment as well
28739         as size (it was mono_field_type_size in cli/class.c before).
28740
28741 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
28742
28743         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
28744
28745         * assembly.h (CORLIB_NAME): set to corlib.dll
28746
28747         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
28748
28749 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
28750
28751         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
28752         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
28753         tokentype.h: massive namespace cleanup.
28754
28755 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
28756
28757         * metadata.h, metadata.c: decode exception clauses when parsing method header.
28758
28759 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
28760
28761         * metadata.c (mono_metadata_free_type): added check for type !=
28762         NULL (void) before calling mono_metadata_free_type()
28763
28764 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
28765
28766         * metadata.h, row_indexes.h: added header with enumerations to use
28767         to index in the columns from tables in metadata and to decode coded
28768         tokens: we should start using this instead of embedding magic numbers
28769         all over the code.
28770
28771 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
28772
28773         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
28774         Move metadata_t info from cli_image_info_t to MonoImage, where
28775         it's easily accessible. Changed all the uses accordingly.
28776         Added the method and class caches to MonoImage.
28777         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
28778         and mono_metadata_decode_value () signature to be more consistent
28779         with the other parse functions (and simplify code). Taken advantage
28780         of zero-length array allocation with GCC. Removed reduntant (and
28781         wrong) MonoFieldType struct and use MonoParam instead. Changed
28782         mono_metadata_parse_field_type () to use common code for parsing.
28783         Added mono_metadata_typedef_from_field () and
28784         mono_metadata_typedef_from_method () to lookup a typedef index from a
28785         field or method token.
28786         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
28787
28788 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
28789
28790         * metadata.c (mono_metadata_parse_field_type): Implement. 
28791         (do_mono_metadata_parse_type): Split engine from
28792         mono_metadata_parse_type, so that we can create smaller structures
28793         for things that just have one pointer to the MonoType (look at
28794         the MonoFieldType)
28795
28796 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
28797
28798         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
28799         as Jan Gray found out, it is incorrect. 
28800
28801 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
28802
28803         * assembly.c: Implement asssembly loading.  This loads an image
28804         and loads all the referenced assemblies.  Come to think of it, we
28805         could always do lazy loading of the assemblies. 
28806
28807         * image.c (mono_image_open): Keep loaded images in a hashtable.
28808
28809         * image.h (MonoImage): Add reference count.
28810
28811 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
28812
28813         * assembly.c (mono_assembly_open): Keep track of the file name in
28814         case the assembly has no ASSEMBLY table.
28815
28816         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
28817         from get.c here.
28818
28819 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
28820
28821         * metadata.c, metadata.h: decode local vars in method header
28822         parse function. Change callers accordingly.
28823
28824 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
28825
28826         * metadata.h, cil-coff.h: protect against multiple inclusion.
28827         Added some new structures to hold information decoded from metadata:
28828         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
28829         and relevant decoding/free functions.
28830         * metadata.c: implement decoding functions. Add warning for out of bounds
28831         index in mono_metadata_locate(). Implement mono_get_method () to retreive
28832         all the info about a method signature and invocation. Remove check on
28833         uninitialized local var in parse_mh() and fix memory leak.
28834
28835 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
28836
28837         * metadata.h: More macros.
28838
28839         * tokentype.h: New file.
28840
28841 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
28842
28843         * assembly.c: added a consistency check and initialize
28844         some structures with g_new0().
28845         * metadata.c: fixed a couple more bugs in table size computation
28846         and add other checks for out-of bound access to metadata.
28847
28848 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
28849
28850         * metatada.c: fix bugs computing table sizes. Spew a
28851         warning when index in string heap is out of bounds.
28852
28853 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
28854
28855         * metadata.h: Add a couple of macros to manipulate tokens. 
28856
28857 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
28858
28859         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
28860         cli_section_tables).
28861
28862 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
28863
28864         * metadata.c (mono_metadata_user_string): New function, provides
28865         access to the UserString heap. 
28866
28867 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
28868
28869         * metadata.c: Add inline documentation.
28870
28871 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
28872
28873         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
28874         files. 
28875
28876 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
28877
28878         * typeattr.h: New file, TypeAttribute flags. 
28879
28880 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
28881
28882         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
28883         mono_assembly_ensure_section): Section loading code.
28884         (load_section_tables): Load the sections.
28885
28886         * mono/metadata/metadata.c (mono_metadata_locate_token,
28887         mono_metadata_locate): Functions to locate the information
28888         definition given a token or a table and an index.
28889         (mono_metadata_compute_table_bases): New.
28890         (compute_size): New function to compute the sizes of the various
28891         tables.
28892
28893         * mono/metadata/metadata.h: Finish listing the different index
28894         types. 
28895
28896         * mono/metadata/pedump.c: Improve to dump new information.
28897
28898 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
28899
28900         * mono/metadata/metadata.c: Entered all the tables matching
28901         Beta2. 
28902
28903         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
28904
28905
28906
28907