2007-11-07 Mark Probst <mark.probst@gmail.com>
[mono.git] / mono / metadata / ChangeLog
1 2007-11-07  Mark Probst  <mark.probst@gmail.com>
2
3         * icall.c: Safety checks in InitializeArray.  Fixes bug #324535.
4
5 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com> 
6
7         * object.c: Fix mono_string_to_utf8 to handle NULL values inside the
8         UTF16 MonoString. Fix the crash from bug #335488
9
10 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com>
11
12         * marshal.c: Correct (for non-Win32 OS) length != size in 
13         mono_string_from_bstr. Fix #339530.
14
15 2007-11-06  Geoff Norton  <gnorton@novell.com>
16
17         * socket-io.c: Apple requires sin(6)_len to be set for getnameinfo
18         to succeed
19
20 2007-11-05  Kornél Pál  <kornelpal@gmail.com>
21
22         * process.c: Added run-time GetProcessId API detection for Windows.
23
24 2007-11-04  Miguel de Icaza  <miguel@novell.com>
25
26         * reflection.c  (mono_param_get_objects): If a parameter has the
27         attribute [System.Runtime.InteropServices.Optional] we should
28         set the DefaultValue of the ParameterInfo to be
29         System.Reflection.Missing instead of DBNull.
30
31         See bug #339013.
32
33         (mono_get_reflection_missing_object): New method,
34         returns the System.Reflection.Missing.Value singleton instance.
35
36 2007-11-03  Atsushi Enomoto  <atsushi@ximian.com>
37
38         * culture-info-table.h : regenerated.
39
40 2007-11-02  Jonathan Chambers <joncham@gmail.com>
41
42         * icall.c: Use GetEnvironmentStrings on windows
43         so we are using the same environment block as 
44         GetEnvironmentVariable/SetEnvironmentVariable. Fixes
45         #333740.
46         
47         Code is contributed under MIT/X11 license.
48
49 2007-10-31  Martin Baulig  <martin@ximian.com>
50
51         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 64.
52
53         * mono-debug-debugger.h
54         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_TRAMPOLINE'.
55
56 2007-10-30  Zoltan Varga  <vargaz@gmail.com>
57
58         * reflection.c (mono_custom_attrs_from_class): Add support for dynamic inflated 
59         classes.
60
61 2007-10-30  Atsushi Enomoto  <atsushi@ximian.com>
62
63         * culture-info-table.h : regenerated.
64
65 2007-10-30  Robert Jordan  <robertj@gmx.net>
66
67         * icall-def.h, icall.c:
68         Add ves_icall_Remoting_RemotingServices_GetVirtualMethod ().
69
70         Code is contributed under MIT/X11 license.
71
72 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
73
74         * class.c (mono_class_setup_vtable): Find the inflated methods in the
75         inflated class instead of inflating them again.
76         
77         * class.c (mono_class_setup_vtable): Inflate the override methods in the 
78         dynamic case.
79
80         * class.c (mono_generic_class_get_class): Set klass->property.count as well.
81         Call setup_supertypes () after klass->parent is set.
82         (mono_class_setup_properties): Enable this to work on dynamic generic classes.
83
84         * reflection.c (mono_type_get_object): Only return a MonoGenericClass object
85         for inflated instances of not yet created dynamic generic classes.
86         (ctorbuilder_to_mono_method): Handle the case when this is called multiple
87         times from inflated_method.
88         (methodbuilder_to_mono_method): Ditto.
89
90 Mon Oct 29 21:02:53 CET 2007 Paolo Molaro <lupus@ximian.com>
91
92         * gc.c: code cleanup and removed old untested option of not creating the
93         finalizer thread.
94
95 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
96
97         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Avoid
98         creating a jump trampoline for dynamic methods.
99
100 2007-10-29 Rodrigo Kumpera <rkumpera@novell.com>
101
102         * reflection.c (mono_image_create_token): Correctly encode methods and constructors of
103         generic TypeBuilders when called from another method of the same type (bug #335131).
104
105
106 2007-10-27  Zoltan Varga  <vargaz@gmail.com>
107
108         * reflection.c (methodbuilder_to_mono_method): Revert the last change as it
109         doesn't seem to work perfectly.
110         
111         * reflection.c (ctorbuilder_to_mono_method): Handle the case when this is
112         called multiple times.
113         (methodbuilder_to_mono_method): Ditto.
114         (resolve_object): Inflate FieldBuilder's.
115
116 Fri Oct 26 19:38:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
117
118         * string-icalls.c, string-icalls.h, appdomain.c: patch from
119         Tyler Larson <mono-devel@tlarson.com> to fix the handling of
120         RemoveEmptyEntries in the string.Split implementation (bug #322375).
121
122 2007-10-26  Dick Porter  <dick@ximian.com>
123
124         * appdomain.c (MONO_CORLIB_VERSION): Bump version because of
125         Thread initialisation changes
126
127 2007-10-26 Rodrigo Kumpera <rkumpera@novell.com>
128
129         * verify.c: fix compatibility check between arrays and System.Array
130
131 2007-10-26  Zoltan Varga  <vargaz@gmail.com>
132
133         * reflection.c (mono_reflection_get_custom_attrs_info): Handle MonoGenericClass
134         too. Fixes #336999.
135
136 2007-10-25  Zoltan Varga  <vargaz@gmail.com>
137
138         * object.c (mono_value_box): Use typed allocation here.
139
140 2007-10-23  Zoltan Varga  <vargaz@gmail.com>
141
142         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Create a jump
143         trampoline instead of compiling the method right away.
144
145         * class-internals.h object.c: Add a JIT callback to create a jump trampoline.
146
147 2007-10-21  Zoltan Varga  <vargaz@gmail.com>
148
149         * class.c (mono_generic_class_get_class): Avoid setting klass->size_inited and
150         related fields for dynamic classes. Fixes #334493.
151
152 2007-10-20  Zoltan Varga  <vargaz@gmail.com>
153
154         * class.c (mono_generic_class_get_class): Set klass->field.count as well.
155         
156         * class.c (mono_class_layout_fields): Use 1 instead of TRUE for consistency.
157
158         * class.c (mono_class_layout_fields): Set size_inited for generic classes as well.
159         (mono_class_setup_vtable): Obtain overrides for dynamic generic classes correctly.
160
161         * class.c (mono_class_setup_methods): Handle dynamic inflated classes correctly.
162
163         * reflection.c (create_generic_typespec): Initialize klass->generic_container
164         if needed.
165         (reflection_methodbuilder_to_mono_method): Set container->is_method to TRUE.
166
167 2007-10-18  Jonathan Chambers <joncham@gmail.com>
168
169         * marshal.c: Use correct key when removing item
170         from ccw_hash.
171         
172         Code is contributed under MIT/X11 license.
173
174 2007-10-17  William Holmes  <billholmes54@gmail.com>
175
176         *marshal.c: Adding a case to marshal booleans to U1
177
178         Code is contributed under MIT/X11 license.
179
180 2007-10-18  Zoltan Varga  <vargaz@gmail.com>
181
182         * class.c (mono_class_from_name): Search the modules compromising dynamic
183         assemblies. Fixes #331601.
184
185 2007-10-16  Zoltan Varga  <vargaz@gmail.com>
186
187         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Throw an
188         exception if the type name contains an assembly component. Fixes #334203.
189
190         * reflection.c (mono_reflection_get_type_with_rootimage): Search all the
191         modules inside dynamic assemblies. Fixes #334200.
192         
193         * reflection.c: Set image->public_key and image->public_key_length;
194
195         * metadata-internals.h (MonoDynamicImage): Add public_key and public_key_len
196         fields.
197
198         * image.c (mono_image_get_public_key): Handle dynamic assemblies. Fixes #334173.        
199         
200 2007-10-16  Mark Probst  <mark.probst@gmail.com>
201
202         * metadata.c: Implemented correct comparing of generic classes.
203         An inflated generic class can be equal to a non-inflated one if it
204         is inflated with generic type variables as type arguments.  Fixes
205         bug #333798.
206
207 2007-10-15  Dick Porter  <dick@ximian.com>
208
209         * monitor.c (mono_monitor_try_enter_internal): Set thread state to
210         WaitSleepJoin while it is waiting to acquire a lock.  Fixes bug
211         81646.
212
213         * threads.c: Turn the thread synch_lock into a CRITICAL_SECTION,
214         instead of a monitor lock.  This means that monitor_try_enter and
215         co can set the thread state safely.
216         (ves_icall_System_Threading_Thread_Interrupt_internal): Always set
217         thread_interrupt_requested, so interrupt actually works.
218
219         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal,
220         ves_icall_System_Net_Sockets_Socket_Select_internal): Use thread
221         state accessor function
222
223 2007-10-15  Martin Baulig  <martin@ximian.com>
224
225         * mono-debug.h
226         (MONO_DEBUGGER_VERSION): Bump to 63 to make it impossible to use
227         the debugger with the current runtime.
228
229 Mon Oct 15 10:20:56 CEST 2007 Paolo Molaro <lupus@ximian.com>
230
231         * object.c, object-internals.h: added the ability to set a single
232         trampoline for all the slots in a vtable.
233
234 Fri Oct 12 17:50:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
235
236         * marshal.c: deal with a possible race condition during multicast
237         delegate invocation.
238
239 Fri Oct 12 13:31:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
240
241         * class.c: ensure value type methods don't have the synchronized
242         flag set.
243
244 Fri Oct 12 08:10:59 CEST 2007 Paolo Molaro <lupus@ximian.com>
245
246         * string-icalls.c, string-icalls.h: reverted unapproved patch that
247         breaks the build.
248
249 2007-10-11  Joel Reed  <joelwreed@comcast.com>
250
251         * string-icalls.c, string-icalls.h: modify System_String_InternalSplit
252         to take an options parameter so that empty entries can be removed during
253         the split procedure. Patch from: Tyler Larson <mono-devel@tlarson.com>
254
255 Thu Oct 11 20:16:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
256
257         * marshal.c: make sure we don't store the signature from a dynamic
258         method into the runtime invoke cache (bug #327189).
259
260 Thu Oct 11 18:22:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
261
262         * marshal.c: make sure the wrapper methods are properly initialized.
263
264 2007-10-11  Mark Probst  <mark.probst@gmail.com>
265
266         * metadata.c, metadata-internals.h: Generalized
267         mono_type_stack_size() to mono_type_stack_size_internal() which
268         takes an additional argument specifying whether it allows open
269         types.
270
271 2007-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
272
273         * verify.c (do_invoke_method): handle typedbyref params
274         correctly and check for unverifiable return values.
275
276         * verify.c (do_newobj): fix a warning.
277
278 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
279
280         * verify.c: don't tread typedbyref as allways unverifable,
281         so uses, like (ld/st)loc.0 are valid. verify for the cases
282         that it matters, like boxing related operations.
283
284 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
285
286         * verify.c: add verification of the newobj opcode. verification
287         of delegate instantation still missing due ldftn and virldftn not
288         pushing the function type on stack
289
290 2007-10-08  Mark Probst  <mark.probst@gmail.com>
291
292         * class-internals.h: Runtime generic context data structure
293         definition.
294
295         * object.c: Initialization of runtime generic context at runtime
296         vtable creation time.
297
298 2007-10-08  Massimiliano Mantione  <massi@ximian.com>
299         * class.c (mono_class_create_from_typedef,
300         mono_class_from_generic_parameter, mono_ptr_class_get,
301         mono_fnptr_class_get, mono_bounded_array_class_get)
302         * domain.c (mono_domain_create, mono_domain_free)
303         * assembly.c (mono_assembly_load_from_full, mono_assembly_close)
304         * image.c (do_mono_image_load, mono_image_close):
305         Hooked up load-unload profiler events.
306
307 Mon Oct 8 11:38:04 CEST 2007 Paolo Molaro <lupus@ximian.com>
308
309         * domain.c: track statistics about the actual amount of native code
310         allocated.
311
312 Sat Oct 6 10:01:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
313
314         * class.c: the valuetype enumerators don't have the additional
315         supertypes interfaces.
316
317 Fri Oct 5 20:33:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
318
319         * class.c: need more interfaces setup for the IEnumerator<T>
320         object created for arrays (tests/ienumerator-interfaces.2.cs).
321
322 2007-10-05  Zoltan Varga  <vargaz@gmail.com>
323
324         * class.c (mono_ldtoken): Handle methodspec tokens as well. Fixes #331097.
325
326 2007-10-05  Alp Toker  <alp@atoker.com>
327
328         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
329         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
330         #315863.
331
332 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
333
334         * verify.c (verify_type_compatibility_full): verification of
335         compatibility improved, validates correctly non-strict checks between
336         native int and I4 types different than (unsigned)int32.
337
338         * verify.c (do_store_indirect): added, do all verification of
339         ldind.X opcodes. 
340
341         * verify.c (get_load_indirect_mono_type): renamed to
342         get_indirect_op_mono_type, as it now returns the MonoType for 
343         ldind.X and stind.X opcodes.
344
345 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
346
347         * reflection.c: Fix the encoding of generic type definition for
348         TypeBuilders.
349
350         * reflection.c (mono_image_typedef_or_ref_full: do the same thing as
351         mono_image_typedef_or_ref but allows to specify if typespec lookups should
352         be made. Typespec check is done prior to typeref cache lookup.
353
354         * reflection.c (mono_image_typedef_or_ref): now just delegate to
355         mono_image_typedef_or_ref_full.
356
357         * reflection.c (encode_generic_class): encode the generic class
358         directly instead of calling encode_type.
359
360         * reflection.c (encode_type): encode the generic type definition
361         MonoClass as a generic instantiation.
362
363         * reflection.c (create_typespec): cache typespec tokens in
364         the assembly->typespec cache. Don't create typespec for a generic
365         instance MonoClass. Create typespec for the generic type defintion.
366
367         * reflection.c (create_generic_typespec): encode the generic
368         class directly instead of calling encode_type.
369
370         * reflection.c (mono_image_create_token): encode the generic
371         type definition not using a typespec for MonoType instances.
372
373
374 2007-10-04  Raja R Harinath  <rharinath@novell.com>
375
376         Fix #328812
377         * class.c (mono_image_init_name_cache): Don't return nested
378         'protected internal' classes.
379         (mono_class_from_name_case): Likewise.
380
381 2007-10-04  Atsushi Enomoto  <atsushi@ximian.com>
382
383         * icall-def.h, icall.c : get_bundled_machine_config() is now the
384           common function used by both DefaultConfig in System.dll and
385           InternalConfigurationHost in System.Configuration.dll.
386
387 Wed Oct 3 17:26:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
388
389         * class.c: automatically add to vectors only a few essential explicit
390         generic interfaces. The rest of the interfaces that arrays should
391         provide are currently implicitly added (but still not lazily, see the
392         design in the discussion of bug#325495 for the details of what is
393         needed for that). Additionally, implicit interfaces are assigned the
394         same vtable slot as the explicit interfaces (as they are compatible):
395         this enables huge memory savings since we don't need to instantiate
396         as many memthods and as large vtables anymore. Also, Since
397         GetEnumerator<T> returns an instance of a type that is required to
398         support a similarly large set of interfaces as arrays, we add
399         implicit interfaces and interface offset sharing support to those
400         types, too. This change adds all the required interfaces so that
401         the anonarray.cs test case in the bug report works (we don't add
402         all the interfaces to arrays of arrays 3-level deep and more because
403         of the memory requirements explained in the bug and since they are much
404         less common: the lazy-loading support will enabled them to work, too).
405
406 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
407
408         * verify.c (merge_stacks): major clean up, all type compatibility
409         checks are done by verify_type_compatibility. This fix my earlier lack
410         of understanding of the CLR type system and merge_stacks no longer looks
411         scary.
412
413         * verify.c: fixed some bad spelling.
414
415 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
416
417         * verify.c (mono_type_from_stack_slot): added. returns the MonoType for
418         a given stack slock.
419         
420         * verify.c: killed verify_type_compat in favor of verify_type_compatibility and
421         verify_type_compatibility_full. This removed a near indentical function and fixed
422         handling of Int32 and IntPtr across all opcodes.
423
424 Tue Oct 2 15:24:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
425
426         * class.c: only vectors have the additional generic interfaces.
427
428 2007-10-01  Jonathan Chambers <joncham@gmail.com>
429
430         * mono-config.c: Use g_strcasecmp instead of
431         strcasecmp like everywhere else to fix
432         compilation with MSVC.
433         
434         Code is contributed under MIT/X11 license.
435
436 Mon Oct 1 14:39:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
437
438         * object.c, object-internals.h: refactored the IMT code to enable
439         building a single slot at a time and lazily creating the IMT trampolines
440         and thunks.
441
442 2007-09-29  Zoltan Varga  <vargaz@gmail.com>
443
444         * loader.c (inflate_generic_signature): Allocate inflated signatures from the heap.
445
446         * metadata.c (mono_metadata_free_inflated_signature): Free the signature itself too.
447         Fixes #328501.
448         
449 2007-09-29  Raja R Harinath  <harinath@gmail.com>
450
451         * loader.c (method_from_methodspec): Rearrange to avoid
452         un-necessary exposition.  Don't assert out if the method's
453         declaring type is a generic type definition.
454
455 2007-09-28  Martin Baulig  <martin@ximian.com>
456
457         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 61.
458
459 Fri Sep 28 20:15:47 CEST 2007 Paolo Molaro <lupus@ximian.com>
460
461         * class-internals.h: optimize field layout of MonoClass to
462         requires less cachelines at runtime and save a few bytes on 64 bit
463         systems.
464
465 2007-09-28  Jb Evain  <jbevain@novell.com>
466
467         * reflection.c: when encoding type names in custom attributes,
468         if the type is a closed generic type, its generic arguments
469         have to be serialized as AssemblyQualifiedName, so that when
470         they are deserialized, it's possible to re-create them properly.
471         Fixes #329450.
472
473
474 Fri Sep 28 19:19:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
475
476         * object.c, class-internals.h: added delegate-creation counter.
477
478 Fri Sep 28 18:07:53 CEST 2007 Paolo Molaro <lupus@ximian.com>
479
480         * class.c: cleanup of the code that synthetizes interfaces for
481         arrays in 2.0: saves quit a bit of corlib mempool memory.
482         Code to fix bug #325495 ifdeffed out for now until the issues
483         with memory usage and O(n^2) behaviour are fixed.
484
485 Fri Sep 28 17:19:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
486
487         * marshal.c: when possible, do not duplicate the name of the methods
488         in the method builder and in the generated MonoMethod.
489
490 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
491         * verify.c: added support for type checking ldind_* opcodes.
492
493 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
494
495         * class-internals.h (struct _MonoGenericClass): new field is_tb_open
496         which is used to distinguish the fully open instantiation of a TypeBuilder
497         with the rest. This temporary hack is required to restore the property that
498         the fully open instantiation is the same type of the generic type definition.
499
500         * class-internals.h (mono_generic_class_is_generic_type_definition):
501         new function as part of the internal API.
502
503         * class.c (inflate_generic_type): return NULL when the generic inst is
504         fully open. The fully open generic type is now the same as the generic type
505         definition for non TypeBuilder types.
506
507         * class.c (mono_generic_class_get_class): removed assert since it is
508         no longer valid, gklass->cached_class can point to the generic type definition.
509
510         * class.c (mono_generic_class_is_generic_type_definition): new.
511
512         * metadata.c (mono_generic_class_hash): added is_tb_open field
513         to the hash calculation.
514
515         * metadata.c (free_generic_class): if the generic class is associated
516         with the generic type definition, its field will come from the mempool and
517         must not be freed.
518
519         * metadata.c (mono_metadata_is_type_builder_generic_type_definition):
520         new, this function identifies the corner case of a TypeBuilder fully open
521         instantiation.
522
523         * metadata.c (mono_metadata_lookup_generic_class): use is_tb_open
524         for lookup. Set gclass->cached_class to be the container class in case of
525         the fully open instantiation of non TypeBuilder types.
526
527         * metadata.c (_mono_metadata_generic_class_equal): use is_tb_open
528         to compare generic classes.
529
530         * reflection.c (method_encode_methodspec): remove assert that
531         no longer is valid.
532
533         * reflection.c (mono_reflection_generic_class_initialize): add
534         an aditional assert to ensure the proper type is used.
535
536 2007-09-26  Rodrigo Kumpera  <rkumpera@novell.com>
537
538         * verify.c: disabled all debug spew by default, define MONO_VERIFIER_DEBUG
539         to enjoy it.
540
541 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
542
543         * verify.c (push_arg): Fixed support for ldarga
544         * verify.c (set_stack_value): Removed superfluous parameter, fixed the
545         MonoType used as first arg in case of instance calls.
546
547 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
548
549         * verify.c: Support for verifying VAR and MVAR types, 
550
551 2007-09-25  Zoltan Varga  <vargaz@gmail.com>
552
553         * icall.c (ves_icall_get_property_info): Set the reflected type of the
554         accessors correctly.
555
556 Tue Sep 25 14:56:03 CEST 2007 Paolo Molaro <lupus@ximian.com>
557
558         * threads.c: support OSX and other systems in
559         mono_thread_get_stack_bounds (bug #328026).
560
561 2007-09-25  Martin Baulig  <martin@ximian.com>
562
563         * mono-debug.h
564         (MonoDebugVarInfo): Replace `MonoClass *klass' with `MonoType *type'.
565
566 2007-09-24  Martin Baulig  <martin@ximian.com>
567
568         * mono-debug.h
569         (MonoDebugClassEntry): Moved the definition of this struct into
570         mono-debug.c to make it private.
571
572         * mono-debug.c
573         (MonoDebugClassEntry): Removed `symfile_id'; since we now use one
574         type table per symbol file, we don't need to store the symfile id
575         any longer.
576
577 2007-09-24  Martin Baulig  <martin@ximian.com>
578
579         Create one type table per symbol file, since a `MonoClass *' gets
580         invalid when its image is unloaded.
581
582         * mono-debug.h (MonoSymbolTable): Removed `type_table'.
583         (MonoDebugHandle): Added `type_table'.
584
585 Mon Sep 24 17:25:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
586
587         * mempool.c, mempool.h: added mono_mempool_new_size () API
588         to be able to specify a smaller initial size for the pool.
589         Adjusted the code to slowly increase pool size before using
590         the previous default size.
591         * image.c: use a small initial size for image mempools.
592
593 2007-09-23  Zoltan Varga  <vargaz@gmail.com>
594
595         * marshal.c (emit_marshal_array): Generate valid IL for byref array case.
596         Fixes ##320990.
597
598         * icall.c (ves_icall_System_Reflection_Assembly_get_ManifestModuleInternal): 
599         Rename this to ves_icall_System_Reflection_Assembly_GetManifestModuleInternal.
600
601 2007-09-22  Zoltan Varga  <vargaz@gmail.com>
602
603         * metadata.c (mono_type_create_from_typespec): Remove an invalid
604         free. Fixes #327438.
605
606 2007-09-21  Raja R Harinath  <harinath@gmail.com>
607
608         * metadata.c (type_in_image) <MONO_TYPE_SZARRAY>: Handle arrays of
609         generic instantiations, etc.
610         <MONO_TYPE_ARRAY>: Likewise.
611
612 2007-09-21  Martin Baulig  <martin@ximian.com>
613
614         * mono-debug.h (MonoSymbolFilePriv, MonoDebugHandlePriv): Removed;
615         these structs were never defined.
616         (MonoDebugHandle): Removed the `_priv' field, it was never used.
617
618 2007-09-21  Martin Baulig  <martin@ximian.com>
619
620         * mono-debug.h (MonoDebugVarInfo): Add `MonoClass *klass'.
621
622 Fri Sep 21 14:39:45 CEST 2007 Paolo Molaro <lupus@ximian.com>
623
624         * image.c: removed the guid hash tables: we can get the same info
625         without the additional memory usage hit (partially fixes also bug #327052).
626
627 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
628
629         * profiler.h, profiler-private.h, profiler.c: add a new profiler
630         event to handle unloading methods. After the event is called, the
631         corresponding MonoMethod* must be considered invalid.
632         * loader.c (mono_free_method): call the new mono_profiler_method_free
633         event.
634
635 2007-09-20  Mark Probst  <mark.probst@gmail.com>
636
637         * domain-internals.h: New flag in MonoJitInfo which marks shared
638         generic methods.  New hash table (shared_generics_hash) in
639         MonoDomain to keep track of shared generic methods.  Prototypes
640         for functions to register and lookup shared generic methods.
641
642         * domain.c: Support for registering and looking up shared generic
643         methods via a hash table (shared_generics_hash) in MonoDomain.
644
645         * class-internals.h: New exception to signal failure of shared
646         compilation of a generic method.  New counters for generics
647         sharing in MonoStats.
648
649 Thu Sep 20 16:59:36 CEST 2007 Paolo Molaro <lupus@ximian.com>
650
651         * image.c, metadata-internals.h: don't keep a file descriptor open
652         for loaded assemblies (bug#325988).
653
654 2007-09-19  Raja R Harinath  <rharinath@novell.com>
655
656         * metadata.c (signature_in_image): New.  Carve out of type_in_image.
657         (ginst_in_image, gclass_in_image): Simplify.  Change signature to
658         use the corresponding datatypes.
659         (type_in_image): Update to changes.
660         (CleanForImageUserData): Simplify.
661         (steal_gclass_in_image): Carved out of old 'gclass_in_image'.
662         Avoid quadratic behaviour in handling the "stolen" list by
663         separating the filter predicate out, and by prepending the stolen
664         items rather than appending them.
665         (steal_ginst_in_image): Likewise.
666         (mono_metadata_clean_for_image): Update to changes.
667
668 2007-09-19  Martin Baulig  <martin@ximian.com>
669
670         * domain.c (mono_cleanup): Call mono_debug_cleanup() here.
671
672 2007-09-19  Martin Baulig  <martin@ximian.com>
673
674         * mono-debug.c (mono_debug_cleanup): Don't call
675         mono_debugger_cleanup(); this is now called earlier from mini_cleanup().
676
677 2007-09-19  Raja R Harinath  <harinath@gmail.com>
678
679         Fix crash on 'make run-test' in mcs/errors
680         * metadata.c (type_in_image): New.  Carve out of ginst_in_image.
681         Avoid more potential allocations in mono_class_from_mono_type.
682         (ginst_in_image): Update to changes.
683         (gclass_in_image): Rearrange slightly.
684
685 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
686
687         * class.c (mono_class_init): Move the code that sets up class->methods to 
688         mono_class_setup_methods () for inflated generic classes too. Ditto for properties.
689
690         * metadata.c (mono_metadata_get_inflated_signature): New function to return a
691         canonical instance of an inflated generic signature.
692         (mono_type_create_from_typespec): Remove an invalid free.
693
694         * loader.c (mono_method_get_signature_full): Use mono_metadata_get_inflated_signature.  
695
696 2007-09-18  Marek Habersack  <mhabersack@novell.com>
697
698         * domain-internals.h: added a declaration of the
699         mono_assembly_load_full_nosearch internal function.
700
701         * assembly.c (mono_assembly_load_with_partial_name): use
702         mono_try_assembly_resolve return value properly.
703         (mono_assembly_load_full_nosearch): copied the function body from
704         mono_assembly_load_full, without the code to invoke assembly
705         search hooks.
706         (mono_assembly_load_full): calls the above new function and if the
707         assembly is not resolved, invokes the search hooks.
708
709         * appdomain.c (mono_runtime_init): restore the global postload
710         assembly search handlers.
711
712 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
713
714         * class.c (mono_class_init): Make sure class->methods and class->properties
715         are never NULL in the generics case.
716
717         * metadata.c (free_generic_class): Enable this again, skip the dynamic case.
718
719 2007-09-17  Zoltan Varga  <vargaz@gmail.com>
720
721         * metadata.c (free_generic_class): Disable some code to fix the build.
722
723         * domain.c (mono_cleanup): Fix a crash introduced by a previous patch.
724
725         * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data
726         from the image mempool.
727
728         * metadata.c (free_generic_class): Free more data from the inflated class.
729
730         * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool.
731
732         * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
733         mempool.
734         (mono_type_create_from_typespec): Ditto.
735
736         * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
737         MonoImage to the caller.
738         (mono_init_internal): Save the opened image in a global variable.
739         (mono_cleanup): Close the image opened in get_runtimes_from_exe.
740
741         * reflection.c (resolve_object): Fix a leak.
742
743         * metadata.c: Fix the freeing of data in the generics caches.
744         
745         * metadata.c (free_generic_inst): Comment this out to fix the build.
746         (free_generic_class): Ditto.
747
748         * metadata.c: Free cached generic methods, instantinations and classes when
749         they are removed from the caches.
750         (mono_metadata_free_type): Free the type itself.
751
752         * class.c: Free the result of mono_class_inflate_generic_type () in a few
753         places.
754
755 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
756
757         * boehm-gc.c: restrict managed allocs to __thread supporting
758         architectures.
759
760 2007-09-16  Zoltan Varga  <vargaz@gmail.com>
761
762         * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
763         (mono_generic_class_get_class): Fix a leak.
764
765         * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
766         mono_metadata_free_type ().
767         (mono_metadata_inflate_generic_inst): Fix a leak.
768
769 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
770
771         * mono-debug.c (free_header_data): Fix a leak missed earlier.
772
773         * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
774         mempool.
775
776         * mono-debug.c (mono_debug_close_image): Fix call to 
777         g_hash_table_remove ().
778
779 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
780
781         * icall-def.h: redirect all the string ctor to the managed
782         CreateString () methods.
783         * string-icalls.c, string-icalls.h: removed dead code for string
784         ctors and icalls.
785
786 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
787
788         * mono-debug.c: Fix memory leaks.
789
790 2007-09-14  Jonathan Chambers <joncham@gmail.com>
791
792         * threads-types.h: Implement mono_hazard_pointer_set and 
793         mono_hazard_pointer_clear macros using do/while(0) to fix
794         compilation with MSVC.
795         
796         Code is contributed under MIT/X11 license.
797
798 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
799
800         * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
801         -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
802
803 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
804
805         * icall-def.h, string-icalls.c: get rid of old, no longer used, string
806         icalls.
807
808 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
809
810         * boehm-gc.c, gc-internal.h, object.c: allow strings to be
811         managed-code allocated as well.
812
813 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
814
815         * class.c (mono_class_is_assignable_from): Add support for generic variance.
816
817 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
818
819         * boehm-gc.c: fixed the build after the AOT changes.
820
821 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
822
823         * wrapper-types.h: Add an ALLOC wrapper type.
824
825         * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
826         reference managed allocator methods.
827
828 2007-09-12  Marek Safar  <marek.safar@gmail.com>
829
830         * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
831         of Type array and not MonoType, a fix suggested by Hari.
832         
833 2007-09-12  Jonathan Chambers <joncham@gmail.com>
834
835         * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
836         and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
837         
838         Code is contributed under MIT/X11 license.
839
840 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
841
842         * domain.c, object.c, mono-config.c, object-internals.h: Fixed  #82416.
843
844 2007-09-12  Marek Habersack  <mhabersack@novell.com>
845
846         * image.c (do_mono_image_open): if assembly file fails to open and
847         MONO_IOMAP is in effect, try to find the path in a
848         case-insensitive way.
849
850         * appdomain.c (mono_runtime_init): do not install postload hooks -
851         tests show that MS.NET doesn't use anything of that sort to
852         trigger the AppDomain.AssemblyResolve event.
853         (mono_try_assembly_resolve): renamed from try_assembly_resolve and
854         made non-static.
855         (mono_runtime_init): init portability helpers here.
856
857         * assembly.c (mono_assembly_load_with_partial_name): if other   
858         attempts fail, trigger the AppDomain.AssemblyResolve event handler
859         to resolve the assembly.
860
861         * domain-internals.h: added mono_try_assembly_resolve and marked
862         it as internal.
863
864 2007-09-11  Jb Evain  <jbevain@novell.com>
865
866         * object-internals.h (MonoReflectionDynamicMethod): add
867         a `MonoReflectionType *owner` field. The owner is used
868         * reflection.c:
869         (mono_reflection_create_dynamic_method): use the owner of the dynamic
870         method as the class declaring the dynamic method.
871         (reflection_methodbuilder_from_dynamic_method): copy the owner of the
872         dynamic method to the declaring type of the methodbuilder.
873
874 2007-09-11  Mark Probst  <mark.probst@gmail.com>
875
876         * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
877         rules for calling methods via reflection.
878
879 2007-09-11  Zoltan Varga  <vargaz@gmail.com>
880
881         * reflection.c (resolve_object): Add support for MonoGenericClass. 
882         Inflate MonoType's.
883
884 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
885
886         * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
887         provide a managed method that does fast allocations without needing
888         a managed->unmanaged transition. Boehm GC implementation currently
889         enabled for ptrfree objects on sane architectures.
890
891 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
892
893         * marshal.c, marshal.h: exported a couple of useful functions and
894         added mono_mb_get_label () to easily handle backward branches.
895
896 2007-09-10  Zoltan Varga  <vargaz@gmail.com>
897
898         * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
899
900 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
901
902         * loader.c (find_method): Fixed the regression introduced while
903         fixing bug #81466.
904
905 2007-09-09  Zoltan Varga  <vargaz@gmail.com>
906
907         * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
908         well.
909         
910         * class.c loader.c metadata.c object.c class-internals.h object-internals.h
911         icall.c reflection.c: Pass a MonoGenericContext argument to 
912         mono_lookup_dynamic_token ().
913
914         * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
915         #82744.
916         
917 2007-09-09  Robert Jordan  <robertj@gmx.net>
918
919         * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
920         for generic methods.
921
922         * object.c (mono_object_get_virtual_method): Handle generic methods.
923         Fixes bug #78882.
924
925         Code is contributed under MIT/X11 license.
926
927 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
928
929         * image.c: fix locking in mono_image_load_file_for_image ().
930
931 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
932
933         * reflection.c, icall.c, icall-def.h: the methodinfos name field is
934         used only as a cache: added an icall to fill it.
935
936 2007-09-16  Rodrigo Kumpera  <rkumpera@novell.com>
937
938         * reflection.h: exposed mono_reflection_free_type_info
939         * reflection.c (mono_reflection_get_type_internal): type_args is always freed
940         since mono_reflection_bind_generic_parameters makes a copy of it.
941         * reflection.c (free_type_info): subinfos should be freed.
942         * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and 
943         made non static.
944         * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
945         replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
946         this fixes #82695 and #81726.
947    
948
949 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
950
951         * process.h, process.c:  added support for user profile/info in
952           ProcessStartInfo. For now only Windows works.
953
954 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
955
956         * metadata.c: consider the generic arguments when comparing
957         signatures (bug #82614).
958
959 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
960
961         * cil-coff.h, image.c: updated assembly loader to cope with the
962         PE32+ 64 bit file format.
963
964 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
965
966         * assembly.c, class.c, domain.c, loader.c: remove useless
967         inclusion of cil-coff.h.
968
969 2007-08-29  Jonathan Chambers  <joncham@gmail.com>
970
971         * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
972         if interface is marked with CoClassAttribute. 
973    
974         Code is contributed under MIT/X11 license.
975
976 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
977
978         * sgen-gc.c: ensure no object from the to space is copied again or finalized
979         if it's seen twice in major collections.
980
981 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
982
983         * sgen-gc.c: big objects are not copied to the gray area, but they
984         need to be considered for scanning, too, if they are brought alive
985         by an object ready for finalizations or a survived one.
986
987 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
988
989         * sgen-gc.c: properly account the number of disappearing links when
990         they are nullified.
991
992 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
993
994         * sgen-gc.c: share the code to scan the registered roots between the
995         different types of collections.
996
997 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
998
999         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
1000
1001 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
1002
1003         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
1004         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
1005
1006 2007-08-28  Mark Probst  <mark.probst@gmail.com>
1007
1008         * security-manager.c (mono_security_manager_get_methods):
1009         LinkDemandSecurityException now has 2 arguments instead of 3.
1010
1011 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
1012
1013         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
1014         platforms which need it.
1015
1016 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
1017
1018         * sgen-gc.c: unregister thread data structures with a pthread_key_t
1019         dtor.
1020
1021 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
1022
1023         * threads.c: free the thread static data on thread exit.
1024
1025 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
1026
1027         * class.c: walk the hierarchy to find the generic definition for
1028         a class (fixes runtime part of bug #82498).
1029
1030 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
1031
1032         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
1033         ...
1034
1035         * image.c (mono_image_close): Here. Hopefully fixes #82510.
1036
1037 2007-08-24  Mark Probst  <mark.probst@gmail.com>
1038
1039         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
1040
1041 2007-08-24  Robert Jordan  <robertj@gmx.net>
1042
1043         * appdomain.c: don't perform the ':'->';' substitution on Win32.
1044
1045 2007-08-24  Jb Evain  <jbevain@novell.com>
1046
1047         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
1048         for byref types.
1049
1050 2007-08-24  Mark Probst  <mark.probst@gmail.com>
1051
1052         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
1053         #82286.
1054
1055 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
1056
1057         * assembly.c: Fix a warning.
1058         
1059 2007-08-23  Marek Habersack  <mhabersack@novell.com>
1060
1061         * appdomain.c: parse the <runtime> section looking for the probing
1062         element with the 'privatePath' attribute, which sets additional
1063         directories in which the runtime should look for assemblies.
1064
1065 2007-08-23  Robert Jordan  <robertj@gmx.net>
1066
1067         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
1068         Fixes #82499.
1069
1070 2007-08-23  Martin Baulig  <martin@ximian.com>
1071
1072         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
1073         _mono_debug_init_corlib() and remove it from the header file.
1074
1075 2007-08-23  Martin Baulig  <martin@ximian.com>
1076
1077         * mono-debug-debugger.c
1078         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
1079         don't notify the debugger about it.
1080
1081         * mono-debug-debugger.h
1082         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
1083
1084 2007-08-23  Robert Jordan  <robertj@gmx.net>
1085
1086         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
1087         Code is contributed under MIT/X11 license.
1088
1089 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
1090
1091         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
1092
1093 2007-08-22  Martin Baulig  <martin@ximian.com>
1094
1095         * mono-debug.c: Store debugging info on a per-domain basis and
1096         free it on domain unload.  Add support for unloading symbol files.
1097
1098         * mono-debug.h
1099         (MonoDebugList): New typedef.
1100         (MonoSymbolTable):
1101         - add `data_tables and `type_table'.
1102         - replace 'symbol_files' and `num_symbol_files' with a
1103           `MonoDebugList *'.
1104         (mono_debug_data_table): Removed.
1105         (mono_debug_list_add): New public function.
1106         (mono_debug_list_remove): New public function.
1107         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
1108         (mono_debug_init_2_memory): Renamed into
1109         mono_debug_open_image_from_memory().
1110         (mono_debug_close_image): New public function.
1111         (mono_debug_domain_create): Likewise.
1112         (mono_debug_domain_unload): Likewise.
1113         (MONO_DEBUGGER_VERSION): Bump to 60.
1114
1115         * mono-debug-debugger.h
1116         (MonoDebuggerEvent):
1117         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
1118         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
1119         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
1120         - rename `THREAD_CREATED' and `THREAD_EXITED' into
1121           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
1122         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
1123           meaning.
1124         (mono_debugger_add_symbol_file): Removed.
1125         (mono_debugger_add_type): Removed.
1126         (mono_debugger_lookup_type): Removed.
1127         (mono_debugger_lookup_assembly): Removed.
1128
1129         * domain.c
1130         (mono_domain_create): Call mono_debug_domain_create().
1131         (mono_init_internal): Call mono_debug_init_corlib().
1132
1133         * assembly.c
1134         (mono_assembly_close): Call mono_debug_close_image().
1135
1136 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
1137
1138         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
1139         mmap call.
1140
1141 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
1142
1143         * sgen-gc.c: ensure section->pin_queue_end is initialized
1144         correctly when non pinning objects in the section have been found.
1145
1146 2007-08-22  Marek Habersack  <mhabersack@novell.com>
1147
1148         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
1149         containing a list of directories separated by ':'. MSDN docs say
1150         the directories should be separated with ';'. Part of a bugfix for
1151         bug #81446
1152
1153 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
1154
1155         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
1156         it should MonoType and not MonoClass.
1157
1158 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
1159
1160         * culture-info-table.h : regenerated.
1161
1162 2007-08-20  William Holmes  <billholmes54@gmail.com>
1163
1164         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
1165          to call ReplaceFile Kernel32 on windows or in io-layer.
1166         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
1167         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
1168          as an internal call.
1169
1170         Code is contributed under MIT/X11 license.
1171
1172 2007-08-20  Jb Evain  <jbevain@novell.com>
1173
1174         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
1175         and MONO_EXCEPTION_FIELD_ACCESS.
1176
1177         * debug-helpers.[c|h]: new mono_field_full_name function.
1178
1179 2007-08-20  Mark Probst  <mark.probst@gmail.com>
1180
1181         * class.c: Removed class_security_level() and moved it to
1182         security-core-clr.c.
1183
1184         * security-core-clr.c, security-core-clr.h: class_security_level()
1185         is now public and renamed to mono_security_core_clr_class_level().
1186         It also looks for security attributes in the classes a class is
1187         nested in.
1188
1189 2007-08-20  Mark Probst  <mark.probst@gmail.com>
1190
1191         * security-core-clr.c, security-core-clr.h: CoreCLR security
1192         utility functions.
1193
1194         * Makefile.am: Added security-core-clr.[ch].
1195
1196         * security-manager.c, security-manager.h: Functions and enum for
1197         setting and getting the security mode.
1198
1199         * class.c: CoreCLR security checks.
1200
1201 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
1202
1203         * icall-def.h, process.c, process.h: implemented icall to get
1204         user/system processor times.
1205
1206 2007-08-17  Mark Probst  <mark.probst@gmail.com>
1207
1208         * domain.c, threads.c, class-internals.h, domain-internals.h: New
1209         reader-lock-free jit_info_table.
1210
1211 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
1212
1213         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
1214
1215         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
1216
1217         * object-internals.h (MonoException): Add missing _data member.
1218
1219 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
1220
1221         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
1222         checking that only methods with matching qname or fqname are picked
1223         from implemented interfaces.
1224
1225 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
1226
1227         * verify.c (do_newarr):added, do type verification of
1228         newarr ops, push the right value on the eval stack.
1229         * verify.c (mono_method_verify): use do_newarr
1230
1231
1232 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
1233
1234         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
1235         factored the common code into get_boxable_mono_type, which
1236         is now using mono_type_get_full, this fixed byref related tests.
1237
1238 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
1239
1240         * class.c: added mono_type_get_full, this function has the same
1241         behavior of mono_class_get_full but the returned MonoType has
1242         all metadata of the associated token in case of a typespec token.
1243         * class.c: added mono_type_retrieve_from_typespec, used by 
1244         mono_type_get_full to retrieve the token type.
1245         * class.c (mono_class_create_from_typespec): changed to use
1246         mono_type_retrieve_from_typespec.
1247         * class.c (mono_ldtoken): changed to use mono_type_get_full
1248         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
1249         * class-internals.h: exported mono_type_get_full for internal use.
1250
1251 2007-08-16  Jb Evain  <jbevain@novell.com>
1252
1253         * domain.c (supported_runtimes): add entry for
1254         the 'moonlight' runtime version.
1255
1256 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
1257
1258         * verify.c (mono_method_verify): small typo sliped in.  
1259
1260 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
1261
1262         * verify.c (do_unbox_value): added, do type verification of
1263         unboxing ops
1264         * verify.c (mono_method_verify): use do_unbox_value
1265
1266
1267 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
1268
1269         * verify.c (dump_stack_value): fixed typo, was printing string
1270         instead of object on stack.
1271         * verify.c (do_box_value): moved the byref check up as it leads
1272         to invalid code and should be done earlier.
1273         * verify.c: improved error messages for and ldobj
1274
1275 2007-08-15  William Holmes  <billholmes54@gmail.com>
1276
1277         * marshal.c (emit_marshal_custom): Omit the call to 
1278           marshal_native_to_managed when calling native to managed 
1279           and the argument is specified as an out argument.
1280
1281         Code is contributed under MIT/X11 license.
1282
1283 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
1284
1285         * verify.c: fixed the type checks for generics, function pointers and vectors.
1286         Added type verification for ldobj and ldtoken. The verifier
1287         would segfault if header or signature of a method contained references
1288         to non-existant types.
1289
1290 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
1291
1292         * marshal.c (cominterop_get_ccw): Patch from
1293         Bill Holmes to no walk up interface hierarchy. 
1294         All parent methods should be present in the interface for COM.
1295    
1296         Code is contributed under MIT/X11 license.
1297
1298 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
1299
1300         * marshal.c (emit_marshal_com_interface): Patch from
1301         Bill Holmes to handle COM Interfaces as return values
1302         for native->managed calls.
1303    
1304         Code is contributed under MIT/X11 license.
1305
1306 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
1307
1308         * marshal.c (cominterop_get_idispatch_for_object): Implement
1309         for runtime callable wrappers.
1310    
1311         Code is contributed under MIT/X11 license.
1312
1313 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
1314
1315         * pedump.c (main): changed from mono_init to mono_init_from_assembly
1316         so 2.0 types are accessible
1317
1318
1319 2007-08-13  Miguel de Icaza  <miguel@novell.com>
1320
1321         * domain.c (mono_init_internal): Call mono_assembly_load_friends
1322         once we load mscorlib.   Due to the order in which we initialize,
1323         the mono_assembly_load_full routine that loads mscorlib did not
1324         load friends.   We now load it once we load the
1325         mono_defaults.internals_visible_class class. 
1326
1327         * assembly.c: Expose the mono_load_friend_assemblies method.
1328
1329 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
1330
1331         * verify.c: improved the handling of boxing, better
1332         type checking for unary ops and conversion. Fix bug
1333         regarding managed pointer compatibility checking
1334
1335 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
1336
1337         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
1338
1339         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
1340
1341 2007-08-09  Raja R Harinath  <rharinath@novell.com>
1342
1343         * reflection.c (dup_type): Remove.
1344         * class.c (dup_type): Remove.
1345         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
1346         instead of the dodgy 'dup_type'.
1347         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
1348         handle the case where 'dup_type' needed the second argument.
1349
1350 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
1351
1352         * domain.c: Fix a warning.
1353
1354 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
1355
1356         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
1357         checking that methods with the same fqname are not overridden
1358         with a method from an ancestor.
1359
1360 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
1361
1362         * threads.c (free_thread_static_data_helper): Avoid a crash if
1363         thread->static_data is not yet set.
1364
1365 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
1366
1367         * marshal.c: Use correct image when emitting
1368         native wrapper for COM calls.
1369    
1370         Code is contributed under MIT/X11 license.
1371
1372 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
1373
1374         * icall-def.h, security.c, security.h :
1375           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
1376
1377 2007-08-07  Martin Baulig  <martin@ximian.com>
1378
1379         * mono-debug-debugger.h
1380         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
1381
1382         * domain.c (mono_domain_free): Call
1383         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
1384
1385 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
1386
1387         * verify.c (check_underflow, check_overflow): error message now returns IL offset
1388         * verify.c (in_same_block): code should test if either offset is inside the clauses
1389         * verify.c (mono_method_verify): push the exception into the eval stack of exception
1390         and filter blocks
1391
1392 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
1393
1394         * image.c (mono_image_close): Fix a leak.
1395
1396         * object.c (mono_runtime_invoke_array): Avoid using alloca.
1397
1398         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
1399
1400 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
1401
1402         * domain.c, threads.c, threads-types.h: fix memory retention issue
1403         with thread static variables not being cleared on domain unload.
1404         Reuse thread static slots after domain unload.
1405
1406 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
1407
1408         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
1409         nullable type.
1410
1411         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
1412         now done in mono_runtime_invoke_array.
1413
1414         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
1415         receiver is a nullable type.
1416
1417         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
1418         generic parameter.
1419
1420 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
1421
1422         * marshal.c: Implement COM Objects as return type for 
1423         managed->unmanaged calls. Added Release calls for COM Object
1424         out/return values in managed->unmanaged calls.
1425
1426         Code is contributed under MIT/X11 license.
1427
1428 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
1429
1430         * threads.h, threads-type.h: move the hazard pointer declarations
1431         to the private header.
1432
1433 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
1434
1435         * file-io.c, appdomain.c: memory leak fixes.
1436
1437 2007-08-02  Dick Porter  <dick@ximian.com>
1438
1439         * socket-io.c
1440         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
1441         SO_REUSEADDR setting into io-layer/sockets.c.
1442
1443 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
1444
1445         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
1446         from Object when called on a generic parameter. Fixes #82211.
1447
1448 2007-08-01  Dick Porter  <dick@ximian.com>
1449
1450         * file-io.c (convert_share): Test FileShare values bit-by-bit.
1451         Fixes bug 79250 yet again.
1452
1453 2007-07-30  Martin Baulig  <martin@ximian.com>
1454
1455         Merged the `debugger-dublin' branch.
1456
1457         * mono-debug.h
1458         (MonoDebugDataTable): New typedef.
1459         (MonoDebugMethodAddressList): New typedef.
1460         (MonoDebugWrapperData): Removed.
1461         (MonoDebugSymbolTable): Removed `current_data_table',
1462         `current_data_table_size', `current_data_table_offset'.
1463         (MonoDebugDataItemType): Moved into mono-debug.c.
1464         (MonoDebugMethodJitInfo): Remove `address'.
1465         (mono_debug_data_table): New global variable.
1466         (mono_debug_lookup_method_addresses): New public function.
1467         (mono_debug_find_method): Take a `MonoMethod *', not a
1468         `MonoDebugMethodInfo *'.
1469
1470         * mono-debug.c: Drop support for the old symbol tables.
1471
1472 2007-06-28  Martin Baulig  <martin@ximian.com>
1473
1474         * mono-debug.c (mono_debug_debugger_version): New public variable.
1475
1476 2007-07-31  William Holmes  <billholmes54@gmail.com>
1477
1478         * metadata.c Changed mono_type_create_from_typespec to not insert
1479           the type into the hash map until after
1480           do_mono_metadata_parse_type has completed.
1481         Fixes Bug #82194
1482         Code is contributed under MIT/X11 license.
1483
1484 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
1485
1486         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
1487         generic parameter. Fixes #82211.
1488
1489 2007-07-27  Jb Evain  <jbevain@novell.com>
1490
1491         * pedump.c (dump_metadata, dump_metadata_header): dump
1492         versions contained in the metadata header.
1493
1494 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
1495
1496         * threads.c: register small_id_table with the GC.
1497
1498 2007-07-27  Mark Probst  <mark.probst@gmail.com>
1499
1500         * threads.c, threads.h, class-internals.h, object-internals.h:
1501         Hazard pointers, to be used by lock-free parallel algorithms.
1502
1503 2007-07-26  Dick Porter  <dick@ximian.com>
1504
1505         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
1506         routine on non-windows platforms, as I've not managed to think of
1507         a non-kludgy way of doing this.  Finishes off bug 78739.
1508
1509 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
1510
1511         * object.c: properly setup interface_bitmap in proxy vtables.
1512
1513 2007-07-25  Marek Habersack  <mhabersack@novell.com>
1514
1515         * appdomain.c (get_shadow_assembly_location): do not use TickCount
1516         to create unique shadow copy target directories, use the domain's
1517         serial number instead. Each domain gets a unique target directory
1518         that way.
1519
1520         * domain.c (mono_domain_create): added code to increment domain
1521         shadow copy serial number and cache the value in the current
1522         domain structure.
1523
1524         * domain-internals.h (struct _MonoDomain): added a new field -
1525         shadow_serial to hold the serial number used in generation of
1526         shadow-copy directories. This is to make sure that the directory
1527         name is unique for each and every domain created. We avoid a race
1528         condition with overriding assemblies already in use by other app
1529         domains.
1530
1531 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
1532
1533         * class.c (mono_bounded_array_class_get): fixed memory leak when 
1534         binding generic parameters.
1535
1536 2007-07-24  Raja R Harinath  <rharinath@novell.com>
1537
1538         * metadata.c (do_mono_metadata_parse_generic_class): Use
1539         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
1540         error.
1541
1542 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
1543
1544         * loader.c, class-internals.h, reflection.c: removed the per-method
1545         generics hashtable: we use the global one through the call of
1546         mono_class_inflate_generic_method ().
1547
1548 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
1549
1550         * class.c, metadata.c, class-internals.h: introduce yet another
1551         generics global cache for inflated methods (fixes 98% of the perf
1552         issue in bug #81806).
1553
1554 2007-07-23  Raja R Harinath  <rharinath@novell.com>
1555
1556         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
1557         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
1558         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
1559         return a MonoGenericInst containing (a copy) of those types.
1560         (mono_metadata_inflate_generic_inst): Update to changes.
1561         (mono_metadata_parse_generic_inst): Likewise.
1562         (mono_get_shared_generic_inst): Likewise.
1563         * reflection.c (mono_class_bind_generic_parameters): Likewise.
1564         (mono_reflection_bind_generic_method_parameters): Likewise.
1565         * metadata-internals.h: Likewise.
1566         * icall.c (free_generic_context): Kill.
1567         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
1568
1569         * reflection.c (reflection_methodbuilder_to_mono_method): Use
1570         mono_metadata_type_dup.
1571         * marshal.c (mono_mb_create_method): Likewise.
1572
1573         * metadata.c (mono_metadata_type_dup): Rename from
1574         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
1575         MonoImage.  Handle a few more cases, esp. when no mempool is given.
1576         * marshal.c, metadata-internals.h: Update to changes.
1577
1578 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
1579
1580         * class.c: fixed a small leak for array classes and removed warning.
1581
1582 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
1583
1584         * loader.c (mono_method_get_param_token): Make this work on generic methods.
1585         Return 0x8000000 for return parameters. Fixes #82161.
1586
1587 2007-07-21  Marek Habersack  <grendello@gmail.com>
1588
1589         * appdomain.c (get_shadow_assembly_location): append the current
1590         ticks value to the path. Avoids overwriting the same assemblies by
1591         several threads at the same time.
1592
1593 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
1594         and Raja R Harinath  <rharinath@novell.com>
1595
1596         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
1597         Simplify slightly.
1598         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
1599         property for testing if a method is a generic method definition.
1600
1601 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
1602
1603         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
1604
1605 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1606
1607         * verify.c: used function from private branch, reverted to the one in class.h 
1608
1609 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1610
1611         * verify.c: a typo slipped in and the code wont compile
1612
1613 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1614
1615         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
1616         disabled box instruction as it is doing the wrong thing
1617         improved stack dump messages, now it is easier to debug type related issues
1618
1619
1620 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
1621
1622         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
1623
1624 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1625
1626         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
1627         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
1628         grouped with class and valuetype. This change will simply 
1629         the code as it should be handled just like unmanaged pointers.
1630
1631 2007-07-19  Mark Probst  <mark.probst@gmail.com>
1632
1633         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
1634
1635 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1636
1637         * verify.c: several stack merge issues fixed, reference comparisons now
1638         check the type size. strict type check now works correctly.
1639         added more uses of IS_MANAGED_POINTER macro.
1640         fixed issues pointed by running the test suite against .net.
1641         
1642
1643 2007-07-19  Mark Probst  <mark.probst@gmail.com>
1644
1645         * class.c, loader.c, class-internals.h: Removed the
1646         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
1647         defines.
1648
1649         * icall.c: Better error checking in some internal reflection
1650         methods.
1651
1652 2007-07-18  William Holmes  <billholmes54@gmail.com>
1653
1654         * filewatcher.c : removed unused variable 'filename' in 
1655           ves_icall_System_IO_FSW_SupportsFSW
1656
1657 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
1658
1659         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
1660         obsolete, removed.
1661
1662 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
1663
1664         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
1665         
1666         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
1667
1668 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
1669
1670         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
1671         Implement generics support.
1672         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
1673
1674         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
1675         type_args and method_args arguments.
1676         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
1677         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
1678         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
1679
1680 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
1681
1682         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
1683           It adds a rootimage parameter to mono_reflection_get_type_internal,
1684           adds new function mono_reflection_get_type_with_rootimage and use
1685           the rootimage to resolve the types instead of the current image
1686
1687 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1688
1689         * culture-info-table.h: Forgot to update after r78304.
1690
1691 2007-07-13  Raja R Harinath  <rharinath@novell.com>
1692
1693         * class.c (mono_class_is_open_constructed_type)
1694         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
1695
1696 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
1697
1698         * class.c (mono_bounded_array_class_get):  method fails if used with
1699         an incomplete TypeBuilder enum (no basetype field), fixed it by 
1700         avoiding calculating the size for such array as it cannot be instantiated.
1701         Fix bug #82015
1702
1703 2007-07-12  Raja R Harinath  <rharinath@novell.com>
1704
1705         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
1706         field.
1707         * metadata.c, reflection.c: Update to changes.
1708
1709 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
1710
1711         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
1712         mono_class_is_valid_enum, they are used to valide a enum when loading.
1713         * reflection.c: used new functions to throw TypeLoadException when and
1714         invalid enum is build with TypeBuilder. Fixes #82018
1715   
1716 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
1717
1718         * object.c: forgot commit of mono_class_setup_methods () to access
1719         iface->methods.
1720         * object-internals.h: added a few more handy fields to
1721         MonoIMTCheckItem.
1722
1723 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
1724
1725         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
1726         iface->methods.
1727
1728 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
1729
1730         * class-internals.h, object-internals.h, object.c: IMT-based
1731         interface invocation core from Massimiliano Mantione
1732         (massi@ximian.com) with a reworked arch-specific interface,
1733         bsearch implementation and a few bugfixes and memory savings by me.
1734
1735 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
1736
1737         * class.c (mono_class_create_from_typedef): mono would segfault if 
1738         an enum did not have a __value field. It now throws a TypeLoadException
1739         for such cases. Fix bug #82022
1740
1741 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
1742
1743         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
1744
1745 2007-07-09  Mark Probst  <mark.probst@gmail.com>
1746
1747         * class.c (mono_class_init): If a class is already inited but has
1748         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
1749
1750 2007-07-09  Mark Probst  <mark.probst@gmail.com>
1751
1752         * class.c: Properly handle the case of an unimplemented interface
1753         method.  Fixes: 81673.
1754
1755 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
1756
1757         * class-internals.h, object.c: cleanup patch from massi: use
1758         MonoVTable->interface_bitmap since the vtable interfaces offset array
1759         is going away.
1760
1761 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
1762
1763         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
1764         GetMDStreamVersion icall instead.
1765
1766 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
1767
1768         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
1769         not use mono_dl_build_path() with a full library name: makes
1770         fallbacks to libgaim and libfam work.
1771
1772 2007-07-06  William Holmes  <billholmes54@gmail.com>
1773
1774         * assembly.c: Added a continue statement in probe_for_partial_name when
1775          parse_assembly_directory_name fails.  Fixes : 82002
1776
1777 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
1778
1779         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
1780         and added a verification  for TYPEDBYREF.
1781         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
1782         make native int interchangeable with int32 and some small cleanup and formating.
1783         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
1784         handle byref of byref.
1785         * verify.c (push_local): handle byref of byref.
1786         * verify.c (do_binop): invalid mix of values is unverifiable
1787         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
1788         added visibility checks
1789         * verify.c (field related method): added visibility checks
1790         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
1791
1792 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
1793
1794         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
1795         string.
1796
1797 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
1798
1799         * profiler.c (mono_profiler_load): Fix an off-by-one error.
1800
1801         * marshal.c (emit_marshal_string): When returning a string from managed code,
1802         allways make a copy even for unicode strings. Fixes #81990.
1803
1804 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
1805
1806         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
1807         of byref generic inst types (bug #81997).
1808
1809 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
1810
1811         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
1812         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
1813
1814 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
1815
1816         * marshal.c (emit_marshal_string): Add support for unicode strings in
1817         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
1818
1819 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
1820
1821         * verify.c: field load/store are now verified, missing only access checks now
1822
1823 2007-06-28  Martin Baulig  <martin@ximian.com>
1824
1825         * mono-debug.c (mono_debug_debugger_version): New public variable.
1826
1827 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
1828
1829         * locales.c: When constructing DateTimeFormat or NumberFormat for
1830         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
1831         MonoCultureInfo contructed from the current locale is always
1832         read-only and has UseUserOverride set to true. All MonoCultureInfo
1833         instances returned for GetCultures have both IsReadOnly and
1834         UseUserOverride set to true. Fixes part of bug #81930.
1835
1836 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
1837
1838        * icall-def.h: Update System.__ComObject icalls
1839        * marshal.c: Avoid managed transition (and object creation)
1840        when looking up COM interface in RCW.
1841        * marshal.h: Ditto.
1842        
1843        Code is contributed under MIT/X11 license.
1844
1845 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
1846
1847         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
1848         to avoid crashes during assembly unloading.
1849
1850 2007-06-22  Raja R Harinath  <rharinath@novell.com>
1851
1852         Fix MethodInfo.IsGenericMethodDefinition
1853         * reflection.c (mono_reflection_bind_generic_method_parameters):
1854         Rearrange code to ensure we always uses a generic method definition.
1855         * class.c (mono_class_inflate_generic_method_full): Set
1856         'generic_container' field only for generic method definitions.
1857         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
1858         Use presense of 'generic_container' field as indication of being a
1859         generic method definition.
1860
1861 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
1862
1863         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1864
1865         * object-internals.h: Reflect changes in the layout of the managed Delegate
1866         class.
1867         
1868         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
1869         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
1870         runtime memory used by the dynamic method. Fixes #77146.
1871
1872 2007-06-21  Dick Porter  <dick@ximian.com>
1873
1874         * file-io.h: 
1875         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
1876         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
1877         81767.
1878
1879 2007-06-21  Raja R Harinath  <rharinath@novell.com>
1880
1881         * reflection.c (method_encode_methodspec): Add a tripwire.
1882         * class.c (inflate_generic_type): The fully open generic type is
1883         not the same as the generic type definition.
1884
1885 2007-06-21  Martin Baulig  <martin@ximian.com>
1886
1887         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
1888
1889         * mono-debug-debugger.h
1890         (MonoDebuggerBreakpointInfo): Removed.
1891         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
1892         (mono_debugger_remove_breakpoint): Likewise.
1893         (mono_debugger_breakpoint_callback): Likewise.
1894         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
1895
1896 2007-06-21  Raja R Harinath  <rharinath@novell.com>
1897
1898         * metadata.c (mono_metadata_lookup_generic_class): The fully open
1899         generic type is not the same as the generic type definition.
1900         * class.c (mono_generic_class_get_class): Likewise.
1901
1902 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
1903
1904         * icall.c: The second argument to 
1905         System.Reflection.MethodBase.GetMethodFromHandleInternalType
1906         is a MonoType not a MonoClass.
1907
1908 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
1909
1910         * verify.c: support for function pointers in the verifier
1911
1912 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
1913
1914         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
1915
1916 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
1917
1918         * assembly.c: removed Mono.Data.SqliteClient from the list of
1919         forward-compatible assemblies as it breaks the ABI (bug #81899).
1920
1921 2007-06-19  Raja R Harinath  <rharinath@novell.com>
1922
1923         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
1924         lookup/update with the loader lock.
1925         * reflection.c (mono_class_bind_generic_parameters): No need to
1926         protect mono_metadata_lookup_* with the loader lock.
1927         * class.c (inflate_generic_type): Likewise.
1928         
1929         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
1930         on a generic instantiated type.
1931
1932 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
1933
1934         *verify.c: produce meanfull error messages on verification error
1935         *verify.c: fixed some cases of verification errors reported as validation errors
1936         *pedump.c: fixed the error name array, now it shows validation errors properly
1937         *verify.h: fixed the contant that should be used for verification errors
1938
1939 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
1940
1941         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
1942         for bug #77596, 81858 and 80743 (generics data structures on domain
1943         unload).
1944
1945 2007-06-15  Raja R Harinath  <rharinath@novell.com>
1946
1947         Avoid allocating 'MonoGenericContext' on the heap.
1948         * class-internals (_MonoMethodInflated::context): Make field
1949         inline, not a pointer.
1950         * loader.c (method_from_methodspec): Allocate 'new_context' on the
1951         stack.  Use the context embedded within the inflated method as the
1952         hash key, rather than 'new_context'.
1953         * class.c (inflate_generic_context): Simplify.  Return a struct
1954         rather than allocating on the heap.
1955         (mono_class_inflate_generic_method_full): Update to changes.  Now,
1956         doesn't salt away a copy of the context -- simplifying the
1957         lifetime rules of a 'MonoGenericContext *'.
1958         (mono_method_get_context): Return pointer to embedded context.
1959         (setup_generic_array_ifaces): Allocate temporary context on stack.
1960         * reflection.c (inflate_mono_method): Likewise.
1961         (mono_reflection_bind_generic_method_parameters): Likewise.
1962         Use the context embedded within the inflated method as the hash key.
1963
1964         Avoid a source of allocation of 'MonoGenericContext'.
1965         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
1966         and 'cached_context' fields into embedded 'MonoGenericContext' field.
1967         * class.c: Update to changes.
1968         (mono_generic_class_get_context): Simplify drastically.  Now just
1969         returns a pointer to the field.
1970         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
1971         argument as a const pointer.
1972         (mono_metadata_generic_context_equal): Likewise.
1973         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
1974         Update to changes.
1975
1976 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
1977
1978         * verify.c improved the handling of brtrue/brfalse, factored out common code
1979
1980 2007-06-14  Raja R Harinath  <rharinath@novell.com>
1981
1982         Kill MonoGenericMethod.
1983         * class-internals.h (MonoGenericContext::method_inst): Rename from
1984         'gmethod' and convert to a MonoGenericInst.
1985         (MonoGenericMethod): Remove.
1986         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
1987         * loader.c (method_from_methodspec): Update to changes.  Use a
1988         MonoGenericContext as the key to the hashtable.
1989         * metadata.c (mono_metadata_generic_context_equal): Rename from 
1990         'mono_metadata_generic_method_equal' and take MonoGenericContext.
1991         (mono_metadata_generic_context_hash): Likewise from
1992         'mono_metadata_generic_method_hash'.  Change hash function.
1993         (mono_metadata_load_generic_params): Update to changes.
1994         (mono_get_shared_generic_method): Remove.
1995         * metadata-internals.h (mono_get_shared_generic_method): Remove.
1996         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
1997         (inflate_generic_context): Likewise.
1998         (mono_class_inflate_generic_method_full): Likewise.
1999         (setup_generic_array_ifaces): Likewise.
2000         (mono_class_create_from_typespec): Likewise.
2001         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
2002         (method_encode_methodspec): Update callsite.
2003         (reflection_methodbuilder_to_mono_method): Update to changes.
2004         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
2005         MonoGenericContext as the key to the hashtable.
2006         (inflate_mono_method): Update to changes.
2007
2008         * class-internals.h (MonoGenericMethod::container): Remove.
2009         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
2010
2011 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
2012
2013         * profiler-private.h, profiler.c, profiler.h: added API to profile
2014         exception events.
2015
2016 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
2017
2018         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
2019
2020 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
2021
2022         * verify.c: method invocation is now validated, now we verify parameter types on stack.
2023         Fixed overflow and underflow not aborting the verification process.
2024
2025 2007-06-13  Mark Probst  <mark.probst@gmail.com>
2026
2027         * class-internals.h (MonoStats): Added stats entries for dynamic
2028         code allocations.
2029
2030 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
2031
2032         * loader.c (mono_free_method): Free header->locals and header->clauses.
2033
2034         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
2035         dynamic case.
2036
2037         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
2038
2039         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
2040
2041 2007-06-12  Raja R Harinath  <rharinath@novell.com>
2042
2043         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
2044         the tables.
2045
2046 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
2047
2048         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
2049
2050 2007-06-11  Raja R Harinath  <harinath@gmail.com>
2051
2052         MonoGenericMethod on a diet
2053         * class-internals.h (_MonoMethodInflated::reflection_info): Move
2054         here ...
2055         (_MonoGenericMethod::reflection_info): ... from here.
2056         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
2057         Update to changes.
2058         * reflection.c (inflate_mono_method): Likewise.
2059         (mono_reflection_bind_generic_method_parameters): Likewise.
2060
2061 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
2062
2063         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
2064         *verify.c: factored long ldarg forms to share code with short forms
2065
2066 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
2067
2068         *verify.c: fixed code formating factored some duplicate code
2069         into a new function
2070
2071         *verify.h: fixed binary incompatibility introduced earlier
2072
2073         *pedump.c: fixed formating
2074
2075 2007-06-11  Raja R Harinath  <harinath@gmail.com>
2076
2077         Fix assertion when disassembling Mono.C5.dll
2078         * loader.c (method_from_methodspec): Avoid inflating a method
2079         twice with the same context.  If the methodref is inflated, use
2080         the declaring method instead.
2081
2082         * class.c (mono_class_from_generic_parameter): Fix case similar to
2083         bug #81830 handled below, but for method containers.
2084
2085 2007-06-10  Raja R Harinath  <harinath@gmail.com>
2086
2087         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
2088         get_shared_generic_class.  Directly inflate the instance.
2089         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
2090         (inflate_generic_class): Delete.
2091         (get_shared_generic_class): Delete.  Move setting of
2092         'cached_class' and 'cached_context' ...
2093         * metadata.c (mono_metadata_lookup_generic_class): ... here.
2094
2095         * metadata.c (mono_metadata_lookup_generic_class): Change
2096         signature to take the components of a MonoGenericClass rather than
2097         an allocated MonoGenericClass.  Change semantics to be intern-like.
2098         * reflection.c (mono_class_bind_generic_parameters): Update to
2099         changes.  Make locking region tighter.
2100         * class.c (inflate_generic_class): Update to changes.
2101         (get_shared_generic_class): Likewise.
2102         * metadata-internals.h: Likewise.
2103
2104         * reflection.c (mono_class_bind_generic_parameters): Take and
2105         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
2106         (mono_reflection_bind_generic_parameters): Use
2107         'mono_class_bind_generic_parameters' rather than duplicate the code.
2108         * class.c (mono_bounded_array_class_get): Update to changes.
2109         * object-internals.h: Likewise.
2110
2111         * reflection.c (mono_class_bind_generic_parameters): Only support
2112         parameterizing generic type definitions.  Remove support for other
2113         open types.
2114
2115 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
2116
2117         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
2118
2119         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
2120         in the dynamic case.
2121
2122 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
2123
2124         * threads.c: When cleaning up thread, reset the Background bit.
2125         Fixes bug #81720.
2126
2127 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
2128
2129        * metadata.c: Move variable declarations to top of scope.
2130        * verify.c: Move variable declarations to top of scope.
2131
2132        Code is contributed under MIT/X11 license.
2133
2134 2007-06-08  Raja R Harinath  <rharinath@novell.com>
2135
2136         * reflection.c (mono_class_bind_generic_parameters): Replace
2137         open-coded loop with mono_metadata_inflate_generic_inst.
2138
2139         * class.c (get_shared_generic_class): Don't call
2140         mono_get_shared_generic_inst.  Use the container's own
2141         'class_inst'.
2142
2143         * metadata.c (mono_metadata_load_generic_params): Move
2144         initialization of 'context' field here from ...
2145         * class.c (mono_class_create_from_typedef): ... here, and ...
2146         * loader.c (mono_get_method_from_token): ... here.
2147
2148         * class.c (get_shared_generic_class): Rename from
2149         mono_get_shared_generic_class and make static.
2150         (mono_get_shared_generic_inst): Move to metadata.c.
2151         * loader.c (mono_get_shared_generic_method): Likewise.
2152         * class-internals.h, metadata-internals.h: Update to changes.
2153
2154         Fix #81830
2155         * class.c (mono_class_from_generic_parameter): Don't assume a
2156         generic container owner exists.  Generic containers from monodis
2157         don't have any.
2158
2159 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
2160
2161         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
2162         * verify.h: new typedefs to returns the non-verifiable status
2163         * verify.c: initial implementation of generics, stack merging and object compatibility check
2164
2165 2007-06-06  Mark Probst  <mark.probst@gmail.com>
2166
2167         * class.c, image.c, class-internals.h (MonoImage): class_cache is
2168         a MonoInternalHashTable again (fixed bug in internal hash table
2169         code).
2170
2171 2007-06-06  Mark Probst  <mark.probst@gmail.com>
2172
2173         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
2174         MonoInternalHashTable again (fixed bug in internal hash table
2175         code).
2176
2177 2007-06-06  Mark Probst  <mark.probst@gmail.com>
2178
2179         * class.c, image.c, class-internals.h, domain.c,
2180         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
2181         changes.  Have to figure out what makes them break the SWF
2182         regression.
2183
2184 2007-06-04  Mark Probst  <mark.probst@gmail.com>
2185
2186         * class.c, image.c, class-internals.h (MonoImage): class_cache is
2187         a MonoInternalHashTable now.
2188
2189 2007-06-04  Mark Probst  <mark.probst@gmail.com>
2190
2191         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
2192         MonoInternalHashTable now.
2193
2194 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
2195
2196         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
2197         invoke_impl code.
2198
2199         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
2200
2201         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
2202         dependent trampoline.
2203
2204         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2205
2206         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
2207
2208 2007-05-29  Robert Jordan  <robertj@gmx.net>
2209
2210         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
2211
2212 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
2213
2214         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
2215
2216 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
2217
2218        * marshal.c: Fix interface lookup loops for
2219        cominterop_get_com_slot_for_method and 
2220        cominterop_get_method_interface. Only need to lookup
2221        if type is a class, else use interface type method is on.
2222
2223        Code is contributed under MIT/X11 license.
2224
2225 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
2226
2227         * reflection.c: HasSecurity can be present even if no specially 
2228         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
2229         SecurityAttribute). Fix CAS regression tests on buildbot.
2230
2231 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
2232
2233        * appdomain.c: Add configure checks for header files.
2234        * image.c: Add configure checks for header files.
2235        * file-io.c: Add configure checks for header files.
2236        * debug-mono-symfile.c: Add configure checks for header files.
2237        * threadpool.c: Add configure checks for header files.
2238        * console-io.c: Add configure checks for header files.
2239        * profiler.c: Add configure checks for header files.
2240        * rawbuffer.c: Add configure checks for header files.
2241        * icall.c: Add configure checks for header files.
2242        * rand.c: Add configure checks for header files.
2243        * socket-io.c: Add configure checks for header files.
2244
2245        Code is contributed under MIT/X11 license.
2246
2247 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
2248
2249         * reflection.c (mono_custom_attrs_from_builders): Remove the 
2250         assertion as it breaks the build.
2251         
2252         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
2253
2254         * reflection.c (lookup_custom_attr): Make a copy here too.
2255
2256         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
2257         dynamic images.
2258
2259         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
2260         images.
2261
2262         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
2263         info.
2264
2265 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
2266
2267         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
2268         (load_cattr_value): Ditto.
2269
2270 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
2271
2272         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
2273
2274 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
2275
2276         * threads.c: In "start_wrapper", set apartment_state to MTA if
2277         apartment_state is Unknown and we're running on 2.0 profile or
2278         higher.
2279         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
2280         to main method, then set apartment_state to Unknown on 1.0 profile,
2281         and MTA on 2.0 profile.
2282
2283 2007-05-16  Jb Evain  <jb@nurv.fr>
2284
2285         * class-internals.h (MonoDefaults): Add an attribute_class and
2286           customattribute_data_class.
2287         * domain.c (mono_init_internal): Populate them.
2288         * reflection.c: Use them to remove duplicates. Make a vew
2289         MonoClass variables `static'.
2290
2291 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
2292
2293         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
2294         step in implementing IMT, so that all isinst checks now can go
2295         through the bitmap.
2296         This was needed because vtables for TransparentProxy need to look
2297         like the vtable of the "target" class, so they need to point to
2298         its interface bitmap directly.
2299
2300         * object.c: inside "mono_class_create_runtime_vtable" and
2301         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
2302
2303 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
2304
2305         * object-internals.h
2306           culture-info.h : added territory field in MonoCulture and
2307           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
2308         * locales.c : fill territory field above too.
2309         * culture-info-table.h : regenerated.
2310
2311 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
2312
2313         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
2314         Fixes #81599.
2315
2316 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
2317
2318         * object.c: Always initialize apartment, even if 
2319         there is no custom attributes on entry point.
2320         
2321         Code is contributed under MIT/X11 license.
2322
2323 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
2324
2325         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
2326         * metadata.c: If no encoding is set, check for unicode
2327         on class.
2328         
2329         Code is contributed under MIT/X11 license.
2330
2331 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
2332
2333         * threads.c: Handle if mono_thread_current returns NULL 
2334         
2335         Code is contributed under MIT/X11 license.
2336
2337 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
2338
2339         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
2340         in start_wrapper. Added mono_thread_init_apartment_state and
2341         mono_thread_cleanup_apartment_state.
2342         * object.c: Initialize thread apartment state on main thread
2343         by checking for STAThreadAttribute on entry point.
2344         * object-internals.h: Add apartment_state field to MonoThread.
2345         * threads-types.h: Add unmanaged definition of 
2346         System.Threading.ApartmentState, MonoThreadApartmentState.
2347         
2348         Code is contributed under MIT/X11 license.
2349         
2350 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
2351
2352         * class.c: Fix windows build.
2353         * class-internals.h: Fix windows build.
2354         
2355         Code is contributed under MIT/X11 license.
2356
2357 2007-05-08  Robert Jordan  <robertj@gmx.net>
2358
2359         * process.c (CreateProcess_internal):
2360         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
2361         .CreateNoWindow was specified. Fixes #81496.
2362
2363 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
2364
2365         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
2366         step in implementing IMT, replaced it with two compact arrays
2367         (interfaces_packed and interface_offsets_packed) and a bitmap that
2368         is used for isinst checks (interface_bitmap).
2369
2370         * class.c: (compare_interface_ids): compare function to pass to
2371         bsearch when looking for an interface with a given id.
2372         (mono_class_interface_offset): reimplemented using bsearch on
2373         interfaces_packed, getting the offset from interface_offsets_packed.
2374         (print_implemented_interfaces): utility debugging function.
2375         (setup_interface_offsets): reworked to initialize interfaces_packed,
2376         interface_offsets_packed and interface_bitmap.
2377
2378         * object.c: replaced all accesses to "MonoClass.interface_offsets"
2379         with uses of interfaces_packed and interface_offsets_packed.
2380
2381 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
2382
2383         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
2384         mono_class_interface_offset prototype to wrap all accesses to
2385         "MonoClass.interface_offsets".
2386
2387         * class.c: Implemented mono_class_interface_offset, and wrapped all
2388         accesses to "MonoClass.interface_offsets".
2389
2390         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
2391         "MonoClass.interface_offsets".
2392
2393 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
2394
2395         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
2396         GetMethodFromHandle overloads (bug #78637).
2397
2398 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
2399
2400         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
2401         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
2402
2403 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
2404
2405         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
2406         #81498.
2407
2408         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
2409         gracefully.
2410         (mono_custom_attrs_from_index): Ditto.
2411
2412         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
2413         Fixes #81501.
2414
2415 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
2416
2417         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
2418         is now allocated from a mempool.
2419
2420 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
2421
2422         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
2423         caller holds threads_lock, leading to deadlocks. Fixes #81476.
2424
2425 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
2426
2427         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
2428         mono_loader_clear_error () too late. Fixes #81463.
2429
2430 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
2431
2432         * culture-info-table.h : regenerated.
2433
2434 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
2435
2436         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
2437         is missing.
2438
2439 2007-04-25  Dick Porter  <dick@ximian.com>
2440
2441         * Makefile.am: Put the mingw enforced-optimisation back into the
2442         PLATFORM_WIN32 section.
2443
2444 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
2445
2446         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
2447         patch.
2448
2449         * image.c (mono_image_load_module): New API function to load a module reference.
2450
2451         * image.c (load_modules): Load modules lazily. Fixes #80812.
2452
2453         * class.c (mono_class_from_typeref): Use mono_image_load_module.
2454         
2455         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
2456
2457         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
2458         to mono_image_load_module_dynamic.
2459
2460 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
2461
2462         * marshal.c: Fix calling convention for CCW on non-windows
2463         platforms. STDCALL on windows, CDECL everywhere else to work 
2464         with XPCOM and MainWin COM.
2465         
2466         Code is contributed under MIT/X11 license.
2467
2468 2007-04-23  Martin Baulig  <martin@ximian.com>
2469
2470         Fix #80969.
2471
2472         * loader.c
2473         (method_from_memberref): Added `gboolean *used_context' argument.
2474         (mono_get_method_from_token): Likewise.
2475         (mono_get_method_full): Don't insert the method in the cache when
2476         `used_context' is true.
2477
2478 2007-04-23  Raja R Harinath  <rharinath@novell.com>
2479
2480         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
2481
2482         * reflection.c (mono_reflection_bind_generic_parameters): Don't
2483         create new MonoTypes for returned types.
2484         * class.c (mono_generic_class_get_class): Export mono-internal.
2485         * class-internals.h: Update to changes.
2486
2487 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
2488
2489         * threadpool.c, threadpool.h, icall-def.h: patch from
2490         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
2491
2492 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
2493
2494         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
2495         
2496         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
2497
2498         * threads.c (mono_thread_get_stack_bounds): New helper function.
2499
2500         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
2501         Correctly compute stack bounds when attaching. Fixes #81394.
2502
2503 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
2504
2505         * reflection.c: fix handling of doubles in custom attributes
2506         for the arm-fpa format (bug #81368).
2507
2508 2007-04-18  Raja R Harinath  <rharinath@novell.com>
2509
2510         * reflection.c (assembly_add_win32_resources): Mildly relax an
2511         bounds check to let the end pointer point just past the end of the
2512         allocated buffer.  (may fix #81384)
2513
2514 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
2515
2516         * culture-info-table.h : regenerated.
2517
2518 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
2519
2520         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
2521         the thread is aborted early.
2522
2523 2007-04-05  Dick Porter  <dick@ximian.com>
2524
2525         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
2526         FindFirstFile()/FindNextFile() to find entries.  This lets the
2527         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
2528         81038.
2529
2530         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
2531         the parameters of
2532         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
2533
2534 2007-04-04  Martin Baulig  <martin@ximian.com>
2535
2536         * debug-helpers.c
2537         (mono_method_desc_full_match): Add support for nested classes.
2538
2539 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
2540
2541         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
2542
2543 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
2544
2545         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
2546         waiting for too many threads.
2547
2548 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
2549
2550         * environment.c: Fix return value check on uname so we can get the 
2551         executing version on Solaris operating systems.
2552
2553 2007-03-28  Jb Evain  <jbevain@gmail.com>
2554
2555         * class.c (mono_type_get_name_recurse): Complete the
2556         fix for the creation of assembly qualified names for
2557         pointer types. Fixes #81208.
2558
2559 2007-03-27  Dick Porter  <dick@ximian.com>
2560
2561         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
2562         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
2563         changed.
2564
2565         * threads.c
2566         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
2567         the value of ReleaseMutex().
2568
2569 2007-03-27  Dick Porter  <dick@ximian.com>
2570
2571         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
2572         in little-endian order, not network endian, so must be converted
2573         to host endian here.  Fixes bug 80593.
2574
2575 2007-03-22  Jb Evain  <jbevain@gmail.com>
2576
2577         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
2578         qualified names for pointer types. Fixes #81208.
2579
2580 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
2581
2582         * marshal.c: Add support for PreserveSigAttribute. 
2583         
2584         Code is contributed under MIT/X11 license.
2585
2586 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
2587
2588         * process.c: Fix endianness issues. Fixes #81126.
2589
2590         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
2591         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
2592
2593         * image.c (mono_image_lookup_resource): Make this work on big-endian
2594         machines.Change API contract so the caller needs to free the return value.
2595         
2596         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
2597         API change.
2598         
2599 2007-03-14  Martin Baulig  <martin@ximian.com>
2600
2601         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
2602         mono_type_get_desc() as well.
2603
2604 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
2605
2606         * icall.c:  Fix environ access in VS.  
2607         
2608 2007-03-13  Alp Toker  <alp@atoker.com>
2609
2610         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
2611         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
2612         #63841.
2613
2614 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
2615
2616         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
2617         circular references among dynamic methods. Fixes #81091.
2618
2619         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
2620
2621 2007-03-09  Martin Baulig  <martin@ximian.com>
2622
2623         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
2624
2625 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
2626
2627         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
2628         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
2629         
2630         Code is contributed under MIT/X11 license.
2631         
2632 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
2633
2634         * loader.c: Reapply patch for bug #79424.
2635
2636 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
2637
2638         * metadata.c (mono_type_to_unmanaged): Only convert object to
2639         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
2640
2641 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
2642
2643         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
2644         (and incorrectly set) is_reference field from MonoGenericInst.
2645
2646 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
2647
2648         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
2649         a little earlier.
2650
2651         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
2652
2653         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
2654
2655 2007-03-05  Miguel de Icaza  <miguel@novell.com>
2656
2657         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
2658         FileOptions.1 value to mean "temporary", map that to
2659         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
2660
2661         Fixes 80688
2662
2663 2007-03-03  Marek Habersack  <mhabersack@novell.com>
2664
2665         * appdomain.c: implement MS .Net style shadow copying. Copies of
2666         the assemblies are made in a subdirectory of the dynamic base
2667         directory, the assembly names are preserved.
2668         Copy .mdb and .config files along with the assemblies being shadowed.
2669
2670 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
2671
2672         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
2673         (emit_marshal_handleref): Ditto.
2674
2675         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
2676         on Visual C++. Fixes #80671.
2677
2678 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
2679
2680         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
2681         for clone operations.
2682
2683 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
2684
2685         * marshal.c: Fix warnings.
2686
2687 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
2688
2689         * loader.c: allow case-insensitive matching of the dll name
2690         in dllmap handling when prefixed with "i:".
2691
2692 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
2693
2694         * threads.c: Fix #ifdef for dummy_apc function for VS.
2695
2696 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
2697
2698         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
2699
2700 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
2701         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
2702         giving precedence to the methods with a fully qualified name
2703         (InterfaceName.MethodName) when building the interface sections
2704         of the vtable.
2705
2706 2007-02-16  Dick Porter  <dick@ximian.com>
2707
2708         * threadpool.c (append_job): Fix fast-path array handling, so it's
2709         less likely the array will grow exponentially when the load is
2710         heavy.
2711
2712 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
2713
2714         * metadata-internals.h, loader.c: fix dllmap lookup order
2715         for non-function maps, too, and prepare for fallback code.
2716
2717 2007-02-12  Robert Jordan  <robertj@gmx.net>
2718
2719         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
2720         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
2721         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
2722         GlobalFree. Fixes a part of bug #77075.
2723
2724 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
2725
2726         * loader.c: implemented typedef parent in field memberref.
2727
2728 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
2729
2730         * marshal.c: Fix warnings and remember to call Release on
2731         IUnknown of RCW.
2732         
2733         Code is contributed under MIT/X11 license.
2734
2735 2007-02-10  Miguel de Icaza  <miguel@novell.com>
2736
2737         * class-internals.h: Add MonoHandleRef definition, and
2738         handleref_class to mono_defaults. 
2739
2740         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
2741         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
2742
2743         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
2744         (do nothing on this stage)
2745         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
2746         (emit_marshal_handleref): New method, used for argument handling
2747         of HandleRefs. 
2748
2749 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
2750
2751         * class.c (mono_class_setup_parent): Lazily init com types.
2752         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
2753         init com types.
2754         * object.c (mono_remote_class_vtable): Lazily init com types.
2755         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
2756         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
2757         * domain-internals.h: Expose mono_init_com_types.
2758         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
2759         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
2760         Add support for COM Callable Wrapper marshalling.
2761         * marshal.h: Add icall definitions.
2762         * gc.c: Handle freeing of CCWs in finalizer code.
2763         
2764         Code is contributed under MIT/X11 license.
2765
2766 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
2767
2768         * reflection.c: changed all the signature encoding code to use
2769         a variable-sized buffer.
2770
2771 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
2772
2773         * marshal.c: locking fixes: never take the loader lock
2774         or other runtime locks when holding the marshal lock
2775         (fixes bug#80664).
2776
2777 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
2778
2779         * marshal.c: make the delegate function pointer mapping
2780         work for the moving GC.
2781
2782 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
2783
2784         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
2785         for bug #80618.
2786
2787 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
2788
2789         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
2790         gmodule.
2791
2792 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
2793
2794         * threadpool.c: made the code moving-GC safe.
2795
2796 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
2797
2798         * assembly.c, boehm-gc.c, class-internals.h, class.c,
2799         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
2800         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
2801         warning cleanup.
2802         * reflection.c: warning cleanup, some threading and moving GC fixes.
2803
2804 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
2805
2806         * class.c, loader.c: create the needed Set/Get/Address array methods
2807         as well as the .ctors in mono_class_init (), fixes bug #80567.
2808
2809 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
2810
2811         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
2812         we doesn't decrease its alignment. Should fix the sparc build.
2813
2814 2007-01-24  Dick Porter  <dick@ximian.com>
2815
2816         * socket-io.c
2817         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
2818         Create the returned object if we need to ignore an unsupported
2819         socket option.  Fixes a segfault reported by Atsushi.
2820
2821 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
2822
2823         * class.c, object.c: restrict GC-tracked fields to
2824         UIntPtr fields used inside corlib, so we provide better
2825         type info to the GC and also allow broken packing as in
2826         bug #80580.
2827
2828 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
2829
2830         * sgen-gc.c: removed duplicated function.
2831
2832 2007-01-19  Miguel de Icaza  <miguel@novell.com>
2833
2834         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
2835         value that means that the value is not supported, but that we
2836         should not return a failure, but instead report this as a
2837         successful operation.
2838
2839 2007-01-19  Raja R Harinath  <rharinath@novell.com>
2840
2841         Fix tests/bug79956.2.il
2842         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
2843         (mono_generic_class_get_class): If the generic definition in an
2844         enum, copy over other fields related to it.
2845
2846 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
2847
2848         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
2849         genericinst enums (bug #79215).
2850
2851 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
2852         * class.c: Fix bug 80307.
2853
2854 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
2855
2856         * image.c: if the file table is not present, try to load
2857         all the modules, since we don't have info about them
2858         having or not metadata (bug #80517).
2859         * assembly.c: allow mono_assembly_load_references () to
2860         work for netmodules.
2861
2862 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
2863
2864         * image.c, metadata-internals.h, object.c: execute module
2865         cctors when running on the 2 runtime if present (bug #80487).
2866
2867 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
2868
2869         * icall.c: optimized InitializeArray() on bigendian.
2870
2871 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
2872
2873         * icall.c: fix for the broken ARM FPA double format.
2874
2875 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
2876
2877         * icall.c: handle endian issues for r4 and r8 types, too, in
2878         the InitializeArray() icall.
2879
2880 2007-01-15  Miguel de Icaza  <miguel@novell.com>
2881
2882         * loader.c (mono_loader_error_prepare_exception): Clear the error
2883         once we have extracted the information from it, do this before we
2884         call into the JIT's class loading mechanisms.
2885
2886         * object.c (mono_class_create_runtime_vtable): Do not clear the
2887         loader error before calling mono_class_get_exception_for_failure
2888         as the loader error is needed inside
2889         mono_class_get_exception_for_failure to throw the error (thinko).
2890
2891         Fixes #80521
2892         
2893 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
2894
2895         * reflection.c: align fields rva data so it's faster to load at
2896         runtime.
2897
2898 2007-01-12  Raja R Harinath  <rharinath@novell.com>
2899
2900         Prepare to simplify GenericMethod handling.
2901         * class-internals.h (mono_method_get_context): New accessor function.
2902         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
2903         rather than directly accessing '->context' field.
2904
2905         * class-internals.h (_MonoGenericParam.method): Move ...
2906         (_MonoGenericContainer): ... here.  Add into union with klass field.
2907         * class.c, icall.c, loader.c, metadata.c, reflection.c:
2908         Update to changes.
2909
2910 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
2911
2912         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
2913         the wrapper type enum and reduce relocations.
2914
2915 2007-01-12  Raja R Harinath  <rharinath@novell.com>
2916
2917         * reflection.c (inflate_mono_method): Reuse method instantiation
2918         from the generic method, if available.
2919
2920 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2921
2922         * marshal.c (emit_marshal_variant): Fix conv_arg
2923         type in last commit, based on whether parameter is byref.
2924         
2925 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2926
2927         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
2928         marshalling.
2929         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
2930         MONO_TYPE_OBJECT back for VARIANT support.
2931
2932 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2933
2934         * marshal.c, marshal.h, icall-def.h: Implement 
2935         Marshal.ReAllocCoTaskMem.
2936
2937 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
2938
2939         * marshal.c: memory retention fixes: use the proper
2940         image cache for runtime_invoke method lookups.
2941
2942 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
2943
2944         * mempool.c: added code to help debug mempool allocations.
2945
2946 2007-01-11  Dick Porter  <dick@ximian.com>
2947
2948         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
2949         support (experimenting with faking it with IP_MTU_DISCOVER for
2950         systems that don't have IP_DONTFRAGMENT.)
2951         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
2952         icall.
2953
2954         * icall-def.h: new System.Net.Sockets.Disconnect icall.
2955
2956         * socket-io.h: Add new fields to MonoSocketAsyncResult
2957         corresponding to the new ones in Socket.cs.
2958
2959 2007-01-11  Raja R Harinath  <rharinath@novell.com>
2960
2961         Fix IronPython regression mentioned in #80249
2962         * metadata.c (do_mono_metadata_parse_generic_class): Clear
2963         'cached_context' field, since it may have been initialized as a
2964         side-effect of metadata parsing.
2965
2966         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
2967         (_MonoGenericClass.cached_class): Move here and rename from lone
2968         remaining field of ...
2969         (_MonoInflatedGenericClass): ... this.  Remove.
2970         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
2971         to changes.
2972
2973         Fix mcs/tests/test-128.cs regression.
2974         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
2975         2007-01-10 change below.
2976         [MONO_TYPE_OBJECT]: Recurse into array case.
2977
2978 2007-01-11  Raja R Harinath  <harinath@gmail.com>
2979
2980         * class-internals.h (mono_get_inflated_generic_class): Remove.
2981         * class.c (mono_get_inflated_generic_class): Remove.
2982         (mono_generic_class_get_class): Rename from
2983         mono_class_create_generic.
2984         (mono_class_from_mono_type) [GENERICINST]: Use it.
2985         * reflection.c, metadata.c: Update to changes.  Use
2986         'mono_class_from_mono_type'.
2987
2988 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
2989
2990         * reflection.c: use passed type when encoding an array element
2991         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
2992
2993 2007-01-09  Robert Jordan  <robertj@gmx.net>
2994
2995         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
2996         result arguments (someDelegate.EndInvoke (unrelatedAres)).
2997         Fixes bug #80392.
2998
2999 2007-01-09  Raja R Harinath  <rharinath@novell.com>
3000
3001         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
3002
3003         * object.c (set_value): Avoid aliasing between type->data.klass
3004         and type->data.generic_class.
3005
3006         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
3007
3008 2007-01-08  Raja R Harinath  <rharinath@novell.com>
3009
3010         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
3011         between type->data.klass and type->data.generic_class.
3012
3013 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
3014
3015         * marshal.c: In MS.NET, StringBuilder objects are not copied by
3016         value in out parameters.
3017
3018 2007-01-08  Raja R Harinath  <rharinath@novell.com>
3019
3020         Simplify invariant for MonoGenericClass::klass field.
3021         * class.c (mono_class_create_generic): Verify 'klass' is null.
3022         * metadata.c (do_mono_metadata_parse_generic_class): Don't
3023         initialize 'klass' field.
3024
3025 2007-01-05  Raja R Harinath  <rharinath@novell.com>
3026
3027         Ongoing work to avoid redundant data and simplify invariants.
3028         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
3029         'generic_class', and change type to a GenericInst.
3030         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
3031         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
3032
3033 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
3034
3035         * class.c : skip io-layer under PLATFORM_WIN32.
3036
3037 2007-01-03  Tor Lillqvist  <tml@novell.com>
3038
3039         Fix #80305: In a bundled executable, look in the bundled exe
3040         assembly to determine the runtime version. Add the possibility to
3041         bundle also the machine.config file.
3042         
3043         * assembly.c (mono_assembly_open_from_bundle): Make
3044         non-static. Allow being called even if we have no bundled
3045         assemblies, and return NULL right away in that case.
3046
3047         * domain-internals.h: Declare mono_assembly_open_from_bundle()
3048         here.
3049
3050         * domain.c (app_config_parse): Take an assembly exe file name as
3051         parameter instead of a config file name. Check for a bundled
3052         config file for that assembly by calling
3053         mono_config_string_for_assembly_file() (see below) before looking
3054         for one in the file system.
3055         (get_runtimes_from_exe): Corrsponding change to call of
3056         app_config_parse().
3057         (get_runtimes_from_exe): Check for bundled assembly exe file first
3058         by calling mono_assembly_open_from_bundle(). If no bundled
3059         assembly exe file is found, call mono_image_open() as before to
3060         look it up in the file system.
3061
3062         * mono-config.c: Add variable bundled_machinec_onfig.
3063         (mono_config_string_for_assembly_file): New function.
3064         (mono_config_for_assembly): Move code snippet that looks for a
3065         bundled assembly .config file into the above new function. Call
3066         it.
3067         (mono_register_machine_config, mono_get_machine_config): New
3068         functions to set and retrieve
3069
3070         * assembly.h: Declare mono_register_machine_config().
3071
3072         * mono-config.h: Declare mono_get_machine_config() and
3073         mono_config_string_for_assembly_file().
3074
3075         * icall.c: No declaration of environ necessary on Win32. It is
3076         declared (as a macro expanding to a function call) in stdlib.h.
3077         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
3078         New internal mono function. Returns the value of
3079         mono_get_machine_config() as a Mono string.
3080
3081         * icall-def.h: Add get_bundled_machine_config().
3082
3083 2007-01-04  Raja R Harinath  <rharinath@novell.com>
3084
3085         Remove redundant field
3086         * class-internals.h (_MonoGenericContext.container): Remove field.
3087         * loader.c (mono_method_get_signature_full): Don't parse a
3088         "container" for a signature parse when the signature is inflated
3089         immediately.
3090         (method_from_methodspec): Likewise, for a generic_inst.
3091         * class.c, metadata.c, reflection.c: Update to changes.
3092
3093 2006-01-04  Raja R Harinath  <rharinath@novell.com>
3094
3095         * class-internals.h (_MonoGenericClass): Rename 'context' field to
3096         'cached_context', and change semantics -- it starts off NULL, and
3097         is initialized on demand.
3098         * class.c (mono_generic_class_get_context): New accessor to
3099         replace 'context' field accesses.
3100         (mono_class_get_context): New helper.
3101         (*): Update to changes.
3102         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
3103
3104 2007-01-03  Miguel de Icaza  <miguel@novell.com>
3105
3106         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
3107         before the memcpy.   Fixes Marshal2 regression.
3108
3109 2007-01-02  Jb Evain  <jbevain@gmail.com>
3110
3111         * blob.h: add a MONO_TYPE_ENUM definition
3112         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
3113         fix the encoding of arrays of enums in custom attributes.
3114
3115         Fixes #79666.
3116
3117 2007-01-01  Miguel de Icaza  <miguel@novell.com>
3118
3119         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
3120         string is null terminated, but only cut the string short if it
3121         overflows the buffer.   
3122         
3123         (mono_string_to_byvalstr): Also fix this routine.   The code here
3124         was not properly terminating a string (it was only terminated
3125         because of the previous catch-all memset). 
3126
3127         I left the memset, because I do not know if applications expect
3128         the runtime to clear this region. 
3129
3130         Fixes #79944.
3131
3132         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
3133         Clear the error before returning to unmanaged code to prevent the
3134         runtime from being confused later on (fixes  80420).
3135         (ves_icall_type_from_name): Always call mono_loader_clear_error
3136         after parsing a type that could have failed.
3137         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
3138
3139         * loader.c (mono_loader_clear_error): Fix indentation.
3140
3141 2006-12-28  Martin Baulig  <martin@ximian.com>
3142
3143         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
3144
3145 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
3146
3147         * reflection.c: patch from Rolf Bjarne Kvinge to fix
3148         getting a token for an EnumBuilder.
3149
3150 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
3151
3152         * reflection.c: be more careful in case resource generation
3153         fails to create the data array.
3154
3155 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
3156
3157         * sgen-gc.c: write barrier for clone and fix unregister handles.
3158
3159 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
3160
3161         * reflection.c: some fixes needed in the generics code for the moving GC.
3162
3163 2006-12-22  Robert Jordan  <robertj@gmx.net>
3164
3165         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
3166         account. Fixes bug #80299.
3167
3168 2006-12-21  Raja R Harinath  <rharinath@novell.com>
3169
3170         Fix WaitHandle usage in delegates.
3171         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
3172         * object.c (mono_wait_handle_new): Use the property set method to
3173         initialize the handle.
3174         (mono_wait_handle_get_handle): New.
3175         * threadpool.c (mono_async_invoke): Use it.
3176         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
3177         Likewise.
3178         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
3179
3180 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
3181
3182         * marshal.c (emit_marshal): Call emit_marshal_variant and
3183         emit_marshal_com_interface when applicable.
3184         (emit_marshal_variant, emit_marshal_com_interface): Add
3185         methods for this case and remove if's from emit_marshal_object.
3186         
3187 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
3188
3189         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
3190
3191 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
3192
3193         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
3194         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
3195         and GlobalFree on Windows. Remove FIXME.
3196
3197 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
3198
3199         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
3200         implementation for managed objects.
3201
3202 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
3203
3204         * object.c: implemented code to be used for checking
3205         that no reference field overlaps with non-references.
3206
3207 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
3208
3209         * threadpool.c: fix queue code to be compatible with the
3210         moving GC.
3211
3212 2006-12-18  Miguel de Icaza  <miguel@novell.com>
3213
3214         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
3215         in structures by throwing ArgumentNullException.
3216
3217         (emit_marshal_safehandle): Also when they are null parameters.
3218
3219         (emit_marshal_safehandle): Add support for ref
3220         SafeHandles parameters
3221
3222 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
3223
3224         * profiler.c: updated to use the mono-dl API instead of
3225         gmodule.
3226
3227 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
3228
3229         * profiler.c: updated to use the mono-dl dynamic loading
3230         API instead of gmodule.
3231
3232 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
3233
3234         * profiler.c: use readlink, older versions of glib don't have
3235         g_file_read_link ().
3236
3237 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
3238
3239         * profiler.c: try to detect the path to mono if libc fails to provide
3240         a useful name (bug #80286).
3241
3242 2006-12-16  Raja R Harinath  <rharinath@novell.com>
3243
3244         Fix #80242
3245         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
3246         instance, use the generic type definition instead.
3247         (ves_icall_Type_GetNestedTypes): Likewise.
3248         * class.c (mono_class_create_generic): Always set the
3249         nested_classes of a generic instance to NULL, even if the generic
3250         type definition has nested types.
3251
3252 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
3253
3254         * marshal.c (mono_string_from_bstr): Revert previous Windows change
3255         and fix on Linux.
3256         
3257 2006-12-15  Miguel de Icaza  <miguel@novell.com>
3258
3259         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
3260         my arguments were in the wrong order.   I also fixed the Windows
3261         version which seems to have had the same issue.
3262
3263         (mono_free_bstr): On Unix, this is g_free.
3264         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
3265         conversions (for the tests in corlib to pass).
3266
3267 2006-12-14  Miguel de Icaza  <miguel@novell.com>
3268
3269         * marshal.c (emit_ptr_to_object_conv): For now, ignore
3270         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
3271         exception if a ref SafeHandle in a struct has changed).
3272         
3273         (emit_struct_conv): Do not perform layout checks for classes
3274         derived from SafeHandle, as those are specially handled. 
3275
3276         (emit_object_to_ptr_conv): Add support for
3277         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
3278
3279         (emit_marshal_safehandle): Implement conversion of return values
3280         of safehandles (MARSHAL_ACTION_CONV_RESULT).
3281         
3282         * threads.c: WaitHandle now is compiled with two different handles
3283         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
3284         for 2.0.
3285         
3286         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
3287         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
3288         these routines to cope with both kinds of fields.
3289
3290 2006-12-12  Miguel de Icaza  <miguel@novell.com>
3291
3292         * metadata.c (mono_type_to_unmanaged): Handle the case where
3293         type->data.klass is a SafeHandle, and in that case, return the
3294         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
3295         MONO_MARSHAL_CONV_SAFEHANDLE. 
3296
3297 2006-12-11  Miguel de Icaza  <miguel@novell.com>
3298
3299         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
3300         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
3301         calling emit_marshal_object.
3302
3303         (emit_marshal_safehandle): Implement marshalling of
3304         SafeHandle parameters (no ref support yet).
3305
3306         (MarshalAction): Document the defines as I implement
3307         them for SafeHandle.
3308
3309         (emit_marshal_object): indentation police.
3310
3311         * class-internals.h: Define MonoSafeHandle.
3312         Add safehandle_class to MonoDefaults type.
3313
3314         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
3315         list of classes to check for fields. 
3316
3317         * domain.c (mono_init_internal): Add SafeHandle to the list of
3318         mono_defaults loaded.
3319
3320 2006-12-15  Raja R Harinath  <rharinath@novell.com>
3321
3322         Fix #80253
3323         * reflection.c (mono_reflection_bind_generic_parameters): If the
3324         generic type definition is a type builder, ensure that it is fully
3325         initialized before instantiating it.  Kill some dead code.
3326
3327 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
3328
3329         * object.c: clear the loader_error () before loading
3330         more metadata stuff (bug #80258).
3331
3332 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
3333
3334         * icall.c, icall-defs.h: type modifiers icalls for
3335         parameters and properties.
3336
3337 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
3338
3339         * object.c, icall.c: fixed warnings.
3340
3341 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
3342
3343         * marshal.c: fixed a couple of leaks and coding style in a few places.
3344
3345 2006-12-08  Dick Porter  <dick@ximian.com>
3346
3347         * process.c: Cope with NULL ProcessStartInfo arguments on windows
3348         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
3349         80173.
3350
3351 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
3352
3353         * process.c: ProcessStartInfo may have only filename set and
3354         arguments can be NULL.
3355
3356 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
3357
3358         * icall.c: fix leak found by Robert Jordan.
3359
3360 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
3361
3362         * marshal.c, marshal.h: generate managed method to access an element
3363         of a multi-dimensional array.
3364
3365 2006-11-30  Paolo Molaro (lupus@ximian.com)
3366
3367         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
3368
3369 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
3370
3371         * icall.c: back out GetFields () fix until the serialization code is
3372         fixed to not depend on the incorrect behaviour.
3373
3374 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
3375
3376         * profiler.c: provide defaults if none are set.
3377
3378 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
3379
3380         * Makefile.am, attrdefs.h: new public header file with
3381         constants for attributes for use by embedders.
3382
3383 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
3384
3385         * icall.c: GetFields () fix for bug #80064.
3386
3387 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
3388
3389         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
3390         removed long unused icalls.
3391
3392 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
3393   
3394         * marshal.c: 
3395                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
3396                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
3397                 can be generated without a delegate class.
3398                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
3399         
3400         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
3401
3402 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3403
3404         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
3405         #80069.
3406
3407 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
3408
3409         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
3410         icall-def.h: added icalls needed by System.GC.
3411
3412 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
3413
3414         * loader.c: ensure the class in catch clauses is handled
3415         correctly for generics methods (fixes bug#79980).
3416
3417 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
3418
3419         * monitor.h, monitor.c: added mono_locks_dump () function
3420         to help debug deadlocks involving managed locks.
3421
3422 2006-11-13  Dick Porter  <dick@ximian.com>
3423
3424         * file-io.c (get_file_attributes): If the file is a symlink try
3425         and get the stat data for the target, but also add the
3426         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
3427         the specs for the windows symlink support, but will probably have
3428         to be reworked when I have test data from a vista machine.  Fixes
3429         bug 79887.
3430
3431 2006-11-13  Dick Porter  <dick@ximian.com>
3432
3433         * gc.c (mono_domain_finalize): 
3434         * marshal.c (mono_delegate_begin_invoke): 
3435         * threadpool.c (socket_io_init, mono_thread_pool_init)
3436         (mono_thread_pool_finish): 
3437         * monitor.c (mono_monitor_try_enter_internal): 
3438         * threads.c (mono_thread_resume, mono_thread_init)
3439         (mono_thread_suspend_all_other_threads)
3440         (mono_thread_execute_interruption): 
3441         * appdomain.c (mono_domain_unload): Check for NULL error returns
3442         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
3443         75733.
3444
3445 2006-11-11  Miguel de Icaza  <miguel@novell.com>
3446
3447         * process.c
3448         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
3449         Only close the handle if the value of the handle is not
3450         INVALID_HANDLE_VALUE.  This just makes the process a bit more
3451         robust.
3452
3453         Improvement for #75733, so that we do not run into this problem. 
3454
3455         
3456         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
3457         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
3458         internal variables.  Fixes #79462 
3459         
3460
3461 2006-11-09  Dick Porter  <dick@ximian.com>
3462
3463         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
3464         Use poll() not select().  Fixes bug 79397.
3465
3466 2006-11-09  Raja R Harinath  <rharinath@novell.com>
3467
3468         Fix #79872
3469         * assembly.c (mono_assembly_load_from_full): Check that the given
3470         image has an assembly manifest.
3471
3472 2006-11-09  Ankit Jain  <jankit@novell.com>
3473
3474         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
3475         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
3476         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
3477
3478 2006-11-07  Dick Porter  <dick@ximian.com>
3479
3480         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
3481         Put the old resolver behaviour back for pre-2.0 profiles.
3482
3483 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
3484
3485         * threadpool.c: precise GC and locking fixes.
3486
3487 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
3488
3489         * class.c: don't load types that have an explicit unaligned
3490         managed reference. Provide better info in the TypeLoad exception.
3491         Part of the fix for bug #79744.
3492         * object.c: use the correct check for class type load issues.
3493
3494 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
3495
3496         * class.c: enforce alignment of fields with managed references
3497         even when Pack=1 is forced by the user (bug #77788).
3498
3499 2006-11-03  Dick Porter  <dick@ximian.com>
3500
3501         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
3502         If the address reverse lookup fails, return it as the hostname
3503         anyway.  Fixes bug 79721.
3504
3505 2006-11-03  Dick Porter  <dick@ximian.com>
3506
3507         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
3508         Fix build on Windows.
3509
3510 2006-11-02  Dick Porter  <dick@ximian.com>
3511
3512         * icall-def.h: 
3513         * object-internals.h: 
3514         * exception.c (mono_get_exception_thread_interrupted): 
3515         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
3516         Fixes bug 74525.
3517
3518         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
3519         Check for pending Thread.Interrupt.
3520
3521 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
3522         * loader.c: Fixed bug 79684.
3523
3524 2006-10-27  Dick Porter  <dick@ximian.com>
3525
3526         * file-io.c (get_file_attributes): Force symlinks to directories
3527         to be returned as a regular file.  Fixes bug 79733.
3528 2006-10-26  Dick Porter  <dick@ximian.com>
3529
3530         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
3531         CreateFile to open a directory then we need to set the
3532         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
3533
3534 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
3535
3536         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
3537         friends.
3538
3539 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
3540
3541         * sgengc.c: small cleanup of timer code.
3542
3543 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
3544
3545         * sgen-gc.c: fix some warnings and start adding support for
3546         complete object removal on domain unload.
3547
3548 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
3549
3550         * assembly.c: build_assembly_name should not consider a version
3551         number without build or revision number invalid. Fixes bug #79715.
3552
3553 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
3554
3555         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
3556         call kernel32 function OutputDebugString directly.
3557         
3558         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
3559         
3560 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
3561
3562         * reflection.c: small cleanup, using a function to insert a MonoString
3563         in the string heap.
3564
3565 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
3566
3567         * reflection.c: moving GC fixes.
3568
3569 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
3570
3571         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
3572         all the objects with finalizers belonging to an unloading appdomain.
3573
3574 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
3575
3576         * sgen-gc.c: added ability to allocate even when the nursery is fully
3577         pinned and fixed a couple of bugs.
3578
3579 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
3580
3581         * threads.h: Revert the last change for now.
3582
3583         * threads.h (mono_thread_get_pending_exception): Rename this to
3584         mono_thread_get_undeniable_exception ().
3585
3586 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
3587
3588         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
3589         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
3590         when fname does not refer to valid assembly. This result in a more
3591         meaningful error message.
3592         * exception.c: added mono_get_exception_bad_image_format2 which 
3593         constructs a BadImageFormatException using the ctor taking a custom
3594         message and the file name. Passing in a NULL msg results in a default
3595         message.
3596         * exception.h: define mono_get_exception_bad_image_format2 function.
3597         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
3598         when file name pointed to an invalid IL image. Use 
3599         mono_get_exception_file_not_found2 to construct FileNotFoundException,
3600         as this results in a more meaningful error message.
3601
3602 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
3603
3604         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
3605         #79465.
3606
3607 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
3608
3609         * metadata.c (mono_type_size): Change the align parameter to guint32 for
3610         consistency with the other _size functions.
3611         (mono_type_stack_size): Ditto.
3612
3613         * class.c object.c icall.c: Fix warnings caused by the above change.
3614
3615         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
3616
3617         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
3618
3619         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
3620
3621 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
3622
3623         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
3624         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
3625         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
3626         threadpool.h, threads-types.h: mark more internal functions.
3627
3628 2006-10-11  Dick Porter  <dick@ximian.com>
3629
3630         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
3631         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
3632         reproduce the bug even before applying the fix.)
3633
3634 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
3635
3636         * reflection.c: allow retrieving attributes for arguments in generic
3637         methods (bug #79241).
3638
3639 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
3640
3641         * debug-mono-symfile.c: properly check fopen () result (found by
3642         coverity).
3643
3644 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
3645
3646         * reflection.c: make error message clearer and fixed two
3647         issuelets found by Coverity.
3648
3649 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
3650
3651         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
3652
3653 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
3654
3655         * object-internals.h, gc-internal.h, profiler-private.h:
3656         mark internal functions.
3657
3658 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
3659
3660         * reflection.c: put data in the text section.
3661         * icall.c: recognize more types in type_from_typename ().
3662         * process.c, marshal.c: added some GC FIXMEs.
3663
3664 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
3665
3666         * loader.c: check for NULL before initializing.
3667
3668 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
3669
3670         * gc.c (finalizer_thread): Use a non-alertable wait here.
3671
3672         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
3673         until the correct solution is found.
3674
3675 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
3676
3677         * reflection.c (mono_module_get_object): Avoid an assert when operating on
3678         modules with no metadata. Fixes #79596.
3679
3680         * image.c (load_metadata_ptrs): Put back the error message when
3681         the #- heap is encountered since the support is not complete yet.
3682
3683 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
3684
3685         * gc.c: do not allow the user to SuppressFinalize () a
3686         delegate because it would leak the trampoline if present.
3687
3688 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
3689
3690         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
3691         PropertyPtr table.
3692
3693 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
3694
3695         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
3696
3697         * metadata.c (mono_metadata_get_param_attrs): Ditto.
3698
3699         * row-indexes.h: Add definitions for *Ptr tables.
3700
3701         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
3702
3703         * metadata.c (mono_metadata_translate_token_index): New helper function to
3704         translate table indexes used in uncompressed metadata.
3705         (mono_metadata_decode_table_row): Ditto.
3706         (mono_metadata_decode_table_row_col): Ditto.
3707
3708         * metadata.c: Add table schema for *Ptr tables.
3709
3710         * class.c loader.c: Use the new helper function to access the affected metadata
3711         tables.
3712         
3713         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
3714         #38532.
3715         
3716 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
3717
3718         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
3719         sequences which can be unbounded in size. Fixes #79583.
3720
3721 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
3722
3723         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
3724         static initialization.
3725
3726         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
3727
3728         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
3729
3730         * domain.c (mono_domain_free): Free up type_init_exception_hash.
3731
3732         * object.c (mono_runtime_class_init): Implement correct semantics when a static
3733         ctor fails, i.e. throw the same exception on subsequent accesses.
3734         
3735 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
3736
3737         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
3738         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
3739         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
3740         Handle marshalling of interfaces and VARIANTs contained in structs.
3741         
3742         Code is contributed under MIT/X11 license.
3743         
3744 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
3745
3746         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
3747         
3748         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
3749         mempool.
3750
3751 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3752
3753         * console-io.c: ignore previous SIGINT handler.
3754
3755 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
3756
3757         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
3758         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
3759         #79460, #79461, #79485.
3760
3761         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
3762
3763         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
3764         #79217.
3765
3766 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
3767
3768         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
3769         could be generated from it.
3770
3771 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
3772
3773         * rand.c: fix read loop to correctly handle EINTR.
3774
3775 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
3776
3777         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
3778         internal calls are defined to keep methods closer to the declaring
3779         type and allow a significant reduction in runtime relocations and
3780         memory usage.
3781
3782 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
3783
3784         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
3785         exception message to have FileNotFoundException use the default
3786         assembly load error message. Fixes bug #79426.
3787         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
3788
3789 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3790
3791         * threadpool.c: (start_thread_or_queue) use the root domain when
3792         creating the thread instead of the async object one.
3793
3794 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
3795
3796         * class.c, object.c, class-internals.h, reflection.c:
3797         for arrays, store element_size inside MonoClass (speedup
3798         for array object creation).
3799
3800 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
3801
3802         * icall.c: fixed CodeBase to use the file name and not the module
3803         name (bug #79365).
3804
3805 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
3806
3807         * mono-debug.c, mono-debug.h: export find_method as
3808         mono_debug_find_method ().
3809
3810 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
3811
3812         * debug-helpers.c, class-internals.h: added a few functions useful
3813         when debugging under gdb.
3814
3815 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3816
3817         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
3818         characters that need special handling.
3819
3820 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
3821
3822         * mono-config.c: make the os/cpu specification more flexible,
3823         allowing lists and negation.
3824
3825 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
3826
3827         * marshal.c: COM Interop fixes. Handle case where method->klass.
3828         is interface. Handle BSTR/MonoString when null. Use CDECL as 
3829         calling convention on non-windows platforms. This is for
3830         compatibility with XPCOM and MainWin COM.
3831         
3832         Code is contributed under MIT/X11 license.
3833         
3834
3835 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
3836
3837         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
3838         correctly. Fixes #79217.
3839
3840         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
3841
3842 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
3843
3844         * mono-config.c: allow both an os and cpu attribute for dllmap
3845         and dllentry elemnets to enable a single config file to be used
3846         for multiple architectures.
3847
3848 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
3849
3850         * loader.c: MonoLoaderError was cleared too soon on load failure.
3851         Fixes bug #79424.
3852
3853 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
3854
3855         * icall.c: use the defining class vtable when accessing a
3856         static field, not a pobblibly derived class.
3857
3858 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
3859
3860         * icall.c string-icalls.c: Remove references to unicode.h.
3861
3862         * unicode.h unicode.c Makefile.am: Remove these unused source files.
3863
3864         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
3865
3866         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
3867         indicating the image where custom marshaller types should be looked up.
3868         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
3869         custom marshallers, instead of corlib. Fixes #79425.
3870
3871 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
3872
3873         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
3874
3875 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
3876
3877         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
3878         Implement Environment.ProcessorCount.
3879         
3880         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
3881         Implement Environment.ProcessorCount.
3882         
3883         * icall.c: 
3884         Add Environment.ProcessorCount icall.
3885         
3886         Patch by Jason McFall.
3887
3888 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3889
3890         * assembly.c: don't append .exe/.dll when the filename already contains
3891         one of those extensions.
3892
3893 2006-09-12  Martin Baulig  <martin@ximian.com>
3894
3895         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
3896         to array interfaces.
3897
3898 2006-09-11  Martin Baulig  <martin@ximian.com>
3899
3900         * reflection.c (mono_image_build_metadata): Create the
3901         MethodImpl's after emitting all types and methods, so we don't
3902         need another fixup pass for them.
3903
3904 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
3905
3906         * class.c (mono_class_from_name_case): Fix regression introduced by the last
3907         change.
3908
3909 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
3910
3911         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
3912         unload.
3913
3914 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
3915
3916         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
3917         args is not set. Fixes #78926.
3918
3919 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
3920
3921         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
3922
3923         * image.c (load_class_names): Move this to class.c, and rename it to 
3924         'mono_image_init_name_cache'.
3925         (load_modules): Fix a warning.
3926
3927         * class.c icall.c image.c: Initialize image->name_cache lazily.
3928
3929         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
3930         on its name using information in the AOT file.
3931
3932         * class.c (mono_class_from_name): Use the new hook function.
3933
3934 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
3935
3936         * reflection.c (mono_param_get_objects): Handle enum default parameter values
3937         correctly.
3938
3939         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
3940         Fixes #79289.
3941         
3942 2006-09-06  Martin Baulig  <martin@ximian.com>
3943
3944         * icall.c (mono_lookup_internal_call): Small fix.
3945
3946 2006-09-05  Raja R Harinath  <rharinath@novell.com>
3947
3948         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
3949         double g_free.
3950
3951 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
3952
3953         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
3954         when --debug is specified.
3955
3956 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
3957
3958         * class.c (setup_generic_array_ifaces): Fix a warning.
3959
3960 2006-09-04  Miguel de Icaza  <miguel@novell.com>
3961
3962         * Temporarily remove the patch to assemly.c that checks the
3963         assembly versions as it breaks our gacutil.
3964
3965 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
3966
3967         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
3968
3969         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
3970         a net 1.0 runtime.
3971
3972         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
3973         created using the default ctor. Fixes #79152.
3974         (mono_string_builder_to_utf16): Ditto.
3975
3976 2006-09-01  Martin Baulig  <martin@ximian.com>
3977
3978         Fix handling of the generic array interfaces.
3979
3980         * class-internals.h
3981         (MonoDefaults): Removed `generic_array_class' and added
3982         `generic_ilist' class.
3983
3984         * class.c
3985         (mono_bounded_array_class_get): Add the new generic array interfaces.
3986         (setup_generic_array_ifaces): New static method; create vtable
3987         entries for each method in the generic array interfaces.
3988
3989         * metadata.c
3990         (select_container): Allow "parent-less" generic methods.
3991
3992         * marshal.c
3993         (mono_marshal_get_generic_array_helper): New public method.
3994
3995         * icall.c
3996         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
3997         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
3998         moved the interncall into System.Array.
3999
4000 2006-09-01  Raja R Harinath  <rharinath@novell.com>
4001
4002         A few more cases of avoiding work on types with ->byref set.
4003         Has the real fix for #79238
4004         * icall.c (is_generic_parameter): New helper.
4005         (ves_icall_Type_GetGenericParameterPosition): Use it.
4006         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
4007         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
4008         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
4009         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
4010         reference types.
4011         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
4012         reference types.
4013         (ves_icall_Type_get_IsGenericInstance): Likewise.
4014         (ves_icall_Type_get_IsGenericType): Likewise.
4015
4016 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
4017
4018         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
4019         class if possible.
4020
4021         * mempool.h (mono_mempool_get_allocated): New helper function.
4022
4023         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
4024         change.
4025
4026         * mempool.c: Fix warnings and the calculation of stats.
4027
4028         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
4029
4030         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
4031
4032         * loader.c (mono_get_method_from_token): Update method_count stat.
4033
4034         * class-internals.h (MonoStats): Add some stats.
4035
4036 2006-08-31 Robert Jordan  <robertj@gmx.net>
4037
4038         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
4039         with managed variants.
4040         All code is contributed under the MIT/X11 license.
4041         
4042 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
4043
4044         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
4045         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
4046
4047         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
4048
4049         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
4050         with cycles in classes.
4051
4052         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
4053
4054         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
4055         missing a [MarshalAs] directive. Fixes #79203.
4056
4057         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
4058         klass->marshal_info. Fixes #79217.
4059
4060 2006-08-30  Martin Baulig  <martin@ximian.com>
4061
4062         Committing a patch from Joachim Ante <joe@otee.dk>:
4063         Add support for binary data symbol stores.
4064
4065         * debug-mono-symfile.c
4066         (mono_debug_open_mono_symbol_file): Renamed into
4067         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
4068         arguments.
4069
4070         * mono-debug.c
4071         (mono_debug_open_image): Added `raw_contents' and `size' args.
4072         (mono_debug_init_2_memory): New public function.
4073
4074 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
4075
4076         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
4077
4078 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4079
4080         * appdomain.c: implement support for ShadowCopyFiles.
4081
4082 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
4083
4084         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
4085         when value is NULL (and should remove CID #51).
4086
4087 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4088
4089         * image.c: moved 2 functions to ../utils.
4090
4091 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
4092
4093         * gc.c: cope with the target object of a GC handle being NULL
4094         (bug #78877).
4095
4096 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
4097
4098         * class.c: recursively check parent's explicit implementations
4099         of interface methods (fixes bug #79125).
4100
4101 2006-08-19  Miguel de Icaza  <miguel@novell.com>
4102
4103         * filewatcher.c: Avoid warnings when building, do not redefine
4104         constants that are defined.
4105
4106         Remove warnings.
4107
4108 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4109
4110         * image.c: don't fail when the link points to an absolute path.
4111
4112 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
4113
4114         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
4115         Fix CID #3.
4116
4117 2006-08-17  Miguel de Icaza  <miguel@novell.com>
4118
4119         * image.c (full_path): A new method used to obtain the actual path
4120         of an assembly even in the presence of symbolic links.  
4121
4122         This is necessary for the case where we are running a binary that
4123         has been GACed, but we are using the "published" path name
4124         ($prefix/mono/1.0/blah.exe) which happens to point to the real
4125         file in the GAC.
4126
4127         This was the source of the failure for the `xsp' command with the
4128         recent AppDomain changes, as far as the runtime was concerned,
4129         there were two different assemblies: $prefix/mono/1.0/blah.exe and
4130         $prefix/mono/gac/blah/version/blah.exe.
4131
4132         (do_mono_image_open): use full path
4133
4134 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
4135
4136         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
4137
4138 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
4139
4140         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
4141         domain_id is supplied. Fix CID #241 and corlib's unit tests.
4142
4143 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
4144
4145         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
4146         small structures. Fixes #78990.
4147
4148 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
4149
4150         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
4151
4152         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
4153
4154 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4155
4156         * appdomain.c:
4157         * marshal.c: don't load all the assemblies from a domain into newly
4158         created ones. The new domains might have different rules and load
4159         assemblies from different locations. Fixes bug #76757.
4160
4161         Patch by Lluis. Conflicts resolved by Brian Crowell.
4162
4163 2006-08-16  Alp Toker  <alp@atoker.com>
4164
4165         * socket-io.c: First half of the fix for #79084.
4166         Set sa_size to the length of the content, not that of the struct.
4167         Don't add NULL suffix to the content, this should be done in
4168         managed code if needed.
4169
4170 2006-08-14  Raja R Harinath  <rharinath@novell.com>
4171
4172         Fix part of #79012
4173         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
4174         mono_metadata_parse_type returns NULL.
4175
4176 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
4177
4178         * normalization-tables.h : new file for string normalization data.
4179         * locales.c, locales.h, icall.c :
4180           added load_normalization_resource() for string normalization,
4181           and icall as well.
4182         * Makefile.am : added normalization-tables.h to the sources.
4183
4184 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
4185
4186         * marshal.c: Add more helper functions to reduce code duplication and use them
4187         everywhere.
4188
4189 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
4190
4191         * marshal.c: Fix non-x86 stdcall warnings.
4192         
4193         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
4194         them everywhere.
4195
4196 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
4197
4198         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
4199         type check on multi-dimensional arrays. Fixes #79000.
4200
4201 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
4202
4203         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
4204         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
4205         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
4206         * class-internals.h: add is_com_object to class structure.
4207         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
4208         null checks to COM object marshalling. Fix .ctor call on RCW.
4209         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
4210         
4211         All code is contributed under the MIT/X11 license.
4212
4213 2006-08-09  Dick Porter  <dick@ximian.com>
4214
4215         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
4216         racing mono_monitor_allocator_lock() somewhere, so don't delete
4217         the critical section for now.  Found by running and exiting
4218         monodevelop.
4219
4220 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
4221
4222         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
4223         (ves_icall_System_ComObject_FindInterface): Ditto.
4224         (ves_icall_System_ComObject_CacheInterface): Ditto.
4225
4226         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
4227         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
4228
4229 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4230
4231         * threadpool.c: treat pipes from process asynchronous reads as sockets
4232         when reading from them, so we get select/poll or epoll to wait for
4233         data.
4234
4235 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
4236
4237         * loader.c: Fix a typo (CID #233) in the null check.
4238
4239 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
4240
4241         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
4242         Hopefully fixes #78949.
4243         
4244         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
4245         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
4246         bytes. Fixes #78972.
4247
4248 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4249
4250         * filewatcher.c: we need to set errno here.
4251
4252 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4253
4254         * filewatcher.c: let Win32Exception get the error value.
4255
4256 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4257
4258         * filewatcher.c: translate errno into win32 errors for Win32Exception
4259         to know what happened.
4260
4261 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
4262
4263         * threadpool.c: Fix more warnings.
4264
4265         * assembly.c (search_loaded): Fix warnings.
4266
4267         * threadpool.c (mono_thread_pool_finish): Fix warnings.
4268         (mono_async_invoke): Ditto.
4269
4270 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
4271
4272         * object.c (mono_remote_class_vtable): Need to create proxy vtable
4273         entries for __ComObject type in addition to ComImport types.
4274         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
4275         about hash table.
4276         
4277         All code is contributed under the MIT/X11 license.
4278
4279 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
4280
4281         * image.c: avoid tentative loading of modulerefs that contain
4282         no metadata (P/Invoke library names).
4283
4284 2006-07-28  Dick Porter  <dick@ximian.com>
4285
4286         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
4287         mono_loader_lock() somewhere, so don't delete the critical section
4288         for now.  Found by running and exiting monodevelop.
4289
4290 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4291
4292         * filewatcher.c: define the inotify syscalls when we're building on
4293         linux and have sys/syscall.h. The build system might not have support
4294         for inotify but the target system might have it.
4295
4296 2006-07-26  Miguel de Icaza  <miguel@novell.com>
4297
4298         * domain.c: Documentation updates.
4299
4300         * loader.c (mono_free_method): Do not release the method
4301         information if we are being profiled, as profilers will use this
4302         information at shut down to present some data to the user.
4303
4304         This is needed so that the profiler does not crash, as the
4305         profiler tends to keep MonoMethods around, and they might become
4306         invalid if we free these.
4307
4308         (mono_get_method_constrained): Return the original CIL stream
4309         method as well, so verification can be performed against it.
4310
4311 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4312
4313         * filewatcher.[ch]: support for inotify file system watcher.
4314         * icall.c: add new internal calls for the inotify file system watcher.
4315
4316 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4317
4318         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
4319         #78888.
4320
4321 2006-07-20  Dick Porter  <dick@ximian.com>
4322
4323         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
4324         warning.
4325
4326 2006-07-20  Dick Porter  <dick@ximian.com>
4327
4328         * threads.c (start_wrapper): Do the thread cleanup while we still
4329         hold a reference to its object.  Fixes bug 78123.
4330
4331 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
4332
4333         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
4334         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
4335           "managed-to-managed".
4336         * icall.c: Redirect string constructors that take sbyte* to
4337           ves_icall_System_String_ctor_RedirectToCreateString.
4338         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
4339           to CreateString () methods with matching signature.
4340         * reflection.c: Use original security informations for
4341           MONO_WRAPPER_MANAGED_TO_MANAGED.
4342         * security-manager.c: Use original security informations for
4343           MONO_WRAPPER_MANAGED_TO_MANAGED.
4344         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
4345           that is a placeholder and only its address should be used.
4346         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
4347           that is a placeholder and only its address should be used.
4348
4349 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
4350
4351         Begin implementing COM Interop.
4352         * appdomain.c: Increment corlib version.
4353         * class.c: Set ComImport classes' parent to __ComObject.
4354         * loader.c: Mark cominterop methods as such.
4355         * domain.c: Add __ComObject class to MonoDefaults structure.
4356         * image.c: Add 2 hashtables to the image for COM Interop related methods
4357         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
4358         using the mempool allocator
4359         
4360         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
4361         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
4362         declaration for mono_metadata_type_dup_mp.
4363         
4364         * debug-helpers.c: Added strings for two additional wrapper types
4365         * object.c: Create proxy objects for ComImport classes
4366         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
4367         and added __ComObject class to MonoDefaults structure.
4368         
4369         * object-internals.h: Finish MonoRealProxy definition, and add definition of
4370         MonoComInteropProxy and MonoComObject.
4371         
4372         * marshal.c: Added support for COM Interop
4373         (signature_cominterop): Converts managed signature to corresponding
4374         unmanaged COM signature.
4375         (cominterop_get_function_pointer): gets unmanaged function pointer via
4376         COM object vtable
4377         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
4378         (cominterop_get_method_interface): returns interface type that method is defined on
4379         (mono_mb_emit_cominterop_call): emits native call to function pointer
4380         gotten from vtable
4381         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
4382         that matches signature of unmanaged function.
4383         (cominterop_get_native_wrapper): wrapper around adjusted method call.
4384         (cominterop_get_invoke): forwards call from proxy to __ComObject
4385         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
4386         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
4387         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
4388         
4389         * marshal.h: Added Marshal icall declarations.
4390         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
4391         so we can access them in finalizer
4392         
4393 2006-07-14  Dick Porter  <dick@ximian.com>
4394
4395         * object.c (mono_type_initialization_cleanup): Fix a race
4396         condition by temporarily commenting out the critical section
4397         deletion.
4398
4399 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
4400
4401         * reflection.c (create_custom_attr): Fix some warnings.
4402         (create_custom_attr_data): Ditto.
4403         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
4404         types. Fixes #78855.
4405
4406 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
4407
4408         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
4409
4410         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
4411
4412 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
4413
4414         * reflection.c (resolve_object): Add support for DynamicMethod.
4415
4416         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
4417         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
4418
4419 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
4420
4421         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
4422         don't leak GPtrArray's pdata has we have no use (nor free) for it.
4423
4424 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
4425
4426         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
4427         Fixes #77888.
4428
4429 2006-06-30  Raja R Harinath  <rharinath@novell.com>
4430
4431         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
4432         slightly: remove a shadow local variable.
4433
4434 2006-06-29  Raja R Harinath  <rharinath@novell.com>
4435
4436         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
4437         definition that introduces the virtual function slot.
4438         Also fix Coverity #105.
4439
4440 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
4441
4442         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
4443         for dynamic assemblies. Fixes #78724.
4444
4445 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
4446
4447         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
4448         Fixes #78722.
4449
4450 2006-06-21  Martin Baulig  <martin@ximian.com>
4451
4452         * reflection.c
4453         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
4454         fixes #76484.
4455
4456 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
4457
4458         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
4459
4460 2006-06-20  Raja R Harinath  <rharinath@novell.com>
4461
4462         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
4463         nor TYPEREFs.
4464         * class.c (mono_class_create_from_typespec): Add 'context' argument.
4465         Inflate result if necessary.
4466         (mono_class_get_full): Remove old version.  Rename from
4467         'mono_class_get' and add 'context' argument.  Pass it to
4468         ..._create_from_typespec.
4469         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
4470         (mono_ldtoken): Revert change below.
4471
4472 2006-06-20  Martin Baulig  <martin@ximian.com>
4473
4474         * class.c (mono_ldtoken): Don't pass the generic context to
4475         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
4476
4477 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
4478
4479         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
4480         and later freeing it. Fixes #78638.
4481
4482 2006-06-15  Miguel de Icaza  <miguel@novell.com>
4483
4484         * icall.c (mono_class_get_throw): Revert over-zealous error
4485         throwing, the caller for mono_class_get_throw will cope with
4486         errors when classes are not properly initialized already.
4487
4488         The code still copes with loader exceptions though.
4489
4490         Fixes the regression in reftype1 and reftype3 from the CAS tests.
4491         
4492 2006-06-14  Miguel de Icaza  <miguel@novell.com>
4493
4494         Fixes the `make run1' version of RuntimeAbort (to be commited,
4495         source is in Bugzilla).
4496         
4497         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
4498         FALSE on class loading failure instead of returning true.
4499
4500         * class.c (mono_class_create_from_typedef): It is possible for
4501         mono_metadata_interfaces_from_typedef_full to fail if a class is
4502         not found, cope with this.
4503         
4504
4505 2006-06-14  Dick Porter  <dick@ximian.com>
4506
4507         * socket-io.c: 
4508         * process.c: Fix a bunch of signed/unsigned warnings from gcc
4509         4.1.1
4510
4511 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
4512
4513         * culture-info-table.h : oops, forgot to make it nsync with r61548.
4514
4515 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
4516
4517         * icall.c: Another fix for building mono in Visual Studio.
4518
4519 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
4520
4521         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
4522         
4523 2006-06-09  Martin Baulig  <martin@ximian.com>
4524
4525         * debug-mono-symfile.c: Put this back and really fix it this
4526         time. Sorry for all the trouble.
4527
4528 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
4529
4530         * icall.c (mono_class_get_throw): Fix a warning.
4531         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
4532         ReflectionTypeLoadException if needed. Fixes #78606.
4533
4534         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
4535         (mono_class_init): Ditto.
4536
4537         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
4538         ref_only exceptions.
4539         (mono_loader_clear_error): Make this work even if there is no error.
4540
4541 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
4542
4543         * object-internals.h marshal.c marshal.h icall.c: Implement method 
4544         Marshal.GetComSlotForMethodInfo using internal call.
4545
4546 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
4547
4548         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
4549         a function for signalling it.
4550
4551         * class.c (mono_class_from_typeref): Use the new kind of loader error when
4552         a referenced assembly is not found.
4553
4554         * loader.c (mono_loader_error_prepare_exception): Add support for 
4555         LOADER_ERROR_ASSEMBLY. Fix formatting.
4556
4557 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
4558
4559         * domain.c appdomain.c class-internals.h marshal.c: Add support 
4560         for VARIANT marshalling on windows and increment corlib version
4561         since Variant struct was added.
4562
4563 2006-06-03  Miguel de Icaza  <miguel@novell.com>
4564
4565         * debug-mono-symfile.c: Revert Martin's previous patch which broke
4566         stack trace line information:
4567
4568         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
4569         (Martin) when looking up B which is between A and C, return A not C.
4570
4571         Bug is #78573.
4572
4573         Thanks to Alexander Olk for tracking this down.
4574
4575 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
4576
4577         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
4578         
4579         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
4580         avoid clobbering its value.
4581         (mono_string_to_lpstr): Fix a warning on windows.
4582
4583 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
4584
4585         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
4586
4587         * reflection.c loader.c: Removed references to 'dummy' flag.
4588
4589         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
4590
4591         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
4592         it gets GC tracking.
4593
4594         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
4595         GC tracking.
4596         
4597         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
4598
4599         * marshal.c threadpool.c: Update callers of mono_async_result_new.
4600
4601         * appdomain.c: Bump corlib version.
4602
4603 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
4604
4605         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
4606         CEE_STIND_REF when working with object references.
4607
4608 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
4609
4610         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
4611         Fixes #78539.
4612
4613 2006-05-30  Miguel de Icaza  <miguel@novell.com>
4614
4615         * loader.c (method_from_memberref): Fix argument value for
4616         mono_loader_set_error_method_load (I was passing the MonoClass
4617         instead of the class name char *).
4618
4619 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
4620
4621         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
4622         CEE_STIND_REF when working with object references.
4623
4624 2006-05-30  Martin Baulig  <martin@ximian.com>
4625
4626         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
4627         mono_method_full_name() change and replace the ':' with a '.'
4628         here.
4629
4630 2006-05-30  Martin Baulig  <martin@ximian.com>
4631
4632         * debug-mono-symfile.c
4633         (mono_debug_symfile_lookup_location): Fix the algorithm:
4634         when looking up B which is between A and C, return A not C.
4635
4636 2006-05-29  Martin Baulig  <martin@ximian.com>
4637
4638         * mono-debug.h
4639         (MonoDebugMethodInfo): Make the typedef public.
4640         (MonoDebugSourceLocation): New public struct.
4641
4642         * mono-debug.c
4643         (mono_debug_source_location_from_address): Removed.
4644         (mono_debug_source_location_from_il_offset): Removed.
4645         (mono_debug_il_offset_from_address): Removed.
4646         (mono_debug_address_from_il_offset): Removed.
4647         (mono_debug_lookup_method): New public function.
4648         (mono_debug_lookup_source_location): New public function; replaces
4649         the old mono_debug_source_location_from_*() functions; see the
4650         inline documentation.
4651         (mono_debug_free_source_location): New public function.
4652         (mono_debug_print_stack_frame): New public function; see the
4653         inline documentation.
4654
4655         * debug-mono-symfile.c
4656         (mono_debug_find_source_location): Renamed into
4657         mono_debug_symfile_lookup_location(); only take a
4658         `MonoDebugMethodInfo *' and an `offset' argument; added inline
4659         documentation.
4660         (mono_debug_find_method): Renamed into
4661         mono_debug_symfile_lookup_method().
4662
4663 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
4664
4665         * assembly.c (mono_assembly_open_full): Dont overwrite the status
4666         returned by mono_image_open_full ().
4667
4668         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
4669         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
4670         #78517.
4671
4672         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
4673         #78518.
4674
4675 2006-05-27  Miguel de Icaza  <miguel@novell.com>
4676
4677         * class.c (mono_class_from_typeref): handle missing images
4678         earlier, deals with bug #78418.   Refactor code; 
4679
4680         Fix a warning introduced in my previous commit (some stale code
4681         from before I revisited my patch).
4682
4683         * class.c (mono_class_create_from_typedef): On failure, remove the
4684         class from the MonoImage->class_cache as the class is not
4685         initialized;   Fixes the leak pointed out by Paolo.
4686
4687 2006-05-25  Dick Porter  <dick@ximian.com>
4688
4689         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
4690         DeleteCriticalSections until I figure out which one may still be
4691         sometimes locked when mono_thread_cleanup is called.
4692
4693 2006-05-24  Dick Porter  <dick@ximian.com>
4694
4695         * threads.c (mono_thread_cleanup): Move the threading cleanup out
4696         of mono_thread_manage and back into its own function, so it can be
4697         called after the finalizer thread has finished.
4698
4699         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
4700
4701 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
4702
4703         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
4704         Fixes #78495.
4705
4706         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
4707         with non-blittable elements.
4708         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
4709
4710 2006-05-24  Martin Baulig  <martin@ximian.com>
4711
4712         * mono-debug-debugger.h (MonoDebuggerEvent): Added
4713         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
4714
4715         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
4716         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
4717         `mono_debugger_event_handler' to NULL.
4718
4719 2006-05-24  Martin Baulig  <martin@ximian.com>
4720
4721         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
4722
4723 2006-05-24  Martin Baulig  <martin@ximian.com>
4724
4725         * mono-debug-debugger.h
4726         (mono_debugger_create_notification_function): Added
4727         `MonoCodeManager *' argument.
4728
4729 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
4730
4731         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
4732
4733 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
4734
4735         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
4736         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
4737         implementation.
4738
4739 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
4740
4741         * icall.c: precise GC support: objects can't be stored in unmanaged
4742         memory anymore, even if they are kept alive by other references: since
4743         they can move the GC needs to be able to always find them.
4744
4745 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
4746
4747         * object.c: precise GC support for static fields. Support
4748         for moving GCs: write barriers and pinned allocation for interned
4749         strings.
4750
4751 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
4752
4753         * domain.c, domain-internals.h: precise GC support for the MonoDomain
4754         structure.
4755
4756 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
4757
4758         * class.c, gc.c: sgen and precise GC updates.
4759
4760 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
4761
4762         * marshal.h, marshal.c: added write barrier wrapper and precise type
4763         fixes.
4764
4765 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
4766
4767         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
4768         support.
4769
4770 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
4771
4772         * reflection.c: precise and sgen GC updates.
4773
4774 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
4775
4776         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
4777
4778 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
4779
4780         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
4781
4782 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
4783
4784         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
4785         MONO_TYPE_OBJECT. Fixes #78462.
4786
4787 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
4788
4789         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
4790         and blittable types.
4791
4792 2006-05-17  Miguel de Icaza  <miguel@novell.com>
4793
4794         * class.c (mono_class_get_exception_for_failure): Implement parts
4795         of a TODO: if the loader error is set (instead of the class
4796         error), we return a Loader exception that can be properly thrown
4797         elsewhere.
4798
4799         This was exposed by some Winforms 2.0 code that I tried to run
4800         (Atsushi pointed me to it).
4801
4802 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
4803
4804         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
4805         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
4806         
4807         * marshal.c (emit_marshal_vtype): Add limited support for 
4808         UnmanagedType.LPStruct. Fixes #78427.
4809
4810         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
4811         Applied a patch from kangaroo to fix #77523.
4812
4813 2006-05-17  Martin Baulig  <martin@ximian.com>
4814
4815         * threads.c
4816         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
4817         (debugger_thread_created): Removed.
4818         (debugger_thread_exited): Removed.
4819
4820 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
4821
4822         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4823
4824         * object-internals.h (MonoReflectionResource): Sync with managed version.
4825
4826 2006-05-12  Wade Berrier <wberrier@novell.com>
4827
4828         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
4829
4830 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
4831
4832         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
4833         functions try to allocate from the image mempool.
4834
4835 2006-05-12  Dick Porter  <dick@ximian.com>
4836
4837         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
4838
4839 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
4840
4841         * object.c: The FieldGetter and FieldSetter methods require the full
4842         name of the class, not only the name. Fixes bug #78277.
4843
4844 2006-05-11  Miguel de Icaza  <miguel@novell.com>
4845
4846         * loader.c (method_from_memberref): Do not pass the NULL klass to
4847         mono_loader_set_error_() methods.  Pass the non-NULL value
4848         (class). 
4849
4850 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
4851
4852         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
4853         (mono_assembly_close): Null out assembly->image->references after freeing it.
4854
4855         * image.c (mono_image_close): Free image->references.
4856         
4857         * reflection.c (mono_image_basic_init): Fix a small memory leak.
4858
4859 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
4860
4861         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
4862         before checking if it's NULL (g_assert).
4863
4864 2006-05-10  Martin Baulig  <martin@ximian.com>
4865
4866         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
4867         I thought I already killed that two months ago, but now it somehow reappeared.
4868
4869 2006-05-10  Martin Baulig  <martin@ximian.com>
4870
4871         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
4872
4873 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
4874
4875         * reflection.c: Allocate memory for dynamically created methods in the image
4876         mempools.
4877
4878 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
4879
4880         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
4881         don't use the ad pointer before checking if it's NULL (g_assert).
4882
4883 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
4884
4885         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
4886         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
4887
4888         * marshal.c: Allocate all signatures from mempools.
4889
4890         * marshal.c: Allocate some more signatures from mempools.
4891
4892 2006-05-09  Miguel de Icaza  <miguel@novell.com>
4893
4894         * object.c (mono_load_remote_field): The code used to provide a
4895         temporary variable for returning results if the user did not
4896         provide a result pointer.  But our temporary variable was allocted
4897         on the satck.
4898
4899         Fix calling code to always pass a result area.   Coverity ID 103.
4900
4901 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
4902
4903         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
4904         value, not the old. Fixes #78312.
4905         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
4906
4907         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
4908         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
4909         per-image cache.
4910
4911         * assembly.c (mono_assembly_close): Free image->references.
4912
4913         * assembly.c (mono_assembly_names_equal): Fix a warning.
4914         (mono_assemblies_cleanup): Cleanup more global data.
4915
4916         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
4917
4918         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
4919         ptr_cache and image->modules.
4920
4921         * image.c (mono_image_init): Allocate array_cache lazily.
4922         
4923 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4924
4925         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
4926         behavior was changed recently and has bad side effects.
4927
4928 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
4929
4930         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
4931         
4932         * assembly.c (mono_assembly_close): Remove a debug printf.
4933
4934         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
4935
4936         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
4937         to also allow for temporary references between mono_image_open ()/close ().
4938
4939         * domain.c (get_runtimes_from_exe): Add a FIXME.        
4940
4941 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
4942
4943         * marshal.c: Fix support for dynamic methods.
4944
4945         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
4946
4947         * marshal.c (mono_marshal_cleanup): New cleanup function.
4948
4949         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
4950         image mempools.
4951
4952         * class.c (mono_class_init): Fix leaking class->nested_classes.
4953
4954         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
4955
4956         * image.c (mono_image_init): Initialize the new cashes.
4957
4958         * image.c (mono_image_close): Destroy the new cashes.
4959
4960         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
4961
4962         * mempool.c (mono_mempool_strdup): New helper function.
4963
4964         * class-internals.h: Add prototype for mono_loader_unlock ().
4965
4966         * domain.c (mono_jit_info_table_find): Fix a warning.
4967         (mono_debugger_check_runtime_version): Ditto.
4968
4969         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
4970         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
4971         functions to these modules.
4972
4973         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
4974         metadata modules.
4975         
4976         * marshal.c (mono_free_bstr): Fix a warning.
4977
4978         * assembly.c (mono_assembly_open_full): Fix another small leak.
4979
4980         * object.c: Fix some unload leaks in the remoting code.
4981
4982         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
4983         function.
4984
4985         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
4986
4987         * reflection.c: Fix some unload leaks in dynamic assemblies.
4988
4989 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
4990
4991         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
4992         * marshal.h: Add BSTR support on Win32
4993         * icall.c: Add BSTR icalls
4994         * metadata.h: Add BSTR enums
4995
4996 2006-04-28  Miguel de Icaza  <miguel@novell.com>
4997
4998         Work to catch the crash from #76795 and turn it into an
4999         exception.   As I stubbed out pieces of the VisualBasic support,
5000         I found a number of places where the code was failing and I added
5001         checks to those places. 
5002         
5003         * metadata.c (do_mono_metadata_parse_generic_class): Make this
5004         function return a status code.  If we fail to parse the signature
5005         from mono_metadata_parse_generic_inst, return FALSE.
5006
5007         * loader.c (mono_get_method_from_token): If we fail to load the
5008         method (mono_class_get) return NULL.   
5009
5010         * (method_from_memberref): Return NULL if we are unable to parse
5011         the method signature
5012
5013         (mono_loader_error_prepare_exception): Since we now use the
5014         loader_error flag internally to stop processing, and obtaining
5015         exceptions that might be thrown will walk this code path the
5016         proper way of going from a MonoLoaderError into a
5017         MonoException was convoluted.   This new routine encapsulates the
5018         process of turning the error into an exception and *clearing* the
5019         error afterwards.
5020         
5021 2006-04-27  Miguel de Icaza  <miguel@novell.com>
5022
5023         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
5024         with missing assemblies), and to cope with:
5025
5026                 * Missing fieldref from a non-existing assembly.
5027                 * Missing methodref from a non-existing assembly.
5028
5029         The first batch of work to address *some* of the issues from 76661.
5030         
5031         * object.c (mono_class_create_runtime_vtable): If we fail to
5032         initialize the class raise the exception here. 
5033
5034         * metadata.c (mono_class_get_overrides_full): If any methods fail
5035         to load return the failure to the caller.
5036
5037         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
5038         flagging assemblies that failed to load.   
5039
5040         Do not crash if we are unable to load the assembly.
5041
5042         (mono_assembly_close): Do nothing with REFERENCE_MISSING
5043         assemblies. 
5044
5045         * loader.c (mono_loader_set_error_type_load): Change the
5046         convention to always pass unallocated strings, so we make our own
5047         copies (I know our own code had duplicated strings before, but
5048         this keeps the normal conventions).
5049         (method_from_memberref): Call mono_loader_set_error_method_load
5050         for all possible failures of loading the class. 
5051         Remove assert, turn into a loader error.
5052
5053         (mono_loader_error_to_exception): Move this routine from mini
5054         (mini_loader_error_to_exception) there was no need to have that in
5055         mini. 
5056
5057         * class.c (mono_class_from_typeref): If we were not able to load
5058         the assembly with mono_assembly_load_reference, call the
5059         mono_loader_set_error_type_load to register the problem.
5060
5061         (mono_class_setup_fields): If we fail to load the type from
5062         mono_metadata_parse_type_full, call mono_class_set_failure and
5063         break from the loop.
5064
5065         If class->exception_type is set, we do not layout the fields as
5066         that might crash the runtime, and instead return (from breaking
5067         from the previous loop).
5068
5069         (mono_class_setup_vtable): This now returns a boolean indicating
5070         whether the table was properly setup.   The decision is driven by
5071         mono_class_get_overrides_full which might run into non-existing
5072         methods. 
5073         
5074         (mono_class_init): Returns TRUE on success or FALSE if there was a
5075         problem in loading the type (incorrect assemblies, missing
5076         assemblies, methods, etc).
5077
5078         When we call mono_class_setup_fields we also check for a potential
5079         error inside this call (either a class exception or a general
5080         loader exception).
5081
5082         (mono_class_create_from_typedef): If the parent fails to load
5083         (calling mono_class_get_full) return NULL.
5084         
5085         ** Important **
5086
5087         calls to mono_metadata_parse_type_full should be checked
5088         everywhere and set the mono_class_set_failure
5089         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
5090
5091         The current patch checks the places where my manually constructed
5092         tests show the errors are showing up, but we should do it
5093         everywhere. 
5094
5095         ** Important2 **
5096
5097         mono_class_init return values should be tested everywhere, like
5098         the previous case this is something that we should audit
5099         everywhere and not only on the cases exposed by the tests I
5100         created. 
5101
5102 2006-04-26  Miguel de Icaza  <miguel@novell.com>
5103
5104         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
5105         boolean parameter and instead pass the information on `options'
5106         parameter (FileOptions).
5107
5108         * icall.c: Register the new signature for MonoIO.Open.
5109
5110         * debug-helpers.c (dis_one): Trying to understand how coverity
5111         works.  Fix Run 5, item 78.
5112
5113 2006-04-26  Dick Porter  <dick@ximian.com>
5114
5115         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
5116         dereference.
5117
5118 2006-04-25  Martin Baulig  <martin@ximian.com>
5119
5120         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
5121
5122         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
5123         debugger_thread_created().
5124         (debugger_gc_push_all_stacks): Don't handle the main thread in any
5125         special way.
5126         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
5127         (mono_debugger_finalize_threads): New function; undo the effects
5128         of mono_debugger_init_threads().
5129         (mono_debugger_create_all_threads): Removed.
5130
5131 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
5132
5133         * image.c (mono_image_close): Tidy up trace messages.
5134
5135         * assembly.c (mono_assembly_close): Ditto.
5136
5137         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
5138         no longer references an already freed assembly. Fixes #78168.
5139
5140 2006-04-21  Dick Porter  <dick@ximian.com>
5141
5142         * threads.c (mono_thread_detach): Fix reference counting when
5143         detaching threads.
5144
5145 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
5146
5147         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
5148         #78155.
5149
5150 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
5151
5152         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
5153         (mono_type_to_stind): Ditto.
5154
5155         * marshal.c: Use the new helper functions to simplify code.
5156
5157         * image.c (mono_image_close): Add some code for help debug assembly unloading
5158         problems.
5159
5160         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
5161         image mempool.
5162
5163         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
5164         assembly was already loaded in another appdomain. Fixes #78083.
5165
5166 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
5167
5168         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
5169         referenced assemblies.
5170         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
5171
5172         * domain.c (mono_domain_free): Add a trace message.
5173
5174         * appdomain.c (add_assemblies_to_domain): Ditto.        
5175
5176         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
5177         field.  
5178
5179 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
5180
5181         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
5182
5183 2006-04-12  Martin Baulig  <martin@ximian.com>
5184
5185         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
5186         `USE_INCLUDED_LIBGC'.   
5187
5188 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
5189
5190         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
5191         the patch contains ../ and a small directory name later. Hopefully fixes
5192         #78035.
5193
5194 2006-04-10  Martin Baulig  <martin@ximian.com>
5195
5196         Clean up the debugger's thread-handling code.
5197
5198         The debugger's thread-handling code has been moved from
5199         ../mini/debug-debugger.c to threads.c.  We now iterate directly
5200         over the `threads' hash, keep track of exiting threads and also
5201         use proper locking.
5202
5203         We can now debug XSP and XSP based applications with the debugger.
5204
5205         * object-internals.h (MonoThread): Added `gpointer end_stack'.
5206
5207         * threads.h
5208         (MonoThreadCallbacks): Removed; this was only used by the debugger.
5209         (mono_install_thread_callbacks): Likewise.      
5210
5211         * threads.c (mono_thread_callbacks): Removed.
5212         (debugger_thread_created, debugger_thread_exited): New static functions.
5213         (start_wrapper): Call debugger_thread_created().
5214         (thread_cleanup): Call debugger_thread_exited().
5215         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
5216         (mono_debugger_init_threads): New public function.
5217         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
5218         iterate directly over the `threads' hash and also use proper locking.
5219
5220         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
5221
5222         * mono-debug-debugger.h
5223         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
5224
5225 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
5226
5227         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
5228         argument type=array. Fixes #78057.
5229
5230 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
5231
5232         * culture-info-table.h : regenerated. Fixed bug #69652.
5233
5234 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
5235
5236         * loader.c metadata.c: Reapply a variant r59116.
5237         
5238         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
5239
5240         * class.c (mono_class_setup_interface_offsets): New internal function.
5241
5242         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
5243         interfaces too. Fixes #77398.
5244
5245         * reflection.c (encode_cattr_value): Add support for 
5246         parameter type=object, argument type=array.
5247         (load_cattr_value): Ditto. Fixes #77916.
5248
5249         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
5250         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
5251
5252         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
5253         a byval char array and CharSet is Ansi.
5254
5255         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
5256
5257 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
5258
5259         * metadata.c: Add some locking comments.
5260         
5261         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
5262         mempool.
5263         (mono_metadata_free_method_signature): Don't free the signature itself.
5264
5265         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
5266
5267         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
5268         reference the same MonoImage.
5269         (mono_assembly_load_from_full): Add an assert.
5270
5271 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
5272
5273         * image.c (mono_image_close): Don't put the image we are about to free into the
5274         loaded_images_guid_hash.
5275
5276         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
5277         to reduce code duplication.
5278
5279         * marshal.c: Register the native functions called by this module as icalls, to
5280         somewhat centralize the creation of MonoMethodSignature's.
5281
5282         * loader.c (mono_method_signature): Add a cache for method signatures.
5283
5284         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
5285         the parameter attributes of a method.
5286         (mono_metadata_parse_method_signature_full): Refactored the computation of
5287         parameter attributes into a separate function. Also avoid one allocation in
5288         most cases.
5289
5290         * assembly.c (mono_assembly_close): Ditto.
5291
5292         * image.c (mono_image_close): Log trace messages with INFO level.
5293
5294         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
5295
5296         * image.c reflection.c: Correct reference counting of image modules.
5297         
5298         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
5299         of this function from the image mempool.
5300         
5301         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
5302         to allow more cached types to be used.
5303
5304         * mono-debug.c (mono_debug_add_method): Appled patch from
5305         David S. Miller  <davem@sunset.davemloft.net>: Access 
5306         minfo->lexical_blocks[] entry elements using read32().
5307
5308 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
5309
5310         * loader.c (mono_free_method): No longer free the method header for non-dynamic
5311         methods as it is allocated from the mempool.
5312
5313         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
5314         image mempool.
5315
5316         * metadata-internals.h: Add comments describing the reference counting scheme
5317         used for MonoImage and MonoAssembly.
5318
5319         * image.c assembly.c reflection.c: Rework reference counting of images and 
5320         assemblies so they are freed when the runtime is shut down. Free some 
5321         additional memory structures when an image is unloaded.
5322         
5323 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
5324
5325         * class.c loader.c reflection.c: Allocate more data structures in
5326         the image mempool.
5327
5328 2006-03-31  Miguel de Icaza  <miguel@novell.com>
5329
5330         * icall.c
5331         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
5332         build on pre glib 2.4 systems.
5333
5334 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
5335
5336         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
5337
5338         * icall.c: Fix some warnings.
5339
5340 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
5341
5342         * culture-info-table.h : regenerated.
5343
5344 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
5345
5346         * threads.c, object-internals.h, verify.c: changed the culture caching
5347         code to use a normal MonoArray for storage so the GC can keep track of
5348         them easily. Fixed bits of the cache logic, too and simplified the
5349         code.
5350
5351 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
5352
5353         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
5354         thread for non-Boehm GCs.
5355
5356 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
5357
5358         * domain.c, object.c, domain-internals.h: reduce the amount of memory
5359         needed to keep track of the data for static fields.
5360
5361 2006-03-29  Raja R Harinath  <rharinath@novell.com>
5362
5363         Fix #75172
5364         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
5365         for interface classes.  Use 'num_methods' instead.
5366         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
5367         before using '->vtable_size' field.
5368
5369 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
5370
5371         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
5372         doesn't contain managed pointers, so use a normal hashtable.
5373
5374 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
5375
5376         * reflection.c, class-internals.h, domain.c: fixed handling of types
5377         used as values for objects in custom attributes (bug #77915):
5378
5379 2006-03-24  Martin Baulig  <martin@ximian.com>
5380
5381         * class.c (mono_class_setup_fields): Added support for generic
5382         instances; fixes #77580.
5383
5384 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5385
5386         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
5387
5388 2006-03-24  Dick Porter  <dick@ximian.com>
5389
5390         * file-io.c (get_file_attributes): More stat macro breakage.
5391         Fixes bug 77759.
5392
5393 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
5394
5395         * profiler.c: added the file=filename option in the default profiler
5396         to output the profile data to filename.
5397
5398 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5399
5400         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
5401         bug #77877.
5402
5403 2006-03-22  Martin Baulig  <martin@ximian.com>
5404
5405         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
5406         allocated `MonoClassField *' in `fb->handle'.
5407
5408 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
5409
5410         * class.c, image.c, metadata-internals.h: implemented new mechanism to
5411         allocate interface ID to save memory and allow better ID reuse on
5412         appdomain unload. setup_generic_vtable () removal from Martin.
5413
5414 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
5415
5416         * object.h, appdomain.c, domain.c, exception.c, icall.c,
5417         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
5418         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
5419         write barriers for reference stores with managed objects accessed with
5420         C structures in the runtime and in embedding programs.
5421
5422 2006-03-20  Raja R Harinath  <rharinath@novell.com>
5423
5424         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
5425         'interface_id' and 'max_interface_id' fields of MonoClasses
5426         representing open generic types.
5427
5428 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
5429
5430         * object.h, object.c, icall.c: added functions to deal with
5431         storing valuetypes that contain references in managed objects.
5432         * reflection.c, string-icalls.c, threads.c, marshal.c: small
5433         fixes and comments around uses of mono_array_addr ().
5434
5435 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
5436
5437         * object.h, icall.c, monitor.c: object.GetHashCode ()
5438         implementation that supports the moving garbage collector.
5439
5440 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
5441
5442         * icall.c, threads-types.h, threads.c: implemented finalizer for
5443         LocalDataStoreSlot.
5444
5445 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
5446
5447         * metadata.c (mono_type_size): Add a fixme.
5448         (mono_type_stack_size): Ditto.
5449
5450         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
5451         'type_forwarders' field.
5452
5453         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
5454         attribute from net 2.0.
5455
5456         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
5457         from class.c.
5458
5459         * class.c (mono_class_setup_fields): Fix a warning.
5460         
5461         * class.c (mono_class_from_name): Add support for assemblyref entries
5462         in the EXPORTEDTYPE table.
5463
5464         * reflection.c: Add support for handling type forwarders under net 2.0.
5465
5466         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
5467         
5468 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
5469
5470         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
5471         overwriting entries in ModuleBuild->types, also clean up the code
5472         a little. Fixes #77774.
5473
5474 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
5475
5476         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
5477         load friend assembly info when present.
5478
5479 2006-03-14  Raja R Harinath  <rharinath@novell.com>
5480
5481         Fix crasher on gtest-158.cs.
5482         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
5483         the return value if the MonoClass we want is yet in an
5484         inconsistent state.
5485         * class.c (mono_class_create_from_typedef): Add an comment
5486         explaining an order dependency between mono_class_setup_parent and
5487         mono_class_setup_mono_type.
5488
5489 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
5490
5491         * class.c: documentation updates and events bug fix.
5492
5493 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
5494
5495         * class.c: some cleanup, locking fixes.
5496
5497 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
5498
5499         * class.c: fix the generics code to setup nested
5500         type info to the instantiated type (bug #77770).
5501
5502 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
5503
5504         * marshal.c: fixed a few type correctness issues.
5505
5506 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
5507
5508         * loader.c: the Set/Get/Addrtess array methods should be public.
5509
5510 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
5511
5512         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
5513         
5514         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
5515         info->wrapper.
5516
5517 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
5518
5519         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
5520
5521         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
5522
5523         * mempool.c (mono_mempool_alloc): Speed this up a bit.
5524         (mono_mempool_alloc0): Ditto.
5525
5526 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5527
5528         * socket-io.c:
5529         (create_object_from_sockaddr): it was allocating 4 extra bytes
5530         for the AF_UNIX data. Fixes bug #77747.
5531
5532 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
5533
5534         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
5535
5536 2006-03-09  Dick Porter  <dick@ximian.com>
5537
5538         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
5539         Fixes bug 76966 again.
5540
5541 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
5542
5543         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
5544         names from r57532
5545         * appdomain.c: Bumped corlib version to 48 (due to r57532)
5546
5547 2006-03-07  Martin Baulig  <martin@ximian.com>
5548
5549         * object.c
5550         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
5551
5552 2006-03-07  Martin Baulig  <martin@ximian.com>
5553
5554         * class.c
5555         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
5556         regression introduced in r56970; see gtest-252.cs.
5557
5558         * loader.c (mono_get_method_constrained): Correctly handle generic
5559         methods; see gtest-253.cs.
5560
5561 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
5562
5563         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
5564
5565 2006-03-04  Martin Baulig  <martin@ximian.com>
5566
5567         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
5568         compute the parent type at runtime, just like we're already doing
5569         it for interfaces.
5570
5571         * reflection.c
5572         (mono_reflection_bind_generic_parameters): Don't compute the
5573         parent type anymore.
5574
5575         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
5576
5577 2006-03-04  Martin Baulig  <martin@ximian.com>
5578
5579         * mono-debug-debugger.h
5580         (mono_debugger_create_notification_function): Allocate memory at
5581         runtime and return a pointer to it.
5582
5583 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
5584
5585         * assembly.c: Fix windows build.
5586         
5587         * assembly.c: Fix build.
5588
5589         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
5590
5591         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
5592         
5593 2006-03-03  Dick Porter  <dick@ximian.com>
5594
5595         * process.c
5596         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
5597         Check parameters before dereferencing them.  Fixes Aaron's part of
5598         bug 77393.
5599
5600 2006-03-03  Raja R Harinath  <rharinath@novell.com>
5601
5602         Fix performance regression.
5603         * loader.c (find_method_in_class): Add 'from_class' argument.
5604         Rename 'klass' argument to 'in_class'.  The signature is compared
5605         against the method in 'in_class', and the corresponding method is
5606         returned from 'from_class'.
5607         (find_method): Walk both 'in_class' and 'from_class' in parallel.
5608         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
5609         type definition and generic instantiation in parallel.
5610         (mono_get_method_constrained): Update to changes.
5611
5612 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
5613
5614         * threads.c: make sure the domain is correct, too when doing
5615         mono_thread_attach ().
5616
5617 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
5618
5619         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
5620         windows. Fixes #77683.
5621
5622 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
5623
5624         * object.h, *: introduced specific way to set elements of an array
5625         of references to be used as write barrier. Still need to audit the
5626         uses of mono_array_addr.
5627
5628 2006-03-01  Miguel de Icaza  <miguel@novell.com>
5629
5630         * object-internals.h: New field to cache the assmebly name, patch
5631         from Tambet Ingo (tambet@ximian.com)
5632
5633 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
5634
5635         * decimal.h, class-internals.h, metadata-internals.h,
5636         file-io.h: mark a few function declarations as internal, to
5637         reduce the number of PLT entries.
5638
5639 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5640
5641         * file-io.c: fix typo in warning message.
5642
5643 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
5644
5645         * loader.c: on unix, lookup the "*A" version of a function
5646         if charset is auto as a second option before failing.
5647
5648 2006-02-28  Raja R Harinath  <rharinath@novell.com>
5649
5650         * class.h (mono_class_inflate_generic_method): Revert to two
5651         argument version.
5652         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
5653         (mono_class_inflate_generic_method_full): Add.
5654         * class.c (mono_class_inflate_generic_method_full): Rename from
5655         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
5656         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
5657         * loader.c, reflection.c: Update to changes.
5658
5659 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
5660
5661         * icall.c: const fixes and small improvements.
5662
5663 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5664
5665         * threadpool.c: for asynchronous connect(), enable the same workaround
5666         for BSD 6 as for the Mac. Fixes bug #77637.
5667
5668 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
5669
5670         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
5671         formatted classes. Fixes #77524.
5672
5673 2006-02-24  Raja R Harinath  <rharinath@novell.com>
5674
5675         * class.c (inflate_generic_type): Add a couple more
5676         micro-optimizations.
5677         (inflate_generic_context): Don't use the 'gmethod' from
5678         'inflate_with'.
5679         (mono_class_inflate_generic_method): If the method has generic
5680         parameters, but the passed-in context doesn't have a 'gmethod',
5681         create one.  Use the possibly simplified generic instantiation
5682         from the declaring class instead of the one passed in.
5683
5684 2006-02-24  Raja R Harinath  <harinath@gmail.com>
5685
5686         Make generic method signature and method header handling lazy.
5687         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
5688         (inflate_generic_header): Likewise.
5689         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
5690         parameter to avoid inflating types.
5691         (mono_get_inflated_method): Empty out.
5692         * class.h (mono_class_inflate_generic_method): Update to changes.
5693         * loader.c (mono_get_method_from_token): Don't parse signature for
5694         generic methods, nor methods of generic classes.
5695         (mono_method_signature): Rename from 'mono_method_signature'.
5696         Inflate signature on demand.
5697         (mono_method_get_header): Inflate method header on demand.
5698         * reflection.c: Update to changes.
5699
5700 2006-02-23  Raja R Harinath  <rharinath@novell.com>
5701
5702         * metadata.c (mono_metadata_inflate_generic_inst): If the
5703         instantiation is closed, don't bother expanding it in the new
5704         context.
5705         * class.c (inflate_generic_class): If the generic instantiation
5706         doesn't change after inflation, return the argument itself.
5707         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
5708         Add bounds checks.
5709         (inflate_generic_context): If neither the generic class nor the
5710         generic method instantiations change, return the original context.
5711         * reflection.c (mono_method_get_object): Do
5712         'mono_get_inflated_method' before accessing the ->klass field.
5713         (inflate_mono_method): Don't create a MonoGenericMethod unless
5714         necessary.
5715         (inflate_method): Don't pass a constructed type as the declaring
5716         type of a methodbuilder.
5717
5718 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
5719
5720         * object.c: fix memory overwrite.
5721
5722 2006-02-22  Dick Porter  <dick@ximian.com>
5723
5724         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
5725         it doesn't work any more.
5726         (mono_threads_request_thread_dump): Fix unused variable warnings.
5727
5728 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
5729
5730         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
5731         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
5732         the public header file.
5733
5734 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
5735
5736         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
5737
5738 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
5739
5740         * class-internals.h, object.c: reduce the size of MonoVTable
5741         and store the interface_offsets array at negative offsets.
5742
5743 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
5744
5745         * metadata.c: tweak table descriptors data structures to reduce
5746         size and runtime relocations.
5747
5748 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
5749
5750         * marshal.c: fix some types and opcodes to be type-safe
5751         in marshaling wrappers.
5752
5753 2006-02-21  Ankit Jain  <jankit@novell.com>
5754
5755         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
5756
5757 2006-02-21  Raja R Harinath  <rharinath@novell.com>
5758
5759         * metadata.c (get_constraints): Relax debugging checks for monodis.
5760
5761 2006-02-21  Ankit Jain  <jankit@novell.com>
5762
5763         * metadata.c (mono_metadata_load_generic_params): Move the code
5764         checking for ambiguous generic params from here to mono/dis/get.c
5765         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
5766
5767 2006-02-21  Raja R Harinath  <harinath@gmail.com>
5768
5769         Fix assertion triggered when compiling nemerle.
5770         * class.c (mono_get_shared_generic_inst): Rename from
5771         get_shared_inst and make non-static.
5772         * loader.c (mono_get_shared_generic_method): New.  Used to create
5773         the MonoGenericContext-equivalent of a MonoGenericContainer.
5774         (mono_get_method_from_token): Initialize the 'context' field of
5775         the created MonoGenericContainer.
5776         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
5777         * metadata.c (get_constraints): Add sanity check.
5778         * class-internals.h: Add new internal methods.
5779
5780         * reflection.c (verify_safe_for_managed_space): New sanity check.
5781         Currently checks that owner-less generic parameters aren't allowed
5782         in managed space.
5783         (mono_type_get_object): Use it.
5784         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
5785         that are now in mono_type_get_object.
5786         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
5787
5788 2006-02-19  Raja R Harinath  <harinath@gmail.com>
5789
5790         * metadata.c (mono_type_create_from_typespec): Rename from
5791         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
5792         argument and caching of types in the generic container.
5793         (unwrap_arrays, find_generic_param): Remove.
5794         * metadata-internals.h: Update.
5795         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
5796
5797 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
5798
5799         * class.c (mono_class_get_exception_for_failure): Fix a warning.
5800
5801         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
5802         return values. Fixes #77581.
5803
5804         * class.c (mono_fnptr_class_get): Switch name and name_space.
5805
5806         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
5807         classes and add support for [In, Out] attributes.
5808         (mono_marshal_free_asany): Ditto. Fixes #77524.
5809
5810 2006-02-18  Raja R Harinath  <harinath@gmail.com>
5811
5812         * class.c (mono_class_from_generic_parameter): Make more robust to
5813         incomplete MonoGenericContainers from monodis.
5814
5815 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
5816
5817         * class-internals.h: added some more exception types.
5818         * class.c, metadata.c: added a few checks to handle missing
5819         types.
5820
5821 2006-02-17  Raja R Harinath  <rharinath@novell.com>
5822
5823         Use owner-less generic-params some more.
5824         * class.c (my_mono_class_from_generic_parameter): Remove.
5825         (mono_class_from_generic_parameter): Handle null image,
5826         param->name and param->owner.
5827         (mono_class_from_mono_type): Update.
5828         (mono_class_create_from_typespec): Remove 'container' parameter.
5829         If that parameter is non-null, the result is always inflated by
5830         'mono_class_get_full' anyway.
5831         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
5832         parameter.
5833         (mono_class_get_full): Update.
5834
5835         * class.c (inflate_generic_type) [GENERICINST]: If the generic
5836         instance is not open, don't bother inflating.
5837         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
5838         parse metadata for inflated classes.
5839         (_mono_class_get): Change GenericContext* parameter to
5840         GenericContainer*.
5841         (mono_class_create_from_typespec): Likewise.  Simplify, and
5842         implement trivially.  All the cases are handled in
5843         mono_class_from_mono_type.  Don't inflate returned class.
5844         (mono_class_get_full): Delegate GENERICINST optimization to
5845         inflate_generic_type.
5846         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
5847
5848 2006-02-16  Dick Porter  <dick@ximian.com>
5849
5850         * socket-io.c (create_object_from_sockaddr): Fix typo.
5851         (create_sockaddr_from_object): Check array lengths before
5852         potentially accessing items off the end.
5853         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
5854         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
5855         (ves_icall_System_Net_Sockets_Socket_Send_internal)
5856         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
5857         length checks to avoid wraparound overflows.
5858         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
5859         contents of the array of sockets
5860         (hostent_to_IPHostEntry2)
5861         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
5862         Check return value of inet_ntop ().
5863         (addrinfo_to_IPHostEntry): Fix typo
5864
5865 2006-02-16  Raja R Harinath  <rharinath@novell.com>
5866
5867         Type metadata parsing doesn't use generic-instantiation information.
5868         * metadata.c (mono_metadata_parse_array_full): Change
5869         MonoGenericContext* parameter to MonoGenericContainer*.
5870         (mono_metadata_parse_type_full): Likewise.
5871         (mono_type_create_from_typespec_full): Likewise.
5872         (mono_metadata_parse_mh_full): Likewise.
5873         (mono_metadata_parse_generic_inst): Likewise.
5874         (do_mono_metadata_parse_generic_class): Likewise.
5875         (do_mono_metadata_parse_type): Likewise.
5876         * metadata-internals.h: Update to changes.
5877         * class.c (mono_class_find_enum_basetype): Likewise.
5878         (mono_class_setup_fields): Likewise.
5879         (mono_class_create_from_typespec): Likewise.
5880         * loader.c (method_from_methodspec): Likewise.
5881         (mono_get_method_from_token): Likewise.
5882         (mono_method_get_header): Likewise.
5883
5884 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
5885
5886         * marshal.c: handle additional GENERICINST case (patch from
5887         Thong Nguyen <tum@veridicus.com>).
5888         Fix a few cases where LDIND_I/STIND_I was used for references.
5889
5890 2006-02-16  Raja R Harinath  <rharinath@novell.com>
5891
5892         * reflection.c (mono_reflection_get_token): Remove unused variable.
5893
5894 2006-02-16  Martin Baulig  <martin@ximian.com>
5895
5896         * reflection.c (mono_reflection_get_token): Add support for fields
5897         in instantiated generic types.
5898
5899         * icall.c
5900         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
5901
5902 2006-02-15  Martin Baulig  <martin@ximian.com>
5903
5904         * icall.c
5905         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
5906         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
5907         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
5908         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
5909
5910 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
5911
5912         * class.c, metadata.c, metadata.h, object.c, icall.c,
5913         marshal.c: changed mono_type_get_underlying_type () to do
5914         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
5915         Fixed handling of instantiated generic valuetypes (bug #75479).
5916
5917 2006-02-15  Raja R Harinath  <rharinath@novell.com>
5918
5919         * metadata.c (mono_metadata_decode_signed_value): Simplify.
5920         Delegate to mono_metadata_decode_value, and work on the returned value.
5921
5922         * icall.c (ves_icall_MonoType_GetGenericArguments):
5923         Add consistency check here too.
5924         
5925 2006-02-15  Ankit Jain  <jankit@novell.com>
5926
5927         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
5928         char/short etc.
5929
5930 2006-02-15  Ankit Jain  <jankit@novell.com>
5931
5932         * metadata.c (mono_metadata_decode_signed_value): New function to decode
5933         signed values, used only for representing lower bounds of arrays.
5934         (mono_metadata_parse_array_full): Use new
5935         mono_metadata_decode_signed_value to decode lower bounds.
5936
5937 2006-02-14  Martin Baulig  <martin@ximian.com>
5938
5939         * reflection.c
5940         (mono_reflection_get_token): Support "MonoGenericMethod" and
5941         "MonoGenericCMethod" and allow generic instances / methods.
5942
5943 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
5944
5945         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
5946         to obtain the terminal size using an ioctl.
5947
5948         * object.c (mono_nullable_init): Revert this as nullable reference
5949         types are not valid.
5950         (mono_nullable_box): Ditto.
5951
5952 2006-02-09  Dick Porter  <dick@ximian.com>
5953
5954         * threads.c (mono_thread_detach): Drop a reference to the thread
5955         we're detaching.
5956
5957 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
5958
5959         * object.c (mono_nullable_init): Handle nullable reference types.
5960         (mono_nullable_box): Ditto. Fixes #77446.
5961
5962 2006-02-07  Martin Baulig  <martin@ximian.com>
5963
5964         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
5965
5966 2006-02-07  Ankit Jain  <jankit@novell.com>
5967
5968         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
5969         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
5970         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
5971         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
5972         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
5973         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
5974
5975 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
5976
5977         * class.c (mono_class_create_generic): Set type_token as well.
5978
5979         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
5980         compatible with MS.
5981
5982 2006-02-02  Martin Baulig  <martin@ximian.com>
5983
5984         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
5985         has never been used so far.
5986
5987 2006-02-02  Martin Baulig  <martin@ximian.com>
5988
5989         * mono-debug-debugger.h: Changed comment at the top of this file;
5990         the header is not installed, but it's safe to #include it from
5991         within the JIT.
5992
5993         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
5994         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
5995
5996 2006-02-02  Martin Baulig  <martin@ximian.com>
5997
5998         * mono-debug.h
5999         (MonoSymbolTable): Removed the `metadata_info' field.
6000
6001         * mono-debug.c
6002         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
6003
6004         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
6005         (mono_debugger_add_builtin_types): Removed.
6006         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
6007         (mono_debugger_create_notification_function): We now operate on a
6008         pre-allocated area; take a `gpointer' and return `void'.
6009
6010         * mono-debug-debugger.c
6011         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
6012         (mono_debugger_add_builtin_types): Removed.
6013
6014 2006-02-02  Martin Baulig  <martin@ximian.com>
6015
6016         * threads.c (mono_debugger_create_all_threads): New public method.
6017
6018 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
6019
6020         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
6021         breaks on several platforms.
6022
6023 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
6024
6025         * assembly.c: the VS.NET build doesn't supply default values for
6026         MONO_ASSEMBLIES and MONO_CFG_DIR.
6027
6028 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
6029
6030         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
6031         helper function.
6032
6033         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
6034
6035         * loader.c (method_from_memberref): Fix a warning.
6036
6037         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
6038
6039         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
6040         with explicit layout. Fixes #77433.
6041
6042 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
6043
6044         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
6045         max_interface_id is initialized before using it. Fixes #77398.
6046         (ves_icall_Type_GetInterfaces): Ditto.
6047
6048 2006-01-30  Raja R Harinath  <rharinath@novell.com>
6049
6050         * metadata.c (mono_metadata_parse_method_signature_full): Don't
6051         allocate memory for parameter attributes when parsing memberref
6052         signatures.
6053         * loader.c (mono_loader_set_error_method_load): Don't warn.
6054         (method_from_memberref): Ensure MissingMethodException gets thrown
6055         if method is not found.  Make warning more informative.
6056
6057 2006-01-29  Raja R Harinath  <harinath@gmail.com>
6058
6059         Fix #77397
6060         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
6061         return true if is byref.
6062         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
6063         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
6064         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
6065
6066 2006-01-27  Raja R Harinath  <rharinath@novell.com>
6067
6068         Fix tests/find-method.2.il
6069         * loader.c (find_method, find_method_in_class): Remove is_inflated
6070         argument.  Revert 2006-01-18 change.
6071         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
6072         is generic, search for method in its generic definition.
6073         * class.c (mono_class_setup_vtable_general): Print generic
6074         arguments of generic types in debugging printf.
6075
6076 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
6077
6078         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
6079
6080         * threads.c (mono_threads_request_thread_dump): New helper function.
6081
6082 2006-01-25  Raja R Harinath  <rharinath@novell.com>
6083
6084         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
6085
6086 2006-01-25  Ankit Jain  <jankit@novell.com>
6087
6088         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
6089         move definition to ..
6090         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
6091         
6092 2006-01-25  Ankit Jain  <jankit@novell.com>
6093             Raja R Harinath  <rharinath@novell.com>
6094
6095         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
6096         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
6097         as necessary.
6098
6099 2006-01-25  Martin Baulig  <martin@ximian.com>
6100
6101         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
6102         `MonoDebuggerThread' into debug-debugger.c.
6103
6104 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
6105
6106         * profiler.c: fix printing of data.
6107
6108 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
6109
6110         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
6111           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
6112
6113 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
6114
6115         * object.c: fix deadlock related to string interning.
6116
6117 2006-01-23  Martin Baulig  <martin@ximian.com>
6118
6119         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
6120
6121         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
6122
6123 2006-01-23  Martin Baulig  <martin@ximian.com>
6124
6125         * mono-debug.h: Moved the prototypes of some functions which are
6126         used by the JIT here from mono-debug-debugger.h.
6127
6128 2006-01-21  Martin Baulig  <martin@ximian.com>
6129
6130         * Makefile.am: Don't install mono-debug-debugger.h.
6131
6132 2006-01-21  Martin Baulig  <martin@ximian.com>
6133
6134         * mono-debug-debugger.h: Enforce the private status of this header
6135         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
6136         Moved some stuff from mono-debugger-jit-wrapper.h here.
6137
6138 2006-01-20  Raja R Harinath  <rharinath@novell.com>
6139
6140         * class.c (mono_class_from_typeref): Add a sanity test to help
6141         catch lack of assembly load/search hooks.
6142
6143 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
6144
6145         * marshal.c (emit_struct_conv): Relax the fields with same offset
6146         check even more. Fixes #77230.
6147
6148 2006-01-18  Martin Baulig  <martin@ximian.com>
6149
6150         * loader.c (find_method_in_class): Added `gboolean is_inflated'
6151         argument; if false, we compare the uninstantiated signatures.
6152         (method_from_memberref): Compare the uninstantiated signatures;
6153         fixes #76417.
6154
6155 2006-01-18  Robert Jordan  <robertj@gmx.net>
6156
6157         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
6158         Clear the weak link. Fixes bug #77170.
6159
6160         * gc.c (mono_gchandle_free):
6161         Reflect *-gc.c changes (tiny optimization).
6162
6163 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
6164
6165         * metadata.c (mono_metadata_signature_dup): Applied patch from
6166         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
6167         Fixes #77288.
6168
6169 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
6170
6171         * marshal.c (emit_struct_conv): Allow fields with the same offset when
6172         marshalling from native to managed code. Fixes #77230.
6173
6174 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6175
6176         * threadpool.c: fix problem (Mac only) when more than one asynchronous
6177         connect. Fixes bug #77020.
6178
6179 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
6180
6181         * class.c: fixed id assignement for nested interfaces (bug #77275).
6182         Added also better info for --print-vtable debugging.
6183
6184 2006-01-12  Martin Baulig  <martin@ximian.com>
6185
6186         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
6187         interfaces on-the-fly; fixes #76625.
6188
6189         * class-internals.h
6190         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
6191         don't need that anymore.
6192
6193 2006-01-12  Miguel de Icaza  <miguel@novell.com>
6194
6195         * socket-io.c
6196         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
6197         To avoid initing the nested_classes when not needed I turned the
6198         PeerCredData as a toplevel internal class, as it has to be shared
6199         anyways. 
6200
6201         Fixes the CASA issue.
6202
6203 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
6204
6205         * domain.c: Accessors for MonoJitInfo
6206
6207         * profiler-private.h: Add jitinfo to the end jit hook
6208
6209         * profiler.[ch]: Define new hooks, called after jitting which give
6210         the MonoJitInfo that was compiled
6211
6212 2006-01-10  Martin Baulig  <martin@ximian.com>
6213
6214         * class.c (mono_class_setup_events): Add support for generic
6215         classes; fixes #76440.
6216
6217 2006-01-06  Raja R Harinath  <rharinath@novell.com>
6218
6219         Fix #77160.
6220         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
6221         on passed-in method.
6222
6223 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
6224
6225         * object.c (mono_runtime_invoke_array): Add Nullable support.
6226
6227         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
6228
6229 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
6230
6231         * file-io.c: Don't consider sockets as directory and avoid an endless
6232         loop. Fix bug #76966.
6233
6234 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
6235
6236         * object.c (mono_nullable_init): New helper function.
6237         (mono_nullable_box): Ditto.
6238
6239         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
6240
6241         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
6242
6243         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
6244         
6245 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
6246
6247         * class.c (mono_class_is_assignable_from): Make T assignable to 
6248         Nullable<T>.
6249
6250 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
6251
6252         * appdomain.c: Bump corlib version to 46.
6253         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
6254         serialization purpose) and changed ves_icall_System_Reflection_
6255         Assembly_get_code_base signature to accept a boolean (to escape, or 
6256         not, the assembly code base).
6257
6258 2005-12-23  Dick Porter  <dick@ximian.com>
6259
6260         * icall.c: 
6261         * threads-types.h: 
6262         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
6263         CreateEvent icall now returns "created" boolean parameter.
6264
6265 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
6266
6267         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
6268         #76967.
6269
6270         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
6271         when attr_klass is an interface. Fixes #77045.
6272
6273 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
6274
6275         * marshal.c (emit_struct_conv): Fix previous patch.
6276         
6277         * marshal.c (emit_struct_conv): Add a check for fields with the same
6278         offset.
6279
6280 2005-12-20  Raja R Harinath  <rharinath@novell.com>
6281
6282         Fix regression in Mono.C5.
6283         * class.c (mono_class_create_generic): If 'klass' is an interface
6284         set up the interface offsets.
6285         (mono_class_is_assignable_from): Don't throw away generic arguments.
6286
6287 2005-12-19  Raja R Harinath  <rharinath@novell.com>
6288
6289         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
6290         type parameters.
6291
6292 2005-12-15  Raja R Harinath  <rharinath@novell.com>
6293
6294         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
6295         dead store.
6296         (do_mono_metadata_parse_generic_class): Don't pass the current
6297         generic context when parsing the type being instantiated: it
6298         cannot use it, anyway.
6299
6300         * loader.c (method_from_memberref): Don't inflate a signature if
6301         it doesn't contain any type parameters.
6302
6303 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
6304
6305         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
6306
6307 2005-12-14  Martin Baulig  <martin@ximian.com>
6308
6309         * class.c
6310         (mono_type_get_name_recurse): Don't return null for type
6311         parameters and open generic classes.
6312         (mono_class_setup_methods): Don't exclude generic instances.
6313         (mono_get_unique_iid): Use different IDs for different
6314         instantiations of the same generic type.
6315         (mono_class_setup_vtable): Only use setup_generic_vtable() for
6316         open generic instances; create a normal vtable for closed generic
6317         instances.
6318         (mono_class_setup_vtable_general): We're now also called for
6319         closed generic instances.
6320
6321         * reflection.c
6322         (mono_reflection_bind_generic_parameters): Correctly use
6323         mono_metadata_lookup_generic_inst() everywhere.
6324
6325 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
6326
6327         * object.c (mono_class_create_runtime_vtable): Call 
6328         mono_class_setup_vtable ().
6329
6330         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
6331         function.
6332         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
6333         #76959.
6334
6335         * loader.c (mono_loader_set_error_type_load): Print the type load
6336         warnings to the console so they are more visible to the user.
6337         (mono_loader_set_error_method_load): Ditto.
6338
6339         * reflection.c (ensure_runtime_vtable): Revert the last change as it
6340         is still broken.
6341         
6342         * reflection.c (ensure_runtime_vtable): Fix build.
6343
6344         * reflection.c (ensure_runtime_vtable): Disable an optimization which
6345         doesn't work in all cases.
6346
6347 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
6348
6349         * object.c (mono_array_new_full): Treat a single dimensional array
6350         with 0 lower bounds as an szarray. Fixes #76973.
6351
6352         * reflection.c (custom_attr_visible): Really fix this.
6353
6354 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
6355
6356         * reflection.c (custom_attr_visible): Allow nested public attributes
6357         as well.
6358
6359         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
6360         interface check.
6361
6362 2005-12-12  Raja R Harinath  <harinath@gmail.com>
6363
6364         * class.c (set_generic_param_owner): Delete.
6365         (mono_class_create_from_typedef): Don't set ->owner field of
6366         generic parameters to "param containers" of enclosing classes.
6367         * reflection.c (mono_reflection_initialize_generic_parameter):
6368         Likewise.
6369
6370 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
6371
6372         * reflection.c (custom_attr_visible): Fix build.
6373
6374 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
6375
6376         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
6377         private attributes.
6378         
6379         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
6380         handling of null parameter defaults.
6381
6382 2005-12-09  Raja R Harinath  <rharinath@novell.com>
6383
6384         * class.c (mono_class_from_generic_parameter): Don't set
6385         klass->generic_container.
6386         (my_mono_class_from_generic_parameter): Likewise.
6387
6388 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
6389
6390         * reflection.c (load_public_key): Fix a warning.
6391         (method_encode_code): Fix unaligned accesses.
6392
6393 2005-12-07  Martin Baulig  <martin@ximian.com>
6394
6395         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
6396
6397         * reflection.c
6398         (write_generic_param_entry): Encode our custom attrs.
6399
6400         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
6401
6402 2005-12-07  Martin Baulig  <martin@ximian.com>
6403
6404         * reflection.c (encode_new_constraint): Removed; we don't use the
6405         `NewConstraintAttribute' anymore.
6406
6407 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
6408
6409         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
6410         not fire a TypeResolve event when Assembly.GetType () is called.
6411
6412 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
6413
6414         Beginning of support for nullable types in the runtime. Parts of
6415         this patch are from Martin.
6416
6417         * appdomain.c (MONO_CORLIB_VERSION): Bump
6418
6419         * domain.c (mono_init_internal): get the nullable type
6420
6421         * class.c (mono_class_is_nullable): New method
6422         (mono_class_get_nullable_param): New mehod
6423         (mono_class_create_generic): In types T? set cast_class to T
6424
6425         * class-internals.h (MonoDefaults): new nullable default class
6426         (mono_class_get_nullable_param, mono_class_get_nullable_param):
6427         new methods.
6428
6429 2005-12-05  Raja R Harinath  <rharinath@novell.com>
6430
6431         * metadata.c (select_container): New.  Refactor code to select the
6432         appropriate GenericContainer given the type of generic parameter
6433         we are looking for.
6434         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
6435         not a MonoGenericContext.  Use select_container.  Update parameters.
6436         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
6437         and MONO_TYPE_MVAR.
6438         (unwrap_arrays): Remove duplicate tests.
6439         (find_generic_param): Rename from 'has_same_context'.  Now walks a
6440         generic instantiated class to find any arguments that are generic
6441         parameters.
6442         (mono_type_create_from_typespec_full): Use find_generic_param to
6443         avoid evicting some generic instantiations from the typespec
6444         cache.
6445
6446 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
6447
6448         * reflection.c: fixed writing of doubles on ARM FPA.
6449
6450 2005-12-02  Robert Jordan  <robertj@gmx.net>
6451
6452         * icall.c: Fixed EventInfo.ReflectedType (#76829).
6453
6454 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6455
6456         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
6457         least on SUSE 10 they are not the same (on debian, they are just the
6458         same thing).
6459
6460 2005-12-01  Raja R Harinath  <rharinath@novell.com>
6461
6462         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
6463         DeclaringType for VARs and MVARs.
6464         * class.c (set_generic_param_owner): Fix initialization of owner
6465         fields.
6466
6467 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
6468
6469         * icall.c: fixed Enum.ToObject() to correctly convert the values.
6470
6471 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6472
6473         * threadpool.c: workaround for a bug that shows up on the Mac:
6474         select()+connect() on a blocking socket is not like it should
6475         be, so we proceed to connect() in that case, wasting the I/O
6476         threadpool thread until connect succeedes. Fixes bug #75436.
6477
6478 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6479
6480         * threadpool.c: fix typo when setting file descriptor states.
6481
6482 2005-11-28  Raja R Harinath  <rharinath@novell.com>
6483
6484         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
6485         * metadata.c (mono_metadata_parse_method_signature_full): Don't
6486         create a temporary signature container.
6487         (mono_metadata_parse_generic_param): Update to changes.
6488         (mono_type_create_from_typespec_full): Update to changes.
6489         * loader.c (method_from_memberref): Don't use a
6490         MonoGenericContainer while parsing a memberref signature.
6491         (method_from_methodspec): Remove dead-store of the 'container'
6492         variable.  It's overwritten before use.
6493
6494         * metadata.c (mono_type_create_from_typespec_full): Make debugging
6495         checks tighter.
6496         (mono_metadata_parse_generic_param): Likewise.
6497         * loader.c (find_method_in_class): Does not need a
6498         MonoGenericContainer.  Use 'mono_method_signature' rather than
6499         'mono_method_signature_full'.
6500         (find_method, mono_get_method_constrained, method_from_memberref):
6501         Update to changes.
6502
6503         * metadata.c (mono_type_create_from_typespec_full): Ensure that
6504         owner-less generic-parameters are never evicted from the typespec
6505         cache.
6506
6507         * loader.c (method_from_memberref): Don't use the current context
6508         when parsing signatures.
6509         (method_from_methodspec, mono_get_method_from_token): Update to changes.
6510
6511         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
6512         side-effects in g_assert.
6513         * loader.c (mono_get_method_from_token): Resolve klass earlier so
6514         that we don't potentially lose information.
6515
6516 2005-11-26  Dick Porter  <dick@ximian.com>
6517
6518         * icall.c:
6519         * threads.c: icalls to implement basic (ie, not named)
6520         System.Threading.Semaphore.
6521
6522 2005-11-24  Dick Porter  <dick@ximian.com>
6523
6524         * process.c
6525         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
6526         Use GetProcessId() if it's available.
6527
6528 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
6529
6530         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
6531
6532 2005-11-23  Raja R Harinath  <rharinath@novell.com>
6533             Ankit Jain  <jankit@novell.com>
6534
6535         * loader.c (mono_get_method_from_token): Initialize 'method' field
6536         of all generic parameters before parsing the signature.  Remove
6537         code that "fixed"-up MVAR references.
6538
6539 2005-11-23  Ankit Jain  <jankit@novell.com>
6540
6541         * metadata.c (mono_metadata_has_generic_params):
6542         (mono_metadata_load_generic_param_constraints):
6543         (mono_metadata_load_generic_params): Move duplicate code ...
6544         (mono_metadata_get_generic_param_row): ... here. Returns the
6545         first row-id in GenericParam table for a given owner (token).
6546         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
6547         prototype.
6548
6549 2005-11-23  Raja R Harinath  <rharinath@novell.com>
6550             Ankit Jain  <jankit@novell.com>
6551
6552         * metadata.c (mono_metadata_class_equal): Pass signature_only when
6553         comparing VARs too.
6554         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
6555         type->data.generic_param only if the type is an MVAR.
6556         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
6557         leak owner-less VARs and MVARs into managed space.
6558
6559 2005-11-21  Martin Baulig  <martin@ximian.com>
6560
6561         * class-internals.h
6562         (MonoMethod): Moved the `generic_container' here from
6563         `MonoMethodNormal' since we now also need it for
6564         `MonoMethodPInvoke';
6565         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
6566         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
6567         an union containing both `MonoMethodNormal' and
6568         `MonoMethodPInvoke'.
6569
6570         * loader.c
6571         (mono_get_method_from_token): Allow implementing generic methods
6572         as interncalls.
6573
6574         * threads.c
6575         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
6576         icall.
6577
6578 2005-11-17  Dick Porter  <dick@ximian.com>
6579
6580         * icall.c: 
6581         * process.h: 
6582         * process.c: Split the Process Start_internal icall into
6583         ShellExecuteEx_internal and CreateProcess_internal, which are
6584         called depending on whether UseShellExecute is true.  Fixes bug
6585         76670.
6586
6587         * appdomain.c (MONO_CORLIB_VERSION): Incremented
6588
6589 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
6590
6591         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
6592         'msize' parameters, use the information in 'mspec' instead.
6593         (emit_object_to_ptr_conv): Ditto.
6594
6595         * marshal.c (emit_struct_conv): Handle explicit layout structs with
6596         fields out of order. Fixes #76733.
6597
6598 2005-11-17  Ankit Jain  <jankit@novell.com>
6599
6600         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
6601
6602 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
6603
6604         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
6605           bug #76575.
6606
6607 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
6608
6609         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
6610         for types with non-auto layout. Fixes #76717.
6611
6612 2005-11-16  Ankit Jain  <jankit@novell.com>
6613
6614         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
6615         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
6616         if generic_context is null.
6617           (mono_metadata_generic_param_equal): param->owner can be null.
6618           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
6619         null.
6620
6621 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
6622
6623         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
6624         the correct value.
6625
6626 2005-11-15  Martin Baulig  <martin@ximian.com>
6627
6628         * object.c (set_value): Use mono_class_from_mono_type() instead of
6629         the hack for generic instances; fixes #76136.
6630
6631 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
6632
6633         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
6634         fields.
6635
6636         * image.c (load_metadata_ptrs): Initialize the new fields.
6637
6638         * reflection.c (create_dynamic_mono_image): Ditto.
6639
6640         * reflection.c (build_compressed_metadata): Use the new fields.
6641
6642         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
6643         icall.
6644
6645         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
6646         icall.
6647         
6648 2005-11-15  Ankit Jain  <jankit@novell.com>
6649             Raja R Harinath  <harinath@gmail.com>
6650
6651         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
6652         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
6653         new per-generic_container cache if the cached MonoType's context matches
6654         the current context.
6655           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
6656         to the expected context.
6657           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
6658
6659 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6660
6661         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
6662         we changed the signature of an icall.
6663         * icall.c: Modify to mono_double_ParseImpl return true/false 
6664         depending on the success, instead of throwing the exception. This will
6665         help us in Double.TryParse methods.
6666         
6667 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
6668
6669         * marshal.c (emit_marshal_object): Throw an exception when
6670         marshalling 'object' instead of crashing. Fixes #76696.
6671
6672 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
6673
6674         * class-internals.h: Add prototype for mono_type_get_full_name ().
6675
6676 2005-11-11  Dick Porter  <dick@ximian.com>
6677
6678         * threads.c (mono_thread_manage): Make sure the main thread has
6679         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
6680
6681 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
6682
6683         * loader.c (mono_loader_set_error_type_load): Log a warning to the
6684         console about the missing type.
6685         (mono_loader_set_error_method_load): Ditto.
6686
6687 2005-11-09  Miguel de Icaza  <miguel@novell.com>
6688
6689         * mono-config.c (mono_get_config_dir): Set the system defaults if
6690         none is specified.
6691
6692         * assembly.c (mono_set_dirs): New API entry point to set the
6693         assembly and the config directory in one call
6694
6695 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
6696
6697         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
6698         the ftnptr was created from a delegate in a domain other than the
6699         current domain. Fixes #75377.
6700
6701         * exception.h exception.c: Add mono_get_exception_not_supported ().
6702
6703 2005-11-08  Martin Baulig  <martin@ximian.com>
6704
6705         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
6706
6707 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
6708
6709         * security-manager.h: Added definitions to deal with strongname key 
6710         pairs bigger (and smaller) than 1024 bits.
6711         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
6712         adjust wrt the public key length being used.
6713
6714 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
6715
6716         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
6717           Windows build (r51396-51397).
6718
6719 2005-11-03  Martin Baulig  <martin@ximian.com>
6720
6721         * class.c (mono_class_setup_vtable_general): Also add generic
6722         methods to the vtable; fixes #76581.
6723
6724 2005-11-01  Miguel de Icaza  <miguel@novell.com>
6725
6726         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
6727         sure that we lookup GetString method from the System.Text.Encoding
6728         class, not the derived class or we get an empty method.
6729
6730         Fixed class #76612.
6731
6732 2005-10-25  Miguel de Icaza  <miguel@novell.com>
6733
6734         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
6735         if it has been previously set (embedders). 
6736
6737         Make mono_set_rootdir available also on Unix.
6738
6739 005-10-24  Robert Jordan  <robertj@gmx.net>
6740
6741         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
6742
6743 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
6744
6745         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
6746         only calls which are made to native code use this flag.
6747
6748         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
6749
6750 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
6751
6752         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
6753         Add support for FieldBuilders.
6754
6755 2005-10-29  Martin Baulig  <martin@ximian.com>
6756
6757         * mono-debug.c
6758         (mono_debug_using_mono_debugger): New public method; returns
6759         whether we're running inside the debugger.
6760
6761 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
6762
6763         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
6764         for Method/Constructor/FieldBuilders.
6765
6766 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
6767
6768         * reflection.c (module_add_cattrs): Save custom attributes for global methods
6769         and fields as well.
6770
6771 2005-10-26  Martin Baulig  <martin@ximian.com>
6772
6773         * mono-debug-debugger.c
6774         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
6775
6776 2005-10-24  Raja R Harinath  <harinath@gmail.com>
6777
6778         * icall.c (base64_to_byte_array): Don't pass an out-of-range
6779         integer to isspace.
6780
6781 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
6782
6783         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
6784         when passing valuetypes byref. Fixes #76502.
6785
6786 2005-10-19  Jackson Harper  <jackson@ximian.com>
6787
6788         * profiler.c: Don't put a . in front of types that are not in a
6789         namespace.
6790
6791 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
6792
6793         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
6794
6795 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
6796
6797         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
6798         #76436.
6799         (mono_marshal_get_ldflda_wrapper): Fix a warning.
6800
6801 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6802
6803         * assembly.c metadata-internals.h icall.c: Define an additional
6804         parameter for mono_assembly_name_parse_full, so we can avoid creating
6805         S.R.AssemblyName.Version when no version info wasn't passed.
6806         
6807 2005-10-09  Miguel de Icaza  <miguel@novell.com>
6808
6809         * class.c (mono_type_get_full_name): Reimplement method that was
6810         removed. 
6811
6812         * image.c: Some docs
6813
6814 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
6815
6816         * profiler.c (output_newobj_profile): Fix printing of Total memory
6817         on x86.
6818
6819 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
6820
6821         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
6822
6823 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
6824
6825         * threads.c: remove debug output.
6826
6827 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
6828
6829         * threads.c (mono_thread_manage): Fix crashes if more than 64
6830         threads need to be aborted. Hopefully fixes #75899.
6831
6832         * assembly.c (mono_stringify_assembly_name): New helper function.
6833
6834         * class.c: Use mono_stringify_assembly_name instead of the similar
6835         static function.
6836
6837         * assembly.h assembly.c: Add support for calling a postload search 
6838         hook if an assembly cannot be loaded.
6839
6840         * appdomain.c: Register new search hooks which call the AssemblyResolve
6841         events in AppDomain. Fixes #75231
6842
6843 2005-10-07  Martin Baulig  <martin@ximian.com>
6844
6845         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
6846         methods without debug info.
6847
6848 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
6849
6850         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
6851         wrappers.
6852
6853 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6854
6855         * file-io.c: now that we return symlinks, use lstat and, when the file
6856         is a symbolic link, stat, to get the file attributes. Also avoid the
6857         conversion to/from utf16/external.
6858
6859 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
6860
6861         * class.c (mono_class_layout_fields): Compute klass->has_references
6862         correctly if an embedded valuetype is not yet initialized. Fixes
6863         #76331.
6864
6865 2005-10-04  Martin Baulig  <martin@ximian.com>
6866
6867         * metadata.c
6868         (mono_metadata_load_generic_param_constraints): New public
6869         function; splitted the constraints loading out from
6870         mono_metadata_load_generic_params().
6871
6872         * class.c (mono_class_create_from_typedef): Call
6873         mono_metadata_load_generic_param_constraints() after setting up
6874         the type and creating our parent; fixes #75329.
6875
6876 2005-10-04  Martin Baulig  <martin@ximian.com>
6877
6878         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
6879         non-dynamic parent classes.
6880
6881 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
6882
6883         * file-io.c : win32 build fix (ETXTBSY seems not found).
6884
6885 2005-10-04  Martin Baulig  <martin@ximian.com>
6886
6887         * reflection.c
6888         (mono_image_get_methodspec_token): Make the cache actually work;
6889         fixes #75974.
6890
6891 2005-10-04  Martin Baulig  <martin@ximian.com>
6892
6893         * class.c (mono_class_name_from_token): Removed the unneccessary
6894         `MonoGenericContext *' argument.
6895
6896 2005-10-04  Martin Baulig  <martin@ximian.com>
6897
6898         * loader.c
6899         (method_from_methodspec): Make the caching work again; fixes the
6900         performance regression from #76262.
6901
6902 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6903
6904         * file-io.c:
6905         * file-io.h:
6906         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
6907         GetFileSystemEntries that performs the same work but without going
6908         into io-layer, locking, etc.
6909
6910 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
6911
6912         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
6913         ThreadState_Stopped as well. Fixes #76047.
6914
6915 2005-09-29  Martin Baulig  <martin@ximian.com>
6916
6917         * class.c
6918         (inflate_generic_context): If the new context has a `gmethod', set
6919         its `container' that that gmethod's `container'.
6920
6921         * metadata.c
6922         (mono_metadata_parse_generic_param): Simplify things;
6923         `generic_container = generic_context->container;' is just fine.
6924
6925         * loader.c (method_from_methodspec): Code cleanups.
6926
6927 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
6928
6929         * decimal.c: fix warning (and let gcc generate correct
6930         code on ARM with optimizations).
6931
6932 2005-09-28  Martin Baulig  <martin@ximian.com>
6933
6934         * loader.c
6935         (method_from_memberref): Added `MonoGenericContext *class_context'
6936         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
6937         (method_from_methodspec): If we're a memberref, use the enclosing
6938         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
6939
6940 2005-09-28  Martin Baulig  <martin@ximian.com>
6941
6942         * object.c (mono_runtime_invoke_array): Added support for
6943         MONO_TYPE_GENERICINST; fixes #75917.
6944
6945 2005-09-27  Martin Baulig  <martin@ximian.com>
6946
6947         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
6948         `k->byval_arg.type' to determine the actual type.
6949
6950         * loader.c (method_from_methodspec): Removed some hacks.
6951
6952 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
6953
6954         * class-internals.h (mono_field_is_deleted): Do the test for
6955         rtspecialname before we check the actual name of the field. This
6956         prevents us from dereferencing a pointer into the string table,
6957         saving us from accessing a few pages
6958
6959         * *.c: Replace the use of {Enter,Leave}CriticalSection with
6960         macros. This will allow a deadlock debugger to easily be plugged
6961         in.
6962
6963 2005-09-27  Martin Baulig  <martin@ximian.com>
6964
6965         * loader.c (method_from_methodspec): Create a "signature"
6966         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
6967
6968 2005-09-27  Martin Baulig  <martin@ximian.com>
6969
6970         * class.c
6971         (inflate_generic_class): Correctly set the new context's
6972         container.
6973
6974         * loader.c
6975         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
6976         instead of a `MonoGenericContext *'.
6977         (mono_method_signature_full): Take a `MonoGenericContainer *'
6978         instead of a `MonoGenericContext *'.
6979
6980         * metadata.c
6981         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
6982         instead of a `MonoGenericContext *'.
6983         (mono_metadata_parse_method_signature_full): Likewise.
6984
6985 2005-09-26  Martin Baulig  <martin@ximian.com>
6986
6987         * class.c
6988         (mono_class_from_generic_parameter): Set `klass->generic_container'
6989         (mono_class_from_generic_parameter): Likewise.
6990         (mono_bounded_array_class_get): We inherit the generic container
6991         from the element class.
6992
6993         * loader.c
6994         (find_method, find_method_in_class): Take a `MonoGenericContext *'
6995         argument rather than computing it here.
6996         (method_from_memberref): Correctly set the generic context before
6997         parsing the signature.  Fixes #75681.
6998
6999 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
7000
7001         * object.c (mono_class_has_special_static_fields): Fix warnings.
7002
7003 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7004
7005         * assembly.c: Add parse_public_key function, to
7006         par the public keys. Also added mono_assembly_name_parse_full,
7007         to define it the parsed key should be freed or not.
7008         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
7009         to parse a long format assembly name.
7010         * metadata-internals.h: Keep mono_assembly_name_parse_full as
7011         private, since calling it to preserve the key requires
7012         freeing it manually.
7013         
7014 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
7015
7016         * locales.c : removed HAVE_ICU part.
7017
7018 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
7019
7020         * object.c (mono_class_create_runtime_vtable): Avoid calling 
7021         field_is_special_static if the klass has no special static fields.
7022
7023         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
7024         (MonoCachedClassInfo): Likewise.
7025
7026         * object.c (mono_class_has_special_static_fields): New helper function.
7027
7028 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
7029
7030         * class.c (mono_class_create_from_typedef): Don't call 
7031         interfaces_from_typedef_full for enums.
7032         (mono_class_create_from_typedef): Compute the base types of enums directly
7033         without calling mono_class_setup_fields ().
7034         (mono_class_find_enum_basetype): New helper function.
7035
7036         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
7037         one place inside the string heap.
7038         
7039 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
7040
7041         * class.c: locking fixes, code cleanups, some docs added.
7042         Allocate some data structures in the image mempool.
7043
7044 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
7045
7046         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
7047         the example code.
7048         
7049 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
7050
7051         * class-internals.h, class.c, reflection.c: reduce memory taken by
7052         MonoClass.
7053
7054 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
7055
7056         * metadata.c, metadata.h, loader.h: documentation updates, code and
7057         API cleanups.
7058
7059 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
7060
7061         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
7062         the example code.
7063
7064         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
7065         page faults caused by the runtime while reading metadata.
7066
7067 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7068
7069         * socket-io.c: the field names were changed 3 months ago and no one
7070         realized until bug #76077 got filed!
7071
7072 2005-09-20  Martin Baulig  <martin@ximian.com>
7073
7074         * icall.c (assembly_icalls): Removed some unused debugger icalls.
7075
7076 2005-09-20  Martin Baulig  <martin@ximian.com>
7077
7078         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
7079         write the rank into the class entry.
7080
7081 2005-09-20  Martin Baulig  <martin@ximian.com>
7082
7083         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
7084
7085 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
7086
7087         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7088
7089         * icall.c (custom_attrs_defined_internal): New icall.
7090
7091         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
7092         function.
7093         (mono_custom_attrs_construct_by_type): New helper function.
7094
7095 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
7096
7097         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
7098         terminate the resulting string. Fixes #76123.
7099
7100 2005-09-16  Martin Baulig  <martin@ximian.com>
7101
7102         * mono-debug.c
7103         (mono_debug_add_method): Ignore inflated methods for the moment.
7104
7105 2005-09-14  Martin Baulig  <martin@ximian.com>
7106
7107         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
7108
7109 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
7110
7111         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
7112         return a success/failure indication.
7113         (mono_metadata_interfaces_from_typedef_full): Ditto.
7114         (get_constraints): Ditto.
7115
7116 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
7117
7118         * marshal.c (emit_marshal_array): Fix handling of null arrays.
7119         
7120         * marshal.c (emit_marshal_array): Add support for returning string
7121         arrays from delegates. Fixes #76063.
7122
7123         * marshal.c: Use the emit_ldloc/stloc macros where possible.
7124
7125 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
7126
7127         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
7128         icall.
7129
7130 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
7131
7132         * reflection.c icall.c: Fix after mono_get_exception_type_load
7133         signature change.
7134
7135         * assembly.c (mono_assembly_get_assemblyref): New helper function.
7136         (mono_assembly_load_reference): Use the new helper.
7137
7138         * class-internals.h (MonoLoaderError): New structure containing 
7139         information about type loading errors.
7140
7141         * class-internals.h loader.c: Add APIs to store per-thread loader
7142         error information.
7143
7144         * loader.c class.c: Set the loader error if needed.
7145
7146         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
7147
7148 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
7149
7150         * decimal.c: fixed to handle the broken ARM fp format.
7151
7152 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
7153
7154         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
7155         broken.
7156
7157 2005-09-06  Martin Baulig  <martin@ximian.com>
7158
7159         * domain.c (supported_runtimes): Added v2.0.50727.
7160
7161 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
7162
7163         * culture-info.h: reduce the size of some structures.
7164
7165 2005-09-05  Martin Baulig  <martin@ximian.com>
7166
7167         Reflect latest API changes in the August CTP.
7168
7169         * icall.c
7170         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
7171         ("MonoType.HasGenericArguments"): Removed.
7172         ("MonoMethod.BindGenericParameters"): Renamed to
7173         "MakeGenericMethod".
7174         ("MethodBuilder.BindGenericParameters"): Renamed to
7175         "MakeGenericMethod".    
7176
7177 2005-09-05  Martin Baulig  <martin@ximian.com>
7178
7179         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
7180
7181 2005-09-05  Martin Baulig  <martin@ximian.com>
7182
7183         Applying a patch from Michal Moskal <malekith@nemerle.org>.
7184
7185         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
7186         generic_container is non-NULL.
7187
7188 2005-09-05  Martin Baulig  <martin@ximian.com>
7189
7190         Applying a patch from Michal Moskal <malekith@nemerle.org>.
7191
7192         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
7193
7194 2005-08-29  Michal Moskal  <malekith@nemerle.org>
7195
7196         * reflection.c (encode_locals,
7197         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
7198         for large generic types.
7199
7200 2005-09-05  Martin Baulig  <martin@ximian.com>
7201
7202         Applying a patch from Michal Moskal <malekith@nemerle.org>.
7203
7204         * class.c (mono_dup_array_type): New public method.
7205         (mono_metadata_signature_deep_dup): New public method.
7206         (dup_type): Correctly duplicate array and function types.
7207
7208 2005-09-05  Martin Baulig  <martin@ximian.com>
7209
7210         Applying a patch from Michal Moskal <malekith@nemerle.org>.
7211
7212         * reflection.c (get_default_param_value_blobs): Handle generic types
7213         and generic methods.
7214
7215 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
7216
7217         * class.c: Fixed error reporting (method/class were inversed) for 
7218         inheritance demands.
7219         * security-manager.c|h: Added the AppDomain when calling the managed
7220         System.Security.SecurityManager.InheritanceDemand method.
7221
7222 2005-09-01  Raja R Harinath  <rharinath@novell.com>
7223
7224         * reflection.c (encode_marshal_blob): 'marshaltype' and
7225         'marshaltyperef' are alternate sources for the custom marshaler
7226         name.
7227
7228 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
7229
7230         * class.c: fix creation of array classes with rank == 1
7231         (patch by Ankit Jain <jankit@novell.com>).
7232
7233 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
7234
7235         * object.c: fix check for creating the bound data for arrays vs
7236         szarrays.
7237
7238 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7239
7240         * object.c: configuration file name is now based on the executable name,
7241         not the image name. Fixes bug #75931.
7242
7243 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
7244
7245         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
7246         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
7247
7248 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
7249
7250         * rand.c: Use wincrypt.h instead of WinCrypt.h.
7251
7252 2005-08-24  Ankit Jain  <jankit@novell.com>
7253             Raja R Harinath  <rharinath@novell.com>
7254
7255         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
7256           called by it recursively.
7257           (mono_class_init): Remove special case in pending_init handling, since it's
7258           superseded by the fix to mono_class_from_typeref.
7259
7260 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
7261
7262         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
7263         BROKEN_THREAD_START stuff.
7264
7265 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
7266
7267         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
7268         trampoline.
7269
7270         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
7271         
7272         * object.c (mono_delegate_ctor): Replace the original function address with
7273         a delegate trampoline.
7274
7275 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
7276
7277         * icall.c: add boolean argument to base64_to_byte_array and 
7278         InternalFromBase64String to control whether a whitespace-only string
7279         is allowed (or should casue a FormatException to be thrown). We need
7280         this as the behavior has changed between MS.NET 1.x and 2.0, and we
7281         to match the MS behaviour in both profiles.
7282         * appdomain.c: Bump corlib version.
7283
7284 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7285
7286         This patch implements a big portion of publisher policy
7287         support, used to bind assembly versions and redirect
7288         one assembly from version A to version B.
7289
7290         * assembly.c:
7291         New GSList loaded_assembly_bindings, for storing the cached
7292         assembly bindings.
7293         (assembly_binding_maps_name): New static function for checking if a 
7294         assembly binding information maps an assembly name.
7295         (mono_assembly_binding_info_free): New function for freeing
7296         assembly binding information resources.
7297         (get_publisher_policy_info): New static function for retrieving 
7298         assembly binding information from a MonoImage.
7299         (compare_versions): New static function for comparing an assembly
7300         binding information data and the version of an assembly name.
7301         (check_policy_versions): New static function for checking if an
7302         assembly binding info mapping an assembly name is valid for it.
7303         (mono_assembly_load_publisher_policy): New static function for
7304         loading the 'policy.major.minor.MyAssembly' image for an assembly
7305         with an assembly name 'aname'.
7306         (mono_assembly_bind_version): New static function for updating
7307         assembly redirection.
7308         (mono_assembly_apply_binding): New static function for applying
7309         assembly binding.
7310         (search_binding_loaded): New static function for searching 
7311         loaded assembly binding infos in the cache domain.
7312         (mono_assembly_load_full): Don't apply assembly binding for
7313         reflection only assemblies.
7314
7315         * metadata-internals.h: Add MonoAssemblyBindingInfo,
7316         which contains information about assembly binding. Also
7317         declare signature for mono_config_parse_publisher_policy ()
7318         function, used to retrieve pub policy info.
7319         
7320         * mono-config.c:
7321         (publisher_policy_start): New static function used to parse publisher 
7322         policy config files.
7323         (publisher_policy_parser): New static MonoParseHandler containing 
7324         the functions used when parsing config files.
7325         (mono_config_parse_publisher_policy): New function for parsing
7326         publisher policy files.
7327         
7328 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
7329
7330         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
7331
7332         * marshal.c (mono_delegate_free_ftnptr): Ditto.
7333
7334         * object.c (mono_get_addr_from_ftnptr): New helper function.
7335
7336         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
7337
7338         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7339
7340 2005-08-19  Dick Porter  <dick@ximian.com>
7341
7342         * threads.c, threads.h, appdomain.c, appdomain.h,
7343         profiler-private.h, monitor.c, object.c, object-internals.h,
7344         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
7345         store the thread ID, so it can hold a 64 bit value if needed.
7346
7347 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
7348
7349         * reflection.c (mono_reflection_create_dynamic_method): Store the
7350         handle class into the method references as well so ldtoken works in
7351         dynamic methods.
7352
7353         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
7354         types.
7355
7356 2005-08-19  Ankit Jain <jankit@novell.com>
7357
7358         Fix #75847.
7359         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
7360           here rather than using the method signature of a arbitrary function
7361           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
7362           two arguments.
7363           Hack done with Harinath.
7364
7365 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7366
7367         * threadpool.c: disable printing stack traces when we get a exception
7368         in a threadpool thread. I need to do more testing to figure out which
7369         cases actually print this. Fixes bug #75828.
7370
7371 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7372
7373         * icall.c: there might be ignored whitespace after the last '='. This
7374         fixes length computation and bug #75840.
7375
7376 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
7377
7378         * assembly.c (mono_assembly_load_full): Consider .exe extension as
7379         well. Fixes #75809.
7380
7381         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
7382         #75784.
7383         
7384         * reflection.c (create_custom_attr_data): Ditto.
7385
7386 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
7387
7388         * locales.c, culture-info.h : removed RegionLCIDMap.
7389         * culture-info-tables.h : regenerated.
7390
7391 2005-08-16  Martin Baulig  <martin@ximian.com>
7392
7393         * class.c (mono_type_get_name_recurse): Small fix.
7394
7395 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
7396
7397         * locales.c : indentation fixie.
7398
7399 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
7400
7401         * object-internals.h,
7402           locales.h,
7403           locales.c,
7404           culture-info.h,
7405           icall.c : added RegionInfo table support.
7406         * culture-info-table.h : regenerated for region support.
7407
7408 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
7409
7410         * reflection.c (resolve_object): handle all kinds of MonoMethod
7411         including generic ones
7412
7413 2005-08-12  Ankit Jain <jankit@novell.com>
7414
7415         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
7416           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
7417
7418 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
7419
7420         * process.c: Don't close a thread handle when it's NULL. This is a
7421         workaround for bug #75733.
7422
7423 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
7424
7425         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
7426
7427 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
7428
7429         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
7430
7431 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7432
7433         * threadpool.c: if a work item in the thread pool has a callback that
7434         catches a exception, don't propagate it after invoking the callback.
7435         Fixes bug #75336.
7436
7437 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
7438
7439         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
7440
7441         * class-internals.h (MonoCachedClassInfo): Add some new fields.
7442
7443         * class.c (mono_class_init): Load field info lazily in the AOT case.    
7444
7445         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
7446
7447 2005-08-03  Ankit Jain  <jankit@novell.com>
7448
7449         Fix #75683.
7450         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
7451           PInvoke calling convention is 0.
7452
7453 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
7454
7455         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
7456         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
7457
7458 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
7459
7460         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
7461         to handle threads not started by the GC (patch by Michael Meeks
7462         <michael.meeks@novell.com>).
7463
7464 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
7465
7466         * reflection.c: Make buffer used in emitting types larger for some
7467         big generic types (patch by Michal Moskal).
7468
7469 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
7470
7471         * mono-debug.c: Fix some (not all) alignment problems.
7472
7473 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7474
7475         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
7476         Invoke mono_image_load_from_data_full passing the refonly
7477         parameter.
7478
7479         * assembly.c
7480         (mono_assembly_open_from_bundle): Add the refonly argument, 
7481         in order to pass it to other methods it calls to.
7482         (do_mono_assembly_open): Add the refonly argument, in order 
7483         to pass it to other methods it calls to.
7484         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
7485         the refonly parameter to it.
7486
7487         * image.c: Add loaded_images_refonly_hash and
7488         loaded_images_refonly_guid_hash to cache the reflection
7489         only loaded images.
7490         (mono_images_init): Initialize the hash tables used for
7491         caching the reflection only images.
7492         (load_modules): Invoke mono_image_open_full passing the refonly
7493         parameter to load the modules the correct way.
7494         (build_guid_table): Add the refonly argument, to re-build the 
7495         correct hash table.
7496         (do_mono_image_open): Added the refonly argument, in order to
7497         define it for the loaded image.
7498         (mono_image_loaded_full): New function, which receives an
7499         additional parameter to look for the image in the refonly or
7500         non-refonly section.
7501         (mono_image_loaded): Updated, using mono_image_loaded_full.
7502         (mono_image_loaded_by_guid_full): The same case that happens
7503         with mono_image_loaded_full.
7504         (mono_image_loaded_by_guid): Likewise.
7505         (register_image): Use the ref_only variable inside MonoImage
7506         to decide in which hash table store the current image.
7507         (mono_image_open_from_data_full): Rename
7508         mono_image_open_from_data to mono_image_open_from_data_full,
7509         adding the refonly argument, to define the ref_only variable 
7510         inside MonoImage.
7511         (mono_image_open_from_data): Return 
7512         mono_image_open_from_data_full.
7513         (mono_image_open_full): Rename mono_image_open to
7514         mono_image_open_full, receiving the new refonly argument,
7515         to pass it to inner methods.
7516         (mono_pe_file_open): Update this function, to open
7517         a MonoImage as a non-refonly image.
7518         (mono_image_close): Use the refonly variable inside
7519         MonoImage to remove the image from the correct caches.
7520
7521         * image.h: Add the signatures of mono_image_open_full,
7522         mono_image_open_from_data_full, mono_image_loaded_full,
7523         mono_image_loaded_by_guid_full.
7524
7525         * metadata-internals.h: Add the ref_only field to 
7526         MonoImage.
7527         
7528 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7529
7530         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
7531         Fix the last behavior, which used to load the assemblies and
7532         extract MonoReflectionAssemblyName information, instead of
7533         extract it from the metadata tables. Needed for Reflection
7534         Only assemblies.
7535         
7536 2005-07-29  Martin Baulig  <martin@ximian.com>
7537
7538         * mono-debug-debugger.c
7539         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
7540         not initialized.
7541
7542         * mono-debug.c
7543         (mono_debug_address_from_il_offset): Check whether we have
7544         debugging support before attempting to take the lock.
7545         (mono_debug_source_location_from_address): Likewise.
7546         (mono_debug_source_location_from_il_offset): Likewise.
7547         (mono_debug_il_offset_from_address): Likewise.
7548         (mono_debug_address_from_il_offset): Likewise.
7549
7550 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
7551
7552         * class.c (mono_class_from_name_case): Add support for dynamic images.
7553         Fixes #75650.
7554
7555         * object.c (mono_class_compute_gc_descriptor): Add a workaround
7556         for #75479.
7557
7558 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
7559         
7560         * reflection.c (mono_method_get_object): Fix warning.
7561
7562 2005-07-28  Martin Baulig  <martin@ximian.com>
7563
7564         * mono-debug.c
7565         (mono_debug_add_wrapper): Also write the wrapper type.
7566
7567 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
7568
7569         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
7570         
7571         * class.c (mono_class_init): Avoid reading nested classes if the AOT
7572         data indicates the class has none.
7573
7574 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
7575
7576         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
7577         loader lock with the debugger lock. Prevents deadlocks for beagle.
7578
7579         Beagle can now run on an smp box for a weekend without any
7580         issues. Woohoo!
7581
7582 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
7583
7584         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
7585         in a module. Fixes #75629.
7586
7587 2005-07-26  Martin Baulig  <martin@ximian.com>
7588
7589         * mono-debug.c (mono_debug_add_wrapper): New static method.
7590         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
7591         interncall or a wrapper.
7592
7593         * mono-debug.h (MonoDebugWrapperData): New public typedef.
7594         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
7595         (MONO_DEBUGGER_VERSION): Bump to 51.
7596
7597         * mono-debug-debugger.c
7598         (mono_debugger_add_type): Removed this empty function.
7599         (mono_debugger_add_method): Likewise.
7600
7601 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
7602
7603         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
7604         before accessing method->slot.
7605
7606 2005-07-21  Jb Evain  <jbevain@gmail.com>
7607
7608         * reflection.c (method_encode_clauses/class): Handle filters clauses.
7609         Fixes #75010.
7610
7611 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
7612
7613         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
7614         #75587.
7615
7616 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
7617
7618         * image.h image.c: Add mono_image_get_guid () API function.
7619
7620 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
7621
7622         There were issues when multiple threads tried to load
7623         assemblies. A deadlock was created between assemblies_mutex and
7624         mono_domain_assemblies_lock. This fixes the issue by making the
7625         assembly ref counting be lock free. See bug 75586.
7626         
7627         * image.c (mono_image_close): The add ref function here was using
7628         Interlocked operations while the unref was using a mutex and a
7629         --. I don't think this was ever a bug that would be exposed in a
7630         non-pendantic way (ie, by an embedder doing a ref on one thread
7631         and an unref on another), but for the sake of correctness, this is
7632         now Interlocked.
7633
7634         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
7635         (mono_assembly_load_reference): Call mono_assembly_addref rather
7636         than touching the refcount ourselves.
7637         (mono_assembly_close): Use InterlockedDecrement to unref the
7638         assembly. Don't acquire the lock unless it is actually needed.
7639
7640 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
7641
7642         * class.c (mono_class_layout_fields): Fix calculation of has_references
7643         for generic types.
7644
7645 2005-07-12  Martin Baulig  <martin@ximian.com>
7646
7647         Applying a patch from Michal Moskal <malekith@nemerle.org>.
7648
7649         * metadata.c
7650         (mono_type_hash): Provide better hashing for generic instances.
7651         (mono_generic_inst_hash): Improve hashing.
7652         (mono_generic_class_hash): Likewise.
7653
7654         * reflection.c (mymono_metadata_type_hash): Improve hashing for
7655         generic instances.
7656
7657 2005-07-12  Martin Baulig  <martin@ximian.com>
7658
7659         * reflection.c (mono_reflection_create_runtime_class): Remove the
7660         hack for generic type definitions and non-`Run' assemblies.
7661         (mono_reflection_bind_generic_parameters): Also use
7662         `klass->wastypebuilder' to check for TypeBuilders.
7663
7664 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
7665
7666         * class.c (mono_class_layout_fields): Fix calculation of has_references
7667         for generic types.
7668
7669         * class.c (inflate_generic_class): Fix a leak.
7670         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
7671         for generic types.
7672
7673 2005-07-11  Martin Baulig  <martin@ximian.com>
7674
7675         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
7676         on error.
7677
7678 2005-07-11  Martin Baulig  <martin@ximian.com>
7679
7680         * loader.c (find_method): Also lookup in
7681         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
7682
7683 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
7684
7685         * appdomain.c (mono_domain_unload): Don't free the error message
7686         before passing it to mono_get_exception_...
7687
7688         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
7689         
7690 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
7691
7692         * threads.c: try to better guess an available RT signal (bug #75387).
7693
7694 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
7695
7696         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
7697         and CACHE_OBJECT.
7698
7699 2005-07-07  Martin Baulig  <martin@ximian.com>
7700
7701         * class.c (mono_type_get_name_full): Return NULL for
7702         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
7703         fixes #75408.
7704
7705 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
7706
7707         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
7708         exit the appdomain as well being aborted.
7709
7710         * threadpool.c: Create all threadpool threads inside the root appdomain, and
7711         change back to the root domain after calling managed code. This enables
7712         appdomains using threadpools to be unloaded.
7713
7714 2005-07-07  Martin Baulig  <martin@ximian.com>
7715
7716         * class-internals.h
7717         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
7718         into `MonoDynamicGenericClass' since we only need it for dynamic
7719         types.
7720
7721         * reflection.c (mono_class_bind_generic_parameters): We don't need
7722         to compute the `parent' here.
7723
7724 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
7725
7726         * culture-info-table.h : regenerated.
7727
7728 2005-07-06  Martin Baulig  <martin@ximian.com>
7729
7730         * icall.c
7731         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
7732
7733         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
7734
7735 2005-07-06  Martin Baulig  <martin@ximian.com>
7736
7737         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
7738         we're doing a signature-only comparision; fixes #74945.
7739
7740 2005-07-06  Martin Baulig  <martin@ximian.com>
7741
7742         * class-internals.h (MonoGenericClass): Moved some things out into
7743         a new `MonoInflatedGenericClass' type.  
7744         (MonoInflatedGenericClass): New type; the `klass' of a
7745         `MonoGenericClass' is now computed lazyly in
7746         mono_get_inflated_generic_class().      
7747
7748         * class.c (mono_get_inflated_generic_class): New public function.
7749         (mono_class_inflate_generic_method): Removed the unused
7750         `MonoClass *' argument.
7751         (setup_generic_vtable): Don't call mono_get_inflated_method() on
7752         all the methods.
7753         (mono_class_create_generic): Make this static and merge it with
7754         mono_class_create_generic_2(); we're now called automatically from
7755         mono_get_inflated_generic_class().
7756
7757         * loader.c (mono_method_signature): Call
7758         mono_get_inflated_method() here.
7759
7760 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
7761
7762         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
7763         type of fields with RVA.
7764
7765         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
7766         for this pseudo class.
7767         (my_mono_class_from_generic_parameter): Likewise.
7768         (mono_class_init): Allow interfaces to have cctors.
7769
7770 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
7771
7772         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
7773         lazily for AOT methods.
7774
7775 2005-07-05  Martin Baulig  <martin@ximian.com>
7776
7777         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
7778         returns FALSE for a successful match, not TRUE.
7779
7780 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
7781
7782         * loader.c (mono_method_get_index): Optimize this a bit.
7783
7784 2005-07-04  Martin Baulig  <martin@ximian.com>
7785
7786         * class.c
7787         (class_compute_field_layout): Move the check for generic type
7788         definitions into mono_class_layout_fields().  Fixes #74684.
7789         (mono_class_from_generic_parameter): Correctly compute
7790         `klass->parent'; fixes #75457.
7791
7792         * reflection.c (register_assembly, register_module): Make sure
7793         `domain->rejobject_hash' is already created.
7794
7795 2005-07-02  Martin Baulig  <martin@ximian.com>
7796
7797         * class-internals.h
7798         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
7799         `MonoDynamicGenericClass'.      
7800
7801 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
7802
7803         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
7804         returned by a field getter is null, since null is a valid value.
7805
7806 2005-07-01  Martin Baulig  <martin@ximian.com>
7807
7808         * reflection.c (mono_reflection_generic_class_initialize): Update
7809         the `dgclass->fields [i].parent' to the correct class.
7810         (mono_image_get_fieldref_token): Use the declaring type, not the
7811         reflected type.
7812
7813 2005-07-01  Martin Baulig  <martin@ximian.com>
7814
7815         * loader.c (find_method): Also look in the interfaces; fixes #75429.
7816
7817 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
7818
7819         * threads.c (thread_cleanup): assert that thread != NULL
7820         (wait_for_tids_or_state_change): We were using the wrong variable
7821         when accessing wait->threads. `i' was always out of the bounds of
7822         the array.
7823
7824 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7825
7826         * loader.c: map user32 and kernel32 to libMonoSupportW
7827
7828 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
7829
7830         * appdomain.c (unload_thread_main): Mark this as WINAPI.
7831
7832 2005-06-28  Martin Baulig  <martin@ximian.com>
7833
7834         * loader.c (method_from_methodspec): Fix #75334.
7835
7836 2005-06-28  Martin Baulig  <martin@ximian.com>
7837
7838         Fix #74953 - Arrays now implement the generic IList<T> interface
7839         on the 2.0 platform.
7840
7841         * class-internals.h (MonoDefaults): Added `generic_array_class'.
7842
7843         * reflection.c (mono_class_bind_generic_parameters): New public
7844         function; similar to mono_reflection_bind_generic_parameters(),
7845         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
7846
7847         * domain.c (mono_init_internal): Try to initialize.
7848         `mono_defaults.generic_array_class' here; this'll only succeed if
7849         we're using the 2.0 corlib.
7850
7851         * icall.c
7852         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
7853         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
7854         (mono_lookup_internal_call): Added support for nested classes.
7855
7856         * loader.c
7857         (mono_get_method_from_token): Set `result->signature->pinvoke' if
7858         we're an interncall and have generic arguments.
7859
7860         * class.c
7861         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
7862         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
7863         instance of System.Array.InternalArray<T> for arrays, so they
7864         implement the generic IList<T> interface.
7865
7866 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
7867
7868         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
7869         (chastamar@yahoo.com). Fixes #75374.    
7870
7871 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
7872
7873         * culture-info-table.h: regenerated.
7874
7875 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7876
7877         * icall.c: handle spaces correctly for base64 strings.
7878
7879 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
7880
7881         * *.c: Kill some warnings.
7882
7883 2005-06-23  Duncan Mak  <duncan@novell.com>
7884
7885         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
7886         that this builds on Solaris 10 (x86).
7887
7888 2005-06-23  Martin Baulig  <martin@ximian.com>
7889
7890         * class.c
7891         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
7892         generic type definitions.
7893
7894 2005-06-23  Martin Baulig  <martin@ximian.com>
7895
7896         Fix #75331.
7897
7898         * metadata.c (mono_class_get_overrides): Renamed to
7899         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
7900         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
7901         pass it to mono_get_method_full().
7902
7903 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
7904
7905         * reflection.c (mono_reflection_create_runtime_class): take the
7906         mono_domain_lock in this method. Prevents deadlocks
7907
7908 2005-06-22  Martin Baulig  <martin@ximian.com>
7909
7910         * loader.c (method_from_methodspec): Fix #75330.
7911
7912 2005-06-22  Martin Baulig  <martin@ximian.com>
7913
7914         * reflection.c (type_get_qualified_name): Use
7915         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
7916         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
7917         argument; use it if we don't have an assembly name.
7918
7919 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
7920
7921         * object.c: In mono_message_init, set "copy out" flag for in
7922         parameters with the [Out] flag.
7923
7924 2005-06-21  Martin Baulig  <martin@ximian.com>
7925
7926         * class.c
7927         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
7928         and MONO_TYPE_PTR.
7929
7930 2005-06-21  Martin Baulig  <martin@ximian.com>
7931
7932         * class.c (mono_class_init): Don't initialize `class->fields' for
7933         generic instances since they're initialized again in
7934         compute_field_layout(). 
7935         (compute_field_layout): Set the field's `generic_info' here; fix
7936         #75320. 
7937
7938 2005-06-21  Martin Baulig  <martin@ximian.com>
7939
7940         * class-internals.h
7941         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
7942
7943         * metadata.c (mono_metadata_generic_method_equal): Also
7944         distinguish the `generic_class'; fixes #75334.
7945
7946 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7947
7948         * domain.c:
7949         * appdomain.c:
7950         * domain-internals.h:
7951         * reflection.c: 'domain_assemblies' field is now protected by its own
7952         lock. Don't call into managed code to run the AssemblyLoad event if we
7953         now there are no registered delegates for it.
7954
7955 2005-06-20  Martin Baulig  <martin@ximian.com>
7956
7957         * class.c (mono_class_is_assignable_from): Use a custom version of
7958         mono_class_has_parent() to make things work for generic instances;
7959         fix #75300.
7960
7961 2005-06-20  Martin Baulig  <martin@ximian.com>
7962
7963         * loader.c (method_from_methodspec): Apply a patch from
7964         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
7965
7966 2005-06-20  Martin Baulig  <martin@ximian.com>
7967
7968         * class.c (mono_class_init): Reverted Zoltan's last change; it
7969         breaks generics.
7970
7971 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
7972
7973         * threads.c (wait_for_tids_or_state_change): Add missing locking.
7974
7975 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7976
7977         * socket-io.c: fix the index in the socket array for writable/error
7978         sockets. Fixes bug #75306.
7979
7980 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
7981
7982         * class.c (mono_class_init): Allow interfaces to have static ctors.
7983
7984 2005-06-17  Martin Baulig  <martin@ximian.com>
7985
7986         * loader.c (method_from_methodspec): Use `context->container' when
7987         parsing the `gmethod->inst'.
7988
7989 2005-06-17  Martin Baulig  <martin@ximian.com>
7990
7991         * class.c (mono_type_get_name_recurse): Don't add the assembly
7992         name for type arguments.
7993
7994 2005-06-15  Martin Baulig  <martin@ximian.com>
7995
7996         * reflection.c (mono_image_get_inflated_method_token): Encode
7997         correct klass; fixes #75260.
7998
7999 2005-06-13 Michal Moskal <malekith@nemerle.org>
8000
8001         * icall.c: Make GetCorrespondingMethod/Constructor take
8002         MonoReflectionMethod method not MonoMethod. Removed
8003         MonoType.GetCorrespondingField, and make
8004         MonoGenericType.GetCorrespondingField take name not
8005         MonoClassField.
8006
8007 2005-06-13  Michal Moskal <malekith@nemerle.org>
8008
8009         * reflection.c (field_encode_signature, encode_locals):
8010          Make sizes of buffers for types larger (for big generic types).
8011          (create_generic_typespec,
8012          mono_reflection_sighelper_get_signature_local,
8013          mono_reflection_sighelper_get_signature_field):
8014          Add asserts for too small buffers.
8015
8016 2005-06-15  Martin Baulig  <martin@ximian.com>
8017
8018         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
8019         if our parent is not a dynamic type.
8020
8021 2005-06-15  Martin Baulig  <martin@ximian.com>
8022
8023         * class-internals.h (MonoTypeNameFormat): New enum.
8024
8025         * class.c
8026         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
8027         (mono_type_get_full_name): Removed.
8028         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
8029         argument instead of the boolean's.
8030
8031         * icall.c (ves_icall_System_MonoType_getFullName):
8032         Added `gboolean assembly_qualified'.    
8033
8034         * reflection.h
8035         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
8036
8037         * reflection.c (mono_reflection_parse_type): Parse the new type
8038         name format.
8039
8040 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8041
8042         * icall.c: no need to convert from utf16 to utf8 and then back again
8043         after the call to GetLogicalDrives.
8044
8045 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8046
8047         * icall.c: frombase64. Fix problems exposed by new tests.
8048
8049 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8050
8051         * icall.c: added internal calls for converting char [] and strings in
8052         base64 into byte [].
8053
8054 2005-06-10  Martin Baulig  <martin@ximian.com>
8055
8056         * class.c (mono_class_create_generic_2): Read the nested classes
8057         from the metadata rather than from `gklass->nested_classes' since
8058         `gklass' might not be initialized yet.
8059
8060 2005-06-09  Duncan Mak  <duncan@novell.com>
8061
8062         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
8063         all public headers. Fixes #74919.
8064
8065 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
8066
8067         * domain.c: The key for proxy_vtable_hash is now a pointer
8068         array. Added new GHashFunc and GCompareFunc functions for this.
8069
8070         * class.h: The list of interfaces in MonoRemoteClass is known in
8071         advance and can't grow (we create a new MonoRemoteClass if needed),
8072         so now the interface array can be allocated together with
8073         MonoRemoteClass.
8074         
8075         * object.c: Added a new method create_remote_class_key.
8076         Fixed mono_remote_class so it does not depend on
8077         mono_upgrade_remote_class.
8078         Removed extend_interface_array.
8079         Added new method clone_remote_class(), which makes a copy of a remote
8080         class and adds a new interface or class to it.
8081         mono_upgrade_remote_class() now creates a new remote class (or gets
8082         it from the cache) if an vtable upgrade is needed. In this way
8083         we make sure that other objects sharing the same remote class
8084         don't get the new vtable with unwanted interfaces.
8085         
8086         * object-internals.h:
8087         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
8088         
8089         * marshal.c: Track changes in mono_upgrade_remote_class().
8090
8091 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
8092         * icall.c: Add runtime methods for obtaining members of inflated
8093         class, which were created from supplied non-inflated members. It
8094         is used in internal Get{Method,Constructor,Field} methods in
8095         System.Type
8096
8097 2005-06-09  Martin Baulig  <martin@ximian.com>
8098
8099         * reflection.c
8100         (mono_reflection_bind_generic_method_parameters): Fix #75169.
8101
8102 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8103         * reflection.c (mono_image_basic_init): Define
8104         Version in MonoDynamicAssembly. 
8105         
8106 2005-06-08  Martin Baulig  <martin@ximian.com>
8107
8108         Fix #75136.
8109
8110         * loader.c
8111         (mono_method_signature_full): New public method; takes a
8112         `MonoGenericContext *'.
8113         (find_method): Use mono_method_signature_full() and pass the
8114         klass'es context to it.
8115
8116         * class.c (mono_class_is_inflated_method): Use
8117         mono_method_signature_full() and pass the context to it.
8118
8119 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
8120
8121         * object.c: add proper locking in mono_remote_class_vtable(),
8122         fixes possible memory corruption.
8123
8124 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
8125
8126         * marshal.c (mono_remoting_marshal_init): set
8127         initialized after initialization.
8128
8129 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
8130
8131         * locales.c : hush.
8132
8133 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
8134
8135         * object.c (extend_interface_array): fix really silly
8136         memory corrupting / comparison bug.
8137
8138 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8139
8140         * reflection.c: Functions added to support the creation
8141         of CustomAttributeData, which includes Attribute data
8142         used by ReflectionOnly methods.
8143
8144         * reflection.h:  mono_reflection_get_custom_attrs_data and
8145          mono_custom_attrs_data_construct added (functions exposed).
8146
8147          * icall.c: Added mono_reflection_get_custom_attrs_data
8148          as icall.
8149         
8150 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
8151
8152         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
8153         lupus's request.
8154
8155 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
8156
8157         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
8158
8159         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
8160         dynamic DllImportAttribute.
8161
8162         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
8163         dynamic DllImportAttribute.
8164
8165         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
8166         Fixes #75162.
8167
8168 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8169
8170         * threads.c: avoid segfault when an unstarted thread is aborted.
8171
8172 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
8173
8174         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
8175         Returns the name and version of the runtime for reporting.
8176
8177 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8178
8179         * appdomain.c: bump corlib version.
8180         * object-internals.h: new field in MonoReflectionAssembly.
8181
8182 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8183
8184         * object-internals.h: Carlos forgot to add this field.
8185
8186 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8187
8188         * icall.c: Added create_version to create instances
8189         of Version of MonoReflectionAssemblyName. This change helps
8190         the AssemblyName tests to keep running fine.
8191         
8192 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
8193   
8194         * object.c (mono_method_return_message_restore): A somehow less
8195         intrusive fix for #75138.
8196
8197 2005-06-03  Raja R Harinath  <rharinath@novell.com>
8198
8199         * object.c (mono_method_return_message_restore): Fix computation
8200         of expected number of out args.
8201
8202 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
8203
8204         * reflection.c (mono_image_get_method_info): Fix the case when the
8205         charset is empty.
8206
8207 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
8208
8209         * object.c: Added missing null check in
8210           mono_method_return_message_restore.
8211
8212 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
8213
8214         * reflection.c (mono_image_get_method_info): Handle the case when
8215         dllentry is empty.
8216
8217 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
8218
8219         * object.c: When creating the vtable for a proxy, take into account
8220         all inherited interfaces, not only the ones registered in
8221         iclass->interfaces. This fixs bug #74996.
8222         Also, in mono_method_return_message_restore, verify that the array
8223         of out args has the expected lengh.
8224
8225 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8226
8227         * socket-io.c: update the timeout in Poll when the call is interrupte.
8228
8229 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8230
8231         * socket-io.c: support abort/suspend in Select_internal after last
8232         change.
8233
8234 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8235
8236         * threadpool.c: remove warning.
8237
8238 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8239
8240         * icall.c:
8241         * socket-io.[ch]: Select_internal uses poll() now when available, thus
8242         removing the 1024 limit from select(). Runtime part of the fix for
8243         bug #71203.
8244
8245 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8246
8247         * socket-io.c: when resolving the addresses for the same
8248         host returned by gethostname(), get the local IPs from the interface
8249         list. Loopback addresses are discarded if the are interfaces up with
8250         non-loopback ones. Fixes bug #63265.
8251
8252 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
8253
8254         * appdomain.c, verify.c, object-internals.h, reflection.c:
8255         bumped corlib number to 36, and added new extra_flags field
8256         to ReflectionMethodBuilder and friends.  Fixes #75060.
8257
8258 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
8259
8260         * gc.c: register a new weak link only if the object is non-null
8261         (fixes bug#75047).
8262
8263 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
8264
8265         * culture-info.h : short time pattern too.
8266
8267 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
8268
8269         * culture-info.h : expand long time pattern string length.
8270
8271 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
8272
8273         * culture-info-table.h : update (more French date format; #72788).
8274
8275 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
8276
8277         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
8278         the method is static. Fixes #75029.
8279
8280 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
8281
8282         * reflection.c: Update the table_idx field of method builders after
8283         saving the module, since it can change. This is a workaround for
8284         bug #74914. 
8285
8286 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
8287
8288         * culture-info-table.h : update (additional French date format).
8289
8290 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
8291
8292         * icall.c (ves_icall_type_Equals): Revert last change.
8293         
8294         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
8295
8296         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
8297
8298 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
8299
8300         * class-internals.h: Added executioncontext_class field to 
8301         MonoDefaults structure.
8302         * domain.c: Cache System.Threading.ExecutionContext class in 
8303         mono_defaults.
8304         * object.c: Capture the ExecutionContext for asynchroneous calls in
8305          mono_async_result_new.
8306         * object-internals.h: Added execution_context and original_context 
8307         fields to MonoAsyncResult. Added execution_context to MonoThread.
8308         * security-manager.c|.h: Added mono_get_context_capture_method to 
8309         return the capture method (if required by the security manager or by
8310         the framework version used).
8311         * threadpool.c: Apply capture (if present) ExecutionContext in 
8312         mono_async_invoke and revert to original context after it completes.
8313
8314 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
8315
8316         * culture-info-table.h : updated (real hacky solution for zh-CHT).
8317
8318 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
8319
8320         * culture-info-table.h : zh-CHT related workaround.
8321
8322 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
8323
8324         * marshal.c (emit_marshal_custom): Add some error checking and call the
8325         methods in the ICustomMarshaler interface. Fixes #74875.
8326         
8327         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
8328         native->managed wrappers.
8329
8330 2005-05-12  Martin Baulig  <martin@ximian.com>
8331
8332         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
8333         here and use the loader lock.
8334
8335         * mono-debug.c: Properly lock when the debugger is not attached.
8336         (mono_debug_init): Release the initial lock if we're not running
8337         in the debugger.
8338
8339 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
8340
8341         * marshal.c (emit_marshal_custom): Pass through NULL values without
8342         calling the custom marshalling routines.
8343
8344         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
8345         conversion in structures. Fixes #74882.
8346
8347 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
8348
8349         * culture-info-table.h : zh-* cultures were missing.
8350
8351 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
8352
8353         * threads.c: Added a new event background_change_event which is signaled
8354         when a thread changes its background mode.
8355         Moved here several checks previously done in managed code. The checks
8356         require the thread lock, and using the thread lock in managed code
8357         can result in deadlocks.
8358         Merged Start_internal and Thread_internal into a single method. Now 
8359         Thread_internal does all work of creating and starting a thread.
8360         Added icalls for setting and getting the state of the object. Moved from
8361         managed code to avoid locking there.
8362         Added wait_for_tids_or_state_change() which is called instad of
8363         wait_for_tids when waiting for non-backround threads to end. This method
8364         will return if one of the threads ends or the background_change_event
8365         is signaled.
8366         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
8367         the background mode. This method signals the background_change_event
8368         event.
8369         * icall.c:
8370         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
8371         removed Start_internal.
8372         
8373 2005-05-11  Martin Baulig  <martin@ximian.com>
8374
8375         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
8376         to order of some fields to get proper alignment on 64-bit machines.
8377
8378 2005-05-11  Martin Baulig  <martin@ximian.com>
8379
8380         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
8381         changes as they're broken and completely fuck up the debugger.
8382
8383         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
8384
8385 2005-05-10  Martin Baulig  <martin@ximian.com>
8386
8387         * reflection.c (mono_reflection_generic_class_initialize): Don't
8388         call mono_class_setup_parent() here.
8389
8390 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8391
8392         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
8393         send/receive timeout use an integer in milliseconds. We were using a
8394         struct timeval.
8395
8396 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8397
8398         * locales.c:
8399         (internal_get_cultures): reserve the first slot of the array for the
8400         InvariantCulture, which will be filled in managed code.
8401
8402 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
8403
8404         * reflection.c (mono_image_fill_module_table): Initialize the
8405         GENERATION field as well.
8406
8407 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8408
8409         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
8410         Monitor.Enter on the object.
8411
8412 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
8413
8414         * threads.c: Enable the wait for running threads when exiting.
8415         * icall.c: Suspend all threads before exiting.
8416
8417 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
8418
8419         * assembly.c (mono_assembly_load_reference): Fix warning.
8420
8421 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8422
8423         * threadpool.c: changed the default number of threads per cpu. From now
8424         on, the default will be 20 + (5 * number of cpus) instead of 50.
8425
8426 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
8427
8428         * loader.c (mono_method_get_signature_full): Add locking here.
8429
8430 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
8431
8432         * appdomain.c: Moved methods for parsing and freeing assembly
8433         names to assembly.c.
8434         * assembly.c, domain-internals.h: Created public methods for parsing
8435         assembly names. Fixed mono_assembly_load_with_partial_name:
8436         it now finds the best match, taking into account the version,
8437         token and culture specified in the partial name. Also return
8438         the latest version if no version information is specified.
8439
8440 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
8441
8442         * threadpool.c: replace check for SocketAsyncCall class.
8443
8444 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8445
8446         * threadpool-internals.h:
8447         * Makefile.am: added threadpool-internals.h
8448
8449         * threadpool.c: call mono_unhandled_exception on exceptions not handled
8450         that happen in threadpool threads (tested on MS).
8451         (mono_thread_pool_remove_socket): new function that dispatch any pending
8452         AIO call on a socket that is closing. By now only epoll really needs it,
8453         as select/poll wake up when the socket closes.
8454
8455
8456         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
8457
8458 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
8459
8460         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
8461
8462 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
8463
8464         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
8465
8466 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
8467
8468         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
8469         has an abort request, convert it into a suspend request.
8470
8471 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
8472
8473         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
8474         warning for the usage of `UnmanagedFunctionPointerAttribute' which
8475         is not supported yet.
8476
8477 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8478
8479         * image.c: register assemblies loaded from data (bundles) in the loaded
8480         assemblies hash. Fixes bug #74772.
8481
8482 2005-04-29  Martin Baulig  <martin@ximian.com>
8483
8484         * class.c (mono_type_get_name_recurse): Update to the new naming
8485         schema from the latest .NET 2.x beta2.
8486         (mono_class_setup_vtable_general): If we're a generic instance,
8487         copy the vtable from our generic type definition and inflate all
8488         the methods in it.
8489
8490         * loader.c (find_method): Update to the new naming schema from the
8491         latest .NET 2.x beta2.
8492
8493 2005-04-29  Raja R Harinath  <harinath@gmail.com>
8494
8495         * class.c (mono_class_init): Add a mono_loader_unlock to the
8496         #74734 fix.
8497
8498 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
8499
8500         * icall.c (ves_icall_System_Environment_Exit): Remove the 
8501         suspend_all_other_threads () call for the time being, since it can hang.
8502
8503         * threads.c (mono_thread_manage): Similarly, disable the waiting for
8504         the background threads to exit, since it can also hang.
8505
8506         * class.c (mono_class_init): Applied patch from Ankit Jain 
8507         (radical@gmail.com). Avoid pending init errors when a field refers
8508         to a nested class using a typeref. Fixes #74734.
8509
8510         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
8511         this for dynamic modules.
8512
8513 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8514
8515         * threads.c: don't wait for threads that are in the process of aborting
8516         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
8517         and waiting for background threads to finish. This makes xsp and
8518         mod-mono-server exit without random length delays and/or hangs.
8519
8520 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8521
8522         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
8523
8524 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
8525
8526         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
8527         dynamic types to prevent infinite loops. Fixes #74727.
8528
8529         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
8530         ..._is_assignable_to.
8531
8532 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
8533
8534         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
8535
8536 2005-04-25  Martin Baulig  <martin@ximian.com>
8537
8538         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
8539
8540         * domain.c
8541         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
8542
8543         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
8544
8545         * reflection.c (build_compressed_metadata): Set metadata header
8546         version to 2.0.
8547
8548 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
8549
8550         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
8551         number into an integral and a decimal part. Fixes #70473.
8552
8553         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
8554
8555 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
8556
8557         * culture-info-table.h : reflected the latest locale-builder output.
8558
8559 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8560
8561         * threadpool.c: check for SuspendRequested too when deciding if
8562         mono_thread_interruption_checkpoint should be called.
8563
8564 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8565
8566         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
8567         * threads.c: remove interruption_mutex and use Interlocked instead. When
8568         suspending all the threads, wait for all the suspended events at once.
8569         If we're shutting down and get an APC that is going to be queued,
8570         call mono_thread_execute_interruption immediately, as the thread might
8571         be sleeping on a pthread condition or mutex.
8572
8573         * icall.c: call mono_runtime_set_shutting_down before suspending the
8574         threads.
8575
8576         Fixes bug #74693. And now xsp is happier when exiting.
8577
8578 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
8579
8580         * loader.c (mono_stack_walk): Fix #74690.
8581
8582 2005-04-22  Martin Baulig  <martin@ximian.com>
8583
8584         * mono-debug.h (MonoDebugMethodJitInfo): Added
8585         `MonoDebugMethodJitInfo *jit'.
8586
8587         * mono-debug.c (mono_debug_read_method): Cache the
8588         MonoDebugMethodJitInfo in `address->jit'.
8589         (mono_debug_free_method_jit_info): New public method.
8590
8591 2005-04-22  Martin Baulig  <martin@ximian.com>
8592
8593         * class.c (mono_class_is_assignable_from): Disallow
8594         type parameter -> interface.
8595
8596 2005-04-21  Dick Porter  <dick@ximian.com>
8597
8598         * threads.c (mono_thread_create): Turn an assertion into an error.
8599
8600 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
8601
8602         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
8603         
8604         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
8605         Fix some gcc 4.0 warnings.
8606
8607 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
8608
8609         * file-io.c: fix alt dir separator char on unix systems
8610         and cleanup (fixes bug #71214).
8611
8612 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
8613
8614         * marshal.c: Use CALLVIRT instead of CALL when dispatching
8615         a call to a remote domain, since the method may be an
8616         interface method in the client domain. This fixes bug #74192.
8617
8618 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8619
8620         * threadpool.c: recv/send are now performed before going back to managed
8621         code to save one transition.
8622
8623 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8624
8625         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
8626
8627         * metadata/threadpool.c: removed hack to workaround the bug above.
8628
8629         Fixes bug #74618.
8630
8631 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
8632
8633         * reflection.c reflection.h: Fix handling of parameter defaults in
8634         dynamic methods. Also fixes handling of parameter attributes.
8635         Fixes #74609.
8636
8637         * mono-debug.c (mono_debug_close_image): Fix warning.
8638
8639 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8640
8641         * socket-io.h: replaced old unused field with new 'blocking'.
8642         * threadpool.c: restore socket blocking state on windows(tm).
8643
8644 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
8645
8646         * icall.c: don't return the codebase in the AssemblyName[] returned by
8647         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
8648         * object-internals.h: Removed FIXME (fields were presents) and fixed
8649         versioncompat declaration.
8650
8651 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8652
8653         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
8654         not closed, so don't cleanup when it happens.
8655
8656 2005-04-13  Chris Toshok  <toshok@ximian.com>
8657
8658         * mono-debug-debugger.h: change prototype for
8659         mono_debugger_lookup_type.
8660
8661         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
8662         this function, although it should probably be named
8663         mono_debugger_init_type.
8664
8665 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8666
8667         * threadpool.c: fix non-AIO case.
8668
8669 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
8670
8671         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
8672         the built-in profiler to measure just JIT compilation times.
8673
8674 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8675
8676         * threadpool.c: the epollfd might be closed by another thread at
8677         any time, so ignore EBADF at treat it as a "we're closing" sign.
8678
8679 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8680
8681         * threadpool.c: release the semaphores with a count equals to the number
8682         of working threads in both IO and regular pools. Fixed typo that messed
8683         up the count of IO pool threads. Don't initialize the pipe handles if
8684         we're using epoll.
8685
8686 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8687
8688         * threadpool.c: some systems don't like a NULL when deleting the socket
8689         from epoll.
8690
8691 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8692
8693         * threadpool.c: fix semaphore allocation.
8694
8695 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8696
8697         * threadpool.c: added epoll() based implementation for asynchronous IO
8698         that is used instead of the default poll() when available.
8699         It can be disabled by setting MONO_DISABLE_AIO.
8700
8701 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8702
8703         * threadpool.c: windows needs 'closesocket' and instead of returning
8704         0 when the stream is closed while in select, it returns -1. Fixes bug
8705         #74573.
8706
8707 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
8708
8709         * class.c (class_compute_field_layout): Fix the regression caused by
8710         the previous try.
8711
8712 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8713
8714         * threadpool.c: separate pool for socket async. IO.
8715         * threadpool.h: mono_max_worker_threads is not a global any more.
8716
8717 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
8718
8719         * class.c (class_compute_field_layout): Fix #74549.
8720
8721 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8722
8723         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
8724         use 2 connected sockets instead.
8725
8726 2005-04-08  Miguel de Icaza  <miguel@novell.com>
8727
8728         * mono-config.c: Add new entry point for mkbundle
8729         mono_config_parse_memory. 
8730
8731 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8732
8733         * threadpool.c: removed another unused function.
8734
8735 2005-04-08  Ankit Jain  <radical@corewars.org>
8736
8737         * reflection.c (get_default_param_value_blobs): Add 'types'
8738         parameter to get the types encoded in the constant table.
8739         (mono_param_get_objects): Use the type from the constant table,
8740         not the type of the parameter, when creating default values.
8741         Handle null default values correctly.
8742
8743 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8744
8745         * file-io.c:
8746         * file-io.h:
8747         * threadpool.c:
8748         * threadpool.h:
8749         * icall.c:
8750         * socket-io.c: removed dead code for async IO.
8751
8752 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8753
8754         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
8755
8756         * threadpool.c: intercept socket async. calls and pass them to a thread
8757         that is polling and dispatching the job items to the threadpool as
8758         socket become ready. Fixes bugs #71217, #71933.
8759
8760         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
8761         between char and short/ushort arrays.
8762
8763         * socket-io.c: remove dead code.
8764
8765 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
8766
8767         * locales.c,
8768           icall.c : removed InternalToUpper_Comp() and
8769           InternalToLower_Comp().
8770
8771 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
8772
8773         * char-conversions.h : The tables were incorrectly generated. Should
8774           be generated against invariant culture.
8775
8776 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
8777
8778         * object.c (mono_runtime_invoke_array): Fix return value when 
8779         passing pre-created valuetype objects to ctors.
8780
8781         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
8782         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
8783         Fixes #74338.
8784
8785 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
8786
8787         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
8788         only used with --security and hides the wrong corlib version error.
8789
8790 2005-03-30  Joshua Tauberer  <tauberer@for.net>
8791
8792         * class.c: Changed mono_class_name_from_token so that types
8793         outside of a namespace don't have an initial period.  Improved
8794         the g_warning message used in _mono_class_get when loading
8795         fails.
8796         * assembly.c: In mono_assembly_load_reference, when an assembly
8797         can't be found, "No such file or directory" is misleading and
8798         unhelpful because a few paths were checked for the presence of
8799         the assembly.  When that happens (ENOENT), display a nicer
8800         message indicating the directories that were searched.  In all
8801         cases, the warning is made easier to read for non-hackers.
8802
8803 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
8804
8805         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
8806         project/solution.
8807         * appdomain.h|domain.c: Removed inline from functions.
8808         * appdomain.c: Reduced warnings when compiling on windows.
8809         * icall.c: Fixed output_debug declaration to gunichar2*.
8810         * mono-config.c: Reduced warnings when compiling on windows.
8811         * rand.c: Added missing "windows.h". Added missing return value.
8812         * rawbuffer.c: Added missing winsock2.h for windows.
8813         * sysmath.h: Added mono-compiler.h header to allow/ease 
8814         compilation with non-GCC compilers.
8815         * threads.c: Fixed declarations to compile with VS.NET C compiler.
8816         Removed cast warnings.
8817
8818         Adapted from the work of J Lothian (for VC6).
8819
8820 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
8821
8822         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
8823         from default_path.
8824
8825 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
8826
8827         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
8828         the 2.0 profile.
8829
8830 2005-03-27  Raja R Harinath  <harinath@gmail.com>
8831
8832         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
8833         has to be in $(exec_prefix).  $(prefix) is for arch-independent
8834         stuff, and it would probably use $(prefix)/share rather than
8835         $(prefix)/lib.
8836
8837 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8838
8839         * console-io.c: added 2 includes that might be missing.
8840
8841 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
8842
8843         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
8844         profile.
8845
8846         * reflection.c (create_custom_attr): Allocate the params array using
8847         alloca so it gets GC tracking.
8848
8849 2005-03-23  Chris Toshok  <toshok@ximian.com>
8850
8851         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
8852         out some spew.
8853
8854 2005-03-24  Raja R Harinath  <rharinath@novell.com>
8855
8856         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
8857         changes to pick up any changes in prefix, etc.
8858
8859 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
8860
8861         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
8862         
8863         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
8864         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
8865
8866 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
8867
8868         * class-internals.h object-internals.h class.c reflection.c: Extend the
8869         mono_lookup_dynamic_token () function to return the class of the
8870         token as well. 
8871
8872         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
8873         well. Fixes #73848.
8874
8875 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
8876
8877         * security-manager.c: Skip inheritance checks for intra-corlib
8878         class inheritance and method overrides. This skips a lot of checks
8879         and (anyway) permissions cannot work until corlib is loaded.
8880
8881 2005-03-23  Martin Baulig  <martin@ximian.com>
8882
8883         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
8884         MONO_TYPE_GENERICINST.  
8885
8886 2005-03-23  Martin Baulig  <martin@ximian.com>
8887
8888         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
8889
8890 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8891
8892         * class.c: added locking comments to some functions.
8893         Cache the interface offsets arrays (saves about 20 KB
8894         of runtime memory in a typical app).
8895         Reduce the time overhead in mono_class_setup_supertypes ().
8896
8897 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
8898
8899         * icall.c: speedup and fix leaks in GetMethodsByName and
8900         GetPropertiesByName.
8901
8902 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8903
8904         * reflection.c: some locking fixes.
8905
8906 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
8907
8908         * metadata.c: added missing break in case statement.
8909
8910 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
8911
8912         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
8913         typedbyref return values. Fixes #73941.
8914
8915 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
8916
8917         * security-manager.c|h: Added demandunmanaged method and 
8918         suppressunmanagedcodesecurity class to MonoSecurityManager.
8919         Renamed aptc class to allowpartiallytrustedcallers.
8920
8921 2005-03-17  Martin Baulig  <martin@ximian.com>
8922
8923         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
8924
8925 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8926
8927         * file-io.c: disabled file async. IO using aio_*. It uses the
8928         threadpool now. Workaround for bug #73718.
8929
8930 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8931
8932         * assembly.h, mono-config.c: added code to deal with bundled configs
8933         for bundled assemblies.
8934
8935 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
8936
8937         * *.c, private.h: cleanup, removing old private.h header file.
8938
8939 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
8940
8941         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
8942         and throw_on_unmappable_char attributes.
8943
8944 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
8945
8946         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
8947         _ProcessName_internal.
8948
8949 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
8950
8951         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
8952         #73631.
8953
8954         * icall.c threads.c threads-types.h: Remove slothash icalls as they
8955         are no longer used.
8956
8957 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
8958
8959         * object.c (compute_class_bitmap): Add support for generics. Fixes
8960         #73527.
8961
8962 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
8963
8964         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
8965
8966 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8967
8968         * filewatcher.c: commented out the code for windows watcher, as we don't
8969         use it (we use the managed implementation instead).
8970
8971 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
8972
8973         * object-internals.h (MonoThread): Remove 'unused1' field.
8974
8975         * appdomain.c: Bump corlib version.
8976
8977         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
8978
8979         * reflection.c (mono_reflection_create_runtime_class): Remove the
8980         AssemblyBuilder.Save optimization since it causes too many problems.
8981
8982 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
8983
8984         * exception.c|h: Added mono_get_exception_reflection_type_load to
8985         create a ReflectionTypeLoadException object.
8986         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
8987         to return NULL is a InheritanceDemand fails during reflection. Updated
8988         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
8989         ReflectionTypeLoadException if an InheritanceDemand fails during 
8990         reflection. Added icall mapping for GetLinkDemandSecurity.
8991         * security-manager.c|h: Added ves_icall_System_Security_
8992         SecurityManager_GetLinkDemandSecurity internal call to return the
8993         class and methods permissions set for a LinkDemand. Removed unused
8994         fields in MonoSecurityManager.
8995
8996 2005-03-10  Martin Baulig  <martin@ximian.com>
8997
8998         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
8999         it's a generic instance.
9000
9001 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
9002
9003         * reflection.c (mono_get_object_from_blob): Applied patch from
9004         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
9005
9006         * class.c (mono_class_is_assignable_from): Another try at fixing 
9007         #73469 without breaking anything.
9008
9009 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
9010
9011         * class.c: (mono_class_is_assignable_from): Revert the last changes
9012         since they don't work with generics.
9013         
9014         * class.c (mono_class_is_assignable_from): Fix build bustage.
9015
9016         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
9017         the managed IsAssignableFrom method. Fixes #73469.
9018
9019         * reflection.c (mono_reflection_call_is_assignable_from): New helper
9020         function.
9021
9022 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
9023
9024         * object.c (mono_load_remote_field_new): Fix returning uninitialized
9025         memory when the remoting callback does not sets the out arguments.
9026         Fixes #73007.
9027
9028         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
9029         by mistake.
9030
9031         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
9032
9033         * object-internals.h (MonoStackFrame): Sync with managed object layout.
9034
9035         * appdomain.c: Bump corlib version.
9036
9037 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
9038
9039         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
9040         function.
9041
9042         * threads.c (mono_thread_attach): Detect threads which are not started
9043         by the GC pthread wrappers.
9044
9045 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
9046
9047         * icall.c: Added new icall for RNG.
9048         * rand.c|h: Added new icall to open the RNG. This allows to share a 
9049         single handle on Linux to access /dev/urandom and fix #73183.
9050
9051 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
9052
9053         * object.c: setting the new vtable in a transparent proxy object must
9054         not change the GC descriptor.
9055
9056 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9057
9058         * object.c: fixed compilation without GCJ support.
9059         * reflection.c: for runtime-created types ensure klass->has_references
9060         is correct (bug #73215).
9061
9062 2005-03-02  Martin Baulig  <martin@ximian.com>
9063
9064         * class.c (mono_class_is_assignable_from): Make this work if
9065         `oklass' is a generic instance; fixes #72831.
9066
9067 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
9068
9069         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
9070         with hasthis set.
9071         
9072         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
9073
9074         * marshal.c: Reorganize native->managed marshalling code to also use
9075         the emit_marshal_... functions.
9076
9077 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
9078
9079         * object.c: typed allocs have issues with bitmap sizes > 30,
9080         so check for max_set >= 30.
9081
9082 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
9083
9084         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
9085         managed code. Fixes #73012.
9086
9087         * metadata.h (MonoMarshalSpec): Add elem_mult field.
9088
9089         * metadata.c reflection.c: Load/Emit elem_mult as well.
9090         
9091         * metadata.h (MonoMarshalSpec): Add comment.
9092
9093         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
9094
9095         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
9096         num_elem to -1 if not given.
9097
9098         * object-internals.h (MonoReflectionMarshal): Add has_size field.
9099
9100         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
9101         given values.
9102
9103 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
9104
9105         * null-gc.c (mono_gc_free_fixed): Was not compilable.
9106
9107 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
9108
9109         * reflection.c (encode_marshal_blob): Encode param_num field as well.
9110
9111         * object-internals.h (MonoReflectionMarshal): Add param_num field.
9112
9113 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
9114
9115         * object.c: generalized the reference bitmap creation
9116         and added hooks for the new GC.
9117         * class-internals.c: removed the gc_bitmap field from MonoClass.
9118
9119 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
9120
9121         * domain.c: help the compiler to produce better code
9122         in mono_jit_info_table_find ().
9123
9124 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
9125
9126         * object.c: make all allocations look typed.
9127
9128 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
9129
9130         * socket-io.c: load Mono.Posix if it's not loaded already
9131         (fixes bug#73033).
9132
9133 2005-02-24  Martin Baulig  <martin@ximian.com>
9134
9135         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
9136         * reflection.c (dup_type): Likewise.
9137
9138 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
9139
9140         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
9141         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
9142
9143 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
9144
9145         * domain.c, threads.c, object-internals.h: make the critical thread
9146         local vars use the fast access mode (even when we're compiled in
9147         a lib). Provide accessors to be used by the jit during codegen.
9148
9149 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9150
9151         * appdomain.c: Changed hook functios behavior to include
9152         support for the reflection only assemblies. Some icalls were changed
9153         to support the mentioned assemblies too. Signatures of static methods
9154         try_assembly_resolve and real_load now have an additional parameter:
9155         refonly.
9156
9157         * assembly.c: General changes to mono_assembly_ methods to support
9158         reflection only api. Functions mono_assembly_open, mono_assembly_load,
9159         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
9160         suffix, to support an additional gbool parameter to specify whether
9161         the assembli is reflection only or not. Created some new hook functions 
9162         to add support for reflection only assemblies. Signatures of static 
9163         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
9164         have now an additional parameter: refonly.
9165
9166         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
9167         indicating whether the assembly is reflection only or not.
9168
9169         * exception.c: Add mono_get_exception_invalid_operation.
9170
9171         * icall.c: Throw an InvalidOperationException when trying to invoke
9172         a property/method/event, or trying to set/get the value of a field.
9173         Also add an icall to retrieve the ref_only flag to the
9174         MonoReflectionAssembly.
9175
9176 2005-02-23  Chris Toshok  <toshok@ximian.com>
9177
9178         Part of fix for #72827.
9179         * mono-debug.c (mono_debug_add_method): add lexical block data to
9180         the info we write.  Kind of a hack at the moment - we copy the
9181         lexical block info from the MonoDebugMethodInfo to the
9182         MonoDebugMethodJitInfo here, before writing it.
9183         (mono_debug_read_method): read the lexical block info.
9184
9185         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
9186
9187         * debug-mono-symfile.h: add lexical block support.
9188
9189         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
9190         support.
9191
9192 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
9193
9194         * loader.c (mono_lookup_pinvoke_call): Fix warning.
9195
9196         * object.c (mono_runtime_free_method): Call mono_free_method () and
9197         put the TODOs there.
9198
9199         * loader.c (mono_free_method): Free up most memory allocated for 
9200         dynamic methods.
9201
9202 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
9203
9204         * reflection.c: properly flag a Type argument to a
9205         named custom attr value (bug #72248).
9206
9207 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
9208
9209         * reflection.c: reduce code duplication in named custom
9210         attribute encoding.
9211
9212 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
9213
9214         * reflection.c: properly encode custom attrs of type object
9215         (bug #72649).
9216
9217 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
9218
9219         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
9220
9221 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
9222
9223         * socket-io.c: load System.dll if it's not loaded already
9224         (bug #72850 and #70477).
9225
9226 2005-02-21  Martin Baulig  <martin@ximian.com>
9227
9228         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
9229         generic instances.
9230
9231 2005-02-21  Martin Baulig  <martin@ximian.com>
9232
9233         * reflection.c (mono_image_build_metadata): We also need to
9234         "fixup" the MethodImpl table after we computed the final method
9235         indices.  Call fixup_methodimpl() to do that.
9236         (fixup_methodimpl): New private method.
9237
9238 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
9239
9240         * assembly.c: special case mscorlib.dll (bug#72536),
9241         patch from Carlos Alberto Cortez.
9242
9243 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
9244
9245         * threads-types.h threads.c: Fix build bustage.
9246
9247         * threads.c: Use a union for long<->double conversions.
9248
9249         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
9250         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
9251
9252         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
9253         containing the checkpoint call with NOT_TAKEN.
9254         
9255         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
9256         checkpoint before pushing the arguments, so they won't have to be
9257         spilled to stack.
9258
9259 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9260
9261         * domain.c, assembly.c, domain-internals.h: make some data
9262         const and relocation-free.
9263
9264 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
9265
9266         * object.c, appdomain.c, class-internals.h: introduce the
9267         MonoClassRuntimeInfo structure to hold the info needed to
9268         use a class at runtime. Made mono_class_vtable() lock-free
9269         for all the appdomains.
9270
9271 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
9272
9273         * metadata-internals.h, image.c: introduce a per-image mempool to
9274         be used for memory that has the same lifetime as the image.
9275
9276 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
9277
9278         * domain.c: In mono_init_internal(), instead of selecting the first
9279         runtime version supported by an executable, get a list of all
9280         supported versions and select the one for which an mscorlib exists
9281         (since even if the runtime supports a given version, it doesn't mean
9282         that the framework for that version is installed).
9283         Modified get_runtimes_from_exe to support this behavior.
9284         In supported_runtimes, added information about additional system
9285         assembly versions.
9286         
9287         * assembly.c: Added support for more than one system assembly version
9288         per runtime version. Updated the assembly list.
9289         In mono_assembly_remap_version, removed the initial version check,
9290         since we don't know to which version we need to compare until we
9291         get the version set on which the assembly is based.
9292         Moved the code for loading corlib into the new method
9293         mono_assembly_load_corlib(), so it can be used by the initialization
9294         code.
9295         
9296         * domain-internals.h: Updated data structures and added declaration
9297         for mono_assembly_load_corlib.
9298
9299 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
9300
9301         * reflection.c (resolve_object): Fix the creation of the signature in 
9302         the SignatureHelper case.
9303
9304         * assembly.c (mono_assembly_remap_version): Fix binary search.
9305         
9306 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
9307  
9308         * class.c: Added inheritance check when a method is overloaded (from a
9309         virtual method or when implementing an interface) and when a class is
9310         inherited. Added functions to set a failure for a class and to 
9311         retreive the exception from a failure.
9312         * class-internals.h: Added fields to MonoClass to keep the exception
9313         information status for inheritance (or other exceptions) to be thrown
9314         later (i.e. not at load time).
9315         * object.c: Throw the inheritance SecurityException when a type is to 
9316         be created with either class or method inheritance violations.
9317         * reflection.c|h: Fix when getting declsec from a class. Removed 
9318         unrequired code for class. Improved sanity in parameter naming.
9319         * security-manager.c|h: Added functions to check for class and method
9320         inheritance.
9321
9322 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
9323
9324         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
9325         and has_finalize in dynamic types as well.
9326
9327 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
9328
9329         * culture-info-table.h : fixed currency format for en-GB (and so on).
9330
9331 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
9332
9333         * gc.c: ensure the GC handles never have 0 as a value.
9334
9335 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
9336
9337         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
9338         a pointer to a struct to unmanaged code. Fixes #72625.
9339
9340 2005-02-16  Martin Baulig  <martin@ximian.com>
9341
9342         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
9343
9344 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
9345
9346         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
9347
9348 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
9349
9350         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
9351
9352         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
9353         UnmanagedFunctionPointerAttribute, use it for determining calling convention
9354         etc. Fixes #71471.
9355
9356         * reflection.c (mono_custom_attrs_get_attr): New helper function.
9357
9358         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
9359
9360 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
9361
9362         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
9363         changes to make the current context a field in MonoThread.
9364
9365 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
9366
9367         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
9368         the last change.
9369         
9370         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
9371         extracted from mono_marshal_get_native_wrapper.
9372
9373         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
9374         to create wrappers around native functions.
9375
9376         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
9377         delegates for arbitrary function pointers. Fixes #71472.
9378
9379 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
9380
9381         * threads.c: cleaned up the code a little.
9382
9383 2005-02-15  Martin Baulig  <martin@ximian.com>
9384
9385         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
9386         the data table.
9387
9388         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
9389         allocate larger chunks if needed.
9390
9391 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
9392
9393         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
9394         in by mistake.
9395
9396 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
9397
9398         * domain.c: keep the domains in an array and ensure the domain ids
9399         are kept small, so they can be used as indexes to domain-specific data
9400         with a small memory overhead.
9401
9402 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
9403
9404         * icall.c: Handle byref types in Type icalls. Fixes #72544.
9405
9406 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
9407
9408         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
9409
9410 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
9411
9412         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
9413
9414         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
9415         values.
9416
9417         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
9418         
9419 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
9420
9421         * domain-internals.h: add the hashtable here.
9422
9423         * class-internals.h: Remove `info' from MonoMethod
9424
9425         * domain.c: Add a new hashtable, jit_trampoline_hash
9426
9427 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
9428
9429         * object.c: don't set the value of static fields
9430         (fixes bug#72494).
9431
9432 2005-02-11  Martin Baulig  <martin@ximian.com>
9433
9434         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
9435         (mono_debug_add_method): Silently ignore the method if it's too big.
9436         (mono_debug_add_type): Likewise.
9437
9438 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
9439
9440         * threads.c, appdomain.c: remove #ifdefs from the code.
9441
9442 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
9443
9444         * metadata-internals.h: Added flags to MonoAssembly to cache the most
9445         common security informations. This allows us to stay in unmanaged code
9446         when doing LinkDemand and it's special cases (except for the first 
9447         time for initialization). The flags a very much used with --security.
9448         * reflection.c|h: Added code to get declarative security attributes 
9449         for LinkDemand and InheritanceDemand. This required to refactor the
9450         existing code for Demand.
9451         * security-manager.c|h: Added new method fields for the special cases
9452         of LinkDemand.
9453
9454 2005-02-10  Martin Baulig  <martin@ximian.com>
9455
9456         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
9457         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
9458
9459 2005-02-10  Martin Baulig  <martin@ximian.com>
9460
9461         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
9462         debugging code; this is almost a complete rewrite.
9463
9464         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
9465
9466 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
9467
9468         * domain.c, object.h: expose mono_string_equal () and 
9469         mono_string_hash ().
9470         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
9471         it's implemented in managed code.
9472
9473 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9474
9475         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
9476         lo leak objects between appdomains.
9477
9478 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
9479
9480         * assembly.c: old compilers compilation fix from 
9481         robertj@gmx.net (Robert Jordan).
9482
9483 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
9484
9485         * class-internals.h: Little reminder for the future.
9486
9487         * debug-helpers.c: Fix up wrapper_type_names
9488
9489 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
9490
9491         * image.c, metadata-internals.h: when loading an image from a file,
9492         mmap all of it and use the same codepaths as when using a
9493         in-memory image: the code is simpler and we use less memory
9494         (both writable and readonly).
9495
9496 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
9497
9498         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
9499         API to alloc runtime data structures that need to be tracked by the
9500         GC and contain pointers.
9501         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
9502         make the code more readable and eventually use a different GC.
9503
9504 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
9505
9506         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
9507         for out arguments.
9508         
9509 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
9510
9511         * object.c: In release_type_locks(), don't release the cctor lock
9512         if it has already been released. This fixes a crash in the
9513         thread5 test.
9514
9515 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
9516
9517         * gc.c, marshal.c, icall.c: register a delegate for finalization
9518         only when the native function pointer has been allocated for it.
9519
9520 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
9521
9522         * object.c: cleaned up some code, allocate objects that are
9523         pointer free with the atomic malloc variant. Allocate memory
9524         for static data from the mempool if it's pointer-free.
9525         Allocate the bounds array at the end of the array data, when needed.
9526         * object-internals.h, object.h: move a private function in a private
9527         header.
9528         * class.c: handle missing case in tracking references in fields.
9529
9530 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
9531
9532         * class.c, class-internals.h: keep track if a type has
9533         reference fields in either the instance or static fields.
9534
9535 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
9536
9537         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
9538         and renamed to MonoRuntimeInfo. Added fields to store the expected
9539         framework assembly version. Changed mono_get_framework_version and
9540         mono_get_runtime_version for a single mono_get_runtime_info method.
9541         
9542         * assembly.c: Added method to remap system assembly versions to the
9543         current executing runtime version. Removed old mapping code.
9544         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
9545         
9546         * icall.c, reflection.c: Track api changes.
9547
9548 2005-02-06  Miguel de Icaza  <miguel@novell.com>
9549
9550         * loader.c (method_from_memberref): Improve error reporting,
9551         produce the class name instead of the typeref/typedef index. 
9552
9553 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
9554
9555         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
9556
9557 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
9558
9559         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
9560         stdcall and charset name mangling.  Reorganize the code and add
9561         some tracing stuff.
9562
9563 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
9564
9565         * monodiet.c: More iters!
9566
9567         * marshal.c: Iter usage.
9568
9569         * icall.c: Iter usage.
9570
9571         * object.c: Use iters.
9572
9573         * debug-helpers.c: More iters
9574
9575 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
9576
9577         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
9578         under win32.
9579
9580 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
9581
9582         * mono-debug-debugger.c: use iters
9583
9584         * class.c, class-internals.h: mono_class_setup_events is static
9585         now
9586
9587         * All callers: use iters
9588
9589 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
9590
9591         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
9592         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
9593
9594 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
9595
9596         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
9597
9598         * marshal.h: Add prototypes for ldfld/stfld_remote.
9599
9600         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
9601         this is called during startup.
9602         
9603 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
9604
9605         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
9606         MonoThreadsSync struct private in monitor.c. Changed the way
9607         MonoThreadsSync is allocated so it's faster and there is no
9608         need to keep track of it with a finalizer and it uses less memory.
9609         This also finally allows us to allocate mono objects as ptrfree when
9610         there are no reference fields.
9611
9612 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
9613
9614         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
9615         disappearing link to the GC interface and use them to simplify
9616         the gchandles code.
9617
9618 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
9619
9620         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
9621         stfld_remote which call mono_load/store_field_new. This allows methods
9622         calling ldfld/stfld wrappers to be AOTed.
9623
9624         * console-io.c: Include sys/filio.h under solaris.
9625         
9626         * console-io.c: Include curses.h if needed correctly.
9627
9628 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
9629         
9630         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
9631         method->klass as well.
9632
9633         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
9634
9635         * class.c (mono_class_init): Switch on lazy initialization of 
9636         methods.
9637
9638         * class.c (mono_class_get_finalizer): Handle the case when the 
9639         finalizer is inherited.
9640
9641 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9642
9643         * console-io.c: <curses.h> is needed by term.h on solaris.
9644
9645 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
9646
9647         * icall.c, class-internals.h, monodiet.c, class.c: Remove
9648         mono_class_setup_properties where possible. Remove this ftn from
9649         the header file, and make it static.
9650
9651 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
9652
9653         * loader.c: Add missing setup_... call.
9654
9655         * class.c: Add missing setup_... calls.
9656
9657         * class.c (mono_class_init): Switch on lazy initialization of 
9658         the generic vtable.
9659         
9660         * class.c (mono_class_init): Fix generics broken by the recent changes.
9661
9662         * monodiet.c (handle_type): Add missing setup_... calls.
9663
9664         * class.c: Back out garbage in previous patch.
9665         
9666         * class.c: Add missing setup_... calls.
9667
9668         * class.c (mono_class_get_method_from_name_flags): Avoid calling
9669         mono_class_setup_methods () if possible.
9670
9671         * class-internals.h (MonoClass): Add 'has_cctor' flag.
9672
9673         * class-internals.h (MonoCachedClassInfo): New structure.
9674
9675         * class.c: Initialize properties and events fields of MonoClass lazily.
9676
9677         * class.c: Add infrastructure for lazily initializing the methods and
9678         vtable fields of MonoClass. Not yet used.
9679
9680         * class.c (mono_class_get_finalizer): New helper function.
9681
9682         * class.c: Add infrastructure for loading some class related data from
9683         an AOT file.
9684
9685         * object.c: Add infrastructure for initializing the vtable from data
9686         in the AOT file.
9687
9688         * gc.c (run_finalize): Use mono_class_get_finalizer ().
9689
9690         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
9691         appropriate initialization function before accessing parts of the
9692         MonoClass structure.
9693
9694         * marshal.c: Fix warnings.
9695         
9696         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
9697
9698         * mono-debug-debugger.c (get_exception_message): Use 
9699         mono_class_get_method_from_name_flags ().
9700
9701 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
9702
9703         * reflection.c, appdomain.c: Replace a few manual searches that
9704         Zoltan missed. (Paolo approved this part of my initial patch).
9705
9706 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
9707
9708         * profiler.c: disable recording statistical events at report time.
9709
9710 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
9711
9712         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
9713         to byteswap arrays of enum values, too (bug #72080).
9714
9715 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
9716
9717         * appdomain.c (set_domain_search_path): Allow this to be called if
9718         domain->setup is not yet set.
9719
9720         * loader.c (mono_method_get_index): New helper function.
9721
9722         * loader.c reflection.c: Use mono_method_get_index ().
9723
9724         * class.c (mono_class_get_method_from_name_flags): New helper method.
9725
9726         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
9727         this.
9728
9729         * class.c (mono_class_get_cctor): New helper method.
9730
9731         * string-icalls.c object.c class.c marshal.c reflection.c: Use
9732         mono_class_get_method () to look up methods.
9733
9734 2005-02-01  Miguel de Icaza  <miguel@novell.com>
9735
9736         * console-io.c: Fix the build, this should work on Windows.
9737
9738 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
9739
9740         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
9741         be set to null to keep things valid
9742
9743 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9744
9745         * icall.c: added Console 2.0 icalls.
9746         * Makefile.am: added console-io.[ch]
9747         * console-io.[ch]: internal calls for Console 2.0 API.
9748
9749 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
9750
9751         * class.c: make sure we consider all the interfaces
9752         when calculating max_interface_id (bug found by
9753         Jeroen Frijters running ikvm).
9754
9755 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
9756
9757         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
9758         valuetype fields to null.
9759
9760         * object.c (set_value): Ditto. Fixes #71669.    
9761
9762 2005-01-31  Martin Baulig  <martin@ximian.com>
9763
9764         * metadata.c (mono_metadata_has_generic_params): New public
9765         function; checks whether something is a generic method.
9766
9767 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
9768
9769         * appdomain.c: fix infinite recursion when adding assemblies.
9770
9771 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
9772
9773         * object.c: Fix small typo to return all items for Environment.
9774         GetCommandLineArgs.
9775
9776 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
9777
9778         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
9779         reflection.c: more domain and assembly-unload related fixes
9780         and memory leaks plugs.
9781
9782 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
9783
9784         * 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.
9785
9786 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
9787
9788         * loader.c (mono_method_signature): Make this method lazy
9789         (mono_get_method_from_token): Don't computate the signature here.
9790
9791         Doing this saves quite a bit of memory. I got 90 kb on starting up
9792         monodoc. It should also save some disk reads on startup.
9793
9794         * *: MonoMethod->signature might be NULL now. You *MUST* use
9795         mono_method_signature.
9796
9797 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
9798
9799         * object.c (mono_runtime_get_main_args): Return an array from the
9800         current domain here. Fixes #71938.
9801
9802 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
9803
9804         * monitor.c: formatting changes to comply with the
9805         mono coding style and remove #ifdefs from the code.
9806
9807 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
9808
9809         * metadata.c, private.h: remove some unneeded data
9810         and use a more compact representation for table schemas.
9811
9812 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
9813
9814         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
9815         to get a better distribution in hash tables.
9816         * *.c: use mono_aligned_addr_hash() where appropriate.
9817         * assembly.c: make var static.
9818
9819 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
9820
9821         * domain-internals.h: Put MonoJitInfo on a diet.
9822
9823         * domain.c: Fix a warning.
9824
9825 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9826
9827         * gc.c: rework the gc handles code to reuse handles
9828         when freed.
9829
9830 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
9831
9832         * domain.c: fixed long standing bug in mono_string_equal() which
9833         was brought to light with the ldstr changes.
9834
9835 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
9836
9837         * reflection.c: Remove warning by adding missing include for marshal.h
9838
9839 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
9840
9841         * domain.c, object.c: change the ldstr_table to hold
9842         MonoString* as keys: makes the runtime isinterned lookup
9843         faster and simplifies memory management.
9844
9845 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
9846  
9847         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
9848         possible to add imperative security checks before calling the icall.
9849         * reflection.c: Return security attributes on the original MonoMethod
9850         (and not the wrapped one). This fix permissions on icalls.
9851
9852 2005-01-25  Dick Porter  <dick@ximian.com>
9853
9854         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
9855         the check for mktime() support actually test the mktime() return
9856         value.  "Fixes" bug 71682, though the output is still different to
9857         MS.
9858
9859 2005-01-25  Martin Baulig  <martin@ximian.com>
9860
9861         * class.c (mono_class_is_assignable_from): Make this work for
9862         generic instances.
9863
9864 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
9865
9866         * marshal.c (mono_string_utf8_to_builder)
9867         (mono_string_builder_to_utf16): We might not have ownership of the
9868         string. In thise case, we need to create a new buffer.
9869
9870         * object-internals.h (mono_stringbuilder_capacity): sb->str might
9871         be null, in which case, use the default capacity.
9872
9873 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
9874
9875         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
9876         GC events to the profiler.
9877
9878 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
9879
9880         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
9881         if you don't want the GC to run.
9882
9883 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
9884
9885         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
9886         start providing a GC API and keeping different implementations in
9887         their own file.
9888         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
9889
9890 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
9891
9892         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
9893         mmap rather than allocating a huge buffer.
9894         (mono_debug_close_mono_symbol_file): Free the buffer allocated
9895         above.
9896
9897 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
9898
9899         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
9900         and CheckExecutionRights.
9901         * reflection.c|h: Keep the index of the declarative security to be 
9902         used, instead of the pointer, when AOT compiler is used. Also add 
9903         class initialization when requesting demands.
9904         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
9905         CheckExecutionRights. Both properties are now FALSE by default, and
9906         unmodifiable, unless the --security option is used.
9907
9908 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
9909
9910         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
9911         reflection.c: properly refcount images and assemblies, many leaks fixed.
9912
9913 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9914
9915         * threadpool.c: increase the timeout for threads in the thread pool to
9916         10s.  Fixes bug #67159.
9917
9918 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
9919
9920         * class-internals.h: Sun's compiler insists on explicit
9921         signed on bit fields to handle then correctly.
9922
9923 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
9924
9925         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
9926         Make the size of the array fit only the number of invalid path
9927         chars that we have.
9928
9929         * class.c (_mono_class_get): Improve the error reporting when a
9930         class referenced is not found, to assist debugging. 
9931
9932 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
9933
9934         * threads.c: fix off-by-one error.
9935         * domain.c: free data allocated in the domain.
9936
9937 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
9938
9939         * reflection.c (mono_method_body_get_object): Fill out exception info
9940         as well.
9941
9942         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
9943         structure.
9944         
9945 2005-01-19  Martin Baulig  <martin@ximian.com>
9946
9947         * loader.c (mono_get_method_constrained): Make this work again.
9948
9949 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
9950
9951         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
9952         guint16 to match the managed side.
9953
9954         * reflection.c (mono_reflection_body_get_object): Fill out local
9955         variables array.
9956
9957         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
9958         as well.
9959
9960         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
9961         'local_var_sig_token'.
9962
9963 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
9964
9965         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
9966         System.Drawing.
9967
9968         * reflection.c (mono_method_body_get_object): Handle abstract and
9969         runtime methods.
9970
9971 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
9972
9973         * marshal.c, loader.c, class-internals.h, reflection.c:
9974         store the emthod data for a wrapper in an array instead of a list.
9975
9976 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
9977
9978         * marshal.c: change the code to allocate memory more
9979         conservatively for method wrappers.
9980
9981 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
9982
9983         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
9984         fields from MonoClass to the marshal info structure where they belong.
9985
9986 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9987
9988         * class.c, object.c, class-internals.h, marshal.c: rearrange
9989         some fields and tweak some types to lower memory usage.
9990
9991 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
9992
9993         * threads.c (signal_thread_state_change): Handle the case when the
9994         target thread is the current thread.
9995
9996         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
9997
9998         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
9999         emit_ptr_to_object_conv. 
10000
10001         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
10002         marshalling. Fixes #71352.
10003
10004 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
10005
10006         * metadata.h, blob.h: move table enum to blob.h so it can be included
10007         in any header.
10008         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
10009         cut the size of MonoImage/MonoDynamicImage.
10010
10011 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
10012
10013         * profiler.c (mono_profiler_install_simple): Fix default arguments.
10014
10015 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
10016
10017         * reflection.c, reflection.h, icall.c: add a function to check
10018         if an attribute type is defined for a metadata object.
10019
10020 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
10021
10022         * object-internals.h: Added some needed fields from StringBuilder class.
10023         * marshal.c: Set the maxCapacity when creating a StringBuilder.
10024
10025 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
10026
10027         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
10028         threads before shutting down the runtime.
10029
10030         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
10031
10032 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
10033
10034         * object-internal.h, threads.c: implement stacksize and 
10035         parameterized thread start functionality (requires
10036         matching corlib). Marked broken code for later removal.
10037
10038 2005-01-12  Martin Baulig  <martin@ximian.com>
10039
10040         * class-internals.h (MonoGenericClass): Moved the `initialized'
10041         flag to MonoDynamicGenericClass, removed `init_pending'.
10042         (MonoGenericInst): Added `is_reference' flag.
10043
10044 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
10045
10046         * reflection.c (mono_image_create_pefile): Only set the pe_offset
10047         inside the MSDOS header. Fixes #71201.
10048
10049         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
10050         gc thread.
10051         (mono_domain_finalize): Ditto.
10052
10053 2005-01-12  Martin Baulig  <martin@ximian.com>
10054
10055         * class.c (mono_get_shared_generic_class): Use the cache for
10056         non-dynamic generic classes.
10057
10058         * class-internals.h (mono_class_create_generic_2): Removed
10059         function prototype, this function is now static inside class.c.
10060
10061         * class.c (mono_class_create_generic_2): Made this static, only
10062         call it from mono_class_init() and mono_class_setup_parent().
10063         (collect_implemented_interfaces_aux): Call mono_class_init() on
10064         the interfaces we collect.
10065         (mono_class_setup_vtable): Call mono_class_init (class->parent).
10066
10067 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
10068
10069         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
10070         it a real thread handle.
10071
10072         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
10073         MonoJitExceptionInfo, since each catch clause needs its own variable.
10074         
10075 2005-01-11  Dick Porter  <dick@ximian.com>
10076
10077         * image.c (mono_pe_file_open): New variant on mono_image_open()
10078         that does not set up the CLI metadata; used for FileVersionInfo so
10079         it can get the data for windows binaries too.
10080         
10081         * process.c (process_read_string_block): Don't read off the end of
10082         the StringTable block.
10083
10084         These both fix bug 70766.
10085
10086 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
10087
10088         * gc.c: set some fields to NULL at GC cleanup time.
10089         * threads.c: if we quit the main thread, call exit ().
10090
10091 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
10092
10093         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
10094
10095 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
10096
10097         * threads.h, threads.c, object.c: added accessor and settor for
10098         main_thread. Handle it specially when exiting from it: wait
10099         for other foreground threads to exit.
10100
10101 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
10102
10103         * process.c, verify.c: remove some bloat.
10104
10105 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
10106
10107         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
10108         the calling convention to cdecl under win32.
10109
10110 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
10111
10112         * object.c (mono_object_get_size): New function to get the size of
10113         an object instance.
10114
10115         * profiler.c (simple_allocation): Use above.
10116
10117 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
10118
10119         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
10120         ves_icall_System_AppDomain_getRootDomain (as it's not required to
10121         get an appdomain by it's id and we can't assume the root's id is 0).
10122         * domain-internals.h: Change the function prototype to match.
10123         * icall.c: Change the icall table for AppDomain.
10124
10125 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
10126
10127         * locales.c (string_invariant_compare_char): Only compute
10128         GUnicodeTypes in the case where we need them.  Test for ordinality
10129         first and return if so.
10130
10131         From the commit:
10132
10133                 /*
10134                  * FIXME: here we must use the information from c1type and c2type
10135                  * to find out the proper collation, even on the InvariantCulture, the
10136                  * sorting is not done by computing the unicode values, but their
10137                  * actual sort order.
10138                  */
10139
10140 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
10141
10142         * loader.c: for P/Invoke methods, allow the "Internal" shared
10143         library name to refer to the calling process symbol namespace.
10144
10145 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
10146
10147         * Makefile.am: Add the security manager to the build.
10148         * security-manager.c|h: New. Initialization of the security manager.
10149
10150 2005-01-07  Dick Porter  <dick@ximian.com>
10151
10152         * threads.c: 
10153         * monitor.c: Update thread state during Monitor and WaitHandle
10154         waits.  Fixes bug 71031.
10155
10156 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
10157
10158         * reflection.c (property_encode_signature): Correctly handle when the
10159         property has no methods.
10160
10161 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
10162
10163         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
10164         
10165         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
10166         fields from mb, not rmb. Fixes #71017.
10167
10168         * marshal.c (emit_ptr_to_str_conv): Add support for 
10169         ByValTStr -> string conversion. Fixes #71015.
10170
10171         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
10172
10173         * mempool.c (mono_mempool_contains_addr): New helper function.
10174
10175 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
10176
10177         * metadata.c (mono_metadata_compute_size): Fix size calculation of
10178         HasSematics encoded fields.
10179         
10180         * metadata.c (mono_type_to_unmanaged): Improve error message for 
10181         invalid string marshalling.
10182
10183         * metadata.c: Fix warnings.
10184         
10185 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
10186
10187         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
10188         profiler support.
10189
10190 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
10191
10192         * domain.c object.c domain-internals.h: Revert part of r38077 since the
10193         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
10194         tests.
10195
10196 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
10197
10198         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
10199         so methods containing these can be AOTed.
10200
10201 2005-01-03  Martin Baulig  <martin@ximian.com>
10202
10203         * loader.c (find_method): Removed the hack for generic instances.
10204         (method_from_memberref): If our parent is a generic instance, pass
10205         its generic type definition to find_method() and then inflate the
10206         method.
10207         (mono_get_method_constrained): Pass the generic type definition to
10208         find_method() and inflate the method later.
10209
10210         * class-internals.h (MonoStats): Added `generic_class_count'.
10211
10212         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
10213         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
10214
10215         * reflection.c (mono_custom_attrs_from_params): Don't ignore
10216         generic type definitions.
10217
10218 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
10219
10220         * loader.c icall.c: Fix warnings.
10221
10222 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
10223
10224         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
10225         blittable types. Fixes #70864.
10226
10227 2004-12-29  Martin Baulig  <martin@ximian.com>
10228
10229         * icall.c
10230         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
10231
10232         * reflection.c (mono_method_get_object): Create a
10233         "System.Reflection.MonoGenericMethod" for inflated methods; don't
10234         call mono_get_inflated_method().
10235
10236         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
10237
10238 2004-12-27  Martin Baulig  <martin@ximian.com>
10239
10240         * class-internals.h (MonoMethod): Added `is_inflated' flag.
10241         (MonoMethodInflated): Added `inflated' field.
10242
10243         * class.c (mono_class_inflate_generic_method): Don't really
10244         inflate the method here; just set the `is_inflated' flag in the
10245         MonoMethod.
10246         (mono_class_get_inflated_method): Actually inflate the method here
10247         if it's not already inflated; we use the MonoMethodInflated's new
10248         `inflated' field as a cache.
10249
10250 2004-12-26  Martin Baulig  <martin@ximian.com>
10251
10252         * class.c
10253         (inflate_generic_class): Moved some code out of inflate_generic_type().
10254         (mono_class_inflate_generic_method): If we're already inflated,
10255         inflate the context and use the declaring method; ie. make sure
10256         the declaring method of an inflated method is always the generic
10257         method definition.
10258         (mono_class_create_from_typedef): Create
10259         `class->generic_container->context->gclass'.
10260
10261 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
10262
10263         * metadata-internals.h, marshal.c, reflection.c: More
10264         MonoGHashTable->GHashTable.
10265
10266         * domain-internals.h, class.c: Change MonoGHashTable's into
10267         GHashTables for some cases where no gc stuff is used
10268
10269         All users: update apis
10270
10271 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
10272
10273         * metadata.c (builtin_types): Make this `const'. Makes this get
10274         put into the shareable section.
10275         (mono_metadata_init): Casts to make gcc happy.
10276
10277 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
10278
10279         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
10280
10281 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
10282
10283         * icall.c: Added an internal call to retrieve the position and length
10284         of assembly-level declarative security attributes (RequestMinimum, 
10285         RequestOptional and RequestRefuse). This is used by the Assembly class
10286         to re-create the corresponding permission sets.
10287
10288 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
10289
10290         * marshal.c: fix the stelemref wrapper to be type correct
10291         (and faster).
10292
10293 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
10294
10295         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
10296         to do key & 0x7fffffff. Hashtable already does this. It just
10297         results in longer code.
10298
10299 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
10300
10301         * appdomain.c: Bump corlib version.
10302         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
10303         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
10304         * reflection.c|h: Add functions to get declarative security infos
10305         (blob position and length) for assemblies, classes and methods.
10306
10307 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
10308
10309         * reflection.c: sort the constant table (bug #70693).
10310
10311 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
10312
10313         * object-internals.h, threads.c, domain.c: add accessors for
10314         the MonoThread and MonoDomain tls keys.
10315
10316 2004-12-18  Martin Baulig  <martin@ximian.com>
10317
10318         * class.c (inflate_generic_type): If we're inflating a generic
10319         instance, set `ngclass->context->container = context->container';
10320         ie. the container we inflated into.
10321
10322         * metadata.c (mono_metadata_parse_generic_param): Reflect above
10323         inflate_generic_type() changes.
10324
10325 2004-12-17  Martin Baulig  <martin@ximian.com>
10326
10327         * class-internals.h
10328         (MonoGenericClass): Replaced `MonoType *generic_type' with
10329         `MonoClass *generic_class'.  Removed `dynamic_info'; if
10330         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
10331         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
10332
10333 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
10334
10335         * exception.c (mono_exception_from_token): New helper function.
10336
10337 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
10338
10339         * assembly.c (mono_assembly_load_with_partial_name): Call 
10340         mono_assembly_loaded before invoking the preload hooks. Fixes
10341         #70564.
10342
10343         * object-internals.h (MonoThread): Change culture_info and 
10344         ui_culture_info into an array.
10345
10346         * threads.c: Cache culture info objects from more than one appdomain.
10347
10348         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
10349         current UI culture.
10350
10351 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
10352
10353         * threads.h threads.c appdomain.c: Clear the culture_info field of
10354         all threads during unloading if they point to an object in the dying
10355         appdomain.
10356
10357 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
10358
10359         * culture-info.h (TextInfoEntry): New struct
10360         * object-internals.h: sync with managed
10361         * locales.c: fill the `text_info_data' field
10362         * culture-info-tables.h: update
10363
10364 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
10365
10366         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
10367         collector.
10368
10369 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
10370
10371         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
10372         (ves_icall_ModuleBuilder_getMethodToken): Ditto
10373
10374 2004-12-12  Martin Baulig  <martin@ximian.com>
10375
10376         * mono-debug-debugger.c (write_type): If we're an enum and the
10377         builtin types have already been initialized, call mono_class_init().
10378
10379 2004-12-11  Martin Baulig  <martin@ximian.com>
10380
10381         * metadata.c (mono_metadata_load_generic_params): Added
10382         `MonoGenericContainer *parent_container' argument; automatically
10383         compute `container->is_method'; pass the correct owner to
10384         get_constraints().      
10385
10386         * reflection.c (compare_genericparam): Sort the GenericParam table
10387         according to increasing owners. 
10388
10389 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
10390
10391         * profiler.c: allow disabling the default profiler.
10392
10393 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
10394
10395         * decimal.c, icall.c: allow disabling System.Decimal support.
10396
10397 2004-12-09  Marek Safar <marek.safar@seznam.cz>
10398
10399         * reflection.c: Add support for null attribute arguments.
10400
10401 2004-12-09  Martin Baulig  <martin@ximian.com>
10402
10403         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
10404         names to get rid of compiler warnings.
10405
10406 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
10407
10408         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
10409         mono_marshal_load_type_info (). Fixes #69625.
10410         (mono_marshal_get_ptr_to_struct): Likewise.
10411
10412 2004-12-08  Martin Baulig  <martin@ximian.com>
10413
10414         * mono-debug.h: Bumped version number to 47.
10415
10416         * mono-debug-debugger.c
10417         (mono_debugger_event_handler, mono_debugger_event): Take two
10418         guint64 arguments insteed of a gpointer and a guint32.  
10419
10420 2004-12-08  Martin Baulig  <martin@ximian.com>
10421
10422         * debug-mono-symfile.h
10423         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
10424         `address' to `native_offset'.
10425
10426 2004-12-08  Martin Baulig  <martin@ximian.com>
10427
10428         * class.c (mono_class_create_from_typespec): Only inflate if we
10429         either have `context->gclass' or `context->gmethod'.
10430
10431 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
10432
10433         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
10434
10435         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
10436
10437         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
10438
10439         * reflection.c (mono_assembly_get_object): Remove the workaround put
10440         in for the release.
10441         
10442         * appdomain.c: Use the corlib_internal field from MonoAssembly.
10443
10444         * appdomain.c: Bump corlib version.
10445
10446         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
10447         be visible in other appdomains.
10448
10449 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
10450
10451         * threads.c: Interlocked inc and dec for longs were messed up,
10452         use a KISS based impl for this. Fixes 70234
10453
10454 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
10455
10456         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
10457
10458 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
10459
10460         * icall.c: fix to follow policy not to allow struct
10461         arguments in icalls.
10462
10463 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10464
10465         * process.c: make the patch that handles spaces in file paths work
10466         on mono/windows too.
10467
10468 2004-12-06  Martin Baulig  <martin@ximian.com>
10469
10470         * class.c (mono_class_create_generic): Call
10471         mono_class_setup_supertypes() if we're dynamic.
10472         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
10473
10474 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
10475
10476         * object-internals.h: Add new fields to MonoThread.
10477
10478         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
10479
10480         * icall.c threads-types.h threads.c: Add new icalls.
10481
10482         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
10483
10484         * object-internals.h (MonoReflectionAssembly): Sync object layout with
10485         managed side.
10486
10487         * appdomain.c: Bump corlib version.
10488
10489         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
10490         internal assemblies. Fixes #69181.
10491
10492 2004-12-05  Martin Baulig  <martin@ximian.com>
10493
10494         * class.c (mono_class_inflate_generic_signature): Make this a
10495         no-op if `context' is NULL or we don't have any type parameters;
10496         also copy `sentinelpos'.        
10497
10498 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
10499
10500         * image.c: Add unbox_wrapper_cache.
10501
10502         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
10503
10504         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
10505         function generator.
10506         
10507         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
10508         Fixes #70173.
10509
10510         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
10511         
10512 2004-12-04  Martin Baulig  <martin@ximian.com>
10513
10514         * loader.c (mono_method_get_signature_full): New public function;
10515         like mono_method_get_signature(), but with an additional
10516         `MonoGenericContext *' argument.
10517
10518         * class.c (mono_class_inflate_generic_signature): Formerly known
10519         as inflate_generic_signature(); make this public.
10520
10521 2004-12-04  Martin Baulig  <martin@ximian.com>
10522
10523         * metadata.c
10524         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
10525         instead of a `MonoGenericContainer *'.  
10526         (mono_metadata_parse_array_full): Likewise.
10527         (mono_metadata_parse_signature_full): Likewise.
10528         (mono_metadata_parse_method_signature_full): Likewise.
10529         (mono_metadata_parse_generic_inst): Likewise.
10530         (mono_metadata_parse_generic_param): Likewise.
10531         (mono_metadata_parse_mh_full): Likewise.
10532         (mono_type_create_from_typespec_full): Likewise.
10533
10534 2004-12-03  Martin Baulig  <martin@ximian.com>
10535
10536         * class-internals.h (MonoGenericContainer): Replaced the
10537         `MonoGenericContext * pointer with a `MonoGenericContext'
10538         structure and made it the first element.
10539
10540 2004-12-03  Martin Baulig  <martin@ximian.com>
10541
10542         * class.c
10543         (inflate_generic_type): Set the `context->container' when creating
10544         a new MonoGenericContext.
10545         (mono_class_inflate_generic_method): Likewise.
10546         (mono_class_create_from_typespec): Just use `context->container'
10547         to get the container.
10548
10549         * loader.c (method_from_methodspec): Set `context->parent' from
10550         `context->container' - and if that's a method container, use its
10551         parent.  Also set the `context->container' when creating a new
10552         MonoGenericContext.
10553         (mono_get_method_from_token): Use just `context->container' to get
10554         the container.
10555
10556         * metadata.c (do_mono_metadata_parse_generic_class): Also set
10557         `gclass->context->container'.
10558
10559         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
10560         the `context->container' when creating a new MonoGenericContext.
10561
10562 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
10563
10564         * reflection.c (compare_genericparam): Sort params with identical
10565         owner by their number. Fixes gen-111 on sparc.
10566
10567 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
10568
10569         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
10570         around the domain changes.
10571
10572         * appdomain.c (mono_domain_unload): Handle the case when the thread
10573         calling Unload is itself being aborted during unloading. Fixes #70022.
10574
10575         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
10576
10577         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
10578         checkpoint_func as an icall so it gets a wrapper.
10579         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
10580         in the cross-appdomain wrappers too.
10581
10582         * threads.c (mono_thread_has_appdomain_ref): Make this public.
10583
10584         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
10585
10586         * reflection.c: Fix some memory leaks.
10587         
10588 2004-12-02  Martin Baulig  <martin@ximian.com>
10589
10590         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
10591
10592         * metadata.c (generic_class_cache): New static hashtable.
10593         (mono_metadata_lookup_generic_class): New public method.
10594
10595 2004-12-02  Martin Baulig  <martin@ximian.com>
10596
10597         * class.c (mono_class_create_from_typedef): Call
10598         mono_class_setup_parent() and mono_class_create_mono_type() before
10599         parsing the interfaces.
10600
10601 2004-12-02  Martin Baulig  <martin@ximian.com>
10602
10603         * metadata.c (generic_inst_cache): New static hashtable.
10604         (mono_metadata_lookup_generic_inst): New public function.
10605         (mono_metadata_inflate_generic_inst): New public function.
10606         (mono_metadata_parse_generic_inst): New public function.
10607         (do_mono_metadata_parse_generic_class): Use the new
10608         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
10609         since this'll also use the cache.
10610
10611         * reflection.c (mono_reflection_bind_generic_method_parameters):
10612         Use mono_metadata_lookup_generic_inst() to use the new cache.
10613
10614         * class.c (inflate_mono_type): Use
10615         mono_metadata_inflate_generic_inst() to inflate a generic
10616         instance; this'll also use the new cache.
10617
10618         * loader.c (method_from_methodspec): Use
10619         mono_metadata_parse_generic_inst() and
10620         mono_metadata_inflate_generic_inst() rather than parsing it
10621         manually, so we can use the new cache.
10622
10623 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
10624
10625         * threads.c (wait_for_tids): Do not incorrectly free threads when 
10626         the wait times out.
10627
10628 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
10629
10630         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
10631         iter->args based on whether parameters are passed in registers (i.e.
10632         MONO_ARCH_REGPARMS is defined)
10633
10634 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
10635
10636         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
10637         the exception message. Fixes #70070.
10638         (method_from_methodspec): Fix warnings.
10639
10640 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10641
10642         * process.c: (complete_path) return the path quoted
10643
10644 2004-12-01  Martin Baulig  <martin@ximian.com>
10645
10646         * class-internals.h (MonoGenericInst): New structure.
10647         (MonoGenericClass): Replaced `type_argc', `type_argv' and
10648         `is_open' with `MonoGenericInst *inst'.
10649         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
10650         `is_open' with `MonoGenericInst *inst'.
10651
10652 2004-11-30  Martin Baulig  <martin@ximian.com>
10653
10654         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
10655
10656         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
10657         to `generic_class_cache'.
10658
10659         * metadata.c
10660         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
10661         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
10662         (mono_generic_inst_is_valuetype): Renamed to
10663         mono_generic_class_is_valuetype().
10664
10665         * class-internals.h
10666         (MonoGenericInst): Renamed to MonoGenericClass.
10667         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
10668         (MonoClass): Renamed `generic_inst' to `generic_class'.
10669         (MonoGenericContext): Renamed `ginst' to `gclass'.
10670
10671         * object-internals.h
10672         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
10673
10674         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
10675         mono_reflection_generic_class_initialize().
10676
10677         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
10678         now known as "System.Reflection.MonoGenericClass".
10679         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
10680
10681 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
10682
10683         * class-internals.h: Added a flag field to MonoClass to cache the
10684         declarative security attributes actions associated with the class.
10685         * domain-internals.h: Added booleans to MonoJitInfo to cache the
10686         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
10687         applicable to the JITted method.
10688         * reflection.c|h: Added functions to extract (as flags) which security
10689         actions are available (declaratively) for a method, class or assembly.
10690         * metadata.c|h: Added functions to search the declarative security
10691         table in the metadata.
10692         
10693 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
10694
10695         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
10696         EXPORTEDTYPES are already in the class name cache, so there is no
10697         need to add extra code here to look at them. Just removes a bit of
10698         cruft.
10699
10700         (ves_icall_System_Environment_get_TickCount): No need for #if
10701         WINDOWS. We already have the code in io-layer.
10702
10703 2004-11-28  Martin Baulig  <martin@ximian.com>
10704
10705         * loader.c
10706         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
10707         Fixes gen-112.cs.
10708
10709 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
10710
10711         * assembly.c (do_mono_assembly_open): Instead of having a
10712         conditional WITH_BUNDLE, incorporate support for bundles here, by
10713         having a global `bundles' variable holding a pointer to the actual
10714         bundles. 
10715
10716         (mono_register_bundled_assemblies): New API call used by the
10717         bundle code. 
10718
10719         See mkbundle.1 for details.
10720         
10721 2004-11-27  Martin Baulig  <martin@ximian.com>
10722
10723         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
10724         the vtable for generic methods.
10725
10726 2004-11-26  Martin Baulig  <martin@ximian.com>
10727
10728         * metadata.c
10729         (mono_metadata_generic_method_hash): New public function.
10730         (mono_metadata_generic_method_equal): Likewise.
10731
10732         * class-internals.h
10733         (MonoGenericContainer): Added `GHashTable *method_hash'.
10734
10735         * reflection.c (ReflectionMethodBuilder): Added
10736         `MonoGenericContainer *generic_container'.
10737         (reflection_methodbuilder_to_mono_method): Don't create a new
10738         MonoGenericContainer each time we're called.
10739         (mono_reflection_bind_generic_method_parameters): Use
10740         `container->method_hash' to cache the results so we don't create a
10741         different method if we're called several times with the same
10742         arguments.
10743
10744         * loader.c (method_from_methodspec): Use the new
10745         `container->method_hash' here, too.
10746
10747 2004-11-26  Martin Baulig  <martin@ximian.com>
10748
10749         * class.c (inflate_generic_signature): Correctly compute
10750         `res->has_type_parameters'.
10751         (mono_class_vtable): Use the `has_type_parameters' flag to
10752         determine whether we're a generic method.
10753
10754         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
10755
10756 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
10757
10758         * object.c (mono_runtime_run_main): Fix a small memory leak.
10759
10760 2004-11-25  Martin Baulig  <martin@ximian.com>
10761
10762         * class.c (set_generic_param_owner): Fixed the loop.
10763
10764 2004-11-25  Martin Baulig  <martin@ximian.com>
10765
10766         * object.c (mono_class_vtable): Don't create any JIT wrappers for
10767         generic methods.
10768
10769 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
10770
10771         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
10772         names. Fixes #69787.
10773
10774 2004-11-24  Martin Baulig  <martin@ximian.com>
10775
10776         * class.c (mono_class_create_generic_2): If we don't have a
10777         `ginst->parent', inflate `gklass->parent' to get our parent.
10778
10779 2004-11-24  Martin Baulig  <martin@ximian.com>
10780
10781         * reflection.c (compare_genericparam): Correctly sort the
10782         GenericParam table; fixes #69779.
10783
10784 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
10785
10786         * reflection.c: When writing a PE file, don't create a huge
10787         buffer in memory. Just write the arrays we have to the file.
10788         This reduces memory usage.
10789
10790         * metadata-internals.h: MonoDynamicStream pefile is no longer used
10791         globally.
10792
10793 2004-11-17  Martin Baulig  <martin@ximian.com>
10794
10795         * class.c (mono_class_init): Don't setup `class->parent' for
10796         dynamic instances; moved this to mono_class_generic_2().
10797         (mono_class_create_generic): Also set `klass->inited' for dynamic
10798         generic instances.
10799         (mono_class_create_generic_2): Don't do anything for dynamic
10800         generic instances.  Set `klass->parent' here and also call
10801         mono_class_setup_parent() here. 
10802
10803         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
10804         `MonoType *parent' argument; set `ginst->parent' before calling
10805         mono_class_create_generic_2(), so we set the correct parent.
10806
10807 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
10808
10809         * reflection.c: allow getting attributes from ModuleBuilder
10810         (used by ikvm).
10811
10812 2004-11-17  Martin Baulig  <martin@ximian.com>
10813
10814         * class.c (mono_class_create_from_typedef): If a type parameter is
10815         inherited from an outer class, set its owner to that class.
10816
10817 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
10818
10819         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
10820           for (int*) written size. This fixes bug #69592.
10821
10822 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
10823
10824         * icall.c: Added IsAuthenticodePresnet internal call.
10825         * image.c|h: New function that check a MonoImage for an Authenticode
10826         signature in the certificate PE data directory.
10827         * security.c|h: New internal call to ask the runtime if an 
10828         Authenticode signature seems referenced in the PE header.
10829
10830 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
10831
10832         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
10833
10834         * reflection.c (mono_image_create_pefile): Free the assembly streams
10835         after writing out the assembly file.
10836
10837         * object.c (mono_runtime_run_main): Fix small memory leak.
10838
10839         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
10840         property access modifiers. Fixes #69389.
10841
10842 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
10843
10844         * domain.c, object.c, object-internals.h, domain-internals.h,
10845         object.h, marshal.c: keep dynamic code info per domain.
10846
10847 2004-11-15  Martin Baulig  <martin@ximian.com>
10848
10849         * class.c (mono_type_get_name_recurse): Put type arguments in
10850         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
10851         see bug #68387.
10852
10853 2004-11-15  Martin Baulig  <martin@ximian.com>
10854
10855         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
10856         (mono_class_setup_vtable): When computing `the_cname' for a
10857         generic instance, don't include the namespace since we'd otherwise
10858         add it twice.
10859
10860 2004-11-15  Martin Baulig  <martin@ximian.com>
10861
10862         * class.c (mono_class_create_generic): Changed return type to void.
10863         (mono_class_create_generic_2): New public function; setup
10864         `class->method', `class->field' and `class->interfaces' here
10865         instead of in mono_class_init().
10866
10867         * class.h (mono_class_create_generic): Moved to class-internals.h.
10868
10869 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
10870
10871         * reflection.c (mono_image_create_pefile): take a file HANDLE.
10872         rather than writing to memory, write to this file. Right now,
10873         we are just writting into a buffer, and copying that. However
10874         we can avoid the buffer later.
10875
10876         (mono_dynamic_stream_reset): new function
10877
10878         * icall.c, object-internals.h: update for the above.
10879
10880 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
10881
10882         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
10883         have been using gc'd memory. First it is slower, unlikely
10884         the comment in the source code said, secondly, it increases
10885         our footprint to do it in the gc.
10886
10887         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
10888         the method so that it does not have to copy to managed code.
10889
10890 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
10891
10892         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
10893
10894 2004-11-12  Martin Baulig  <martin@localhost>
10895
10896         * reflection.c (mono_image_create_token): Allow generic method
10897         definitions here, since they may appear in an `.override'; see
10898         gen-98/gen-99 for an example.
10899
10900 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
10901
10902         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
10903         #69365.
10904
10905         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
10906         descriptive.
10907
10908 2004-11-11  Martin Baulig  <martin@ximian.com>
10909
10910         * class.c (mono_class_setup_vtable): In an explicit interface
10911         implementation, the method name now includes the arity.
10912
10913 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
10914
10915         * object.c (mono_array_full_copy): Fix warning.
10916
10917 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
10918
10919         * appdomain.c: Removed look_for_method_by_name(). Use the new method
10920         mono_class_get_method_from_name() instead.
10921         
10922         * class-internals.h: Added two new types of wrappers. 
10923         Added MonoRemotingTarget enum. Added new trampoline function type, which
10924         takes an additional MonoRemotingTarget value as parameter, so it is
10925         possible to request a trampoline for a specific target.
10926         
10927         * class.c: Added new mono_class_get_method_from_name() method.
10928         
10929         * class.h: In MonoRemoteClass, we can have now to vtables, one for
10930         general remoting sinks and one specific for cross domain calls.
10931         
10932         * debug-helpers.c: Added new wrapper names.
10933         
10934         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
10935         of a remote class.
10936         
10937         * image.c: Porperly delete value objects form the remoting invoke hashtable.
10938         
10939         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
10940         with several other methods (mono_marshal_get_xappdomain_dispatch,
10941         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
10942         and others) can generate a fast remoting wrapper for cross domain calls.
10943         More information can be found in docs/remoting.
10944         Other changes: Removed mono_find_method_by_name, and used
10945         mono_class_get_method_from_name instead.
10946         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
10947         is stored in the remoting invoke hashtable.
10948         
10949         * marshal.h: published the new method for getting the xdomain wrapper,
10950         and also added a method for getting the adequate wrapper for a given
10951         method and target.
10952         
10953         * object-internals.h, object.c: Added a couple of methods for capying and
10954         cloning arrays.
10955         Modified mono_install_remoting_trampoline, which takes the new remoting
10956         trampoline that has a remoting target as parameter.
10957         mono_class_proxy_vtable now also takes a remoting target as parameter, and
10958         will return the most suitable vtable for the target.
10959         Added mono_remote_class_vtable, which returns the vtable of a remote class
10960         (which can be the normal remoting vtable or the xdomain vtable).
10961         
10962         * threads.c: the xdomain invoke and dispatch wrappers must also be
10963         protected against interruptions.
10964
10965 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10966
10967         * icall.c: use memmove in BlockCopyInternal when the source and
10968         destination arrays are the same.
10969
10970 2004-11-09  Martin Baulig  <martin@ximian.com>
10971
10972         * class-internals.h (MonoGenericContainer): Removed `method' and
10973         `signature', replaced them with `is_method' and `is_signature'
10974         flags.  Added `context'.
10975
10976         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
10977         instead of a `MonoGenericContainer *'.
10978
10979         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
10980         for dynamic type parameters.
10981         (mono_metadata_load_generic_params): Setup `container->context'.
10982
10983         * reflection.c (mono_reflection_setup_generic_class): Setup
10984         `tb->generic_container->context'.
10985         (do_mono_reflection_bind_generic_parameters): Use
10986         mono_class_inflate_generic_type() to correctly inflate types,
10987         rather than using our own hack just for MONO_TYPE_VAR.
10988
10989 2004-11-09  Martin Baulig  <martin@ximian.com>
10990
10991         * class.c (mono_class_inflate_generic_method): Small fix; don't
10992         crash here.
10993
10994         * icall.c
10995         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
10996         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
10997         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
10998         (ves_icall_Type_BindGenericParameters): Likewise.
10999         (ves_icall_Type_get_IsGenericInstance): Likewise.
11000         (ves_icall_Type_GetGenericParameterPosition): Likewise.
11001         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
11002         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
11003         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
11004
11005 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
11006
11007         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
11008         assembly versions and public key tokens. Fixes #69113.
11009
11010 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
11011
11012         * metadata.c: fix bug introduced with the type cache changes
11013         on 2004-11-06.
11014
11015 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
11016
11017         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
11018         the MonoClass pointer instead of the token in exception clauses.
11019         * reflection.c: updates for the above and make the code not depend
11020         on the structure of MonoExceptionClause.
11021
11022 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
11023
11024         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
11025         Add support for dynamic assemblies. Fixes #69114.
11026
11027         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
11028
11029 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
11030
11031         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
11032         since most only those methods use it. the code member of
11033         MonoMethodPInvoke was dead, so that can be removed too. Also,
11034         remove inline_count (again, not used), and move slot so that it
11035         can share bits with some other flags. This saves 8 bytes in the
11036         structure and gives us about 50 kb back for mcs helloworld.cs
11037
11038         * *.[ch]: Do naming changes for the above.
11039
11040         * loader.c (mono_method_get_header): Lazily init the header
11041         on first access.
11042         (mono_get_method_from_token): don't init the header here
11043         (mono_free_method): the header may never be allocated
11044
11045         Overall, this saves 150 kb of unmanaged allocations
11046         for mcs helloworld.cs. That accounts for 10% of the unmanaged
11047         memory at runtime.
11048         
11049         * loader.c, loader.h (mono_method_get_header): new accessor.
11050
11051         * *.[ch]: use the above method. Prepares us to lazily load
11052         the header.
11053
11054         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
11055         three warnings, which are actual bugs (see 69206).
11056
11057         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
11058         unused. Saves a cool 4 bytes / method.
11059
11060 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
11061
11062         * metadata.c (builtin_types): Add types for System.Object here.
11063         (mono_metadata_parse_type_full): Cache MonoType*'s that are
11064         for a class or valuetype from klass->this_arg or klass->byval_arg.
11065
11066         On mcs for a hello world, this gets us down from 21836 MonoType's
11067         to 14560.
11068
11069         (mono_metadata_free_type): Account for the above change.
11070
11071 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
11072
11073         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
11074         exception instead of asserting if name is null.
11075         (ves_icall_System_AppDomain_GetData): Ditto.
11076
11077 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
11078
11079         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
11080         EnumBuilder.
11081
11082         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
11083         Return NULL when the domain does not have entry_assembly set.
11084
11085         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
11086         Add a 'resource_modules' argument.
11087         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
11088
11089         * reflection.c (mono_reflection_create_runtime_class): Move setting
11090         of wastypebuilder here, so mono_get_type_object () returns a MonoType
11091         for enums too.
11092
11093         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
11094         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
11095         Throw an ArgumentNullException if 'ptr' is null.
11096
11097         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
11098         assemblies here. Fixes #69020.
11099
11100 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
11101
11102         * reflection.c (build_compressed_metadata): Fix the previous patch for
11103         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
11104         the stack.
11105
11106 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
11107
11108         * assembly.c (mono_assembly_names_equal): Allow a match if one of
11109         the cultures is false. Fixes #69090.
11110
11111         * reflection.c (build_compressed_metadata): Fix invalid memory read 
11112         detected by valgrind.
11113         
11114         * reflection.c (mono_reflection_get_type): Avoid triggering a 
11115         TypeResolve multiple times for the same type. Fixes #65577.
11116
11117 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
11118
11119         * marshal.c: Avoid using ldftn to call managed functions. It is
11120         much slower than just a call.
11121
11122         * reflection.c (mono_module_get_object): free the basename we
11123         allocate here from glib.
11124         
11125         * reflection.c (ensure_runtime_vtable): make sure to free
11126         overrides.  Also, we were allocating an array of MonoMethod not an
11127         array of MonoMethod*.
11128
11129         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
11130
11131         * image.c (mono_image_close): free image->guid here.
11132
11133 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
11134
11135         * reflection.c: Fix some spec conformance issues with the PE file
11136         structures so mcs compiled apps run on the Net 2.0 beta.
11137
11138 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
11139
11140         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
11141         Implement this. Fixes #67264.
11142
11143         * debug-helpers.h debug-helpers.c marshal.c: Move 
11144         mono_find_method_by_name to debug-helpers.c.
11145
11146 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
11147
11148         * object.c (mono_release_type_locks): type_initialization_hash is
11149         a GHashTable.
11150
11151         * reflection.c object.c object-internals.h: Fix warnings.
11152
11153         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
11154         without accessors. Fixes #61561.
11155
11156         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
11157         application base from the root domain if not set. Fixes #65641.
11158         (mono_runtime_init): Fix warning.
11159
11160 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11161
11162         * appdomain.c: call mono_thread_pool_init.
11163         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
11164         of worker threads based on the number of CPUs and the environment
11165         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
11166         for non-windows (windows) systems.
11167
11168 2004-10-27  Chris Toshok  <toshok@ximian.com>
11169
11170         * mono-debug-debugger.c (write_class): don't call mono_class_init
11171         here, as even with the check for (!klass->init_pending), we get
11172         into a situation where we're hitting cycles in class
11173         initialization.  Fixes #68816.
11174
11175 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
11176
11177         * image.c: Avoid overwriting values in the loaded_images_hash when an
11178         assembly is loaded multiple times. Fixes #61152.
11179
11180         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
11181         so multiple satellite assemblies for the same name can be loaded.
11182         Fixes #68259.
11183
11184         * mono_domain_assembly_preload: Actually return the loaded assembly, 
11185         not NULL.
11186
11187         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
11188         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
11189
11190         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
11191         pending finalizers are not invoked after the appdomain has been 
11192         unloaded. Fixes #67862.
11193
11194 2004-10-22  Martin Baulig  <martin@ximian.com>
11195
11196         * mono-debug-debugger.c
11197         (mono_debugger_runtime_invoke): Don't box valuetypes.
11198
11199 2004-10-22  Chris Toshok  <toshok@ximian.com>
11200
11201         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
11202         don't hide private methods.
11203
11204 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
11205
11206         * icall.c: Allows the runtime to "share" (when known) the public key
11207         token of an assembly. This avoid the need to recalculate the token 
11208         (from the public key) in managed code.
11209
11210 2004-10-21  Chris Toshok  <toshok@ximian.com>
11211
11212         * debug-helpers.c (append_class_name): argh, revert last patch.
11213         
11214 2004-10-21  Chris Toshok  <toshok@ximian.com>
11215
11216         * debug-helpers.c (append_class_name): use '+' as the delimiter,
11217         not '/', so that it matches what the debugger uses to look up
11218         methods.
11219
11220 2004-10-21  Martin Baulig  <martin@ximian.com>
11221
11222         * mono-debug-debugger.c (mono_debugger_throw_exception): New
11223         public method; this is called each time an exception is thrown and
11224         allows the debugger to use exception catch points.
11225
11226 2004-10-21  Martin Baulig  <martin@ximian.com>
11227
11228         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
11229         the stack pointer and the exception object in some struct and pass
11230         that to the debugger.
11231
11232 2004-10-21  Chris Toshok  <toshok@ximian.com>
11233
11234         * mono-debug-debugger.c (do_write_class): add instance/static
11235         event support.  We don't expose "raise" or "other" yet.
11236         (event_is_static): new method.
11237
11238 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
11239
11240         * mono-debug-debugger.c
11241         (mono_debugger_handle_exception): Remove
11242         bogus return value for fussy compilers.
11243
11244 2004-10-20  Martin Baulig  <martin@ximian.com>
11245
11246         * mono-debug-debugger.c
11247         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
11248         (mono_debugger_handled_exception): Likewise.
11249
11250 2004-10-20  Martin Baulig  <martin@ximian.com>
11251
11252         * mono-debug-debugger.h (MonoDebuggerEvent): Added
11253         MONO_DEBUGGER_EVENT_EXCEPTION.
11254
11255         * mono-debug-debugger.c (mono_debugger_handle_exception): New
11256         public function to send the debugger a notification for an
11257         exception and inform it about a catch/finally clause.
11258
11259 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
11260
11261         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
11262         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
11263         fix 2.95 build. 
11264
11265         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
11266
11267 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
11268
11269         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
11270         marshalled as [In,Out]. Fixes #58325.
11271
11272 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
11273
11274         * reflection.c (mono_method_body_get_object): Implement some fields.
11275
11276 2004-10-12  Martin Baulig  <martin@ximian.com>
11277
11278         * reflection.c (mono_reflection_bind_generic_parameters): Small
11279         fix, correctly retrieve our parent from a generic instance.
11280
11281 2004-10-12  Martin Baulig  <martin@ximian.com>
11282
11283         * metadata.c (mono_metadata_generic_param_equal): We always have
11284         an owner.
11285
11286         * class.c
11287         (mono_class_from_generic_parameter): We need to have an owner.
11288         (my_mono_class_from_generic_parameter): Likewise.
11289
11290         * reflection.c (mono_reflection_setup_generic_class): Renamed to
11291         mono_reflection_create_generic_class() and added a new
11292         mono_reflection_setup_generic_class().  
11293         (mono_reflection_initialize_generic_param): If we're a nested
11294         generic type and inherited from the containing class, set our
11295         owner to the outer class.
11296
11297 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
11298
11299         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
11300
11301         * reflection.c (mono_method_body_get_object): New function to create
11302         a MethodBody object.
11303
11304         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
11305
11306 2004-10-11  Martin Baulig  <martin@ximian.com>
11307
11308         * metadata.c (_mono_metadata_type_equal): Renamed to
11309         do_mono_metadata_type_equal() and made static.
11310
11311 2004-10-11  Martin Baulig  <martin@ximian.com>
11312
11313         * appdomain.c: Bump corlib version number to 28.
11314
11315 2004-10-10  Martin Baulig  <martin@ximian.com>
11316
11317         * class-internals.h
11318         (MonoGenericInst): Added `MonoGenericContainer *container'.
11319         (MonoGenericMethod): Likewise.
11320         (MonoGenericContext): Likewise.
11321         (MonoGenericParam): Added `MonoGenericContainer *owner'.
11322
11323         * metadata.c
11324         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
11325         (do_mono_metadata_parse_generic_inst): Likewise.
11326         (mono_metadata_parse_type_full): New public method.  This is the actual
11327         mono_metadata_parse_type() implementation - with an additional
11328         `MonoGenericContainer *' argument.
11329         (mono_metadata_parse_array_full): Likewise.
11330         (mono_metadata_parse_signature_full): Likewise.
11331         (mono_metadata_parse_method_signature_full): Likewise.
11332         (mono_metadata_parse_mh_full): Likewise.
11333         (mono_type_create_from_typespec): Likewise.
11334         (mono_metadata_interfaces_from_typedef_full): New public method;
11335         this is similar to the other _full() methods, but we take a
11336         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
11337         (mono_metadata_parse_generic_param): Take an additional
11338         `MonoGenericContainer *' argument and lookup the MonoGenericParam
11339         from that container.
11340         (mono_metadata_generic_param_equal): New static method to compare
11341         two type parameters.
11342         (_mono_metadata_type_equal): New static method; takes an
11343         additional `gboolean signature_only' argument - if true, we don't
11344         compare the owners of generic parameters.
11345         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
11346         with a TRUE argument - do a signature-only comparision.
11347
11348         * loader.c: Use the new _full() methods and pass the
11349         MonoGenericContainer to them.
11350
11351         * object-internals.h (MonoReflectionTypeBuilder): Added
11352         `MonoGenericContainer *generic_container' field.
11353         (MonoReflectionMethodBuilder): Likewise.
11354
11355 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
11356
11357         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
11358         case initial images of dynamic assemblies.
11359
11360         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
11361
11362         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
11363
11364         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
11365         length of event->other array.
11366         (typebuilder_setup_events): Ditto.
11367
11368         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
11369         'assembly_by_name' and add an 'assemblies' list.
11370
11371         * assembly.h assembly.c: Add a new search hook for determining whenever
11372         an assembly is already loaded. Use this instead of searching in the
11373         loaded_assemblies list.
11374
11375         * domain.c appdomain.c: Implement the new search hook so loaded 
11376         assemblies are now scoped by appdomain. Fixes #67727.
11377
11378 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
11379
11380         * threads.c (mono_thread_attach): Initialize synch_lock field so
11381         mono_thread_detach works again.
11382
11383         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
11384         'lib' too. Fixes #63130.
11385
11386 2004-10-06  Jackson Harper  <jackson@ximian.com>
11387
11388         * culture-info-tables.h: regenerated.
11389
11390 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
11391
11392         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
11393         implemented by other interfaces in the result. Fixes #65764.
11394         
11395         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
11396         Handle unloadable modules without crashing.
11397
11398         * image.c (load_modules): Revert the previous patch since modules must
11399         have a fixed index inside the array.
11400         
11401         * image.c (load_modules): Don't include native modules in the modules
11402         array.
11403
11404 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
11405
11406         * reflection.h: Add param_defaults field.
11407
11408         * reflection.c: Add support for parameter defaults in dynamic methods.
11409         Fixes #64595.
11410
11411         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
11412         an empty string when a type has no namespace. Fixes #64230.
11413
11414 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
11415
11416         * tabledefs.h: Added "internal" security actions to support non-CAS
11417         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
11418         Note: they do not seems to be used anymore in 2.0 (new metadata format)
11419
11420 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
11421
11422         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
11423         constructor of abstract class. Fixes #61689.
11424
11425 2004-10-04  Martin Baulig  <martin@ximian.com>
11426
11427         * class-internals.h (MonoGenericContainer): New type.
11428         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
11429         `MonoGenericContainer *generic_container'.
11430         (MonoClass): Replaced `gen_params' and `num_gen_params' with
11431         `MonoGenericContainer *generic_container'.
11432
11433         * metadata.c (mono_metadata_load_generic_params): Return a
11434         `MonoGenericContainer *' instead of a `MonoGenericParam *';
11435         removed the `num' argument.
11436
11437 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
11438
11439         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
11440         for dynamic images.
11441
11442         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
11443         machine fields.
11444
11445         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
11446
11447         * reflection.c: Save pe_kind and machine values into the generated
11448         image file.
11449
11450         * appdomain.c: Bump corlib version number.
11451
11452         * object-internals.h: Reorganize layout of LocalBuilder.
11453
11454         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
11455         New helper function.
11456
11457         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
11458         created MonoType for dynamic types. Fixes #66180.
11459
11460 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
11461
11462         * threadpool.c: the ares hashtable needs a critical section around it.
11463         this prevents some nasty segfaults
11464
11465 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
11466
11467         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
11468         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
11469         bug 67324).
11470         
11471 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
11472
11473         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
11474         
11475 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
11476
11477         * image.c: Always canonicalize image file names, to avoid loading
11478         the same assembly twice when referenced using a relative path.
11479
11480 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
11481
11482         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
11483
11484         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
11485
11486         * marshal.c: Fix warnings.
11487
11488 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
11489
11490         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
11491         attempting to marshal the delegate_trampoline as the method_addr.
11492         This patch has a static hashtable of marshalled delegates so that 
11493         we can map delegate_trampoline addresses back to delegates.  This
11494         allows a delegate passed to managed code to be passed back into native
11495         code.  Fixes #67039
11496
11497 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
11498
11499         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
11500
11501         * reflection.c (method_encode_code): Align method headers properly.
11502         Fixes #66025.
11503
11504 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
11505
11506         * marshal.c: In the runtime invoke wrapper, reset the abort
11507         exception if it is cached. This avoids the automatic rethrowal of 
11508         the exception after the catch of the wrapper. Also check for pending
11509         interruptions before calling the managed method. This is done using
11510         the new method emit_thread_force_interrupt_checkpoint, since the
11511         normal checkpoint method is ignored when running the invoke wrapper.
11512         * object.c: If the abort exception is rethrown, set the abort_exc
11513         field of the thread, so it will be rethrown aftere every catch.
11514         * threadpool.c: Only run an interruption checkpoint if what has been
11515         requested is a stop of the thread (aborts will be ignored).
11516         * threads.c: By default, a thread will now never be interrumped while
11517         running the runtime invoke wrapper (this ensures that runtime_invoke
11518         will always return to the caller if an exception pointer is provided).
11519         There is a new special method mono_thread_force_interruption_checkpoint()
11520         to force an interruption checkpoint even if running a protected
11521         wrapper, which is used by the same runtime invoke wrapper to do a check
11522         at a safe point.
11523
11524 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
11525
11526         * object.c, object-internals.h: Implemented mono_release_type_locks,
11527         which releases the cctor locks held by a thread.
11528         * threads.c, threads.h: In thread_cleanup, release cctor locks held
11529         by a thread. Added mono_thread_exit() method to be used to safely stop
11530         a thread.
11531
11532 2004-09-28  Raja R Harinath  <rharinath@novell.com>
11533
11534         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
11535         Move null check before dereference.  Avoid indexing beyond the end
11536         of the 'modules' array.
11537
11538 2004-09-28  Raja R Harinath  <rharinath@novell.com>
11539
11540         * metadata-internals.h (MonoImage): Add module_count field.
11541         * image.c (load_modules): Set image->module_count.
11542         (mono_image_load_file_for_image): Use image->module_count.
11543         * reflection.c (mono_image_load_module): Append to image->modules array 
11544         of dynamic assembly.
11545         (mono_module_get_object): Fix loop to actually increment index.
11546         Use image->module_count.
11547         * assembly.c (mono_assembly_load_references): Use image->module_count.
11548         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
11549         Likewise.
11550
11551 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
11552
11553         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
11554         Avoid assert on generic types.
11555
11556 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
11557
11558         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
11559
11560         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
11561
11562         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
11563         function to convert a MarshalSpec structure to its managed counterpart.
11564
11565         * reflection.c: Fix warnings.
11566         
11567         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
11568         field.
11569
11570         * icall.c (mono_create_icall_signature): Fix build.
11571
11572 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
11573
11574         * icall.c: Add MakePointType icall.
11575
11576         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
11577         warnings.
11578
11579 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11580
11581         * threadpool.c: reuse allocated slots in the queue.
11582
11583 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
11584
11585         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
11586
11587         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
11588
11589         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
11590         previous change.
11591
11592         * tabledefs.h: Add constants for pinvoke attributes BestFit and
11593         ThrowOnUnmappableChar.
11594
11595         * icall.c (ves_icall_Type_GetPacking): New icall.
11596
11597 2004-09-24  Martin Baulig  <martin@ximian.com>
11598
11599         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
11600
11601 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11602
11603         * appdomain.c:
11604         (mono_domain_set): allow setting a domain that is being unloaded.
11605         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
11606         being unloaded.
11607
11608 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
11609
11610         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
11611         the GetCustomAttributes icall.
11612
11613 2004-09-23  Martin Baulig  <martin@ximian.com>
11614
11615         * object-internals.h (MonoReflectionGenericParam): Replaced
11616         'has_ctor_constraint', `has_reference_type' and `has_value_type'
11617         with `guint32 attrs'.
11618
11619 2004-09-23  Martin Baulig  <martin@ximian.com>
11620
11621         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
11622
11623 2004-09-23  Martin Baulig  <martin@ximian.com>
11624
11625         * object-internals.h (GenericParameterAttributes): New enum.
11626
11627 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
11628
11629         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
11630         
11631         * class.c (init_events): Fill out event->other field.
11632
11633         * class.c: Fix warnings.
11634
11635         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
11636
11637 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
11638
11639         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
11640         walk which doesn't supply the IL offset.
11641
11642 2004-09-22  Martin Baulig  <martin@ximian.com>
11643
11644         * reflection.c (mono_reflection_setup_internal_class): If we're
11645         System.ValueType, System.Object or System.Enum, set
11646         `klass->instance_size' and create the vtable.
11647         (mono_reflection_create_internal_class): If we're an enum type,
11648         get the base class from our current corlib.
11649
11650 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
11651
11652         * reflection.h (MonoResolveTokenError): New type.
11653
11654         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
11655         icall.
11656
11657         * icall.c: Add an 'error' argument to the ResolveToken icalls.
11658
11659 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
11660
11661         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
11662         Support also calling constructors, but only for already allocated objects.
11663
11664 2004-09-17  Geoff Norton <gnorton@customerdna.com>
11665
11666         * reflection.c (type_get_qualified_name): If the klass is null
11667         return the typename to avoid a NullRefEx.
11668         (encode_cattr_value): Get the qualified name of the boxed type,
11669         not the underlying enumtype.  Fixes #62984.
11670
11671 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
11672
11673         * marshal.c: Fix problems with previous checkin.
11674
11675 2004-09-21    <vargaz@freemail.hu>
11676
11677         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
11678         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
11679
11680         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
11681
11682 2004-09-21  Geoff Norton <gnorton@customerdna.com>
11683
11684         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
11685         should only return a type for pointers, arrays, and passbyref types.
11686         Fixes bug #63841.
11687
11688 2004-09-21  Martin Baulig  <martin@ximian.com>
11689
11690         * domain.c (mono_debugger_check_runtime_version): New public
11691         function.
11692
11693         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
11694
11695 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
11696
11697         * reflection.c: Added missing sort to the declarative security 
11698         attributes table. MS implementation stops seeing the attributes if the
11699         token number regress in the table (as shown by ildasm and permview).
11700
11701 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
11702
11703         * object-internals.h (MonoReflectionModule): Add 'token' field.
11704         
11705         * reflection.c (mono_reflection_get_token): Add support for Module
11706         and Assembly.
11707         (mono_module_get_object): Set 'token' field.
11708         (mono_module_file_get_object): Set 'token' field.
11709
11710         * icall.c: Add new Assembly and Module icalls.
11711
11712         * appdomain.c: Bump corlib version.
11713
11714 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
11715
11716         * loader.h loader.c class.h class.c: Add helper functions for obtaining
11717         tokens of metadata objects.
11718
11719         * reflection.h reflection.c (mono_reflection_get_token): New function
11720         to obtain the token of a metadata object.
11721
11722         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
11723
11724 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
11725
11726         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
11727         
11728         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
11729
11730 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
11731
11732         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
11733         * object-internals.h: Added 3 MonoArray* members to MonoReflection
11734         AssemblyBuilder to access the permissions set in the class lib.
11735         * reflection.c: Added security attributes encoding step in 
11736         mono_image_build_metadata.
11737         * tabledefs.h: Added new security actions defined in 2.0:
11738         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
11739
11740 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
11741
11742         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
11743         macro parameter.
11744
11745 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
11746  
11747         * locales.c: nullify the ICU_collator member of CompareInfo when it is
11748           finalized. There where random SIGSEVs at program termination, when
11749           an object being finalized was trying to do a string comparison and
11750           the current culture was already finalized.
11751  
11752 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11753
11754         * threads.c: call thread_cleanup before finishing the thread if we get
11755         there.
11756
11757 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
11758
11759         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
11760         assemblies from the parent. Fixes #65665.
11761
11762 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
11763
11764         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
11765         modifiers.
11766
11767 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
11768
11769         * reflection.h: add prototype for mono_get_dbnull_object
11770         * reflection.c: add prototypes for get_default_param_value_blobs 
11771         and mono_get_object_from_blob for fussier compilers
11772
11773 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
11774  
11775         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
11776         false deadlock checks in class initialization.
11777  
11778 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
11779
11780         * image.c (mono_image_addref): Fix comment.
11781
11782         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
11783         possible.
11784
11785 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
11786
11787         * reflection.c (mono_param_get_objects): Modified to return
11788         ParameterInfo.DefaultValue object.
11789
11790         (get_default_param_value_blobs):
11791         (mono_get_object_from_blob):
11792         (mono_get_dbnull_object): New helper routines. 
11793
11794         * object.c (mono_get_constant_value_from_blob): New helper routine
11795         carved out from get_default_field_value ()
11796
11797         * object-internals.h (mono_get_constant_value_from_blob): Added
11798         function declaration.
11799
11800 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
11801
11802         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
11803         referenced assemblies. Fixes #62135.
11804
11805         * exception.h exception.c (mono_get_exception_file_not_found2): New
11806         helper function.
11807
11808 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
11809
11810         * class.h class.c: Add mono_type_get_underlying_type ().
11811
11812 2004-09-09  Geoff Norton <gnorton@customerndna.com>
11813
11814         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
11815         Fix GetTypes() to support dynamically created assemblies.
11816
11817 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
11818
11819         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
11820         
11821         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
11822         previous patch.
11823
11824         * reflection.h reflection.c loader.c: Allow dynamic construction of
11825         pinvoke methods. Fixes #65571.
11826         
11827         * reflection.c (mono_reflection_get_type): Revert previous change since
11828         it causes regressions.
11829
11830 2004-09-08  Martin Baulig  <martin@ximian.com>
11831
11832         * class.c (class_compute_field_layout): Don't call
11833         mono_class_layout_fields() for open generic instances.
11834
11835 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
11836         * threads.c appdomain.c: fix typo in GC macro
11837
11838 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11839
11840         * threads.c: don't call mono_thread_detach() in start_wrapper(),
11841         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
11842
11843 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
11844
11845         * image.c (mono_image_close): Applied patch from 
11846         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
11847         assembly is loaded multiple times from data.
11848         
11849         * image.c (mono_image_open): Fix warning.
11850
11851 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11852
11853         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
11854         once. Fixes #58334.
11855         
11856         * reflection.c (mono_reflection_create_runtime_class): Initialize
11857         klass->nested_classes. Fixes #61224.
11858
11859 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
11860
11861         * threads.c: sched_yield() on exit, to allow threads to quit.
11862
11863 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11864
11865         * object.c (mono_unhandled_exception): Remove leftover debug code.
11866
11867 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
11868
11869         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
11870
11871 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11872
11873         * marshal.c (emit_marshal_array): Really null terminate string arrays.
11874         
11875         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
11876
11877 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11878
11879         * marshal.c (emit_marshal_array): Null terminate string arrays.
11880         
11881         * marshal.c (raise_auto_layout_exception): Fix warning.
11882
11883         * reflection.c (mono_param_get_objects): Initialize the default value
11884         with DBNull.Value, not null. Fixes #62123.
11885
11886 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
11887
11888         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
11889         throw an exception with a cute explanation.
11890
11891 2004-09-06  Dick Porter  <dick@ximian.com>
11892
11893         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
11894         Close the new process's thread handle, as we don't use it.  The
11895         handle stays around forever otherwise.
11896
11897 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11898
11899         * object.c (arith_overflow): Fix warning.
11900
11901         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
11902         calling conventions in method refs. Fixes #65352.
11903
11904         * reflection.c: Fix warnings.
11905
11906 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
11907
11908         * icall.c: Add a new icall for Array.Clear
11909
11910 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
11911
11912         * object.c: When allocating an array, we have to throw
11913         an overflow exception if any of the lengths are < 0.
11914
11915 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11916
11917         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
11918         properly. Also move implementation of string array marshalling to 
11919         managed code. Fixes #42316.
11920
11921 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11922
11923         * assembly.c: provide more information when loading an assembly fails.
11924
11925 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11926
11927         * filewatcher.c: don't expect the development fam package to be
11928         installed.
11929
11930 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
11931
11932         * marshal.c: Make a copy of the signature cookie since it will be
11933         freed by the caller.
11934         
11935         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
11936
11937         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
11938
11939         * metadata.c (mono_metadata_free_marshal_spec): New function to free
11940         marshal specs.
11941
11942         * marshal.c: More refactoring.
11943         
11944         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
11945         smaller functions.
11946
11947 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
11948
11949         * object.c: In mono_message_invoke, fill the output parameter array after
11950           calling the managed method (it was done before the call). This fixes
11951           bug #59299.
11952
11953 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
11954
11955         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
11956         as well.
11957
11958 2004-09-02  Martin Baulig  <martin@ximian.com>
11959
11960         * class.c (mono_class_instance_size): Don't allow generic type
11961         definitions or open generic instances.
11962         (mono_class_array_element_size): If we're a value type, call
11963         mono_class_instance_size() on the original class.
11964
11965         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
11966         handle generic instances.
11967
11968         * mono-debug-debugger.c (write_type): Handle generic instances
11969         like classes.
11970
11971 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
11972
11973         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
11974         the allocation request fails. Fixes #65089.
11975
11976         * object.c (mono_runtime_free_method): Do not call mono_free_method.
11977         
11978         * object.c (mono_runtime_free_method): New function to free a dynamic
11979         method.
11980
11981         * marshal.c (mono_delegate_free_ftnptr): New function to free the
11982         delegate trampoline.
11983
11984         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
11985         with hasthis as dynamic,
11986
11987         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
11988
11989         * domain.c (mono_jit_info_table_remove): New function to remove an
11990         entry from the jit info table.
11991
11992         * class-internals.h (MonoMethod): Add 'dynamic' field.
11993
11994         * loader.c: Fix warnings.
11995
11996 2004-09-01  Martin Baulig  <martin@ximian.com>
11997
11998         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
11999         instead of mono_debugger_lock() because the latter one is a no-op
12000         unless running in the debugger.
12001
12002 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
12003
12004         * class.c (class_compute_field_layout): Classes with auto-layout or
12005         reference fields are not blittable.
12006         
12007 2004-09-01  Dick Porter  <dick@ximian.com>
12008
12009         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
12010         mono_image_get_filename() to get the assembly location.
12011
12012         * icall.c:
12013         * metadata.h: Fix compile warnings
12014
12015 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
12016
12017         * class.c (class_compute_field_layout): System.Object is blittable.
12018
12019         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
12020         as in/out. Fixes #59909.
12021
12022 2004-09-01  Martin Baulig  <martin@ximian.com>
12023
12024         * metadata.h (MONO_TYPE_ISREFERENCE): Call
12025         mono_metadata_generic_inst_is_valuetype() if we're a generic
12026         instance to check whether our underlying type is a reference type.
12027
12028 2004-09-01  Martin Baulig  <martin@ximian.com>
12029
12030         * metadata.c (mono_type_size): If we're a generic instance, call
12031         mono_class_value_size() for value types.
12032
12033 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
12034
12035         * marshal.c: Implement more custom marshalling functionality. Fixes
12036         #64915.
12037
12038 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
12039
12040         * mono-debug.c, debug-mono-symfile.c: add some locking love.
12041
12042 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
12043
12044         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
12045
12046         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
12047
12048         * icall.c: Fix some warnings.
12049
12050         * threads.c (abort_appdomain_thread): Fix unref errors.
12051         (mono_thread_current): Fix THREAD_DEBUG define.
12052
12053 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
12054
12055         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
12056
12057         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
12058
12059 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
12060
12061         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
12062         string arrays.
12063
12064 2004-08-28  Martin Baulig  <martin@ximian.com>
12065
12066         * metadata.c
12067         (mono_metadata_generic_inst_is_valuetype): New public function.
12068
12069         * metadata.h (MONO_TYPE_ISSTRUCT): Call
12070         mono_metadata_generic_inst_is_valuetype() if we're a generic
12071         instance to check whether our underlying type is a valuetype.
12072
12073 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
12074
12075         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
12076         #63768.
12077
12078 2004-08-25  Martin Baulig  <martin@ximian.com>
12079
12080         * loader.c (mono_get_method_from_token): Abstract methods can also
12081         be generic and thus have type parameters.
12082
12083         * metadata-internals.h
12084         (MonoDynamicImage): Added `GPtrArray *gen_params'.
12085
12086         * reflection.c (mono_image_get_generic_param_info): Don't create a
12087         metadata row, just add an entry to the `gen_params' array.
12088         (build_compressed_metadata): Sort the `gen_params' array and then
12089         actually create the metadata.
12090
12091 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12092
12093         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
12094
12095 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
12096
12097         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
12098
12099 2004-08-24  Martin Baulig  <martin@ximian.com>
12100
12101         * class.cs (mono_class_is_subclass_of): Like an interface, a
12102         generic instance also derives from System.Object.
12103
12104 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
12105
12106         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
12107         custom modifiers to be in any order. Fixes #61990.
12108
12109 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
12110
12111         * object.c: Register mono_object_new_fast icall.
12112         
12113         * object.c (mono_class_get_allocation_ftn): Return to calling
12114         mono_object_new_fast, since it seems faster to compute the object 
12115         size in unmanaged code than passing it as a parameter.
12116
12117         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
12118
12119         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
12120         this function with Boehm as the oom handler, so we don't have to check
12121         the result of GC_malloc.
12122
12123         * object.c: Remove checks for oom.
12124
12125         * object.h object.c (mono_class_get_allocation_ftn): New function to
12126         return the icall which can be used to allocate an instance of a given
12127         class. 
12128
12129         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
12130
12131         * class-internals.h: Add 'enabled' field.
12132
12133 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
12134
12135         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
12136
12137 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
12138         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
12139         value 0x0010.
12140
12141 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
12142
12143         * appdomain.c: use the Tls function for appdomain too,
12144         at Zoltan's request. Actually return in mono_context_get
12145
12146         * appdomain.c, profiler.c, threads.c: use __thread
12147
12148 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
12149
12150         * appdomain.c threads.c: Call GC_CreateThread on windows.
12151
12152         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
12153         multiple libraries since this don't work on windows.
12154
12155 2004-08-18  Martin Baulig  <martin@ximian.com>
12156
12157         * class-internals.h
12158         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
12159         MonoMethodHeader.
12160
12161         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
12162         MonoMethodNormal since we also need it for abstract and interface
12163         methods.
12164
12165         * reflection.c
12166         (build_compressed_metadata): Sort the GenericParam table.
12167         (mono_image_create_token): Added `gboolean create_methodspec'
12168         argument; this is false when generating a MethodImpl token.
12169         (reflection_methodbuilder_to_mono_method): Abstract and interface
12170         methods may also have generic parameters.
12171
12172 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
12173
12174         * appdomain.c: thread local alloc
12175
12176 2004-08-17  Martin Baulig  <martin@ximian.com>
12177
12178         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
12179
12180         * icall.c
12181         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
12182         argument.
12183
12184         * class.c (mono_type_get_full_name): New public function.
12185         (mono_type_get_name): Don't include the type arguments.
12186
12187 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
12188
12189         * Makefile.am: Build static versions of libmetadata and libmonoruntime
12190         for inclusion into the mono executable.
12191
12192 2004-08-16  Martin Baulig  <martin@ximian.com>
12193
12194         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
12195         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
12196
12197 2004-08-14  Martin Baulig  <martin@ximian.com>
12198
12199         * class.c (dup_type): Also copy the `byref' field.
12200
12201 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
12202
12203         * reflection.c (create_dynamic_mono_image): Revert the last change 
12204         since it breaks bootstrap.
12205
12206 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
12207
12208         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
12209
12210         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
12211         not free them with g_free.
12212
12213 2004-08-11  Martin Baulig  <martin@ximian.com>
12214
12215         * reflection.c (mono_reflection_setup_internal_class): Also call
12216         mono_class_setup_mono_type() if we already have a `tb->type.type'.
12217
12218 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
12219
12220         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
12221         called during default (first) AppDomain creation. Keep track of
12222         Evidence when loading assemblies.
12223
12224 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
12225
12226         * opcodes.c, opcodes.h: reduce runtime relocations.
12227
12228 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
12229
12230         * culture-info.h, locales.c: fixes and chages to sue the new
12231         optimized format of the locale data.
12232         * culture-info-tables.h: regenerated.
12233
12234 2004-08-06  Geoff Norton <gnorton@customerdna.com>
12235         
12236         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
12237
12238 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
12239
12240         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
12241         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
12242         * domain-internals.h: icall declaration.
12243         * icall.c: icall registration.
12244         * object-internals.h: New fields in MonoAssembly for CAS.
12245
12246 2004-08-05  Duncan Mak  <duncan@ximian.com>
12247
12248         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
12249         CEE_LDELEM_ANY.
12250
12251 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
12252
12253         * reflection.c: fix to deal with object[] arrays in custom ctors
12254         (bug #62550).
12255
12256 2004-08-05  Martin Baulig  <martin@ximian.com>
12257
12258         * class.c (mono_class_array_element_size): Added support for
12259         generic instances and correctly handle "recursive" types.
12260
12261 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
12262
12263         * assembly.c: Fix warnings.
12264
12265 2004-08-04  Martin Baulig  <martin@ximian.com>
12266
12267         * class.c
12268         (mono_type_get_name_recurse): Added `gboolean include_arity'
12269         argument specifying whether or not we should include the generic
12270         arity in the type name.
12271         (_mono_type_get_name): New static function.
12272         (mono_class_setup_vtable): If we're a generic instance, don't
12273         include the generic arity in the names of explicit method
12274         implementations.        
12275
12276 2004-08-03  Martin Baulig  <martin@ximian.com>
12277
12278         * class.c (mono_type_get_name_recurse): Enclose the generic type
12279         arguments in `<', '>'.
12280
12281 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
12282
12283         * gc.c: make GC warning messages use the trace API, they are just
12284         noise to most of the users.
12285
12286 2004-08-03  Martin Baulig  <martin@ximian.com>
12287
12288         * debug-mono-symfile.c (read_string): Correctly read the string.
12289
12290 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
12291
12292         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
12293         
12294         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
12295         icalls.
12296         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
12297
12298 2004-07-30  Martin Baulig  <martin@ximian.com>
12299
12300         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
12301         Reflect latest symbol writer changes.   
12302
12303 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
12304
12305         * object.c: always create an object if null is passed
12306         to Invoke() where a valuetype is expected.
12307
12308 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
12309
12310         * marshal.c (mono_marshal_init): make managed
12311         signatures match native ones better for 64bits.
12312
12313 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12314
12315         * appdomain.c: hack to build correctly the private bin path on windows.
12316         Fixes bug #61991.
12317
12318 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
12319
12320         * assembly.c: Load mscorlib from the correct framework directory
12321           (mono/<version>/mscorlib.dll).
12322         * appdomain.h: Added prototypes for new functions.
12323         * internals.h: Added some prototypes.
12324         * domain.c: When initializing the runtime, get from the executable and
12325           the configuration files the runtime version that the app supports.
12326           Added support methods for reading app.exe.config. Added list of versions
12327           supported by the JIT. Added two new methods: mono_init_from_assembly,
12328           which initializes the runtime and determines the required version from
12329           the provided exe file, and mono_init_version, which initializes
12330           the runtime using the provided version.
12331         * icall.c: Get machine.config from version-specific directory.
12332         * reflection.c: When generating an image, embed the version number
12333           of the current runtime.
12334
12335 2004-07-28  Dick Porter  <dick@ximian.com>
12336
12337         * socket-io.c
12338         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
12339         returned sockaddr size before creating the remote address object.
12340         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
12341         61608.
12342
12343 2004-07-28  Dick Porter  <dick@ximian.com>
12344
12345         * locales.c (string_invariant_compare_char): Fix invariant char
12346         compares between upper and lower cases.  Fixes bug 61458.
12347
12348 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
12349         
12350         * marshal.c: actually cache stelem.ref wrappers.
12351         
12352 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
12353
12354         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
12355         sections and remove the mono_cli_rva_map () function.
12356
12357 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
12358
12359         * debug-mono-symfile.c: fix one more endianess issue, from a patch
12360         by Geoff Norton (<gnorton@customerdna.com>).
12361
12362 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
12363
12364         * class.c: fix class loads for pointer types (typeof(int) !=
12365         typeof(int*)).
12366
12367 2004-07-27  Martin Baulig  <martin@ximian.com>
12368
12369         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
12370         reading the debugging information from an external ".mdb" file.
12371
12372 2004-07-24  Martin Baulig  <martin@ximian.com>
12373
12374         * reflection.c (mono_image_get_type_info): Only write a class
12375         layout entry if we actually have a size or a packing size.
12376
12377 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
12378
12379         * reflection.c (type_get_fully_qualified_name): 
12380         insert cast to get type checking of ?: with non-gcc compilers
12381
12382 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
12383
12384         * rand.c: use g_getenv for both lookups of
12385         MONO_EGD_SOCKET
12386
12387 2004-07-17  Martin Baulig  <martin@ximian.com>
12388
12389         * reflection.c (mono_reflection_bind_generic_method_parameters):
12390         Set `gmethod->reflection_info'.
12391
12392 2004-07-17  Martin Baulig  <martin@ximian.com>
12393
12394         * class.c (mono_class_create_from_typedef): Insert the newly
12395         created class into the hash table before computing the interfaces
12396         since we could be called recursively.
12397
12398 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
12399
12400         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
12401         function to implement stelem.ref in managed code
12402         * class-internals.h, debug-helpers.c: a new wrapper type
12403         for the above.
12404
12405 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
12406
12407         * gc.c: allow GC handles to work even when no GC is compiled in.
12408         Fix part of bug #61134 (GetAddrOfPinnedObject).
12409
12410 2004-07-13  Peter Williams  <peter@newton.cx>
12411  
12412         * process.c (complete_path): Make sure we don't attempt to execute
12413         directories.
12414  
12415 2004-07-12  Geoff Norton <gnorton@customerdna.com>
12416
12417         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
12418           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
12419           and will add/subtract the hour if needed
12420
12421 2004-07-12  Martin Baulig  <martin@ximian.com>
12422
12423         * reflection.c (mono_field_get_object): If we have
12424         `field->generic_info', take the attributes from
12425         `field->generic_info->generic_type'.    
12426
12427 2004-07-12  Martin Baulig  <martin@ximian.com>
12428
12429         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
12430         This function must be called before initializing the runtime.
12431         (mono_debug_init_1): New function; call this after initializing
12432         the runtime, but before loading the assembly.  It tells the
12433         debugger to load corlib and the builtin types.
12434
12435         * mono-debug-debugger.c: Did some larger changes in the debugging
12436         code; support recursive class declarations, make sure we actually
12437         add all classes.
12438
12439 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12440
12441         * debug-helpers.c: undo my previous patch and fixed the real issue in
12442         ../mini/exceptions-x86.c
12443
12444 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12445
12446         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
12447         when no HOME env. variable was set and a NullRef was thrown in a .cctor
12448         called from other .cctors.
12449
12450 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
12451
12452         * loader.c: Removed the mono_loader_wine_init hack now that we are
12453         doing a managed version of Windows.Forms.
12454
12455 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
12456
12457         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
12458         threadpool.c, threads.c: remove static data from rootset.
12459
12460 2004-07-09  Dick Porter  <dick@ximian.com>
12461
12462         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
12463         Don't do any more processing if the matched length was 0.  It was
12464         increasing the size of the string before.  Fixes bug 61167.
12465
12466 2004-07-09  Dick Porter  <dick@ximian.com>
12467
12468         * socket-io.h:
12469         * socket-io.c
12470         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
12471         Add support for SO_PEERCRED if its available.
12472
12473 2004-07-09  Peter Bartok <pbartok@novell.com>
12474         * loader.c: winelib.exe.so error message is now only displayed if
12475         MONO_DEBUG is set. To help us avoid questions when people are trying
12476         out the new Managed.Windows.Forms.
12477
12478 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
12479
12480         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
12481         for isinst and castclass wrappers.
12482
12483         * class-internals.h icall.c: Move registration and lookup of JIT icalls
12484         to libmetadata from the JIT, so they could be used by the marshalling
12485         code and the interpreter.
12486
12487         * marshal.c: Register marshalling related JIT icalls here instead of
12488         in mini.c. Use CEE_MONO_ICALL instead of the family of 
12489         CEE_MONO_PROC<x> opcodes to call marshalling functions.
12490
12491         * metadata.h: Remove unneeded marshalling conversions.
12492
12493         * opcodes.c: Update for new opcodes.
12494         
12495 2004-07-08  Martin Baulig  <martin@ximian.com>
12496
12497         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
12498         (mono_debug_get_domain_data): Make this function static.
12499
12500 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
12501
12502         * gc.c, object.h: add nice GC handle API for embedders.
12503
12504 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
12505
12506         * reflection.c: more changes for the new api
12507
12508         * object.c: When we reflect on a field w/ a constant value, it
12509         will not have a memory location, so we must access metadata. Also,
12510         allow easier reading of strings so that we can read them from
12511         the constant data.
12512
12513         * class.c (mono_class_layout_fields): no need for literal fields here.
12514
12515         * class-internals.h: api changes for const fields
12516
12517         * icall.c (ves_icall_get_enum_info): use new apis for const fields
12518
12519 2004-07-06  Martin Baulig  <martin@ximian.com>
12520
12521         * mono-debug.h: Increment version number to 44.
12522
12523         * mono-debug.c (mono_debug_add_wrapper): The second argument is
12524         now a gpointer, rewrote this whole method.
12525
12526         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
12527         function.  Add information about the wrapper in a new "misc table".
12528
12529         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
12530         for the new misc table.
12531
12532 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
12533
12534         * metadata-internals.h image.c: Add a cache for helper signatures.
12535
12536         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
12537
12538 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
12539
12540         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
12541         delegates from a delegate. Fixes #61033.
12542         
12543         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
12544         marshalling of stringbuilder arrays. Fixes #59900.
12545
12546 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
12547
12548         * icall.c: Add EnumBuilder:setup_enum_type icall.
12549
12550 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
12551
12552         * icall.c: Added a new icall for the property version of
12553         OffsetOfStringData.
12554
12555 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
12556
12557         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
12558         it has a constant size across platforms.
12559
12560         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
12561         stack trace.
12562
12563 2004-06-29  Martin Baulig  <martin@ximian.com>
12564
12565         * mono-debug.c (mono_debug_add_method): Protect the whole function
12566         in mono_debugger_lock(), not just parts of it.
12567
12568 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
12569
12570         * reflection.c: make sure padding bytes in heaps are zeroed.
12571
12572 2004-06-24  David Waite  <mass@akuma.org>
12573
12574         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
12575         image.c, loader.c, locales.c, marshal.c, metadata.c,
12576         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
12577         string-icalls.c, threads.c: change to C90-style comments from C99 /
12578         C++ -style
12579
12580 2004-06-24  Dick Porter  <dick@ximian.com>
12581
12582         * threads.c
12583         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
12584         return createdNew.  Fixes bug 60412.
12585
12586         * threads-types.h: 
12587         * icall.c: Add createdNew parameter to CreateMutex icall
12588
12589 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
12590
12591         * reflection.c, object-internals.h: save default value in params.
12592
12593 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12594
12595         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
12596         no need to build a new path combining that with the application base.
12597         Fixes bug #60442.
12598
12599 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
12600
12601         * reflection.c: fixed minor standard compliance issues.
12602
12603 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
12604
12605         * reflection.c: fixed issue with encoding some custom attributes
12606         (arrays in properties and fields, bug #60411).
12607
12608 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12609
12610         * reflection.c: fix start address when copying the public key token.
12611
12612 2004-06-23  Martin Baulig  <martin@ximian.com>
12613
12614         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
12615         the `exc' object in a static object to put it into the GC's root set.
12616
12617 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
12618
12619         * reflection.c: make mono_reflection_setup_internal_class ()
12620         callable a second time to setup a new parent class.
12621
12622 2004-06-23  Dick Porter  <dick@ximian.com>
12623
12624         * threads.c: Check for WAIT_IO_COMPLETION return values.
12625
12626 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
12627
12628         * appdomain.c: Removed the g_free on the public key token. Now copy 
12629         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
12630         * assembly.c: Added public key token string value when loading 
12631         assemblies. Fix bug #60439.
12632         * icall.c: Added missing informations (like public key) in 
12633         GetReferencedAssemblies. Fix #60519.
12634         * image.h: Changed definition for public key token from const char*
12635         public_tok_value to guchar public_key_token [17];
12636         * reflection.c: Updated for changes to public key token.
12637
12638 2004-06-22  Lluis Sanchez Gual
12639
12640         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
12641         for the field in base classes.
12642
12643 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
12644
12645         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
12646         mark headers as not supported, they are installed only for use by the
12647         debugger.
12648
12649 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
12650
12651         * *.c, *.h: avoid namespace pollution in public headers.
12652
12653 2004-06-21  Martin Baulig  <martin@ximian.com>
12654
12655         * exception.c (mono_get_exception_security): It's in
12656         "System.Security", not in "System".
12657
12658         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
12659         the exception classes.
12660
12661 2004-06-21  Martin Baulig  <martin@ximian.com>
12662
12663         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
12664         Protect the exception object from being finalized.
12665
12666 2004-06-21  Martin Baulig  <martin@ximian.com>
12667
12668         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
12669         public function.
12670
12671 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
12672
12673         * reflection.c: Load the assembly in mono_reflection_type_from_name,
12674         if it was not loaded before. Fix parts of #60439.
12675
12676 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
12677
12678         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
12679         code that was broken since Ben's change: wrappers are now
12680         dependent on the method signature only again.
12681
12682 2004-06-21  Martin Baulig  <martin@ximian.com>
12683
12684         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
12685         added interface support.
12686
12687 2004-06-21  Martin Baulig  <martin@ximian.com>
12688
12689         * class.c (mono_vtable_get_static_field_data): New public method.
12690
12691 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
12692
12693         * filewatcher.c : Windows build fix to be compliant with API changes.
12694
12695 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
12696
12697         * class.h, class.c: more accessors.
12698         * metadata.h, metadata.c: prepare for hiding MonoType and
12699         MonoMethodSignature: people should use the accessors from now on
12700         outside of the tree.
12701
12702 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
12703
12704         * *.c, *.h: more API cleanups.
12705
12706 2004-06-18  Jackson Harper  <jackson@ximian.com>
12707
12708         * assembly.c: Trace loading assemblies.
12709         * loader.c: Trace loading native libraries.
12710         * mono-config.c: Trace loading config files.
12711         
12712 2004-06-18  Dick Porter  <dick@ximian.com>
12713
12714         * locales.c: Tell ICU the lengths of strings, it can cope with
12715         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
12716
12717 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
12718
12719         * image.c: swapped name/filename;
12720
12721 2004-06-18  Martin Baulig  <martin@ximian.com>
12722
12723         * mono-debug-debugger.c (write_class): Write the parent class at
12724         the end of the header.
12725
12726 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
12727
12728         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
12729
12730 2004-06-17  Raja R Harinath  <rharinath@novell.com>
12731
12732         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
12733         (bundle_obj): New conditional define.
12734         (BUILT_SOURCES): Remove.
12735         ($(bundle_srcs)): Make parallel-make safe.
12736         (libmonoruntime_la_LIBADD): Make unconditional.
12737         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
12738         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
12739
12740 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
12741
12742         * culture-info-tables.h: It was inconsistent with the latest
12743           supp info files.
12744
12745 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
12746
12747         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
12748         be loaded.
12749
12750         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
12751         with gcc 2.95.
12752
12753 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
12754
12755         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
12756         cleaned up public header threads.h.
12757
12758 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
12759
12760         * Makefile.am, *.c, *.h: more API cleanups.
12761
12762 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
12763
12764         * Makefile.am: removed monosn from compilation.
12765         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
12766         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
12767         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
12768         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
12769         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
12770         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
12771
12772 2004-06-15  Jackson Harper  <jackson@ximian.com>
12773
12774         * assembly.c: Make locales lower case when searching the GAC for
12775         assemblies. gacutil will always make locales lowercase when
12776         installing so this effectively makes them case insensitive.
12777         
12778 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
12779
12780         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
12781         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
12782           parameter which allows to choose whether the wait can be interrupted or 
12783           not. Also added the method mono_monitor_enter(), which locks the monitor
12784           using an infinite wait and without allowing interruption.
12785           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
12786           interrupted.
12787         * object.h: Added new fields in MonoThread. suspend_event holds the event
12788           used to susped/resume the thread. synch_lock is the lock object to use for
12789           modifying the thread state.
12790         * threads.c: Use the new synch_lock object for locking, instead of "this",
12791           which can generate deadlocks.
12792           Moved thread state change in Thread.Sleep and Thread.Join from managed
12793           to unmanaged code. This avoids a deadlock when the thread was suspended
12794           just after acquiring the thread lock.
12795           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
12796           Implemented Thread.Suspend using an event instead of ThreadSuspend,
12797           which is not fully implemented in the io-layer.
12798         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
12799
12800 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
12801
12802         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
12803         threads-types.h: more API cleanups.
12804
12805 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
12806
12807         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
12808         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
12809         threadpool.c, threads.c: first pass at the exported API cleanup.
12810
12811 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
12812
12813         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
12814
12815 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12816
12817         * icall.c: added internalGetHome.
12818
12819 2004-06-14  Dick Porter  <dick@ximian.com>
12820
12821         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
12822         possible to return successfully when '.' or '..' were the only
12823         entries in a directory, but were skipped.  The MonoIOStat was not
12824         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
12825         Fixes bug 59574.
12826
12827 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
12828
12829         * reflection.c: make binaries run on .Net 1.1 by default.
12830
12831 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
12832
12833         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
12834
12835 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
12836
12837         * marshal.c: keep track of struct size with explicit layout
12838         (bug #59979).
12839
12840 2004-06-12  Martin Baulig  <martin@ximian.com>
12841
12842         * mono-debug-debugger.c: Comment out a debugging g_message().
12843
12844 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
12845
12846         * reflection.c, reflection.h: do not free custom attrs that are cached.
12847         * icall.c: use braces to make code clearer.
12848
12849 2004-06-11  Martin Baulig  <martin@ximian.com>
12850
12851         * class.h (MonoInflatedField): New type.
12852         (MonoClassField): Replaced `MonoType *generic_type' with
12853         `MonoInflatedField *generic_info'.
12854
12855         * icall.c
12856         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
12857
12858 2004-06-11  Martin Baulig  <martin@ximian.com>
12859
12860         * reflection.c (mono_image_create_method_token): Correctly encode
12861         varargs methods.
12862
12863 2004-06-11  Martin Baulig  <martin@ximian.com>
12864
12865         * metadata.c (mono_metadata_parse_method_signature): When parsing
12866         a MethodDef which has VarArgs, also set sentinelpos if we don't
12867         have any parameters.
12868
12869 2004-06-11  Martin Baulig  <martin@ximian.com>
12870
12871         * verify.c (mono_method_verify): In CEE_CALL, use
12872         mono_method_get_signature() to get the method's signature, unless
12873         we're a PInvoke method.
12874
12875 2004-06-10  Jackson Harper  <jackson@ximian.com>
12876
12877         * assembly.c: Use <path>/lib/mono/gac for the extra paths
12878         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
12879         logical name as the supplied path is just a prefix to the gac not
12880         the direct path to it.
12881         
12882 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
12883
12884         * reflection.c: make the token for a created method match
12885         the token of the MethodBuilder it was created from
12886         (IKVM requires this behaviour now).
12887
12888 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
12889
12890         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
12891         reflection.c, socket-io.c: leak fixes.
12892
12893 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
12894
12895         * icall.c: handle sentinel pos in vararg methods in position different
12896         from 0.
12897
12898 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12899
12900         * culture-info-tables.h: freshly generated.
12901
12902 2004-06-09  Martin Baulig  <martin@ximian.com>
12903
12904         * loader.c (mono_get_method_constrained): Call `mono_class_init
12905         (constrained_class)'.   
12906
12907 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
12908
12909         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
12910         any methods. Fixes #59629.
12911
12912 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12913
12914         * culture-info-tables.h: reflecting locale-builder updates.
12915
12916 2004-06-08  Dick Porter  <dick@ximian.com>
12917
12918         * object.h:
12919         * locales.c: Fixed compile warnings, including a real bug in
12920         CompareInfo_internal_compare.
12921         
12922 2004-06-08  Dick Porter  <dick@ximian.com>
12923
12924         * locales.c
12925         (ves_icall_System_Globalization_CompareInfo_internal_index):
12926         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
12927         Double-check the resuls of usearches, because ICU currently
12928         ignores most of the collator settings here.  Fixes bug 59720.
12929         
12930 2004-06-08  Dick Porter  <dick@ximian.com>
12931
12932         * locales.c
12933         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
12934         Fix memory leak and segfault-causing typo.  No idea how this one
12935         lasted so long without being noticed.
12936
12937 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
12938
12939         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
12940         any methods. Fixes #59629.
12941
12942 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12943
12944         * assembly.c:
12945         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
12946         own the critical section before). Removed dead code (that's done
12947         in the preload hook).
12948
12949         (mono_assembly_load_with_partial_name): call the preload hook.
12950
12951 2004-06-08  Martin Baulig  <martin@ximian.com>
12952
12953         * metadata.c (mono_metadata_signature_alloc): Default
12954         `sentinelpos' to -1.
12955
12956         * reflection.c (mono_image_get_array_token): Likewise.
12957
12958 2004-06-08  Martin Baulig  <martin@ximian.com>
12959
12960         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
12961
12962         * metadata.c (mono_metadata_parse_method_signature): When parsing
12963         a MethodDef which has VarArgs, set sentinelpos.
12964
12965         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
12966         `gint16' since we're using -1 for non-varargs methods.
12967
12968         * reflection.c
12969         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
12970         (method_encode_signature): Added varargs support.
12971         (method_builder_encode_signature): Likewise.
12972         (mono_image_get_varargs_method_token): New static method.
12973         (mono_image_create_method_token): New public method; this is
12974         called via an icall instead of mono_image_create_token() when
12975         calling a varargs method.       
12976
12977 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
12978
12979         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
12980
12981 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12982
12983         * culture-info-tables.h : Reflecting the latest locale-builder that
12984           fixed empty array representation ({} to {0}).
12985
12986 2004-06-07  Jackson Harper  <jackson@ximian.com>
12987
12988         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
12989         looking up extra gac paths. This allows MONO_GAC_PATH to act
12990         exactly like a prefix.
12991         
12992 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
12993
12994         * reflection.c (mono_reflection_type_from_name): Make a copy of the
12995         type name before modifying it. Fixes #59405.
12996
12997 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12998
12999         * culture-info.h: added fields for "all datetime patterns".
13000         * locales.c: (  ves_icall_System_Globalization_CultureInfo
13001           _construct_datetime_format ()): fill xxx_patterns fields.
13002         * object.h: added fields for "all datetime patterns" to
13003           MonoDateTimeFormatInfo.
13004         * culture-info-tables.h: reflecting locale-builder updates.
13005
13006 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
13007
13008         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
13009         the event has no add and remove methods. Fixes #59629.
13010
13011 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
13012
13013         * object.c: Fixed possible integer overflow when allocating large
13014         strings.
13015
13016 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
13017
13018         * culture-info-tables.h: reflecting locale-builder updates.
13019
13020 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
13021
13022         * culture-info-tables.h: reflecting locale-builder updates.
13023
13024 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
13025
13026         * culture-info-tables.h: reflecting locale-builder updates.
13027
13028 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
13029
13030         * threads.c: Made Thread.Sleep abortable.
13031
13032 2004-06-02  Martin Baulig  <martin@ximian.com>
13033
13034         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
13035
13036         * debug-mono-symfile.h: Bumped symbol file version number to 37.
13037
13038 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
13039
13040         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
13041
13042 2004-05-30  Jackson Harper  <jackson@ximian.com>
13043
13044         * reflection.c: Do not hardcode assembly versions or public key
13045         tokens anymore. All of this except the corlib section was dead
13046         code anyways.
13047         
13048 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
13049
13050         * object.c (mono_runtime_invoke_array): Automatically create boxed
13051         objects for byref valuetypes if needed. Fixes #59300.
13052         
13053         * object.c (mono_method_return_message_restore): Handle 
13054         MONO_TYPE_OBJECT as well.
13055
13056 2004-05-28  Jackson Harper  <jackson@ximian.com>
13057
13058         * reflection.c: The modified type encoding was causing build
13059         problems. Reverted for now.
13060         
13061 2004-05-28  Jackson Harper  <jackson@ximian.com>
13062
13063         * reflection.c/h: Take an assembly ref so that we dont create
13064         fully qualified names when encoding types in the same assembly as
13065         the custom attribute being emitted.
13066         * appdomain.c: Increment version number.
13067         
13068 2004-05-26  Duncan Mak  <duncan@ximian.com>
13069
13070         * icall.c
13071         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
13072         Set the full version number (major, minor, build, revision).
13073
13074 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
13075
13076         * marshal.c (emit_struct_conv): increment src/dst after blit
13077         (mono_marshal_get_managed_wrapper,
13078         mono_marshal_get_native_wrapper): make sure we have marshalling
13079         info before marshalling params (info computation affects
13080         blittable)
13081
13082         * class.c (class_compute_field_layout): correctly deal with
13083         blittable
13084         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
13085         value types (as per what windows dows by default)
13086         (mono_class_setup_mono_type): System.ValueType is blittable
13087         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
13088         blittable
13089
13090         * marshal.c (mono_marshal_load_type_info): flag types  as
13091         non-blittable if the native layout doesn't match the managed
13092         layout
13093
13094 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13095
13096         * appdomain.c: don't add stuff in the private search path that is
13097         above the application base. If application base is not set, there's
13098         no private search path.
13099
13100 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
13101
13102         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
13103         byref struct arguments in native->managed marshalling.
13104
13105 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
13106
13107         * marshal.c (mono_marshal_get_runtime_invoke): correctly
13108         cache methods using signature (special case for methods
13109         that are value type or string class)
13110         
13111         * image.c (mono_image_close): clean up allocated GSList's
13112         in runtime_invoke_cache.
13113
13114 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13115
13116         * mono-config.c: set the correct path for mono_cfg_dir on windows when
13117         there's no MONO_CFG_DIR environment variable defined.
13118
13119 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13120
13121         * threads.c: windows version must be >= 0x0500 to include OpenThread.
13122
13123 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
13124
13125         * threadpool.c: Really wait for 500ms after the async call, even if the wait
13126           is interrumped.
13127         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
13128           before waiting for it, and call CloseHandle after the wait to unref it.
13129           This will make sure that handles are not disposed too early.
13130
13131 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13132
13133         * appdomain.c:
13134         * appdomain.h:
13135         * icall.c: removed
13136         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
13137         needed now.
13138
13139         * object.c: se the application_base only for the domain that runs
13140         Main. Fixes bug #59216,
13141
13142 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13143
13144         * appdomain.c:
13145         * object.c: only the domain in which Main is run have
13146         SetupInformation.ConfigurationFile set, so moved a few lines from
13147         appdomain.c to object.c.
13148
13149 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13150
13151         * appdomain.c: we tried to load [name].(dll|exe), but according
13152         to bug #57710, we must also try [culture]/[name].(dll|exe) and
13153         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
13154         There's a test case attached to bug #58922.
13155
13156 2004-05-27  Dick Porter  <dick@ximian.com>
13157
13158         * icall.c:
13159         * file-io.c: Implemented icalls for locking and unlocking regions
13160         in a file.
13161         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
13162         FALSE on error (fixes both compiler warning and real bug.)
13163
13164 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
13165
13166         * culture-info-tables.h: reflecting locale-builder updates.
13167
13168           (Added missing ChangeLog entry for 05/26)
13169
13170 2004-05-27  Jackson Harper  <jackson@ximian.com>
13171
13172         * locales.c: Fix some cut and paste errors.
13173         
13174 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13175
13176         * mono-config.c: set the correct path for config. directory on windows.
13177
13178 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
13179
13180         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
13181           on win32.
13182
13183 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
13184
13185         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
13186         from pinvoke functions.
13187         
13188         * marshal.c (mono_ftnptr_to_delegate): Implement this.
13189
13190 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
13191
13192         * culture-info-tables.h: reflecting locale-builder updates.
13193
13194 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
13195
13196         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
13197         #59086.
13198
13199 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
13200
13201         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
13202         * icall.c: Modified icalls for RNG.
13203         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
13204         Windows (CryptoAPI).
13205
13206 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
13207
13208         * locales.c: Fix build.
13209
13210 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
13211
13212         * culture-info-tables.h: reflecting locale-builder updates.
13213
13214 2004-05-25  Jackson Harper  <jackson@ximian.com>
13215
13216         * locales.c: When creating the current culture use the $LANGs
13217         specific culture. So DateTimeFormat and NumberFormat entries are created.
13218         
13219 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
13220
13221         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
13222         a char array as parameter.
13223
13224 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
13225
13226         * image.c: In mono_image_open(), always use an absolute path name to
13227           look for already loaded images.
13228
13229 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
13230
13231         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
13232         missing in the windows build (like older cygwin include files).
13233
13234 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
13235
13236         * icall.c: Fixed check for possible integer overflow in Buffer_
13237         BlockCopy icall. Replaced comments style // by /* */.
13238
13239 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
13240
13241         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
13242         
13243         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
13244         check after MONO_VTADDR. Fixes pinvoke2.exe.
13245
13246         * marshal.h marshal.c metadata.h: Add beginnings of support for
13247         ftnptr -> delegate marshalling.
13248
13249 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
13250
13251         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
13252         * threads.c: Fix warnings.
13253
13254 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
13255
13256         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
13257         * icall.c: Registered icalls for Suspend and Resume.
13258         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
13259           Thread.Abort.
13260         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
13261         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
13262         * process.c: Use WaitForSingleObjectEx.
13263         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
13264           checkpoints.
13265         * threads.c, threads.h: Make use of new Ex wait methods. Improved
13266           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
13267           for Suspend and Resume. Added new mono_thread_stop, used for stoping
13268           background threads. Added basic support for Abort in Windows.
13269           Start new threads using a managed delegate invoke wrapper. This wrapper
13270           has an interruption checkpoint that is needed since an interruption
13271           can be requested before the thread leaves the unmanaged code that starts 
13272           the thread.
13273         * marshal.c: Added interruption checkpoint after every native call, and
13274           also before managed calls for wrappers called from unmanaged code to
13275           go into managed code.
13276         * object.h: Added new field in MonoThread to keep track of interruption
13277           requests.
13278
13279 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
13280
13281         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
13282         calls.
13283
13284 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13285
13286         * appdomain.c:
13287         * assembly.c:
13288         * gc.c:
13289         * locales.c:
13290         * mono-config.c:
13291         * rand.c: getenv -> g_getenv (windows!)
13292
13293         * process.c: complete_path is also used on non-windows platforms.
13294
13295 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13296
13297         * icall.c: new signature for Process_Start.
13298
13299         * process.[ch]: new signature for Process_Start. If we're on windows
13300         and UseShellExecute is false, we have to search for the program by
13301         ourselves if we don't get a full path.
13302
13303 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
13304
13305         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
13306         marshalling and call CleanUpNativeData if needed. Fixes #58646.
13307
13308 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13309
13310         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
13311         Fixes bug #58373.
13312
13313 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13314
13315         * process.c: use double quotes to quote program name and arguments on
13316         windows. Fixes bug #58575.
13317
13318 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13319
13320         * file-io.c: don't return "." and ".." when using windows Find*File.
13321
13322 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
13323
13324         * marshal.c: Don't pass wrappers to message init because method 
13325         addressed used to lookup metadata. part of remoting[2|3] fix.
13326
13327 2004-05-15  Jackson Harper  <jackson@ximian.com>
13328
13329         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
13330         path is essentially the same as MONO_PATH except that it points to
13331         GACs instead of lib directories.
13332         * loader.h: The user gac is gone so we dont need function to
13333         enable/disable it.
13334         * mono-config.c: user gac option is now gone.
13335         
13336 2004-05-15  Jackson Harper  <jackson@ximian.com>
13337
13338         * culture-info.h: Make defines more consistent, add calendar data
13339         to the culture info table.
13340         * culture-info-tables.h: Add basic calendar data. Basically
13341         everyone gets default gregorian until all the data is
13342         updated.
13343         * locales.c: Use the new consistent defines. Set calendar data for
13344         culture info objects.
13345         * object.h: add a field for calendar data to CultureInfo
13346         
13347 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
13348
13349         * image.c: image->runtime_invoke_cache is keyed on signatures now.
13350         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
13351         a signature.
13352         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
13353         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
13354         an extra param that is the pointer of the method to invoke. The IL for
13355         the invoke method is no longer specific to the method, but to the
13356         signature of the method. Thus, we can share the same code for multiple
13357         methods. This reduces the number of methods that have to be compiled.
13358
13359 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
13360
13361         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
13362
13363         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
13364
13365         * icall.c: Optimize Buffer.BlockCopy.
13366
13367 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13368
13369         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
13370         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
13371         quote). Changed them to "MMMM yyyy".
13372
13373 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
13374
13375         * rand.c
13376         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
13377
13378 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
13379
13380         * reflection.h: Updated after changes to managed structures.
13381
13382         * appdomain.c: Bump corlib version.
13383
13384 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13385
13386         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
13387         windows.
13388
13389 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13390
13391         * Makefile.am: link to ../os/libmonoos.la on windows.
13392
13393         * assembly.c:
13394                 -If MONO_DEBUG, warn about non-existing directories in
13395                 MONO_PATH.
13396                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
13397                 compile time variable.
13398                 -Removed init_default_path and call mono_set_rootdir from
13399                 libmonoos.a instead (windows only).
13400
13401         * assembly.h: declare mono_assembly_getrootdir().
13402
13403         * domain.c:
13404         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
13405
13406         * loader.c: s/getenv/g_getenv/
13407
13408 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
13409
13410         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
13411
13412         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
13413
13414         * metadata.h: Add new marshalling conversions.
13415
13416         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
13417         function.
13418
13419         * reflection.c (mono_reflection_get_type): Lookup the type in all
13420         modules of a multi-module assembly. Fixes #58291.
13421
13422 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
13423
13424         * threads.c: Before aborting a background, set the StopRequested
13425         state.  This avoids throwing the Abort exception.
13426         In mono_thread_manage, don't continue with the shutdown until all
13427         aborted threads have actually stopped.
13428
13429 2004-05-10  Jackson Harper  <jackson@ximian.com>
13430
13431         * locales.c: Remove the modifier from culture names.
13432         
13433 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13434
13435         * Makefile.am: monosn is not installed any more. It has been deprecated
13436         in favor of sn.
13437
13438 2004-05-07  Jackson Harper  <jackson@ximian.com>
13439
13440         * locales.c
13441         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
13442         Fix array construction, add bailout if the length is 0.
13443
13444 2004-05-07  Dick Porter  <dick@ximian.com>
13445
13446         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
13447         machine doesn't have a DNS entry.  Patch by Urs Muff
13448         (umuff@quark.com), fixes bug 57928.
13449
13450 2004-05-06  Jackson Harper  <jackson@ximian.com>
13451
13452         * reflection.c: Handle null PublicTokens properly. alloc mem for
13453         assembly names culture so we dont crash when freeing it.
13454         
13455 2004-05-06  Jackson Harper  <jackson@ximian.com>
13456
13457         * assembly.c: Check the usergac when loading with partial names.
13458         
13459 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
13460
13461         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
13462         does nothing for now (not required for Linux/Windows) but the class
13463         library can call it (and a newer or modified runtime could need it).
13464         * icall.c: Registred icall.
13465
13466 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13467
13468         * loader.c: prints a message on module loading error we set MONO_DEBUG
13469         environment variable.
13470
13471 2004-05-05  Jackson Harper  <jackson@ximian.com>
13472
13473         * appdomain.c: Handle PublicKeyToken=null properly.
13474         
13475 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
13476
13477         * environment.c|h: Added icall ves_icall_System_Environment_
13478         GetOSVersionString to get the current OS version as a string.
13479         * icall.c: Registred icall.
13480
13481 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
13482
13483         * object.c: in mono_object_get_virtual_method(), take into account that
13484         non-virtual methods don't have a slot in the vtable. Check needed when
13485         the object is a proxy.
13486
13487 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
13488
13489         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
13490         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
13491
13492         * object.c (mono_class_compute_gc_descriptor): Fix warning.
13493
13494         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
13495         passed when a valuetype is expected.
13496
13497         * object.c (mono_unhandled_exception): Only set the exit code if the
13498         exception happens in the main thread. Fixes thread5.exe.
13499
13500         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
13501         invalid names. Fixes #58047.
13502
13503 2004-05-03  Jackson Harper  <jackson@ximian.com>
13504
13505         * assembly.c: This line was committed accidently and is unneeded.
13506         
13507 2004-05-03  Jackson Harper  <jackson@ximian.com>
13508
13509         * icall.c: Add new icall for Assembly::LoadWithPartialName
13510         * assembly.c/.h: new function that probes the GAC to load partial
13511         assembly names by Paolo Molaro.
13512         
13513 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13514
13515         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
13516         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
13517         (type_get_fully_qualified_name): Added PublicKeyToken when building a
13518         full type name.
13519
13520 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13521
13522         * appdomain.c: fixed check for 'neutral' culture and removed warning.
13523         * reflection.c: fix bug when parsing a full type name and Version is not
13524         the last thing in the string.
13525
13526 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
13527
13528         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
13529         crashes when it is freed.
13530
13531 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13532
13533         * assembly.c: print the compat warning to stderr.
13534
13535 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
13536
13537         * assembly.c (mono_assembly_load_references): Add a compatibility
13538         hack to run old applications that might be still referencing the
13539         3300-based assemblies, only do this for System.xxx.
13540
13541 2004-05-01  Jackson Harper  <jackson@ximian.com>
13542
13543         * appdomain.c: If the culture is neutral we set it to "".
13544         
13545 2004-04-29  Jackson Harper  <jackson@ximian.com>
13546
13547         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
13548
13549 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
13550  
13551         * string-icalls.c: added low overhead function for copying chars
13552         * icall.c: added needed icall for the above function
13553  
13554 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13555
13556         * icall.c: fix return value of get_global_assembly_cache.  Implemented
13557         Environment.GetLogicalDrives.
13558
13559 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
13560
13561         * rand.c: try and talk to egd or prngd
13562         for random bytes if opening devices fail.
13563
13564 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
13565
13566         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
13567         alignment for the type using the native alignment of its members 
13568         instead of using klass->min_align.
13569
13570         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
13571
13572 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13573
13574         * file-io.c:
13575         * socket-io.c: added check for sys/aio.h.
13576
13577 2004-04-28  Dick Porter  <dick@ximian.com>
13578
13579         * threads.c: Don't abort a thread thats already aborting, when
13580         terminating everything.
13581
13582 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13583
13584         * icall.c: added 2 new async calls for Socket.
13585
13586         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
13587         IO on *nix systems.
13588
13589         * threadpool.c: removed unused variable.
13590
13591 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
13592
13593         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
13594
13595 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
13596
13597         * locales.c: put back string_invariant_tolower () and
13598         string_invariant_toupper ().
13599
13600 2004-04-26 David Waite <mass@akuma.org>
13601
13602         * file-io.h:
13603         * socket-io.h:
13604         * threads.h:
13605         * unicode.h: remove comma from end of enumeration declarations
13606
13607 2004-04-26 David Waite <mass@akuma.org>
13608
13609         * debug-mono-symfile.h:
13610         * decimal.c:
13611         * mono_debug.h:
13612         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
13613
13614
13615 2004-04-26  Jackson Harper  <jackson@ximian.com>
13616
13617         * appdomain.c: Increment version number.
13618         
13619 2004-04-26  Jackson Harper  <jackson@ximian.com>
13620
13621         * appdomain.c: Set assembly references public token value when
13622         PublicKeyToken is specified, not the hash_value. Free public token
13623         values when free assembly name data. Previously the public key
13624         token was hex decoded, however we are using hex encoded public key
13625         tokens, so this is not neccasary.
13626         * assembly.c: Lookup assemblies in the gac if their public token
13627         value is set. Add function to allow enabling user gac
13628         lookups. Specify whether or not the assembly was loaded from the
13629         GAC. Compare full assembly names when checking the cache for
13630         assemblies (Temporarily disabled see comment in code). Remove
13631         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
13632         specifies trace-loader they get extra info to stdout on the
13633         loading of assemblies.
13634         * image.h: Add a field for an assembly references public token
13635         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
13636         whether an assembly has been loaded from the GAC.
13637         * image.c: Remove a corlib -> mscorlib name mapping.
13638         * loader.h: Add function to enable/disable the user gac.
13639         * mono-config.c: Check if the usergac is enabled in the config
13640         file.
13641         * icall.c: New icall to determine whether or not an assembly has
13642         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
13643         * tabldefs.h: Add constant for assemblyref flag that specifies a
13644         full public key is used instead of a public token.
13645         * reflection.c: Remove mscorlib -> corlib mappings. Set
13646         PublicTokenValue instead of hash value. This value is a hex
13647         string so it does not need to be expanded.
13648
13649 2004-04-26  Martin Baulig  <martin@ximian.com>
13650
13651         * mono-debug-debugger.c (mono_debugger_initialize): Set
13652         `mono_debugger_initialized' before calling mono_debug_lock().
13653
13654 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
13655
13656         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
13657           InternalToUpper/InternalToLower.
13658         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
13659           removed invariant culture shortcut.  This is now done in managed code.
13660         * locales.c: (string_invariant_toupper/tolower) removed.
13661
13662 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13663
13664         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
13665         Added Poll internal call.
13666
13667         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
13668         call for Poll. Select was too heavy for polling a single socket.
13669
13670         * threadpool.[ch]: added mono_threadpool_cleanup.
13671         * threads.c: use it. Don't use Thread_Abort on windows.
13672
13673 2004-04-23  Martin Baulig  <martin@ximian.com>
13674
13675         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
13676
13677 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
13678
13679         * icall.c: Registred new icalls for key pair protection and added an
13680         icall for Environment.GetFolderPath on Windows.
13681         * security.c|h: Added new icalls for key pair protection.
13682
13683 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13684
13685         * socket-io.c: don't display the non-supported family warning for known
13686         families. Now this is not displayed on windows when checking support
13687         for IPv4/IPv6.
13688
13689 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13690
13691         * class.c: don't display the layout warning for static fields.
13692
13693 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
13694
13695         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
13696         * locales.c, locales.h: Added new icalls for culture-specific
13697         Char.ToLower and Char.ToUpper.
13698
13699 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13700
13701         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
13702         by David Waite.
13703
13704 2004-04-20  Martin Baulig  <martin@ximian.com>
13705
13706         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
13707         of the type name before passing it to mono_reflection_type_from_name().
13708
13709 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
13710
13711         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
13712         encodings here. Fixes #56965.
13713
13714 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
13715
13716         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
13717         fix test on strstr result not that I can see anything that
13718         relies on the result.
13719
13720 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
13721
13722         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
13723         Fixes #57081.
13724
13725         * marshal.c (mono_marshal_get_string_encoding): New helper function.
13726
13727         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
13728         function to determine which marshalling to use for strings. Fixes
13729         #56965.
13730
13731         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
13732
13733         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
13734
13735 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
13736
13737         * icall.c: #include mono-config.h
13738
13739 2004-04-15  Jackson Harper  <jackson@ximian.com>
13740
13741         * culture-info-tables.h: Fix date formats for en-US culture.
13742         
13743 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
13744
13745         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
13746         ThreadPool.SetMinThreads.
13747         * threadpool.c: Implemented ThreadPool.GetMinThreads and
13748         ThreadPool.SetMinThreads.
13749
13750 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
13751
13752         * mono-config.c: also load the .config file in the directory
13753         where the assembly was found.
13754
13755 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
13756
13757         * assembly.c: load per-assembly config files.
13758         * icall.c: decrapified code to get the config dir and moved to
13759         mono-config.c.
13760         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
13761         per-assembly config files. When doing a dll map lookup give precedence
13762         to the per-assembly data.
13763
13764 2004-04-14  Martin Baulig  <martin@ximian.com>
13765
13766         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
13767         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
13768         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
13769
13770         * mono-debugger-debugger.c: While the debugger is locked, remember
13771         whether the symbol tables have changes and send one single
13772         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
13773
13774 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
13775
13776         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
13777
13778         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
13779         function.
13780
13781         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
13782         account when marshalling string arrays. Fixes #56965.
13783
13784 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
13785
13786         * icall.c: Add new icalls mapping for security.
13787         * security.c|h: Add internal calls for WindowsIdentity,
13788         WindowsImpersonationContext and WindowsPrincipal.
13789
13790 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
13791
13792         * class.c: Added comment to ensure the System.MonoDummy class
13793         is removed when no longer necessary
13794
13795 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
13796
13797         * appdomain.c: Pass arguments to the bootstraping exceptions to
13798         minimize JITed methods at boot
13799
13800         * metadata.c (mono_exception_from_name_two_strings): Allow for the
13801         second string to be null.
13802
13803         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
13804         Change the protocol to minimize the JIT methods at startup.  Now
13805         it Returns the internal codepage, if the value of "int_code_page"
13806         is 1 at entry, and we can not compute a suitable code page
13807         number, returns the code page as a string.
13808
13809 2004-04-13  Jackson Harper  <jackson@ximian.com>
13810
13811         * culture-info-tables.h: Fix number of decimal digits for all
13812         english locales.
13813
13814 2004-04-13  Jackson Harper  <jackson@ximian.com>
13815
13816         * icall.c: Clairfy out of sync error message. It is not always
13817         your corlib that is out of sync.
13818
13819 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
13820
13821         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
13822         properties when only the set accessor is overriden. Fixes #55874.
13823
13824 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
13825
13826         * assembly.c (mono_assembly_load_references): Make this thread safe.
13827         Fixes #56327.
13828
13829 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
13830
13831         * monosn.c: Add missing initialization calls.
13832
13833 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
13834
13835         * locales.c:
13836         ves_icall_System_Globalization_CultureInfo_construct_number_format
13837         Fix g_assert so it compiles on fussier compilers re int/ptr
13838         mismatch
13839
13840 2004-04-08  Dick Porter  <dick@ximian.com>
13841
13842         * socket-io.h:
13843         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
13844         53992.  Also rearrange the code so that the internal calls return
13845         an error value and exceptions are thrown from managed code.
13846
13847         * icall.c: Add type info to the socket icalls.
13848
13849 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13850
13851         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
13852         owes me a beer.
13853
13854 2004-04-07  Martin Baulig  <martin@ximian.com>
13855
13856         * class.c (mono_class_from_generic_parameter): Don't default
13857         `klass->parent' to `mono_defaults.object_type'.
13858
13859 2004-04-07  Martin Baulig  <martin@ximian.com>
13860
13861         * reflection.c (mono_reflection_initialize_generic_parameter): Set
13862         `param->pklass->reflection_info'.       
13863
13864 2004-04-07  Jackson Harper  <jackson@ximian.com>
13865
13866         * culture-info-tables.h: Fix date separator symbol.
13867         
13868 2004-04-07  Martin Baulig  <martin@ximian.com>
13869
13870         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
13871         from System.Type to System.MonoType.
13872
13873 2004-04-07  Martin Baulig  <martin@ximian.com>
13874
13875         * reflection.h
13876         (MonoReflectionGenericParam): Added `has_reference_type' and
13877         `has_value_type' fields.
13878
13879         * reflection.c (mono_image_get_generic_param_info): Encode the
13880         correct flags if we have the `class' or `struct' constraint.
13881
13882 2004-04-07  Martin Baulig  <martin@ximian.com>
13883
13884         * reflection.h
13885         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
13886
13887 2004-04-07  Jackson Harper  <jackson@ximian.com>
13888
13889         * appdomain.c: Revert extra patches, just wanted to bump the
13890         version number.
13891         
13892 2004-04-07  Jackson Harper  <jackson@ximian.com>
13893
13894         * Makefile.am: Add culture-info private headers.
13895         * icall.c: Add new icalls for contructing locales.
13896         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
13897         * locales.h: Declare new culture info construction methods.
13898         * object.h: Add new fields used to avoid the CultureMap to
13899         MonoCultureInfo.
13900         * culture-info.h: Definition of structs used in the culture info
13901         tables.
13902         * culture-info-tables.h: Autogenerated tables that contain culture
13903         info data. This file was generated with the locale-builder tool.
13904         * appdomain.c: Incement corlib version number.
13905         
13906 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
13907
13908         * appdomain.c: (mono_runtime_init) move mono_thread_init
13909         to before mono_object_new calls so critical sections
13910         are initialized before use.
13911
13912 2004-04-07  Martin Baulig  <martin@ximian.com>
13913
13914         * icall.c
13915         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
13916         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
13917         (ves_icall_MonoGenericParam_initialize): Removed.
13918         (monogenericparam_icalls): Removed.
13919         (generictypeparambuilder_icalls): Added new table for
13920         System.Reflection.Emit.GenericTypeParameterBuilder.
13921
13922         * reflection.c
13923         (mono_reflection_define_generic_parameter): Removed.
13924         (mono_reflection_initialize_generic_parameter): This is now called
13925         from GenericTypeParameterBuilder's .ctor.
13926
13927 2004-04-06  Martin Baulig  <martin@ximian.com>
13928
13929         * class.c (mono_class_init): Don't inflate nested classes in a
13930         generic instance.
13931         (mono_type_get_name_recurse): Include the generic arguments for
13932         generic instances and generic type declarations.
13933         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
13934         (_mono_class_get_instantiation_name): Removed.
13935         (mono_class_create_generic): Always use `gklass->name' as our name.
13936
13937         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
13938
13939         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
13940         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
13941         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
13942         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
13943         closed generic methods here.
13944
13945         * reflection.c
13946         (mono_reflection_generic_inst_get_nested_types): Removed.
13947         (inflate_mono_method): Copy the generic parameters from the
13948         MonoMethodHeader into out MonoGenericMethod.
13949
13950 2004-04-06  Martin Baulig  <martin@ximian.com>
13951
13952         * row-indexes.h
13953         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
13954
13955         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
13956
13957         * reflection.c (build_compressed_metadata): If we have any entries
13958         in the GenericParam, MethodSpec or GenericParamConstraint tables,
13959         set the header version to 1.1.
13960
13961 2004-04-06  Martin Baulig  <martin@ximian.com>
13962
13963         * class.c (mono_class_init): If we're a generic instance,
13964         initialize our nested classes, too.
13965         (_mono_class_get_instantiation_name): Deal with the new `!%d'
13966         suffix. 
13967
13968 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13969
13970         * process.c: quote the argument passed to the shell on windows.
13971
13972 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
13973
13974         * threads.c (mono_alloc_special_static_data): Allow this to be
13975         called during startup.
13976
13977 2004-04-02  Martin Baulig  <martin@ximian.com>
13978
13979         * icall.c
13980         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
13981
13982 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
13983
13984         * icall.c: Fix build.
13985
13986 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
13987
13988         * Makefile.am: Added security.c|h.
13989         * icall.c: Added icall for get_UserName;
13990         * security.c: New file for security related icalls. Added function
13991         get_UserName for System.Environment (fix #56144).
13992         * security.h: New. Header file for security.c
13993
13994 2004-04-02  Dick Porter  <dick@ximian.com>
13995
13996         * icall.c: Deleted the icalls that were obsoleted some time ago
13997         by the ICU string code, and which were mixed into the icall
13998         rearranging.  Fixes bug 55969.
13999
14000         * string-icalls.h: 
14001         * string-icalls.c: Deleted the code that those icalls reference.
14002
14003 2004-04-01  Martin Baulig  <martin@ximian.com>
14004
14005         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
14006
14007         * class.c (mono_class_from_generic_parameter): Don't set 
14008         TYPE_ATTRIBUTE_INTERFACE.
14009         (my_mono_class_from_generic_parameter): Likewise.
14010
14011 2004-04-01  Martin Baulig  <martin@ximian.com>
14012
14013         * loader.c (find_method): Added an optional `MonoClass *ic'
14014         argument to search in a specific interface.
14015         (mono_get_method_constrained): New public function.
14016
14017 2004-04-01  Martin Baulig  <martin@ximian.com>
14018
14019         * reflection.c (mono_image_get_generic_field_token): Use the
14020         `handleref' cache here.
14021
14022 2004-04-01  Martin Baulig  <martin@ximian.com>
14023
14024         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
14025
14026         * reflection.c (create_generic_typespec): Use the `typespec' hash
14027         here, not the `typeref' one.    
14028
14029 2004-04-01  Martin Baulig  <martin@ximian.com>
14030
14031         * class.c (mono_class_inflate_generic_type): Moved the
14032         functionality into a new static inflate_generic_type() which
14033         returns NULL if it didn't do anything.  Only increment the
14034         `mono_stats.inflated_type_count' if we actually inflated
14035         something.
14036         (mono_class_get_full): Check the classes type to see whether we
14037         need to inflate it; also inflate MONO_TYPE_(M)VAR.
14038
14039 2004-04-01  Jackson Harper  <jackson@ximian.com>
14040
14041         * reflection.c: Set culture for assembly references.
14042         
14043 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
14044
14045         * reflection.[ch], icall.[ch], Fix support for pinning variables.
14046
14047 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14048
14049         * assembly.c:
14050         (do_mono_assembly_open): the critical section also covers
14051         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
14052
14053 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14054
14055         * threads.c:
14056         (mono_manage_threads): abort the background threads when finishing.
14057         Fixes bug #47232.
14058
14059 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14060
14061         * gc.c: only close the done_event handle if there was no timeout.
14062         C-ified comments.
14063
14064 2004-03-30  Martin Baulig  <martin@ximian.com>
14065
14066         * icall.c (icall_entries): It's called "System.Activator", not
14067         "System.Activation".    
14068
14069 2004-03-30  Martin Baulig  <martin@ximian.com>
14070
14071         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
14072         (mono_class_create_from_typespec): Likewise.
14073
14074 2004-03-30  Martin Baulig  <martin@ximian.com>
14075
14076         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
14077         `has_ctor_constraint' and `initialized'.
14078
14079 2004-03-30  Martin Baulig  <martin@ximian.com>
14080
14081         * reflection.c (encode_new_constraint): New static function to add
14082         the constructor constraint attribute to a type parameter.
14083         (encode_constraints): Call encode_new_constraint() if necessary.
14084
14085         * reflection.h
14086         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
14087
14088         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
14089         
14090 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
14091
14092         * reflection.c, icall.c: add support for pinning variables. 
14093
14094 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
14095
14096         * marshal.c (mono_marshal_get_managed_wrapper):
14097         init bool local with zero rather than null.
14098
14099 2004-03-29  Martin Baulig  <martin@ximian.com>
14100
14101         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
14102         the "official" behavior here.
14103         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
14104
14105 2004-03-29  Martin Baulig  <martin@ximian.com>
14106
14107         * icall.c: Reflect latest API changes.
14108
14109 2004-03-29  Martin Baulig  <martin@ximian.com>
14110
14111         * loader.c (mono_get_method_from_token): Also call
14112         mono_metadata_load_generic_params () for abstract and interface
14113         methods; replace the type arguments in the method signature with
14114         the ones which are loaded from the metadata.
14115
14116 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
14117
14118         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
14119         of the lock is not the current thread. MS.NET don't do it, in spite of
14120         what the documentation says. See bug #56157.
14121
14122 2004-03-28  Martin Baulig  <martin@ximian.com>
14123
14124         * class.c (mono_class_init): Don't call init_properties() and
14125         init_events() for generic instances; set `prop->parent' when
14126         inflating properties.
14127
14128         * reflection.c (mono_generic_inst_get_object): Call
14129         `mono_class_init (ginst->klass)'.
14130         (mono_type_get_object): Only create a MonoGenericInst if your
14131         generic type is a TypeBuilder.
14132         (do_mono_reflection_bind_generic_parameters): Only set
14133         `ginst->is_dynamic' if our generic type is a TypeBuilder.
14134
14135 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
14136
14137         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
14138         Fixes #56091.
14139
14140 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14141
14142         * icall.c: added Kill_internal icall.
14143         * process.[ch]: added Kill_internal icall.
14144
14145 2004-03-25  Martin Baulig  <martin@ximian.com>
14146
14147         * class.h (MonoStats): Added `generic_instance_count',
14148         `inflated_method_count', `inflated_type_count' and
14149         `generics_metadata_size'.       
14150
14151 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14152
14153         * reflection.c: no warnings now.
14154
14155 2004-03-25  Martin Baulig  <martin@ximian.com>
14156
14157         * class.c (mono_class_get_full): New public function; does a
14158         mono_class_get(), but also takes a `MonoGenericContext *'.
14159
14160         * loader.c (mono_field_from_memberref): Renamed to
14161         `field_from_memberref', made static and added `MonoGenericContext *'
14162         argument.
14163         (mono_field_from_token): Added `MonoGenericInst *' argument.
14164         (method_from_memberef): Likewise.
14165         (mono_get_method_from_token): Likewise.
14166         (mono_get_method_full): New public function; does a
14167         mono_get_method(), but also takes a `MonoGenericContext *'.
14168
14169         * verify.c (mono_method_verify): Get the method's generic context
14170         and pass it to mono_field_from_token(), mono_get_method_full() and
14171         mono_class_get_full().
14172
14173 2004-03-25  Martin Baulig  <martin@ximian.com>
14174
14175         * class.c (mono_class_inflate_generic_type): Take a
14176         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
14177         `MonoGenericMethod *'.
14178
14179 2004-03-25  Martin Baulig  <martin@ximian.com>
14180
14181         * loader.h (MonoMethodInflated): Store the MonoGenericContext
14182         instead of the MonoGenericMethod here.
14183
14184 2004-03-25  Martin Baulig  <martin@ximian.com>
14185
14186         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
14187         each time we create a new MonoGenericInst, we also create a new
14188         context which points back to us.
14189
14190         * class.c (inflate_method): Use `ginst->context' instead of
14191         creating a new context.
14192
14193         * loader.c (method_from_memberref): Use
14194         `klass->generic_inst->context' instead of creating a new context.
14195
14196 2004-03-25  Martin Baulig  <martin@ximian.com>
14197
14198         * class.h (MonoGenericContext): New struct.
14199         (MonoGenericMethod): Removed `generic_inst'.
14200
14201         * class.c (mono_class_inflate_generic_method): Take a
14202         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
14203
14204 2004-03-25  Martin Baulig  <martin@ximian.com>
14205
14206         * loader.h (MonoMethodInflated): New typedef.
14207
14208         * metadata.h (MonoMethodSignature): Removed `gen_method', make
14209         `generic_param_count' consume just 30 bits, added `is_inflated'
14210         and `has_type_parameters' flags (one bit each).
14211
14212         * class.c (mono_class_inflate_generic_method): Create a
14213         MonoMethodInflated instead of a MonoMethodNormal and set
14214         `is_inflated' in the method signature.
14215
14216         * class.h (MonoGenericMethod): Removed `generic_method'.
14217
14218 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
14219
14220         * image.c: Make sure the name of a MonoImage is always an absolute path.
14221           This fixes bug #54415.
14222
14223 2004-03-24  Martin Baulig  <martin@ximian.com>
14224
14225         * class.c (mono_class_setup_vtable): If we're a generic instance,
14226         use our generic type's vtable size.
14227
14228 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
14229
14230         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
14231         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
14232         problems.
14233
14234 2004-03-23  Martin Baulig  <martin@ximian.com>
14235
14236         * class.h (MonoDynamicGenericInst): Added `int count_events' and
14237         `MonoEvent *events'.
14238
14239         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
14240         (typebuilder_icalls): Added "get_event_info"; calls
14241         mono_reflection_event_builder_get_event_info(). 
14242
14243         * reflection.c (mono_reflection_generic_inst_initialize): Added
14244         `MonoArray *events'.
14245         (mono_reflection_event_builder_get_event_info): New function.
14246
14247 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
14248
14249         * object.h: add mono_type_initialization_init
14250
14251         * object.c (mono_runtime_class_init): 
14252         implement class constructor synchronization rules
14253         to cope with threading issues.  
14254         add mono_type_initialization_init
14255
14256         * appdomain.c (mono_runtime_init): call 
14257         mono_type_initialization_init
14258
14259         * class.h: removing initializing field from MonoVTable
14260
14261 2004-03-23  Martin Baulig  <martin@ximian.com>
14262
14263         * class.c (my_mono_class_from_generic_parameter): Use
14264         `param->name' if it's not NULL. 
14265
14266 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
14267
14268         * class.c: do not insert non-virtual methods in the vtable.
14269         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
14270         that means the method is non-virtual. This never would have
14271         happened before.
14272
14273 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
14274
14275         * profiler.c: Added lock for accessing coverage_hash.
14276
14277 2004-03-22  Martin Baulig  <martin@ximian.com>
14278
14279         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
14280         `method->method->signature->generic_param_count != 0' to make it
14281         work for interface methods.
14282
14283 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14284
14285         * process.c: quote the string passed to the shell using g_shell_quote.
14286
14287 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14288
14289         * threads.c:
14290         (mono_threads_manage): don't remove the finalizer thread and self
14291         from the threads hash table so that mono_thread_manage can be called
14292         more than once.
14293
14294 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14295
14296         * process.c: quote the arguments when UseShellExecute is true. Fixes
14297         bug #55790.
14298
14299 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14300
14301         * threads.c: set mono_thread_detach as a cleanup routine for every
14302         thread. This way it's always executed upon thread termination, either
14303         aborted or finished normally. No more xsp hangs!
14304
14305 2004-03-17  Martin Baulig  <martin@ximian.com>
14306
14307         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
14308         `int count_nested' and a `MonoType **nested'.
14309
14310         * reflection.c (mono_reflection_bind_generic_parameters): Moved
14311         most of the functionality into a new static
14312         do_mono_reflection_bind_generic_parameters() and don't take a
14313         `MonoType *nested_in' argument any more.  Don't compute nested
14314         types here.
14315         (mono_reflection_generic_inst_get_nested_types): New public method
14316         to get nested types.
14317
14318         * class.c (mono_class_create_generic): Set `klass->nested_in' if
14319         we're a nested class.
14320
14321         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
14322         mono_reflection_generic_inst_get_nested_types() to compute the
14323         nested types.
14324
14325 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
14326
14327         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
14328         descriptive error message under windows.
14329         
14330 2004-03-17  Martin Baulig  <martin@ximian.com>
14331
14332         * class.c (dup_type): Added `const MonoType *original' argument;
14333         copy the attrs from the original type.
14334
14335 2004-03-17  Martin Baulig  <martin@ximian.com>
14336
14337         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
14338         `m->generic_inst_cache' here.
14339
14340 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
14341
14342         * exception.h exception.c: Add stack_overflow_exception.
14343
14344 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14345
14346         * threadpool.c:
14347         (overlapped_callback): call SetEvent *after* invoking the callback.
14348         No need to call CloseHandle.
14349
14350 2004-03-16  Martin Baulig  <martin@ximian.com>
14351
14352         * reflection.c (mono_image_get_fieldref_token): Take a
14353         `MonoReflectionField *' instead of a `MonoClassField *' and a
14354         `MonoClass *'; store the `MonoReflectionField *' in the hash.
14355
14356 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14357
14358         * appdomain.c: don't add the culture to the filename we're looking for
14359         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
14360
14361 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14362
14363         * locales.c: don't ignore symbols when doing case insensitive compares.
14364         Thanks Dick! Fixes bug #54046.
14365
14366         * threads.c: surround 'threads' usage with enter/leave in
14367         mono_thread_manage.
14368
14369 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
14370
14371         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
14372         implicitly marshalled as [Out]. Fixes #55450.
14373
14374         (mono_marshal_get_runtime_invoke): Zero out the result if there is
14375         an exception.
14376
14377 2004-03-16  Martin Baulig  <martin@ximian.com>
14378
14379         * class.c (mono_class_from_generic_parameter): Use the actual
14380         parameter name. 
14381
14382 2004-03-16  Martin Baulig  <martin@ximian.com>
14383
14384         * reflection.c (type_get_signature_size): New static function.
14385         Compues the size of the type in a method signature.
14386         (method_get_signature_size): New static function; calls
14387         type_get_signature_size() to compute the actual size of the
14388         method's signature.
14389         (method_encode_signature): Use method_get_signature_size() to get
14390         the signature's size rather than using `nparams * 10'.
14391
14392 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14393
14394         * file-io.h: define here WapiOverlapped on windows. I don't want the
14395         regular OVERLAPPED one.
14396
14397         * file-io.c:
14398         * threadpool.c: somehow, BindIoCompletionCallback is not found.
14399         Disabling AIO on windows.
14400
14401 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14402
14403         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
14404         bug #55385.
14405
14406 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14407
14408         * appdomain.c: upgraded corlib version.
14409
14410         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
14411         and BeginWrite. Allow opening files for asynchrnous operations.
14412
14413         * file-io.h: new struct that maps FileStreamAsyncResult.
14414         * icall.c: added new icalls.
14415         * process.[ch]: support setting child process environment variables
14416         and use the SHELL or COMSPEC when UseShellExecute is true.
14417
14418         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
14419         callback for async. IO is here and also BindHandle.
14420
14421         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
14422         from here.
14423
14424 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
14425
14426         * reflection.c (create_custom_attr): Allow len == 0.
14427
14428         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
14429         computation on big-endian machines.
14430
14431 2004-03-13  Martin Baulig  <martin@ximian.com>
14432
14433         * class.h (MonoGenericInst): Added `int count_ifaces'.
14434
14435         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
14436         `ginst->count_ifaces' instead `klass->interface_count' since we
14437         may get called before the vtable is created.
14438
14439         * loader.c (mono_method_get_param_names): If we're a generic
14440         instance, return and don't initialize the class.
14441
14442         * reflection.c (mono_reflection_setup_generic_class): Don't call
14443         ensure_runtime_vtable().
14444         (mono_reflection_bind_generic_parameters): Set
14445         `ginst->count_ifaces'.
14446
14447 2004-03-11  Jackson Harper <jackson@ximian.com>
14448
14449         * icall.c:
14450         * unicode.c:
14451         * unicode.h: Remove unused System.Char icalls.
14452         
14453 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
14454
14455         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
14456         code when we P/Invoke the first library in Windows.Forms, instead
14457         of when we first open the assembly.
14458
14459         * assembly.c: Drop the lookup from here.
14460
14461 2004-03-10  Martin Baulig  <martin@ximian.com>
14462
14463         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
14464         class for properties, fields and events.  Finally fixes #54945.
14465
14466 2004-03-10  Martin Baulig  <martin@ximian.com>
14467
14468         * metadata.c (mono_metadata_class_equal): New static function;
14469         checks whether two generic instances or two generic parameters are
14470         equal.
14471         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
14472         compare classes.        
14473
14474 2004-03-10  Martin Baulig  <martin@ximian.com>
14475
14476         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
14477
14478         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
14479         argument and write it into the `reflection_info' field.
14480
14481         * icall.c
14482         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
14483         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
14484
14485 2004-03-09  Jackson Harper  <jackson@ximian.com>
14486
14487         * char-conversions.h: use 8 bits for numeric data its all we need
14488         * icall.c: numeric data is only 8 bits now.
14489
14490 2004-03-09  Martin Baulig  <martin@ximian.com>
14491
14492         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
14493
14494         * class.c (init_properties, init_events): Initialize the new
14495         `parent' field.
14496
14497         * reflection.c (typebuilder_setup_properties): Likewise.
14498         (typebuilder_setup_events): Likewise.
14499
14500         * reflection.h (MonoEventInfo): Replaced `parent with
14501         `declaring_type' and `reflected_type'.
14502
14503         * icall.c (ves_icall_get_property_info): Distinguish between
14504         declaring and reflected type.
14505         (ves_icall_get_event_info): Likewise.
14506
14507 2004-03-09  Martin Baulig  <martin@ximian.com>
14508
14509         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
14510         (ves_icall_Type_GetField): Correctly set field->klass.
14511
14512 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
14513
14514         * loader.h: Fix warning.
14515
14516 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
14517
14518         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
14519         library routine if present.  Notice that it will still continue
14520         executing even if its missing, for those working on the Gtk#
14521         edition of Windows.Forms.
14522
14523         * assembly.c (do_mono_assembly_open): If loading the
14524         System.Windows.Forms call mono_loader_wini_init.
14525
14526 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
14527
14528         * class.h: Added MonoRemoteClass struct.
14529         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
14530         function for MonoStrings.
14531         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
14532         Added internal call for getting the proxy type.
14533         * marshal.c: Get the type of transparent proxies from its remote_class.
14534         Added methods that generate the IL for type checks and casts:
14535         mono_marshal_get_isinst, mono_marshal_get_castclass, 
14536         mono_marshal_get_proxy_cancast.
14537         * marshal.h: Declaration of the previous new methods.
14538         * object.c: Added new moethods for creating and updating MonoRemoteClass
14539         instances: mono_remote_class, mono_upgrade_remote_class, 
14540         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
14541         * verify.c: FIx transparent_proxy_fields layout.
14542         * appdomain.c: Bump corlib version.
14543
14544 2004-03-04  Jackson Harper  <jackson@ximian.com>
14545
14546         * icall.c: Add icall to access char conversion tables.
14547         * char-conversions.h: Character conversion tables.
14548         * Makefile.am: Add char-conversions.h private header file.
14549         
14550 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
14551
14552         * appdomain.c (unload_thread_main): Increase unloading timeout to
14553         10 sec as a temporary workaround for Nant problems.
14554
14555 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
14556
14557         * gc.c: Add checks for GC_enable and GC_disable.
14558
14559         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
14560         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
14561         (bug #54988).
14562         
14563 2004-02-27  Martin Baulig  <martin@ximian.com>
14564
14565         * reflection.c (mono_reflection_bind_generic_parameters): Take a
14566         `MonoReflectionType *' instead of a `MonoType *'.
14567
14568 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
14569
14570         * gc.c (run_finalize): Avoid finalizing the object representing the
14571         finalizer thread.
14572         (finalizer_thread): Fix warning.
14573
14574 2004-02-25  Martin Baulig  <martin@ximian.com>
14575
14576         * class.c (_mono_class_get_instantiation_name): Added `int offset'
14577         argument for nested types.
14578         (mono_class_create_generic): Added support for nested generictypes.
14579
14580         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
14581         `GList *nested'.
14582
14583         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
14584
14585         * reflection.c (method_encode_signature): Increase the minimum
14586         value of `size' from 10 to 11.
14587         (mono_reflection_bind_generic_parameters): Take `int type_argc'
14588         and `MonoType **types' arguments instead of the `MonoArray
14589         *types'; added `MonoType *nested_in'.  Recursively instantiate
14590         nested classes. 
14591
14592 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
14593
14594         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
14595         stack_overflow_ex members which are used by exception handling.
14596
14597         * appdomain.c (mono_runtime_init): Initialize the new members.
14598
14599         * gc.c (mono_gc_enable): New helper function.
14600         * gc.c (mono_gc_disable): New helper function.
14601
14602 2004-02-23  Martin Baulig  <martin@ximian.com>
14603
14604         * icall.c: I must have been really stupid - make it actually work
14605         this time ;-)
14606
14607 2004-02-23  Martin Baulig  <martin@ximian.com>
14608
14609         * loader.c (method_from_memberref): Only inflate the method if
14610         it's in another klass.
14611
14612 2004-02-23  Martin Baulig  <martin@ximian.com>
14613
14614         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
14615         (mono_class_init): If we're a generic instance and an interface,
14616         compute `class->interface_id'; also create `class->interfaces'
14617         here and inflate them.
14618
14619         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
14620         `ginst->is_open'.
14621         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
14622
14623         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
14624
14625 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
14626
14627         * reflection.c (method_encode_code): Improved the error message
14628         generated by the exception.
14629
14630 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14631
14632         * icall.c: Martin did not do what he said in the ChangeLog for
14633         2004-02-18, but put back the changes for properties and events.
14634         Commenting those changes out again and adding comment to bug #54518.
14635         
14636         * process.c: removed warning.
14637
14638 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
14639
14640         * marshal.c (emit_struct_conv): Print an error message instead of
14641         asserting when a type does not have the StructLayout attribute.
14642
14643 2004-02-20  Martin Baulig  <martin@ximian.com>
14644
14645         * reflection.c (mono_type_get_object): Also use the cache for
14646         generic instances.
14647         (mono_reflection_bind_generic_parameters): Always compute
14648         `ginst->ifaces'.        
14649
14650 2004-02-20  Martin Baulig  <martin@ximian.com>
14651
14652         * class.h (MonoGenericMethod): Removed `klass'.
14653
14654         * class.c (mono_class_inflate_generic_method): Added `MonoClass
14655         *klass' argument.
14656
14657 2004-02-20  Martin Baulig  <martin@ximian.com>
14658
14659         * reflection.c (method_encode_methodspec): Actually use the
14660         uninflated signature for the memberref.
14661
14662 2004-02-20  Martin Baulig  <martin@ximian.com>
14663
14664         * class.h (MonoGenericMethod): Removed `declaring'.
14665
14666         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
14667         is NULL, compute it here.
14668
14669 2004-02-20  Martin Baulig  <martin@ximian.com>
14670
14671         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
14672
14673         * metadata.c (mono_metadata_generic_inst_hash): New method.
14674         (mono_metadata_generic_inst_equal): New method.
14675
14676         * reflection.c (mono_reflection_bind_generic_parameters): Use the
14677         `klass->image->generic_inst_cache' cache to avoid creating
14678         duplicate MonoGenericInst's.
14679
14680         * class.c (mono_class_inflate_generic_type): Use the cache.
14681
14682 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
14683
14684         * object.c: fixed gc descriptor calculation for embedded valuetypes.
14685
14686 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14687
14688         * icall.c: added Socket.WSAIoctl icall.
14689
14690         * socket-io.[ch]: implemented
14691         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
14692
14693 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
14694
14695         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
14696
14697 2004-02-18  Urs C Muff  <umuff@quark.com>
14698
14699         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
14700         this work on PPC and other big-endian architectures.
14701
14702         * debug-mono-symfile.h: Prepended the names of all the `guint32'
14703         fields with an underscore to make sure they're only accessed by
14704         the read32() macro.
14705
14706 2004-02-18  Martin Baulig  <martin@ximian.com>
14707
14708         * icall.c: Put the klass->refclass changes back for methods and
14709         fields, but not for properties and events.  We're currently not
14710         distinguishing between DeclaringType and ReflectedType for
14711         properties and events, that's what caused the regressions.
14712
14713 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14714
14715         * object.c:
14716         (mono_async_result_new): the handle can be NULL.
14717
14718         * threadpool.c: Use an event instead of a semaphore, don't initialize
14719         it until needed. This saves quite a few semaphores from being created
14720         when using the threadpool.
14721
14722 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
14723
14724         * object.c (mono_string_is_interned_lookup): Fix interning of long
14725         strings. Fixes #54473.
14726
14727         * domain.c (ldstr_equal): Optimize if the two strings are equal.
14728
14729         * icall.c: Revert the klass->refclass changes since they introduce
14730         regressions (bug #54518).
14731
14732 2004-02-18  Martin Baulig  <martin@ximian.com>
14733
14734         * class.c (mono_class_init): If we're a generic instance and don't
14735         come from a TypeBuilder, inflate our members here.
14736         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
14737         (mono_class_create_generic): New public method.
14738         (mono_class_initialize_generic): Removed.
14739         (get_instantiation_name): Renamed to
14740         _mono_class_get_instantiation_name() and made it public.
14741
14742 2004-02-18  Martin Baulig  <martin@ximian.com>
14743
14744         * class.c (mono_class_inflate_generic_type): Clear the new
14745         instance's `nginst->klass' when inflating a generic instance.
14746         (mono_class_is_subclass_of): Added (basic) support for generic
14747         instances.
14748
14749 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
14750
14751         * appdomain.h, domain.c: use a MonoCodeManager instead of a
14752         MonoMempool to hold compiled native code.
14753
14754 2004-02-17  Martin Baulig  <martin@ximian.com>
14755
14756         * class.h (MonoDynamicGenericInst): Added `count_properties' and
14757         `properties'.
14758
14759         * reflection.c (mono_reflection_generic_inst_initialize): Added
14760         `MonoArray *properties' argument.
14761
14762         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
14763
14764 2004-02-17  Martin Baulig  <martin@ximian.com>
14765
14766         * icall.c (ves_icall_Type_GetFields): Renamed to
14767         ves_icall_Type_GetFields_internal() and added a
14768         `MonoReflectionType *rtype' argument; pass it to
14769         mono_field_get_object() to set the field's "reflected" type.
14770         (ves_icall_Type_GetConstructors): Likewise.
14771         (ves_icall_Type_GetEvents): Likewise.
14772         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
14773         argument; pass it to mono_method_get_object() to set the method's
14774         "reflected" type.       
14775
14776 2004-02-17  Martin Baulig  <martin@ximian.com>
14777
14778         * class.h (MonoDynamicGenericInst): New type.
14779         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
14780
14781         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
14782         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
14783         (ves_icall_MonoGenericInst_GetFields): New interncall.
14784
14785         * class.c (mono_class_from_generic): Don't call
14786         mono_class_initialize_generic() if this is a dynamic instance;
14787         ie. it's being created from a TypeBuilder.
14788         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
14789         `class->byval_arg.type'.
14790
14791         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
14792         to `inflate_method' and made static.
14793         (mono_reflection_inflate_field): Removed.
14794         (mono_reflection_generic_inst_initialize): New public method.
14795
14796         * reflection.h (MonoReflectionGenericInst): Removed `methods',
14797         `ctors' and `fields'; added `initialized'.
14798
14799 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
14800
14801         * debug-helpers.c (mono_method_full_name): Fix output for empty
14802         namespaces.
14803
14804 2004-02-12  Martin Baulig  <martin@ximian.com>
14805
14806         * class.h (MonoClassField): Added `MonoType *generic_type'.
14807
14808         * reflection.c (mono_image_get_fieldref_token): Added support for
14809         instantiated generic types.
14810         (field_encode_inflated_field): Removed.
14811         (mono_image_get_inflated_field_token): Removed.
14812         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
14813
14814         * reflection.h (MonoReflectionInflatedField): Removed.
14815
14816 2004-02-12  Martin Baulig  <martin@ximian.com>
14817
14818         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
14819         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
14820
14821         * reflection.c (mono_image_get_methodspec_token): Take a
14822         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
14823         (mono_image_create_token): Check whether we have a
14824         `method->signature->gen_method' and call
14825         mono_image_get_methodspec_token() if appropriate.
14826         (inflated_method_get_object): Removed.
14827         (mono_reflection_bind_generic_method_parameters): Return a
14828         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
14829         (mono_reflection_inflate_method_or_ctor): Likewise.
14830
14831         * reflection.h (MonoReflectionInflatedMethod): Removed.
14832
14833 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
14834
14835         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
14836         for custom valuetype marshalling.
14837
14838         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
14839
14840 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14841
14842         * icall.c: fixed WSAGetLastError_internal name.
14843
14844 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
14845
14846         * threads.c (mono_thread_attach): Allow this to be called multiple
14847         times for a thread.
14848         
14849         * threads.c (build_wait_tids): Do not wait for ourselves.
14850
14851         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
14852         appdomain list is empty.
14853
14854         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
14855         memory returned by mono_string_builder_to_utf16, since it points into
14856         managed memory. Thanks to Bernie Solomon for noticing this.
14857
14858         * icall.c: Add AppDomainSetup icalls.
14859
14860         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
14861
14862         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
14863         types.
14864
14865         * reflection.c (reflection_methodbuilder_to_mono_method): Save
14866         custom attributes to the method_aux struct. Also fix array indexes etc.
14867
14868         * loader.c (mono_method_get_param_names): Make dynamic case work again.
14869         
14870 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
14871
14872         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
14873         (both static and runtime) and reduce startup time.
14874
14875 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
14876
14877         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
14878         AsAny marshalling conversion instead of crashing.
14879
14880         * marshal.c: Fix warnings.
14881
14882 2004-02-09  Martin Baulig  <martin@ximian.com>
14883
14884         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
14885
14886         * reflection.h (MonoReflectionInflatedMethod): Removed the
14887         `declaring' field, it's now in the unmanaged MonoGenericMethod.
14888
14889         * reflection.c (method_encode_methodspec): Removed the `method'
14890         argument; we get it from `gmethod->declaring'.
14891         (inflated_method_get_object): Removed the `declaring' argument.
14892
14893 2004-02-09  Martin Baulig  <martin@ximian.com>
14894
14895         * class.h (MonoGenericMethod): New type.
14896         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
14897         `generic_method'.
14898
14899         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
14900         a `MonoGenericMethod *gen_method' one.
14901
14902         * class.c (mono_class_inflate_generic_type): Take an additional
14903         `MonoGenericMethod * argument.  This is only non-NULL if we're
14904         inflating types for a generic method.   
14905         (mono_class_inflate_generic_signature): Renamed to
14906         inflate_generic_signature() and made static; take a
14907         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
14908         (inflate_generic_header): Take a `MonoGenericMethod *' argument
14909         instead of a `MonoGenericInst *' one.
14910         (mono_class_inflate_generic_method): Likewise.
14911
14912         * reflection.c (encode_generic_method_sig): Take a
14913         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
14914         (method_encode_methodspec): Likewise.
14915         (inflated_method_get_object): Likewise. 
14916
14917         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
14918         field with a `MonoGenericMethod *gmethod' one.  
14919
14920 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
14921
14922         * class.h (mono_class_has_parent): add parens to expansion
14923         so you can ! this.
14924
14925 2004-02-08  Martin Baulig  <martin@ximian.com>
14926
14927         * image.h (MonoImage): Removed `generics_cache'.
14928
14929         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
14930         instead of a `MonoType *' argument; removed the `inflate_methods'
14931         argument.  Don't inflate methods here.
14932
14933         * loader.c (find_method): If it's a generic instance, call
14934         mono_class_init() on the `sclass->generic_inst->generic_type'.
14935
14936         * metadata.c (mono_type_size): Make this work on uninitialized
14937         generic instances; call it on the `ginst->generic_type's class.
14938
14939         * reflection.c (mono_reflection_bind_generic_parameters): Call
14940         mono_class_from_generic() to create the `ginst->klass'.
14941
14942 2004-02-08  Martin Baulig  <martin@ximian.com>
14943
14944         * class.h (MonoClass): Changed type of `generic_inst' from
14945         `MonoType *' to `MonoGenericInst *'.
14946
14947 2004-02-08  Martin Baulig  <martin@ximian.com>
14948
14949         * icall.c (ves_icall_Type_BindGenericParameters): Just call
14950         mono_type_get_object(), this is now creating a `MonoGenericInst'
14951         for MONO_TYPE_GENERICINST.
14952         (ves_icall_MonoGenericInst_GetParentType): Likewise.
14953         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
14954
14955         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
14956         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
14957         (inflated_method_get_object): Added `MonoClass *refclass' argument.
14958         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
14959         and reflected type.
14960
14961         * reflection.h (MonoReflectionInflatedMethod): Removed
14962         `declaring_type' and `reflected_type'.
14963
14964 2004-02-08  Martin Baulig  <martin@ximian.com>
14965
14966         * class.h (MonoGenericInst): Added `MonoType *parent' and
14967         `MonoType **ifaces'.
14968
14969         * reflection.h (MonoReflectionGenericInst): Removed `klass',
14970         `parent' and `interfaces'.
14971
14972         * reflection.c (mono_reflection_bind_generic_parameters): Take a
14973         `MonoType *' argument and return a `MonoType *'.
14974
14975         * icall.c
14976         (ves_icall_MonoGenericInst_GetParentType): New interncall.
14977         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
14978
14979 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
14980
14981         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
14982         valuetype marshalling.
14983
14984 2004-02-06  Martin Baulig  <martin@ximian.com>
14985
14986         * class.c
14987         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
14988         (my_mono_class_from_generic_parameter): Likewise.
14989
14990 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
14991
14992         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
14993         contents of the symbol files lazily.
14994
14995         * object.h (MonoThread): Add 'name' and 'name_len' fields.
14996
14997         * threads.h threads.c icall.c: New icalls for getting and setting the
14998         threads name.
14999
15000 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
15001
15002         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
15003         Raise an exception when the domain is not found.
15004
15005 2004-02-03  Martin Baulig  <martin@ximian.com>
15006
15007         * reflection.c (mono_image_get_methodspec_token): Use the
15008         uninflated signature; fixes gen-33.
15009
15010 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
15011
15012         * gc.c threads.c: Make the finalizer thread a normal managed thread so
15013         the finalizer code can use thread functionality.
15014
15015         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
15016         the finalizer thread.
15017
15018         * threads.c: Make some functions more robust.
15019
15020         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
15021
15022         * metadata.h: Add new marshalling conventions.
15023
15024         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
15025         stringbuilder marshalling. Fixes #53700.
15026
15027         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
15028
15029         * reflection.c (mono_image_get_type_info): Save declarative security
15030         info.
15031
15032         * reflection.c (mono_image_get_field_info): Handle uninitialized 
15033         unmanaged fields as well.
15034
15035         * appdomain.c: Bump corlib version.
15036
15037 2004-02-01  Martin Baulig  <martin@ximian.com>
15038
15039         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
15040         method type arguments.  
15041
15042 2004-01-30  Duncan Mak  <duncan@ximian.com>
15043
15044         * marshal.h: Add prototype for
15045         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
15046         and
15047         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
15048         fix the build.
15049
15050 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
15051
15052         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
15053         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
15054
15055 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
15056
15057         * marshal.c (mono_marshal_get_native_wrapper): Add support for
15058         custom marshalling of valuetypes.
15059
15060         * marshal.c: Fix some warnings.
15061
15062 2004-01-29  Martin Baulig  <martin@ximian.com>
15063
15064         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
15065         for generic method parameters.
15066
15067         * reflection.c (method_encode_methodspec): Write the uninflated
15068         signature into the methodspec table.
15069         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
15070         is always the uninflated method.
15071         (reflection_methodbuilder_to_mono_method): Copy the generic
15072         parameters from the MethodBuilder into `header->gen_params'.
15073
15074 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
15075
15076         * class.c (mono_class_from_generic_parameter): Fix warning.
15077
15078 2004-01-27  Martin Baulig  <martin@ximian.com>
15079
15080         * class.c (mono_class_from_generic_parameter): Don't create
15081         `klass->methods' here.  
15082
15083 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
15084
15085         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
15086         extension since it does not work with libraries named lib<FOO>.dll.so.
15087
15088 2004-01-25  Martin Baulig  <martin@ximian.com>
15089
15090         * class.c (mono_class_inflate_generic_type): Added support for
15091         MONO_TYPE_GENERICINST.
15092
15093         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
15094         inflate methods on open constructed types.      
15095
15096 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15097
15098         * object.c: fire ProcessExit event in the root AppDomain after running
15099         Main. Fixes bug #53299.
15100
15101 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
15102
15103         * socket-io.c: include the new socket-wrappers.h header.
15104         Use the wrappers instead of the unix socket functions to make the code
15105         more clear.
15106
15107 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
15108
15109         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
15110
15111         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
15112         Fixes #22532.
15113
15114 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
15115
15116         * reflection.c (mono_image_create_pefile): Handle the case when the
15117         entry point is not a MethodBuilder.
15118
15119         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
15120         field to ReflectionMethod since it is not allways a builder.
15121
15122         * reflection.c (type_get_fully_qualified_name): New helper function to
15123         return the fully qualified name of a type.
15124
15125         * reflection.c (encode_marshal_blob): Always emit the fully qualified
15126         type name for custom marshallers.
15127
15128         * reflection.c (mono_marshal_spec_from_builder): Ditto.
15129
15130         * class.c (mono_class_setup_vtable): If a parent class already 
15131         implements an interface, use the implementing methods from that class.
15132         Fixes #53148.
15133
15134 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15135
15136         * threadpool.c: just return instead of ExitThread to allow for thread
15137         clean up earlier.
15138
15139 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
15140
15141         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
15142         when closing resource modules.
15143
15144         * reflection.c (mono_image_create_pefile): Handle the case when the
15145         entry point is not a MethodBuilder.
15146
15147         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
15148         field to ReflectionMethod since it is not allways a builder.
15149
15150 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
15151
15152         * marshal.c (mono_marshal_get_managed_wrapper): 
15153         mono_marshal_alloc takes native int so CONV_I
15154         the arg for 64bits.
15155
15156 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
15157
15158         * reflection.c (fixup_cattrs): New function to fixup the methoddef
15159         tokens in the cattr table. Fixes #53108.
15160
15161 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15162
15163         * loader.c: don't trim ".dll" before looking up in the config file.
15164         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
15165
15166 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
15167
15168         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
15169         Return the module which contains the resource as well.
15170         (ves_icall_System_Reflection_Module_Close): New icall.
15171
15172         * appdomain.c: Bump corlib version number.
15173
15174         * image.c (mono_image_addref): New public function.
15175
15176         * assembly.c: Call mono_image_addref.
15177
15178         * reflection.c (mono_module_get_object): Increase reference count of 
15179         the image.
15180
15181         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
15182         Fixes #22532.
15183
15184         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
15185         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
15186         proper exceptions on DllImport problems.
15187
15188 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
15189
15190         * class.c, metadata.c: eliminate CSIZE macro.
15191
15192 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
15193
15194         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
15195         * object.h: Added async_callback field in MonoAsyncResult.
15196         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
15197         * verify.c: Added async_callback in MonoAsyncResult layout.
15198
15199 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
15200
15201         * reflection.c (mono_reflection_get_custom_attrs): Add support
15202         for Modules.
15203
15204 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
15205
15206         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
15207         marshalling.
15208         (mono_marshal_method_from_wrapper): Add null pointer check.
15209
15210 2004-01-16  Martin Baulig  <martin@ximian.com>
15211
15212         * debug-mono-symfile.h: Set version number to 36 and reflect
15213         latest symbol writer changes.
15214
15215 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
15216
15217         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
15218         multi-dimensional arrays.
15219         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
15220         (mono_class_from_mono_type): Use bounded_array_class_get.
15221         
15222         * class.c (mono_bounded_array_class_get): New function which takes
15223         a 'bounded' bool argument to distinguish vectors from one dimensional
15224         arrays.
15225
15226         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
15227         bounded_array_class_get if the array has bounds.
15228
15229         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
15230         Search modules loaded using AssemblyBuilder:AddModule as well.
15231
15232 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15233
15234         * appdomain.c: increased corlib version.
15235         * filewatcher.c: removed g_print.
15236         * icall.c:
15237         (get_property_info): only allocate what is actually requested.
15238         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
15239
15240 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15241
15242         * Makefile.am: added filewatcher.[ch]
15243         * filewatcher.[ch]: FileSystemWatcher runtime support.
15244         * icall.c: added new FSW icalls.
15245
15246 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
15247
15248         * string-icalls.c: fix stringbuilder regression as suggested by
15249         Iain McCoy <iain@mccoy.id.au>.
15250
15251 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
15252
15253         * process.c (process_read_stringtable_block): Recognize '007f' as
15254         a language neutral stringtable block.
15255
15256 2004-01-12  Patrik Torstensson
15257
15258         * object.h (MonoStringBuilder) : Changed layout to support our
15259         new stringbuilder class.
15260         * marshal.c: Change marshalling to support the new layout of 
15261         string builder.
15262         * appdomain.c: increased version number because new layout of
15263         string builder.
15264
15265 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
15266
15267         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
15268         assembly name as an string instead of an AssemblyName, since it is
15269         easier to extract info from it.
15270
15271         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
15272         the culture subdirectories too. Fixes #52231.
15273
15274 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15275
15276         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
15277         It takes 2 new parameters with an optional name for the method to look
15278         for and case ignoring info.
15279
15280         * threadpool.c: removed unused variable.
15281
15282 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15283
15284         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
15285         It takes 2 new parameters with an optional name for the property to look
15286         for and case ignoring info.
15287         Fixes bug #52753.
15288
15289 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
15290
15291         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
15292         Fix #52451.
15293
15294 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15295
15296         * appdomain.c:
15297         * assembly.c: escape the uri before passing it to g_filename_from_uri.
15298         Fixes bug #52630.
15299
15300 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
15301
15302         * reflection.c: Add support for more than one unmanaged resource.
15303
15304         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
15305         in field->def_value, as done in all other cases.
15306
15307         * reflection.c (mono_reflection_get_custom_attrs): Add support for
15308         TypeBuilders.
15309
15310         * reflection.c (mono_reflection_create_runtime_class): Remove 
15311         errorneous assignment to klass->element_class, since it is already
15312         done in mono_reflection_setup_internal_class.
15313
15314 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15315
15316         * gc.c: added missing LeaveCriticalSection.
15317         * icall.c: indented a couple of lines.
15318         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
15319         if we call EndInvoke inside a callback. Fixes bug #52601.
15320
15321 2004-01-07  Martin Baulig  <martin@ximian.com>
15322
15323         * mono-debug-debugger.h
15324         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
15325
15326 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
15327
15328         * appdomain.c: Use messages in NotImplementedException.
15329
15330         * exception.c (mono_get_exception_not_implemented): Now this takes
15331         a message argument.
15332
15333         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
15334         exception instead of g_asserting an aborting when something is not
15335         implemented.
15336
15337         Add some inline docs.
15338
15339 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
15340
15341         * reflection.h: Update after changes to object layout.
15342
15343         * reflection.c: Implement saving of unmanaged aka win32 resources.
15344
15345         * appdomain.c: Bump version number.
15346
15347         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
15348         Handle missing domains gracefully.
15349
15350 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
15351
15352         * file-io.c : On Windows, there are much more invalid_path_chars.
15353
15354 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
15355
15356         * class.h, object.c: prepare for GetType () speedup.
15357
15358 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
15359
15360         * profiler.c: workaround for --profile null reference exception on
15361           cygwin. Patch by Patrik Torstensson.
15362
15363 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
15364
15365         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
15366         make work for unaligned access.
15367
15368 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
15369
15370         * class.c: small cleanup (class->fields [i] -> field).
15371         * image.c: check address of metadata is valid.
15372
15373 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
15374
15375         * assembly.h assembly.c (mono_assembly_loaded): New public function to
15376         search the list of loaded assemblies.
15377
15378         * reflection.c (mono_reflection_type_from_name): Use 
15379         mono_assembly_loaded instead of mono_image_loaded.
15380
15381         * reflection.c: Fix warnings.
15382
15383 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
15384
15385         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
15386         is dynamic. This is needed since an assembly can contain both dynamic and
15387         non-dynamic images.
15388
15389         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
15390         assembly->dynamic.
15391
15392         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
15393
15394         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
15395         to store modules loaded using AddModule.
15396
15397         * reflection.c (mono_image_fill_file_table): Generalize this so it works
15398         on Modules.
15399
15400         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
15401
15402         * reflection.c (mono_image_fill_export_table_from_module): New function to
15403         fill out the EXPORTEDTYPES table from a module.
15404
15405         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
15406         into a separate function. Also handle loaded non-dynamic modules.
15407
15408         * reflection.c (mono_image_basic_init): Fix memory allocation.
15409
15410         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
15411
15412         * assembly.c (mono_assembly_load_references): Make this public.
15413
15414 2003-12-19  Martin Baulig  <martin@ximian.com>
15415
15416         * class.c (mono_class_initialize_generic): Made this static, take
15417         a `MonoGenericInst *' instead of a `MonoClass *'.
15418         (mono_class_from_generic): Call mono_class_initialize_generic()
15419         unless we're already initialized or being called from
15420         do_mono_metadata_parse_generic_inst().
15421
15422         * class.h (MonoGenericInst): Added `initialized' and
15423         `init_pending' flags.
15424
15425         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
15426         `mono_class_init (gklass)' or mono_class_initialize_generic()
15427         here; set `generic_inst->init_pending' while parsing the
15428         `type_argv'.
15429
15430 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
15431
15432         * locales.c: include string.h for memxxx prototypes
15433
15434 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
15435
15436         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
15437         constructor when accessing literal fields.
15438
15439 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
15440
15441         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
15442
15443         * reflection.c (assembly_add_resource_manifest): New function to fill
15444         the MANIFESTRESOURCE table.
15445
15446         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
15447
15448         * reflection.h: Update to changes in class layout.
15449
15450         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
15451         Reenable call to mono_runtime_is_shutting_down ().
15452
15453         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
15454         determine if the runtime is shutting down.
15455
15456 2003-12-16  Jackson Harper <jackson@ximian.com>
15457
15458         * icall.c: comment out call to mono_runtime_is_shutting_down to
15459         fix build.
15460         
15461 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
15462
15463         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
15464         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
15465
15466 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
15467
15468         * reflection.c: move definition of swap_with_size
15469         to before its first call
15470
15471 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
15472
15473         * appdomain.c (mono_runtime_is_shutting_down): New public function.
15474
15475         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
15476         icall.
15477
15478         * object.c: Fix warnings.
15479
15480         * icall.c (ves_icall_Type_Get...): Only consider inherited static
15481         members if FlattenHierarchy is set.
15482
15483         * reflection.c (mono_image_add_decl_security): New function to emit
15484         declarative security.
15485
15486         * reflection.h reflection.c: Add support for declarative security.
15487
15488         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
15489         
15490 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
15491
15492         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
15493         
15494         * appdomain.c verify.c: Moved corlib version checking into its own
15495         function in appdomain.c since it needs to create vtables etc.
15496
15497 2003-12-13  Patrik Torstensson <p@rxc.se>
15498
15499         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
15500         instead of unwrapped server.
15501
15502 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
15503
15504         * verify.c (check_corlib): Fix field index.
15505
15506 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
15507
15508         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
15509         GetGacPath icall.
15510
15511 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
15512
15513         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
15514         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
15515         cope with sizeof(size_t) != sizeof(guint32).
15516
15517 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15518
15519         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
15520         in case of failure.
15521
15522 2003-12-10  Mark Crichton <crichton@gimp.org>
15523
15524         * icall.c: removed the GetNonZeroBytes.  We now handle this case
15525         in managed code.
15526
15527         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
15528
15529 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
15530
15531         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
15532         marked as deleted.
15533
15534 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
15535
15536         * verify.c (check_corlib): Handle the case when the version field is 
15537         initialized by a static constructor.
15538
15539 2003-12-08  Patrik Torstensson  <p@rxc.se>
15540
15541     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
15542
15543 2003-12-08  Martin Baulig  <martin@ximian.com>
15544
15545         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
15546         a MonoReflectionGenericParameter, also take the parameter index
15547         and name as arguments.
15548         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
15549         (ves_icall_MonoGenericParam_initialize): New interncall.
15550         (ves_icall_Type_make_byref_type): New interncall.
15551
15552         * reflection.h (MonoReflectionGenericParam): Derive from
15553         MonoReflectionType, not just from MonoObject.  Added `refobj' and
15554         `index' fields.
15555
15556         * reflection.c (mono_reflection_define_generic_parameter): Create
15557         and return a new MonoReflectionGenericParam; don't initialize the
15558         constraints here.
15559         (mono_reflection_initialize_generic_parameter): New public method;
15560         initializes the constraints and creates the `param->pklass'.
15561
15562 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
15563
15564         * reflection.h reflection.c: Use the new fields 'num_types', 
15565         'num_fields' and 'num_methods' to track the number of types etc.
15566
15567         * verify.c (check_corlib): Check corlib version number.
15568
15569 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
15570
15571         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
15572         function works on all methods.
15573
15574 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
15575
15576         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
15577         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
15578         the custom_type_info flag of the transparent proxy.
15579         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
15580         objects that supports IRemotingTypeInfo.
15581         * object.h: Added custom_type_info field in transparent proxy.
15582
15583 2003-12-06  Martin Baulig  <martin@ximian.com>
15584
15585         * class.c (mono_class_create_from_generic): Removed.
15586         (mono_class_from_generic): Check `ginst->klass' before doing
15587         anything else.  This is important to fully support "recursive"
15588         generic types.
15589
15590         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
15591         empty `generic_inst->klass' before doing anything else.
15592
15593 2003-12-06  Dick Porter  <dick@ximian.com>
15594
15595         * verify.c: 
15596         * object.h:
15597         * icall.c:
15598         * locales.c: Use C structs to access class fields.  Don't do a
15599         conversion between MonoString and UChar because both are
15600         platform-endian UTF-16.  Compare now takes startindex and count
15601         parameters.  Add a char overload for IndexOf.  Speed up the
15602         invariant string IndexOf.
15603
15604 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
15605
15606         * Makefile.am (monosn_LDADD): Fix parallel build.
15607
15608 2003-12-04  Martin Baulig  <martin@ximian.com>
15609
15610         * icall.c
15611         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
15612         (ves_icall_Type_make_array_type): New interncall.       
15613
15614 2003-12-04  Martin Baulig  <martin@ximian.com>
15615
15616         * locales.c: also change it in the !HAVE_ICU case.
15617
15618 2003-12-04  Dick Porter  <dick@ximian.com>
15619
15620         * icall.c:
15621         * locales.c: construct_compareinfo is now in CompareInfo, not
15622         CultureInfo.
15623
15624 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
15625
15626         * image.c (mono_image_load_file_for_image): Cache loaded images in the
15627         image->files array.
15628
15629         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
15630         table as well.
15631
15632         * assembly.c (mono_assembly_load_references): Only load references
15633         once.
15634
15635         * class.c (mono_class_from_name): Avoid linear search of the 
15636         EXPORTEDTYPE table.
15637
15638         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
15639
15640 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
15641
15642         * image.h (MonoImage): Add 'field_cache' field.
15643
15644         * loader.c (mono_field_from_token): Cache field lookups.
15645         
15646         * reflection.c (mono_module_get_object): Fix name property.
15647
15648         * icall.c (ves_icall_get_enum_info): Update after changes to 
15649         mono_metadata_get_constant_index ().
15650
15651         * icall.c: Get rid of get_type_info icall, use a separate icall for
15652         each type property to avoid needless memory allocations. Fixes #51514.
15653
15654         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
15655         to avoid needless binary searches.
15656
15657         * class.c (class_compute_field_layout): Move the initialization of
15658         field->def_value to mono_class_vtable ().
15659
15660         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
15661         non-corlib types.
15662
15663         * object.c (mono_object_allocate): Make it inline.
15664
15665         * object.c (mono_object_allocate_spec): Make it inline.
15666         
15667 2003-12-02  Dick Porter  <dick@ximian.com>
15668
15669         * locales.c (create_NumberFormat): NumberFormatInfo construction.
15670         Patch by Mohammad DAMT (mdamt@cdl2000.com).
15671
15672 2003-12-01  Dick Porter  <dick@ximian.com>
15673
15674         * threads.c: Fix signature and call in CreateMutex and
15675         CreateEvent.
15676
15677 2003-12-01  Dick Porter  <dick@ximian.com>
15678
15679         * icall.c: 
15680         * locales.c: Implement string compares and searching
15681
15682         * object.h: Add extra Thread field
15683
15684 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
15685
15686         * reflection.c (fixup_method): Add support for MonoCMethod.
15687
15688 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
15689
15690         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
15691
15692         * reflection.c (assembly_name_to_aname): Allow extra characters in
15693         assembly names. Fixes #51468.
15694
15695 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
15696
15697         * exception.c (mono_exception_from_name_domain): New helper function.
15698
15699         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
15700         exception object in the correct domain.
15701
15702         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
15703         formatting + make a copy a the input data.
15704
15705         * loader.c (mono_get_method_from_token): Methods which contain
15706         native code do not have entries in the ImplMap.
15707
15708         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
15709         Thanks to Gonzalo for spotting this.
15710         
15711         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
15712         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
15713
15714         * assembly.h (mono_assembly_load_from): Split the second part of 
15715         assembly loading into a new public function.
15716
15717         * exception.h (mono_get_exception_bad_image_format): New function.
15718
15719 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
15720
15721         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
15722         Enumerate all modules inside a dynamic assembly. Fixes #51293.
15723         
15724         * icall.c: Add new icall for creating dynamic methods.
15725
15726         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
15727
15728         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
15729
15730         * reflection.c (mono_reflection_create_dynamic_method): New icall to
15731         create a dynamic method.
15732
15733         * reflection.c (resolve_object): New helper function.
15734
15735         * reflection.c: Generalize ReflectionMethodBuilder and the functions
15736         which manipulate it so they can also work on dynamic methods.
15737
15738         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
15739         creating the MonoReflectionMethodAux structure if it is not needed.
15740         
15741         * reflection.h verify.c: Update after changes to object layout.
15742
15743         * reflection.c (method_builder_encode_signature): Fix compilation on
15744         gcc 2.95.x.
15745
15746 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
15747
15748         * appdomain.h: Added support for context static fields. Added static_data
15749           field to MonoAppContext and renamed thread_static_fields to a more
15750           generic special_static_fields in MonoAppDomain, since it can now contain
15751           context static fields.
15752         * domain.c: Updated hashtable name.
15753         * object.c: Replaced field_is_thread_static() for a more generic
15754           field_is_special_static() which also checks for context static attribute.
15755           In mono_class_vtable(), added support for static context fields.
15756         * threads.c: Changed methods that manage thread static fields to more
15757           generic methods so they can be reused both for thread and context static
15758           data.
15759         * threads.h: Declared some new methods.
15760
15761 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
15762
15763         * reflection.h: Update after changes to the managed types.
15764
15765         * reflection.c (encode_custom_modifiers): New helper function.
15766
15767         * reflection.c (method_encode_signature): Emit custom modifiers.
15768
15769         * reflection.c (field_encode_signature): Emit custom modifiers.
15770
15771 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
15772
15773         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
15774
15775         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
15776         implementation.
15777
15778         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
15779         icall.
15780
15781         * object.c (mono_field_get_value_object): New function.
15782
15783         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
15784         specific.
15785
15786 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
15787
15788         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
15789         return a preallocated out-of-memory exception instance.
15790
15791         * object.c (out_of_memory): Use the new function.
15792
15793         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
15794         flag is before the custom modifiers. Fixes #49802.
15795
15796 2003-11-16  Martin Baulig  <martin@ximian.com>
15797
15798         * class.c (mono_class_is_open_constructed_type): Implemented the
15799         MONO_TYPE_GENERICINST case.
15800
15801 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
15802
15803         * assembly.c (mono_assembly_fill_assembly_name): New function to
15804         fill out the MonoAssemblyName structure.
15805         (mono_assembly_open): Use the new function.
15806
15807         * icall.c (fill_reflection_assembly_name): New helper function.
15808
15809         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
15810         new function.
15811
15812         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
15813
15814 2003-11-15  Martin Baulig  <martin@ximian.com>
15815
15816         * class.c (mono_class_is_open_constructed_type): New public
15817         function; checks whether a type is an open constructed type,
15818         ie. whether it still contains type parameters.
15819         (mono_class_inflate_generic_type): If we're a type parameter and
15820         the inflated type is also a MONO_TYPE_(M)VAR, return the original
15821         type.
15822
15823         * class.h (MonoGenericInst): Added `guint32 is_open'.
15824
15825         * loader.c (method_from_methodspec): Check whether we're an open
15826         or closed constructed type and set `ginst->is_open'.
15827
15828         * reflection.c (mono_reflection_bind_generic_parameters): Check
15829         whether we're an open or closed constructed type and set
15830         `ginst->is_open'.
15831         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
15832         from open constructed types.
15833
15834 2003-11-15  Martin Baulig  <martin@ximian.com>
15835
15836         * reflection.c (mono_reflection_bind_generic_parameters): If we're
15837         a generic instance (instead of a generic type declaration) with
15838         unbound generic parameters, bind them to our actual types.
15839
15840 2003-11-14  Martin Baulig  <martin@ximian.com>
15841
15842         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
15843
15844         * reflection.c (mono_reflection_bind_generic_parameters): If we're
15845         an interface type, populate `res->interfaces' with instantiated
15846         versions of all the interfaces we inherit.
15847
15848 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
15849
15850         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
15851         when MONO_PATH is set but doesn't contain the install dir.
15852
15853 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15854
15855         * icall.c:
15856         (ves_icall_Type_GetInterfaces): don't return an interface twice when
15857         it's also implemented in base classes. Fixes bug #50927.
15858
15859 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
15860
15861         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
15862         if this method is called from a finalizer. Fixes #50913.
15863
15864 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
15865
15866         * threads.c: Implement VolatileRead/VolatileWrite
15867
15868         * icall.c: Add new icalls for VolatileRead/VolatileWrite
15869
15870 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15871
15872         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
15873         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
15874         2.95.3.
15875
15876         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
15877         from Peter Ross (pro@missioncriticalit.com).
15878         
15879 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
15880
15881         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
15882
15883 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15884
15885         * assembly.c (mono_assembly_load_references): Disable check because it
15886         triggers on older corlibs which lots of people have.
15887
15888 2003-11-12  Jackson Harper  <jackson@ximian.com>
15889
15890         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
15891         load corlib.dll if mscorlib.dll is not found.
15892         * assembly.h: Remove corlib name define.
15893         * class.c:
15894         * domain.c:
15895         * image.c: Change corlib name to mscorlib.
15896         
15897 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15898
15899         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
15900
15901 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
15902
15903         * appdomain.h: Added loader_optimization here to sync with the C#
15904         code, and add disallow_binding_redirects field.
15905
15906 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
15907
15908         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
15909
15910         * reflection.c (mono_image_build_metadata): Fix crash on modules
15911         with no types.
15912
15913         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
15914
15915         * icall.c (ves_icall_get_method_info): Return callingConvention as
15916         well.
15917
15918         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
15919         namespaces from the EXPORTEDTYPE table as well.
15920
15921         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
15922         from all modules inside the assembly.
15923         
15924 2003-11-11  Martin Baulig  <martin@ximian.com>
15925
15926         * reflection.c (mono_reflection_bind_generic_parameters): Make
15927         this work for interfaces.
15928
15929 2003-11-11  Martin Baulig  <martin@ximian.com>
15930
15931         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
15932
15933 2003-11-11  Martin Baulig  <martin@ximian.com>
15934
15935         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
15936         "MonoInflatedMethod" and "MonoInflatedCtor".
15937
15938 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
15939
15940         * reflection.c (resolution_scope_from_image): Use the assembly table
15941         from the manifest module, since other modules don't have it.
15942
15943         * debug-helpers.c (mono_type_full_name): New helper function.
15944
15945         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
15946
15947         * image.c (mono_image_load_file_for_image): New public function which
15948         is a replacement for the load_file_for_image in class.c.
15949
15950         * assembly.c (mono_assembly_load_module): A wrapper for the function
15951         above which does assembly association and reference loading too.
15952
15953         * class.c (mono_class_from_name): Call mono_assembly_load_module.
15954
15955 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15956
15957         * appdomain.c: not all of the attributes for the full assembly name
15958         are required and the order doesn't matter. Fixes bug #50787.
15959
15960 2003-11-10  Dick Porter  <dick@ximian.com>
15961
15962         * locales.c: Use platform-endian UTF16
15963
15964 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
15965
15966         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
15967         
15968 2003-11-10  Martin Baulig  <martin@ximian.com>
15969
15970         * metadata.c
15971         (mono_metadata_load_generic_params): Make this actually work.
15972
15973         * reflection.c (mono_reflection_bind_generic_parameters): If our
15974         parent is a generic instance, pass all the `types' to it, no
15975         matter whether it has the same number of type parameters or not.
15976
15977 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
15978
15979         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
15980
15981         * assembly.c (mono_assembly_load_references): Move the image<->assembly
15982         assignment code to this function so it gets called recursively for all
15983         modules.
15984
15985         * image.c (load_modules): Remove the assembly assignment since it is
15986         now done by mono_assembly_load_references.
15987         
15988         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
15989         Add 'module' argument.
15990         (mono_module_get_types): New helper function.
15991         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
15992
15993 2003-11-08  Martin Baulig  <martin@ximian.com>
15994
15995         * class.c (mono_class_inflate_generic_method): Interface method
15996         don't have a header.
15997
15998         * reflection.c (mono_image_get_methodspec_token): Take an
15999         additional `MonoGenericInst *' argument instead of reading it from
16000         the header; this is necessary to support interfaces.
16001         (mono_image_create_token): Pass the `MonoGenericInst *' from the
16002         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
16003         (inflated_method_get_object): Take an additional `MonoGenericInst *'
16004         argument.
16005
16006         * reflection.h (MonoReflectionInflatedMethod): Added
16007         `MonoGenericInst *ginst'.
16008
16009 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
16010
16011         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
16012
16013 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
16014
16015         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
16016
16017 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
16018
16019         * reflection.c 
16020         (reflection_methodbuilder_from_method_builder):
16021         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
16022         initialize a ReflectionMethodBuilder structure.
16023         (mono_image_get_methodbuilder_token):
16024         (mono_image_get_ctorbuilder_token): New functions to emit memberref
16025         tokens which point to types in another module inside the same assembly.
16026
16027         * reflection.c: Use the new helper functions.
16028         
16029         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
16030
16031         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
16032         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
16033
16034         * reflection.c (resolution_scope_from_image): Emit a moduleref if
16035         neccesary.
16036
16037         * reflection.c (mono_image_build_metadata): Emit metadata only for the
16038         current module. Emit the manifest only for the main module.
16039
16040         * reflection.c (mono_image_create_token): Add assertion when a 
16041         memberref needs to be created.
16042
16043         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
16044
16045         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
16046         larger buffer for the custom attribute blob. Fixes #50637.
16047         
16048 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16049
16050         * threadpool.c: notify listener on async processing handles after
16051         invoking the async callback. Thanks to Zoltan.
16052
16053 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
16054
16055         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
16056         avoid code duplication.
16057
16058         * reflection.h (MonoDynamicImage): New type which is currently unused,
16059         but will be used through the ref.emit code in place of 
16060         MonoDynamicAssembly.
16061
16062         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
16063         object layout.
16064
16065         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
16066         a MonoDynamicImage instead of just a MonoImage.
16067         
16068         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
16069         icalls to ModuleBuilder but keep their semantics, so they will work
16070         with moduleb->assemblyb. This will change later.
16071         
16072 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
16073
16074         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
16075         object layout.
16076
16077         * reflection.c (mono_image_build_metadata): Avoid creation of a default
16078         main module, since it is now done by the managed code.
16079
16080 2003-11-03  Martin Baulig  <martin@ximian.com>
16081
16082         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
16083         `ginst->klass' here.
16084         (method_encode_methodspec): Don't use the `ginst->generic_method's
16085         klass if it's a generic instance, use `ginst->klass' in this case.
16086
16087 2003-11-03  Martin Baulig  <martin@ximian.com>
16088
16089         * reflection.c (mono_image_get_generic_method_param_info):
16090         Removed, use mono_image_get_generic_param_info() instead.
16091         (mono_image_get_type_info): Write the GenericParam table before
16092         the Method table.  This is neccessary because in the GenericParam
16093         table, type parameters of the class (ie. '!0' etc.) must come
16094         before the ones from its generic methods (ie. '!!0' etc).
16095
16096 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
16097
16098         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
16099
16100 2003-11-02  Martin Baulig  <martin@ximian.com>
16101
16102         * reflection.c (create_generic_typespec): Take a
16103         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
16104         the generic parameters from it.
16105
16106 2003-11-02  Martin Baulig  <martin@ximian.com>
16107
16108         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
16109         instead of a `MonoClassField *' since we just need the type.
16110         (create_generic_typespec): New static function.  Creates a
16111         TypeSpec token for a generic type declaration.
16112         (mono_image_get_generic_field_token): New static function.
16113         (mono_image_create_token): If we're a FieldBuilder in a generic
16114         type declaration, call mono_image_get_generic_field_token() to get
16115         the token.
16116
16117 2003-11-02  Martin Baulig  <martin@ximian.com>
16118
16119         * reflection.h
16120         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
16121         `MonoReflectionGenericInst *declaring_type' and
16122         `MonoReflectionGenericInst *reflected_type' fields.
16123
16124         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
16125         `MonoReflectionGenericInst *declaring_type' and a
16126         `MonoReflectionGenericInst *reflected_type' argument instead of a
16127         single `MonoReflectionGenericInst *type' one.  Set
16128         `res->declaring_type' and `res->reflected_type' from them.
16129         (mono_reflection_inflate_field): Likewise.      
16130
16131 2003-11-02  Martin Baulig  <martin@ximian.com>
16132
16133         * class.c (mono_class_setup_vtable): Don't store generic methods
16134         in the vtable.  
16135
16136 2003-11-02  Martin Baulig  <martin@ximian.com>
16137
16138         * reflection.h (MonoReflectionGenericInst): Added
16139         `MonoReflectionType *declaring_type'.
16140
16141         * reflection.c (mono_reflection_bind_generic_parameters): Use
16142         `if (tb->parent)' instead of `klass->parent'.
16143
16144 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
16145
16146         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
16147         with an empty ASSEMBLY table.
16148
16149         * reflection.c (mono_image_build_metadata): Avoid using the same loop
16150         variable in the inner and outer loops.
16151
16152 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
16153
16154         * metadata.h (mono_metadata_make_token): Put parentheses around macro
16155         argument.
16156
16157         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
16158         
16159         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
16160         icalls. Instead, do everything in managed code. This is needed since
16161         it is hard to restore the original domain etc. in unmanaged code in the
16162         presence of undeniable exceptions.
16163
16164         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
16165         New icalls to push and pop appdomain refs.
16166
16167 2003-10-31  Martin Baulig  <martin@ximian.com>
16168
16169         * class.c (inflate_generic_type): Renamed to
16170         mono_class_inflate_generic_type() and made it public.
16171
16172         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
16173         New interncall.
16174
16175         * loader.c (mono_field_from_memberref): Also set the retklass for
16176         typespecs.
16177
16178         * fielder.c (mono_image_get_inflated_field_token): New static
16179         method; creates a metadata token for an inflated field.
16180         (mono_image_create_token, fixup_method): Added support for
16181         "MonoInflatedField".
16182         (fieldbuilder_to_mono_class_field): New static function.
16183         (mono_reflection_inflate_field): New public function.
16184
16185         * reflection.h
16186         (MonoReflectionGenericInst): Added `MonoArray *fields'.
16187         (MonoReflectionInflatedField): New typedef.     
16188
16189 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
16190
16191         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
16192         for Solaris and other platforms without s6_addr16
16193
16194 2003-10-30  Martin Baulig  <martin@ximian.com>
16195
16196         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
16197         argument instead of two.
16198         (mono_class_inflate_generic_signature): Likewise.
16199         (inflate_generic_header): Likewise.
16200         (mono_class_inflate_generic_method): Likewise.  In addition, if
16201         `ginst->klass' is set, it becomes the new `method->klass'.
16202
16203         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
16204         field.
16205
16206         * reflection.c (encode_generic_method_sig): Write a 0xa as the
16207         first byte. [FIXME]
16208         (method_encode_methodspec): If we have generic parameters, create
16209         a MethodSpec instead of a MethodRef.
16210         (fixup_method): Added support for "MonoInflatedMethod" and
16211         "MonoInflatedCtor".
16212         (mono_image_create_token): Added support for "MonoInflatedMethod"
16213         and "MonoInflatedCtor".
16214         (inflated_method_get_object): New static function; returns a
16215         managed "System.Reflection.MonoInflatedMethod" object.
16216         (mono_reflection_bind_generic_method_parameters): Return a
16217         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
16218         (mono_reflection_inflate_method_or_ctor): Likewise.
16219         (mono_image_get_generic_method_param_info): Initialize unused
16220         fields to zero.
16221         (mono_image_get_generic_param_info): Likewise.
16222
16223         * reflection.h (MonoReflectionInflatedMethod): New public
16224         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
16225         "S.R.MonoInflatedCtor" classes.
16226
16227         * loader.c (method_from_memberref): If we're a TypeSpec and it
16228         resolves to a generic instance, inflate the method.
16229
16230 2003-10-28  Dick Porter  <dick@ximian.com>
16231
16232         * object.c (mono_runtime_run_main): Convert command-line arguments
16233         into utf8, falling back to the user's locale encoding to do so.
16234
16235 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
16236
16237         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
16238         at this time.
16239
16240         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
16241
16242         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
16243         up icalls at method definition time. Partially fixes #33569.
16244
16245 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
16246
16247         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
16248         marshalling of arrays. Fixes #50116.
16249
16250         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
16251
16252         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
16253         points to a vtable in the dying appdomain.
16254
16255         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
16256         listeners into unmanaged code inside the lock.
16257
16258         * object.c (mono_class_vtable): Turn off typed allocation in non-root
16259         domains and add some comments.
16260
16261 2003-10-25  Martin Baulig  <martin@ximian.com>
16262
16263         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
16264
16265         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
16266
16267         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
16268         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
16269         currently parsing.  Create the generic class and store it in
16270         `generic_inst->klass' before parsing the type arguments.  This is
16271         required to support "recursive" definitions; see mcs/tests/gen-23.cs
16272         for an example.
16273         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
16274         to support recursive typespec entries.
16275
16276         * class.c (mono_class_setup_parent): If our parent is a generic
16277         instance, we may get called before it has its name set.
16278         (mono_class_from_generic): Splitted into
16279         mono_class_create_from_generic() and mono_class_initialize_generic().
16280
16281 2003-10-25  Martin Baulig  <martin@ximian.com>
16282
16283         * icall.c (ves_icall_Type_BindGenericParameters): Return a
16284         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
16285         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
16286         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
16287
16288         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
16289         (create_typespec): Likewise.
16290         (mono_reflection_bind_generic_parameters): Return a
16291         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
16292         (mono_reflection_inflate_method_or_ctor): New public function.
16293
16294         * reflection.h (MonoReflectionGenericInst): New typedef.        
16295
16296 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
16297
16298         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
16299         inside the domain lock. Fixes #49993.
16300         
16301         * object.c (mono_class_vtable): When typed allocation is used, 
16302         allocate vtables in the GC heap instead of in the mempool, since the
16303         vtables contain GC descriptors which are used by the collector even
16304         after the domain owning the mempool is unloaded.
16305
16306         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
16307
16308         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
16309         reflect what it does. Also invalidate mempools instead of freeing
16310         them if a define is set.
16311
16312         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
16313         of the appdomain.
16314         
16315         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
16316         hold the finalizable objects in this domain.
16317
16318         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
16319         appdomain.
16320
16321         * appdomain.c (mono_domain_set): New function to set the current
16322         appdomain, but only if it is not being unloaded.
16323
16324         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
16325         appdomain which is being unloaded.
16326         
16327         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
16328         unloading of the root appdomain.
16329
16330         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
16331         icall to execute a method in another appdomain. Intended as a 
16332         replacement for InternalSetDomain, which can confuse the code 
16333         generation in the JIT.
16334
16335         * appdomain.c (mono_domain_is_unloading): New function to determine
16336         whenever an appdomain is unloading.
16337
16338         * appdomain.c (mono_domain_unload): New function to correctly unload
16339         an appdomain.
16340
16341         * assembly.c (mono_assembly_load_references): Check that an assembly
16342         does not references itself.
16343
16344         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
16345         domain manually, it asks the finalizer thread to do it, then waits for
16346         the result. Also added a timeout.
16347
16348         * icall.c: Register the new icalls.
16349
16350         * threads.h threads.c: Export the mono_gc_stop_world and 
16351         mono_gc_start_world functions.
16352         
16353         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
16354         function to fill out the mempool with 0x2a.
16355
16356 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
16357
16358         * reflection.h (MonoReflectionMethodAux): New structure to store
16359         information which is rarely used, thus is not in the MonoMethod
16360         structure.
16361
16362         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
16363         store the aux info.
16364
16365         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
16366         and marshalling info into the aux structure.
16367
16368         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
16369         from the aux structure.
16370
16371         * loader.c (mono_method_get_param_names): Retrieve the param names from
16372         the aux structure.
16373         
16374 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
16375
16376         * exception.h exception.c: Add AppDomainUnloadedException && fix 
16377         warning.
16378
16379 2003-10-21  Dick Porter  <dick@ximian.com>
16380
16381         * socket-io.c
16382         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
16383         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
16384
16385 2003-10-21  Martin Baulig  <martin@ximian.com>
16386
16387         * reflection.c (mono_reflection_bind_generic_parameters):
16388         `klass->parent' is NULL for interfaces.
16389
16390 2003-10-21  Martin Baulig  <martin@ximian.com>
16391
16392         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
16393
16394 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
16395
16396         * exception.c (mono_exception_from_name_msg): New helper function for
16397         creating exceptions and initializing their message field.
16398
16399         * exception.c: Simplify functions using the new helper.
16400
16401         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
16402         New function.
16403
16404         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
16405         mono_raise_exception, since otherwise gcc doesn't generate the function
16406         epilog for raise_exception, confusing the stack unwinding in the JIT.
16407         Fixes #45043.
16408
16409         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
16410         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
16411         Fixes #49499.
16412
16413 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16414
16415         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
16416         utf8.
16417
16418 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
16419
16420         * icall.c: Removed GetUninitializedObject method because
16421           AllocateUninitializedClassInstance does the same.
16422
16423 2003-10-18  Martin Baulig  <martin@ximian.com>
16424
16425         * class.c (inflate_generic_signature): Renamed to
16426         mono_class_inflate_generic_signature() and made it public.
16427         (my_mono_class_from_generic_parameter): New static function; if we
16428         don't already have the generic parameter's MonoClass, create a
16429         very simple one which is just used internally in the runtime and
16430         not passed back to managed code.
16431
16432         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
16433
16434         * metadata.h (MonoMethodSignature): Moved the
16435         `MonoGenericParam *gen_params' to the MonoMethodHeader.
16436         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
16437
16438         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
16439         ves_icall_MonoMethod_GetGenericArguments(); this is now an
16440         interncall on the MonoMethod class, not on MethodInfo.
16441         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
16442         calling mono_reflection_bind_generic_method_parameters() directly.
16443
16444         * loader.c (mono_method_get_signature): If this is a MethodSpec;
16445         return the already computed `method->signature'.
16446         (method_from_methodspec): New static function to load a method
16447         from a MethodSpec entry.
16448         (mono_get_method_from_token): Call the new method_from_methodspec()
16449         for MethodSpec tokens.  
16450         (mono_get_method_from_token): If we're a generic method, load the
16451         type parameters.
16452
16453         * reflection.c (mono_image_get_memberref_token): Allow
16454         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
16455         table.
16456         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
16457         (mono_image_create_token): First check whether it's a generic
16458         method (so we'd need to create a MethodSpec), then do the other
16459         two alternatives.
16460         (mono_reflection_bind_generic_method_parameters): Return a
16461         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
16462         called directly from the interncall.
16463
16464 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
16465
16466         * reflection.c (load_public_key): Move loading of the public key
16467         into managed code.
16468
16469         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
16470
16471         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
16472         fields.
16473
16474         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
16475         culture, hash_alg and public_key. Fixes #49555.
16476
16477 2003-10-17  Martin Baulig  <martin@ximian.com>
16478
16479         * class.h (MonoGenericInst): Moved this declaration here and added
16480         `MonoMethod *generic_method'.
16481
16482         * icall.c
16483         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
16484         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
16485
16486         * metadata.c (mono_metadata_type_equal): Two types of
16487         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
16488         index; ie. don't compare the address of the `MonoGenericParam'
16489         structure.
16490         (mono_metadata_load_generic_params): Removed the `MonoMethod
16491         *method' argument.
16492
16493         * metadata.h (MonoGenericInst): Moved declaration to class.h.
16494         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
16495
16496         * reflection.c (method_encode_signature): Encode the number of
16497         generic parameters.
16498         (encode_generic_method_sig): New static function.
16499         (method_encode_methodspec): New static function; creates an entry
16500         in the MethodSpec table for a generic method.
16501         (mono_image_get_methodspec_token): New static function.
16502         (mono_image_create_token): Call mono_image_get_methodspec_token()
16503         for generic methods.
16504         (mono_reflection_bind_generic_method_parameters): New public
16505         function.  Instantiates a generic method.
16506
16507 2003-10-16  Martin Baulig  <martin@ximian.com>
16508
16509         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
16510         *gen_params' here from MonoMethodHeader.
16511
16512         * metadata.c (mono_metadata_parse_method_signature): If we have
16513         generic parameters, initialize `method->gen_params' and then set
16514         the correct `type->data.generic_param' in all the parameters.
16515
16516 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
16517
16518         * threads.c (mono_threads_get_default_stacksize): New function to 
16519         return the default stacksize.
16520
16521         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
16522         termination of the finalizer thread, since the previous method had
16523         race conditions. Fixes #49628.
16524
16525         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
16526         as for the other managed threads.
16527
16528 2003-10-16  Martin Baulig  <martin@ximian.com>
16529
16530         * class.c (inflate_generic_signature): Copy `generic_param_count'
16531         and `gen_params'.
16532
16533         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
16534         New interncall.
16535
16536         * metadata.c (mono_metadata_parse_method_signature): Actually set
16537         the `method->generic_param_count' here.
16538         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
16539
16540 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
16541
16542         * object.h: Add a new field to TypedRef to simplify the implementation
16543         of the REFANY opcodes in the JIT.
16544
16545         * icall.c: Make use of the new field.
16546
16547         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
16548         dynamically.
16549
16550 2003-10-15  Martin Baulig  <martin@ximian.com>
16551
16552         * class.c (mono_class_from_gen_param): Renamed to
16553         mono_class_from_generic_parameter() and moved most of the
16554         functionality from mono_reflection_define_generic_parameter()
16555         here; ie. we create a "real" class here.
16556         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
16557         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
16558         previously been called.
16559
16560         * class.h (MonoGenericParam): Moved the declaration of this struct
16561         here from metadata.h and added `MonoMethod *method'.
16562
16563         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
16564         interncall.
16565
16566         * loader.c (mono_get_method_from_token): If we have any generic
16567         parameters, call mono_metadata_load_generic_params() to read them
16568         from the MONO_TABLE_GENERICPAR.
16569
16570         * metadata.c (mono_metadata_load_generic_params): Added
16571         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
16572
16573         * metadata.h (MonoMethodSignature): Replaced
16574         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
16575         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
16576
16577         * reflection.c (mono_reflection_define_generic_parameter): Moved
16578         most of the functionality into the new
16579         mono_class_from_generic_parameter(); set the `method' field if
16580         we're a method parameter.       
16581
16582 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
16583
16584         * marshal.c (emit_struct_conv): if native size is 0
16585         emit no code.
16586
16587 2003-10-14  Martin Baulig  <martin@ximian.com>
16588
16589         * icall.c: The generics API has changed in the spec since it was
16590         added to System.Type; these modifications make it match the spec
16591         again.
16592         (ves_icall_Type_GetGenericParameters): Renamed to
16593         `ves_icall_Type_GetGenericArguments'.
16594         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
16595         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
16596         `ves_icall_MonoType_get_HasGenericArguments'.
16597         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
16598         `ves_icall_MonoType_get_IsGenericParameter'.
16599         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
16600         this is no interncall anymore.
16601         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
16602         `ves_icall_TypeBuilder_get_IsGenericParameter'.
16603
16604 2003-10-14  Martin Baulig  <martin@ximian.com>
16605
16606         * reflection.c (mono_reflection_bind_generic_parameters): Also
16607         inflate generic methods if we're reading the class from IL.
16608
16609 2003-10-13  Martin Baulig  <martin@ximian.com>
16610
16611         * reflection.c (mono_reflection_define_generic_parameter): This
16612         method isn't called directly from the icall anymore; take a
16613         `MonoReflectionAssemblyBuilder *' so we can use this for type and
16614         method generic parameters.
16615         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
16616         (method_builder_encode_signature): Encode generic parameters.
16617         (mono_image_get_method_info): Write generic params to the
16618         MONO_TABLE_GENERICPARAM table.
16619
16620         * reflection.h (MonoReflectionMethodBuilder): Added
16621         `MonoArray *generic_params'.
16622
16623         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
16624
16625         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
16626         wrapper for mono_reflection_define_generic_parameter().
16627         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
16628
16629 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
16630
16631         * marshal.h: Add missing function to fix build.
16632
16633         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
16634         the SetLastError pinvoke attribute.
16635
16636         * marshal.c (mono_marshal_set_last_error): New helper function called
16637         by the generated code.
16638         
16639         * marshal.c (mono_mb_emit_branch): New helper function.
16640
16641         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
16642
16643         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
16644         classes as parameters and return values of delegates. Fixes #29256. 
16645
16646 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
16647
16648         * locales.c: use gint32 in non HAVE_ICU case
16649
16650 2003-10-11  Martin Baulig  <martin@ximian.com>
16651
16652         * mono-debug.c (mono_debug_add_method): Added a workaround for
16653         bug #48591.
16654
16655 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
16656
16657         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
16658         delegates passed to native code must use the STDCALL calling 
16659         convention. Fixes #35987.
16660
16661 2003-10-10  Martin Baulig  <martin@ximian.com>
16662
16663         * class.c (inflate_generic_type): If we're inflating for a generic
16664         type instance (and not for a generic method), return
16665         MONO_TYPE_MVAR unchanged.
16666
16667 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16668
16669         * string-icalls.c: Join ignores null strings in the source array.
16670         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
16671         * threads.c: GetAvailableTheads is slightly more accurate.
16672
16673 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
16674
16675         * threads.h threads.c : add mono_threads_set_default_stacksize
16676         and pass default to CreateThread calls.
16677
16678 2003-10-09  Dick Porter  <dick@ximian.com>
16679
16680         * icall.c:
16681         * locales.h:
16682         * locales.c: Internal calls for constructing CultureInfo and
16683         related objects from libicu (if its available.)
16684
16685 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
16686
16687         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
16688
16689 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16690
16691         * threadpool.c: added an argument to async_invoke_thread that is the
16692         item to process, pass the MonoAsyncResult to the thread start function
16693         when creating a new thread. This way we don't need to acquire any lock
16694         when we're creating a new thread. Readded a semaphore for faster
16695         response times (instead of that Sleep i added).
16696
16697 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
16698
16699         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
16700         get daylight change dates better on Windows, fix handling
16701         of platforms without tm_gmtoff.
16702
16703 2003-10-06  Martin Baulig  <martin@ximian.com>
16704
16705         * class.c (inflate_generic_method): Renamed to
16706         mono_class_inflate_generic_method() and made public.
16707         (mono_class_init): Don't inflate the generic methods here.
16708         (mono_class_from_generic): Added `gboolean inflate_methods'
16709         argument.  Inflate the methods here.
16710
16711         * loader.c (mono_method_get_param_names): Ignore instances of
16712         generic types for the moment.
16713
16714         * reflection.c (fixup_method): Added support for inflated methods.
16715         (mono_image_create_token): Use mono_image_get_methodref_token()
16716         for inflated methods.
16717         (mono_custom_attrs_from_param): Ignore instances of generic types
16718         for the moment.
16719         (mono_reflection_bind_generic_parameters): New public function.
16720         Moved all the functionality from
16721         ves_icall_Type_BindGenericParameters() here and added support for
16722         dynamic types.
16723         (mono_reflection_define_generic_parameter): Initialize
16724         `klass->methods' here.
16725
16726         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
16727         functionality into mono_reflection_define_generic_parameter().
16728         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
16729         TypeBuilder, return that TypeBuilder.
16730
16731 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16732
16733         * appdomain.c: removed mono_delegate_semaphore.
16734
16735         * threadpool.c:
16736         (mono_thread_pool_add): moved hash table creation inside and the thread 
16737         creation outside of the critical region.
16738         (mono_thread_pool_finish): removed obsolete code.
16739         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
16740         continue or exit the thread depending on the queue.
16741
16742 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
16743
16744         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
16745         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
16746         handle more bool marshalling options
16747
16748 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
16749
16750         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
16751         arrays of structs. Also add a more descriptive error message when
16752         a structure member is marshalled as LPArray.
16753
16754 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
16755
16756         * marshal.c (mono_marshal_get_native_wrapper): Add support for
16757         marshalling arrays of complex types. Fixes #29098. Also remove an
16758         usused and incomplete function.
16759
16760 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
16761
16762         * gc.c: report heap_size - free_bytes as total memory allocated
16763         (bug#49362).
16764
16765 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
16766
16767         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
16768         fix timezone handling problems on Windows.
16769         
16770         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
16771         asserts when the year is outside the range handled by ms the functions.
16772
16773         * class.c (setup_interface_offsets): If the class is an interface,
16774         fill out its interface_offsets slot.
16775
16776 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16777
16778         * threadpool.c: mark threadpool threads as background.
16779
16780 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
16781
16782         * decimal.c - define DECINLINE to nothing if not using GCC
16783
16784 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
16785
16786         * assembly.c: More refcount fixes.
16787
16788 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16789
16790         * string-icalls.c: if we're not trimming, return the same string.
16791         When not splitting, don't create a new string.
16792
16793 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16794
16795         * image.c:
16796         (mono_image_open): increment the ref_count inside the critical section.
16797
16798 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
16799
16800         * image.c (mono_image_open): Fix reference counting bug.
16801
16802 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
16803
16804         * marshal.c (mono_marshal_type_size) struct alignment changed for 
16805         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
16806         64bits. Avoid leak in mono_marshal_get_native_wrapper when
16807         mono_lookup_pinvoke_call throws.        
16808
16809 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
16810
16811         * reflection.c (mono_reflection_parse_type): Fix #49114.
16812
16813         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
16814         temporary workaround for cygwin header problem.
16815
16816         * object.c (mono_object_isinst): Synchronize this with the code
16817         generated by the JIT for casts.
16818
16819 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
16820
16821         * reflection.c (encode_type): Fix #38332.
16822
16823 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
16824
16825         * marshal.c (mono_marshal_method_from_wrapper): New function to return
16826         the original method from the wrapper method.
16827
16828 2003-09-25  Martin Baulig  <martin@ximian.com>
16829
16830         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
16831         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
16832         (ves_icall_Type_get_IsGenericInstance): New interncall.
16833
16834 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
16835
16836         * object.c: fix cast warning in big endian code.
16837
16838 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
16839
16840         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
16841         
16842 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16843
16844         * assembly.c: don't call check_env from mono_assembly_load. It's
16845         already done once in mono_assemblies_init and may cause headaches when
16846         multiple threads are loading assemblies.
16847
16848 2003-09-19  Martin Baulig  <martin@ximian.com>
16849
16850         * reflection.c (mono_reflection_define_generic_parameter): Don't
16851         allocate `klass->methods', set `klass->flags' to
16852         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
16853
16854 2003-09-18  Martin Baulig  <martin@ximian.com>
16855
16856         * class.c (mono_class_init): Don't create `class->methods' if it's
16857         already initialized.
16858
16859         * metadata.c (mono_metadata_load_generic_params): Make this
16860         actually work.
16861
16862         * reflection.c (mono_reflection_define_generic_parameter): Set
16863         parent class and interfaces from the constraints.
16864
16865         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
16866         to keep this struct in sync with the declaration in TypeBuilder.cs.
16867
16868 2003-09-17  Martin Baulig  <martin@ximian.com>
16869
16870         * metadata.h (MonoType): Replaced the data's `int type_param'
16871         field with `MonoGenericParam *generic_param'.
16872         (MonoGenericParam): Added `MonoClass *klass'.
16873
16874         * class.c (mono_class_from_gen_param): Removed the
16875         `MonoImage *image' and `int type_num' arguments.
16876
16877         * metadata.c (mono_metadata_parse_generic_param): New static
16878         method; creates a MonoGenericParam which just contains the index.
16879         (do_mono_metadata_parse_type): Call
16880         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
16881         MONO_TYPE_MVAR.
16882
16883         * reflection.c (mono_image_typedef_or_ref): Generic type
16884         parameters may be in the same assembly, but never use a typedef
16885         for them.
16886         (mono_reflection_define_generic_parameter): We're now creating a
16887         "real" class for the type parameter; it's now safe to call
16888         mono_class_from_mono_type() on the class'es type, it'll do the
16889         right thing.
16890
16891 2003-09-16  Martin Baulig  <martin@ximian.com>
16892
16893         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
16894         `symfile->range_entry_size' and `symfile->class_entry_size' here;
16895         the `symfile' data structure must be fully initialized before it
16896         gets added to the table.
16897
16898 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
16899
16900         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
16901
16902         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
16903         class init trampolines.
16904
16905 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
16906
16907         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
16908         to the built-in profiler to turn off time and allocation profiling
16909         respectively.
16910
16911 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
16912
16913         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
16914         g_direct_equal.
16915
16916         * debug-helpers.c (mono_method_full_name): Print the wrapper type
16917         in human readable form.
16918
16919 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
16920
16921         * reflection.c icall.c: Fixed warnings.
16922
16923         * image.c (load_class_names): Use a temporary hash table to hold the
16924         namespaces in order to avoid doing many string comparisons.
16925
16926         * image.h: Fix typo.
16927
16928         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
16929         Pass NULL instead of g_direct_equal to the GHashTable constructor 
16930         since the NULL case is short-circuited inside g_hash_table_lookup, 
16931         leading to better performance.  
16932
16933         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
16934         obtain the first custom attribute for a given index. Depends on the
16935         CustomAttribute table being sorted by the parent field.
16936
16937         * reflection.c (mono_custom_attrs_from_index): Use the new function 
16938         for better performance.
16939
16940 2003-09-07  Martin Baulig  <martin@ximian.com>
16941
16942         * class.c (mono_class_init): If we're a generic instance, inflate
16943         all our methods instead of loading them from the image.
16944         (mono_class_from_generic): Set `class->methods = gklass->methods'.
16945
16946 2003-09-07  Martin Baulig  <martin@ximian.com>
16947
16948         * mono-debug-debugger.c: Added support for constructors.
16949
16950 2003-09-06  Martin Baulig  <martin@ximian.com>
16951
16952         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
16953         New interncall.
16954
16955         * reflection.c (mono_reflection_setup_generic_class): Call
16956         ensure_runtime_vtable() to create the vtable.
16957
16958 2003-09-05  Martin Baulig  <martin@ximian.com>
16959
16960         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
16961         MONO_TYPE_MVAR.
16962
16963 2003-09-04  Martin Baulig  <martin@ximian.com>
16964
16965         * reflection.c (mono_reflection_define_generic_parameter): Generic
16966         parameters start with zero.
16967
16968 2003-09-04  Martin Baulig  <martin@ximian.com>
16969
16970         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
16971
16972         * reflection.h (MonoReflectionGenericParam): New typedef.
16973         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
16974         the generic parameters from the managed TypeBuilder.
16975
16976         * reflection.c (mono_reflection_define_generic_parameter): New function.
16977         (mono_reflection_create_runtime_class): Encode generic parameters.
16978         (mono_reflection_setup_generic_class): New function; this is
16979         called after adding adding all generic params to the TypeBuilder.
16980         (encode_type): Added MONO_TYPE_VAR.
16981
16982 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
16983
16984         * class.h class.c (mono_class_needs_cctor_run): Moved this method
16985         here from the JIT.
16986
16987         * assembly.h assembly.c: Moved the AOT loading code into an assembly
16988         load hook.
16989
16990 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
16991
16992         * reflection.h reflection.c class.h class.c: Delete duplicate 
16993         definition of mono_type_get_name () from reflection.c and export the
16994         one in class.c.
16995
16996         * class.c: Class loading fixes from Bernie Solomon 
16997         (bernard@ugsolutions.com).
16998
16999         * reflection.c: Endianness fixes from Bernie Solomon 
17000         (bernard@ugsolutions.com).
17001         
17002 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
17003
17004         * assembly.h assembly.c: Define a file format version for AOT
17005         libraries.
17006         
17007         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
17008
17009         * appdomain.h (MonoJitInfo): New field to determine whenever the
17010         code is domain neutral.
17011         
17012 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
17013
17014         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
17015
17016 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
17017
17018         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
17019         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
17020         Avoid caching the result since strings must be domain specific. Fixes
17021         #48050.
17022
17023 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
17024
17025         * marshal.c (mono_marshal_init): Make this callable multiple times
17026         since it is hard to find a correct place to call it.
17027
17028         * object.c (mono_runtime_class_init): Execute static constructors in
17029         the correct appdomain.
17030
17031         * image.c (build_guid_table): Handle the case when multiple images have
17032         the same GUID.
17033
17034 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17035
17036         * icall.c: added a couple of icalls for System.Web.
17037
17038 2003-08-28  Martin Baulig  <martin@ximian.com>
17039
17040         * icall.c (ves_icall_Type_BindGenericParameters): Use
17041         `klass->generic_inst' instead of `&klass->byval_arg' in the
17042         mono_type_get_object() call.  The returned type must be
17043         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
17044
17045 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
17046
17047         * NOTES: New file.
17048
17049         * object.c (mono_class_proxy_vtable): Make it thread safe.
17050
17051         * pedump.c: Fix warning.
17052
17053         * object.c appdomain.h: Get rid of metadata_section. 
17054         It is no longer needed and it was causing deadlocks with domain->lock.
17055
17056         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
17057
17058 2003-08-26  Martin Baulig  <martin@ximian.com>
17059
17060         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
17061
17062 2003-08-26  Martin Baulig  <martin@ximian.com>
17063
17064         * pedump.c (main): Call mono_metadata_init(),
17065         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
17066         and mono_loader_init().
17067
17068 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
17069
17070         * loader.h: Add missing include to fix build.
17071
17072         * image.h: mono_image_load_references is no more.
17073
17074         * assembly.c: Reworked assembly loading to make it really thread safe.
17075         After these changes, the assembly returned by mono_assembly_open is
17076         fully initialized, i.e. all its references assemblies are loaded.
17077
17078         * assembly.c (mono_image_load_references): Renamed to 
17079         mono_assembly_load_references, and made private, since clients no
17080         longer need to call it.
17081
17082         * class.c: Removed calls to mono_assembly_load_references, since it was
17083         a source of deadlocks.
17084
17085         * loader.h loader.c class.h class.c: Protect data structures using a 
17086         new lock, the loader lock.
17087
17088         * class.c (mono_class_setup_vtable): Create temporary hash tables and
17089         GPtrArrays only when needed.
17090
17091         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
17092         into empty structures by mcs. Fixes pinvoke7.cs.
17093         
17094         * domain.c (mono_init): Call a new initialization function.
17095
17096         * appdomain.c (mono_runtime_init): Call the new initializer function
17097         of the marshal module.
17098
17099         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
17100         inserted into empty structures by mcs. Fixes pinvoke7.cs.
17101
17102         * marshal.h marshal.c: Added locks around the wrapper caches to make
17103         this module thread safe.
17104
17105         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
17106         this argument. Fixes pinvoke1.exe.
17107
17108 2003-08-25  Lluis Sanchez <lluis@ximian.com>
17109
17110         * object.h: Added call_type field to MonoMethodMessage and the corresponding
17111         enumeration of values. Removed fields to store remote call output values in
17112         MonoAsyncResult. Not needed any more.
17113         * object.c: Initialize call_type and async_result fields in mono_message_init.
17114         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
17115         dispatching the message.
17116         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
17117         async call to finish. To do it use a message with EndInvoke call type.
17118
17119 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
17120
17121         * loader.h loader.c (mono_method_hash_marhal_info): New function which
17122         determines whenever a method has marshalling info.
17123
17124 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17125
17126         * assembly.c: fix the build on windows.
17127
17128 2003-08-22 Lluis Sanchez <lluis@ximian.com>
17129
17130         * object.cs: Fixed bug #47785.
17131
17132 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
17133
17134         * string-icalls.c (StringReplace): If their are no occurances of
17135         the old string found return a reference to the supplied
17136         string. This saves some memory and matches MS behavoir.
17137         
17138 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17139
17140         * socket-io.c: fixed compilation for systems that define AF_INET6
17141         and don't define SOL_IP/SOL_IPV6.
17142
17143 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
17144
17145         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
17146         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
17147
17148         * rawbuffer.c rawbuffer.h: Make this module thread safe.
17149
17150         * domain.c: Make this module thread safe.
17151
17152         * domain.c (mono_init): Call new initialization function.
17153
17154         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
17155         reference types too. Fixes #38812.
17156
17157         * image.c (mono_image_init): Fixed warnings.
17158
17159         * class.c (mono_class_from_typeref): Handle assembly load failure
17160         correctly.
17161
17162         * appdomain.c (add_assemblies_to_domain): Handle the case when
17163         the references of an assembly are not yet loaded.
17164
17165         * metadata.c image.c assembly.c: Moved initialization of global
17166         variables to a separate function called at startup since lazy 
17167         initialization of these variables is not thread safe.
17168         
17169         * image.c assembly.c: Made this module thread safe by adding locks in 
17170         the appropriate places.
17171
17172         * domain.c (mono_init): Call the new initialization functions of the
17173         three modules.
17174
17175 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
17176
17177         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
17178           make a direct call. It is proxy's work to make the call asynchronous.
17179           mono_delegate_end_invoke(): If the targe is a proxy, just collect
17180           the return values.
17181         * object.cs: mono_method_call_message_new(): read AsyncResult and
17182           state object from parameters list, if this info is requested.
17183         * object.h: Added fields to store remote call output values in
17184           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
17185
17186 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
17187
17188         * object.h: add needed fields to MonoThread.
17189         * threads.c, threads.h: allow registering a function to cleanup data
17190         allocated per thread by the JIT.
17191
17192 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
17193
17194         * loader.h: portability fix by Bernie Solomon
17195         * <bernard@ugsolutions.com>.
17196
17197 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
17198
17199         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
17200         return a MonoArray. This simplifies the code and also ensures that
17201         the cache allways contains an object reference as a value.
17202
17203         * icall.c (ves_icall_get_parameter_info): Simplified using the new
17204         function.
17205
17206 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17207
17208         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
17209         fixes a problem with byte ordering when getting the address family for
17210         a socket.
17211
17212 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
17213
17214         * .cvsignore: Added monosn.
17215
17216         * reflection.h reflection.c loader.c: Added support for parameter
17217         marshalling to dynamically created types. Fixes #47295.
17218
17219 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
17220
17221         * rand.c: remove useless warnings.
17222
17223 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
17224
17225         * class.c: implemented ldtoken for methods and fieldrefs.
17226
17227 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17228
17229         * threadpool.c: when mono_async_invoke was called, no one took care of
17230         monitoring the queue. So if the method invoked took some time and we
17231         got new async invoke requests after 500 ms (the thread created waited
17232         that long in WaitForSingleObject), the new async invoke was not called
17233         until the previous one finished.
17234
17235         This is fixed now. Thanks to Totte for helping with it.
17236
17237 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17238
17239         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
17240
17241 2003-08-11  Martin Baulig  <martin@ximian.com>
17242
17243         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
17244
17245 2003-08-06  Martin Baulig  <martin@ximian.com>
17246
17247         * mono-debug-debugger.c: Added support for static fields,
17248         properties and methods.
17249
17250 2003-08-06  Martin Baulig  <martin@ximian.com>
17251
17252         * mono-debug-debugger.c: Don't store the MonoString's vtable to
17253         make this work for applications with multiple application domains.
17254
17255 2003-08-04  Martin Baulig  <martin@ximian.com>
17256
17257         * mono-debug-debugger.c: Completely reworked the type support; the
17258         most important thing is that we're now just using one single
17259         `MonoType' instance per type.
17260
17261 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
17262
17263         * mono-endian.h, mono-endian.c, icall.c: Added icall
17264         ves_icall_System_Double_AssertEndianity to assert double word endianity
17265         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
17266
17267 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
17268
17269         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
17270         support, icalls and fixes.
17271
17272 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
17273
17274         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
17275         classes that are a punctuation character in .NET is not the same a
17276         g_unichar_ispunct.
17277
17278 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
17279
17280         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
17281
17282 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
17283
17284         * icall.c: Add new MemCopy internalcall.
17285         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
17286         Simplified code; It is not necessary to handle all the cases here,
17287         as the C# code takes care of it.  Only handle the case of the name
17288         resource embedded into the assembly.
17289
17290         Changed signature to return the data pointer and the size of the
17291         data. 
17292
17293 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
17294
17295         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
17296         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
17297
17298 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
17299
17300         * socket-io.c: ignore EINTR error in select.
17301
17302 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
17303
17304         * class.h, class.c: removed unused subclasses field in MonoClass.
17305
17306 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
17307
17308         * icall.c: improve fix of get_base_definition(). If the parent class
17309           doesn't have the mehod, look at the parent of the parent.
17310         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
17311           to check if a parameter is an in or out parameter
17312           (PARAM_ATTRIBUTE_IN is not set by default).
17313           mono_method_return_message_restore(): Use mono_class_value_size to
17314           get the size of a value type. mono_type_stack_size (parameterType)
17315           does not return the correct value if parameterType is byRef.
17316           mono_load_remote_field(), mono_load_remote_field_new(),
17317           mono_store_remote_field(), mono_store_remote_field_new():
17318           raise exception if the remote call returns an exception.
17319
17320 2003-07-28  Martin Baulig  <martin@ximian.com>
17321
17322         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
17323         method.  This is a wrapper around mono_runtime_invoke() which
17324         boxes the instance object if neccessary.
17325
17326 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
17327
17328         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
17329         metadata.h, row-indexes.h, verify.c: first cut of generics support.
17330
17331 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
17332
17333         * icall.c: disable mcs bug workaround.
17334
17335 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
17336
17337         * object.c (mono_runtime_class_init): Take the metadata_section
17338         mutex before obtaining the domain mutex.
17339
17340         * appdomain.h: Added definition of metadata_section mutex here. 
17341
17342         * object.c: define metadata_mutex here.
17343
17344 2003-07-24  Ravi Pratap  <ravi@ximian.com>
17345
17346         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
17347         fixed.
17348
17349 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
17350
17351         * reflection.c: Fix bug #46669
17352
17353 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17354
17355         * exception.c:
17356         * exception.h:
17357         * icall.c:
17358         * object.h: fill in the type name for TypeLoadException.
17359
17360 2003-07-23  Ravi Pratap  <ravi@ximian.com>
17361
17362         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
17363         relationship between TypeBuilders while compiling corlib) and bug
17364         45993 (Array types returned from the runtime while compiling
17365         corlib were from the loaded corlib).
17366
17367 2003-07-22  Martin Baulig  <martin@ximian.com>
17368
17369         * mono-debug-debugger.c: Reworked the type support a bit more;
17370         distinguish between types and classes.
17371
17372 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
17373
17374         * icall.c: add IsArrayImpl icall.
17375
17376 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
17377
17378         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
17379         initializing real_size only once. Also fix bug #46602.
17380
17381 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
17382
17383         * object.c: Renamed mono_metadata_section to metadata_section.
17384
17385 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
17386
17387         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
17388           empty array if the type is an array. Fixed.
17389           ves_icall_MonoMethod_get_base_definition: if the base method
17390           is abstract, get the MethodInfo from the list of methods of
17391           the class.
17392         * reflection.c: ParameterInfo.PositionImpl should be zero-based
17393           and it was 1-based. Fixed in mono_param_get_objects.
17394
17395 2003-07-20  Martin Baulig  <martin@ximian.com>
17396
17397         * mono-debug.h: Set version number to 31.
17398         (mono_debug_init): Added `MonoDomain *' argument.
17399
17400         * mono-debug-debugger.c: Reworked the type support; explicitly
17401         tell the debugger about builtin types; pass the `klass' address to
17402         the debugger.
17403
17404 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
17405
17406         * image.c: Allow new metadata tables to be loaded without a
17407         warning. Also update the warning message to give the new constant value.
17408                 
17409 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
17410
17411         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
17412         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
17413         array type representation changes.
17414
17415 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
17416
17417         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
17418         on Environment.Exit () call.
17419
17420 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
17421
17422         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
17423         requires a matching corlib.
17424
17425 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
17426
17427         * Changelog: My editor decided to add a CR to each line. Sorry about that.
17428           Committed again without the CRs.
17429         
17430 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
17431
17432         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
17433           getting it from the "this" socket instance. Did not work
17434           if the socket is a subclass of Socket.
17435           Also fixed bug #35371.
17436
17437 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
17438
17439         * metadata.c: fixed size for TypedByRef.
17440         * loader.c: when searching for a method, consider the vararg amrker.
17441         * unicode.c, decimal.c: constify some arrays.
17442
17443 2003-07-15  Dick Porter  <dick@ximian.com>
17444
17445         * socket-io.c: Fixed compilation for gcc < 3.2.
17446
17447         Fixed compilation for machines that don't have AF_INET6 (thanks to
17448         Bernie Solomon <bernard@ugsolutions.com> for that part.)
17449
17450         Fixed compile warnings.
17451         
17452         Fixed formatting and line endings.
17453
17454 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
17455
17456         * socket-io.h:
17457         * socket-io.c: Added IPv6 support.
17458
17459 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
17460
17461         * class.c (mono_class_is_assignable_from): New function to implement
17462         the is_assignable_from logic. Used by mono_object_isinst, 
17463         Type::IsAssignableFrom () and the interpreter.
17464
17465         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
17466         Object, even interfaces.
17467         
17468         * object.c (mono_object_isinst): Implement in terms of 
17469         is_assignable_from.
17470
17471         * icall.c (ves_icall_type_is_assignable_from): New icall.
17472
17473 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
17474
17475         * domain.c (foreach_domain): fix compiler warning.
17476
17477 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
17478
17479         * image.c (load_metadata_ptrs): use g_strndup because strndup is
17480         not available on all plattforms
17481
17482 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
17483
17484         * image.h image.c: Store the metadata version string in MonoImage.
17485         * icall.c: New icall to retrieve the image version.
17486         * reflection.c (create_dynamic_image): Fill in the image version field
17487         * reflection.c (build_compressed_metadata): Use the image version
17488         from the image structure.
17489
17490 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17491
17492         * appdomain.c: modified comment.
17493         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
17494         That will be its last iteration when mono_gc_cleanup is called from
17495         mono_runtime_cleanup and before the domain is unloaded.
17496
17497         Fixes bug #45962.
17498
17499 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
17500
17501         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
17502         attributes.
17503
17504 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
17505
17506         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
17507         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
17508         Bernie Solomon <bernard@ugsolutions.com>.
17509
17510 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
17511
17512         * object.c, object.h: provide mono_object_new_fast() for faster
17513         allocation in some special cases.
17514
17515 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
17516
17517         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
17518         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
17519
17520 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
17521
17522         * threadpool.c: fix leaks.
17523
17524 2003-07-01  Dick Porter  <dick@ximian.com>
17525
17526         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
17527         using MonoGHashTables.  Fixes threadpool bug posted to list.
17528
17529 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
17530
17531         * image.h, image.c: added support to load an assembly from a byte array.
17532         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
17533         assembly bundle support.
17534
17535 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
17536
17537         * threadpool.c (mono_thread_pool_add): keep a reference to the
17538         AsyncResult to prevent GC
17539
17540 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
17541
17542         * class.c: leak fix.
17543
17544 2003-06-25  Dick Porter  <dick@ximian.com>
17545
17546         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
17547         for the async object, the WaitHandle object will close the handle.
17548         Fixes bug 45321.
17549
17550 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
17551
17552         * class.c: in mono_array_class_get (), lookup from the hash with the
17553         same type we insert: this works around a bug in
17554         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
17555         lluis. The real fix will have to wait for after the release.
17556
17557 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
17558
17559         * icall.c: fix memory leak when getting type members.
17560
17561 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
17562
17563         * reflection.c: added more pubtoken special cases.
17564
17565 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
17566
17567         * class.c: handle field offset correctly when class size
17568         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
17569
17570 2003-06-20  Martin Baulig  <martin@ximian.com>
17571
17572         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
17573         *image' field.
17574
17575 2003-06-20  Martin Baulig  <martin@ximian.com>
17576
17577         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
17578
17579 2003-06-20  Martin Baulig  <martin@ximian.com>
17580
17581         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
17582         just distinguish between variables in registers and variables at
17583         an offset relative to a register.
17584
17585 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17586
17587         * icall.c: #ifdef out latest changes until mcs is fixed.
17588
17589 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
17590
17591         * icall.c: return members in metadata order.
17592
17593 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
17594
17595         * icall.c: avoid infinite loop in GetTimeZoneData.
17596
17597 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
17598
17599         * icall.c: added Marshal.Prelink/All icalls.
17600
17601 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
17602
17603         * object.c, object.h: fix warnings and do some overflow checking
17604         when creating arrays.
17605
17606 2003-06-17  Dick Porter  <dick@ximian.com>
17607
17608         * file-io.h:
17609         * file-io.c: File attributes need to be tweaked slightly when
17610         passed from the managed to the w32 world.
17611
17612 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
17613         * profiler.h profiler-private.h profiler.c: Rework last patch
17614         based on suggestion by Paolo.
17615         
17616 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
17617
17618         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
17619         instruction level coverage data collection.
17620         * profiler.h profiler.c (: Added new callback function which can be
17621         used by the profiler to limit which functions should have coverage
17622         instrumentation.
17623         * profiler.c (mono_profiler_load): Call g_module_build_path to
17624         generate the file name of the profiler library.
17625
17626 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
17627
17628         * profiler.c, profiler.h, profiler-private.h: added basic block 
17629         coverage profiling API.
17630
17631 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
17632
17633         * reflection.c (mono_reflection_create_runtime_class): Add support
17634         for events in dynamically generated code.
17635
17636         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
17637         not allocated.
17638
17639 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
17640
17641         * icall.c: when getting timezone info, return reasonable values if we
17642         can't get the actual data.
17643
17644 2003-06-14  Dick Porter  <dick@ximian.com>
17645
17646         * threads.c (start_wrapper): Remove the reference to the thread
17647         object in the TLS data, so the thread object can be finalized.
17648         This won't be reached if the thread threw an uncaught exception,
17649         so those thread handles will stay referenced :-( (This is due to
17650         missing support for scanning thread-specific data in the Boehm GC
17651         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
17652
17653 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
17654
17655         * reflection.c: ensure streams and tables are first allocated with
17656         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
17657
17658 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
17659
17660         * icall.c: fixed GetElementType for byrefs (bug# 44792).
17661
17662 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
17663
17664         * reflection.c (mono_reflection_create_runtime_class): Add support for
17665         properties to dynamically created classes.
17666         * reflection.c: Fix a few places where non-MonoObjects were inserted
17667         into the tokens hashtable.
17668
17669 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
17670
17671         * object.c: some support to handle out of memory exceptions.
17672
17673 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
17674
17675         * marshal.c (mono_marshal_get_native_wrapper): support reference
17676         return types
17677
17678 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
17679
17680         * object.h, object.c: more portability stuff from Bernie Solomon.
17681         Unexport mono_object_allocate(). Added mono_object_unbox ().
17682         Set exitcode when an unhandled exception is thrown.
17683
17684 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
17685
17686         * marshal.c (mono_marshal_get_native_wrapper): use custom
17687         marshaler for return types.
17688
17689 2003-06-10  Dick Porter  <dick@ximian.com>
17690
17691         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
17692         ip_mreq is available
17693
17694 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
17695
17696         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
17697         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
17698         by Bernie Solomon <bernard@ugsolutions.com>.
17699
17700 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
17701
17702         * gc.c (mono_gc_init): Avoid error message on shutdown when
17703         GC_DONT_GC=1 is used.
17704
17705         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
17706         New icall to return the GUID of a module.
17707
17708 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
17709
17710         * class.c: ensure instance size always includes the parent's size
17711         even whem class size is set explicitly (fixes bug#44294).
17712
17713 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
17714
17715         * profiler.h, profiler.c: made the simple profiler thread-safe,
17716         get more accurate timing info. Allow the loading of an
17717         externally-developed profiler module.
17718
17719 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
17720
17721         * marshal.c (mono_marshal_get_native_wrapper): improved
17722         class/byref arguments.
17723         (mono_marshal_get_native_wrapper): better string marshaling support.
17724
17725 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
17726
17727         * class.c: ensure .pack and .size are handled correctly and
17728         simplified layout of static fields.
17729
17730 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
17731
17732         * appdomain.c
17733         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
17734
17735         * loader.c (mono_lookup_pinvoke_call): look for modules in the
17736         current directory (fix bug 44008)
17737
17738 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
17739
17740         * marshal.c (mono_marshal_get_native_wrapper): started support for
17741         custom marshalers.
17742         (mono_delegate_to_ftnptr): consider marshalling specifications
17743
17744 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
17745
17746         * reflection.c, reflection.h: emit custom marshal info.
17747
17748 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17749
17750         * object.c: free the GError.
17751         * icall.c: added CloseEvent_internal.
17752         * threads.[ch]:
17753         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
17754         call.
17755
17756 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
17757
17758         * loader.c (mono_method_get_signature): Add support for dynamic
17759         assemblies.
17760
17761 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
17762
17763         * reflection.c: fixed bug #43905.
17764
17765 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
17766
17767         * class.c, domain.c, icall.c, metadata.h, object.h: support for
17768         handling TypedReference and ArgIterator.
17769         * loader.c, loader.h: added function to get signature at call site.
17770
17771 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
17772
17773         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
17774         data readonly. Buglets and warning fixes. Some MethodSpec support.
17775
17776 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
17777
17778         * class.h, class.c, object.c: remove relative numbering support.
17779
17780 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
17781
17782         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
17783         free the string, until we get a chance to fix Gtk#
17784
17785 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17786
17787         * marshal.c: revert last patch.
17788
17789 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
17790
17791         * icall.c: updates for new mono_class_vtable() not calling
17792         the type constructor anymore.
17793
17794 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
17795
17796         * object.h, object.c: separate vtable creation from type
17797         initialization. Make running the .cctor thread safe.
17798
17799 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
17800
17801         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
17802
17803 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
17804
17805         * loader.c (mono_get_method): consider calling convention
17806
17807 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
17808
17809         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
17810         to return the invisible global type for a module.
17811
17812         * reflection.c (mono_image_build_metadata): Emit global fields too.
17813
17814 2003-05-20  Peter Williams  <peterw@ximian.com>
17815
17816         * loader.c (mono_lookup_internal_call): Add a few newlines.
17817
17818 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
17819
17820         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
17821         literal strings.
17822
17823         * appdomain.c (set_domain_search_path): Recalculate search path when
17824         AppDomainSetup.PrivateBinPath changes.
17825
17826         * object.c (mono_class_compute_gc_descriptor): It turns out some
17827         parts of the class libs (like System.Thread) holds pointers to
17828         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
17829         to treat native int a pointer type here.
17830         
17831 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
17832
17833         * appdomain.h, domain.c: add hashtable for jump target resolution.
17834
17835 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
17836
17837         * reflection.h reflection.c icall.c: Added new icalls 
17838         GetManifestResourceInfoInternal, GetModulesInternal and support
17839         infrastructure.
17840
17841 2003-05-16  Dick Porter  <dick@ximian.com>
17842
17843         * icall.c:
17844         * file-io.h:
17845         * file-io.c: Implement System.IO.MonoIO::GetTempPath
17846
17847 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
17848
17849         * object.c: mono_store_remote_field: little fix to previous patch.
17850
17851 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
17852
17853         * class.c: add constructors to array classes.
17854         * icall.c: special case array construction for InternalInvoke (),
17855
17856 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
17857
17858         * class.h class.c reflection.c object.c: Added support for field
17859         defaults in dynamically generated classes.
17860
17861 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
17862
17863         * reflection.c: properly encode charset for ddlimport.
17864
17865 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
17866
17867         * threads.c: allow compiling without GC.
17868
17869 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
17870
17871         * appdomain.h, object.c, object.h, threads.c, threads.h: added
17872         handling of thread static data.
17873
17874 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
17875
17876         * reflection.h, reflection.c: added mono_custom_attrs_free ().
17877
17878 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
17879
17880         * class.c (mono_array_class_get): always set the serializable flags
17881         (mono_array_class_get): always set the SEALED attribute for array types
17882
17883 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
17884
17885         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
17886         attributes (fix for bug 42021).
17887
17888 2003-05-12  Dick Porter  <dick@ximian.com>
17889
17890         * gc.c: Don't run finalizers when the finalizer thread is
17891         finishing up, because the default domain has already been
17892         destroyed.
17893
17894 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
17895
17896         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
17897         value is null, we should throw an exception.   This is slightly
17898         different than the other conventions used for the constructor.
17899
17900 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17901
17902         * socket-io.c: fixed windows build.
17903
17904 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17905
17906         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
17907
17908 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
17909
17910         * object.c (mono_string_new_wrapper): Compatibility fix for MS
17911         compilers.
17912
17913 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
17914
17915         * class.c (mono_class_layout_fields): Add experimental GC aware
17916         auto layout facility. Requires class library changes to work correctly.
17917
17918         (mono_class_setup_vtable): Avoid overriding explicit interface
17919         method implementations. Fixes iface3.exe test.
17920
17921         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
17922         object reference.
17923         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
17924         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
17925
17926         * metadata.h: Add new type classification macro which determines
17927         whenever the type holds an object reference.
17928
17929 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
17930
17931         * marshal.c (mono_marshal_get_native_wrapper): cleanups
17932
17933 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
17934
17935         * gc.c (finalizer_thread): Work around a GC bug.
17936
17937 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
17938
17939         * marshal.c (emit_struct_conv): allow unions
17940
17941         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
17942
17943 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
17944
17945         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
17946
17947 2003-05-06  Martin Baulig  <martin@ximian.com>
17948
17949         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
17950
17951 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17952
17953         * socket-io.c:
17954         (Select_internal): allow NULLs, don't create arrays if not needed.
17955         Coupled with Socket.cs changes.
17956
17957         * threadpool.c:
17958         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
17959         register a finalizer for it that will close the semaphore handle. This
17960         fixes the leak and make Lupus' test run with > 4080 loops.
17961
17962 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
17963
17964         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
17965         Jerome Laban (bug #42287)
17966
17967 2003-05-02  Martin Baulig  <martin@ximian.com>
17968
17969         * debug-mono-symfile.h
17970         (MonoSymbolFile): Moved declaration into mono-debug.h.
17971         (MonoDebugMethodJitInfo): Likewise.
17972         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
17973         argument.
17974         (_mono_debug_address_from_il_offset): Take a
17975         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
17976
17977         * mono-debug.h
17978         (MonoDebugDomainData): New struct.
17979         (mono_debug_get_domain_data): New function.
17980         (mono_debug_add_method): Take an additional `MonoDomain *'
17981         argument.
17982         (mono_debug_source_location_from_address): Likewise.
17983         (mono_debug_il_offset_from_address): Likewise.
17984         (mono_debug_address_from_il_offset): Likewise.
17985
17986 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
17987
17988         * reflection.c: one more check for null type in custom attrs.
17989
17990 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17991
17992         * reflection.c: avoid warning (comparison is always false due to limited
17993         range of data type).
17994
17995 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17996
17997         * icall.c: throw an exception in Type.GetField if the argument 'name'
17998         is NULL.
17999
18000 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
18001
18002         * reflection.c: fixed handling of enums in named arguments to custom
18003         attributes (bug #42123).
18004
18005 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
18006
18007         * reflection.c: use the right array element type and handle
18008         a null for a Type argument, too.
18009
18010 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
18011
18012         * reflection.c: handle arrays as arguments to custom attributes.
18013
18014 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
18015
18016         * reflection.c: handle a string value in a custom attr
18017         ctor that takes an object.
18018
18019 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
18020
18021         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
18022         (fix bug #42063)
18023
18024 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
18025
18026         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
18027
18028 2003-04-27  Martin Baulig  <martin@ximian.com>
18029
18030         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
18031         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
18032         MONO_DEBUGGER_EVENT_BREAKPOINT.
18033         (mono_breakpoint_trampoline_code): Removed.
18034         (mono_debugger_event_handler): The last argument is now a
18035         `guint32'.
18036         (mono_debugger_insert_breakpoint_full): Removed the
18037         `use_trampoline' argument.
18038         (mono_debugger_method_has_breakpoint): Likewise.
18039         (mono_debugger_trampoline_breakpoint_callback): Renamed to
18040         mono_debugger_breakpoint_callback(); take the method and
18041         breakpoint number as arguments.
18042
18043 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
18044
18045         * metadata.c: fix off by one when loading parameters attributes.
18046
18047 2003-04-24  Martin Baulig  <martin@ximian.com>
18048
18049         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
18050
18051 2003-04-24  Martin Baulig  <martin@ximian.com>
18052
18053         * mono-debug-debugger.c: Moved all code which interacts with the
18054         Mono Debugger here.
18055
18056         * debug-mono-symfile.c: This code now just deals with the symbol
18057         file itself, the debugger code is now in mono-debug-debugger.c.
18058
18059 2003-04-23  Martin Baulig  <martin@ximian.com>
18060
18061         * mono-debug.c (mono_debug_source_location_from_il_offset):
18062         New method; like mono_debug_source_location_from_address(), but
18063         takes an IL offset instead of a machine address.
18064
18065 2003-04-23  Martin Baulig  <martin@ximian.com>
18066
18067         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
18068         `line' field; this is now computed by the debugger.
18069
18070 2003-04-23  Martin Baulig  <martin@ximian.com>
18071
18072         * mono-debug.[ch]: New files.  This is the new debugging interface.
18073
18074         * mono-debug-debugger.[ch]: New files.  Moved all code which
18075         interacts with the Mono Debugger here.
18076
18077 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
18078
18079         * domain.c (mono_init): initialize mono_defaults.monitor_class
18080
18081 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
18082
18083         * reflection.c (method_encode_code): Add a spicy exception to help
18084         future compiler authors.
18085
18086 2003-04-21  Martin Baulig  <martin@ximian.com>
18087
18088         * icall.c
18089         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
18090         Make this work with relative pathnames; g_filename_to_uri() needs
18091         an absolute filename.
18092
18093 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
18094
18095         * icall.c: Track name changes in Object and ValueType.
18096
18097 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
18098
18099         * metadata.c (mono_type_stack_size): size should be a multiple of
18100         sizeof (gpointer)
18101
18102 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18103
18104         * gc.c:
18105         (internal_domain_finalize): moved into mono_domain_finalize. No need
18106         to create another thread because the finalizers will be run in the
18107         finalizer thread.
18108         
18109         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
18110         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
18111         to be run (MS does this too).
18112
18113 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
18114
18115         * object.c (mono_class_compute_gc_descriptor): Update comment.
18116
18117         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
18118
18119         * image.h: Add synchronized wrapper cache.
18120
18121         * image.c (do_mono_image_open): Initialize cache.
18122
18123         * reflection.c (create_dynamic_mono_image): Initialize cache.
18124
18125 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18126
18127         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
18128         ves_icall_System_Buffer_ByteLengthInternal.
18129
18130 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
18131
18132         * reflection.c: setup klass->nested_in earlier. Allow
18133         a dash in the assembly name.
18134
18135 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
18136
18137         * metadata.c (mono_type_to_unmanaged): dont access
18138         type->data.klass for MONO_TYPE_OBJECT
18139         (mono_type_to_unmanaged): consider System.Delegate class
18140
18141 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
18142
18143         * class.c: just setup supertypes in the proper place instead of
18144         initializing the full element class for arrays.
18145
18146 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
18147
18148         * class.c: ensure the element class of arrays is initialized.
18149         Setup the supertype info for array classes, too.
18150
18151 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
18152
18153         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
18154
18155 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18156
18157         * Makefile.am: re-added -m option when running cygpath. This way,
18158         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
18159         separator.
18160         * mono-config.c: same codepath for locating mono config file for WIN32
18161         and the rest.
18162         * assembly.c: if mono_assembly_setrootdir is called, don't override
18163         the value set.
18164
18165 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18166
18167         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
18168         MONO_ASSEMBLIES variable.
18169
18170 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
18171
18172         * icall.c: added Assembly::GetNamespaces() icall.
18173
18174 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18175
18176         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
18177
18178 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
18179
18180         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
18181         * object.c: fixed bug in the construction of vtable for proxies
18182
18183 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
18184
18185         * object.c (mono_array_new): Mark mono_array_new as an icall.
18186
18187 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18188
18189         * class.c: fixed test for public method when overriding interfaces.
18190         Closes bug #40970.
18191
18192 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
18193
18194         * appdomain.h, domain.c: added mono_domain_foreach() to
18195         be able to access the currently loaded appdomains.
18196         * object.c: make string interning work across sppdomains.
18197         Mark some functions for use as icalls.
18198
18199 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
18200
18201         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
18202
18203         * reflection.h reflection.c: Allocate long living data using 
18204         GC_MALLOC_ATOMIC so the collector does not need to scan it.
18205
18206         * reflection.c: Double the allocation size in streams instead of
18207         increasing it, to prevent unneccesary copying on large assemblies.
18208         
18209         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
18210         creation if the assembly does not have the Run flag set.
18211
18212 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
18213
18214         * class.h: avoid the C++ keywords in header files (Jerome Laban
18215         spotted and fixed this).
18216
18217 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18218
18219         * object.c:
18220         (mono_unhandled_exception): fill in the arguments for the
18221         UnhandledException event. Only trigger that event for the default
18222         domain (as MS does).
18223
18224 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
18225
18226         * object.c: Improve typed allocation stuff based on suggestions from
18227         Paolo. Also turn it on if the GC library supports it.
18228
18229 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
18230
18231         * object.c object.h class.h: Added experimental typed allocation
18232         facility using the interfaces in gc_gcj.h.
18233
18234         * os/gc_wrapper.h: Added new include files.
18235         
18236 2003-04-03  Martin Baulig  <martin@ximian.com>
18237
18238         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
18239         which is not yet enabled by default.
18240
18241         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
18242         functions.
18243         (mono_gc_lock, mono_gc_unlock): New static functions.
18244
18245         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
18246         functions; stop/start the world for the garbage collector.  This
18247         is using the windows API; we need to complete the SuspendThread()/
18248         ResumeThread() implementation in the io-layer to make this work on Unix.
18249         (mono_gc_push_all_stacks): New public function; tells the garbage
18250         collector about the stack pointers from all managed threads.
18251
18252 2003-04-03  Martin Baulig  <martin@ximian.com>
18253
18254         * object.h (MonoThread): Added `gpointer stack_ptr'.
18255
18256         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
18257
18258 2003-04-03  Martin Baulig  <martin@ximian.com>
18259
18260         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
18261
18262 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
18263
18264         * reflection.c (typebuilder_setup_fields): Initialize field.first and
18265         field.last.
18266
18267 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
18268
18269         * loader.c (mono_lookup_internal_call): Report the corlib that is
18270         out of sync.
18271
18272 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
18273
18274         * icall.c (ves_icall_type_GetTypeCode): fixed check for
18275         System.DBNull (it's class not valuetype).
18276
18277 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
18278
18279         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
18280         if the array method was already assigned a token (fixes bug#40646).
18281
18282 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
18283
18284         * reflection.c (mono_reflection_get_type): Attempt type resolve even
18285         if no assembly is given.
18286
18287 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
18288
18289         * metadata.h: Added the new tables.
18290
18291         * row-indexes.h: Added definitions for new tables.
18292
18293         * metadata.c: Add schemas for new tables, and add support for
18294         computing the sizes of them.
18295
18296         * class.c: Update for handling the new type cases.
18297
18298 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
18299
18300         * metadata.h (MONO_TYPE_IS_VOID): new macro
18301
18302 2003-03-31  Martin Baulig  <martin@ximian.com>
18303
18304         * threads.h (MonoThreadCallbacks): Added `thread_created'.
18305
18306         * threads.c (mono_thread_new_init): Call `thread_created' in the
18307         mono_thread_callbacks.
18308
18309 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
18310
18311         * loader.h: added marshalbyrefobject_class to mono_defaults
18312         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
18313         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
18314           generation of output parameters.
18315           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
18316         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
18317           contextbound and the target object belongs to the context of the caller.
18318         * object.h: added context and unwrapped_server variables in MonoRealProxy.
18319         * object.c: Implemented support for interfaces and abstract classes
18320           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
18321           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
18322
18323 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
18324
18325         * class.h class.c (mono_class_is_subclass_of): New function.
18326         
18327         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
18328         routines for most common case (calls from ArrayList::ToArray).
18329
18330         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
18331         routine so programs which call Environment::Exit() can be profiled.
18332
18333         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
18334         Added MONO_ARCH_SAVE_REGS.
18335
18336         * icall.c (ves_icall_type_is_subtype_of): Use new function.
18337
18338 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
18339
18340         * blob.h: Add a couple of new MonoType types definitions.
18341
18342         * tabledefs.h: Add a couple of new call convs.
18343
18344 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
18345
18346         * reflection.h (MonoReflectionDynamicAssembly): track changes in
18347         the layout of the class.
18348
18349         * reflection.c (alloc_table): double the size on overflow to avoid
18350         unnecessary copying.
18351
18352         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
18353         avoid filling out metadata tables and blobs. Also set mb->ilgen to
18354         null so it can be garbage collected.
18355         
18356 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
18357
18358         * reflection.c (mono_reflection_get_type): Return the resolved type
18359         only if it is in the assembly we searched.
18360
18361         * reflection.c (ensure_runtime_vtable): Initialize method slots.
18362
18363         * class.c (mono_class_setup_vtable): Set the slot of the overriding
18364         method.
18365
18366 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18367
18368         * appdomain.c:
18369         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
18370         the right one is 'file:///blah', but MS allows it.
18371         * assembly.c:
18372         (mono_assembly_open): allow 'file://blah'
18373
18374         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
18375
18376 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
18377
18378         * socket-io.c: fixes bug #40310.
18379
18380 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
18381
18382         * reflection.c (mono_reflection_parse_type): handle deeply nested
18383         types correctly.
18384
18385         * reflection.c (mono_image_create_token): Use unique token values
18386         since they will be put into a hash table.
18387
18388         * class.c (mono_class_setup_vtable): If a method occurs in more than
18389         one place in the vtable, and it gets overriden, then change the
18390         other occurances too.
18391
18392         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
18393         object as return type.
18394
18395 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
18396
18397         * icall.c: Deleted "ToString" implementation for double and float
18398         because they are full implemented in managed code.
18399
18400 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
18401
18402         * reflection.c, reflection.h: implemented and exported functions
18403         to retrieve info about custom attributes.
18404
18405 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18406
18407         * appdomain.c: moved Uri handling to assembly.c
18408         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
18409         work when using a file Uri in *nix and windows.
18410
18411         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
18412         GetReferencedAssemblies.
18413
18414 2003-03-18  Dick Porter  <dick@ximian.com>
18415
18416         * icall.c: Rename a couple of internal calls
18417
18418         * threads.c: Set the thread state to Stopped when a thread exits.
18419         Fixes bug 39377.
18420
18421 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
18422
18423         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
18424         New icall.
18425
18426         * object.c (mono_class_vtable): fix warning.
18427
18428 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
18429
18430         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
18431
18432         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
18433         memory.
18434         (method_encode_clauses): Create exception info structures in the right
18435         order.
18436         (mono_reflection_setup_internal_class): Initialize supertypes field.
18437
18438         * class.c object.c: Handle interfaces which implement other interfaces 
18439         correctly.
18440
18441         * class.h class.c: Move the supertypes array initialization code into 
18442         a separate function so it can be used for dynamic types too. Also call
18443         it earlier, in mono_class_init(), since it can be used before the
18444         type is initialized.
18445
18446 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18447
18448         * Makefile.am:
18449         * assembly.c:
18450         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
18451
18452         * appdomain.c:
18453         * appdomain.h:
18454         * marshal.c:
18455         * object.c: remove warnings.
18456
18457 2003-03-13  Martin Baulig  <martin@ximian.com>
18458
18459         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
18460         (MonoDebugLexicalBlockEntry): New types.
18461
18462         * debug-mono-symfile.c
18463         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
18464
18465 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18466
18467         * process.c: ret can be any non-zero value accroding to MS doc.
18468
18469 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
18470
18471         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
18472         fixing a warning for a miss-used prototype, would have cause
18473         random memory corruption.
18474
18475 2003-03-07  Martin Baulig  <martin@ximian.com>
18476
18477         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
18478         getting really annoying ....
18479
18480 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
18481
18482         * reflection.c (fixup_method): added support for array methods.
18483
18484 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
18485
18486         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
18487         (pointed out by Michael Adams).
18488
18489 2003-03-04  Dick Porter  <dick@ximian.com>
18490
18491         * icall.c: Temporarily reverted the Double and Single ToString()
18492         change, because it broke nunit.
18493
18494 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
18495
18496         * object.h, threads.h: make include files compatible with C++
18497         (patch by Jerome Laban <jlaban@wanadoo.fr>).
18498
18499 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
18500
18501         * icall.c: Erased ToString helper functions for Double and Single.
18502         Now, that implementations ar all in managed code (Double and Single
18503         Formatters).
18504
18505 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
18506
18507         * appdomain.c: Added method for initializing the default context of
18508         a domain. Added internal call for getting the default context.
18509         * appdomain.h: Added context variable in MonoDomain struct.
18510         * domain.c: mono_domain_set also sets the default context of the domain
18511         * icall.c: Mapped internal method InternalGetDefaultContext.
18512         * object.c: mono_object_get_virtual_method returns always a remoting
18513         wrapper if the object is a transparent proxy.
18514         mono_runtime_invoke_array: when creating an object by calling the
18515         constructor, if the created object is a proxy, then the constructor should
18516         be called using the a remoting wrapper.
18517
18518 2003-03-03  Dick Porter  <dick@ximian.com>
18519
18520         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
18521         variable so it compiles on solaris.  Problem spotted by
18522         Christopher Taylor <ct@cs.clemson.edu>
18523
18524 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18525
18526         * appdomain.c:
18527         (get_info_from_assembly_name): don't leak value.
18528
18529         * icall.c:
18530         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
18531         result.
18532
18533 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
18534
18535         * assembly.c: export mono_image_load_references ().
18536         * class.c: handle function pointers. mono_class_from_name() now
18537         supports nested type names directly.
18538
18539 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
18540
18541         * reflection.h reflection.c: Encode already created dynamic methods 
18542         and fields correctly as a DEF instead of a REF.
18543
18544         * reflection.c: Get rid of the force_ref argument to 
18545         mono_image_typedef_or_ref since it was wrong in the first place.
18546
18547         * string-icalls.c: add error checking to string constructors according
18548         to the MSDN docs.
18549
18550         * reflection.c: Emit types in the order their TypeBuilders were 
18551         created. Previously, a new table index was assigned to each type before
18552         the tables were emitted. This was wrong because the signature blob
18553         might already refer to a type by its original table index.
18554
18555 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
18556
18557         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
18558         change.
18559         
18560 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18561
18562         * Makefile.am: make assemblies dir have \ instead of / on windows.
18563
18564 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
18565
18566         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
18567         iterate over the NESTEDCLASS table using a linear search since the
18568         table is not guaranteed to be sorted by the secondary key.
18569
18570         * class.c (mono_class_create_from_typedef): fixed up call to
18571         mono_metadata_nesting_typedef.
18572         
18573 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
18574
18575         * marshal.c (mono_string_to_byvalstr): clear the memory as
18576         suggested by Jerome Laban <jlaban@wanadoo.fr>
18577
18578 2003-02-26  Dick Porter  <dick@ximian.com>
18579
18580         * process.c: Cope with padding in .rsrc blocks
18581
18582 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
18583
18584         * metadata.h: reverted the filter_len change, it breaks reflection
18585         
18586 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
18587
18588         * metadata.h: added a new field to store the filter_len
18589         
18590
18591 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
18592
18593         * reflection.c: handle custom attributes for types and members
18594         created with Reflection.Emit (bug#38422).
18595
18596 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
18597
18598         * reflection.c: define RTSpecialName automatically for constructors for
18599         compatibility with MS.NET.
18600
18601         * reflection.c (mono_reflection_create_runtime_class): initialize
18602         nested_in field of dynamically created classes.
18603
18604 2003-02-22  Martin Baulig  <martin@ximian.com>
18605
18606         * debug-mono-symfile.h: Incremented version number.
18607
18608 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
18609
18610         * object.h icall.c process.c: fix warnings.
18611
18612 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
18613
18614         * appdomain.h appdomain.c:
18615         (mono_domain_try_type_resolve): split the 
18616         name_or_tb argument into a name and a tb argument.
18617         (mono_domain_has_type_resolve): new function to check whenever the
18618         application has registered a TypeResolve event handler.
18619         
18620         * icall.c reflection.h reflection.c: move the type resolve logic into
18621         mono_reflection_get_type () so it will be invoked when 
18622         Assembly::GetType () is called.
18623
18624         * reflection.c:
18625         (mono_reflection_get_type): renamed to get_type_internal.
18626         (mono_reflection_get_type): fixed type name generation so it works 
18627         for nested types too.
18628         (mono_reflection_get_type): call has_type_resolve () to avoid the 
18629         costly type name generation if there is no resolve event handler.
18630
18631 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
18632
18633         * class.c, image.c: load exported types from file references.
18634
18635 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
18636
18637         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
18638           used to cache the managed methods used to create proxies and make 
18639           remote invocation of methods.
18640         * class.h: Added in MonoVTable a flag to indicate that a class needs 
18641           to be remotely created.
18642         * object.c: Modified the method mono_class_vtable(). It now initializes 
18643           the remote flag of the vtable. Modified mono_object_new_specific(), 
18644           so now it checks the remote flag.
18645         * icall.c: Added a couple of internal methods, one for enabling instance 
18646           creation interception for a type, and one for creating objects bypassing
18647           the remote check.
18648
18649 2003-02-18  Martin Baulig  <martin@ximian.com>
18650
18651         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
18652         New interncall to get a method's metadata token.
18653
18654         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
18655         New interncall for the debugger.
18656
18657 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
18658
18659         * class.c (mono_class_setup_vtable): allocate supertype array
18660
18661 2003-02-18  Martin Baulig  <martin@ximian.com>
18662
18663         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
18664
18665 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18666
18667         * reflection.c:
18668         (assembly_name_to_aname): jump over unknown properties (i've found
18669         something like: 'type, assembly, version=xxx, custom=null, public...',
18670         so now will ignore custom=null and still get the rest of the values).
18671
18672 2003-02-17  Dick Porter  <dick@ximian.com>
18673
18674         * threads.c: Have Thread.Start() wait for a semaphore to signal
18675         that the thread has set up all its local data.  This fixes bug
18676         34323, where Abort() raced the new thread's TLS data.
18677
18678         Also removes the handle_store() call from start_wrapper, because
18679         threads are now always created suspended and there is no longer a
18680         race between the parent and child threads to store the info.
18681
18682 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
18683
18684         * image.c: explain the #- heap issue in a message, hopefully
18685         avoiding FAQs on mono-list.
18686
18687 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18688
18689         * icall.c:
18690         (GetEntryAssembly): if the domain has not invoked
18691         AppDomain.ExecuteAssembly yet, return the assembly of the default
18692         AppDomain.
18693
18694 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
18695
18696         * class.c (mono_ldtoken): make it work in dynamic assemblies.
18697
18698 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
18699
18700         * metadata.c, reflection.c: simple speedup to type hash
18701         and equals code.
18702
18703 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
18704
18705         * image.c, image.h, class.c, assembly.c: move module loading
18706         to MonoImage. When loading metadata, consider alignemnet from
18707         the start of metadata, not from the metadata address in memory.
18708
18709 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
18710
18711         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
18712         AssemblyBuilder objects. Factored out custom attribute creation into
18713         a separate function.
18714         (create_custom_attr): new function to create custom attributes.
18715
18716 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
18717
18718         * Makefile.am: Got tired of typing the full pathname to pedump.
18719         Until there is another option, am installing this.
18720
18721 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
18722
18723         * class.c (class_compute_field_layout): always set field->parent 
18724         (mono_ldtoken): use mono_defaults.fieldhandle_class;
18725
18726 2003-02-11  Dick Porter  <dick@ximian.com>
18727
18728         * threads-types.h:
18729         * monitor.c: Rewrote Monitor, making lock much faster and
18730         Pulse/Wait work as specified.  Also uses much fewer handles, and only
18731         creates them as needed.
18732
18733         * exception.c: Added SynchronizationLockException
18734
18735         * threads.c: Deleted old Monitor implementation.  The new one is
18736         in a new file.
18737
18738 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
18739
18740         * class.c: handled TypedReference type code. Set the correct size for
18741         class data. Setup interface_offsets for interface classes, too.
18742
18743 2003-02-09  Martin Baulig  <martin@ximian.com>
18744
18745         * debug-mono-symfile.h: Reflect latest symbol writer changes.
18746
18747 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
18748
18749         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
18750         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
18751         * object.c: fixed mono_object_get_virtual_method () for interfaces.
18752         * verify.c: check for code that runs after the end of the method.
18753
18754 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
18755
18756         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
18757         "System.Math::Round2".
18758         * sysmath.h: Added Floor, Round and Round2 definitions.
18759         * sysmath.c: Modified certain functions that were not 100% compliant
18760         with MS.NET (math precision) and added the implementation of Floor,
18761         Round and Round2.
18762
18763 2003-02-07  Martin Baulig  <martin@ximian.com>
18764
18765         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
18766
18767 2003-02-07  Martin Baulig  <martin@ximian.com>
18768
18769         * debug-mono-symfile.c: Reflected latest symwriter changes.
18770         (mono_debug_create_mono_symbol_file): Removed.
18771         (mono_debug_open_mono_symbol_file): Take an argument which
18772         specifies whether to create a dynamic symbol file.
18773
18774 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
18775
18776         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
18777
18778 2003-02-05  Martin Baulig  <martin@ximian.com>
18779
18780         * reflection.c (mono_image_build_metadata): Make this public,
18781         protect it against being called multiple times, don't create
18782         resources and don't build the compressed metadata here.
18783         (mono_image_create_pefile): Do this here.
18784
18785         * icall.c
18786         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
18787
18788 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18789
18790         * socket-io.c: fixed bug #36322.
18791
18792 2003-02-06  Piers Haken <piersh@friskit.com>
18793
18794         * appdomain.[ch]:
18795         * class.h:
18796         * debug-mono-symfile.c:
18797         * icall.c:
18798         * loader.c:
18799         * mono-config.c:
18800         * monosn.c:
18801         * reflection.c:
18802         * socket-io.c: warning cleanups
18803
18804 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
18805
18806         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
18807         function. works like remoting invoke, but does a check for the Proxy first.
18808
18809 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
18810
18811         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
18812
18813 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
18814
18815         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
18816         array of pointers.
18817         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
18818         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
18819
18820         * object.c (mono_store_remote_field_new): used by the new jit
18821         instead of mono_store_remote_field
18822         (mono_load_remote_field_new): used by the new jit
18823         instead of mono_load_remote_field
18824
18825 2003-02-05  Patrik Torstensson
18826
18827         * appdomain.c: changed unload to take the domain id instead
18828         of domain
18829         
18830         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
18831
18832
18833 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18834
18835         * appdomain.c: don't look for assemblies in ApplicationBase if
18836         PrivateBinPathProbe is set.
18837
18838 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18839
18840         * object.c: make the first argument in main_args contain the absolute
18841         path to the assembly. Fixes bug #37511.
18842
18843 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18844
18845         * icall.c: get correct UTC offset for countries not using daylight
18846         time saving. Fixes bug #30030.
18847
18848 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18849
18850         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
18851         and 1 are the family).
18852
18853 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
18854
18855         * icall.c (ves_icall_InternalExecute): removed wrong assertion
18856
18857         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
18858
18859 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
18860
18861         * reflection.c: added support for SignatureHelper tokens, which is
18862         needed by the Calli opcode.
18863
18864         * reflection.h: track changes to SignatureHelper class.
18865
18866         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
18867
18868 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18869
18870         * appdomain.c: fixed loading assemblies from PrivateBinPath.
18871
18872 2003-02-03  Patrik Torstensson
18873         * appdomain.[c|h], domain.c : 
18874          - Added support for getting a domain via domain id
18875          - Support for setting and getting domain from System.AppDomain 
18876            (used in cross appdomain channel)
18877          - Added support for get/set for a MonoAppContext on a thread 
18878            (Context class in System.Runtime.Remoting.Contexts),
18879          - Removed hack in Get/SetData and ExecuteAssembly.
18880         
18881         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
18882         the managed world to get control when a proxy is created.
18883
18884         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
18885         
18886 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
18887
18888         * icall.c
18889         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
18890         Populate the codebase field as well.
18891
18892 2003-02-02  Martin Baulig  <martin@ximian.com>
18893
18894         * debug-mono-symfile.c
18895         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
18896         (mono_debug_symfile_add_method): Allow interncalls.
18897
18898 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18899
18900         * icall.c: throw parse exception if strtod fails or the string is empty.
18901
18902 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
18903
18904         * marshal.c: handle object type separately from defined
18905         class types.
18906
18907 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
18908
18909         * marshal.c: handle NATIVE_LPSTR for strings when it's
18910         explicitly specified.
18911
18912 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
18913
18914         * reflection.c, reflection.h, icall.c: setup the reflection
18915         handle cache for ModuleBuilders and AssemblyBuilders.
18916
18917 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
18918
18919         * reflection.c (reflection_methodbuilder_to_mono_method): set
18920         pinvoke flag
18921
18922 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18923
18924         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
18925
18926 2003-01-29  Dick Porter  <dick@ximian.com>
18927
18928         * threads.c: No need for the fake_thread kludge now that Thread
18929         doesn't run a class constructor
18930         
18931 2003-01-29  Dick Porter  <dick@ximian.com>
18932
18933         * threads.c: Use g_direct_hash instead of the rather bogus
18934         g_int_hash
18935
18936 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
18937
18938         * marshal.c (mono_marshal_get_native_wrapper): add check for null
18939         (fix pinvoke12.exe)
18940         (mono_marshal_get_struct_to_ptr): generate valid IL code
18941         (mono_marshal_get_ptr_to_struct): generate valid IL code
18942         (*): correctly set sig->pinvoke, we need to memdup the signature
18943         to do that
18944
18945 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
18946
18947         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
18948         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
18949
18950 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
18951
18952         * profiler.c: provide more callers information.
18953
18954 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
18955
18956         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
18957
18958         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
18959
18960         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
18961
18962 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18963
18964         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
18965         exception instead of going into an infinite loop on dates which it 
18966         can't yet handle.
18967
18968         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
18969         out-of-range exception if needed.
18970
18971         * class.c (mono_class_setup_vtable): allow a virtual method to provide
18972         an implementation for an interface method and to override an inherited
18973         method at the same time. 
18974         Imagine a scenario when a virtual method is used to override a
18975         virtual abstract method in a parent class, and this same method 
18976         provides an implementation for an method inherited from an interface. 
18977         In this case, the interface resolution code will set im->slot, which 
18978         means that the virtual method override pass will skip this method 
18979         which means a pointer to the abstract method inherited from the parent
18980         will remain in the vtable of this non-abstract class.
18981
18982         * class.c: (mono_class_setup_vtable): continue search for a real 
18983         method if only an abstract method is found.     
18984
18985 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
18986
18987         * reflection.c: add size to encoding for ByValStr and ByValArray
18988         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
18989
18990 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18991
18992         * class.c (mono_class_setup_vtable): pass the override info as an
18993         argument.
18994
18995         * class.c (mono_class_setup_vtable): set the slot of overriding methods
18996         correctly.
18997         
18998         * reflection.c (ensure_runtime_vtable); add support for method 
18999         overrides.
19000         
19001 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
19002
19003         * reflection.c (resolution_scope_from_image): Hack to work to work with
19004         dynamic assemblies.
19005
19006         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
19007         added a 'force_ref' argument to force this function to allways return 
19008         a TypeRef. This is needed by mono_image_get_memberref_token ().
19009         
19010 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
19011
19012         * reflection.c (mono_image_get_type_info): interfaces really don't have
19013         a parent.
19014
19015         * reflection.c (mono_image_basic_init): fill out missing fields of
19016         image structure.
19017
19018         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
19019         dynamic assemblies. This is required so dynamic assemblies show up in
19020         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
19021         Type::GetType() etc. This is consistent with MS behaviour.
19022
19023         * image.c image.h reflection.c: add newly created classes to the name 
19024         cache so mono_class_get () will find them.      
19025
19026 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
19027
19028         First part of changes to get IKVM.NET running under mono.
19029         
19030         * appdomain.h, appdomain.c: added new function 
19031         mono_domain_try_type_resolve() which will emit TypeResolve events. 
19032         This function will call AppDomain::DoTypeResolve to do the actual work.
19033
19034         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
19035         moved existing code dealing with dynamic tokens to a new function 
19036         called mono_reflection_lookup_dynamic_token (). This function will 
19037         raise TypeResolve events when appropriate. Since reflection.c is not 
19038         part of libmetadata, a new hook function called 
19039         mono_lookup_dynamic_token() is added to class.c which will call this.
19040
19041         * assembly.h assembly.c: make the invoke_load_hook function public,
19042         so it can be called for dynamic assemblies.
19043
19044         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
19045
19046         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
19047         type isn't found.
19048
19049         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
19050         MonoGHashTable, since it contains pointers to objects which the GC 
19051         needs to track.
19052
19053         * assembly.c (search_loaded): remove unused variable.
19054         
19055 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
19056
19057         * object.c: fixed issue exposed by gcc-generated IL programs
19058         that use RVA data for pointers.
19059
19060 2003-01-25  Martin Baulig  <martin@ximian.com>
19061
19062         * threads.c (start_wrapper): Moved the initialization of
19063         `start_func' above the mono_new_thread_init() call to which we
19064         pass it as argument.
19065
19066 2003-01-24  Martin Baulig  <martin@ximian.com>
19067
19068         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
19069         the MonoThread pointer.
19070
19071 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
19072
19073         * icall.c: Rename `PowImpl' to Pow.
19074
19075 2003-01-23  Dick Porter  <dick@ximian.com>
19076
19077         * threads.c (start_wrapper): Create a Thread object if needed, so
19078         the Main() thread can do the class initialisation in a subthread
19079         that has been set up to allow managed code execution.
19080
19081         Pass the thread ID instead of the MonoThread pointer to the thread
19082         start and attach callbacks.  This change is required, because the
19083         jit thread start callback must be called _before_ the Thread
19084         object can be created.
19085         
19086         (mono_thread_init): Removed much object creation code that is no
19087         longer needed.  No managed code is called from here now.
19088
19089         * object.c (mono_runtime_exec_managed_code): Create a subthread
19090         for Main, and call back to the runtime to use it.
19091         Set the exit code when Main exits.
19092
19093         * gc.c: Make sure domain finalisation happens in a subthread.
19094         Re-enable threaded GC, fixing bug 31333 (again).
19095
19096         * environment.c: System.Environment internall calls (so far just
19097         ExitCode is here, the others are still in icall.c)
19098
19099         * appdomain.c (mono_runtime_cleanup): All threads running managed
19100         code should have finished before mono_runtime_cleanup() is
19101         reached, so no need to clean up threads.
19102
19103 2003-01-22  Martin Baulig  <martin@ximian.com>
19104
19105         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
19106         `gpointer func' arguments.      
19107         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
19108         but added `MonoThread *thread' argument.
19109         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
19110
19111         * threads.c (mono_new_thread_init): Added `gpointer func' argument
19112         and pass it to the mono_thread_start_cb callback.
19113         (mono_install_thread_callbacks): New public function to install a
19114         set of callbacks which are set by the debugger.
19115         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
19116
19117 2003-01-22  Martin Baulig  <martin@ximian.com>
19118
19119         * Makefile.am: Install debug-mono-symfile.h.
19120
19121 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
19122
19123         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
19124
19125 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
19126
19127         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
19128         * class.c (mono_ptr_class_get): correctly set access levels of pointers
19129         (mono_array_class_get): correctly set access levels of arrays
19130
19131 2003-01-20      Patrik Torstensson
19132         * image.h (MonoAssemblyName): changed major, minor, build, revision
19133         from signed to unsigned.
19134
19135 2003-01-20  sean kasun <skasun@azstarnet.com>
19136
19137         * reflection.c (load_cattr_value): Now this handles
19138         MONO_TYPE_SZARRAY.  Fixes bug #35629
19139
19140 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
19141
19142         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
19143         integer value
19144
19145 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19146
19147         * decimal.c: fixed bug #26056.
19148
19149 2003-01-17  Martin Baulig  <martin@ximian.com>
19150
19151         * gc.c: Raise an ExecutionEngineException instead of using g_error().
19152
19153 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19154
19155         * exception.[ch]:
19156         (mono_get_exception_type_initialization): new function.
19157
19158         * object.c: throw a TypeInitializationException when an exception is
19159         thrown invoking the class constructor.
19160
19161 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19162
19163         * reflection.c: fixed attribute reading.
19164
19165 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19166
19167         * icall.c:
19168         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
19169         provided, look for the type in the calling assembly and then in
19170         mscorlib; if the assembly name is provided, only try that one.
19171
19172 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
19173
19174         * object.c: register the vtable before there is a chance it's
19175         queried again recursively.
19176
19177 2003-01-13  Duncan Mak  <duncan@ximian.com>
19178
19179         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
19180         gc-internal.h. 
19181         
19182 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
19183
19184         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
19185
19186 2003-01-11  Martin Baulig  <martin@ximian.com>
19187
19188         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
19189         this to 20 for the release.
19190
19191 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
19192
19193         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
19194
19195         * loader.c (mono_method_get_marshal_info): bug fix
19196
19197         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
19198         structures with explicit layout
19199
19200 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
19201
19202         * profiler.c: made the output more readable (and sorted). 
19203         Added caller information for the allocation profiler.
19204
19205 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
19206
19207         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
19208
19209 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19210
19211         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
19212         to get value types.
19213         
19214 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
19215
19216         * object.c, profiler.h, profiler.c, profiler-private.h:
19217         Added object allocation profiler.
19218
19219 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
19220
19221         * reflection.h, reflection.c: handle global methods.
19222         Compress blob entries.
19223
19224 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
19225
19226         * marshal.c: fix compilation.
19227
19228 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
19229
19230         * loader.c (mono_method_get_marshal_info): impl.
19231
19232         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
19233
19234 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19235
19236         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
19237         for reference types.
19238
19239 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
19240
19241         * loader.c: fixed off by one error in loaded parameter names.
19242
19243 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
19244
19245         * marshal.c (mono_marshal_get_icall_wrapper): like
19246         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
19247         instead of a MonoMethod.
19248
19249 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19250
19251         * decimal.c: fixed bug #36537.
19252
19253 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
19254
19255         * marshal.c: throw a missing method exception if a
19256         P/Invoke method is not found.
19257
19258 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
19259
19260         * icall.c: allow a null this for constructors.
19261
19262 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
19263
19264         * icall.c: raise the proper exceptions if the arguments to the
19265         internal Invoke are incorrect.
19266
19267 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
19268
19269         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
19270
19271 2003-01-03  Martin Baulig  <martin@ximian.com>
19272
19273         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
19274
19275 2002-12-31  Martin Baulig  <martin@ximian.com>
19276
19277         * debug-mono-symfile.c: Completely rewrote the type section.
19278         Instead of using individual malloc()ed fields, we use one big
19279         continuous memory area and offsets into this area.
19280         See the comments in the source code for details.
19281
19282 2002-12-30  Martin Baulig  <martin@ximian.com>
19283
19284         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
19285
19286 2002-12-30  Martin Baulig  <martin@ximian.com>
19287
19288         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
19289         line number table in this data blob instead of using an external
19290         pointer.
19291
19292 2002-12-28  Martin Baulig  <martin@ximian.com>
19293
19294         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
19295
19296 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
19297
19298         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
19299         as a boxed return type.
19300
19301 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
19302
19303         * appdomain.c
19304         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
19305         g_build_filename to properly get separators on the filename created.
19306
19307         * object.h: Small change, introduce MonoMarshalByRefObject to
19308         track the layout of that structure in the C# universe as we make
19309         changes there.
19310
19311 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
19312
19313         * object.c: removed assert to allow static fields on interfaces.
19314         * loader.c: a TypeSpec may be used for any type, not just arrays.
19315
19316 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19317
19318         * class.c, class.h: added mono_class_array_element_size ().
19319         Ignore static methods in interfaces.
19320
19321 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19322
19323         * threads.c: fixed the build under cygwin.
19324
19325 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
19326
19327         * reflection.c: handle nullref constants. Allocate keys for
19328         reflection handles with the GC.
19329
19330 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
19331
19332         * threads.c, threads.h: added mono_thread_get_abort_signal()
19333         to get a suitable signal for thread abort.
19334
19335 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
19336
19337         * metadata.c: fix handling of ExportedType table.
19338
19339 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19340
19341         * icall.c: added WriteWindowsDebugString internal call.
19342
19343 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19344
19345         * reflection.h: added fields to match C# implementation.
19346
19347 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19348
19349         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
19350
19351 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
19352
19353         * gc.h, gc-internal.h: Rename header for GC internal calls to
19354         gc-internal.h from gc.h as to not clash with Boehm GC having its
19355         header installed as <gc.h> in outside include paths.
19356         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
19357         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
19358
19359 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19360
19361         * icall.c: assign minor, build and revision in FillName.
19362
19363 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
19364
19365         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
19366         Added support for running code generated by Reflection.Emit.
19367
19368 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19369
19370         * appdomain.c: check for NULL argument in LoadFrom.
19371
19372 2002-12-10  Dick Porter  <dick@ximian.com>
19373
19374         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
19375
19376 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19377
19378         * appdomain.c: fix buglet when building exe file name.  Handle full
19379         assembly name (needed after latest changes to AssemblyName).
19380         * image.c:
19381         (mono_image_close): free some hashtables.
19382
19383 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
19384
19385         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
19386         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
19387         on some systems (redhat 7.3) 
19388
19389 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
19390
19391         * threads.c: delete the critical section of a sync block,
19392         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
19393
19394 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
19395
19396         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
19397
19398 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19399
19400         * appdomain.[ch]: handle the assembly preload event to try loading the
19401         assemblies using the paths we have in the current domain.
19402
19403         * assembly.[ch]: created an assembly preload hook that is called to try
19404         loading the assembly by other means that the ones provided here.
19405
19406         * domain.c: initialize the domain search path.
19407
19408         From now on, assemblies (TODO: except corlib and System) are loaded
19409         according to these rules when using mono_assembly_load ():
19410
19411                 1. It tries to load the assembly from the ApplicationBase
19412                 of the current domain appending .dll and .exe (TODO: have to
19413                 try loading from name/name.dll and name/name.exe).
19414
19415                 2. It tries the search path specified in PrivateBinPath for the
19416                 current domain (if any).
19417
19418                 3. Previous behavior.
19419
19420 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
19421
19422         * icall.c: implemented GetInterfaceMap() related icall.
19423         * domain.c, loader.h: load MethodInfo in mono_defaults.
19424
19425 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
19426
19427         * gc.c: disable the finalizer thread for now, untill all the issues
19428         with it are resolved.
19429
19430 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19431
19432         * string-icalls.c: handle embedded nulls in string ctor when the
19433         length is specified.
19434
19435 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
19436
19437         * class.c: look for explicit interface implementation in parent
19438         classes, too.
19439
19440 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
19441
19442         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
19443
19444 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
19445
19446         * gc.c: protect handles with a critical section.
19447
19448 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19449
19450         * icall.c:
19451         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
19452         parameters. If no assembly specified, try getting the type from all
19453         the assemblies in the current domain, else, load the assembly and get
19454         the type from it.
19455
19456 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19457
19458         * marshal.c: applied patch from Aleksey Demakov that fixes
19459         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
19460
19461 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19462
19463         * icall.c: fixed get_location.
19464
19465 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
19466
19467         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
19468         declarations to make it work with older gcc. 
19469
19470         * loader.c (mono_get_method): set signature->pinvoke for native calls
19471
19472 2002-11-20  Dick Porter  <dick@ximian.com>
19473
19474         * threads.c (mono_thread_init): Set the main thread's handle
19475
19476 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
19477
19478         * gc.c: allow compilation without GC support. Changed to match the
19479         mono coding style.
19480
19481 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19482
19483         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
19484
19485 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
19486
19487         * reflection.c: set a public key token on the core assemblies.
19488
19489 2002-11-18  Dick Porter  <dick@ximian.com>
19490
19491         * threads.c: Split out some thread initialisation so that other
19492         files can set the start callback function.
19493
19494         * gc.c: Run finalisers in a separate thread, to avoid stack
19495         overflow.  Fixes bug 31333.
19496
19497         * appdomain.c: Set up GC finalisation thread.
19498
19499         * reflection.c: 
19500         * object.c: 
19501         * domain.c: Use gc.h macros for GC_malloc
19502         
19503 2002-11-15  Dick Porter  <dick@ximian.com>
19504
19505         * threadpool.c: 
19506         * threads.c:
19507         * appdomain.c: Removed mono_runtime_init_with_attach(),
19508         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
19509         merging the extra parameter with the existing function.  Removed
19510         unneeded code in mono_thread_attach().
19511
19512 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
19513
19514         * image.c (mono_image_loaded_by_guid): a method to get loaded
19515         images by guid. 
19516         (load_metadata_ptrs): we store the guid as string.
19517
19518 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
19519
19520         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
19521
19522         * metadata.c (mono_guid_to_string): imported method form Zoltan
19523         Varga (slightly modified)
19524
19525         * assembly.c (mono_assembly_open): load precompiled code
19526
19527         * loader.h (MonoMethod): we store the method token for use in the
19528         aot compiler. 
19529
19530 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19531
19532         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
19533         the hook function called when an assembly is loaded.
19534         
19535         * domain.c: Modified file.
19536         (mono_domain_assembly_load): removed hash table insertion of assemblies.
19537
19538         Fixes bug #33196.
19539
19540 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
19541
19542         * reflection.c: Map PEFileKind to the value expected by the WinNT
19543         image loader. 
19544
19545 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19546
19547         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
19548         Read until the buffer is filled completely.
19549
19550 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19551
19552         * icall.c: implemented MonoType.InternalGetEvent ().
19553
19554 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19555
19556         * appdomain.c: implemented InitAppDomainSetup. Delayed
19557         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
19558         the entry_assembly.
19559
19560         * assembly.c: base_dir is now an absolute path ending with
19561         G_DIR_SEPARATOR.
19562
19563         * icall.c: modified get_location according to the above changes.
19564
19565         * object.c: init AppDomain.SetupInformation for the default domain after
19566         we have the entry assembly.
19567
19568         * domain.c: when unloading a domain, setup = NULL.
19569
19570 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
19571
19572         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
19573
19574 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
19575
19576         * object.h, object.c: introduced mono_object_get_virtual_method ()
19577         to lookup the method invoked on an object when a callvirt is done on
19578         a method.
19579         * icall.c: make MethodInfo::Invoke() always do a virtual call.
19580
19581 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19582
19583         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
19584         current domain when loaded an assembly and failed to load it.
19585
19586         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
19587
19588 2002-10-31  Dick Porter  <dick@ximian.com>
19589
19590         * icall.c: 
19591         * file-io.h: 
19592         * file-io.c: Return the error status in a parameter, as the
19593         GetLastError() value has long since been blown away if we try and
19594         look it up in a subsequent internal call invocation.  Delete the
19595         GetLastError() internal call, because it's useless.
19596
19597 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
19598
19599         * class.[ch]: added cast_class to fix bug 29517
19600
19601 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
19602
19603         * marshal.c: create valid IL code in the filter clause:
19604         the new JIT is less forgiving:-)
19605
19606 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19607
19608         * icall.c: removed get_property internal call.
19609
19610 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
19611
19612         * appdomain.h domain.c: Added an ID to appdomains.
19613         
19614         * threads.c threads.h icall.c: Implement icall
19615         Thread:GetDomainID(), and remove unused icall 
19616         CurrentThreadDomain_internal.
19617
19618 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19619
19620         * icall.c: Don't recurse through the base types in GetConstructor.
19621         Fixes bug #32063. 
19622
19623 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
19624
19625         * mempool.h, mempool.c: added mono_mempool_empty() and
19626         mono_mempool_stats().
19627
19628 2002-10-23  Dick Porter  <dick@ximian.com>
19629
19630         * file-io.c: 
19631         * file-io.h: 
19632         * icall.c: Added MonoIO.GetFileType internal call
19633
19634 2002-10-17  Dick Porter  <dick@ximian.com>
19635
19636         * appdomain.c (mono_runtime_cleanup): Don't signal the async
19637         delegate semaphore before waiting for all threads to finish,
19638         because new threads can also call async delegates.  Fixes bug
19639         32004.
19640
19641         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
19642         of 3 seconds, in case another async job is queued.  (This part is
19643         needed because the bug fix reintroduced the 3s exit lag.)  This
19644         makes the mono_runtime_shutdown flag superfluous.
19645
19646 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
19647
19648         * reflection.c: include ehader size in method section headers.
19649         Really check for suplicated modules entries.
19650
19651 2002-10-17  Martin Baulig  <martin@gnome.org>
19652
19653         * debug-mono-symfile.c: Added back support for locals.
19654
19655 2002-10-14  Martin Baulig  <martin@gnome.org>
19656
19657         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
19658         MONO_TYPE_VOID.
19659
19660 2002-10-14  Martin Baulig  <martin@gnome.org>
19661
19662         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
19663         mono_class_get() instead of looking in the class cache. 
19664
19665 2002-10-13  Martin Baulig  <martin@gnome.org>
19666
19667         * debug-mono-symfile.c: Set version number to 28, include the
19668         signature in method names.
19669
19670 2002-10-13  Martin Baulig  <martin@gnome.org>
19671
19672         * debug-mono-symfile.h: Set version number to 27.
19673
19674 2002-10-11  Martin Baulig  <martin@gnome.org>
19675
19676         * gc.c: Don't register/unregister NULL pointers as disappearing links.
19677
19678 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19679
19680         * metadata.c, metadata.h: added helper function to allocate signatures.
19681
19682 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19683
19684         * icall.c: added internal call to get the location of machine.config.
19685
19686 2002-10-08  Martin Baulig  <martin@gnome.org>
19687
19688         * debug-mono-symfile.c: Ignore classes with a pending init for the
19689         moment.
19690
19691 2002-10-03  Dick Porter  <dick@ximian.com>
19692
19693         * threads.c: Freebsd pthread_t is a pointer
19694
19695 2002-10-03  Dick Porter  <dick@ximian.com>
19696
19697         * socket-io.c: Implemented GetHostName_internal
19698
19699 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19700
19701         * mono-config.c:
19702         (mono_config_parse_file): don't leak the text.
19703
19704 2002-10-02  Martin Baulig  <martin@gnome.org>
19705
19706         * debug-mono-symfile.c: Added support for methods.
19707
19708 2002-10-01  Martin Baulig  <martin@gnome.org>
19709
19710         * debug-mono-symfile.c: Don't emit methods and line numbers for
19711         the dynamic symbol file, just write the type table.  We can easily
19712         have an external helper program which creates a symbol file for an
19713         IL file.        
19714
19715 2002-10-01  Dick Porter  <dick@ximian.com>
19716
19717         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
19718         Only add the handle to the cleanup array when we're about to
19719         launch the thread.  Bug 31425 deadlocked when the test was run on
19720         mono under w32.
19721
19722 2002-10-01  Martin Baulig  <martin@gnome.org>
19723
19724         * debug-mono-symfile.c: Added support for properties.
19725
19726 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
19727
19728         * reflection.c: unaligned store fix from Mark Crichton
19729         <crichton@gimp.org>.
19730
19731 2002-09-27  Martin Baulig  <martin@gnome.org>
19732
19733         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
19734         New interncall.
19735
19736 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
19737
19738         * assembly.h, assembly.c: use a sane API to hook into the assembly
19739         loading process instead of a useless special-purpouse hack
19740         (ngen needs a hook, too, for example).
19741
19742 2002-09-27  Dick Porter  <dick@ximian.com>
19743
19744         * threads.c (mono_thread_init): Call GetCurrentProcess() so
19745         io-layer can set up some process handle info.  Not needed on w32,
19746         but doesn't hurt either.
19747
19748         * process.c: Pass the program name in the second parameter to
19749         CreateProcess, so the path is searched.  Include the working
19750         directory. Implemented process name, process enumeration, and some
19751         process detail internal calls.
19752         
19753         * icall.c: Added internal calls for process lookup, and some
19754         process details
19755
19756 2002-09-26  Martin Baulig  <martin@gnome.org>
19757
19758         * assembly.c (mono_install_open_assembly_hook): New global
19759         function to install a function to be invoked each time a new
19760         assembly is loaded.
19761         (mono_assembly_open): Run this callback function if set.
19762
19763         * debug-mono-symfile.c: Put back line numbers for the dynamic
19764         symbol file and also record the .il file as source file.  This
19765         allows us to install the temporary symbol file as `file.dbg' just
19766         like a compiler-generated one.
19767
19768 2002-09-26  Nick Zigarovich <nick@chemlab.org>
19769
19770         * Corrected typo in gc.c (BOHEM vs BOEHM).
19771
19772 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19773
19774         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
19775         GetProperties. Also avoid calling g_slist_length in GetProperties and
19776         GetMethods.
19777
19778 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
19779
19780         * reflection.c: avoid unaligned stores (bug spotted by
19781         Mark Crichton  <crichton@gimp.org>).
19782
19783 2002-09-25  Martin Baulig  <martin@gnome.org>
19784
19785         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
19786         instead of guint64 for addresses and added prologue/epilogue info.
19787
19788 2002-09-25  Martin Baulig  <martin@gnome.org>
19789
19790         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
19791         store line number info.  For the dynamic symbol file, we only need
19792         to provide the JIT generated dynamic line number info for the dynamic
19793         symbol file.
19794
19795 2002-09-25  Martin Baulig  <martin@gnome.org>
19796
19797         * debug-mono-symfile.h: Incremented version number.
19798
19799 2002-09-24  Martin Baulig  <martin@gnome.org>
19800
19801         * class.c (mono_debugger_class_init_func): New global function
19802         pointer variable.
19803         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
19804         call it.
19805
19806         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
19807         function.  This is called via the mono_debugger_class_init_func
19808         hook to add all types to the dynamic type table.
19809         (ves_icall_MonoDebugger_GetType): New interncall to get a class
19810         from its metadata token.
19811
19812         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
19813         New interncall for the debugger.
19814
19815 2002-09-24  Nick Drochak <ndrochak@gol.com>
19816
19817         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
19818         before using it in case it is null.
19819         
19820 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19821
19822         * metadata.c: allow custom modifiers in local var signatures
19823         (bug spotted by Zoltan Varga).
19824
19825 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
19826
19827         * class.c: deal with the <Module> class that may have a NULL vtable.
19828         Eliminate warnings.
19829
19830 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19831
19832         * image.c, image.h: more strong name helpers.
19833         * monosn.c: more work: convert pem keys to cryptoapi format.
19834
19835 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
19836
19837         * string-icalls.c: speedup IndexOf.
19838
19839 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19840
19841         * icall.c: updates from Zoltan.2.Varga@nokia.com.
19842
19843 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19844
19845         * icall.c: cleanup: use mono_object_domain ().
19846
19847 2002-09-23  Martin Baulig  <martin@gnome.org>
19848
19849         * debug-mono-symfile.c: Improved type support.
19850
19851 2002-09-22  Martin Baulig  <martin@gnome.org>
19852
19853         * debug-mono-symfile.c: Added support for reference types and strings.
19854
19855 2002-09-22  Martin Baulig  <martin@gnome.org>
19856
19857         * debug-mono-symfile.c: Started to work on the type table.
19858
19859 2002-09-21  Martin Baulig  <martin@gnome.org>
19860
19861         * debug-mono-symfile.c: Largely reworked the symbol table format.
19862         The symbol table is now incrementally updated each time a new
19863         method is added.  We're now also using our own magic and version
19864         so that you don't need to recompile all your classes if the
19865         dynamic table changes.
19866         (mono_debug_update_mono_symbol_file): Removed.
19867         (mono_debug_symfile_add_method): New function to add a method.
19868
19869 2002-09-21  Martin Baulig  <martin@gnome.org>
19870
19871         * icall.c
19872         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
19873         New interncall.
19874
19875         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
19876         New interncall to get a method from its metadata token.
19877
19878 2002-09-21  Martin Baulig  <martin@gnome.org>
19879
19880         * debug-mono-symfile.c: Create type table.
19881
19882 2002-09-20  Martin Baulig  <martin@gnome.org>
19883
19884         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
19885
19886 2002-09-20  Martin Baulig  <martin@gnome.org>
19887
19888         * debug-mono-symfile.c: Provide information about params and locals.
19889
19890 2002-09-20  Martin Baulig  <martin@gnome.org>
19891
19892         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
19893         New interncall.
19894
19895         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
19896         interncall to get a method from its metadata token.
19897
19898 2002-09-20  Martin Baulig  <martin@gnome.org>
19899
19900         * debug-mono-symfile.c: Added a few checks for method->header
19901         being non-NULL.  This should never happen, but for the moment
19902         let's use a g_warning() rather than a g_assert().
19903
19904 2002-09-19  Mark Crichton  <crichton@gimp.org>
19905
19906         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
19907         even if support for it isn't present.  Added an #ifdef to fix this.
19908
19909         * socket-io.c: Added checks back for Solaris support.
19910
19911 2002-09-19  Martin Baulig  <martin@gnome.org>
19912
19913         * debug-mono-symfile.c (read_string, write_string): Reflect latest
19914         changes in the symbol file format.
19915
19916 2002-09-18  Martin Baulig  <martin@gnome.org>
19917
19918         * debug-mono-symfile.c: Set version number to 21.
19919
19920 2002-09-18  Dick Porter  <dick@ximian.com>
19921
19922         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
19923         on netbsd.  Fixes bug 30051.
19924
19925 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19926
19927         * reflection.c:
19928         (set_version_from_string): little fix.
19929
19930 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19931
19932         * monosn.c, Makefile.am: added strong name utility.
19933         * reflection.h, reflection.c: implemented delayed signing,
19934         locale, version and hash id assembly attributes.
19935
19936 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
19937
19938         * loader.c, metadata.c: load param attributes in signatures.
19939
19940 2002-09-16  Martin Baulig  <martin@gnome.org>
19941
19942         * debug-mono-symfile.c: Added string table with all method names.
19943
19944 2002-09-14  Martin Baulig  <martin@gnome.org>
19945
19946         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
19947         fast method lookup.
19948
19949 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
19950
19951         * reflection.c: record the public key token of referenced assemblies.
19952
19953 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19954
19955         * image.c, image.h: added functions to get the strong name and the
19956         public key of an assembly.
19957         * pedump.c: use them.
19958
19959 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
19960
19961         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
19962
19963 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
19964
19965         * marshal.c (mono_marshal_get_managed_wrapper): Added
19966         MONO_TYPE_BOOLEAN 
19967
19968 2002-09-11  Martin Baulig  <martin@gnome.org>
19969
19970         * gc.c: Call GC_unregister_disappearing_link() on all links when
19971         finalizing them, this is necessary to aviod a crash in boehm's
19972         finalize handler.
19973
19974 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19975
19976         * gc.c: handle GetTarget for finalized objects spotted and fixed by
19977         nick@chemlab.org.
19978
19979 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
19980
19981         * icall.c: implemented MonoType::Module.
19982         * reflection.c, reflection.h: mono_module_get_object () from
19983         Tomi Pakarinen <tomi.pakarinen@welho.com>.
19984
19985 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
19986
19987         * icall.c: ignore overridden methods in GetMethods ().
19988         Fix for FieldInfo::SetValue().
19989         * object.c: handle float/double in runtime invoke.
19990
19991 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
19992
19993         * object.c: allow a constructor to be called again on an object.
19994
19995 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19996
19997         * class.h, class.c: move field layout code to it's own function and
19998         export it. Get an interface id earlier. Move fields in MonoClass
19999         so they are more cache friendly and align the bitfields.
20000         * loader.c: temporary handle get_param_names() for a runtime method.
20001         * reflection.c, reflection.h: more code to handle runtime creation of
20002         types.
20003
20004 2002-09-09  Martin Baulig  <martin@gnome.org>
20005
20006         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
20007         signature with the pinvoke field being set for the actual call.
20008
20009 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20010
20011         * icall.c: removed some unused icalls. Start of map of glib charsets
20012         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
20013
20014 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
20015
20016         * debug-helpers.c: break infinite loop (found and fixed by
20017         Holger Arnold <harnold@gmx.de>).
20018
20019 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
20020
20021         * icall.c: target may be null in create_delegate.
20022
20023 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
20024
20025         * marshal.c: handle a boolean return type.
20026
20027 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
20028
20029         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
20030
20031 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
20032
20033         * gc.c: fix weakreferences.
20034
20035 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
20036
20037         * icall.c: added icall to get default codepage.
20038
20039 2002-09-03  Dick Porter  <dick@ximian.com>
20040
20041         * threads.h: 
20042         * threads.c: Use MonoThread instead of MonoObject where
20043         apropriate.
20044
20045         Store running thread objects in a hash table, so that we have all
20046         the info to hand when waiting for them to finish
20047         (means we don't need OpenThread() any more, so mingw builds should
20048         be fully functional again.)
20049
20050         * verify.c:
20051         * object.h: Added thread ID to MonoThread
20052
20053 2002-09-03  Martin Baulig  <martin@gnome.org>
20054
20055         * icall.c (System.Reflection.Assembly::get_location): New interncall.
20056
20057 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20058
20059         * icall.c: fixed leak in get_temp_path. Thanks lupus.
20060
20061 2002-09-03  Martin Baulig  <martin@gnome.org>
20062
20063         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
20064         argument to store the end address of the disassembled instruction.
20065
20066         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
20067         here from debug-symfile.h.
20068         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
20069         JIT into this struct.
20070         (MonoSymbolFile): Added `char *image_file' field.
20071         (MonoDebugGetMethodFunc): Removed.
20072         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
20073         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
20074         (mono_debug_find_method): New method.
20075
20076         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
20077         create a full symbol file.
20078         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
20079         and static symbol files.
20080         (mono_debug_find_method): The symbol file keeps an internal method hash,
20081         call this to get a MonoDebugMethodInfo from a MonoMethod.
20082
20083         * debug-symfile.[ch]: Removed.
20084
20085 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
20086
20087         * image.c (do_mono_image_open): Remove linker version check.
20088
20089 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
20090
20091         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
20092         wrappers for instance methods.
20093         
20094 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20095
20096         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
20097
20098 2002-08-28  Dick Porter  <dick@ximian.com>
20099
20100         * Makefile.am: Export HOST_CC for w32 builds
20101
20102 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20103
20104         * file-io.c process.c: MonoString are null terminated, no
20105         need for mono_string_to_utf16() anymore.
20106
20107 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20108
20109         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
20110
20111 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
20112
20113         * icall.c, reflection.h: speedup System.MonoType.
20114
20115 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20116
20117         * reflection.c: allow null as the value of a string argument in
20118         custom attributes constructors.
20119
20120 2002-08-27  Martin Baulig  <martin@gnome.org>
20121
20122         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
20123         `trampoline_address' field.
20124
20125 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
20126
20127         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
20128         check (fixes bug #29486) 
20129
20130 2002-08-27  Martin Baulig  <martin@gnome.org>
20131
20132         * debug-mono-symfile.c: Changed the file format in a way that allows us
20133         open it read-only and to use a specially malloced area for all the
20134         dynamic data.  We can now also generate a symbol file on-the-fly if we're
20135         debugging IL code and there is no MCS generated symbol file for it.
20136
20137 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
20138
20139         * object.c: added a define for a good string and array
20140         creation speedup (not enabled by default because we need to deal with
20141         the synch stuff).
20142
20143 2002-08-26  Martin Baulig  <martin@gnome.org>
20144
20145         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
20146         function to create a dynamic symbol file.  This is used by the
20147         debugger to create a symbol file for IL code on-the-fly.
20148
20149 2002-08-26  Martin Baulig  <martin@gnome.org>
20150
20151         * loader.c (mono_lookup_pinvoke_call): Include the error message
20152         from g_module_error() in the error message.
20153
20154 2002-08-24  Martin Baulig  <martin@gnome.org>
20155
20156         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
20157         function to update the symbol file.  The symbol file is mmap()ed
20158         writable, but private.  This allows us to install the symbol file
20159         together with the assembly.
20160
20161 2002-08-24  Martin Baulig  <martin@gnome.org>
20162
20163         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
20164         but they can read the new symbol file format which mcs is now creating.
20165
20166         * debug-symfile.c (mono_debug_find_source_location): Moved to
20167         debug-mono-symfile.c; this is now operating on the new symbol file.
20168
20169 2002-08-23  Martin Baulig  <martin@gnome.org>
20170
20171         * debug-helpers.c (mono_method_desc_from_method): New function to get
20172         a MonoMethodDesc from a MonoMethod.
20173
20174 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
20175
20176         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
20177         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
20178
20179 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
20180
20181         * string-icalls.[ch]: make helper methods static.
20182
20183 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20184
20185         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
20186         types to it and to SetValueInternal.
20187
20188         * object.c: Moved handle_enum label to its proper place. This was the
20189         f... bug! ;-)
20190
20191         This time i compiled mcs and gtk-sharp and they both work.
20192
20193 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20194
20195         * icall.c: reverted partially my previous patch until 
20196         object.c:set_value handles enums correcly.
20197
20198 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20199
20200         * icall.c:
20201         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
20202         (ves_icall_System_Environment_get_MachineName): removed warning when
20203         compiling under cygwin.
20204
20205 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20206
20207         * object.c: fixed field_get_value() for reference types.
20208
20209 2002-08-22  Dick Porter  <dick@ximian.com>
20210
20211         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
20212         Don't free a buffer while it's still needed.  Patch from Jonathan
20213         Liger <Jonathan.liger@wanadoo.fr>
20214
20215 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
20216
20217         * icall.c (ves_icall_System_Environment_get_Platform): Add new
20218         internal call.
20219
20220 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
20221
20222         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
20223         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
20224
20225         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
20226         we call unmanaged code which throws exceptions.
20227
20228 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
20229
20230         * appdomain.h: added per-domain entry_assembly.
20231         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
20232         arguments.
20233         * icall.c: Assembly::GetEntryAssembly icall.
20234         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
20235         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
20236
20237 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
20238
20239         * appdomain.h, gc.c: added mono_domain_finalize ().
20240
20241 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20242
20243         * object.c:
20244         (mono_print_unhandled_exception): changed g_warning by g_printerr
20245         because g_log has a 1024 characters limit (yeah, i got a big stack
20246         trace). Don't print exception name, that should be in ToString 
20247         returned string.
20248
20249 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20250
20251         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
20252         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
20253
20254 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20255
20256         * object.c:
20257         (mono_print_unhandled_exception): after previous commit, i realized
20258         that MS calls ToString on the exception. I changed this function to
20259         do that. This way we get stack_trace for free.
20260
20261 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20262
20263         * object.c:
20264         (mono_print_unhandled_exception): invoke Message property instead of
20265         getting 'message' field from Exception. Don't allocate memory for
20266         'trace' and 'message' if not needed.
20267
20268 2002-08-18  Dick Porter  <dick@ximian.com>
20269
20270         * unicode.c: Fix asserts to match Encoder.cs checks
20271
20272 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20273
20274         * marshal.c: fix unaligned store issue and a few wrong
20275         opcode argument types.
20276
20277 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20278
20279         * icall.c: added GetUninitializedObjectInternal internal call.
20280
20281 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
20282
20283         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
20284         to the right domain.
20285
20286 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
20287
20288         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
20289
20290         * class.c (class_compute_field_layout): set blittable to false for Strings
20291
20292         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
20293
20294 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20295
20296         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
20297         first chunk of code to create types at runtime. Code to
20298         handle ReflectedType/DeclaringType. Make reflection handles
20299         domain specific.
20300
20301 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
20302
20303         * class.c: set correct name in arrays.
20304
20305 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
20306
20307         * appdomain.c (mono_domain_transfer_object): make it work with
20308         valuetypes. bug fixes.
20309
20310 2002-08-12  Dick Porter  <dick@ximian.com>
20311
20312         * object.h: Rename some parameters to avoid c++ keywords (Patch
20313         from Joseph Wenninger <kde@jowenn.at>)
20314
20315 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
20316
20317         * icall.c: added icall to implement Assembly.GetFile*.
20318
20319 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
20320
20321         * reflection.h, reflection.c: code to embed managed resources.
20322
20323 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
20324
20325         * class.c: move all the type size stuff into
20326         class_compute_field_layout().
20327
20328 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
20329
20330         * class.c: ensure enums have always the correct instance size.
20331         * unicode.c: remove wrong assert.
20332
20333 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
20334
20335         * assembly.c: fix mem corruption issue.
20336         * image.h, image.c: added mono_image_get_resource () to access
20337         managed resources.
20338         * icall.c: implemented Assembly.EntryPoint property and some
20339         Managed Resources related internalcalls.
20340
20341
20342 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
20343
20344         * image.c, image.h: impemented mono_image_get_entry_point ().
20345         * appdomain.c: use mono_image_get_entry_point.
20346
20347 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
20348
20349         * reflection.c: support the object type argument when loading
20350         custom attributes.
20351
20352 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
20353
20354         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
20355         String as return type.
20356
20357 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
20358
20359         * reflection.c: fix encoding of named args for custom attrs to match
20360         the ms implementation. Read them back when instantiating custom
20361         attributes.
20362
20363 2002-08-02  Radek Doulik  <rodo@ximian.com>
20364
20365         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
20366         by Dietmar as quick fix
20367         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
20368         16 as stack size, used on more places as quick fix before Dietmar
20369         will fix it properly
20370
20371 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
20372
20373         * object.h, object.c: added accessors for fields and properties.
20374
20375 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
20376
20377         * class.c, class.h: made mono_class_get_field_from_name ()
20378         loop on parent types.
20379         Added mono_class_get_property_from_name ().
20380
20381 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20382
20383         * class.c, class.h: move the code to setup the type vtable in its own
20384         function so that it can be reused also for types created at runtime.
20385         Eliminate the "class" identifier from the header file.
20386         * reflection.c: setup the vtable for enums so that we can create
20387         objects for use in SetConstant ().
20388
20389 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
20390
20391         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
20392         instead of the delegate itself as this pointer (bug #28383)
20393
20394 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
20395
20396         * marshal.c (mono_marshal_get_managed_wrapper): added return type
20397         conversions.
20398
20399 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20400
20401         * loader.c: don't set the pinvoke bit on icalls.
20402
20403 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
20404
20405         * debug-helpers.c (mono_method_full_name): only print a number to
20406         indicate wrapper type (so that the output is more readable in traces).
20407
20408 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
20409
20410         * class.c (mono_class_init): include method override patch from Paolo
20411
20412 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
20413
20414         * icall.c: fixed GetTypeCode().
20415
20416 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
20417
20418         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
20419         use real delegate invoke function to make it work with multicast
20420         delegates (fix bug# 28291).
20421
20422 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20423
20424         * object.c: load constant strings.
20425
20426 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20427
20428         * reflection.c: no magic numbers.
20429         * tabledefs.h: security action enum.
20430
20431 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20432
20433         * assembly.c: fix possible memory corruption.
20434
20435 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
20436
20437         * reflection.h, reflection.c: added support for linking resources.
20438         * verify.c: check we have an updated corlib.
20439
20440 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
20441
20442         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
20443         string arrays.
20444         (mono_marshal_string_array): null terminate unmanaged string arrays.
20445         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
20446
20447 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20448
20449         * icall.c: Type.GetType () can now return also types from the
20450         calling assembly.
20451
20452 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
20453
20454         * loader.h, loader.c: stack walking support.
20455         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
20456         GetCallingAssembly.
20457
20458 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
20459
20460         * marshal.c: added optimisations for blittable types 
20461
20462         * class.c (mono_array_class_get): do not set blittable attribute on arrays
20463         (mono_class_setup_mono_type): set blittable attribute for single
20464         and double.
20465
20466         * marshal.c (mono_string_utf8_to_builder): impl.
20467         (mono_string_builder_to_utf8): impl.
20468         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
20469
20470 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
20471
20472         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
20473         (mono_marshal_get_managed_wrapper): impl. byref types
20474
20475 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20476
20477         * icall.c:
20478         (search_method): don't display debug message. 
20479
20480 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
20481
20482         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
20483
20484 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
20485
20486         * appdomain.c: set the missing filename when throwing exception.
20487
20488 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
20489
20490         * metadata.c (mono_type_size): code cleanup
20491         (mono_type_stack_size): removed some test code
20492
20493 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
20494
20495         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
20496         mono_get_exception_file_not_found now.
20497
20498         * exception.c (mono_exception_from_name_two_strings): New version
20499         that will call a constructor with two string arguments. 
20500         (mono_get_exception_file_not_found): New helper routine, used to
20501         report file-not-found errors.
20502
20503 2002-07-20  Dick Porter  <dick@ximian.com>
20504
20505         * process.h:
20506         * process.c: Pass file handles to CreateProcess
20507         
20508         * icall.c:
20509         * file-io.h:
20510         * file-io.c: Implemented CreatePipe
20511
20512 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
20513
20514         * metadata.c (mono_get_param_info): set alignment for value types
20515
20516 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20517
20518         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
20519         Constify mono_domain_assembly_open().
20520         * loader.c: handle null namespace in icalls.
20521
20522 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
20523
20524         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
20525         (emit_str_to_ptr_conv): marshal object as structs
20526
20527         * metadata.c (mono_type_to_unmanaged): marshal object as structs
20528
20529         * marshal.c (mono_marshal_get_runtime_invoke): support value types
20530
20531 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
20532
20533         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
20534         (mono_marshal_get_native_wrapper): we an now return value types
20535
20536 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20537
20538         * verify.c: more checks implemented.
20539
20540 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
20541
20542         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
20543         (fix bug #27695)
20544         (mono_marshal_get_native_wrapper): allow byref arguments
20545         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
20546         impl. PtrToStringXXX methods
20547         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
20548         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
20549         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
20550         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
20551         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
20552
20553 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20554
20555         * reflection.c: fix buglet in parsing an assembly name.
20556
20557 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
20558
20559         * marshal.c (emit_ptr_to_str_conv): first impl.
20560
20561 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
20562
20563         * object.c, class.h: cache the vtable in the class as suggested by
20564         vargaz@freemail.hu (Zoltan Varga).
20565
20566 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20567
20568         * class.h, loader.c: added mono_field_from_token().
20569         * verify.c: first cut of type checking code.
20570
20571 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
20572
20573         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
20574
20575 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
20576
20577         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
20578         (fix bug #27782)
20579         (mono_marshal_get_remoting_invoke): impl.
20580         (mono_delegate_begin_invoke): impl.
20581         (mono_mb_emit_save_args): impl.
20582         (mono_delegate_end_invoke): impl.
20583         (mono_marshal_get_delegate_begin_invoke):
20584         (mono_marshal_get_delegate_end_invoke):
20585         (mono_marshal_get_delegate_invoke): generate a special name for
20586         those methods (including the signature) and associate them whith
20587         the delegate class. 
20588
20589 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
20590
20591         * reflection.[ch]: 
20592         (mono_reflection_type_from_name): now it has a MonoImage parameter
20593         which is used as the default image to search the type in. If the image
20594         is NULL or getting the type from it fails, it defaults to corlib.
20595
20596         * icall.c: changed 1 call to mono_reflection_type_from_name to match
20597         new parameter.
20598
20599 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20600
20601         * reflection.c: update the parameter table index.
20602
20603 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
20604
20605         * domain.c: don't include the mark byte in the string hash.
20606
20607 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
20608
20609         * icall.cs: icall for Type.GetTypeCode ().
20610         * verify: a couple of fixes and disabled local initialization checks.
20611
20612 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
20613
20614         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
20615
20616         * debug-helpers.c (mono_method_full_name): print the type of the
20617         runtime wrapper
20618
20619         * metadata.c (mono_signature_hash): a hash function for signatures
20620         (mono_signature_hash): better hash algorithm
20621
20622         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
20623
20624         * debug-helpers.c (mono_method_full_name): this can now generate
20625         method names with signatures
20626
20627         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
20628         method dont have this pointers.
20629
20630 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
20631
20632         * reflection.c: fixup typebuilder tokens.
20633         * image.c: fix buglet.
20634         * marshal.h: remove whitespace.
20635         * metadata.h, metadata.c: reinstate code that was removed.
20636         * verify.c: handle catch directives and fix another couple of bugs.
20637
20638 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
20639
20640         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
20641         (mono_marshal_get_native_wrapper): make it comp. with the old code
20642         (mono_marshal_get_native_wrapper): support boolean
20643         (mono_marshal_get_managed_wrapper): support more types
20644
20645 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
20646
20647         * class.c (class_compute_field_layout): compute class->blittable attribute.
20648
20649 2002-07-09  Dick Porter  <dick@ximian.com>
20650
20651         * threads.c: Make the thread cleaning up cope with threads that
20652         call ExitThread()
20653
20654 2002-07-08  Radek Doulik  <rodo@ximian.com>
20655
20656         * reflection.c (method_encode_code): use non-translated values to
20657         compute finally_start, this fixes exception handling on ppc, yay!
20658
20659         * decimal.h (struct signscale): fix endianess
20660
20661 2002-07-07  Radek Doulik  <rodo@ximian.com>
20662
20663         * reflection.c: swap box_val and not val
20664
20665 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
20666
20667         * reflection.c, reflection.h: handle full assembly info in type name.
20668         Handle Type arguments when loading custom attributes.
20669         * icall.c: updated to use new mono_reflection_type_from_name () method.
20670
20671 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20672
20673         * loader.c:
20674         (method_from_memberref): also print assembly name when method not found.
20675
20676 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20677
20678         * icall.c:
20679         (ves_icall_TypeGetProperties): fixed bug #27473. 
20680
20681 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20682
20683         * reflection.c: display image name and token when cannot find the
20684         .ctor for an attribute.
20685
20686 2002-07-05  Martin Baulig  <martin@gnome.org>
20687
20688         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
20689
20690 2002-07-04  Dick Porter  <dick@ximian.com>
20691
20692         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
20693         compile on mingw.  This will cause mingw builds to not wait for
20694         subthreads to terminate after the main thread does.  I've lodged a
20695         bug with the mingw developers for them to wrap OpenThread().
20696
20697 2002-07-03  Dick Porter  <dick@ximian.com>
20698
20699         * threads.c: Store thread IDs instead of handles, because
20700         GetCurrentThread() returns a pseudohandle and therefore stores
20701         useless values.  mono_thread_cleanup() continues checking the
20702         array of threads until it is empty, to cope with subthreads
20703         spawning new threads after the main thread has finished.
20704
20705         * profiler.h:
20706         * profiler.c:
20707         * profiler-private.h: Pass the thread ID to thread profiler
20708         functions, instead of a handle
20709
20710 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20711
20712         * verify.c: fixes to make it more usable.
20713         * pedump.c: added --verify code to verify IL code in an assembly.
20714
20715 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20716
20717         * reflection.c: turn errors into warnings to allow compiling corlib.
20718
20719 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
20720
20721         * reflection.c: add special cases to compile corlib.
20722
20723 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20724
20725         * reflection.c: handle properties with only a set method.
20726
20727 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20728
20729         * opcodes.h: add enum with opcodes in opval order.
20730
20731 2002-07-01  Dick Porter  <dick@ximian.com>
20732         
20733         * object.h:
20734         * object.c (mono_runtime_run_main): Removed unneeded argument
20735
20736 2002-06-28  Martin Baulig  <martin@gnome.org>
20737
20738         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
20739
20740 2002-06-27  Dick Porter  <dick@ximian.com>
20741
20742         * threads.c: Store the handle in both the parent thread and in the
20743         subthread, to minimise the time between starting a new thread and
20744         storing its ID.
20745
20746 2002-06-26  Dick Porter  <dick@ximian.com>
20747
20748         * appdomain.c (mono_runtime_cleanup): Close the socket library
20749         after all the threads have finished, not before
20750
20751 2002-06-26  Martin Baulig  <martin@gnome.org>
20752
20753         * debug-symfile.c (mono_debug_find_source_location): Added
20754         `guint32 *line_number' argument.  If it's not NULL, store the line number
20755         there and return the file name without the line number.
20756
20757 2002-06-25  Dick Porter  <dick@ximian.com>
20758
20759         * icall.c:
20760         * process.h:
20761         * process.c: Process forking and other support functions
20762
20763 2002-06-25  Dick Porter  <dick@ximian.com>
20764
20765         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
20766         things dont happen when the image is closed.
20767         (mono_image_lookup_resource): Walk the resource section looking
20768         for a particular entry
20769
20770         * cil-coff.h: PE resource section decoding
20771
20772 2002-06-25  Dick Porter  <dick@ximian.com>
20773         
20774         * assembly.h:
20775         * assembly.c: 
20776         (mono_assembly_foreach): Accessor functions to walk the list of
20777         loaded assemblies
20778         (mono_assembly_set_main):
20779         (mono_assembly_get_main): Process methods need to know which
20780         assembly is the "main" one
20781
20782         * object.c (mono_runtime_run_main): Record the main assembly
20783
20784         * debug-helpers.c: Fix typo
20785
20786 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
20787
20788         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
20789         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
20790
20791 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20792
20793         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
20794
20795 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
20796
20797         * image.c (do_mono_image_open): Initialize reference count,
20798         otherwise we leak the MonoImage.
20799
20800 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
20801
20802         * reflection.c: small tweak to handle self-hosting.
20803
20804 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
20805
20806         * reflection.c: fix type name parse code.
20807
20808 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20809
20810         * reflection.c: break out of the loop.
20811         * image.c: special case corlib.
20812
20813 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20814
20815         * reflection.c: add all the custom attrs at the end to ensure the
20816         ctors have been properly initialized when the attributes are defined
20817         in the current assembly.
20818
20819 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20820
20821         * reflection.c: handle correctly multiple-nested types.
20822
20823 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
20824
20825         * row-indexes.h: fix typos.
20826         * reflection.c: adjust for typos and fix method_def_or_ref
20827         encoding in MethodImpl table.
20828
20829 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20830
20831         * reflection.c: fix entry point patching (thanks Serge!).
20832
20833 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
20834
20835         * verify.c: add check for System.Exception
20836
20837 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
20838
20839         * image.c, class.c: minifix for code just c&p'ed.
20840         * reflection.c: warning fix.
20841         * object.h, loader.h, domain.c: load also StringBuilder.
20842
20843 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20844
20845         * marshal.h, marshal.c: some support code to handle complex marshaling.
20846
20847 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20848
20849         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
20850         Better signatures with vtable error dump.
20851
20852 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
20853
20854         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
20855
20856 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
20857
20858         * icall.c (ves_icall_Type_GetField): impl.
20859
20860 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20861
20862         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
20863         to retrieve a marshal description blob for a field or param.
20864
20865 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
20866
20867         * reflection.h, reflection.c: change order of nested type emission
20868         to avoid table corruption. The NestedTypes table is sorted.
20869         * icall.c: change order of GetConstructor results to workaround mcs bug.
20870
20871 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20872
20873         * reflection.h, reflection.c: handle field and param marshal
20874         information.
20875
20876 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20877
20878         * icall.c, marshal.c marshal.h: more Marshal class implementation.
20879
20880 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20881
20882         * reflection.c: fix call convention.
20883
20884 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20885
20886         * reflection.h, reflection.c: mono_image_get_memberref_token()
20887         takes a type instead of a class, now. Added
20888         mono_image_get_array_token() to create tokens for the special
20889         multi-dim array methods.
20890
20891 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20892
20893         * assembly.c: handle modules (no assembly table). Split
20894         loading references in its own function.
20895         * class.c: handle moduleref resolution scope.
20896         * image.c, image.h: cache module name in image.
20897
20898 2002-06-07  Martin Baulig  <martin@gnome.org>
20899
20900         * reflection.c (mono_image_get_type_info): Only add a class layout entry
20901         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
20902
20903 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20904
20905         * icall.c: more signature fixes that used uint instead of int.
20906
20907 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20908
20909         * reflection.c: fixed signature of field refs.
20910
20911 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20912
20913         * class.c, reflection.c: handle typerefs of nested types
20914         (both on read and when writing files).
20915
20916 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
20917
20918         * icall.c: fix method signatures that tried to workaround the previous
20919         typo, d'oh!
20920
20921 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
20922
20923         * debug-helpers.c: fix typo.
20924
20925 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
20926
20927         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
20928         rewrote the PE/COFF writing code (our programs are understood by the
20929         ms runtime, now).
20930
20931 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
20932
20933         * gc.c, gc.h, icall.c: weakreference support.
20934
20935 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20936
20937         * Makefile.am, mono-config.c: use $(sysconfdir).
20938
20939 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20940
20941         * icall.c: changed default precision of Double.ToString() to 15.
20942         Fixed memory leak. Unified with Single.ToString.
20943
20944 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
20945
20946         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
20947
20948 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
20949
20950         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
20951         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
20952         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
20953         and myself.
20954
20955 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20956
20957         * debug-symfile.c, sysmath.c: yet more compilation fixes.
20958
20959 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20960
20961         * reflection.c, socket-io.c: more compilation fixes.
20962
20963 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20964
20965         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
20966         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
20967         unicode.c: warning and compiler compatibility fixes.
20968
20969 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20970
20971         * class.h, metadata.c: fixed warnings/compilation errors.
20972
20973 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20974
20975         * Makefile.am, mono-config.c, mono-config.h: configuration file
20976         support routines.
20977         * loader.c, loader.h: make Dll mapping configurable at runtime in the
20978         config file. Export methods to insert and lookup mappings.
20979
20980 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
20981
20982         * reflection.c: handle types and boxed objects in custom attr
20983         constructors.
20984
20985 2002-05-30  Martin Baulig  <martin@gnome.org>
20986
20987         * debug-symfile.c
20988         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
20989
20990 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
20991
20992         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
20993         to lookup the implmap row for a P/Invoke method.
20994         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
20995         P/Invoke method from the runtime on an as needed basis.
20996
20997 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
20998
20999         * metadata.c (mono_metadata_parse_signature): impl.
21000
21001 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
21002
21003         * class.c: handle .pack directive.
21004
21005 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
21006
21007         * object.c: initialize static fields with RVA data.
21008
21009 2002-05-25  Martin Baulig  <martin@gnome.org>
21010
21011         * debug-symfile.c
21012         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
21013
21014 2002-05-24  Martin Baulig  <martin@gnome.org>
21015
21016         * debug-symfile.c
21017         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
21018         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
21019         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
21020
21021 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
21022
21023         * object.c: special case string ctros in invoke.
21024         * gc.c: silly whitespace changes.
21025
21026 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
21027
21028         * threadpool.[ch]: impl. a threadpool that can
21029         be used by mint and mono.
21030
21031 2002-05-22  Martin Baulig  <martin@gnome.org>
21032
21033         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
21034         The first argument is now a `MonoReflectionModuleBuilder *', the return
21035         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
21036         `methods' field to get the method builder.  The `token' argument is the
21037         unfixed token.
21038
21039         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
21040         invalid characters instead of g_assert_not_reached()ing.  This seems
21041         to be the behaviour of mscorlib.
21042
21043 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
21044
21045         * object.c (mono_runtime_invoke_array): applied patch from Rachel
21046         Hestilow to fix bug #25104
21047
21048 2002-05-21  Martin Baulig  <martin@gnome.org>
21049
21050         * debug-symfile.c (mono_debug_find_source_location): New function.
21051         Looks up an IL offset in the line number table and returns the source
21052         location as a string.
21053
21054 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21055
21056         * icall.c:
21057         (mono_double_ToStringImpl): changed %f by %g until we have something
21058         better.
21059
21060 2002-05-21  Nick Drochak  <ndrochak@gol.com>
21061
21062         * icall.c : Use different name for Math.Pow's icall.  Needed to check
21063         parameters first in C#.
21064
21065 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
21066
21067         * icall.c, reflection.h: added icall to get info about an event.
21068
21069 2002-05-20  Radek Doulik  <rodo@ximian.com>
21070
21071         * object.c (mono_value_box): don't use memcpy for boxing on BIG
21072         endian
21073         (mono_value_box): don't use memcpy for small sizes on
21074         architectures with unaligned access
21075
21076 2002-05-20  Martin Baulig  <martin@gnome.org>
21077
21078         * reflection.c (mono_reflection_setup_internal_class): Don't crash
21079         if `tb->parent == NULL'.
21080         (mono_reflection_create_internal_class): New function.  This is
21081         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
21082         for enum types.
21083
21084         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
21085         New interncall.
21086
21087 2002-05-19  Martin Baulig  <martin@gnome.org>
21088
21089         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
21090         argument to get the length, don't default to the array length.
21091
21092 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
21093
21094         * assembly.c (mono_assembly_setrootdir): New function used to
21095         override the MONO_ASSEMBLIES directory.
21096
21097 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
21098
21099         * icall.c: ValueType_GetHashCode() initialize local var.
21100
21101 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
21102
21103         * reflection.c: sort custom attributes table.
21104
21105 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
21106
21107         * reflection.c: support named args in custom attributes (write support).
21108
21109 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
21110
21111         * reflection.c: fix finally position calculation.
21112
21113 2002-05-15  Radek Doulik  <rodo@ximian.com>
21114
21115         * reflection.c: fixed endianess at many places
21116
21117         * icall.c (ves_icall_InitializeArray): comment out debug msg
21118
21119 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
21120
21121         * object.c (mono_unhandled_exception): new function to handle
21122         unhandled exceptions.
21123         (mono_unhandled_exception): call the UnhandledException event.
21124         (mono_runtime_delegate_invoke): impl.
21125
21126 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
21127
21128         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
21129         returns the RVA, not the direct pointer to the data. Handle the case
21130         when the class size is fixed.
21131
21132 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
21133
21134         * reflection.c: fix some endianess issues.
21135
21136 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
21137
21138         * object.c (mono_runtime_invoke): is now able to catch exceptions.
21139
21140         * threads.c (mono_thread_init): added a callback which is invoked
21141         at thread start.
21142
21143 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
21144         
21145         * icall.c: make GetHashCode return non-negative values.
21146
21147 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
21148
21149         * object.c, icall.c, gc.c: revert to address-based hashcode.
21150
21151 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
21152
21153         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
21154
21155 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
21156
21157         * icall.c, class.c: special case <Module>.
21158
21159 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
21160
21161         * icall.c: fix bug in GetNow().
21162
21163 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
21164
21165         * object.c (mono_runtime_class_init): make sure that we call all
21166         static class constructors.
21167
21168 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
21169
21170         * reflection.c: sort methodsemantics table.
21171
21172 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
21173
21174         * reflection.h, reflection.c: honour init locals setting.
21175
21176 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
21177
21178         * icall.c: copied Double ToStringImpl for Single ToStringImpl
21179
21180 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
21181
21182         * reflection.c: support ContructorBuilders in attribute blob creation.
21183
21184 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
21185
21186         * reflection.c: some changes to build a binary that can be run
21187         directly in windows.
21188
21189 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
21190
21191         * loader.c: print a big message when an icall can't be found.
21192
21193 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21194
21195         * string-icalls.c: fix bug 24248.
21196
21197 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
21198
21199         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
21200         icall.c, reflection.h: separate assembly loading by pathname and by
21201         assembly name. Use the MONO_PATH env var to search for assemblies.
21202
21203 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
21204
21205         * assembly.c, image.h: add some support for assemblies
21206         with multiple modules.
21207         * class.c, class.h: export mono_class_from_typeref().
21208         * loader.c: remove duplicated code and use mono_class_from_typeref(),
21209         instead.
21210
21211 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
21212
21213         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
21214         documentation says (the ECMA one is correct).
21215
21216 2002-05-02  Dick Porter  <dick@ximian.com>
21217
21218         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
21219         Don't name the synchronisation mutex.
21220
21221 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
21222
21223         * rand.c
21224         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
21225         Make the prototypes match.
21226         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
21227         Same.
21228
21229         * icall.c
21230         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
21231         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
21232         all systems have tm.tm_zone, so use strftime() with %Z to print
21233         the timezone abreviation into a temp string.
21234
21235         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
21236         rather than mono_array_addr() on a MonoString on Big Endian
21237         machines.
21238
21239 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
21240
21241         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
21242         fix bug 24041
21243
21244 2002-04-30  Dick Porter  <dick@ximian.com>
21245
21246         * socket-io.c: Cope with SOCKET being an integer rather than a
21247         pointer now.
21248
21249         * threads.c: Added Thread_free_internal, to deal with thread
21250         handle cleanup.  Moved calls to handle_store() and handle_remove()
21251         to start_wrapper(), so each can only be called once.  Allocate
21252         synchronisation blocks with GC_malloc(), and use GC finalisation
21253         to close the handles.
21254
21255         * icall.c: added System.Threading.Thread::Thread_free_internal
21256
21257 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
21258
21259         * icall.c: support Environment.Exit, CommandLineArgs().
21260
21261 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
21262
21263         * object.c, object.h: added mono_runtime_run_main () and
21264         mono_runtime_get_main_args () for use in System.Environment.
21265
21266 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
21267
21268         * gc.c: fix thinko, enable actual finalization since the jit is now
21269         fixed.
21270
21271 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
21272
21273         * gc.c, object.c: take into account that an object may be offset wrt the address
21274         returned by GC_malloc().
21275
21276 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
21277
21278         * image.c: handle files without entries in the assembly table (modules).
21279
21280 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
21281
21282         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
21283         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
21284         allowed to be null when it's System.Object class setup.
21285
21286 2002-04-27  Martin Baulig  <martin@gnome.org>
21287
21288         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
21289         if `tb->parent == NULL' rather than crashing.
21290
21291 2002-04-28  Nick Drochak  <ndrochak@gol.com>
21292
21293         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
21294         calling acos() where asin() should have been called.
21295
21296 2002-04-26  Martin Baulig  <martin@gnome.org>
21297
21298         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
21299         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
21300         there's a subdirectory called `System', but we don't want to read that
21301         subdirectory as an assembly.
21302
21303 2002-04-25  Martin Baulig  <martin@gnome.org>
21304
21305         * debug-symfile.c: Reflect latest MonoString changes.
21306
21307 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
21308
21309         * rand.c, rand.h: instance method icalls need to have an explicit
21310         this pointer as first argument in the C implementation.
21311
21312 2002-04-25  Nick Drochak <ndrochak@gol.com>
21313
21314         * icall.c: Fix typo in map for GetNonZeroBytes
21315
21316 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
21317
21318         * string-icalls.c : String does now passes unit tests without any 
21319         errors, the following changes has been made:
21320         
21321         Implemented replace methods.
21322         Renaming of methods to (try) follow the standard.
21323         Fixed compare ordinal
21324         Made all memory allocated directly to function instead of via icall function.
21325         Small performance fix in is_in_array function
21326                         
21327  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
21328
21329         c (mono_string_Internal_ctor_charp_int_int):
21330         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
21331         sindex < 0, throw ArgumentOutOfRangeException instead of
21332         ArgumentNullException.
21333
21334         Added new check for length == 0, however
21335         I need to make it return String.Empty from the C code.
21336         
21337         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
21338         that calculate the length for us here.
21339         
21340         (mono_string_Internal_ctor_sbytep_int_int): Replaced
21341         mono_string_new_utf16 with mono_string_new, since value is utf8.
21342
21343 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
21344
21345         * object.c: register the object for finalization if needed.
21346         Allocate one more char in the string for the terminating 0 char.
21347
21348 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
21349
21350         * class.c, class.h, image.c: check if a type implemenst a destructor.
21351         Use the proper key for array class lookups.
21352         * icall.c: register the icalls in the System.GC class.
21353         * gc.c, gc.h: GC-related functions and icalls.
21354
21355 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21356
21357         * icall.c:
21358         * socket-io.c:
21359         * unicode.c: free some strings gotten from mono_string_to_utf8 and
21360         changed a couple of free () by g_free ().
21361
21362         * decimal.c: one-liner in the comments for decimal2string ().
21363
21364 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
21365
21366         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
21367
21368 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
21369
21370         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
21371         * object.c (mono_runtime_invoke_array) : handle null in params
21372
21373 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
21374
21375         * string-icalls.c: fixed bug in split (one off bug)
21376
21377 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
21378
21379         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
21380         * icalls.c: added String::Equals as internal method
21381
21382 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
21383
21384         * threads.c: fixed bug in the double interlocked functions
21385
21386 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
21387
21388         * threads.c: implemented all of the new interlocked icalls.
21389         * string-icalls.c: fix a bug in insert.
21390         * icalls.c: added the icalls for interlocked, removed old string functions.
21391         
21392 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
21393
21394         * loader.c: fix off-by-one error when reading argument names.
21395
21396 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
21397
21398         * profiler.c: win32 counter implementation (untested).
21399         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
21400         (the latter needs testing and more complete impl. from win32 folks).
21401
21402 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
21403
21404         * object.c: mono_array_new_full workaround mono_array_class_get
21405         problem.
21406
21407 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
21408
21409         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
21410         * object.h (mono_string_chars): Changed casting type.
21411
21412 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
21413
21414         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
21415                            method signatures to use gunichar2 instead of gint16.
21416
21417 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
21418
21419         * object.h, object.c: domain-specific versions of mono_object_new and
21420         mono_array_new.
21421
21422 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
21423
21424         * object.c: changed String layout
21425
21426         * string-icalls.c (mono_string_Internal_ctor_chara): added
21427         internal string constructors.
21428
21429 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
21430
21431         * threads.c: pass 'this' to the thread start routine.
21432
21433 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21434
21435         * string-icalls.c: fix IndexOf and LastIndexOf. Now
21436         InternalCompareStr don't call twice mono_string_cmp_char for the last
21437         character. Improved performance in mono_string_cmp_char.
21438
21439 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
21440
21441         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
21442         code into its own library: libmonoruntime.
21443
21444 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
21445
21446         * object.h, object.c: changed array format so that szarrays do not
21447         require a bounds structure.
21448         * icall.c, appdomain.c: support for new szarray format.
21449
21450 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
21451
21452         * metadata.c: compare also the retuns type when comparing signatures:
21453         we didn't do this as an optimization since really overloaded methods
21454         must differ also in the arguments, but this doesn't work with
21455         low-level IL code (or when using explicit conversion operators: see
21456         bug#23498 for an example).
21457
21458 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
21459
21460         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
21461
21462 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
21463
21464         * icall.c: make MonoType::GetElementType its own icall.
21465
21466 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
21467
21468         * icall.c: remove MonoMethod_get_Name().
21469         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
21470         object.
21471
21472 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
21473
21474         * string-icalls.c: optimized a few methods.
21475
21476 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
21477
21478         * icall.c: added all new string internal calls
21479         * string-icalls.c: added, new string internal call implementation.
21480         * object.c: added mono_string_new_size for allocating a string a size
21481
21482 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
21483
21484         * object.c (mono_object_isinst): use the same code as in the
21485         optimized x86 version.
21486
21487 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
21488
21489         * profiler.c: TSC-based timer code (faster and more accurate).
21490         Not hooked up in configure, yet (set USE_X86TSC to 1).
21491
21492 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
21493
21494         * profiler.c, profiler.h: track time spent compiling methods.
21495         * threads.c: track thread creation/destruction.
21496
21497 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
21498
21499         * profiler.c, profiler.h, profiler-private.h: profiling interface
21500         and sample implementation. Moved here so that it can be used also by
21501         the jit.
21502
21503 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
21504
21505         * reflection.c, reflection.h: keep types and other handles separate in
21506         the hash tables for referred tokens. Add guid for modules.
21507
21508 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
21509
21510         * assembly.c: fix bugs found with valgrind.
21511         * metadata.h, metadata.c: added mono_metadata_guid_heap().
21512
21513 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
21514
21515         * threads: added icall support for getting current domain for
21516                    the thread.
21517  
21518 2002-04-13  Martin Baulig  <martin@gnome.org>
21519
21520         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
21521         (MonoDebugVarInfo): Added `index' field for register based addresses.
21522         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
21523         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
21524         `MonoDebugVarInfo *params' and `guint32 this_offset' with
21525         `MonoDebugVarInfo *this_var'.
21526
21527         * debug-symfile.c (relocate_variable): New static function to write
21528         a location description for a local variable or method parameter.
21529
21530 2002-04-12  Martin Baulig  <martin@gnome.org>
21531
21532         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
21533         stack offset and begin/end scope address of a local variable.
21534         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
21535         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
21536         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
21537
21538         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
21539         Added new relocation types for start/end scope of a local variable.
21540
21541 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
21542
21543         * object.h: add mono_object_domain() macro.
21544         * reflection.c: handle typespecs.
21545         * icall.c: MonoMethod::get_Name() implementation.
21546
21547 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
21548
21549         * icall.c: String::GetHashCode() icall implementation.
21550
21551 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
21552
21553         * icall.c: String::IndexOfAny icall.
21554         * object.c, object.h: make array->max_length more useful.
21555         Intrduced mono_object_class() and mono_string_length() macros.
21556
21557 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21558
21559         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
21560         instead of g_unichar_isdigit.
21561
21562 2002-04-11  Nick Drochak  <ndrochak@gol.com>
21563
21564         * icall.c: Implement a simple Double.ToString().
21565
21566 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
21567
21568         * appdomain.h: only io-layer.h is supposed to be included.
21569         * icall.c: explicitly import environ. Fix warning.
21570
21571 2002-04-10  Nick Drochak  <ndrochak@gol.com>
21572
21573         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
21574                 return true even if it's not Daylight Savings time.
21575                 Only return false for the case where the function isn't
21576                 implemented for a plaform (read Windows).
21577
21578 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
21579
21580         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
21581         data with a mutex.
21582
21583 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
21584
21585         * mempool.c (mono_mempool_alloc): only use g_malloc when
21586         absolutely necessary.
21587
21588 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
21589
21590         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
21591
21592         * class.c (mono_class_vtable): use domain mempool to allocate vtable
21593         (mono_class_proxy_vtable): use domain mempool
21594
21595 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
21596
21597         * appdomain.h, appdomain.c: split initialization that requires the
21598         execution engine support into mono_runtime_init().
21599
21600 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
21601
21602         * class.c (mono_class_init): don't include vtable inside MonoClass
21603         to save some memory, gather some statistics.
21604         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
21605
21606 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
21607
21608         * icall.c: internalcall implementation for ValueType.Equals().
21609
21610 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
21611
21612         * object.c (mono_message_init): moved 
21613         (mono_runtime_exec_main): new arch. independent impl.
21614         (mono_runtime_invoke_array): new method - like
21615         mono_runtime_invoke, but you can pass an array of objects.
21616         (mono_remoting_invoke): new arch. independent impl.
21617         (mono_message_invoke): new arch. independent impl.
21618         (mono_runtime_class_init): new arch. independent impl.
21619         (mono_runtime_object_init): new arch. independent impl.
21620
21621 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
21622
21623         * metadata.c, object.c, reflection.c: documented the exported
21624         functions.
21625
21626 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
21627
21628         * icall.c: simpler code to pass the assembly builder data to corlib.
21629         Implement GetNestedTypes() internalcall.
21630
21631 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
21632
21633         * class.c: warn if a type can't be loaded.
21634
21635 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
21636
21637         * image.h: typedef MonoImageOpenStatus
21638         * types.h: removed unused file
21639         
21640 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
21641
21642         * icall.c: Enum_ToObject accepts enum value arguments.
21643
21644 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
21645
21646         * class.c: move initialization of properties, events and nested
21647         classes, so that they happen for interfaces, too.
21648
21649 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
21650
21651         * icall.c: cleanup some ugly casts in Array_SetValue*.
21652
21653 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
21654
21655         * icall.c: the values array fro enums is of the correct type, now.
21656         Implement (correctly) getFullName instead of assQualifiedName for
21657         MonoType.
21658         * reflection.h, reflection.c: added mono_type_get_name ().
21659
21660 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
21661
21662         * assembly.c, image.h: for each MonoImage, record from wich assembly
21663         it was loaded.
21664         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
21665         Make Type.Assembly work.
21666
21667 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
21668
21669         * debug-symfile.h: use char* instead of gpointer to avoid
21670         unnecessary casts.
21671
21672         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
21673
21674         * icall.c (ves_icall_InternalExecute): impl. FielSetter
21675         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
21676
21677 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
21678
21679         * icall.c (mono_message_init): impl. (code cleanup)
21680         (ves_icall_InternalExecute): impl. FieldGetter
21681
21682         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
21683         defined we call all (non-static)methods through the vtable. 
21684
21685 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
21686
21687         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
21688         finalizer even though the memory is still referenced (and the chunk of
21689         memory is not freed).
21690
21691 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
21692
21693         * assembly.c: fix brokeness.
21694
21695 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
21696
21697         * class.c: kill some warnings. Check explicit interface method
21698         implementation also without considering the namespace.
21699         Load also literal strings in static class data.
21700
21701 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
21702
21703         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
21704         (default_assembly_name_resolver): Make the resolver take the
21705         "base" directory where the assembly was originally defined, so we
21706         can load DLLs that are in the same directory as the assembly that
21707         is being referenced.
21708
21709 2002-03-28  Dick Porter  <dick@ximian.com>
21710
21711         * file-io.h: 
21712         * file-io.c:
21713         * socket-io.c: 
21714         * unicode.h: 
21715         * unicode.c: Warning cleanups
21716
21717 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
21718
21719         * object.h, reflection.h: use the correct type instead of MonoObject.
21720
21721 2002-03-28  Martin Baulig  <martin@gnome.org>
21722
21723         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
21724         (mono_debug_update_symbol_file): Initialize classes if necessary.
21725
21726 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
21727
21728         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
21729         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
21730
21731 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
21732
21733         * assembly.h: fix function prototype.
21734         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
21735         * mono-endian.h: use const cast.
21736
21737 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
21738
21739         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
21740
21741 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
21742
21743         * loader.c: don't assert when a typeref can't be loaded, give
21744         a chance to the runtime to trow an exception instead.
21745         * loader.h: fix warning.
21746
21747 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
21748
21749         * class.c (mono_class_proxy_vtable): added proxy support
21750
21751 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
21752
21753         * icall.c: removed last of PAL calls, added System.Environment
21754         * file-io.h, file-io.c: MonoIO implementation
21755         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
21756
21757 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
21758
21759         * appdomain.c: do not use the byte marker in ldstr table lookup.
21760         * debug-helpers.c: allow two ':' to separate class and method name.
21761         * object.c: allocate arrays bounds with the GC, too.
21762         * verify: add a few more checks.
21763
21764 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
21765
21766         * reflection.c: output also literal strings. Allocate parameter data
21767         with GC_malloc() (thanks, Martin, for catching this!).
21768
21769 2002-03-26  Martin Baulig  <martin@gnome.org>
21770
21771         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
21772         include the `this' offset in the `param_offsets'.
21773
21774 2002-03-25  Martin Baulig  <martin@gnome.org>
21775
21776         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
21777         mono_debug_get_class() function to get the classes. Added new
21778         relocation types for arrays and strings.
21779         (mono_debug_get_class): New static function to search in all
21780         referenced assemblies for a metadata token.
21781
21782         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
21783
21784 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
21785
21786         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
21787         hold gc-allocated objects. Make the string heap a stream like the
21788         others. Removed duplicated code when writing stream info.
21789         Added asserts to catch possible buffer overflows. Set the sorted map
21790         for tables that need sorting. Added some documentation.
21791
21792 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
21793
21794         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
21795         for interned strings and vtables.
21796
21797 2002-03-24  Martin Baulig  <martin@gnome.org>
21798
21799         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
21800         it in the array since it was created with g_slist_prepend().
21801
21802 2002-03-24  Martin Baulig  <martin@gnome.org>
21803
21804         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
21805         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
21806         (mono_debug_method_from_token): Renamed to
21807         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
21808         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
21809
21810         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
21811         relocation types.
21812
21813         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
21814
21815 2002-03-24  Martin Baulig  <martin@gnome.org>
21816
21817         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
21818         (mono_debug_method_from_token): New func.
21819
21820         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
21821         New interncall, calls mono_debug_local_type_from_signature().
21822         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
21823         calls mono_debug_method_from_token().
21824
21825 2002-03-23  Martin Baulig  <martin@gnome.org>
21826
21827         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
21828         specifies the number of bytes to be converted, not the array size.
21829         Return the number of chars, not the number of bytes.
21830         (ves_icall_iconv_get_chars): The `byteCount' argument
21831         specifies the number of bytes to be converted, not the array size.
21832
21833 2002-03-23  Martin Baulig  <martin@gnome.org>
21834
21835         * reflection.h (MonoReflectionSigHelper): New type.
21836
21837         * reflection.c (mono_reflection_sighelper_get_signature_local),
21838         (mono_reflection_sighelper_get_signature_local): New functions.
21839
21840         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
21841         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
21842         interncalls.
21843
21844 2002-03-23  Martin Baulig  <martin@gnome.org>
21845
21846         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
21847         is_writeable is set.
21848         (mono_raw_buffer_update): New function to write the modified map
21849         back to disk.
21850
21851         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
21852
21853         * debug-symfile.c (mono_debug_update_symbol_file): Call
21854         mono_raw_buffer_update() when done writing.
21855
21856 2002-03-23  Martin Baulig  <martin@gnome.org>
21857
21858         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
21859
21860         * debug-symfile.c: Added support for arguments and local variables.
21861
21862 2002-03-23  Dick Porter  <dick@ximian.com>
21863
21864         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
21865         protected by ifdefs, hence breaking the w32 build.
21866
21867 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21868
21869         * object.c: implement is_interned() the right way.
21870
21871 2002-03-21  Martin Baulig  <martin@gnome.org>
21872
21873         * debug-symfile.[ch]: New files to handle debugging information
21874         files. There's also support to dynamically update these symbol
21875         files to include machine dependent information.
21876
21877 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
21878
21879         * threads.c (mono_thread_create): new function to create thread
21880         from C
21881
21882 2002-03-20  Martin Baulig  <martin@gnome.org>
21883
21884         * icall.c (ves_icall_InternalInvoke): Create a new object if the
21885         method is a constructor.
21886         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
21887         points to ves_icall_InternalInvoke().
21888
21889 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
21890
21891         * file-io.c: Flush shouldn't throw exceptions.
21892
21893 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
21894
21895         * file-io.c: FileStream flush support; FileSetLength now
21896         restores file pointer.
21897
21898 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
21899
21900         * class.c: set image for pointer classes.
21901
21902 2002/03/19  Nick Drochak <ndrochak@gol.com>
21903
21904         * sysmath.c: Forgot one.
21905
21906 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
21907
21908         * sysmath.c: Avoid redefining existing names.
21909
21910 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
21911
21912         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
21913         handled by runtime as icall rather than dllimport from libm.so
21914         * file-io.c, file-io.h: fixed handle argument type.
21915
21916 2002-03-18  Dick Porter  <dick@ximian.com>
21917
21918         * reflection.c (mono_image_get_type_info): rename interface to
21919         iface, because of "#define interface struct" on windows.
21920
21921 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
21922
21923         * class.c, class.h: rename and export mono_ptr_class_get().
21924         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
21925         * reflection.c, reflection.h, icall.c: better/saner type name
21926         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
21927         method signatures.
21928
21929 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
21930
21931         * class.c (mono_class_init): removed hardcoded GHC_SLOT
21932
21933         * icall.c (ves_icall_InternalInvoke): impl.
21934
21935 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21936
21937         * reflection.c: output the interface map table, too.
21938
21939 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
21940
21941         * class.c (class_compute_field_layout): separate computation of 
21942         static field layout
21943
21944 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
21945
21946         * icall.c: added System.Buffer support.
21947         * file-io.c: moved file icalls from PAL to FileStream.
21948
21949 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
21950
21951         * icall.c (ves_icall_System_Object_GetHashCode): impl.
21952
21953 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
21954
21955         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
21956
21957 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21958
21959         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
21960
21961 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
21962
21963         * debug-helpers.{c,h}: moved here from monograph some useful functions
21964         to locate a method by name/signature in a class or image. Included
21965         also a small and flexible IL disassembler.
21966
21967 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21968
21969         * reflection.c: fixup tokens in methods with small header size, too.
21970
21971 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
21972
21973         * object.c (mono_string_to_utf8): remove assert(!error), instead
21974         print a warning. 
21975
21976 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
21977
21978         * icall.c: update to the new mono_Array_class_get interface.
21979
21980 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
21981
21982         * appdomain.c, object.c: Boehm-GC enable.
21983         * icall.c: make get_data_chunk() support split data requests.
21984         Ensure a class is initialized in more cases. Return only the first
21985         property found in GetProperties() or the compiler gets confused. 
21986         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
21987         * reflection.h, reflection.c: add fixup mechanism for field and method
21988         tokens. Initialize assembly->typeref in a single place. Output
21989         properties after events. Support custom attributes for events, too.
21990         Typo fix for paramter custom attrs.
21991
21992 2002-03-07  Martin Baulig  <martin@gnome.org>
21993
21994         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
21995
21996 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
21997
21998         * class.c (mono_array_class_get): fix. for multi. dim. arrays
21999
22000 2002-03-06  Martin Baulig  <martin@gnome.org>
22001
22002         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
22003         non-zero lower bounds. See testcases #F10-#F13.
22004
22005 2002-03-05  Martin Baulig  <martin@gnome.org>
22006
22007         * exception.c (mono_get_exception_argument_out_of_range): New exception.
22008
22009         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
22010         ves_icall_System_Array_GetValue(), only calculate the absolute array position
22011         here.
22012         (ves_icall_System_Array_SetValue): Likewise.
22013         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
22014         as argument and does the actual work. This function is used when copying a
22015         multi-dimensional array.
22016         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
22017         now do all the widening conversions of value types.
22018         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
22019
22020 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
22021
22022         * class.c: remove some magic numbers and use the smbolic names,
22023         instead. Added init_events() to load event info at class init time.
22024         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
22025         and mono_metadata_methods_from_event().
22026         * reflection.h, reflection.c: added support for writing out the evnets
22027         related information.
22028
22029 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
22030
22031         * reflection.h, icall.c: use a different method (GetInterfaces)
22032         to gather interface info and add isbyref, isprimitive and
22033         ispointer to the ves_icall_get_type_info() return value.
22034
22035 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
22036
22037         * class.h: stared adding support for events.
22038         * icall.c: split find_members implementation. Added debug icall to get
22039         the address of an object.
22040         * reflection.c: handle TypeBuilders in mono_type_get_object().
22041
22042 2002-03-01  Martin Baulig  <martin@gnome.org>
22043
22044         * icall.c (ves_icall_System_Array_GetLength): This must throw an
22045         ArgumentOutOfRangeException(), not an ArgumentException().
22046         (ves_icall_System_Array_GetLowerBound): Likewise.
22047         (ves_icall_System_Array_GetValue): Improved argument checking.
22048         (ves_icall_System_Array_SetValue): Improved argument checking.
22049
22050 2002-03-01  Martin Baulig  <martin@gnome.org>
22051
22052         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
22053         called with invalid arguments rather than just dying with g_assert().
22054         (ves_icall_System_Array_SetValue): Likewise.
22055         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
22056         raise a NotImplementedException instead.
22057         (ves_icall_System_Array_GetLength): Added argument checking.
22058         (ves_icall_System_Array_GetLowerBound): Added argument checking.
22059
22060 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
22061
22062         * object.h (mono_assert): new macros mono_assert and
22063         mono_assert_not_reached
22064
22065 2002-02-28  Martin Baulig  <martin@gnome.org>
22066
22067         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
22068         and "System::String::IsInterned" to "System::String::_IsInterned".
22069
22070 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
22071
22072         * icall.c: remove hacks for typebuilder. Added icall to create a
22073         modified type from a tybebuilder.
22074         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
22075         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
22076         to create a backing MonoClass for a TypeBuilder.
22077
22078 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
22079
22080         * class.c, class.h: more refactoring of class init.
22081         Export mono_class_setup_mono_type() and mono_class_setup_parent().
22082
22083 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
22084
22085         * marshal.c, marshal.h: start of marshaling interface.
22086
22087 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
22088
22089         * icall.c: fix order in assembly qualified name icall.
22090
22091 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
22092
22093         * class.c: do not free str, since we store it in the hash table.
22094         * reflection.h: add label field to MonoILExceptionInfo.
22095         * reflection.c: handle references to more than one assembly. Handle
22096         case when there isn't a module created in the assembly.
22097
22098 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
22099
22100         * class.c: Fix typo. Start refactoring of class init code.
22101
22102 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
22103
22104         * appdomain.c: exit with 1 on error.
22105         * class.c: we already have the name in MonoClassField.
22106         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
22107         MonoStreamHeader instead of an offset of image->raw_metadata.
22108
22109 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
22110
22111         * appdomain.c (mono_init): Be even more descriptive about the error.
22112
22113 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
22114
22115         * appdomain.c: give the user an informative message when corlib can't
22116         be loaded.
22117
22118 2002-02-26  Martin Baulig  <martin@gnome.org>
22119
22120         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
22121         New icall to get the time zone data.
22122
22123 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
22124
22125         * reflection.c: set virtual and raw size of section correctly.
22126         * threads.c: transfer domain information to newly created threads.
22127
22128 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
22129
22130         * class.c: when instancing a class in a domain, load the default
22131         vaules for static fields from the constant table. Fix System.Enum to
22132         not be an enum.
22133         * icall.c: implement Object::GetType() internalcall. Implemented
22134         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
22135         Fixed checking of binding flags in find_members().
22136         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
22137         * reflection.c: handle enumerations when writing to the constant
22138         table. Use a different object cache for types.
22139
22140
22141 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
22142
22143         * object.c (mono_object_isinst): fix for arrays
22144
22145         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
22146
22147 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
22148
22149         * object.c: don't use mprotect ()  and fix intern pool hash table
22150         lookup for big endian systems.
22151
22152 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
22153
22154         * icall.c: change type_is_subtype_of () signature.
22155
22156 2002-02-21  Mark Crichton  <crichton@gimp.org>
22157
22158         * rand.c, rand.h: Added random number generator for
22159         System.Security.Cryptography classes.
22160
22161         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
22162
22163         * icall.c: Added System.Security.Cryptography calls.
22164
22165 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
22166
22167         * class.c, icall.c, metadata.c: better support for pointer types.
22168         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
22169         * reflection.c: Add support for getting custom attrs for properties
22170         and simplify some code.
22171
22172 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
22173
22174         * icall.c: change getToken () and add custom attribute GetBlob()helper
22175         method.
22176         * reflection.h: add custom attrs array to the reflection builder structures.
22177         * reflection.c: encode and emit custom attributes for all the relevant
22178         reflection objects. Cache fieldref and methodref tokens. Change
22179         mono_image_create_token() interface to take a MonoDynamicAssembly.
22180         More complete custom attributes decoder. Load custom attributes for
22181         Assembly, Field, Method and Constructor objects, too. Make the
22182         returned array an Attribute[] one, not object[]. Added
22183         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
22184         custom attribute constructor.
22185
22186 2002-02-20  Dick Porter  <dick@ximian.com>
22187
22188         * icall.c:
22189         * rawbuffer.c:
22190         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
22191         problem code out for now).
22192
22193 2002-02-19  Radek Doulik  <rodo@ximian.com>
22194
22195         * object.c (mono_ldstr): use hash table to avoid multiple swapping
22196
22197 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
22198
22199         * icall.c: register the GetCustomAttributes method.
22200         * object.c, object.h: add mono_string_new_len ().
22201         * reflection.h, reflection.c: added mono_runtime_invoke(),
22202         mono_install_runtime_invoke(). Added
22203         mono_reflection_get_custom_attrs () to load custom attributes and
22204         create the attribute objects.
22205
22206 2002-02-19  Dick Porter  <dick@ximian.com>
22207         * threads-dummy-types.c:
22208         * threads-dummy-types.h:
22209         * threads-dummy.c:
22210         * threads-dummy.h:
22211         * threads-pthread-types.c:
22212         * threads-pthread-types.h:
22213         * threads-pthread.c:
22214         * threads-pthread.h:  Deleted obsolete files
22215
22216 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
22217
22218         * class.c (mono_class_vtable): runtime init the class when we
22219         allocate static class data.
22220
22221         * icall.c (ves_icall_System_Array_SetValue): check for null values.
22222
22223         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
22224         and String - but we will need generic marshalling support in the
22225         future. 
22226         (mono_init): set the domain name in a ms compatible way
22227
22228         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
22229         String[].
22230
22231 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
22232
22233         * object.c (mono_array_clone): use alloca() instead of g_malloc  
22234         for sizes
22235
22236         * appdomain.c (mono_domain_unload): impl.
22237
22238 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
22239
22240         * appdomain.c, object.c: fix intern pool implementation.
22241         * class.c: fix alignment code.
22242
22243 2002-02-16  Radek Doulik  <rodo@ximian.com>
22244
22245         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
22246         and s2 > s1, just copy lower bytes to be compatible with little
22247         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
22248         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
22249
22250         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
22251         force big_endian to be 1 for big endian machines 
22252         (ves_icall_iconv_new_decoder): ditto
22253
22254 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
22255
22256         * socket-io.c (convert_sockopt_level_and_name): If the system
22257         doesn't define SOL_IP or SOL_TCP, get them by hand using
22258         getprotobyname() and caching the values (because this could be a
22259         slow operation).
22260         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
22261         Use the appropriate struct when the system does support it. Ie,
22262         not all systems have struct ip_mreqn so use struct ip_mreq when
22263         appropriate.
22264
22265 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
22266
22267         * reflection.c: handle finally clauses.
22268
22269 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
22270
22271         * socket-io.c: use g_snprintf() instead of snprintf.
22272
22273 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
22274
22275         * reflection.c (mono_param_get_objects): Cast second argument to
22276         mono_method_get_param_names to a const char** to silence the
22277         compiler warning.
22278
22279         * appdomain.c (mono_domain_assembly_open): Put parens around the
22280         truth statement in the for-loop.
22281
22282         * unicode.c (iconv_convert): Got rid of a compiler warning about
22283         int i being unused when the system has a new iconv.
22284         (iconv_get_length): Same.
22285
22286         * image.c (load_class_names): Cast the second argument to
22287         g_hash_table_insert() to char* to hush compiler warnings about the
22288         arg being a const.
22289         (mono_image_open): Same here.
22290
22291         * socket-io.c: Don't conditionally include sys/filio.h or
22292         sys/sockio.h here anymore since we now get them from
22293         io-layer/io-layer.h
22294         (inet_pton): If the system doesn't support inet_aton, implement
22295         using inet_addr and also #define INADDR_NONE if it isn't defined
22296         by the system.
22297
22298 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
22299
22300         * metadata.c, metadata.h: added function to get packing and size info
22301         of a typedef.
22302         * reflection.h, reflection.c: handle field RVA data. Save info about
22303         the table layout if needed. Assign typedef indexes to all the types
22304         before dumping the info about them to avoid forward reference problems.
22305
22306 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
22307
22308         * socket-io.c (convert_sockopt_level_and_name): ifdef
22309         SO_ACCEPTCONN because it is not defined on my system (old debian)
22310
22311 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
22312
22313         * opcode.c: use stddef.h to get NULL.
22314
22315 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
22316
22317         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
22318         for FIONBIO, FIONREAD and SIOCATMARK.
22319         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
22320         define INADDR_NONE and besides, inet_addr() is deprecated and
22321         should not be used. Use inet_pton() instead - it also has the
22322         added bonus that it can easily handle IPv6 addresses as well.
22323         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
22324
22325 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
22326
22327         * decimal.c: remove _MSC_VER conditional.
22328
22329 2002-02-13  Dick Porter  <dick@ximian.com>
22330
22331         * socket-io.c: 
22332         * icall.c: Internal calls for Blocking, Select, Shutdown,
22333         GetSocketOption and SetSocketOption
22334
22335 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
22336
22337         * assembly.cs: better resolver: use it instead of some kludgy
22338         code.
22339
22340 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
22341
22342         * reflection.c: the best way to speed-up the compiler is to avoid
22343         infinite loops.
22344
22345 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
22346
22347         * class.c (mono_class_vtable): changed the object layout
22348         (obj->vtable->class). 
22349         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
22350
22351 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
22352
22353         * assembly.c: look for assemblies in the assembly dir, too.
22354
22355 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
22356
22357         * class.c: fix thinko in mono_class_from_type().
22358
22359 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
22360
22361         * exception.h, exception.c: added TypeLoadException.
22362         * object.h, object.c: added mono_array_clone ().
22363         * icall.c: handle throwOnError in AssemblyGetType().
22364         Added Array.Clone().
22365         * opcode.h, opcode.c: use a single value for the opcode val.
22366         Compile fix for non-gcc compilers.
22367
22368 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
22369
22370         * opcodes.c, opcodes.h: export interesting info about opcodes.
22371
22372 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
22373
22374         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
22375         icalls. 
22376
22377         * class.c (class_compute_field_layout): set element_class for enums
22378         (mono_class_create_from_typedef): set element_class for normal classes
22379
22380         * icall.c (ves_icall_System_Enum_get_value): impl.
22381
22382         * class.c (mono_class_create_from_typedef): do not set valuetype
22383         flag for System.ValueType and System.Enum
22384
22385 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
22386
22387         * unicode.c (iconv_convert): fix big endian problem.
22388
22389 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
22390
22391         * class.c: add asserts if we are ever going to scribble over memory.
22392         * socket-io.c: not all systems have AF_IRDA defined.
22393
22394 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
22395
22396         * class.c (class_compute_field_layout): do not consider static
22397         fields to compute alignment
22398
22399 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
22400
22401         * appdomain.c (mono_appdomain_get): impl.
22402         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
22403
22404 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
22405
22406         * icall.c: ignore "file://" prefix when loading an assembly.
22407
22408 2002-01-23  Dick Porter  <dick@ximian.com>
22409
22410         * socket-io.c:
22411         * icall.c:
22412         * Makefile.am: Added socket support
22413
22414 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
22415
22416         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
22417         code back.  This should return the assemblies that are loaded by
22418         the runtime on behalf of an application domain. 
22419
22420         The current implementation is still broken, it just returns every
22421         assembly loaded, but until we get real applications domain this
22422         will do.
22423
22424 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
22425
22426         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
22427         AppDomain object.
22428
22429 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
22430
22431         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
22432         the mono_class_from_name lookup.
22433         (ves_icall_get_parameter_info): ditto.
22434         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
22435         method.
22436         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
22437
22438 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
22439
22440         * class.c: load also nested classes on class init.
22441         System.ValueType instance methods gets passed boxed
22442         values, unless methods in derived classed that get a pointer to the
22443         data.
22444         * icall.c: use better name parsing code in GetType().
22445         * image.c, image.h: add mono_image_loaded ().
22446         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
22447         * reflection.c, reflection.h: added mono_reflection_parse_type().
22448
22449 2002-01-22  Veronica De Santis <veron78@interfree.it>
22450
22451         * icall.c : Added mapping of internal calls for Manual and Auto reset events
22452         * threads.c : Added the implementation of internal calls for events
22453         * threads.h : Added prototypes of internal calls for events
22454         
22455 2002-01-21  Radek Doulik  <rodo@ximian.com>
22456
22457         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
22458
22459 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
22460
22461         * class.c (mono_class_init): set min_align to 1 (instead of 0)
22462         (mono_class_value_size): use min_align
22463
22464 2002-01-20  Dick Porter  <dick@ximian.com>
22465
22466         * threads.h:
22467         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
22468         so it compiles on w32.
22469
22470 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
22471
22472         * metadata.c (mono_type_stack_size): impl.
22473
22474         * class.c (mono_class_get_field): impl. memberref token
22475
22476 2002-01-16 Veronica De Santis <veron78@@interfree.it>
22477
22478         * icall.h : Added the internal calls mapping for CreateMutex_internal
22479                     and ReleaseMutex_internal.
22480         * threads.h : Added the prototype of mutexes internal calls.
22481         * threads.c : Added the implementations of mutexes internal calls.
22482
22483 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
22484
22485         * metaparse.h: removed unused file.
22486         * reflection.c, reflection.h: added stream_data_align () function 
22487         to align data in streams and keep stream aligned. Add support for
22488         exception support in method headers.
22489
22490 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
22491
22492         * unicode.c: make iconv_convert () return the number of bytess written
22493         in the output buffer.
22494
22495 2002-01-15  Dick Porter  <dick@ximian.com>
22496         * threads.c: Make the runtime's idea of infinite timeouts coincide
22497         with the class library's
22498
22499         Fix a particularly egregious bug in mono_thread_cleanup(). That
22500         code was so utterly bogus it must have been written on a Monday.
22501
22502 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
22503
22504         * reflection.h: add subtypes field to TypeBuilder.
22505         * reflection.c: encode constants for literal fields.
22506         Handle subtypes. Fix user string token (and add a zero byte)
22507         at the end.
22508         
22509 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
22510
22511         * class.c (mono_class_init): bug fix: assign slot numbers for
22512         abstract methods.
22513
22514 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
22515
22516         * reflection.c: don't try to output a code RVA for abstract methods.
22517         Small fixes for method header format. Output parameter info to the
22518         ParamDef table. Save method overriding info to MethodImpl table.
22519         Fix property support. Allow typedef.extends to be a type in the
22520         building assembly.
22521         * verify.c: fix off-by-one error.
22522
22523 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
22524
22525         * class.c: fix mono_class_from_mono_type () for szarray types.
22526         Remove unused cache check in mono_class_from_type_spec().
22527         * icall.c: *type_from_name () functions handle simple arrays and byref.
22528         * reflection.c: handle byref and szarray types. Handle methods without
22529         body (gets P/Invoke compilation working). Handle types and fields in
22530         get_token ().
22531         * reflection.h: add rank to MonoTypeInfo.
22532
22533 2002-01-10  Dick Porter  <dick@ximian.com>
22534
22535         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
22536         internal calls
22537
22538 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
22539
22540         * icall.c: initialize class in type_from_handle ().
22541         Loop also in parent classes for get_method ().
22542         * reflection.c: properly encode class and valuetype types.
22543         Start on encoding TypeBuilder types. Handle fieldrefs.
22544         Use correct length when registering a user string.
22545         Handle ConstructorBuilder and MonoMethod in get_token ().
22546         Make mono_type_get_object () aware of cached types.
22547         * object.c: back out change to mono_string_new ().
22548
22549 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
22550         * object.c: mono_string_new should return a NULL when the string 
22551         passed in is NULL -- not try to deference it.
22552         
22553 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
22554
22555         * icall.c: hack to make IsSubType work for TypeBuilders.
22556         * reflection.c: emit constructors before methods.
22557         Retrieve param names in mono_param_get_objects().
22558
22559 2002/01/05  Nick Drochak  <ndrochak@gol.com>
22560
22561         * Makefile.am: fix list of headers and sources so automake 1.5
22562         doesn't complain. Removed \# at end of list.
22563
22564 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
22565
22566         * reflection.c: get token for a method ref. Set return type of
22567         constructor to void.
22568         * loader.c: debug message.
22569         * class.c: typo fix.
22570
22571 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
22572
22573         * icall.c: fix array init with rank > 1. FindMembers
22574         loops in parent class as well.
22575         * image.c: do not insert nested types in name cache.
22576         * reflection.c: warning fix.
22577         * reflection.h: add override method (for interface impl).
22578
22579 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
22580
22581         * metadata.c: fix customattr decoding.
22582
22583 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
22584
22585         * rawbuffer.cs: Added native Win32 implementation, avoids using
22586         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
22587
22588 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
22589
22590         * class.c: make the low-level routines handle the cache.
22591
22592 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
22593
22594         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
22595
22596 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
22597
22598         * class.c: fix mono_array_element_size() for objects.
22599         * class.h, class.c: add properties to MonoClass and load them
22600         at init time.
22601         * icall.c: check with isinst() when assigning a value to an array
22602         instead of requiring the classes to match exactly.
22603         Implemented icall for System.Type::GetType().
22604         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
22605         enums. Handle bindingflags when looking for methods and fields.
22606         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
22607         and mono_metadata_methods_from_property().
22608         * reflection.h, reflection.c: added structures for propreties,
22609         parameters and enums. Implemented mono_property_get_object() and
22610         mono_param_get_objects().
22611
22612 2001-12-18  Dick Porter  <dick@ximian.com>
22613
22614         * file-io.c: Use mono_string_to_utf16() instead of
22615         mono_string_chars()
22616
22617         * object.c: Added mono_string_to_utf16(), which copies the non
22618         NULL-terminated MonoString into a new double-null-terminated
22619         buffer.
22620
22621 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
22622
22623         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
22624
22625 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
22626
22627         * file-io.c: raise exceptions if handle is invalid.
22628
22629 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
22630
22631         * assembly.c: yet another check for mscorlib.
22632         * class.c, class.h: load nesting info for classes.
22633         * icall.c: many new functions to support the Reflection classes.
22634         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
22635         * reflection.h, reflection.c: mono_image_create_token(),
22636         mono_assembly_get_object(), mono_type_get_object(),
22637         mono_method_get_object(), mono_field_get_object(): methods to return
22638         objects that parallel the C representation of assemblies, types,
22639         methods, fields.
22640
22641 2001-12-11  Dick Porter  <dick@ximian.com>
22642
22643         * icall.c:
22644         * file-io.c: Internal calls for file IO.
22645
22646 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
22647
22648         * tabledefs.h: missing FileAttributes.
22649         * verify.h, verify.c: use is_valid_string () to simplify and check for
22650         valid strings more correctly. Fix warnings and speeling.
22651         Check more tables: Filed, File, ModuleRef, StandAloneSig.
22652         Check code: branches, maxstack, method calls.
22653
22654 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
22655
22656         * object.c (mono_object_allocate): removed static, so that the jit
22657         can allocate value types.
22658
22659         * icall.c (ves_icall_System_DateTime_GetNow): impl.
22660
22661 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
22662
22663         * class.c: init enum types right away and register the
22664         token->MonoClass map in mono_class_create_from_typedef ().
22665         * verify.h, verify.c: first cut of the verifier.
22666         * pedump.c: add --verify switch to verify metadata tables.
22667         * tabledefs.h: add some missing enums.
22668
22669 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
22670
22671         * class.c (mono_install_runtime_class_init): impl.
22672         (mono_class_init): renamed mono_class_metadata_init to
22673         mono_class_init, also removed the metadata_inited flag
22674
22675         * object.c (mono_object_isinst): use faster algorithm
22676
22677 2001-11-30  Radek Doulik  <rodo@ximian.com>
22678
22679         * mono-endian.h: reverted last change
22680         added function prototypes
22681
22682         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
22683         add mono-endian.c back
22684
22685         * mono-endian.c: returned back, as Paolo pointed out, it's needed
22686         for unaligned access, I've mistaked it with endianess. I am
22687         sorry.
22688         (mono_read16): fix reverted endianess
22689         (mono_read64): ditto
22690         (mono_read32): ditto
22691
22692 2001-11-30  Dick Porter  <dick@ximian.com>
22693
22694         * exception.c: Implement mono_exception_from_name()
22695
22696 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
22697
22698         * metadata.h, metadata.c: remove params_size and locals_size and their
22699         calculation from the metadata code: they are only usefult to the
22700         interp.
22701
22702 2001-11-29  Radek Doulik  <rodo@ximian.com>
22703
22704         * object.c (mono_ldstr): swap bytes here, it's probably not the
22705         best place, but works for me now, I'll redo it once I know mono
22706         better, also note that I add PROT_WRITE and don't reset back, also
22707         note that it's only affects big endians, so x86 should be OK
22708
22709         * mono-endian.h (read16): use just glib macros for both endians
22710
22711         * mono-endian.c: removed as glib macros are used in in
22712         mono-endian.h so we don't need to care about endianess for read
22713         macros as glib does that for us already
22714
22715 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
22716
22717         * class.h, class.h: take minimum alignment into consideration so
22718         that the fields of a class remain aligned also when in an array.
22719
22720 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
22721
22722         * loader.h, loader.c: add mono_method_get_param_names().
22723         * class.c: 0-init class fields.
22724
22725 2001-11-26  Dick Porter  <dick@ximian.com>
22726
22727         * icall.c:
22728         * threads-types.h:
22729         * threads.c: New file that handles System.Threading on all platforms
22730
22731         * object.c: 
22732         * object.h: Remove the synchronisation struct from MonoObject,
22733         replace it with a pointer that gets initialised on demand
22734
22735         * Makefile.am: Replace all the system-specific threading code with
22736         a single file that uses the new wrapper library
22737
22738 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
22739
22740         * class.c, class.h: add mono_install_trampoline() so that the runtime
22741         can register a function to create a trampoline: removes the ugly
22742         requirement that a runtime needed to export arch_create_jit_trampoline.
22743         * object.h, object.c: added mono_install_handler() so that the runtime
22744         can install an handler for exceptions generated in C code (with
22745         mono_raise_exception()). Added C struct for System.Delegate.
22746         * pedump.c: removed arch_create_jit_trampoline.
22747         * reflection.c: some cleanups to allow registering user strings and
22748         later getting a token for methodrefs and fieldrefs before the assembly
22749         is built.
22750         * row-indexes.h: updates and fixes from the new ECMA specs.
22751
22752 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
22753
22754         * class.h, class.c: add enum_basetype field to MonoClass.
22755         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
22756         to get index in the constant table reated to a field, param or
22757         property.
22758         * reflection.h, reflection.c: handle constructors. Set public-key and
22759         version number of the built assembly to 0.
22760         * row-indexes.h: update from new ECMA spec.
22761
22762 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
22763
22764         * class.h, class.c: add a max_interface_id to MonoClass.
22765         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
22766         since it's used to do that. Added mono_type_type_from_obj().
22767         Make GetType() return NULL instead of segfaulting if the type was not
22768         found. Handle simple arrays in assQualifiedName.
22769         * object.h: add a struct to represent an Exception.
22770         * reflection.c: output call convention in method signature.
22771         Add code to support P/Invoke methods and fixed offsets for fields.
22772
22773 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
22774
22775         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
22776         the value.
22777         * icall.c: use mono_array_addr instead of array->vector: fixes the
22778         reflection image writing.
22779         * reflection.c: init call convention byte to 0 in method signature.
22780         Encode the property signature. Don't output property-related methods
22781         twice. Really process the properties for a type (don't cast a field to
22782         a property, my mom always told me that).
22783         Fix 64 bit issues in pointer alignment in a different and more
22784         readable way.
22785
22786 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
22787
22788         * loader.h: Removed type class from MonoDefaults, added monotype
22789
22790         * loader.c: Loaded MonoType, removed loading of Type
22791
22792         * icall.c (my_mono_new_object): Now returns a System.MonoType,
22793         and fills in System.Type._impl with a RuntimeTypeHandle rather
22794         than the actual MonoClass *
22795
22796         (ves_icall_type_from_handle): change from type_class to
22797         monotype_class
22798
22799         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
22800         implemented
22801
22802         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
22803         implemented
22804
22805         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
22806
22807         (ves_icall_System_Reflection_Assembly_GetType): implemented
22808
22809         (ves_icall_System_MonoType_assQualifiedName): implemented
22810
22811         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
22812
22813 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
22814
22815         * assembly.c (mono_assembly_open): Implement a cache for the
22816         assemblies. 
22817
22818         (mono_assembly_close): only destroy the assembly when the last
22819         reference is gone.
22820         
22821 2001-11-09  Dick Porter  <dick@ximian.com>
22822
22823         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
22824
22825 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
22826
22827         * class.c (mono_class_metadata_init): bug fix: compute the right slot
22828
22829 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
22830
22831         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
22832         from Martin Weindel.
22833         * object.h: add mono_string_chars ().
22834
22835 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
22836
22837         * reflection.c (build_compressed_metadata): Eliminates warnings
22838         and uses 64-bit clean code.
22839
22840         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
22841         (mono_type_equal): Change signature to eliminate warnings.
22842
22843 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
22844
22845         * icall.c, loader.c: remove the internalcall array constructors.
22846         Changes to match the new MonoArray structure.
22847         * object.h, object.c: an array object doesn't allocate an extra
22848         vector. Add mono_array_new_full () to create jagged arrays easily.
22849
22850 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
22851
22852         * metadata.h, metadata.c: add mono_metadata_field_info () to
22853         retreive all the info about a field from vairous tables.
22854         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
22855         * class.h, class.c: augment MonoClassField with more info.
22856         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
22857         policy and load a field's RVA if needed.
22858
22859 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
22860
22861         * class.c (mono_class_metadata_init): create a trampoline for all
22862         virtual functions instead of actually compiling them.
22863
22864 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
22865
22866         * class.h, class.c: include name in MonoClassField.
22867         * class.c: fix fundamental type of System.Object and System.String.
22868         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
22869         tokens in ldtoken.
22870         * icall.c: remove internalcalls for the Reflection stuff that is now
22871         done in C# code.
22872         * loader.c: mono_field_from_memberref () implementation.
22873         * mono-endian.c: thinko (s/struct/union/g).
22874         * object.c, object.h: make the mono_string_* prototypes actually use
22875         MonoString instead of MonoObject.
22876         * reflection.c, reflection.h: updates for changes in the reflection
22877         code in corlib: we use C structures that map to the actual C# classes.
22878         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
22879         fat method header if needed and use the info from the ILGenerator for
22880         methods. Handle fields in types. Misc fixes.
22881
22882 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
22883
22884         * class.c (mono_class_metadata_init): bug fix: always allocate
22885         space for static class data
22886
22887 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
22888
22889         * class.c (mono_compute_relative_numbering): use relative
22890         numbering to support fast runtime type checks.
22891
22892 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
22893
22894         * class.c (mono_class_create_from_typeref): added debugging output
22895         to print class name when MonoDummy is returned instead of real class
22896
22897 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
22898
22899         * class.c (mono_class_metadata_init): interface offset table now
22900         contains pointers into the vtable - this is more efficient for the jit
22901
22902 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
22903
22904         * class.c (mono_class_metadata_init): use a temporary vtable (the
22905         old algorithm only worked for the interpreter, but not for the jit)
22906
22907 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
22908
22909         * loader.c (method_from_memberref): use mono_class_get to get the
22910         class of an array instead of using System.Array directly.
22911         (mono_get_method): also add MEMBERREF methods to the method cache
22912         which usefull for arrays.
22913
22914 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
22915
22916         * pedump.c (arch_compile_method): added to compute vtable entry
22917
22918         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
22919         number of interfaces.
22920         
22921         * class.h: merged MonoArrayClass into MonoClass
22922
22923         * class.c (mono_class_create_from_typedef): compute the vtable size and
22924         allocate space to include the vtable inside MonoClass
22925         (mono_class_metadata_init): initialize the vtable
22926
22927 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
22928
22929         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
22930         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
22931         * image.c: endian fixes by Laurent Rioux.
22932         * object.h, object.c: rename MonoStringObject to MonoString and
22933         MonoArrayObject to MonoArray. Change some function names to conform to
22934         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
22935         guint16* as first argument, so don't use char*.
22936         Provide macros to do the interesting things on arrays in a portable way.
22937         * threads-pthread.c: updates for the API changes and #include <sched.h>
22938         (required for sched_yield()).
22939         * icall.c: updates for the API changes above.
22940         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
22941         platforms that need them.
22942
22943 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
22944
22945         * class.c: set the correct type for all the fundamental
22946         type when loading the class.
22947
22948 2001-10-05  Dick Porter  <dick@ximian.com>
22949
22950         * threads-pthread.c (pthread_mutex_timedlock): Simple
22951         compatibility version for C libraries that lack this call.
22952
22953 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22954
22955         * class.c: MonoTypes stored in MonoClass are stored as
22956         fundamental MonoTypes when the class represents a
22957         fundamental type (System.Int32, ...).
22958         The TypeHandle return by ldtoken is a MonoType*.
22959         * icall.c: ves_icall_get_data_chunk () write out all the
22960         PE/COFF stuff. Implement ves_icall_define_method (),
22961         ves_icall_set_method_body (), ves_icall_type_from_handle ().
22962         * image.c: properly skip unknown streams.
22963         * loader.h, loader.c: add type_class to mono_defaults.
22964         * metadata.c, metadata.h: export compute_size () as
22965         mono_metadata_compute_size () with a better interface.
22966         Typo and C&P fixes.
22967         * pedump.c: don't try to print the entry point RVA if there is no entry point.
22968         * reflection.c, reflection.h: many cleanups, fixes, output method
22969         signatures and headers, typedef and typeref info, compress the metadata
22970         tables, output all the heap streams, cli header etc.
22971         * row-indexes.h: typo fixes.
22972
22973 2001-10-04  Dick Porter  <dick@ximian.com>
22974
22975         * object.h: Add a synchronisation mutex struct to MonoObject
22976
22977         * object.c (mono_new_object): Initialise the object
22978         synchronisation mutexes
22979
22980         * icall.c: System.Threading.Monitor internal calls
22981         
22982         * threads-pthread.h:
22983         * threads-pthread.c: System.Threading.Monitor internal calls
22984
22985         * threads-types.h: New file, includes the system-specific thread
22986         structures
22987         
22988         * threads-pthread-types.h:
22989         * threads-pthread-types.c: New files, handle pthread-specific
22990         synchronisation types
22991
22992         * threads-dummy-types.h: 
22993         * threads-dummy-types.c: New files of dummy support for
22994         thread-specific types
22995
22996         * metadata.c:
22997         * image.c:
22998         * pedump.c: include mono-endian.h not endian.h
22999         
23000         * Makefile.am: More threads files.
23001         Name mono-endian.h not endian.h
23002
23003 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
23004
23005         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
23006         stuff and implement a few more bits.
23007         * icall.c: a field needs to be dereferenced twice. Do not use the same
23008         name for two variables in the same scope.
23009         * image.c, image.h: cleanups.
23010
23011 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
23012
23013         * class.c (mono_class_metadata_init): bug fix: compute the right size
23014
23015 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
23016
23017         * icall.c: implemented some of the Reflection internalcalls.
23018         * image.c, image.h: start writing out the PE/COFF image.
23019         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
23020         that does the reverse than decode_blob_size ().
23021         * object.c: use mono_metadata_encode_value (). Move here
23022         temporary implementation of mono_string_to_utf8 ().
23023         * rawbuffer.c: make malloc_map static.
23024
23025 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
23026
23027         * metadata.c: fix type comparison for arrays.
23028         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
23029         Added a couple of new classes to monodefaults.
23030         * icall.c: added a couple of Reflection-related internalcalls.
23031         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
23032         Added a byval_arg MonoType to MonoClass.
23033
23034 2001-09-28  Dick Porter  <dick@ximian.com>
23035
23036         * icall.c:
23037         * threads-pthread.h: 
23038         * threads-pthread.c: Implemented internal calls for
23039         LocalDataStoreSlot operations.  Applied mutexes around all shared
23040         data.  Reworked the thread creation and Start() operations to
23041         avoid a race condition.
23042         
23043         * threads-dummy.h:
23044         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
23045
23046 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
23047
23048         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
23049
23050 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
23051
23052         * class.c, loader.c: warn and return NULL instead of erroring out.
23053         * icall.c: added System.AppDomain::getCurDomain().
23054         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
23055
23056 2001-09-25  Dick Porter  <dick@ximian.com>
23057
23058         * threads-pthread.h:
23059         * threads-pthread.c: Implemented timed thread joining and added
23060         System.Threading.Thread::Join_internal internal call
23061
23062         * icall.c: Added System.Threading.Thread::Join_internal internal call
23063
23064         * threads-dummy.h:
23065         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
23066
23067 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
23068
23069         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
23070         mono_string_intern () to implement the semantics of the ldstr opcode
23071         and the interning of System.Strings.
23072         * icall.c: provide hooks to make String::IsIntern and String::Intern
23073         internalcalls.
23074
23075 2001-09-23  Dick Porter  <dick@ximian.com>
23076
23077         * threads-dummy.c: 
23078         * threads-dummy.h: New files of dummy threading routines
23079
23080         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
23081         support code based on system specifics
23082
23083         Rename PTHREAD_LIBS to THREAD_LIBS
23084         
23085 2001-09-23  Dick Porter  <dick@ximian.com>
23086
23087         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
23088         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
23089         internal calls.
23090         (mono_thread_init): Set up a Thread object instance to return when
23091         the main thread calls Thread.CurrentThread
23092         (mono_thread_cleanup): Wait for all subthreads to exit
23093
23094         * icall.c: New internal calls for System.Threading.Thread::Sleep
23095         (including Schedule) and CurrentThread
23096
23097         * threads.h: New file, to insulate thread-specific stuff from the
23098         rest of the code
23099
23100 2001-09-21  Dick Porter  <dick@ximian.com>
23101
23102         * threads-pthread.h: 
23103         * threads-pthread.c: New file, for handling pthreads-style
23104         threading support.  Start() now starts a new thread and executes
23105         the ThreadStart delegate instance.
23106
23107         * icall.c: Added the internalcall for
23108         System.Threading.Thread::Start_internal
23109
23110         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
23111
23112 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
23113
23114         * loader.c: work around the different signatures for delegates
23115         constructors csc generates in compiled code vs the ones compiled in mscorlib.
23116
23117 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
23118
23119         * class.h, class.c: add mono_class_get_field_from_name ().
23120         * *: Fix C comments and other ANSI C issues.
23121
23122 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
23123
23124         * endian.h, assembly.c: fix some endianness issues.
23125
23126 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
23127
23128         * loader.h, load.c: add delegate_class to mono_defaults.
23129         Handle runtime provided methods in mono_get_method ().
23130
23131 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
23132
23133         * loader.c (mono_get_method): use pinvoke for internal call
23134
23135         * icall.c: use pinvoke for internal call
23136
23137         * loader.c (method_from_memberref): set the method name
23138
23139 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
23140
23141         * metadata.c: help the compiler generate better code for
23142         mono_class_from_mono_type ().
23143
23144 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
23145
23146         * class.c (mono_class_metadata_init): delayed computing of the
23147         class size to mono_class_metadata_init ()
23148
23149 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
23150
23151         * class.c, class.h: add an interfaces member to MonoClass.
23152         * image.c, image.h: add assembly_name field to MonoImage
23153         from the assembly table.
23154         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
23155
23156 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
23157
23158         * class.c: Handle Array in mono_class_from_mono_type ().
23159         * metadata.c, pedump.c: some endian fixes.
23160
23161 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
23162
23163         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
23164         * metadata.c: fix small problem introduced with the latest commit.
23165
23166 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
23167
23168         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
23169         We don't need a MonoMetadata pointer anymore to compare signatures in
23170         mono_metadata_signature_equal (), update callers.
23171         Reduced memory usage an number of allocations for MonoMethodHeader and
23172         MonoMethodSignature.
23173
23174 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
23175
23176         * metadata.c: added compare for szarray.
23177
23178 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
23179
23180         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
23181         and add a couple more types to it and mono_defaults. Give an hint on
23182         classes that need implementing in our corlib and are referenced
23183         in mscorlib.
23184
23185 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
23186
23187         * class.h, class.c: keep track if a class is also an Enum.
23188         * loader.c: Implement a couple more types for use in libffi
23189         marshalling. Gives better diagnostics when failing to dlopen
23190         a library. Set method->klass for P/Invoke methods, too.
23191
23192 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
23193
23194         * class.c, class.h: add a MonoType this_arg to MonoClass that
23195         represents a pointer to an object of the class' type that
23196         can be used by the interpreter and later the type cache.
23197         Add best guess alignment info for valuetype objects.
23198
23199 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
23200
23201         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
23202         into MonoType: one less level of indirection and allocation and
23203         simplifies quite a bit of code. Added cache for MonoTypes that are
23204         used frequently, so that we don't need to allocate them all the time.
23205
23206 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
23207
23208         * class.c (mono_class_create_from_typedef): System.Enum is also a
23209         value type, although it does not derive from System.ValueType
23210         (maybe a bug in the ms compiler?)
23211
23212         * metadata.c (mono_type_size): return the right size for value types
23213
23214         * loader.c (mono_get_method): only initialize method header if not abstract
23215
23216         * class.c (mono_class_from_mono_type): use mono_default values. 
23217
23218 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
23219
23220         * *: use MonoClass pointers instead of <type_tokens>
23221         
23222         * class.h: new flag: metadata_inited.
23223
23224         * class.c (mono_class_metadata_init): impl.
23225         (mono_class_instance_size): impl.
23226         (mono_class_data_size): impl.
23227
23228 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
23229
23230         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
23231         MonoClass now has the name and name_space fields. 
23232         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
23233         mono_get_method () takes and optional MonoClass as argument.
23234         Removed mono_typedef_from_name() and added mono_class_token_from_name()
23235         instead that takes advantage of a map from class names to typedef
23236         tokens in MonoImage.
23237
23238 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
23239
23240         * metadata.c: zero is not a valid alignment boundary.
23241         Merge MONO_TYPE_VOID in default decoding code.
23242
23243 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
23244
23245         * image.h: merged MonoMetadata into MonoImage
23246
23247         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
23248         identify the type of elements.
23249
23250 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
23251
23252         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
23253         * cil-coff.h: split MonoMSDOSHeader and add size info.
23254         * image.c: add some consistency checks.
23255         * metadata.c: fix row size computation: one programmer
23256         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
23257         add explanation for the locator routine.
23258         Fix decoding of size in method header.
23259         
23260 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
23261
23262         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
23263         (g_concat_dir_and_file): Bring g_concat_dir_and_file
23264         function from gnome-libs.  This uses the right path separator
23265         based on the OS, and also works around a bug in some systems where
23266         a double slash is not allowed. 
23267         (default_assembly_name_resolver): Use g_concat_dir_and_file
23268         (mono_assembly_open): ditto.
23269
23270 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
23271
23272         * metadata.c (mono_metadata_signature_equal): impl.
23273
23274         * *: void is now a realy MonoType (instead of using NULL)
23275         
23276         * metadata.c (do_mono_metadata_parse_type): use
23277         mono_metadata_parse_type to parse void value.
23278
23279 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
23280
23281         * metadata.c, metadata.h: in the signature and method header store
23282         only the space required for holding the loca vars and incoming arguments.
23283
23284 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
23285
23286         * metadata.c (do_mono_metadata_parse_type): treat void like any
23287         other type (instead of assigning NULL);
23288
23289 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
23290
23291         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
23292
23293 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
23294
23295         * image.c (do_mono_image_open): added a cache for arrays.
23296
23297 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
23298
23299         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
23300         decode a single column from a row in a metadata table and changes
23301         to take advantage of it in the typedef locator (gives a nice speed up).
23302         Store offset info for function params.
23303
23304 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
23305
23306         * image.h (MONO_IMAGE_IS_CORLIB): removed 
23307
23308 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
23309
23310         * assembly.c: how could mono_assembly_close () had ever worked?
23311         * metadata.c, metadata.h: provide offset info for local vars.
23312         Implement mono_type_size () to take care of alignment as well
23313         as size (it was mono_field_type_size in cli/class.c before).
23314
23315 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
23316
23317         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
23318
23319         * assembly.h (CORLIB_NAME): set to corlib.dll
23320
23321         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
23322
23323 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
23324
23325         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
23326         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
23327         tokentype.h: massive namespace cleanup.
23328
23329 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
23330
23331         * metadata.h, metadata.c: decode exception clauses when parsing method header.
23332
23333 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
23334
23335         * metadata.c (mono_metadata_free_type): added check for type !=
23336         NULL (void) before calling mono_metadata_free_type()
23337
23338 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
23339
23340         * metadata.h, row_indexes.h: added header with enumerations to use
23341         to index in the columns from tables in metadata and to decode coded
23342         tokens: we should start using this instead of embedding magic numbers
23343         all over the code.
23344
23345 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
23346
23347         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
23348         Move metadata_t info from cli_image_info_t to MonoImage, where
23349         it's easily accessible. Changed all the uses accordingly.
23350         Added the method and class caches to MonoImage.
23351         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
23352         and mono_metadata_decode_value () signature to be more consistent
23353         with the other parse functions (and simplify code). Taken advantage
23354         of zero-length array allocation with GCC. Removed reduntant (and
23355         wrong) MonoFieldType struct and use MonoParam instead. Changed
23356         mono_metadata_parse_field_type () to use common code for parsing.
23357         Added mono_metadata_typedef_from_field () and
23358         mono_metadata_typedef_from_method () to lookup a typedef index from a
23359         field or method token.
23360         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
23361
23362 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
23363
23364         * metadata.c (mono_metadata_parse_field_type): Implement. 
23365         (do_mono_metadata_parse_type): Split engine from
23366         mono_metadata_parse_type, so that we can create smaller structures
23367         for things that just have one pointer to the MonoType (look at
23368         the MonoFieldType)
23369
23370 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
23371
23372         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
23373         as Jan Gray found out, it is incorrect. 
23374
23375 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
23376
23377         * assembly.c: Implement asssembly loading.  This loads an image
23378         and loads all the referenced assemblies.  Come to think of it, we
23379         could always do lazy loading of the assemblies. 
23380
23381         * image.c (mono_image_open): Keep loaded images in a hashtable.
23382
23383         * image.h (MonoImage): Add reference count.
23384
23385 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
23386
23387         * assembly.c (mono_assembly_open): Keep track of the file name in
23388         case the assembly has no ASSEMBLY table.
23389
23390         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
23391         from get.c here.
23392
23393 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
23394
23395         * metadata.c, metadata.h: decode local vars in method header
23396         parse function. Change callers accordingly.
23397
23398 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
23399
23400         * metadata.h, cil-coff.h: protect against multiple inclusion.
23401         Added some new structures to hold information decoded from metadata:
23402         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
23403         and relevant decoding/free functions.
23404         * metadata.c: implement decoding functions. Add warning for out of bounds
23405         index in mono_metadata_locate(). Implement mono_get_method () to retreive
23406         all the info about a method signature and invocation. Remove check on
23407         uninitialized local var in parse_mh() and fix memory leak.
23408
23409 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
23410
23411         * metadata.h: More macros.
23412
23413         * tokentype.h: New file.
23414
23415 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
23416
23417         * assembly.c: added a consistency check and initialize
23418         some structures with g_new0().
23419         * metadata.c: fixed a couple more bugs in table size computation
23420         and add other checks for out-of bound access to metadata.
23421
23422 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
23423
23424         * metatada.c: fix bugs computing table sizes. Spew a
23425         warning when index in string heap is out of bounds.
23426
23427 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
23428
23429         * metadata.h: Add a couple of macros to manipulate tokens. 
23430
23431 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
23432
23433         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
23434         cli_section_tables).
23435
23436 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
23437
23438         * metadata.c (mono_metadata_user_string): New function, provides
23439         access to the UserString heap. 
23440
23441 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
23442
23443         * metadata.c: Add inline documentation.
23444
23445 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
23446
23447         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
23448         files. 
23449
23450 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
23451
23452         * typeattr.h: New file, TypeAttribute flags. 
23453
23454 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
23455
23456         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
23457         mono_assembly_ensure_section): Section loading code.
23458         (load_section_tables): Load the sections.
23459
23460         * mono/metadata/metadata.c (mono_metadata_locate_token,
23461         mono_metadata_locate): Functions to locate the information
23462         definition given a token or a table and an index.
23463         (mono_metadata_compute_table_bases): New.
23464         (compute_size): New function to compute the sizes of the various
23465         tables.
23466
23467         * mono/metadata/metadata.h: Finish listing the different index
23468         types. 
23469
23470         * mono/metadata/pedump.c: Improve to dump new information.
23471
23472 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
23473
23474         * mono/metadata/metadata.c: Entered all the tables matching
23475         Beta2. 
23476
23477         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
23478
23479
23480