2007-10-30 Atsushi Enomoto <atsushi@ximian.com>
[mono.git] / mono / metadata / ChangeLog
1 2007-10-30  Atsushi Enomoto  <atsushi@ximian.com>
2
3         * culture-info-table.h : regenerated.
4
5 2007-10-30  Robert Jordan  <robertj@gmx.net>
6
7         * icall-def.h, icall.c:
8         Add ves_icall_Remoting_RemotingServices_GetVirtualMethod ().
9
10         Code is contributed under MIT/X11 license.
11
12 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
13
14         * class.c (mono_class_setup_vtable): Find the inflated methods in the
15         inflated class instead of inflating them again.
16         
17         * class.c (mono_class_setup_vtable): Inflate the override methods in the 
18         dynamic case.
19
20         * class.c (mono_generic_class_get_class): Set klass->property.count as well.
21         Call setup_supertypes () after klass->parent is set.
22         (mono_class_setup_properties): Enable this to work on dynamic generic classes.
23
24         * reflection.c (mono_type_get_object): Only return a MonoGenericClass object
25         for inflated instances of not yet created dynamic generic classes.
26         (ctorbuilder_to_mono_method): Handle the case when this is called multiple
27         times from inflated_method.
28         (methodbuilder_to_mono_method): Ditto.
29
30 Mon Oct 29 21:02:53 CET 2007 Paolo Molaro <lupus@ximian.com>
31
32         * gc.c: code cleanup and removed old untested option of not creating the
33         finalizer thread.
34
35 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
36
37         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Avoid
38         creating a jump trampoline for dynamic methods.
39
40 2007-10-29 Rodrigo Kumpera <rkumpera@novell.com>
41
42         * reflection.c (mono_image_create_token): Correctly encode methods and constructors of
43         generic TypeBuilders when called from another method of the same type (bug #335131).
44
45
46 2007-10-27  Zoltan Varga  <vargaz@gmail.com>
47
48         * reflection.c (methodbuilder_to_mono_method): Revert the last change as it
49         doesn't seem to work perfectly.
50         
51         * reflection.c (ctorbuilder_to_mono_method): Handle the case when this is
52         called multiple times.
53         (methodbuilder_to_mono_method): Ditto.
54         (resolve_object): Inflate FieldBuilder's.
55
56 Fri Oct 26 19:38:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
57
58         * string-icalls.c, string-icalls.h, appdomain.c: patch from
59         Tyler Larson <mono-devel@tlarson.com> to fix the handling of
60         RemoveEmptyEntries in the string.Split implementation (bug #322375).
61
62 2007-10-26  Dick Porter  <dick@ximian.com>
63
64         * appdomain.c (MONO_CORLIB_VERSION): Bump version because of
65         Thread initialisation changes
66
67 2007-10-26 Rodrigo Kumpera <rkumpera@novell.com>
68
69         * verify.c: fix compatibility check between arrays and System.Array
70
71 2007-10-26  Zoltan Varga  <vargaz@gmail.com>
72
73         * reflection.c (mono_reflection_get_custom_attrs_info): Handle MonoGenericClass
74         too. Fixes #336999.
75
76 2007-10-25  Zoltan Varga  <vargaz@gmail.com>
77
78         * object.c (mono_value_box): Use typed allocation here.
79
80 2007-10-23  Zoltan Varga  <vargaz@gmail.com>
81
82         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Create a jump
83         trampoline instead of compiling the method right away.
84
85         * class-internals.h object.c: Add a JIT callback to create a jump trampoline.
86
87 2007-10-21  Zoltan Varga  <vargaz@gmail.com>
88
89         * class.c (mono_generic_class_get_class): Avoid setting klass->size_inited and
90         related fields for dynamic classes. Fixes #334493.
91
92 2007-10-20  Zoltan Varga  <vargaz@gmail.com>
93
94         * class.c (mono_generic_class_get_class): Set klass->field.count as well.
95         
96         * class.c (mono_class_layout_fields): Use 1 instead of TRUE for consistency.
97
98         * class.c (mono_class_layout_fields): Set size_inited for generic classes as well.
99         (mono_class_setup_vtable): Obtain overrides for dynamic generic classes correctly.
100
101         * class.c (mono_class_setup_methods): Handle dynamic inflated classes correctly.
102
103         * reflection.c (create_generic_typespec): Initialize klass->generic_container
104         if needed.
105         (reflection_methodbuilder_to_mono_method): Set container->is_method to TRUE.
106
107 2007-10-18  Jonathan Chambers <joncham@gmail.com>
108
109         * marshal.c: Use correct key when removing item
110         from ccw_hash.
111         
112         Code is contributed under MIT/X11 license.
113
114 2007-10-17  William Holmes  <billholmes54@gmail.com>
115
116         *marshal.c: Adding a case to marshal booleans to U1
117
118         Code is contributed under MIT/X11 license.
119
120 2007-10-18  Zoltan Varga  <vargaz@gmail.com>
121
122         * class.c (mono_class_from_name): Search the modules compromising dynamic
123         assemblies. Fixes #331601.
124
125 2007-10-16  Zoltan Varga  <vargaz@gmail.com>
126
127         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Throw an
128         exception if the type name contains an assembly component. Fixes #334203.
129
130         * reflection.c (mono_reflection_get_type_with_rootimage): Search all the
131         modules inside dynamic assemblies. Fixes #334200.
132         
133         * reflection.c: Set image->public_key and image->public_key_length;
134
135         * metadata-internals.h (MonoDynamicImage): Add public_key and public_key_len
136         fields.
137
138         * image.c (mono_image_get_public_key): Handle dynamic assemblies. Fixes #334173.        
139         
140 2007-10-16  Mark Probst  <mark.probst@gmail.com>
141
142         * metadata.c: Implemented correct comparing of generic classes.
143         An inflated generic class can be equal to a non-inflated one if it
144         is inflated with generic type variables as type arguments.  Fixes
145         bug #333798.
146
147 2007-10-15  Dick Porter  <dick@ximian.com>
148
149         * monitor.c (mono_monitor_try_enter_internal): Set thread state to
150         WaitSleepJoin while it is waiting to acquire a lock.  Fixes bug
151         81646.
152
153         * threads.c: Turn the thread synch_lock into a CRITICAL_SECTION,
154         instead of a monitor lock.  This means that monitor_try_enter and
155         co can set the thread state safely.
156         (ves_icall_System_Threading_Thread_Interrupt_internal): Always set
157         thread_interrupt_requested, so interrupt actually works.
158
159         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal,
160         ves_icall_System_Net_Sockets_Socket_Select_internal): Use thread
161         state accessor function
162
163 2007-10-15  Martin Baulig  <martin@ximian.com>
164
165         * mono-debug.h
166         (MONO_DEBUGGER_VERSION): Bump to 63 to make it impossible to use
167         the debugger with the current runtime.
168
169 Mon Oct 15 10:20:56 CEST 2007 Paolo Molaro <lupus@ximian.com>
170
171         * object.c, object-internals.h: added the ability to set a single
172         trampoline for all the slots in a vtable.
173
174 Fri Oct 12 17:50:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
175
176         * marshal.c: deal with a possible race condition during multicast
177         delegate invocation.
178
179 Fri Oct 12 13:31:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
180
181         * class.c: ensure value type methods don't have the synchronized
182         flag set.
183
184 Fri Oct 12 08:10:59 CEST 2007 Paolo Molaro <lupus@ximian.com>
185
186         * string-icalls.c, string-icalls.h: reverted unapproved patch that
187         breaks the build.
188
189 2007-10-11  Joel Reed  <joelwreed@comcast.com>
190
191         * string-icalls.c, string-icalls.h: modify System_String_InternalSplit
192         to take an options parameter so that empty entries can be removed during
193         the split procedure. Patch from: Tyler Larson <mono-devel@tlarson.com>
194
195 Thu Oct 11 20:16:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
196
197         * marshal.c: make sure we don't store the signature from a dynamic
198         method into the runtime invoke cache (bug #327189).
199
200 Thu Oct 11 18:22:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
201
202         * marshal.c: make sure the wrapper methods are properly initialized.
203
204 2007-10-11  Mark Probst  <mark.probst@gmail.com>
205
206         * metadata.c, metadata-internals.h: Generalized
207         mono_type_stack_size() to mono_type_stack_size_internal() which
208         takes an additional argument specifying whether it allows open
209         types.
210
211 2007-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
212
213         * verify.c (do_invoke_method): handle typedbyref params
214         correctly and check for unverifiable return values.
215
216         * verify.c (do_newobj): fix a warning.
217
218 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
219
220         * verify.c: don't tread typedbyref as allways unverifable,
221         so uses, like (ld/st)loc.0 are valid. verify for the cases
222         that it matters, like boxing related operations.
223
224 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
225
226         * verify.c: add verification of the newobj opcode. verification
227         of delegate instantation still missing due ldftn and virldftn not
228         pushing the function type on stack
229
230 2007-10-08  Mark Probst  <mark.probst@gmail.com>
231
232         * class-internals.h: Runtime generic context data structure
233         definition.
234
235         * object.c: Initialization of runtime generic context at runtime
236         vtable creation time.
237
238 2007-10-08  Massimiliano Mantione  <massi@ximian.com>
239         * class.c (mono_class_create_from_typedef,
240         mono_class_from_generic_parameter, mono_ptr_class_get,
241         mono_fnptr_class_get, mono_bounded_array_class_get)
242         * domain.c (mono_domain_create, mono_domain_free)
243         * assembly.c (mono_assembly_load_from_full, mono_assembly_close)
244         * image.c (do_mono_image_load, mono_image_close):
245         Hooked up load-unload profiler events.
246
247 Mon Oct 8 11:38:04 CEST 2007 Paolo Molaro <lupus@ximian.com>
248
249         * domain.c: track statistics about the actual amount of native code
250         allocated.
251
252 Sat Oct 6 10:01:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
253
254         * class.c: the valuetype enumerators don't have the additional
255         supertypes interfaces.
256
257 Fri Oct 5 20:33:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
258
259         * class.c: need more interfaces setup for the IEnumerator<T>
260         object created for arrays (tests/ienumerator-interfaces.2.cs).
261
262 2007-10-05  Zoltan Varga  <vargaz@gmail.com>
263
264         * class.c (mono_ldtoken): Handle methodspec tokens as well. Fixes #331097.
265
266 2007-10-05  Alp Toker  <alp@atoker.com>
267
268         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
269         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
270         #315863.
271
272 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
273
274         * verify.c (verify_type_compatibility_full): verification of
275         compatibility improved, validates correctly non-strict checks between
276         native int and I4 types different than (unsigned)int32.
277
278         * verify.c (do_store_indirect): added, do all verification of
279         ldind.X opcodes. 
280
281         * verify.c (get_load_indirect_mono_type): renamed to
282         get_indirect_op_mono_type, as it now returns the MonoType for 
283         ldind.X and stind.X opcodes.
284
285 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
286
287         * reflection.c: Fix the encoding of generic type definition for
288         TypeBuilders.
289
290         * reflection.c (mono_image_typedef_or_ref_full: do the same thing as
291         mono_image_typedef_or_ref but allows to specify if typespec lookups should
292         be made. Typespec check is done prior to typeref cache lookup.
293
294         * reflection.c (mono_image_typedef_or_ref): now just delegate to
295         mono_image_typedef_or_ref_full.
296
297         * reflection.c (encode_generic_class): encode the generic class
298         directly instead of calling encode_type.
299
300         * reflection.c (encode_type): encode the generic type definition
301         MonoClass as a generic instantiation.
302
303         * reflection.c (create_typespec): cache typespec tokens in
304         the assembly->typespec cache. Don't create typespec for a generic
305         instance MonoClass. Create typespec for the generic type defintion.
306
307         * reflection.c (create_generic_typespec): encode the generic
308         class directly instead of calling encode_type.
309
310         * reflection.c (mono_image_create_token): encode the generic
311         type definition not using a typespec for MonoType instances.
312
313
314 2007-10-04  Raja R Harinath  <rharinath@novell.com>
315
316         Fix #328812
317         * class.c (mono_image_init_name_cache): Don't return nested
318         'protected internal' classes.
319         (mono_class_from_name_case): Likewise.
320
321 2007-10-04  Atsushi Enomoto  <atsushi@ximian.com>
322
323         * icall-def.h, icall.c : get_bundled_machine_config() is now the
324           common function used by both DefaultConfig in System.dll and
325           InternalConfigurationHost in System.Configuration.dll.
326
327 Wed Oct 3 17:26:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
328
329         * class.c: automatically add to vectors only a few essential explicit
330         generic interfaces. The rest of the interfaces that arrays should
331         provide are currently implicitly added (but still not lazily, see the
332         design in the discussion of bug#325495 for the details of what is
333         needed for that). Additionally, implicit interfaces are assigned the
334         same vtable slot as the explicit interfaces (as they are compatible):
335         this enables huge memory savings since we don't need to instantiate
336         as many memthods and as large vtables anymore. Also, Since
337         GetEnumerator<T> returns an instance of a type that is required to
338         support a similarly large set of interfaces as arrays, we add
339         implicit interfaces and interface offset sharing support to those
340         types, too. This change adds all the required interfaces so that
341         the anonarray.cs test case in the bug report works (we don't add
342         all the interfaces to arrays of arrays 3-level deep and more because
343         of the memory requirements explained in the bug and since they are much
344         less common: the lazy-loading support will enabled them to work, too).
345
346 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
347
348         * verify.c (merge_stacks): major clean up, all type compatibility
349         checks are done by verify_type_compatibility. This fix my earlier lack
350         of understanding of the CLR type system and merge_stacks no longer looks
351         scary.
352
353         * verify.c: fixed some bad spelling.
354
355 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
356
357         * verify.c (mono_type_from_stack_slot): added. returns the MonoType for
358         a given stack slock.
359         
360         * verify.c: killed verify_type_compat in favor of verify_type_compatibility and
361         verify_type_compatibility_full. This removed a near indentical function and fixed
362         handling of Int32 and IntPtr across all opcodes.
363
364 Tue Oct 2 15:24:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
365
366         * class.c: only vectors have the additional generic interfaces.
367
368 2007-10-01  Jonathan Chambers <joncham@gmail.com>
369
370         * mono-config.c: Use g_strcasecmp instead of
371         strcasecmp like everywhere else to fix
372         compilation with MSVC.
373         
374         Code is contributed under MIT/X11 license.
375
376 Mon Oct 1 14:39:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
377
378         * object.c, object-internals.h: refactored the IMT code to enable
379         building a single slot at a time and lazily creating the IMT trampolines
380         and thunks.
381
382 2007-09-29  Zoltan Varga  <vargaz@gmail.com>
383
384         * loader.c (inflate_generic_signature): Allocate inflated signatures from the heap.
385
386         * metadata.c (mono_metadata_free_inflated_signature): Free the signature itself too.
387         Fixes #328501.
388         
389 2007-09-29  Raja R Harinath  <harinath@gmail.com>
390
391         * loader.c (method_from_methodspec): Rearrange to avoid
392         un-necessary exposition.  Don't assert out if the method's
393         declaring type is a generic type definition.
394
395 2007-09-28  Martin Baulig  <martin@ximian.com>
396
397         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 61.
398
399 Fri Sep 28 20:15:47 CEST 2007 Paolo Molaro <lupus@ximian.com>
400
401         * class-internals.h: optimize field layout of MonoClass to
402         requires less cachelines at runtime and save a few bytes on 64 bit
403         systems.
404
405 2007-09-28  Jb Evain  <jbevain@novell.com>
406
407         * reflection.c: when encoding type names in custom attributes,
408         if the type is a closed generic type, its generic arguments
409         have to be serialized as AssemblyQualifiedName, so that when
410         they are deserialized, it's possible to re-create them properly.
411         Fixes #329450.
412
413
414 Fri Sep 28 19:19:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
415
416         * object.c, class-internals.h: added delegate-creation counter.
417
418 Fri Sep 28 18:07:53 CEST 2007 Paolo Molaro <lupus@ximian.com>
419
420         * class.c: cleanup of the code that synthetizes interfaces for
421         arrays in 2.0: saves quit a bit of corlib mempool memory.
422         Code to fix bug #325495 ifdeffed out for now until the issues
423         with memory usage and O(n^2) behaviour are fixed.
424
425 Fri Sep 28 17:19:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
426
427         * marshal.c: when possible, do not duplicate the name of the methods
428         in the method builder and in the generated MonoMethod.
429
430 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
431         * verify.c: added support for type checking ldind_* opcodes.
432
433 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
434
435         * class-internals.h (struct _MonoGenericClass): new field is_tb_open
436         which is used to distinguish the fully open instantiation of a TypeBuilder
437         with the rest. This temporary hack is required to restore the property that
438         the fully open instantiation is the same type of the generic type definition.
439
440         * class-internals.h (mono_generic_class_is_generic_type_definition):
441         new function as part of the internal API.
442
443         * class.c (inflate_generic_type): return NULL when the generic inst is
444         fully open. The fully open generic type is now the same as the generic type
445         definition for non TypeBuilder types.
446
447         * class.c (mono_generic_class_get_class): removed assert since it is
448         no longer valid, gklass->cached_class can point to the generic type definition.
449
450         * class.c (mono_generic_class_is_generic_type_definition): new.
451
452         * metadata.c (mono_generic_class_hash): added is_tb_open field
453         to the hash calculation.
454
455         * metadata.c (free_generic_class): if the generic class is associated
456         with the generic type definition, its field will come from the mempool and
457         must not be freed.
458
459         * metadata.c (mono_metadata_is_type_builder_generic_type_definition):
460         new, this function identifies the corner case of a TypeBuilder fully open
461         instantiation.
462
463         * metadata.c (mono_metadata_lookup_generic_class): use is_tb_open
464         for lookup. Set gclass->cached_class to be the container class in case of
465         the fully open instantiation of non TypeBuilder types.
466
467         * metadata.c (_mono_metadata_generic_class_equal): use is_tb_open
468         to compare generic classes.
469
470         * reflection.c (method_encode_methodspec): remove assert that
471         no longer is valid.
472
473         * reflection.c (mono_reflection_generic_class_initialize): add
474         an aditional assert to ensure the proper type is used.
475
476 2007-09-26  Rodrigo Kumpera  <rkumpera@novell.com>
477
478         * verify.c: disabled all debug spew by default, define MONO_VERIFIER_DEBUG
479         to enjoy it.
480
481 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
482
483         * verify.c (push_arg): Fixed support for ldarga
484         * verify.c (set_stack_value): Removed superfluous parameter, fixed the
485         MonoType used as first arg in case of instance calls.
486
487 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
488
489         * verify.c: Support for verifying VAR and MVAR types, 
490
491 2007-09-25  Zoltan Varga  <vargaz@gmail.com>
492
493         * icall.c (ves_icall_get_property_info): Set the reflected type of the
494         accessors correctly.
495
496 Tue Sep 25 14:56:03 CEST 2007 Paolo Molaro <lupus@ximian.com>
497
498         * threads.c: support OSX and other systems in
499         mono_thread_get_stack_bounds (bug #328026).
500
501 2007-09-25  Martin Baulig  <martin@ximian.com>
502
503         * mono-debug.h
504         (MonoDebugVarInfo): Replace `MonoClass *klass' with `MonoType *type'.
505
506 2007-09-24  Martin Baulig  <martin@ximian.com>
507
508         * mono-debug.h
509         (MonoDebugClassEntry): Moved the definition of this struct into
510         mono-debug.c to make it private.
511
512         * mono-debug.c
513         (MonoDebugClassEntry): Removed `symfile_id'; since we now use one
514         type table per symbol file, we don't need to store the symfile id
515         any longer.
516
517 2007-09-24  Martin Baulig  <martin@ximian.com>
518
519         Create one type table per symbol file, since a `MonoClass *' gets
520         invalid when its image is unloaded.
521
522         * mono-debug.h (MonoSymbolTable): Removed `type_table'.
523         (MonoDebugHandle): Added `type_table'.
524
525 Mon Sep 24 17:25:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
526
527         * mempool.c, mempool.h: added mono_mempool_new_size () API
528         to be able to specify a smaller initial size for the pool.
529         Adjusted the code to slowly increase pool size before using
530         the previous default size.
531         * image.c: use a small initial size for image mempools.
532
533 2007-09-23  Zoltan Varga  <vargaz@gmail.com>
534
535         * marshal.c (emit_marshal_array): Generate valid IL for byref array case.
536         Fixes ##320990.
537
538         * icall.c (ves_icall_System_Reflection_Assembly_get_ManifestModuleInternal): 
539         Rename this to ves_icall_System_Reflection_Assembly_GetManifestModuleInternal.
540
541 2007-09-22  Zoltan Varga  <vargaz@gmail.com>
542
543         * metadata.c (mono_type_create_from_typespec): Remove an invalid
544         free. Fixes #327438.
545
546 2007-09-21  Raja R Harinath  <harinath@gmail.com>
547
548         * metadata.c (type_in_image) <MONO_TYPE_SZARRAY>: Handle arrays of
549         generic instantiations, etc.
550         <MONO_TYPE_ARRAY>: Likewise.
551
552 2007-09-21  Martin Baulig  <martin@ximian.com>
553
554         * mono-debug.h (MonoSymbolFilePriv, MonoDebugHandlePriv): Removed;
555         these structs were never defined.
556         (MonoDebugHandle): Removed the `_priv' field, it was never used.
557
558 2007-09-21  Martin Baulig  <martin@ximian.com>
559
560         * mono-debug.h (MonoDebugVarInfo): Add `MonoClass *klass'.
561
562 Fri Sep 21 14:39:45 CEST 2007 Paolo Molaro <lupus@ximian.com>
563
564         * image.c: removed the guid hash tables: we can get the same info
565         without the additional memory usage hit (partially fixes also bug #327052).
566
567 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
568
569         * profiler.h, profiler-private.h, profiler.c: add a new profiler
570         event to handle unloading methods. After the event is called, the
571         corresponding MonoMethod* must be considered invalid.
572         * loader.c (mono_free_method): call the new mono_profiler_method_free
573         event.
574
575 2007-09-20  Mark Probst  <mark.probst@gmail.com>
576
577         * domain-internals.h: New flag in MonoJitInfo which marks shared
578         generic methods.  New hash table (shared_generics_hash) in
579         MonoDomain to keep track of shared generic methods.  Prototypes
580         for functions to register and lookup shared generic methods.
581
582         * domain.c: Support for registering and looking up shared generic
583         methods via a hash table (shared_generics_hash) in MonoDomain.
584
585         * class-internals.h: New exception to signal failure of shared
586         compilation of a generic method.  New counters for generics
587         sharing in MonoStats.
588
589 Thu Sep 20 16:59:36 CEST 2007 Paolo Molaro <lupus@ximian.com>
590
591         * image.c, metadata-internals.h: don't keep a file descriptor open
592         for loaded assemblies (bug#325988).
593
594 2007-09-19  Raja R Harinath  <rharinath@novell.com>
595
596         * metadata.c (signature_in_image): New.  Carve out of type_in_image.
597         (ginst_in_image, gclass_in_image): Simplify.  Change signature to
598         use the corresponding datatypes.
599         (type_in_image): Update to changes.
600         (CleanForImageUserData): Simplify.
601         (steal_gclass_in_image): Carved out of old 'gclass_in_image'.
602         Avoid quadratic behaviour in handling the "stolen" list by
603         separating the filter predicate out, and by prepending the stolen
604         items rather than appending them.
605         (steal_ginst_in_image): Likewise.
606         (mono_metadata_clean_for_image): Update to changes.
607
608 2007-09-19  Martin Baulig  <martin@ximian.com>
609
610         * domain.c (mono_cleanup): Call mono_debug_cleanup() here.
611
612 2007-09-19  Martin Baulig  <martin@ximian.com>
613
614         * mono-debug.c (mono_debug_cleanup): Don't call
615         mono_debugger_cleanup(); this is now called earlier from mini_cleanup().
616
617 2007-09-19  Raja R Harinath  <harinath@gmail.com>
618
619         Fix crash on 'make run-test' in mcs/errors
620         * metadata.c (type_in_image): New.  Carve out of ginst_in_image.
621         Avoid more potential allocations in mono_class_from_mono_type.
622         (ginst_in_image): Update to changes.
623         (gclass_in_image): Rearrange slightly.
624
625 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
626
627         * class.c (mono_class_init): Move the code that sets up class->methods to 
628         mono_class_setup_methods () for inflated generic classes too. Ditto for properties.
629
630         * metadata.c (mono_metadata_get_inflated_signature): New function to return a
631         canonical instance of an inflated generic signature.
632         (mono_type_create_from_typespec): Remove an invalid free.
633
634         * loader.c (mono_method_get_signature_full): Use mono_metadata_get_inflated_signature.  
635
636 2007-09-18  Marek Habersack  <mhabersack@novell.com>
637
638         * domain-internals.h: added a declaration of the
639         mono_assembly_load_full_nosearch internal function.
640
641         * assembly.c (mono_assembly_load_with_partial_name): use
642         mono_try_assembly_resolve return value properly.
643         (mono_assembly_load_full_nosearch): copied the function body from
644         mono_assembly_load_full, without the code to invoke assembly
645         search hooks.
646         (mono_assembly_load_full): calls the above new function and if the
647         assembly is not resolved, invokes the search hooks.
648
649         * appdomain.c (mono_runtime_init): restore the global postload
650         assembly search handlers.
651
652 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
653
654         * class.c (mono_class_init): Make sure class->methods and class->properties
655         are never NULL in the generics case.
656
657         * metadata.c (free_generic_class): Enable this again, skip the dynamic case.
658
659 2007-09-17  Zoltan Varga  <vargaz@gmail.com>
660
661         * metadata.c (free_generic_class): Disable some code to fix the build.
662
663         * domain.c (mono_cleanup): Fix a crash introduced by a previous patch.
664
665         * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data
666         from the image mempool.
667
668         * metadata.c (free_generic_class): Free more data from the inflated class.
669
670         * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool.
671
672         * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
673         mempool.
674         (mono_type_create_from_typespec): Ditto.
675
676         * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
677         MonoImage to the caller.
678         (mono_init_internal): Save the opened image in a global variable.
679         (mono_cleanup): Close the image opened in get_runtimes_from_exe.
680
681         * reflection.c (resolve_object): Fix a leak.
682
683         * metadata.c: Fix the freeing of data in the generics caches.
684         
685         * metadata.c (free_generic_inst): Comment this out to fix the build.
686         (free_generic_class): Ditto.
687
688         * metadata.c: Free cached generic methods, instantinations and classes when
689         they are removed from the caches.
690         (mono_metadata_free_type): Free the type itself.
691
692         * class.c: Free the result of mono_class_inflate_generic_type () in a few
693         places.
694
695 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
696
697         * boehm-gc.c: restrict managed allocs to __thread supporting
698         architectures.
699
700 2007-09-16  Zoltan Varga  <vargaz@gmail.com>
701
702         * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
703         (mono_generic_class_get_class): Fix a leak.
704
705         * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
706         mono_metadata_free_type ().
707         (mono_metadata_inflate_generic_inst): Fix a leak.
708
709 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
710
711         * mono-debug.c (free_header_data): Fix a leak missed earlier.
712
713         * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
714         mempool.
715
716         * mono-debug.c (mono_debug_close_image): Fix call to 
717         g_hash_table_remove ().
718
719 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
720
721         * icall-def.h: redirect all the string ctor to the managed
722         CreateString () methods.
723         * string-icalls.c, string-icalls.h: removed dead code for string
724         ctors and icalls.
725
726 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
727
728         * mono-debug.c: Fix memory leaks.
729
730 2007-09-14  Jonathan Chambers <joncham@gmail.com>
731
732         * threads-types.h: Implement mono_hazard_pointer_set and 
733         mono_hazard_pointer_clear macros using do/while(0) to fix
734         compilation with MSVC.
735         
736         Code is contributed under MIT/X11 license.
737
738 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
739
740         * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
741         -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
742
743 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
744
745         * icall-def.h, string-icalls.c: get rid of old, no longer used, string
746         icalls.
747
748 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
749
750         * boehm-gc.c, gc-internal.h, object.c: allow strings to be
751         managed-code allocated as well.
752
753 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
754
755         * class.c (mono_class_is_assignable_from): Add support for generic variance.
756
757 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
758
759         * boehm-gc.c: fixed the build after the AOT changes.
760
761 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
762
763         * wrapper-types.h: Add an ALLOC wrapper type.
764
765         * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
766         reference managed allocator methods.
767
768 2007-09-12  Marek Safar  <marek.safar@gmail.com>
769
770         * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
771         of Type array and not MonoType, a fix suggested by Hari.
772         
773 2007-09-12  Jonathan Chambers <joncham@gmail.com>
774
775         * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
776         and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
777         
778         Code is contributed under MIT/X11 license.
779
780 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
781
782         * domain.c, object.c, mono-config.c, object-internals.h: Fixed  #82416.
783
784 2007-09-12  Marek Habersack  <mhabersack@novell.com>
785
786         * image.c (do_mono_image_open): if assembly file fails to open and
787         MONO_IOMAP is in effect, try to find the path in a
788         case-insensitive way.
789
790         * appdomain.c (mono_runtime_init): do not install postload hooks -
791         tests show that MS.NET doesn't use anything of that sort to
792         trigger the AppDomain.AssemblyResolve event.
793         (mono_try_assembly_resolve): renamed from try_assembly_resolve and
794         made non-static.
795         (mono_runtime_init): init portability helpers here.
796
797         * assembly.c (mono_assembly_load_with_partial_name): if other   
798         attempts fail, trigger the AppDomain.AssemblyResolve event handler
799         to resolve the assembly.
800
801         * domain-internals.h: added mono_try_assembly_resolve and marked
802         it as internal.
803
804 2007-09-11  Jb Evain  <jbevain@novell.com>
805
806         * object-internals.h (MonoReflectionDynamicMethod): add
807         a `MonoReflectionType *owner` field. The owner is used
808         * reflection.c:
809         (mono_reflection_create_dynamic_method): use the owner of the dynamic
810         method as the class declaring the dynamic method.
811         (reflection_methodbuilder_from_dynamic_method): copy the owner of the
812         dynamic method to the declaring type of the methodbuilder.
813
814 2007-09-11  Mark Probst  <mark.probst@gmail.com>
815
816         * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
817         rules for calling methods via reflection.
818
819 2007-09-11  Zoltan Varga  <vargaz@gmail.com>
820
821         * reflection.c (resolve_object): Add support for MonoGenericClass. 
822         Inflate MonoType's.
823
824 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
825
826         * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
827         provide a managed method that does fast allocations without needing
828         a managed->unmanaged transition. Boehm GC implementation currently
829         enabled for ptrfree objects on sane architectures.
830
831 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
832
833         * marshal.c, marshal.h: exported a couple of useful functions and
834         added mono_mb_get_label () to easily handle backward branches.
835
836 2007-09-10  Zoltan Varga  <vargaz@gmail.com>
837
838         * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
839
840 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
841
842         * loader.c (find_method): Fixed the regression introduced while
843         fixing bug #81466.
844
845 2007-09-09  Zoltan Varga  <vargaz@gmail.com>
846
847         * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
848         well.
849         
850         * class.c loader.c metadata.c object.c class-internals.h object-internals.h
851         icall.c reflection.c: Pass a MonoGenericContext argument to 
852         mono_lookup_dynamic_token ().
853
854         * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
855         #82744.
856         
857 2007-09-09  Robert Jordan  <robertj@gmx.net>
858
859         * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
860         for generic methods.
861
862         * object.c (mono_object_get_virtual_method): Handle generic methods.
863         Fixes bug #78882.
864
865         Code is contributed under MIT/X11 license.
866
867 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
868
869         * image.c: fix locking in mono_image_load_file_for_image ().
870
871 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
872
873         * reflection.c, icall.c, icall-def.h: the methodinfos name field is
874         used only as a cache: added an icall to fill it.
875
876 2007-09-16  Rodrigo Kumpera  <rkumpera@novell.com>
877
878         * reflection.h: exposed mono_reflection_free_type_info
879         * reflection.c (mono_reflection_get_type_internal): type_args is always freed
880         since mono_reflection_bind_generic_parameters makes a copy of it.
881         * reflection.c (free_type_info): subinfos should be freed.
882         * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and 
883         made non static.
884         * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
885         replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
886         this fixes #82695 and #81726.
887    
888
889 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
890
891         * process.h, process.c:  added support for user profile/info in
892           ProcessStartInfo. For now only Windows works.
893
894 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
895
896         * metadata.c: consider the generic arguments when comparing
897         signatures (bug #82614).
898
899 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
900
901         * cil-coff.h, image.c: updated assembly loader to cope with the
902         PE32+ 64 bit file format.
903
904 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
905
906         * assembly.c, class.c, domain.c, loader.c: remove useless
907         inclusion of cil-coff.h.
908
909 2007-08-29  Jonathan Chambers  <joncham@gmail.com>
910
911         * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
912         if interface is marked with CoClassAttribute. 
913    
914         Code is contributed under MIT/X11 license.
915
916 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
917
918         * sgen-gc.c: ensure no object from the to space is copied again or finalized
919         if it's seen twice in major collections.
920
921 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
922
923         * sgen-gc.c: big objects are not copied to the gray area, but they
924         need to be considered for scanning, too, if they are brought alive
925         by an object ready for finalizations or a survived one.
926
927 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
928
929         * sgen-gc.c: properly account the number of disappearing links when
930         they are nullified.
931
932 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
933
934         * sgen-gc.c: share the code to scan the registered roots between the
935         different types of collections.
936
937 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
938
939         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
940
941 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
942
943         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
944         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
945
946 2007-08-28  Mark Probst  <mark.probst@gmail.com>
947
948         * security-manager.c (mono_security_manager_get_methods):
949         LinkDemandSecurityException now has 2 arguments instead of 3.
950
951 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
952
953         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
954         platforms which need it.
955
956 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
957
958         * sgen-gc.c: unregister thread data structures with a pthread_key_t
959         dtor.
960
961 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
962
963         * threads.c: free the thread static data on thread exit.
964
965 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
966
967         * class.c: walk the hierarchy to find the generic definition for
968         a class (fixes runtime part of bug #82498).
969
970 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
971
972         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
973         ...
974
975         * image.c (mono_image_close): Here. Hopefully fixes #82510.
976
977 2007-08-24  Mark Probst  <mark.probst@gmail.com>
978
979         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
980
981 2007-08-24  Robert Jordan  <robertj@gmx.net>
982
983         * appdomain.c: don't perform the ':'->';' substitution on Win32.
984
985 2007-08-24  Jb Evain  <jbevain@novell.com>
986
987         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
988         for byref types.
989
990 2007-08-24  Mark Probst  <mark.probst@gmail.com>
991
992         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
993         #82286.
994
995 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
996
997         * assembly.c: Fix a warning.
998         
999 2007-08-23  Marek Habersack  <mhabersack@novell.com>
1000
1001         * appdomain.c: parse the <runtime> section looking for the probing
1002         element with the 'privatePath' attribute, which sets additional
1003         directories in which the runtime should look for assemblies.
1004
1005 2007-08-23  Robert Jordan  <robertj@gmx.net>
1006
1007         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
1008         Fixes #82499.
1009
1010 2007-08-23  Martin Baulig  <martin@ximian.com>
1011
1012         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
1013         _mono_debug_init_corlib() and remove it from the header file.
1014
1015 2007-08-23  Martin Baulig  <martin@ximian.com>
1016
1017         * mono-debug-debugger.c
1018         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
1019         don't notify the debugger about it.
1020
1021         * mono-debug-debugger.h
1022         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
1023
1024 2007-08-23  Robert Jordan  <robertj@gmx.net>
1025
1026         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
1027         Code is contributed under MIT/X11 license.
1028
1029 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
1030
1031         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
1032
1033 2007-08-22  Martin Baulig  <martin@ximian.com>
1034
1035         * mono-debug.c: Store debugging info on a per-domain basis and
1036         free it on domain unload.  Add support for unloading symbol files.
1037
1038         * mono-debug.h
1039         (MonoDebugList): New typedef.
1040         (MonoSymbolTable):
1041         - add `data_tables and `type_table'.
1042         - replace 'symbol_files' and `num_symbol_files' with a
1043           `MonoDebugList *'.
1044         (mono_debug_data_table): Removed.
1045         (mono_debug_list_add): New public function.
1046         (mono_debug_list_remove): New public function.
1047         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
1048         (mono_debug_init_2_memory): Renamed into
1049         mono_debug_open_image_from_memory().
1050         (mono_debug_close_image): New public function.
1051         (mono_debug_domain_create): Likewise.
1052         (mono_debug_domain_unload): Likewise.
1053         (MONO_DEBUGGER_VERSION): Bump to 60.
1054
1055         * mono-debug-debugger.h
1056         (MonoDebuggerEvent):
1057         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
1058         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
1059         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
1060         - rename `THREAD_CREATED' and `THREAD_EXITED' into
1061           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
1062         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
1063           meaning.
1064         (mono_debugger_add_symbol_file): Removed.
1065         (mono_debugger_add_type): Removed.
1066         (mono_debugger_lookup_type): Removed.
1067         (mono_debugger_lookup_assembly): Removed.
1068
1069         * domain.c
1070         (mono_domain_create): Call mono_debug_domain_create().
1071         (mono_init_internal): Call mono_debug_init_corlib().
1072
1073         * assembly.c
1074         (mono_assembly_close): Call mono_debug_close_image().
1075
1076 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
1077
1078         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
1079         mmap call.
1080
1081 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
1082
1083         * sgen-gc.c: ensure section->pin_queue_end is initialized
1084         correctly when non pinning objects in the section have been found.
1085
1086 2007-08-22  Marek Habersack  <mhabersack@novell.com>
1087
1088         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
1089         containing a list of directories separated by ':'. MSDN docs say
1090         the directories should be separated with ';'. Part of a bugfix for
1091         bug #81446
1092
1093 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
1094
1095         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
1096         it should MonoType and not MonoClass.
1097
1098 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
1099
1100         * culture-info-table.h : regenerated.
1101
1102 2007-08-20  William Holmes  <billholmes54@gmail.com>
1103
1104         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
1105          to call ReplaceFile Kernel32 on windows or in io-layer.
1106         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
1107         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
1108          as an internal call.
1109
1110         Code is contributed under MIT/X11 license.
1111
1112 2007-08-20  Jb Evain  <jbevain@novell.com>
1113
1114         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
1115         and MONO_EXCEPTION_FIELD_ACCESS.
1116
1117         * debug-helpers.[c|h]: new mono_field_full_name function.
1118
1119 2007-08-20  Mark Probst  <mark.probst@gmail.com>
1120
1121         * class.c: Removed class_security_level() and moved it to
1122         security-core-clr.c.
1123
1124         * security-core-clr.c, security-core-clr.h: class_security_level()
1125         is now public and renamed to mono_security_core_clr_class_level().
1126         It also looks for security attributes in the classes a class is
1127         nested in.
1128
1129 2007-08-20  Mark Probst  <mark.probst@gmail.com>
1130
1131         * security-core-clr.c, security-core-clr.h: CoreCLR security
1132         utility functions.
1133
1134         * Makefile.am: Added security-core-clr.[ch].
1135
1136         * security-manager.c, security-manager.h: Functions and enum for
1137         setting and getting the security mode.
1138
1139         * class.c: CoreCLR security checks.
1140
1141 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
1142
1143         * icall-def.h, process.c, process.h: implemented icall to get
1144         user/system processor times.
1145
1146 2007-08-17  Mark Probst  <mark.probst@gmail.com>
1147
1148         * domain.c, threads.c, class-internals.h, domain-internals.h: New
1149         reader-lock-free jit_info_table.
1150
1151 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
1152
1153         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
1154
1155         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
1156
1157         * object-internals.h (MonoException): Add missing _data member.
1158
1159 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
1160
1161         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
1162         checking that only methods with matching qname or fqname are picked
1163         from implemented interfaces.
1164
1165 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
1166
1167         * verify.c (do_newarr):added, do type verification of
1168         newarr ops, push the right value on the eval stack.
1169         * verify.c (mono_method_verify): use do_newarr
1170
1171
1172 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
1173
1174         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
1175         factored the common code into get_boxable_mono_type, which
1176         is now using mono_type_get_full, this fixed byref related tests.
1177
1178 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
1179
1180         * class.c: added mono_type_get_full, this function has the same
1181         behavior of mono_class_get_full but the returned MonoType has
1182         all metadata of the associated token in case of a typespec token.
1183         * class.c: added mono_type_retrieve_from_typespec, used by 
1184         mono_type_get_full to retrieve the token type.
1185         * class.c (mono_class_create_from_typespec): changed to use
1186         mono_type_retrieve_from_typespec.
1187         * class.c (mono_ldtoken): changed to use mono_type_get_full
1188         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
1189         * class-internals.h: exported mono_type_get_full for internal use.
1190
1191 2007-08-16  Jb Evain  <jbevain@novell.com>
1192
1193         * domain.c (supported_runtimes): add entry for
1194         the 'moonlight' runtime version.
1195
1196 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
1197
1198         * verify.c (mono_method_verify): small typo sliped in.  
1199
1200 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
1201
1202         * verify.c (do_unbox_value): added, do type verification of
1203         unboxing ops
1204         * verify.c (mono_method_verify): use do_unbox_value
1205
1206
1207 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
1208
1209         * verify.c (dump_stack_value): fixed typo, was printing string
1210         instead of object on stack.
1211         * verify.c (do_box_value): moved the byref check up as it leads
1212         to invalid code and should be done earlier.
1213         * verify.c: improved error messages for and ldobj
1214
1215 2007-08-15  William Holmes  <billholmes54@gmail.com>
1216
1217         * marshal.c (emit_marshal_custom): Omit the call to 
1218           marshal_native_to_managed when calling native to managed 
1219           and the argument is specified as an out argument.
1220
1221         Code is contributed under MIT/X11 license.
1222
1223 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
1224
1225         * verify.c: fixed the type checks for generics, function pointers and vectors.
1226         Added type verification for ldobj and ldtoken. The verifier
1227         would segfault if header or signature of a method contained references
1228         to non-existant types.
1229
1230 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
1231
1232         * marshal.c (cominterop_get_ccw): Patch from
1233         Bill Holmes to no walk up interface hierarchy. 
1234         All parent methods should be present in the interface for COM.
1235    
1236         Code is contributed under MIT/X11 license.
1237
1238 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
1239
1240         * marshal.c (emit_marshal_com_interface): Patch from
1241         Bill Holmes to handle COM Interfaces as return values
1242         for native->managed calls.
1243    
1244         Code is contributed under MIT/X11 license.
1245
1246 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
1247
1248         * marshal.c (cominterop_get_idispatch_for_object): Implement
1249         for runtime callable wrappers.
1250    
1251         Code is contributed under MIT/X11 license.
1252
1253 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
1254
1255         * pedump.c (main): changed from mono_init to mono_init_from_assembly
1256         so 2.0 types are accessible
1257
1258
1259 2007-08-13  Miguel de Icaza  <miguel@novell.com>
1260
1261         * domain.c (mono_init_internal): Call mono_assembly_load_friends
1262         once we load mscorlib.   Due to the order in which we initialize,
1263         the mono_assembly_load_full routine that loads mscorlib did not
1264         load friends.   We now load it once we load the
1265         mono_defaults.internals_visible_class class. 
1266
1267         * assembly.c: Expose the mono_load_friend_assemblies method.
1268
1269 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
1270
1271         * verify.c: improved the handling of boxing, better
1272         type checking for unary ops and conversion. Fix bug
1273         regarding managed pointer compatibility checking
1274
1275 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
1276
1277         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
1278
1279         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
1280
1281 2007-08-09  Raja R Harinath  <rharinath@novell.com>
1282
1283         * reflection.c (dup_type): Remove.
1284         * class.c (dup_type): Remove.
1285         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
1286         instead of the dodgy 'dup_type'.
1287         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
1288         handle the case where 'dup_type' needed the second argument.
1289
1290 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
1291
1292         * domain.c: Fix a warning.
1293
1294 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
1295
1296         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
1297         checking that methods with the same fqname are not overridden
1298         with a method from an ancestor.
1299
1300 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
1301
1302         * threads.c (free_thread_static_data_helper): Avoid a crash if
1303         thread->static_data is not yet set.
1304
1305 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
1306
1307         * marshal.c: Use correct image when emitting
1308         native wrapper for COM calls.
1309    
1310         Code is contributed under MIT/X11 license.
1311
1312 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
1313
1314         * icall-def.h, security.c, security.h :
1315           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
1316
1317 2007-08-07  Martin Baulig  <martin@ximian.com>
1318
1319         * mono-debug-debugger.h
1320         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
1321
1322         * domain.c (mono_domain_free): Call
1323         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
1324
1325 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
1326
1327         * verify.c (check_underflow, check_overflow): error message now returns IL offset
1328         * verify.c (in_same_block): code should test if either offset is inside the clauses
1329         * verify.c (mono_method_verify): push the exception into the eval stack of exception
1330         and filter blocks
1331
1332 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
1333
1334         * image.c (mono_image_close): Fix a leak.
1335
1336         * object.c (mono_runtime_invoke_array): Avoid using alloca.
1337
1338         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
1339
1340 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
1341
1342         * domain.c, threads.c, threads-types.h: fix memory retention issue
1343         with thread static variables not being cleared on domain unload.
1344         Reuse thread static slots after domain unload.
1345
1346 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
1347
1348         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
1349         nullable type.
1350
1351         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
1352         now done in mono_runtime_invoke_array.
1353
1354         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
1355         receiver is a nullable type.
1356
1357         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
1358         generic parameter.
1359
1360 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
1361
1362         * marshal.c: Implement COM Objects as return type for 
1363         managed->unmanaged calls. Added Release calls for COM Object
1364         out/return values in managed->unmanaged calls.
1365
1366         Code is contributed under MIT/X11 license.
1367
1368 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
1369
1370         * threads.h, threads-type.h: move the hazard pointer declarations
1371         to the private header.
1372
1373 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
1374
1375         * file-io.c, appdomain.c: memory leak fixes.
1376
1377 2007-08-02  Dick Porter  <dick@ximian.com>
1378
1379         * socket-io.c
1380         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
1381         SO_REUSEADDR setting into io-layer/sockets.c.
1382
1383 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
1384
1385         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
1386         from Object when called on a generic parameter. Fixes #82211.
1387
1388 2007-08-01  Dick Porter  <dick@ximian.com>
1389
1390         * file-io.c (convert_share): Test FileShare values bit-by-bit.
1391         Fixes bug 79250 yet again.
1392
1393 2007-07-30  Martin Baulig  <martin@ximian.com>
1394
1395         Merged the `debugger-dublin' branch.
1396
1397         * mono-debug.h
1398         (MonoDebugDataTable): New typedef.
1399         (MonoDebugMethodAddressList): New typedef.
1400         (MonoDebugWrapperData): Removed.
1401         (MonoDebugSymbolTable): Removed `current_data_table',
1402         `current_data_table_size', `current_data_table_offset'.
1403         (MonoDebugDataItemType): Moved into mono-debug.c.
1404         (MonoDebugMethodJitInfo): Remove `address'.
1405         (mono_debug_data_table): New global variable.
1406         (mono_debug_lookup_method_addresses): New public function.
1407         (mono_debug_find_method): Take a `MonoMethod *', not a
1408         `MonoDebugMethodInfo *'.
1409
1410         * mono-debug.c: Drop support for the old symbol tables.
1411
1412 2007-06-28  Martin Baulig  <martin@ximian.com>
1413
1414         * mono-debug.c (mono_debug_debugger_version): New public variable.
1415
1416 2007-07-31  William Holmes  <billholmes54@gmail.com>
1417
1418         * metadata.c Changed mono_type_create_from_typespec to not insert
1419           the type into the hash map until after
1420           do_mono_metadata_parse_type has completed.
1421         Fixes Bug #82194
1422         Code is contributed under MIT/X11 license.
1423
1424 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
1425
1426         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
1427         generic parameter. Fixes #82211.
1428
1429 2007-07-27  Jb Evain  <jbevain@novell.com>
1430
1431         * pedump.c (dump_metadata, dump_metadata_header): dump
1432         versions contained in the metadata header.
1433
1434 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
1435
1436         * threads.c: register small_id_table with the GC.
1437
1438 2007-07-27  Mark Probst  <mark.probst@gmail.com>
1439
1440         * threads.c, threads.h, class-internals.h, object-internals.h:
1441         Hazard pointers, to be used by lock-free parallel algorithms.
1442
1443 2007-07-26  Dick Porter  <dick@ximian.com>
1444
1445         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
1446         routine on non-windows platforms, as I've not managed to think of
1447         a non-kludgy way of doing this.  Finishes off bug 78739.
1448
1449 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
1450
1451         * object.c: properly setup interface_bitmap in proxy vtables.
1452
1453 2007-07-25  Marek Habersack  <mhabersack@novell.com>
1454
1455         * appdomain.c (get_shadow_assembly_location): do not use TickCount
1456         to create unique shadow copy target directories, use the domain's
1457         serial number instead. Each domain gets a unique target directory
1458         that way.
1459
1460         * domain.c (mono_domain_create): added code to increment domain
1461         shadow copy serial number and cache the value in the current
1462         domain structure.
1463
1464         * domain-internals.h (struct _MonoDomain): added a new field -
1465         shadow_serial to hold the serial number used in generation of
1466         shadow-copy directories. This is to make sure that the directory
1467         name is unique for each and every domain created. We avoid a race
1468         condition with overriding assemblies already in use by other app
1469         domains.
1470
1471 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
1472
1473         * class.c (mono_bounded_array_class_get): fixed memory leak when 
1474         binding generic parameters.
1475
1476 2007-07-24  Raja R Harinath  <rharinath@novell.com>
1477
1478         * metadata.c (do_mono_metadata_parse_generic_class): Use
1479         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
1480         error.
1481
1482 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
1483
1484         * loader.c, class-internals.h, reflection.c: removed the per-method
1485         generics hashtable: we use the global one through the call of
1486         mono_class_inflate_generic_method ().
1487
1488 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
1489
1490         * class.c, metadata.c, class-internals.h: introduce yet another
1491         generics global cache for inflated methods (fixes 98% of the perf
1492         issue in bug #81806).
1493
1494 2007-07-23  Raja R Harinath  <rharinath@novell.com>
1495
1496         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
1497         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
1498         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
1499         return a MonoGenericInst containing (a copy) of those types.
1500         (mono_metadata_inflate_generic_inst): Update to changes.
1501         (mono_metadata_parse_generic_inst): Likewise.
1502         (mono_get_shared_generic_inst): Likewise.
1503         * reflection.c (mono_class_bind_generic_parameters): Likewise.
1504         (mono_reflection_bind_generic_method_parameters): Likewise.
1505         * metadata-internals.h: Likewise.
1506         * icall.c (free_generic_context): Kill.
1507         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
1508
1509         * reflection.c (reflection_methodbuilder_to_mono_method): Use
1510         mono_metadata_type_dup.
1511         * marshal.c (mono_mb_create_method): Likewise.
1512
1513         * metadata.c (mono_metadata_type_dup): Rename from
1514         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
1515         MonoImage.  Handle a few more cases, esp. when no mempool is given.
1516         * marshal.c, metadata-internals.h: Update to changes.
1517
1518 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
1519
1520         * class.c: fixed a small leak for array classes and removed warning.
1521
1522 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
1523
1524         * loader.c (mono_method_get_param_token): Make this work on generic methods.
1525         Return 0x8000000 for return parameters. Fixes #82161.
1526
1527 2007-07-21  Marek Habersack  <grendello@gmail.com>
1528
1529         * appdomain.c (get_shadow_assembly_location): append the current
1530         ticks value to the path. Avoids overwriting the same assemblies by
1531         several threads at the same time.
1532
1533 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
1534         and Raja R Harinath  <rharinath@novell.com>
1535
1536         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
1537         Simplify slightly.
1538         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
1539         property for testing if a method is a generic method definition.
1540
1541 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
1542
1543         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
1544
1545 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1546
1547         * verify.c: used function from private branch, reverted to the one in class.h 
1548
1549 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1550
1551         * verify.c: a typo slipped in and the code wont compile
1552
1553 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1554
1555         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
1556         disabled box instruction as it is doing the wrong thing
1557         improved stack dump messages, now it is easier to debug type related issues
1558
1559
1560 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
1561
1562         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
1563
1564 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1565
1566         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
1567         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
1568         grouped with class and valuetype. This change will simply 
1569         the code as it should be handled just like unmanaged pointers.
1570
1571 2007-07-19  Mark Probst  <mark.probst@gmail.com>
1572
1573         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
1574
1575 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1576
1577         * verify.c: several stack merge issues fixed, reference comparisons now
1578         check the type size. strict type check now works correctly.
1579         added more uses of IS_MANAGED_POINTER macro.
1580         fixed issues pointed by running the test suite against .net.
1581         
1582
1583 2007-07-19  Mark Probst  <mark.probst@gmail.com>
1584
1585         * class.c, loader.c, class-internals.h: Removed the
1586         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
1587         defines.
1588
1589         * icall.c: Better error checking in some internal reflection
1590         methods.
1591
1592 2007-07-18  William Holmes  <billholmes54@gmail.com>
1593
1594         * filewatcher.c : removed unused variable 'filename' in 
1595           ves_icall_System_IO_FSW_SupportsFSW
1596
1597 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
1598
1599         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
1600         obsolete, removed.
1601
1602 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
1603
1604         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
1605         
1606         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
1607
1608 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
1609
1610         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
1611         Implement generics support.
1612         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
1613
1614         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
1615         type_args and method_args arguments.
1616         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
1617         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
1618         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
1619
1620 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
1621
1622         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
1623           It adds a rootimage parameter to mono_reflection_get_type_internal,
1624           adds new function mono_reflection_get_type_with_rootimage and use
1625           the rootimage to resolve the types instead of the current image
1626
1627 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1628
1629         * culture-info-table.h: Forgot to update after r78304.
1630
1631 2007-07-13  Raja R Harinath  <rharinath@novell.com>
1632
1633         * class.c (mono_class_is_open_constructed_type)
1634         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
1635
1636 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
1637
1638         * class.c (mono_bounded_array_class_get):  method fails if used with
1639         an incomplete TypeBuilder enum (no basetype field), fixed it by 
1640         avoiding calculating the size for such array as it cannot be instantiated.
1641         Fix bug #82015
1642
1643 2007-07-12  Raja R Harinath  <rharinath@novell.com>
1644
1645         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
1646         field.
1647         * metadata.c, reflection.c: Update to changes.
1648
1649 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
1650
1651         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
1652         mono_class_is_valid_enum, they are used to valide a enum when loading.
1653         * reflection.c: used new functions to throw TypeLoadException when and
1654         invalid enum is build with TypeBuilder. Fixes #82018
1655   
1656 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
1657
1658         * object.c: forgot commit of mono_class_setup_methods () to access
1659         iface->methods.
1660         * object-internals.h: added a few more handy fields to
1661         MonoIMTCheckItem.
1662
1663 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
1664
1665         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
1666         iface->methods.
1667
1668 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
1669
1670         * class-internals.h, object-internals.h, object.c: IMT-based
1671         interface invocation core from Massimiliano Mantione
1672         (massi@ximian.com) with a reworked arch-specific interface,
1673         bsearch implementation and a few bugfixes and memory savings by me.
1674
1675 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
1676
1677         * class.c (mono_class_create_from_typedef): mono would segfault if 
1678         an enum did not have a __value field. It now throws a TypeLoadException
1679         for such cases. Fix bug #82022
1680
1681 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
1682
1683         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
1684
1685 2007-07-09  Mark Probst  <mark.probst@gmail.com>
1686
1687         * class.c (mono_class_init): If a class is already inited but has
1688         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
1689
1690 2007-07-09  Mark Probst  <mark.probst@gmail.com>
1691
1692         * class.c: Properly handle the case of an unimplemented interface
1693         method.  Fixes: 81673.
1694
1695 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
1696
1697         * class-internals.h, object.c: cleanup patch from massi: use
1698         MonoVTable->interface_bitmap since the vtable interfaces offset array
1699         is going away.
1700
1701 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
1702
1703         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
1704         GetMDStreamVersion icall instead.
1705
1706 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
1707
1708         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
1709         not use mono_dl_build_path() with a full library name: makes
1710         fallbacks to libgaim and libfam work.
1711
1712 2007-07-06  William Holmes  <billholmes54@gmail.com>
1713
1714         * assembly.c: Added a continue statement in probe_for_partial_name when
1715          parse_assembly_directory_name fails.  Fixes : 82002
1716
1717 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
1718
1719         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
1720         and added a verification  for TYPEDBYREF.
1721         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
1722         make native int interchangeable with int32 and some small cleanup and formating.
1723         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
1724         handle byref of byref.
1725         * verify.c (push_local): handle byref of byref.
1726         * verify.c (do_binop): invalid mix of values is unverifiable
1727         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
1728         added visibility checks
1729         * verify.c (field related method): added visibility checks
1730         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
1731
1732 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
1733
1734         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
1735         string.
1736
1737 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
1738
1739         * profiler.c (mono_profiler_load): Fix an off-by-one error.
1740
1741         * marshal.c (emit_marshal_string): When returning a string from managed code,
1742         allways make a copy even for unicode strings. Fixes #81990.
1743
1744 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
1745
1746         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
1747         of byref generic inst types (bug #81997).
1748
1749 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
1750
1751         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
1752         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
1753
1754 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
1755
1756         * marshal.c (emit_marshal_string): Add support for unicode strings in
1757         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
1758
1759 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
1760
1761         * verify.c: field load/store are now verified, missing only access checks now
1762
1763 2007-06-28  Martin Baulig  <martin@ximian.com>
1764
1765         * mono-debug.c (mono_debug_debugger_version): New public variable.
1766
1767 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
1768
1769         * locales.c: When constructing DateTimeFormat or NumberFormat for
1770         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
1771         MonoCultureInfo contructed from the current locale is always
1772         read-only and has UseUserOverride set to true. All MonoCultureInfo
1773         instances returned for GetCultures have both IsReadOnly and
1774         UseUserOverride set to true. Fixes part of bug #81930.
1775
1776 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
1777
1778        * icall-def.h: Update System.__ComObject icalls
1779        * marshal.c: Avoid managed transition (and object creation)
1780        when looking up COM interface in RCW.
1781        * marshal.h: Ditto.
1782        
1783        Code is contributed under MIT/X11 license.
1784
1785 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
1786
1787         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
1788         to avoid crashes during assembly unloading.
1789
1790 2007-06-22  Raja R Harinath  <rharinath@novell.com>
1791
1792         Fix MethodInfo.IsGenericMethodDefinition
1793         * reflection.c (mono_reflection_bind_generic_method_parameters):
1794         Rearrange code to ensure we always uses a generic method definition.
1795         * class.c (mono_class_inflate_generic_method_full): Set
1796         'generic_container' field only for generic method definitions.
1797         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
1798         Use presense of 'generic_container' field as indication of being a
1799         generic method definition.
1800
1801 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
1802
1803         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1804
1805         * object-internals.h: Reflect changes in the layout of the managed Delegate
1806         class.
1807         
1808         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
1809         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
1810         runtime memory used by the dynamic method. Fixes #77146.
1811
1812 2007-06-21  Dick Porter  <dick@ximian.com>
1813
1814         * file-io.h: 
1815         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
1816         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
1817         81767.
1818
1819 2007-06-21  Raja R Harinath  <rharinath@novell.com>
1820
1821         * reflection.c (method_encode_methodspec): Add a tripwire.
1822         * class.c (inflate_generic_type): The fully open generic type is
1823         not the same as the generic type definition.
1824
1825 2007-06-21  Martin Baulig  <martin@ximian.com>
1826
1827         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
1828
1829         * mono-debug-debugger.h
1830         (MonoDebuggerBreakpointInfo): Removed.
1831         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
1832         (mono_debugger_remove_breakpoint): Likewise.
1833         (mono_debugger_breakpoint_callback): Likewise.
1834         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
1835
1836 2007-06-21  Raja R Harinath  <rharinath@novell.com>
1837
1838         * metadata.c (mono_metadata_lookup_generic_class): The fully open
1839         generic type is not the same as the generic type definition.
1840         * class.c (mono_generic_class_get_class): Likewise.
1841
1842 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
1843
1844         * icall.c: The second argument to 
1845         System.Reflection.MethodBase.GetMethodFromHandleInternalType
1846         is a MonoType not a MonoClass.
1847
1848 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
1849
1850         * verify.c: support for function pointers in the verifier
1851
1852 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
1853
1854         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
1855
1856 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
1857
1858         * assembly.c: removed Mono.Data.SqliteClient from the list of
1859         forward-compatible assemblies as it breaks the ABI (bug #81899).
1860
1861 2007-06-19  Raja R Harinath  <rharinath@novell.com>
1862
1863         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
1864         lookup/update with the loader lock.
1865         * reflection.c (mono_class_bind_generic_parameters): No need to
1866         protect mono_metadata_lookup_* with the loader lock.
1867         * class.c (inflate_generic_type): Likewise.
1868         
1869         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
1870         on a generic instantiated type.
1871
1872 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
1873
1874         *verify.c: produce meanfull error messages on verification error
1875         *verify.c: fixed some cases of verification errors reported as validation errors
1876         *pedump.c: fixed the error name array, now it shows validation errors properly
1877         *verify.h: fixed the contant that should be used for verification errors
1878
1879 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
1880
1881         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
1882         for bug #77596, 81858 and 80743 (generics data structures on domain
1883         unload).
1884
1885 2007-06-15  Raja R Harinath  <rharinath@novell.com>
1886
1887         Avoid allocating 'MonoGenericContext' on the heap.
1888         * class-internals (_MonoMethodInflated::context): Make field
1889         inline, not a pointer.
1890         * loader.c (method_from_methodspec): Allocate 'new_context' on the
1891         stack.  Use the context embedded within the inflated method as the
1892         hash key, rather than 'new_context'.
1893         * class.c (inflate_generic_context): Simplify.  Return a struct
1894         rather than allocating on the heap.
1895         (mono_class_inflate_generic_method_full): Update to changes.  Now,
1896         doesn't salt away a copy of the context -- simplifying the
1897         lifetime rules of a 'MonoGenericContext *'.
1898         (mono_method_get_context): Return pointer to embedded context.
1899         (setup_generic_array_ifaces): Allocate temporary context on stack.
1900         * reflection.c (inflate_mono_method): Likewise.
1901         (mono_reflection_bind_generic_method_parameters): Likewise.
1902         Use the context embedded within the inflated method as the hash key.
1903
1904         Avoid a source of allocation of 'MonoGenericContext'.
1905         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
1906         and 'cached_context' fields into embedded 'MonoGenericContext' field.
1907         * class.c: Update to changes.
1908         (mono_generic_class_get_context): Simplify drastically.  Now just
1909         returns a pointer to the field.
1910         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
1911         argument as a const pointer.
1912         (mono_metadata_generic_context_equal): Likewise.
1913         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
1914         Update to changes.
1915
1916 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
1917
1918         * verify.c improved the handling of brtrue/brfalse, factored out common code
1919
1920 2007-06-14  Raja R Harinath  <rharinath@novell.com>
1921
1922         Kill MonoGenericMethod.
1923         * class-internals.h (MonoGenericContext::method_inst): Rename from
1924         'gmethod' and convert to a MonoGenericInst.
1925         (MonoGenericMethod): Remove.
1926         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
1927         * loader.c (method_from_methodspec): Update to changes.  Use a
1928         MonoGenericContext as the key to the hashtable.
1929         * metadata.c (mono_metadata_generic_context_equal): Rename from 
1930         'mono_metadata_generic_method_equal' and take MonoGenericContext.
1931         (mono_metadata_generic_context_hash): Likewise from
1932         'mono_metadata_generic_method_hash'.  Change hash function.
1933         (mono_metadata_load_generic_params): Update to changes.
1934         (mono_get_shared_generic_method): Remove.
1935         * metadata-internals.h (mono_get_shared_generic_method): Remove.
1936         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
1937         (inflate_generic_context): Likewise.
1938         (mono_class_inflate_generic_method_full): Likewise.
1939         (setup_generic_array_ifaces): Likewise.
1940         (mono_class_create_from_typespec): Likewise.
1941         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
1942         (method_encode_methodspec): Update callsite.
1943         (reflection_methodbuilder_to_mono_method): Update to changes.
1944         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
1945         MonoGenericContext as the key to the hashtable.
1946         (inflate_mono_method): Update to changes.
1947
1948         * class-internals.h (MonoGenericMethod::container): Remove.
1949         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
1950
1951 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
1952
1953         * profiler-private.h, profiler.c, profiler.h: added API to profile
1954         exception events.
1955
1956 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
1957
1958         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
1959
1960 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
1961
1962         * verify.c: method invocation is now validated, now we verify parameter types on stack.
1963         Fixed overflow and underflow not aborting the verification process.
1964
1965 2007-06-13  Mark Probst  <mark.probst@gmail.com>
1966
1967         * class-internals.h (MonoStats): Added stats entries for dynamic
1968         code allocations.
1969
1970 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
1971
1972         * loader.c (mono_free_method): Free header->locals and header->clauses.
1973
1974         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
1975         dynamic case.
1976
1977         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
1978
1979         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
1980
1981 2007-06-12  Raja R Harinath  <rharinath@novell.com>
1982
1983         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
1984         the tables.
1985
1986 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1987
1988         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
1989
1990 2007-06-11  Raja R Harinath  <harinath@gmail.com>
1991
1992         MonoGenericMethod on a diet
1993         * class-internals.h (_MonoMethodInflated::reflection_info): Move
1994         here ...
1995         (_MonoGenericMethod::reflection_info): ... from here.
1996         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
1997         Update to changes.
1998         * reflection.c (inflate_mono_method): Likewise.
1999         (mono_reflection_bind_generic_method_parameters): Likewise.
2000
2001 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
2002
2003         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
2004         *verify.c: factored long ldarg forms to share code with short forms
2005
2006 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
2007
2008         *verify.c: fixed code formating factored some duplicate code
2009         into a new function
2010
2011         *verify.h: fixed binary incompatibility introduced earlier
2012
2013         *pedump.c: fixed formating
2014
2015 2007-06-11  Raja R Harinath  <harinath@gmail.com>
2016
2017         Fix assertion when disassembling Mono.C5.dll
2018         * loader.c (method_from_methodspec): Avoid inflating a method
2019         twice with the same context.  If the methodref is inflated, use
2020         the declaring method instead.
2021
2022         * class.c (mono_class_from_generic_parameter): Fix case similar to
2023         bug #81830 handled below, but for method containers.
2024
2025 2007-06-10  Raja R Harinath  <harinath@gmail.com>
2026
2027         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
2028         get_shared_generic_class.  Directly inflate the instance.
2029         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
2030         (inflate_generic_class): Delete.
2031         (get_shared_generic_class): Delete.  Move setting of
2032         'cached_class' and 'cached_context' ...
2033         * metadata.c (mono_metadata_lookup_generic_class): ... here.
2034
2035         * metadata.c (mono_metadata_lookup_generic_class): Change
2036         signature to take the components of a MonoGenericClass rather than
2037         an allocated MonoGenericClass.  Change semantics to be intern-like.
2038         * reflection.c (mono_class_bind_generic_parameters): Update to
2039         changes.  Make locking region tighter.
2040         * class.c (inflate_generic_class): Update to changes.
2041         (get_shared_generic_class): Likewise.
2042         * metadata-internals.h: Likewise.
2043
2044         * reflection.c (mono_class_bind_generic_parameters): Take and
2045         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
2046         (mono_reflection_bind_generic_parameters): Use
2047         'mono_class_bind_generic_parameters' rather than duplicate the code.
2048         * class.c (mono_bounded_array_class_get): Update to changes.
2049         * object-internals.h: Likewise.
2050
2051         * reflection.c (mono_class_bind_generic_parameters): Only support
2052         parameterizing generic type definitions.  Remove support for other
2053         open types.
2054
2055 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
2056
2057         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
2058
2059         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
2060         in the dynamic case.
2061
2062 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
2063
2064         * threads.c: When cleaning up thread, reset the Background bit.
2065         Fixes bug #81720.
2066
2067 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
2068
2069        * metadata.c: Move variable declarations to top of scope.
2070        * verify.c: Move variable declarations to top of scope.
2071
2072        Code is contributed under MIT/X11 license.
2073
2074 2007-06-08  Raja R Harinath  <rharinath@novell.com>
2075
2076         * reflection.c (mono_class_bind_generic_parameters): Replace
2077         open-coded loop with mono_metadata_inflate_generic_inst.
2078
2079         * class.c (get_shared_generic_class): Don't call
2080         mono_get_shared_generic_inst.  Use the container's own
2081         'class_inst'.
2082
2083         * metadata.c (mono_metadata_load_generic_params): Move
2084         initialization of 'context' field here from ...
2085         * class.c (mono_class_create_from_typedef): ... here, and ...
2086         * loader.c (mono_get_method_from_token): ... here.
2087
2088         * class.c (get_shared_generic_class): Rename from
2089         mono_get_shared_generic_class and make static.
2090         (mono_get_shared_generic_inst): Move to metadata.c.
2091         * loader.c (mono_get_shared_generic_method): Likewise.
2092         * class-internals.h, metadata-internals.h: Update to changes.
2093
2094         Fix #81830
2095         * class.c (mono_class_from_generic_parameter): Don't assume a
2096         generic container owner exists.  Generic containers from monodis
2097         don't have any.
2098
2099 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
2100
2101         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
2102         * verify.h: new typedefs to returns the non-verifiable status
2103         * verify.c: initial implementation of generics, stack merging and object compatibility check
2104
2105 2007-06-06  Mark Probst  <mark.probst@gmail.com>
2106
2107         * class.c, image.c, class-internals.h (MonoImage): class_cache is
2108         a MonoInternalHashTable again (fixed bug in internal hash table
2109         code).
2110
2111 2007-06-06  Mark Probst  <mark.probst@gmail.com>
2112
2113         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
2114         MonoInternalHashTable again (fixed bug in internal hash table
2115         code).
2116
2117 2007-06-06  Mark Probst  <mark.probst@gmail.com>
2118
2119         * class.c, image.c, class-internals.h, domain.c,
2120         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
2121         changes.  Have to figure out what makes them break the SWF
2122         regression.
2123
2124 2007-06-04  Mark Probst  <mark.probst@gmail.com>
2125
2126         * class.c, image.c, class-internals.h (MonoImage): class_cache is
2127         a MonoInternalHashTable now.
2128
2129 2007-06-04  Mark Probst  <mark.probst@gmail.com>
2130
2131         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
2132         MonoInternalHashTable now.
2133
2134 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
2135
2136         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
2137         invoke_impl code.
2138
2139         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
2140
2141         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
2142         dependent trampoline.
2143
2144         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2145
2146         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
2147
2148 2007-05-29  Robert Jordan  <robertj@gmx.net>
2149
2150         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
2151
2152 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
2153
2154         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
2155
2156 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
2157
2158        * marshal.c: Fix interface lookup loops for
2159        cominterop_get_com_slot_for_method and 
2160        cominterop_get_method_interface. Only need to lookup
2161        if type is a class, else use interface type method is on.
2162
2163        Code is contributed under MIT/X11 license.
2164
2165 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
2166
2167         * reflection.c: HasSecurity can be present even if no specially 
2168         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
2169         SecurityAttribute). Fix CAS regression tests on buildbot.
2170
2171 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
2172
2173        * appdomain.c: Add configure checks for header files.
2174        * image.c: Add configure checks for header files.
2175        * file-io.c: Add configure checks for header files.
2176        * debug-mono-symfile.c: Add configure checks for header files.
2177        * threadpool.c: Add configure checks for header files.
2178        * console-io.c: Add configure checks for header files.
2179        * profiler.c: Add configure checks for header files.
2180        * rawbuffer.c: Add configure checks for header files.
2181        * icall.c: Add configure checks for header files.
2182        * rand.c: Add configure checks for header files.
2183        * socket-io.c: Add configure checks for header files.
2184
2185        Code is contributed under MIT/X11 license.
2186
2187 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
2188
2189         * reflection.c (mono_custom_attrs_from_builders): Remove the 
2190         assertion as it breaks the build.
2191         
2192         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
2193
2194         * reflection.c (lookup_custom_attr): Make a copy here too.
2195
2196         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
2197         dynamic images.
2198
2199         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
2200         images.
2201
2202         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
2203         info.
2204
2205 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
2206
2207         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
2208         (load_cattr_value): Ditto.
2209
2210 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
2211
2212         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
2213
2214 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
2215
2216         * threads.c: In "start_wrapper", set apartment_state to MTA if
2217         apartment_state is Unknown and we're running on 2.0 profile or
2218         higher.
2219         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
2220         to main method, then set apartment_state to Unknown on 1.0 profile,
2221         and MTA on 2.0 profile.
2222
2223 2007-05-16  Jb Evain  <jb@nurv.fr>
2224
2225         * class-internals.h (MonoDefaults): Add an attribute_class and
2226           customattribute_data_class.
2227         * domain.c (mono_init_internal): Populate them.
2228         * reflection.c: Use them to remove duplicates. Make a vew
2229         MonoClass variables `static'.
2230
2231 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
2232
2233         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
2234         step in implementing IMT, so that all isinst checks now can go
2235         through the bitmap.
2236         This was needed because vtables for TransparentProxy need to look
2237         like the vtable of the "target" class, so they need to point to
2238         its interface bitmap directly.
2239
2240         * object.c: inside "mono_class_create_runtime_vtable" and
2241         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
2242
2243 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
2244
2245         * object-internals.h
2246           culture-info.h : added territory field in MonoCulture and
2247           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
2248         * locales.c : fill territory field above too.
2249         * culture-info-table.h : regenerated.
2250
2251 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
2252
2253         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
2254         Fixes #81599.
2255
2256 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
2257
2258         * object.c: Always initialize apartment, even if 
2259         there is no custom attributes on entry point.
2260         
2261         Code is contributed under MIT/X11 license.
2262
2263 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
2264
2265         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
2266         * metadata.c: If no encoding is set, check for unicode
2267         on class.
2268         
2269         Code is contributed under MIT/X11 license.
2270
2271 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
2272
2273         * threads.c: Handle if mono_thread_current returns NULL 
2274         
2275         Code is contributed under MIT/X11 license.
2276
2277 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
2278
2279         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
2280         in start_wrapper. Added mono_thread_init_apartment_state and
2281         mono_thread_cleanup_apartment_state.
2282         * object.c: Initialize thread apartment state on main thread
2283         by checking for STAThreadAttribute on entry point.
2284         * object-internals.h: Add apartment_state field to MonoThread.
2285         * threads-types.h: Add unmanaged definition of 
2286         System.Threading.ApartmentState, MonoThreadApartmentState.
2287         
2288         Code is contributed under MIT/X11 license.
2289         
2290 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
2291
2292         * class.c: Fix windows build.
2293         * class-internals.h: Fix windows build.
2294         
2295         Code is contributed under MIT/X11 license.
2296
2297 2007-05-08  Robert Jordan  <robertj@gmx.net>
2298
2299         * process.c (CreateProcess_internal):
2300         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
2301         .CreateNoWindow was specified. Fixes #81496.
2302
2303 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
2304
2305         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
2306         step in implementing IMT, replaced it with two compact arrays
2307         (interfaces_packed and interface_offsets_packed) and a bitmap that
2308         is used for isinst checks (interface_bitmap).
2309
2310         * class.c: (compare_interface_ids): compare function to pass to
2311         bsearch when looking for an interface with a given id.
2312         (mono_class_interface_offset): reimplemented using bsearch on
2313         interfaces_packed, getting the offset from interface_offsets_packed.
2314         (print_implemented_interfaces): utility debugging function.
2315         (setup_interface_offsets): reworked to initialize interfaces_packed,
2316         interface_offsets_packed and interface_bitmap.
2317
2318         * object.c: replaced all accesses to "MonoClass.interface_offsets"
2319         with uses of interfaces_packed and interface_offsets_packed.
2320
2321 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
2322
2323         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
2324         mono_class_interface_offset prototype to wrap all accesses to
2325         "MonoClass.interface_offsets".
2326
2327         * class.c: Implemented mono_class_interface_offset, and wrapped all
2328         accesses to "MonoClass.interface_offsets".
2329
2330         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
2331         "MonoClass.interface_offsets".
2332
2333 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
2334
2335         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
2336         GetMethodFromHandle overloads (bug #78637).
2337
2338 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
2339
2340         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
2341         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
2342
2343 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
2344
2345         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
2346         #81498.
2347
2348         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
2349         gracefully.
2350         (mono_custom_attrs_from_index): Ditto.
2351
2352         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
2353         Fixes #81501.
2354
2355 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
2356
2357         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
2358         is now allocated from a mempool.
2359
2360 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
2361
2362         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
2363         caller holds threads_lock, leading to deadlocks. Fixes #81476.
2364
2365 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
2366
2367         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
2368         mono_loader_clear_error () too late. Fixes #81463.
2369
2370 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
2371
2372         * culture-info-table.h : regenerated.
2373
2374 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
2375
2376         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
2377         is missing.
2378
2379 2007-04-25  Dick Porter  <dick@ximian.com>
2380
2381         * Makefile.am: Put the mingw enforced-optimisation back into the
2382         PLATFORM_WIN32 section.
2383
2384 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
2385
2386         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
2387         patch.
2388
2389         * image.c (mono_image_load_module): New API function to load a module reference.
2390
2391         * image.c (load_modules): Load modules lazily. Fixes #80812.
2392
2393         * class.c (mono_class_from_typeref): Use mono_image_load_module.
2394         
2395         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
2396
2397         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
2398         to mono_image_load_module_dynamic.
2399
2400 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
2401
2402         * marshal.c: Fix calling convention for CCW on non-windows
2403         platforms. STDCALL on windows, CDECL everywhere else to work 
2404         with XPCOM and MainWin COM.
2405         
2406         Code is contributed under MIT/X11 license.
2407
2408 2007-04-23  Martin Baulig  <martin@ximian.com>
2409
2410         Fix #80969.
2411
2412         * loader.c
2413         (method_from_memberref): Added `gboolean *used_context' argument.
2414         (mono_get_method_from_token): Likewise.
2415         (mono_get_method_full): Don't insert the method in the cache when
2416         `used_context' is true.
2417
2418 2007-04-23  Raja R Harinath  <rharinath@novell.com>
2419
2420         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
2421
2422         * reflection.c (mono_reflection_bind_generic_parameters): Don't
2423         create new MonoTypes for returned types.
2424         * class.c (mono_generic_class_get_class): Export mono-internal.
2425         * class-internals.h: Update to changes.
2426
2427 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
2428
2429         * threadpool.c, threadpool.h, icall-def.h: patch from
2430         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
2431
2432 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
2433
2434         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
2435         
2436         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
2437
2438         * threads.c (mono_thread_get_stack_bounds): New helper function.
2439
2440         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
2441         Correctly compute stack bounds when attaching. Fixes #81394.
2442
2443 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
2444
2445         * reflection.c: fix handling of doubles in custom attributes
2446         for the arm-fpa format (bug #81368).
2447
2448 2007-04-18  Raja R Harinath  <rharinath@novell.com>
2449
2450         * reflection.c (assembly_add_win32_resources): Mildly relax an
2451         bounds check to let the end pointer point just past the end of the
2452         allocated buffer.  (may fix #81384)
2453
2454 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
2455
2456         * culture-info-table.h : regenerated.
2457
2458 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
2459
2460         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
2461         the thread is aborted early.
2462
2463 2007-04-05  Dick Porter  <dick@ximian.com>
2464
2465         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
2466         FindFirstFile()/FindNextFile() to find entries.  This lets the
2467         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
2468         81038.
2469
2470         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
2471         the parameters of
2472         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
2473
2474 2007-04-04  Martin Baulig  <martin@ximian.com>
2475
2476         * debug-helpers.c
2477         (mono_method_desc_full_match): Add support for nested classes.
2478
2479 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
2480
2481         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
2482
2483 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
2484
2485         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
2486         waiting for too many threads.
2487
2488 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
2489
2490         * environment.c: Fix return value check on uname so we can get the 
2491         executing version on Solaris operating systems.
2492
2493 2007-03-28  Jb Evain  <jbevain@gmail.com>
2494
2495         * class.c (mono_type_get_name_recurse): Complete the
2496         fix for the creation of assembly qualified names for
2497         pointer types. Fixes #81208.
2498
2499 2007-03-27  Dick Porter  <dick@ximian.com>
2500
2501         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
2502         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
2503         changed.
2504
2505         * threads.c
2506         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
2507         the value of ReleaseMutex().
2508
2509 2007-03-27  Dick Porter  <dick@ximian.com>
2510
2511         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
2512         in little-endian order, not network endian, so must be converted
2513         to host endian here.  Fixes bug 80593.
2514
2515 2007-03-22  Jb Evain  <jbevain@gmail.com>
2516
2517         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
2518         qualified names for pointer types. Fixes #81208.
2519
2520 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
2521
2522         * marshal.c: Add support for PreserveSigAttribute. 
2523         
2524         Code is contributed under MIT/X11 license.
2525
2526 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
2527
2528         * process.c: Fix endianness issues. Fixes #81126.
2529
2530         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
2531         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
2532
2533         * image.c (mono_image_lookup_resource): Make this work on big-endian
2534         machines.Change API contract so the caller needs to free the return value.
2535         
2536         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
2537         API change.
2538         
2539 2007-03-14  Martin Baulig  <martin@ximian.com>
2540
2541         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
2542         mono_type_get_desc() as well.
2543
2544 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
2545
2546         * icall.c:  Fix environ access in VS.  
2547         
2548 2007-03-13  Alp Toker  <alp@atoker.com>
2549
2550         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
2551         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
2552         #63841.
2553
2554 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
2555
2556         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
2557         circular references among dynamic methods. Fixes #81091.
2558
2559         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
2560
2561 2007-03-09  Martin Baulig  <martin@ximian.com>
2562
2563         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
2564
2565 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
2566
2567         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
2568         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
2569         
2570         Code is contributed under MIT/X11 license.
2571         
2572 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
2573
2574         * loader.c: Reapply patch for bug #79424.
2575
2576 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
2577
2578         * metadata.c (mono_type_to_unmanaged): Only convert object to
2579         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
2580
2581 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
2582
2583         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
2584         (and incorrectly set) is_reference field from MonoGenericInst.
2585
2586 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
2587
2588         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
2589         a little earlier.
2590
2591         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
2592
2593         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
2594
2595 2007-03-05  Miguel de Icaza  <miguel@novell.com>
2596
2597         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
2598         FileOptions.1 value to mean "temporary", map that to
2599         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
2600
2601         Fixes 80688
2602
2603 2007-03-03  Marek Habersack  <mhabersack@novell.com>
2604
2605         * appdomain.c: implement MS .Net style shadow copying. Copies of
2606         the assemblies are made in a subdirectory of the dynamic base
2607         directory, the assembly names are preserved.
2608         Copy .mdb and .config files along with the assemblies being shadowed.
2609
2610 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
2611
2612         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
2613         (emit_marshal_handleref): Ditto.
2614
2615         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
2616         on Visual C++. Fixes #80671.
2617
2618 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
2619
2620         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
2621         for clone operations.
2622
2623 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
2624
2625         * marshal.c: Fix warnings.
2626
2627 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
2628
2629         * loader.c: allow case-insensitive matching of the dll name
2630         in dllmap handling when prefixed with "i:".
2631
2632 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
2633
2634         * threads.c: Fix #ifdef for dummy_apc function for VS.
2635
2636 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
2637
2638         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
2639
2640 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
2641         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
2642         giving precedence to the methods with a fully qualified name
2643         (InterfaceName.MethodName) when building the interface sections
2644         of the vtable.
2645
2646 2007-02-16  Dick Porter  <dick@ximian.com>
2647
2648         * threadpool.c (append_job): Fix fast-path array handling, so it's
2649         less likely the array will grow exponentially when the load is
2650         heavy.
2651
2652 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
2653
2654         * metadata-internals.h, loader.c: fix dllmap lookup order
2655         for non-function maps, too, and prepare for fallback code.
2656
2657 2007-02-12  Robert Jordan  <robertj@gmx.net>
2658
2659         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
2660         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
2661         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
2662         GlobalFree. Fixes a part of bug #77075.
2663
2664 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
2665
2666         * loader.c: implemented typedef parent in field memberref.
2667
2668 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
2669
2670         * marshal.c: Fix warnings and remember to call Release on
2671         IUnknown of RCW.
2672         
2673         Code is contributed under MIT/X11 license.
2674
2675 2007-02-10  Miguel de Icaza  <miguel@novell.com>
2676
2677         * class-internals.h: Add MonoHandleRef definition, and
2678         handleref_class to mono_defaults. 
2679
2680         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
2681         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
2682
2683         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
2684         (do nothing on this stage)
2685         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
2686         (emit_marshal_handleref): New method, used for argument handling
2687         of HandleRefs. 
2688
2689 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
2690
2691         * class.c (mono_class_setup_parent): Lazily init com types.
2692         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
2693         init com types.
2694         * object.c (mono_remote_class_vtable): Lazily init com types.
2695         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
2696         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
2697         * domain-internals.h: Expose mono_init_com_types.
2698         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
2699         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
2700         Add support for COM Callable Wrapper marshalling.
2701         * marshal.h: Add icall definitions.
2702         * gc.c: Handle freeing of CCWs in finalizer code.
2703         
2704         Code is contributed under MIT/X11 license.
2705
2706 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
2707
2708         * reflection.c: changed all the signature encoding code to use
2709         a variable-sized buffer.
2710
2711 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
2712
2713         * marshal.c: locking fixes: never take the loader lock
2714         or other runtime locks when holding the marshal lock
2715         (fixes bug#80664).
2716
2717 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
2718
2719         * marshal.c: make the delegate function pointer mapping
2720         work for the moving GC.
2721
2722 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
2723
2724         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
2725         for bug #80618.
2726
2727 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
2728
2729         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
2730         gmodule.
2731
2732 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
2733
2734         * threadpool.c: made the code moving-GC safe.
2735
2736 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
2737
2738         * assembly.c, boehm-gc.c, class-internals.h, class.c,
2739         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
2740         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
2741         warning cleanup.
2742         * reflection.c: warning cleanup, some threading and moving GC fixes.
2743
2744 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
2745
2746         * class.c, loader.c: create the needed Set/Get/Address array methods
2747         as well as the .ctors in mono_class_init (), fixes bug #80567.
2748
2749 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
2750
2751         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
2752         we doesn't decrease its alignment. Should fix the sparc build.
2753
2754 2007-01-24  Dick Porter  <dick@ximian.com>
2755
2756         * socket-io.c
2757         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
2758         Create the returned object if we need to ignore an unsupported
2759         socket option.  Fixes a segfault reported by Atsushi.
2760
2761 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
2762
2763         * class.c, object.c: restrict GC-tracked fields to
2764         UIntPtr fields used inside corlib, so we provide better
2765         type info to the GC and also allow broken packing as in
2766         bug #80580.
2767
2768 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
2769
2770         * sgen-gc.c: removed duplicated function.
2771
2772 2007-01-19  Miguel de Icaza  <miguel@novell.com>
2773
2774         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
2775         value that means that the value is not supported, but that we
2776         should not return a failure, but instead report this as a
2777         successful operation.
2778
2779 2007-01-19  Raja R Harinath  <rharinath@novell.com>
2780
2781         Fix tests/bug79956.2.il
2782         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
2783         (mono_generic_class_get_class): If the generic definition in an
2784         enum, copy over other fields related to it.
2785
2786 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
2787
2788         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
2789         genericinst enums (bug #79215).
2790
2791 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
2792         * class.c: Fix bug 80307.
2793
2794 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
2795
2796         * image.c: if the file table is not present, try to load
2797         all the modules, since we don't have info about them
2798         having or not metadata (bug #80517).
2799         * assembly.c: allow mono_assembly_load_references () to
2800         work for netmodules.
2801
2802 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
2803
2804         * image.c, metadata-internals.h, object.c: execute module
2805         cctors when running on the 2 runtime if present (bug #80487).
2806
2807 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
2808
2809         * icall.c: optimized InitializeArray() on bigendian.
2810
2811 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
2812
2813         * icall.c: fix for the broken ARM FPA double format.
2814
2815 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
2816
2817         * icall.c: handle endian issues for r4 and r8 types, too, in
2818         the InitializeArray() icall.
2819
2820 2007-01-15  Miguel de Icaza  <miguel@novell.com>
2821
2822         * loader.c (mono_loader_error_prepare_exception): Clear the error
2823         once we have extracted the information from it, do this before we
2824         call into the JIT's class loading mechanisms.
2825
2826         * object.c (mono_class_create_runtime_vtable): Do not clear the
2827         loader error before calling mono_class_get_exception_for_failure
2828         as the loader error is needed inside
2829         mono_class_get_exception_for_failure to throw the error (thinko).
2830
2831         Fixes #80521
2832         
2833 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
2834
2835         * reflection.c: align fields rva data so it's faster to load at
2836         runtime.
2837
2838 2007-01-12  Raja R Harinath  <rharinath@novell.com>
2839
2840         Prepare to simplify GenericMethod handling.
2841         * class-internals.h (mono_method_get_context): New accessor function.
2842         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
2843         rather than directly accessing '->context' field.
2844
2845         * class-internals.h (_MonoGenericParam.method): Move ...
2846         (_MonoGenericContainer): ... here.  Add into union with klass field.
2847         * class.c, icall.c, loader.c, metadata.c, reflection.c:
2848         Update to changes.
2849
2850 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
2851
2852         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
2853         the wrapper type enum and reduce relocations.
2854
2855 2007-01-12  Raja R Harinath  <rharinath@novell.com>
2856
2857         * reflection.c (inflate_mono_method): Reuse method instantiation
2858         from the generic method, if available.
2859
2860 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2861
2862         * marshal.c (emit_marshal_variant): Fix conv_arg
2863         type in last commit, based on whether parameter is byref.
2864         
2865 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2866
2867         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
2868         marshalling.
2869         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
2870         MONO_TYPE_OBJECT back for VARIANT support.
2871
2872 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2873
2874         * marshal.c, marshal.h, icall-def.h: Implement 
2875         Marshal.ReAllocCoTaskMem.
2876
2877 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
2878
2879         * marshal.c: memory retention fixes: use the proper
2880         image cache for runtime_invoke method lookups.
2881
2882 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
2883
2884         * mempool.c: added code to help debug mempool allocations.
2885
2886 2007-01-11  Dick Porter  <dick@ximian.com>
2887
2888         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
2889         support (experimenting with faking it with IP_MTU_DISCOVER for
2890         systems that don't have IP_DONTFRAGMENT.)
2891         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
2892         icall.
2893
2894         * icall-def.h: new System.Net.Sockets.Disconnect icall.
2895
2896         * socket-io.h: Add new fields to MonoSocketAsyncResult
2897         corresponding to the new ones in Socket.cs.
2898
2899 2007-01-11  Raja R Harinath  <rharinath@novell.com>
2900
2901         Fix IronPython regression mentioned in #80249
2902         * metadata.c (do_mono_metadata_parse_generic_class): Clear
2903         'cached_context' field, since it may have been initialized as a
2904         side-effect of metadata parsing.
2905
2906         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
2907         (_MonoGenericClass.cached_class): Move here and rename from lone
2908         remaining field of ...
2909         (_MonoInflatedGenericClass): ... this.  Remove.
2910         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
2911         to changes.
2912
2913         Fix mcs/tests/test-128.cs regression.
2914         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
2915         2007-01-10 change below.
2916         [MONO_TYPE_OBJECT]: Recurse into array case.
2917
2918 2007-01-11  Raja R Harinath  <harinath@gmail.com>
2919
2920         * class-internals.h (mono_get_inflated_generic_class): Remove.
2921         * class.c (mono_get_inflated_generic_class): Remove.
2922         (mono_generic_class_get_class): Rename from
2923         mono_class_create_generic.
2924         (mono_class_from_mono_type) [GENERICINST]: Use it.
2925         * reflection.c, metadata.c: Update to changes.  Use
2926         'mono_class_from_mono_type'.
2927
2928 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
2929
2930         * reflection.c: use passed type when encoding an array element
2931         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
2932
2933 2007-01-09  Robert Jordan  <robertj@gmx.net>
2934
2935         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
2936         result arguments (someDelegate.EndInvoke (unrelatedAres)).
2937         Fixes bug #80392.
2938
2939 2007-01-09  Raja R Harinath  <rharinath@novell.com>
2940
2941         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
2942
2943         * object.c (set_value): Avoid aliasing between type->data.klass
2944         and type->data.generic_class.
2945
2946         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
2947
2948 2007-01-08  Raja R Harinath  <rharinath@novell.com>
2949
2950         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
2951         between type->data.klass and type->data.generic_class.
2952
2953 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
2954
2955         * marshal.c: In MS.NET, StringBuilder objects are not copied by
2956         value in out parameters.
2957
2958 2007-01-08  Raja R Harinath  <rharinath@novell.com>
2959
2960         Simplify invariant for MonoGenericClass::klass field.
2961         * class.c (mono_class_create_generic): Verify 'klass' is null.
2962         * metadata.c (do_mono_metadata_parse_generic_class): Don't
2963         initialize 'klass' field.
2964
2965 2007-01-05  Raja R Harinath  <rharinath@novell.com>
2966
2967         Ongoing work to avoid redundant data and simplify invariants.
2968         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
2969         'generic_class', and change type to a GenericInst.
2970         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
2971         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
2972
2973 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
2974
2975         * class.c : skip io-layer under PLATFORM_WIN32.
2976
2977 2007-01-03  Tor Lillqvist  <tml@novell.com>
2978
2979         Fix #80305: In a bundled executable, look in the bundled exe
2980         assembly to determine the runtime version. Add the possibility to
2981         bundle also the machine.config file.
2982         
2983         * assembly.c (mono_assembly_open_from_bundle): Make
2984         non-static. Allow being called even if we have no bundled
2985         assemblies, and return NULL right away in that case.
2986
2987         * domain-internals.h: Declare mono_assembly_open_from_bundle()
2988         here.
2989
2990         * domain.c (app_config_parse): Take an assembly exe file name as
2991         parameter instead of a config file name. Check for a bundled
2992         config file for that assembly by calling
2993         mono_config_string_for_assembly_file() (see below) before looking
2994         for one in the file system.
2995         (get_runtimes_from_exe): Corrsponding change to call of
2996         app_config_parse().
2997         (get_runtimes_from_exe): Check for bundled assembly exe file first
2998         by calling mono_assembly_open_from_bundle(). If no bundled
2999         assembly exe file is found, call mono_image_open() as before to
3000         look it up in the file system.
3001
3002         * mono-config.c: Add variable bundled_machinec_onfig.
3003         (mono_config_string_for_assembly_file): New function.
3004         (mono_config_for_assembly): Move code snippet that looks for a
3005         bundled assembly .config file into the above new function. Call
3006         it.
3007         (mono_register_machine_config, mono_get_machine_config): New
3008         functions to set and retrieve
3009
3010         * assembly.h: Declare mono_register_machine_config().
3011
3012         * mono-config.h: Declare mono_get_machine_config() and
3013         mono_config_string_for_assembly_file().
3014
3015         * icall.c: No declaration of environ necessary on Win32. It is
3016         declared (as a macro expanding to a function call) in stdlib.h.
3017         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
3018         New internal mono function. Returns the value of
3019         mono_get_machine_config() as a Mono string.
3020
3021         * icall-def.h: Add get_bundled_machine_config().
3022
3023 2007-01-04  Raja R Harinath  <rharinath@novell.com>
3024
3025         Remove redundant field
3026         * class-internals.h (_MonoGenericContext.container): Remove field.
3027         * loader.c (mono_method_get_signature_full): Don't parse a
3028         "container" for a signature parse when the signature is inflated
3029         immediately.
3030         (method_from_methodspec): Likewise, for a generic_inst.
3031         * class.c, metadata.c, reflection.c: Update to changes.
3032
3033 2006-01-04  Raja R Harinath  <rharinath@novell.com>
3034
3035         * class-internals.h (_MonoGenericClass): Rename 'context' field to
3036         'cached_context', and change semantics -- it starts off NULL, and
3037         is initialized on demand.
3038         * class.c (mono_generic_class_get_context): New accessor to
3039         replace 'context' field accesses.
3040         (mono_class_get_context): New helper.
3041         (*): Update to changes.
3042         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
3043
3044 2007-01-03  Miguel de Icaza  <miguel@novell.com>
3045
3046         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
3047         before the memcpy.   Fixes Marshal2 regression.
3048
3049 2007-01-02  Jb Evain  <jbevain@gmail.com>
3050
3051         * blob.h: add a MONO_TYPE_ENUM definition
3052         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
3053         fix the encoding of arrays of enums in custom attributes.
3054
3055         Fixes #79666.
3056
3057 2007-01-01  Miguel de Icaza  <miguel@novell.com>
3058
3059         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
3060         string is null terminated, but only cut the string short if it
3061         overflows the buffer.   
3062         
3063         (mono_string_to_byvalstr): Also fix this routine.   The code here
3064         was not properly terminating a string (it was only terminated
3065         because of the previous catch-all memset). 
3066
3067         I left the memset, because I do not know if applications expect
3068         the runtime to clear this region. 
3069
3070         Fixes #79944.
3071
3072         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
3073         Clear the error before returning to unmanaged code to prevent the
3074         runtime from being confused later on (fixes  80420).
3075         (ves_icall_type_from_name): Always call mono_loader_clear_error
3076         after parsing a type that could have failed.
3077         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
3078
3079         * loader.c (mono_loader_clear_error): Fix indentation.
3080
3081 2006-12-28  Martin Baulig  <martin@ximian.com>
3082
3083         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
3084
3085 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
3086
3087         * reflection.c: patch from Rolf Bjarne Kvinge to fix
3088         getting a token for an EnumBuilder.
3089
3090 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
3091
3092         * reflection.c: be more careful in case resource generation
3093         fails to create the data array.
3094
3095 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
3096
3097         * sgen-gc.c: write barrier for clone and fix unregister handles.
3098
3099 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
3100
3101         * reflection.c: some fixes needed in the generics code for the moving GC.
3102
3103 2006-12-22  Robert Jordan  <robertj@gmx.net>
3104
3105         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
3106         account. Fixes bug #80299.
3107
3108 2006-12-21  Raja R Harinath  <rharinath@novell.com>
3109
3110         Fix WaitHandle usage in delegates.
3111         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
3112         * object.c (mono_wait_handle_new): Use the property set method to
3113         initialize the handle.
3114         (mono_wait_handle_get_handle): New.
3115         * threadpool.c (mono_async_invoke): Use it.
3116         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
3117         Likewise.
3118         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
3119
3120 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
3121
3122         * marshal.c (emit_marshal): Call emit_marshal_variant and
3123         emit_marshal_com_interface when applicable.
3124         (emit_marshal_variant, emit_marshal_com_interface): Add
3125         methods for this case and remove if's from emit_marshal_object.
3126         
3127 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
3128
3129         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
3130
3131 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
3132
3133         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
3134         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
3135         and GlobalFree on Windows. Remove FIXME.
3136
3137 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
3138
3139         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
3140         implementation for managed objects.
3141
3142 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
3143
3144         * object.c: implemented code to be used for checking
3145         that no reference field overlaps with non-references.
3146
3147 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
3148
3149         * threadpool.c: fix queue code to be compatible with the
3150         moving GC.
3151
3152 2006-12-18  Miguel de Icaza  <miguel@novell.com>
3153
3154         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
3155         in structures by throwing ArgumentNullException.
3156
3157         (emit_marshal_safehandle): Also when they are null parameters.
3158
3159         (emit_marshal_safehandle): Add support for ref
3160         SafeHandles parameters
3161
3162 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
3163
3164         * profiler.c: updated to use the mono-dl API instead of
3165         gmodule.
3166
3167 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
3168
3169         * profiler.c: updated to use the mono-dl dynamic loading
3170         API instead of gmodule.
3171
3172 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
3173
3174         * profiler.c: use readlink, older versions of glib don't have
3175         g_file_read_link ().
3176
3177 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
3178
3179         * profiler.c: try to detect the path to mono if libc fails to provide
3180         a useful name (bug #80286).
3181
3182 2006-12-16  Raja R Harinath  <rharinath@novell.com>
3183
3184         Fix #80242
3185         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
3186         instance, use the generic type definition instead.
3187         (ves_icall_Type_GetNestedTypes): Likewise.
3188         * class.c (mono_class_create_generic): Always set the
3189         nested_classes of a generic instance to NULL, even if the generic
3190         type definition has nested types.
3191
3192 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
3193
3194         * marshal.c (mono_string_from_bstr): Revert previous Windows change
3195         and fix on Linux.
3196         
3197 2006-12-15  Miguel de Icaza  <miguel@novell.com>
3198
3199         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
3200         my arguments were in the wrong order.   I also fixed the Windows
3201         version which seems to have had the same issue.
3202
3203         (mono_free_bstr): On Unix, this is g_free.
3204         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
3205         conversions (for the tests in corlib to pass).
3206
3207 2006-12-14  Miguel de Icaza  <miguel@novell.com>
3208
3209         * marshal.c (emit_ptr_to_object_conv): For now, ignore
3210         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
3211         exception if a ref SafeHandle in a struct has changed).
3212         
3213         (emit_struct_conv): Do not perform layout checks for classes
3214         derived from SafeHandle, as those are specially handled. 
3215
3216         (emit_object_to_ptr_conv): Add support for
3217         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
3218
3219         (emit_marshal_safehandle): Implement conversion of return values
3220         of safehandles (MARSHAL_ACTION_CONV_RESULT).
3221         
3222         * threads.c: WaitHandle now is compiled with two different handles
3223         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
3224         for 2.0.
3225         
3226         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
3227         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
3228         these routines to cope with both kinds of fields.
3229
3230 2006-12-12  Miguel de Icaza  <miguel@novell.com>
3231
3232         * metadata.c (mono_type_to_unmanaged): Handle the case where
3233         type->data.klass is a SafeHandle, and in that case, return the
3234         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
3235         MONO_MARSHAL_CONV_SAFEHANDLE. 
3236
3237 2006-12-11  Miguel de Icaza  <miguel@novell.com>
3238
3239         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
3240         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
3241         calling emit_marshal_object.
3242
3243         (emit_marshal_safehandle): Implement marshalling of
3244         SafeHandle parameters (no ref support yet).
3245
3246         (MarshalAction): Document the defines as I implement
3247         them for SafeHandle.
3248
3249         (emit_marshal_object): indentation police.
3250
3251         * class-internals.h: Define MonoSafeHandle.
3252         Add safehandle_class to MonoDefaults type.
3253
3254         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
3255         list of classes to check for fields. 
3256
3257         * domain.c (mono_init_internal): Add SafeHandle to the list of
3258         mono_defaults loaded.
3259
3260 2006-12-15  Raja R Harinath  <rharinath@novell.com>
3261
3262         Fix #80253
3263         * reflection.c (mono_reflection_bind_generic_parameters): If the
3264         generic type definition is a type builder, ensure that it is fully
3265         initialized before instantiating it.  Kill some dead code.
3266
3267 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
3268
3269         * object.c: clear the loader_error () before loading
3270         more metadata stuff (bug #80258).
3271
3272 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
3273
3274         * icall.c, icall-defs.h: type modifiers icalls for
3275         parameters and properties.
3276
3277 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
3278
3279         * object.c, icall.c: fixed warnings.
3280
3281 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
3282
3283         * marshal.c: fixed a couple of leaks and coding style in a few places.
3284
3285 2006-12-08  Dick Porter  <dick@ximian.com>
3286
3287         * process.c: Cope with NULL ProcessStartInfo arguments on windows
3288         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
3289         80173.
3290
3291 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
3292
3293         * process.c: ProcessStartInfo may have only filename set and
3294         arguments can be NULL.
3295
3296 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
3297
3298         * icall.c: fix leak found by Robert Jordan.
3299
3300 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
3301
3302         * marshal.c, marshal.h: generate managed method to access an element
3303         of a multi-dimensional array.
3304
3305 2006-11-30  Paolo Molaro (lupus@ximian.com)
3306
3307         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
3308
3309 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
3310
3311         * icall.c: back out GetFields () fix until the serialization code is
3312         fixed to not depend on the incorrect behaviour.
3313
3314 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
3315
3316         * profiler.c: provide defaults if none are set.
3317
3318 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
3319
3320         * Makefile.am, attrdefs.h: new public header file with
3321         constants for attributes for use by embedders.
3322
3323 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
3324
3325         * icall.c: GetFields () fix for bug #80064.
3326
3327 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
3328
3329         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
3330         removed long unused icalls.
3331
3332 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
3333   
3334         * marshal.c: 
3335                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
3336                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
3337                 can be generated without a delegate class.
3338                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
3339         
3340         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
3341
3342 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3343
3344         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
3345         #80069.
3346
3347 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
3348
3349         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
3350         icall-def.h: added icalls needed by System.GC.
3351
3352 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
3353
3354         * loader.c: ensure the class in catch clauses is handled
3355         correctly for generics methods (fixes bug#79980).
3356
3357 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
3358
3359         * monitor.h, monitor.c: added mono_locks_dump () function
3360         to help debug deadlocks involving managed locks.
3361
3362 2006-11-13  Dick Porter  <dick@ximian.com>
3363
3364         * file-io.c (get_file_attributes): If the file is a symlink try
3365         and get the stat data for the target, but also add the
3366         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
3367         the specs for the windows symlink support, but will probably have
3368         to be reworked when I have test data from a vista machine.  Fixes
3369         bug 79887.
3370
3371 2006-11-13  Dick Porter  <dick@ximian.com>
3372
3373         * gc.c (mono_domain_finalize): 
3374         * marshal.c (mono_delegate_begin_invoke): 
3375         * threadpool.c (socket_io_init, mono_thread_pool_init)
3376         (mono_thread_pool_finish): 
3377         * monitor.c (mono_monitor_try_enter_internal): 
3378         * threads.c (mono_thread_resume, mono_thread_init)
3379         (mono_thread_suspend_all_other_threads)
3380         (mono_thread_execute_interruption): 
3381         * appdomain.c (mono_domain_unload): Check for NULL error returns
3382         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
3383         75733.
3384
3385 2006-11-11  Miguel de Icaza  <miguel@novell.com>
3386
3387         * process.c
3388         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
3389         Only close the handle if the value of the handle is not
3390         INVALID_HANDLE_VALUE.  This just makes the process a bit more
3391         robust.
3392
3393         Improvement for #75733, so that we do not run into this problem. 
3394
3395         
3396         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
3397         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
3398         internal variables.  Fixes #79462 
3399         
3400
3401 2006-11-09  Dick Porter  <dick@ximian.com>
3402
3403         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
3404         Use poll() not select().  Fixes bug 79397.
3405
3406 2006-11-09  Raja R Harinath  <rharinath@novell.com>
3407
3408         Fix #79872
3409         * assembly.c (mono_assembly_load_from_full): Check that the given
3410         image has an assembly manifest.
3411
3412 2006-11-09  Ankit Jain  <jankit@novell.com>
3413
3414         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
3415         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
3416         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
3417
3418 2006-11-07  Dick Porter  <dick@ximian.com>
3419
3420         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
3421         Put the old resolver behaviour back for pre-2.0 profiles.
3422
3423 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
3424
3425         * threadpool.c: precise GC and locking fixes.
3426
3427 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
3428
3429         * class.c: don't load types that have an explicit unaligned
3430         managed reference. Provide better info in the TypeLoad exception.
3431         Part of the fix for bug #79744.
3432         * object.c: use the correct check for class type load issues.
3433
3434 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
3435
3436         * class.c: enforce alignment of fields with managed references
3437         even when Pack=1 is forced by the user (bug #77788).
3438
3439 2006-11-03  Dick Porter  <dick@ximian.com>
3440
3441         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
3442         If the address reverse lookup fails, return it as the hostname
3443         anyway.  Fixes bug 79721.
3444
3445 2006-11-03  Dick Porter  <dick@ximian.com>
3446
3447         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
3448         Fix build on Windows.
3449
3450 2006-11-02  Dick Porter  <dick@ximian.com>
3451
3452         * icall-def.h: 
3453         * object-internals.h: 
3454         * exception.c (mono_get_exception_thread_interrupted): 
3455         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
3456         Fixes bug 74525.
3457
3458         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
3459         Check for pending Thread.Interrupt.
3460
3461 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
3462         * loader.c: Fixed bug 79684.
3463
3464 2006-10-27  Dick Porter  <dick@ximian.com>
3465
3466         * file-io.c (get_file_attributes): Force symlinks to directories
3467         to be returned as a regular file.  Fixes bug 79733.
3468 2006-10-26  Dick Porter  <dick@ximian.com>
3469
3470         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
3471         CreateFile to open a directory then we need to set the
3472         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
3473
3474 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
3475
3476         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
3477         friends.
3478
3479 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
3480
3481         * sgengc.c: small cleanup of timer code.
3482
3483 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
3484
3485         * sgen-gc.c: fix some warnings and start adding support for
3486         complete object removal on domain unload.
3487
3488 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
3489
3490         * assembly.c: build_assembly_name should not consider a version
3491         number without build or revision number invalid. Fixes bug #79715.
3492
3493 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
3494
3495         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
3496         call kernel32 function OutputDebugString directly.
3497         
3498         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
3499         
3500 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
3501
3502         * reflection.c: small cleanup, using a function to insert a MonoString
3503         in the string heap.
3504
3505 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
3506
3507         * reflection.c: moving GC fixes.
3508
3509 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
3510
3511         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
3512         all the objects with finalizers belonging to an unloading appdomain.
3513
3514 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
3515
3516         * sgen-gc.c: added ability to allocate even when the nursery is fully
3517         pinned and fixed a couple of bugs.
3518
3519 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
3520
3521         * threads.h: Revert the last change for now.
3522
3523         * threads.h (mono_thread_get_pending_exception): Rename this to
3524         mono_thread_get_undeniable_exception ().
3525
3526 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
3527
3528         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
3529         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
3530         when fname does not refer to valid assembly. This result in a more
3531         meaningful error message.
3532         * exception.c: added mono_get_exception_bad_image_format2 which 
3533         constructs a BadImageFormatException using the ctor taking a custom
3534         message and the file name. Passing in a NULL msg results in a default
3535         message.
3536         * exception.h: define mono_get_exception_bad_image_format2 function.
3537         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
3538         when file name pointed to an invalid IL image. Use 
3539         mono_get_exception_file_not_found2 to construct FileNotFoundException,
3540         as this results in a more meaningful error message.
3541
3542 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
3543
3544         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
3545         #79465.
3546
3547 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
3548
3549         * metadata.c (mono_type_size): Change the align parameter to guint32 for
3550         consistency with the other _size functions.
3551         (mono_type_stack_size): Ditto.
3552
3553         * class.c object.c icall.c: Fix warnings caused by the above change.
3554
3555         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
3556
3557         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
3558
3559         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
3560
3561 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
3562
3563         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
3564         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
3565         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
3566         threadpool.h, threads-types.h: mark more internal functions.
3567
3568 2006-10-11  Dick Porter  <dick@ximian.com>
3569
3570         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
3571         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
3572         reproduce the bug even before applying the fix.)
3573
3574 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
3575
3576         * reflection.c: allow retrieving attributes for arguments in generic
3577         methods (bug #79241).
3578
3579 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
3580
3581         * debug-mono-symfile.c: properly check fopen () result (found by
3582         coverity).
3583
3584 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
3585
3586         * reflection.c: make error message clearer and fixed two
3587         issuelets found by Coverity.
3588
3589 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
3590
3591         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
3592
3593 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
3594
3595         * object-internals.h, gc-internal.h, profiler-private.h:
3596         mark internal functions.
3597
3598 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
3599
3600         * reflection.c: put data in the text section.
3601         * icall.c: recognize more types in type_from_typename ().
3602         * process.c, marshal.c: added some GC FIXMEs.
3603
3604 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
3605
3606         * loader.c: check for NULL before initializing.
3607
3608 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
3609
3610         * gc.c (finalizer_thread): Use a non-alertable wait here.
3611
3612         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
3613         until the correct solution is found.
3614
3615 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
3616
3617         * reflection.c (mono_module_get_object): Avoid an assert when operating on
3618         modules with no metadata. Fixes #79596.
3619
3620         * image.c (load_metadata_ptrs): Put back the error message when
3621         the #- heap is encountered since the support is not complete yet.
3622
3623 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
3624
3625         * gc.c: do not allow the user to SuppressFinalize () a
3626         delegate because it would leak the trampoline if present.
3627
3628 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
3629
3630         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
3631         PropertyPtr table.
3632
3633 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
3634
3635         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
3636
3637         * metadata.c (mono_metadata_get_param_attrs): Ditto.
3638
3639         * row-indexes.h: Add definitions for *Ptr tables.
3640
3641         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
3642
3643         * metadata.c (mono_metadata_translate_token_index): New helper function to
3644         translate table indexes used in uncompressed metadata.
3645         (mono_metadata_decode_table_row): Ditto.
3646         (mono_metadata_decode_table_row_col): Ditto.
3647
3648         * metadata.c: Add table schema for *Ptr tables.
3649
3650         * class.c loader.c: Use the new helper function to access the affected metadata
3651         tables.
3652         
3653         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
3654         #38532.
3655         
3656 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
3657
3658         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
3659         sequences which can be unbounded in size. Fixes #79583.
3660
3661 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
3662
3663         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
3664         static initialization.
3665
3666         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
3667
3668         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
3669
3670         * domain.c (mono_domain_free): Free up type_init_exception_hash.
3671
3672         * object.c (mono_runtime_class_init): Implement correct semantics when a static
3673         ctor fails, i.e. throw the same exception on subsequent accesses.
3674         
3675 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
3676
3677         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
3678         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
3679         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
3680         Handle marshalling of interfaces and VARIANTs contained in structs.
3681         
3682         Code is contributed under MIT/X11 license.
3683         
3684 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
3685
3686         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
3687         
3688         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
3689         mempool.
3690
3691 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3692
3693         * console-io.c: ignore previous SIGINT handler.
3694
3695 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
3696
3697         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
3698         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
3699         #79460, #79461, #79485.
3700
3701         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
3702
3703         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
3704         #79217.
3705
3706 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
3707
3708         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
3709         could be generated from it.
3710
3711 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
3712
3713         * rand.c: fix read loop to correctly handle EINTR.
3714
3715 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
3716
3717         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
3718         internal calls are defined to keep methods closer to the declaring
3719         type and allow a significant reduction in runtime relocations and
3720         memory usage.
3721
3722 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
3723
3724         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
3725         exception message to have FileNotFoundException use the default
3726         assembly load error message. Fixes bug #79426.
3727         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
3728
3729 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3730
3731         * threadpool.c: (start_thread_or_queue) use the root domain when
3732         creating the thread instead of the async object one.
3733
3734 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
3735
3736         * class.c, object.c, class-internals.h, reflection.c:
3737         for arrays, store element_size inside MonoClass (speedup
3738         for array object creation).
3739
3740 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
3741
3742         * icall.c: fixed CodeBase to use the file name and not the module
3743         name (bug #79365).
3744
3745 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
3746
3747         * mono-debug.c, mono-debug.h: export find_method as
3748         mono_debug_find_method ().
3749
3750 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
3751
3752         * debug-helpers.c, class-internals.h: added a few functions useful
3753         when debugging under gdb.
3754
3755 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3756
3757         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
3758         characters that need special handling.
3759
3760 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
3761
3762         * mono-config.c: make the os/cpu specification more flexible,
3763         allowing lists and negation.
3764
3765 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
3766
3767         * marshal.c: COM Interop fixes. Handle case where method->klass.
3768         is interface. Handle BSTR/MonoString when null. Use CDECL as 
3769         calling convention on non-windows platforms. This is for
3770         compatibility with XPCOM and MainWin COM.
3771         
3772         Code is contributed under MIT/X11 license.
3773         
3774
3775 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
3776
3777         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
3778         correctly. Fixes #79217.
3779
3780         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
3781
3782 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
3783
3784         * mono-config.c: allow both an os and cpu attribute for dllmap
3785         and dllentry elemnets to enable a single config file to be used
3786         for multiple architectures.
3787
3788 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
3789
3790         * loader.c: MonoLoaderError was cleared too soon on load failure.
3791         Fixes bug #79424.
3792
3793 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
3794
3795         * icall.c: use the defining class vtable when accessing a
3796         static field, not a pobblibly derived class.
3797
3798 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
3799
3800         * icall.c string-icalls.c: Remove references to unicode.h.
3801
3802         * unicode.h unicode.c Makefile.am: Remove these unused source files.
3803
3804         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
3805
3806         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
3807         indicating the image where custom marshaller types should be looked up.
3808         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
3809         custom marshallers, instead of corlib. Fixes #79425.
3810
3811 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
3812
3813         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
3814
3815 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
3816
3817         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
3818         Implement Environment.ProcessorCount.
3819         
3820         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
3821         Implement Environment.ProcessorCount.
3822         
3823         * icall.c: 
3824         Add Environment.ProcessorCount icall.
3825         
3826         Patch by Jason McFall.
3827
3828 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3829
3830         * assembly.c: don't append .exe/.dll when the filename already contains
3831         one of those extensions.
3832
3833 2006-09-12  Martin Baulig  <martin@ximian.com>
3834
3835         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
3836         to array interfaces.
3837
3838 2006-09-11  Martin Baulig  <martin@ximian.com>
3839
3840         * reflection.c (mono_image_build_metadata): Create the
3841         MethodImpl's after emitting all types and methods, so we don't
3842         need another fixup pass for them.
3843
3844 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
3845
3846         * class.c (mono_class_from_name_case): Fix regression introduced by the last
3847         change.
3848
3849 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
3850
3851         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
3852         unload.
3853
3854 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
3855
3856         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
3857         args is not set. Fixes #78926.
3858
3859 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
3860
3861         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
3862
3863         * image.c (load_class_names): Move this to class.c, and rename it to 
3864         'mono_image_init_name_cache'.
3865         (load_modules): Fix a warning.
3866
3867         * class.c icall.c image.c: Initialize image->name_cache lazily.
3868
3869         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
3870         on its name using information in the AOT file.
3871
3872         * class.c (mono_class_from_name): Use the new hook function.
3873
3874 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
3875
3876         * reflection.c (mono_param_get_objects): Handle enum default parameter values
3877         correctly.
3878
3879         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
3880         Fixes #79289.
3881         
3882 2006-09-06  Martin Baulig  <martin@ximian.com>
3883
3884         * icall.c (mono_lookup_internal_call): Small fix.
3885
3886 2006-09-05  Raja R Harinath  <rharinath@novell.com>
3887
3888         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
3889         double g_free.
3890
3891 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
3892
3893         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
3894         when --debug is specified.
3895
3896 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
3897
3898         * class.c (setup_generic_array_ifaces): Fix a warning.
3899
3900 2006-09-04  Miguel de Icaza  <miguel@novell.com>
3901
3902         * Temporarily remove the patch to assemly.c that checks the
3903         assembly versions as it breaks our gacutil.
3904
3905 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
3906
3907         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
3908
3909         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
3910         a net 1.0 runtime.
3911
3912         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
3913         created using the default ctor. Fixes #79152.
3914         (mono_string_builder_to_utf16): Ditto.
3915
3916 2006-09-01  Martin Baulig  <martin@ximian.com>
3917
3918         Fix handling of the generic array interfaces.
3919
3920         * class-internals.h
3921         (MonoDefaults): Removed `generic_array_class' and added
3922         `generic_ilist' class.
3923
3924         * class.c
3925         (mono_bounded_array_class_get): Add the new generic array interfaces.
3926         (setup_generic_array_ifaces): New static method; create vtable
3927         entries for each method in the generic array interfaces.
3928
3929         * metadata.c
3930         (select_container): Allow "parent-less" generic methods.
3931
3932         * marshal.c
3933         (mono_marshal_get_generic_array_helper): New public method.
3934
3935         * icall.c
3936         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
3937         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
3938         moved the interncall into System.Array.
3939
3940 2006-09-01  Raja R Harinath  <rharinath@novell.com>
3941
3942         A few more cases of avoiding work on types with ->byref set.
3943         Has the real fix for #79238
3944         * icall.c (is_generic_parameter): New helper.
3945         (ves_icall_Type_GetGenericParameterPosition): Use it.
3946         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
3947         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
3948         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
3949         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
3950         reference types.
3951         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
3952         reference types.
3953         (ves_icall_Type_get_IsGenericInstance): Likewise.
3954         (ves_icall_Type_get_IsGenericType): Likewise.
3955
3956 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
3957
3958         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
3959         class if possible.
3960
3961         * mempool.h (mono_mempool_get_allocated): New helper function.
3962
3963         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
3964         change.
3965
3966         * mempool.c: Fix warnings and the calculation of stats.
3967
3968         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
3969
3970         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
3971
3972         * loader.c (mono_get_method_from_token): Update method_count stat.
3973
3974         * class-internals.h (MonoStats): Add some stats.
3975
3976 2006-08-31 Robert Jordan  <robertj@gmx.net>
3977
3978         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
3979         with managed variants.
3980         All code is contributed under the MIT/X11 license.
3981         
3982 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
3983
3984         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
3985         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
3986
3987         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
3988
3989         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
3990         with cycles in classes.
3991
3992         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
3993
3994         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
3995         missing a [MarshalAs] directive. Fixes #79203.
3996
3997         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
3998         klass->marshal_info. Fixes #79217.
3999
4000 2006-08-30  Martin Baulig  <martin@ximian.com>
4001
4002         Committing a patch from Joachim Ante <joe@otee.dk>:
4003         Add support for binary data symbol stores.
4004
4005         * debug-mono-symfile.c
4006         (mono_debug_open_mono_symbol_file): Renamed into
4007         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
4008         arguments.
4009
4010         * mono-debug.c
4011         (mono_debug_open_image): Added `raw_contents' and `size' args.
4012         (mono_debug_init_2_memory): New public function.
4013
4014 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
4015
4016         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
4017
4018 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4019
4020         * appdomain.c: implement support for ShadowCopyFiles.
4021
4022 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
4023
4024         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
4025         when value is NULL (and should remove CID #51).
4026
4027 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4028
4029         * image.c: moved 2 functions to ../utils.
4030
4031 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
4032
4033         * gc.c: cope with the target object of a GC handle being NULL
4034         (bug #78877).
4035
4036 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
4037
4038         * class.c: recursively check parent's explicit implementations
4039         of interface methods (fixes bug #79125).
4040
4041 2006-08-19  Miguel de Icaza  <miguel@novell.com>
4042
4043         * filewatcher.c: Avoid warnings when building, do not redefine
4044         constants that are defined.
4045
4046         Remove warnings.
4047
4048 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4049
4050         * image.c: don't fail when the link points to an absolute path.
4051
4052 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
4053
4054         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
4055         Fix CID #3.
4056
4057 2006-08-17  Miguel de Icaza  <miguel@novell.com>
4058
4059         * image.c (full_path): A new method used to obtain the actual path
4060         of an assembly even in the presence of symbolic links.  
4061
4062         This is necessary for the case where we are running a binary that
4063         has been GACed, but we are using the "published" path name
4064         ($prefix/mono/1.0/blah.exe) which happens to point to the real
4065         file in the GAC.
4066
4067         This was the source of the failure for the `xsp' command with the
4068         recent AppDomain changes, as far as the runtime was concerned,
4069         there were two different assemblies: $prefix/mono/1.0/blah.exe and
4070         $prefix/mono/gac/blah/version/blah.exe.
4071
4072         (do_mono_image_open): use full path
4073
4074 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
4075
4076         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
4077
4078 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
4079
4080         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
4081         domain_id is supplied. Fix CID #241 and corlib's unit tests.
4082
4083 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
4084
4085         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
4086         small structures. Fixes #78990.
4087
4088 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
4089
4090         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
4091
4092         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
4093
4094 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4095
4096         * appdomain.c:
4097         * marshal.c: don't load all the assemblies from a domain into newly
4098         created ones. The new domains might have different rules and load
4099         assemblies from different locations. Fixes bug #76757.
4100
4101         Patch by Lluis. Conflicts resolved by Brian Crowell.
4102
4103 2006-08-16  Alp Toker  <alp@atoker.com>
4104
4105         * socket-io.c: First half of the fix for #79084.
4106         Set sa_size to the length of the content, not that of the struct.
4107         Don't add NULL suffix to the content, this should be done in
4108         managed code if needed.
4109
4110 2006-08-14  Raja R Harinath  <rharinath@novell.com>
4111
4112         Fix part of #79012
4113         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
4114         mono_metadata_parse_type returns NULL.
4115
4116 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
4117
4118         * normalization-tables.h : new file for string normalization data.
4119         * locales.c, locales.h, icall.c :
4120           added load_normalization_resource() for string normalization,
4121           and icall as well.
4122         * Makefile.am : added normalization-tables.h to the sources.
4123
4124 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
4125
4126         * marshal.c: Add more helper functions to reduce code duplication and use them
4127         everywhere.
4128
4129 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
4130
4131         * marshal.c: Fix non-x86 stdcall warnings.
4132         
4133         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
4134         them everywhere.
4135
4136 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
4137
4138         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
4139         type check on multi-dimensional arrays. Fixes #79000.
4140
4141 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
4142
4143         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
4144         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
4145         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
4146         * class-internals.h: add is_com_object to class structure.
4147         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
4148         null checks to COM object marshalling. Fix .ctor call on RCW.
4149         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
4150         
4151         All code is contributed under the MIT/X11 license.
4152
4153 2006-08-09  Dick Porter  <dick@ximian.com>
4154
4155         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
4156         racing mono_monitor_allocator_lock() somewhere, so don't delete
4157         the critical section for now.  Found by running and exiting
4158         monodevelop.
4159
4160 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
4161
4162         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
4163         (ves_icall_System_ComObject_FindInterface): Ditto.
4164         (ves_icall_System_ComObject_CacheInterface): Ditto.
4165
4166         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
4167         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
4168
4169 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4170
4171         * threadpool.c: treat pipes from process asynchronous reads as sockets
4172         when reading from them, so we get select/poll or epoll to wait for
4173         data.
4174
4175 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
4176
4177         * loader.c: Fix a typo (CID #233) in the null check.
4178
4179 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
4180
4181         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
4182         Hopefully fixes #78949.
4183         
4184         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
4185         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
4186         bytes. Fixes #78972.
4187
4188 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4189
4190         * filewatcher.c: we need to set errno here.
4191
4192 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4193
4194         * filewatcher.c: let Win32Exception get the error value.
4195
4196 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4197
4198         * filewatcher.c: translate errno into win32 errors for Win32Exception
4199         to know what happened.
4200
4201 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
4202
4203         * threadpool.c: Fix more warnings.
4204
4205         * assembly.c (search_loaded): Fix warnings.
4206
4207         * threadpool.c (mono_thread_pool_finish): Fix warnings.
4208         (mono_async_invoke): Ditto.
4209
4210 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
4211
4212         * object.c (mono_remote_class_vtable): Need to create proxy vtable
4213         entries for __ComObject type in addition to ComImport types.
4214         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
4215         about hash table.
4216         
4217         All code is contributed under the MIT/X11 license.
4218
4219 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
4220
4221         * image.c: avoid tentative loading of modulerefs that contain
4222         no metadata (P/Invoke library names).
4223
4224 2006-07-28  Dick Porter  <dick@ximian.com>
4225
4226         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
4227         mono_loader_lock() somewhere, so don't delete the critical section
4228         for now.  Found by running and exiting monodevelop.
4229
4230 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4231
4232         * filewatcher.c: define the inotify syscalls when we're building on
4233         linux and have sys/syscall.h. The build system might not have support
4234         for inotify but the target system might have it.
4235
4236 2006-07-26  Miguel de Icaza  <miguel@novell.com>
4237
4238         * domain.c: Documentation updates.
4239
4240         * loader.c (mono_free_method): Do not release the method
4241         information if we are being profiled, as profilers will use this
4242         information at shut down to present some data to the user.
4243
4244         This is needed so that the profiler does not crash, as the
4245         profiler tends to keep MonoMethods around, and they might become
4246         invalid if we free these.
4247
4248         (mono_get_method_constrained): Return the original CIL stream
4249         method as well, so verification can be performed against it.
4250
4251 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4252
4253         * filewatcher.[ch]: support for inotify file system watcher.
4254         * icall.c: add new internal calls for the inotify file system watcher.
4255
4256 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4257
4258         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
4259         #78888.
4260
4261 2006-07-20  Dick Porter  <dick@ximian.com>
4262
4263         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
4264         warning.
4265
4266 2006-07-20  Dick Porter  <dick@ximian.com>
4267
4268         * threads.c (start_wrapper): Do the thread cleanup while we still
4269         hold a reference to its object.  Fixes bug 78123.
4270
4271 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
4272
4273         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
4274         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
4275           "managed-to-managed".
4276         * icall.c: Redirect string constructors that take sbyte* to
4277           ves_icall_System_String_ctor_RedirectToCreateString.
4278         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
4279           to CreateString () methods with matching signature.
4280         * reflection.c: Use original security informations for
4281           MONO_WRAPPER_MANAGED_TO_MANAGED.
4282         * security-manager.c: Use original security informations for
4283           MONO_WRAPPER_MANAGED_TO_MANAGED.
4284         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
4285           that is a placeholder and only its address should be used.
4286         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
4287           that is a placeholder and only its address should be used.
4288
4289 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
4290
4291         Begin implementing COM Interop.
4292         * appdomain.c: Increment corlib version.
4293         * class.c: Set ComImport classes' parent to __ComObject.
4294         * loader.c: Mark cominterop methods as such.
4295         * domain.c: Add __ComObject class to MonoDefaults structure.
4296         * image.c: Add 2 hashtables to the image for COM Interop related methods
4297         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
4298         using the mempool allocator
4299         
4300         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
4301         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
4302         declaration for mono_metadata_type_dup_mp.
4303         
4304         * debug-helpers.c: Added strings for two additional wrapper types
4305         * object.c: Create proxy objects for ComImport classes
4306         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
4307         and added __ComObject class to MonoDefaults structure.
4308         
4309         * object-internals.h: Finish MonoRealProxy definition, and add definition of
4310         MonoComInteropProxy and MonoComObject.
4311         
4312         * marshal.c: Added support for COM Interop
4313         (signature_cominterop): Converts managed signature to corresponding
4314         unmanaged COM signature.
4315         (cominterop_get_function_pointer): gets unmanaged function pointer via
4316         COM object vtable
4317         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
4318         (cominterop_get_method_interface): returns interface type that method is defined on
4319         (mono_mb_emit_cominterop_call): emits native call to function pointer
4320         gotten from vtable
4321         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
4322         that matches signature of unmanaged function.
4323         (cominterop_get_native_wrapper): wrapper around adjusted method call.
4324         (cominterop_get_invoke): forwards call from proxy to __ComObject
4325         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
4326         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
4327         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
4328         
4329         * marshal.h: Added Marshal icall declarations.
4330         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
4331         so we can access them in finalizer
4332         
4333 2006-07-14  Dick Porter  <dick@ximian.com>
4334
4335         * object.c (mono_type_initialization_cleanup): Fix a race
4336         condition by temporarily commenting out the critical section
4337         deletion.
4338
4339 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
4340
4341         * reflection.c (create_custom_attr): Fix some warnings.
4342         (create_custom_attr_data): Ditto.
4343         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
4344         types. Fixes #78855.
4345
4346 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
4347
4348         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
4349
4350         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
4351
4352 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
4353
4354         * reflection.c (resolve_object): Add support for DynamicMethod.
4355
4356         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
4357         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
4358
4359 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
4360
4361         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
4362         don't leak GPtrArray's pdata has we have no use (nor free) for it.
4363
4364 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
4365
4366         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
4367         Fixes #77888.
4368
4369 2006-06-30  Raja R Harinath  <rharinath@novell.com>
4370
4371         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
4372         slightly: remove a shadow local variable.
4373
4374 2006-06-29  Raja R Harinath  <rharinath@novell.com>
4375
4376         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
4377         definition that introduces the virtual function slot.
4378         Also fix Coverity #105.
4379
4380 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
4381
4382         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
4383         for dynamic assemblies. Fixes #78724.
4384
4385 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
4386
4387         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
4388         Fixes #78722.
4389
4390 2006-06-21  Martin Baulig  <martin@ximian.com>
4391
4392         * reflection.c
4393         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
4394         fixes #76484.
4395
4396 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
4397
4398         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
4399
4400 2006-06-20  Raja R Harinath  <rharinath@novell.com>
4401
4402         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
4403         nor TYPEREFs.
4404         * class.c (mono_class_create_from_typespec): Add 'context' argument.
4405         Inflate result if necessary.
4406         (mono_class_get_full): Remove old version.  Rename from
4407         'mono_class_get' and add 'context' argument.  Pass it to
4408         ..._create_from_typespec.
4409         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
4410         (mono_ldtoken): Revert change below.
4411
4412 2006-06-20  Martin Baulig  <martin@ximian.com>
4413
4414         * class.c (mono_ldtoken): Don't pass the generic context to
4415         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
4416
4417 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
4418
4419         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
4420         and later freeing it. Fixes #78638.
4421
4422 2006-06-15  Miguel de Icaza  <miguel@novell.com>
4423
4424         * icall.c (mono_class_get_throw): Revert over-zealous error
4425         throwing, the caller for mono_class_get_throw will cope with
4426         errors when classes are not properly initialized already.
4427
4428         The code still copes with loader exceptions though.
4429
4430         Fixes the regression in reftype1 and reftype3 from the CAS tests.
4431         
4432 2006-06-14  Miguel de Icaza  <miguel@novell.com>
4433
4434         Fixes the `make run1' version of RuntimeAbort (to be commited,
4435         source is in Bugzilla).
4436         
4437         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
4438         FALSE on class loading failure instead of returning true.
4439
4440         * class.c (mono_class_create_from_typedef): It is possible for
4441         mono_metadata_interfaces_from_typedef_full to fail if a class is
4442         not found, cope with this.
4443         
4444
4445 2006-06-14  Dick Porter  <dick@ximian.com>
4446
4447         * socket-io.c: 
4448         * process.c: Fix a bunch of signed/unsigned warnings from gcc
4449         4.1.1
4450
4451 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
4452
4453         * culture-info-table.h : oops, forgot to make it nsync with r61548.
4454
4455 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
4456
4457         * icall.c: Another fix for building mono in Visual Studio.
4458
4459 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
4460
4461         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
4462         
4463 2006-06-09  Martin Baulig  <martin@ximian.com>
4464
4465         * debug-mono-symfile.c: Put this back and really fix it this
4466         time. Sorry for all the trouble.
4467
4468 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
4469
4470         * icall.c (mono_class_get_throw): Fix a warning.
4471         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
4472         ReflectionTypeLoadException if needed. Fixes #78606.
4473
4474         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
4475         (mono_class_init): Ditto.
4476
4477         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
4478         ref_only exceptions.
4479         (mono_loader_clear_error): Make this work even if there is no error.
4480
4481 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
4482
4483         * object-internals.h marshal.c marshal.h icall.c: Implement method 
4484         Marshal.GetComSlotForMethodInfo using internal call.
4485
4486 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
4487
4488         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
4489         a function for signalling it.
4490
4491         * class.c (mono_class_from_typeref): Use the new kind of loader error when
4492         a referenced assembly is not found.
4493
4494         * loader.c (mono_loader_error_prepare_exception): Add support for 
4495         LOADER_ERROR_ASSEMBLY. Fix formatting.
4496
4497 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
4498
4499         * domain.c appdomain.c class-internals.h marshal.c: Add support 
4500         for VARIANT marshalling on windows and increment corlib version
4501         since Variant struct was added.
4502
4503 2006-06-03  Miguel de Icaza  <miguel@novell.com>
4504
4505         * debug-mono-symfile.c: Revert Martin's previous patch which broke
4506         stack trace line information:
4507
4508         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
4509         (Martin) when looking up B which is between A and C, return A not C.
4510
4511         Bug is #78573.
4512
4513         Thanks to Alexander Olk for tracking this down.
4514
4515 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
4516
4517         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
4518         
4519         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
4520         avoid clobbering its value.
4521         (mono_string_to_lpstr): Fix a warning on windows.
4522
4523 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
4524
4525         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
4526
4527         * reflection.c loader.c: Removed references to 'dummy' flag.
4528
4529         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
4530
4531         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
4532         it gets GC tracking.
4533
4534         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
4535         GC tracking.
4536         
4537         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
4538
4539         * marshal.c threadpool.c: Update callers of mono_async_result_new.
4540
4541         * appdomain.c: Bump corlib version.
4542
4543 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
4544
4545         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
4546         CEE_STIND_REF when working with object references.
4547
4548 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
4549
4550         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
4551         Fixes #78539.
4552
4553 2006-05-30  Miguel de Icaza  <miguel@novell.com>
4554
4555         * loader.c (method_from_memberref): Fix argument value for
4556         mono_loader_set_error_method_load (I was passing the MonoClass
4557         instead of the class name char *).
4558
4559 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
4560
4561         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
4562         CEE_STIND_REF when working with object references.
4563
4564 2006-05-30  Martin Baulig  <martin@ximian.com>
4565
4566         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
4567         mono_method_full_name() change and replace the ':' with a '.'
4568         here.
4569
4570 2006-05-30  Martin Baulig  <martin@ximian.com>
4571
4572         * debug-mono-symfile.c
4573         (mono_debug_symfile_lookup_location): Fix the algorithm:
4574         when looking up B which is between A and C, return A not C.
4575
4576 2006-05-29  Martin Baulig  <martin@ximian.com>
4577
4578         * mono-debug.h
4579         (MonoDebugMethodInfo): Make the typedef public.
4580         (MonoDebugSourceLocation): New public struct.
4581
4582         * mono-debug.c
4583         (mono_debug_source_location_from_address): Removed.
4584         (mono_debug_source_location_from_il_offset): Removed.
4585         (mono_debug_il_offset_from_address): Removed.
4586         (mono_debug_address_from_il_offset): Removed.
4587         (mono_debug_lookup_method): New public function.
4588         (mono_debug_lookup_source_location): New public function; replaces
4589         the old mono_debug_source_location_from_*() functions; see the
4590         inline documentation.
4591         (mono_debug_free_source_location): New public function.
4592         (mono_debug_print_stack_frame): New public function; see the
4593         inline documentation.
4594
4595         * debug-mono-symfile.c
4596         (mono_debug_find_source_location): Renamed into
4597         mono_debug_symfile_lookup_location(); only take a
4598         `MonoDebugMethodInfo *' and an `offset' argument; added inline
4599         documentation.
4600         (mono_debug_find_method): Renamed into
4601         mono_debug_symfile_lookup_method().
4602
4603 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
4604
4605         * assembly.c (mono_assembly_open_full): Dont overwrite the status
4606         returned by mono_image_open_full ().
4607
4608         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
4609         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
4610         #78517.
4611
4612         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
4613         #78518.
4614
4615 2006-05-27  Miguel de Icaza  <miguel@novell.com>
4616
4617         * class.c (mono_class_from_typeref): handle missing images
4618         earlier, deals with bug #78418.   Refactor code; 
4619
4620         Fix a warning introduced in my previous commit (some stale code
4621         from before I revisited my patch).
4622
4623         * class.c (mono_class_create_from_typedef): On failure, remove the
4624         class from the MonoImage->class_cache as the class is not
4625         initialized;   Fixes the leak pointed out by Paolo.
4626
4627 2006-05-25  Dick Porter  <dick@ximian.com>
4628
4629         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
4630         DeleteCriticalSections until I figure out which one may still be
4631         sometimes locked when mono_thread_cleanup is called.
4632
4633 2006-05-24  Dick Porter  <dick@ximian.com>
4634
4635         * threads.c (mono_thread_cleanup): Move the threading cleanup out
4636         of mono_thread_manage and back into its own function, so it can be
4637         called after the finalizer thread has finished.
4638
4639         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
4640
4641 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
4642
4643         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
4644         Fixes #78495.
4645
4646         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
4647         with non-blittable elements.
4648         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
4649
4650 2006-05-24  Martin Baulig  <martin@ximian.com>
4651
4652         * mono-debug-debugger.h (MonoDebuggerEvent): Added
4653         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
4654
4655         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
4656         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
4657         `mono_debugger_event_handler' to NULL.
4658
4659 2006-05-24  Martin Baulig  <martin@ximian.com>
4660
4661         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
4662
4663 2006-05-24  Martin Baulig  <martin@ximian.com>
4664
4665         * mono-debug-debugger.h
4666         (mono_debugger_create_notification_function): Added
4667         `MonoCodeManager *' argument.
4668
4669 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
4670
4671         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
4672
4673 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
4674
4675         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
4676         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
4677         implementation.
4678
4679 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
4680
4681         * icall.c: precise GC support: objects can't be stored in unmanaged
4682         memory anymore, even if they are kept alive by other references: since
4683         they can move the GC needs to be able to always find them.
4684
4685 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
4686
4687         * object.c: precise GC support for static fields. Support
4688         for moving GCs: write barriers and pinned allocation for interned
4689         strings.
4690
4691 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
4692
4693         * domain.c, domain-internals.h: precise GC support for the MonoDomain
4694         structure.
4695
4696 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
4697
4698         * class.c, gc.c: sgen and precise GC updates.
4699
4700 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
4701
4702         * marshal.h, marshal.c: added write barrier wrapper and precise type
4703         fixes.
4704
4705 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
4706
4707         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
4708         support.
4709
4710 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
4711
4712         * reflection.c: precise and sgen GC updates.
4713
4714 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
4715
4716         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
4717
4718 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
4719
4720         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
4721
4722 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
4723
4724         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
4725         MONO_TYPE_OBJECT. Fixes #78462.
4726
4727 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
4728
4729         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
4730         and blittable types.
4731
4732 2006-05-17  Miguel de Icaza  <miguel@novell.com>
4733
4734         * class.c (mono_class_get_exception_for_failure): Implement parts
4735         of a TODO: if the loader error is set (instead of the class
4736         error), we return a Loader exception that can be properly thrown
4737         elsewhere.
4738
4739         This was exposed by some Winforms 2.0 code that I tried to run
4740         (Atsushi pointed me to it).
4741
4742 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
4743
4744         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
4745         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
4746         
4747         * marshal.c (emit_marshal_vtype): Add limited support for 
4748         UnmanagedType.LPStruct. Fixes #78427.
4749
4750         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
4751         Applied a patch from kangaroo to fix #77523.
4752
4753 2006-05-17  Martin Baulig  <martin@ximian.com>
4754
4755         * threads.c
4756         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
4757         (debugger_thread_created): Removed.
4758         (debugger_thread_exited): Removed.
4759
4760 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
4761
4762         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4763
4764         * object-internals.h (MonoReflectionResource): Sync with managed version.
4765
4766 2006-05-12  Wade Berrier <wberrier@novell.com>
4767
4768         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
4769
4770 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
4771
4772         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
4773         functions try to allocate from the image mempool.
4774
4775 2006-05-12  Dick Porter  <dick@ximian.com>
4776
4777         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
4778
4779 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
4780
4781         * object.c: The FieldGetter and FieldSetter methods require the full
4782         name of the class, not only the name. Fixes bug #78277.
4783
4784 2006-05-11  Miguel de Icaza  <miguel@novell.com>
4785
4786         * loader.c (method_from_memberref): Do not pass the NULL klass to
4787         mono_loader_set_error_() methods.  Pass the non-NULL value
4788         (class). 
4789
4790 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
4791
4792         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
4793         (mono_assembly_close): Null out assembly->image->references after freeing it.
4794
4795         * image.c (mono_image_close): Free image->references.
4796         
4797         * reflection.c (mono_image_basic_init): Fix a small memory leak.
4798
4799 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
4800
4801         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
4802         before checking if it's NULL (g_assert).
4803
4804 2006-05-10  Martin Baulig  <martin@ximian.com>
4805
4806         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
4807         I thought I already killed that two months ago, but now it somehow reappeared.
4808
4809 2006-05-10  Martin Baulig  <martin@ximian.com>
4810
4811         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
4812
4813 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
4814
4815         * reflection.c: Allocate memory for dynamically created methods in the image
4816         mempools.
4817
4818 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
4819
4820         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
4821         don't use the ad pointer before checking if it's NULL (g_assert).
4822
4823 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
4824
4825         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
4826         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
4827
4828         * marshal.c: Allocate all signatures from mempools.
4829
4830         * marshal.c: Allocate some more signatures from mempools.
4831
4832 2006-05-09  Miguel de Icaza  <miguel@novell.com>
4833
4834         * object.c (mono_load_remote_field): The code used to provide a
4835         temporary variable for returning results if the user did not
4836         provide a result pointer.  But our temporary variable was allocted
4837         on the satck.
4838
4839         Fix calling code to always pass a result area.   Coverity ID 103.
4840
4841 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
4842
4843         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
4844         value, not the old. Fixes #78312.
4845         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
4846
4847         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
4848         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
4849         per-image cache.
4850
4851         * assembly.c (mono_assembly_close): Free image->references.
4852
4853         * assembly.c (mono_assembly_names_equal): Fix a warning.
4854         (mono_assemblies_cleanup): Cleanup more global data.
4855
4856         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
4857
4858         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
4859         ptr_cache and image->modules.
4860
4861         * image.c (mono_image_init): Allocate array_cache lazily.
4862         
4863 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4864
4865         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
4866         behavior was changed recently and has bad side effects.
4867
4868 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
4869
4870         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
4871         
4872         * assembly.c (mono_assembly_close): Remove a debug printf.
4873
4874         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
4875
4876         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
4877         to also allow for temporary references between mono_image_open ()/close ().
4878
4879         * domain.c (get_runtimes_from_exe): Add a FIXME.        
4880
4881 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
4882
4883         * marshal.c: Fix support for dynamic methods.
4884
4885         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
4886
4887         * marshal.c (mono_marshal_cleanup): New cleanup function.
4888
4889         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
4890         image mempools.
4891
4892         * class.c (mono_class_init): Fix leaking class->nested_classes.
4893
4894         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
4895
4896         * image.c (mono_image_init): Initialize the new cashes.
4897
4898         * image.c (mono_image_close): Destroy the new cashes.
4899
4900         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
4901
4902         * mempool.c (mono_mempool_strdup): New helper function.
4903
4904         * class-internals.h: Add prototype for mono_loader_unlock ().
4905
4906         * domain.c (mono_jit_info_table_find): Fix a warning.
4907         (mono_debugger_check_runtime_version): Ditto.
4908
4909         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
4910         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
4911         functions to these modules.
4912
4913         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
4914         metadata modules.
4915         
4916         * marshal.c (mono_free_bstr): Fix a warning.
4917
4918         * assembly.c (mono_assembly_open_full): Fix another small leak.
4919
4920         * object.c: Fix some unload leaks in the remoting code.
4921
4922         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
4923         function.
4924
4925         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
4926
4927         * reflection.c: Fix some unload leaks in dynamic assemblies.
4928
4929 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
4930
4931         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
4932         * marshal.h: Add BSTR support on Win32
4933         * icall.c: Add BSTR icalls
4934         * metadata.h: Add BSTR enums
4935
4936 2006-04-28  Miguel de Icaza  <miguel@novell.com>
4937
4938         Work to catch the crash from #76795 and turn it into an
4939         exception.   As I stubbed out pieces of the VisualBasic support,
4940         I found a number of places where the code was failing and I added
4941         checks to those places. 
4942         
4943         * metadata.c (do_mono_metadata_parse_generic_class): Make this
4944         function return a status code.  If we fail to parse the signature
4945         from mono_metadata_parse_generic_inst, return FALSE.
4946
4947         * loader.c (mono_get_method_from_token): If we fail to load the
4948         method (mono_class_get) return NULL.   
4949
4950         * (method_from_memberref): Return NULL if we are unable to parse
4951         the method signature
4952
4953         (mono_loader_error_prepare_exception): Since we now use the
4954         loader_error flag internally to stop processing, and obtaining
4955         exceptions that might be thrown will walk this code path the
4956         proper way of going from a MonoLoaderError into a
4957         MonoException was convoluted.   This new routine encapsulates the
4958         process of turning the error into an exception and *clearing* the
4959         error afterwards.
4960         
4961 2006-04-27  Miguel de Icaza  <miguel@novell.com>
4962
4963         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
4964         with missing assemblies), and to cope with:
4965
4966                 * Missing fieldref from a non-existing assembly.
4967                 * Missing methodref from a non-existing assembly.
4968
4969         The first batch of work to address *some* of the issues from 76661.
4970         
4971         * object.c (mono_class_create_runtime_vtable): If we fail to
4972         initialize the class raise the exception here. 
4973
4974         * metadata.c (mono_class_get_overrides_full): If any methods fail
4975         to load return the failure to the caller.
4976
4977         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
4978         flagging assemblies that failed to load.   
4979
4980         Do not crash if we are unable to load the assembly.
4981
4982         (mono_assembly_close): Do nothing with REFERENCE_MISSING
4983         assemblies. 
4984
4985         * loader.c (mono_loader_set_error_type_load): Change the
4986         convention to always pass unallocated strings, so we make our own
4987         copies (I know our own code had duplicated strings before, but
4988         this keeps the normal conventions).
4989         (method_from_memberref): Call mono_loader_set_error_method_load
4990         for all possible failures of loading the class. 
4991         Remove assert, turn into a loader error.
4992
4993         (mono_loader_error_to_exception): Move this routine from mini
4994         (mini_loader_error_to_exception) there was no need to have that in
4995         mini. 
4996
4997         * class.c (mono_class_from_typeref): If we were not able to load
4998         the assembly with mono_assembly_load_reference, call the
4999         mono_loader_set_error_type_load to register the problem.
5000
5001         (mono_class_setup_fields): If we fail to load the type from
5002         mono_metadata_parse_type_full, call mono_class_set_failure and
5003         break from the loop.
5004
5005         If class->exception_type is set, we do not layout the fields as
5006         that might crash the runtime, and instead return (from breaking
5007         from the previous loop).
5008
5009         (mono_class_setup_vtable): This now returns a boolean indicating
5010         whether the table was properly setup.   The decision is driven by
5011         mono_class_get_overrides_full which might run into non-existing
5012         methods. 
5013         
5014         (mono_class_init): Returns TRUE on success or FALSE if there was a
5015         problem in loading the type (incorrect assemblies, missing
5016         assemblies, methods, etc).
5017
5018         When we call mono_class_setup_fields we also check for a potential
5019         error inside this call (either a class exception or a general
5020         loader exception).
5021
5022         (mono_class_create_from_typedef): If the parent fails to load
5023         (calling mono_class_get_full) return NULL.
5024         
5025         ** Important **
5026
5027         calls to mono_metadata_parse_type_full should be checked
5028         everywhere and set the mono_class_set_failure
5029         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
5030
5031         The current patch checks the places where my manually constructed
5032         tests show the errors are showing up, but we should do it
5033         everywhere. 
5034
5035         ** Important2 **
5036
5037         mono_class_init return values should be tested everywhere, like
5038         the previous case this is something that we should audit
5039         everywhere and not only on the cases exposed by the tests I
5040         created. 
5041
5042 2006-04-26  Miguel de Icaza  <miguel@novell.com>
5043
5044         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
5045         boolean parameter and instead pass the information on `options'
5046         parameter (FileOptions).
5047
5048         * icall.c: Register the new signature for MonoIO.Open.
5049
5050         * debug-helpers.c (dis_one): Trying to understand how coverity
5051         works.  Fix Run 5, item 78.
5052
5053 2006-04-26  Dick Porter  <dick@ximian.com>
5054
5055         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
5056         dereference.
5057
5058 2006-04-25  Martin Baulig  <martin@ximian.com>
5059
5060         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
5061
5062         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
5063         debugger_thread_created().
5064         (debugger_gc_push_all_stacks): Don't handle the main thread in any
5065         special way.
5066         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
5067         (mono_debugger_finalize_threads): New function; undo the effects
5068         of mono_debugger_init_threads().
5069         (mono_debugger_create_all_threads): Removed.
5070
5071 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
5072
5073         * image.c (mono_image_close): Tidy up trace messages.
5074
5075         * assembly.c (mono_assembly_close): Ditto.
5076
5077         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
5078         no longer references an already freed assembly. Fixes #78168.
5079
5080 2006-04-21  Dick Porter  <dick@ximian.com>
5081
5082         * threads.c (mono_thread_detach): Fix reference counting when
5083         detaching threads.
5084
5085 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
5086
5087         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
5088         #78155.
5089
5090 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
5091
5092         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
5093         (mono_type_to_stind): Ditto.
5094
5095         * marshal.c: Use the new helper functions to simplify code.
5096
5097         * image.c (mono_image_close): Add some code for help debug assembly unloading
5098         problems.
5099
5100         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
5101         image mempool.
5102
5103         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
5104         assembly was already loaded in another appdomain. Fixes #78083.
5105
5106 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
5107
5108         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
5109         referenced assemblies.
5110         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
5111
5112         * domain.c (mono_domain_free): Add a trace message.
5113
5114         * appdomain.c (add_assemblies_to_domain): Ditto.        
5115
5116         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
5117         field.  
5118
5119 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
5120
5121         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
5122
5123 2006-04-12  Martin Baulig  <martin@ximian.com>
5124
5125         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
5126         `USE_INCLUDED_LIBGC'.   
5127
5128 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
5129
5130         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
5131         the patch contains ../ and a small directory name later. Hopefully fixes
5132         #78035.
5133
5134 2006-04-10  Martin Baulig  <martin@ximian.com>
5135
5136         Clean up the debugger's thread-handling code.
5137
5138         The debugger's thread-handling code has been moved from
5139         ../mini/debug-debugger.c to threads.c.  We now iterate directly
5140         over the `threads' hash, keep track of exiting threads and also
5141         use proper locking.
5142
5143         We can now debug XSP and XSP based applications with the debugger.
5144
5145         * object-internals.h (MonoThread): Added `gpointer end_stack'.
5146
5147         * threads.h
5148         (MonoThreadCallbacks): Removed; this was only used by the debugger.
5149         (mono_install_thread_callbacks): Likewise.      
5150
5151         * threads.c (mono_thread_callbacks): Removed.
5152         (debugger_thread_created, debugger_thread_exited): New static functions.
5153         (start_wrapper): Call debugger_thread_created().
5154         (thread_cleanup): Call debugger_thread_exited().
5155         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
5156         (mono_debugger_init_threads): New public function.
5157         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
5158         iterate directly over the `threads' hash and also use proper locking.
5159
5160         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
5161
5162         * mono-debug-debugger.h
5163         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
5164
5165 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
5166
5167         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
5168         argument type=array. Fixes #78057.
5169
5170 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
5171
5172         * culture-info-table.h : regenerated. Fixed bug #69652.
5173
5174 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
5175
5176         * loader.c metadata.c: Reapply a variant r59116.
5177         
5178         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
5179
5180         * class.c (mono_class_setup_interface_offsets): New internal function.
5181
5182         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
5183         interfaces too. Fixes #77398.
5184
5185         * reflection.c (encode_cattr_value): Add support for 
5186         parameter type=object, argument type=array.
5187         (load_cattr_value): Ditto. Fixes #77916.
5188
5189         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
5190         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
5191
5192         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
5193         a byval char array and CharSet is Ansi.
5194
5195         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
5196
5197 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
5198
5199         * metadata.c: Add some locking comments.
5200         
5201         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
5202         mempool.
5203         (mono_metadata_free_method_signature): Don't free the signature itself.
5204
5205         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
5206
5207         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
5208         reference the same MonoImage.
5209         (mono_assembly_load_from_full): Add an assert.
5210
5211 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
5212
5213         * image.c (mono_image_close): Don't put the image we are about to free into the
5214         loaded_images_guid_hash.
5215
5216         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
5217         to reduce code duplication.
5218
5219         * marshal.c: Register the native functions called by this module as icalls, to
5220         somewhat centralize the creation of MonoMethodSignature's.
5221
5222         * loader.c (mono_method_signature): Add a cache for method signatures.
5223
5224         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
5225         the parameter attributes of a method.
5226         (mono_metadata_parse_method_signature_full): Refactored the computation of
5227         parameter attributes into a separate function. Also avoid one allocation in
5228         most cases.
5229
5230         * assembly.c (mono_assembly_close): Ditto.
5231
5232         * image.c (mono_image_close): Log trace messages with INFO level.
5233
5234         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
5235
5236         * image.c reflection.c: Correct reference counting of image modules.
5237         
5238         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
5239         of this function from the image mempool.
5240         
5241         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
5242         to allow more cached types to be used.
5243
5244         * mono-debug.c (mono_debug_add_method): Appled patch from
5245         David S. Miller  <davem@sunset.davemloft.net>: Access 
5246         minfo->lexical_blocks[] entry elements using read32().
5247
5248 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
5249
5250         * loader.c (mono_free_method): No longer free the method header for non-dynamic
5251         methods as it is allocated from the mempool.
5252
5253         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
5254         image mempool.
5255
5256         * metadata-internals.h: Add comments describing the reference counting scheme
5257         used for MonoImage and MonoAssembly.
5258
5259         * image.c assembly.c reflection.c: Rework reference counting of images and 
5260         assemblies so they are freed when the runtime is shut down. Free some 
5261         additional memory structures when an image is unloaded.
5262         
5263 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
5264
5265         * class.c loader.c reflection.c: Allocate more data structures in
5266         the image mempool.
5267
5268 2006-03-31  Miguel de Icaza  <miguel@novell.com>
5269
5270         * icall.c
5271         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
5272         build on pre glib 2.4 systems.
5273
5274 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
5275
5276         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
5277
5278         * icall.c: Fix some warnings.
5279
5280 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
5281
5282         * culture-info-table.h : regenerated.
5283
5284 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
5285
5286         * threads.c, object-internals.h, verify.c: changed the culture caching
5287         code to use a normal MonoArray for storage so the GC can keep track of
5288         them easily. Fixed bits of the cache logic, too and simplified the
5289         code.
5290
5291 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
5292
5293         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
5294         thread for non-Boehm GCs.
5295
5296 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
5297
5298         * domain.c, object.c, domain-internals.h: reduce the amount of memory
5299         needed to keep track of the data for static fields.
5300
5301 2006-03-29  Raja R Harinath  <rharinath@novell.com>
5302
5303         Fix #75172
5304         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
5305         for interface classes.  Use 'num_methods' instead.
5306         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
5307         before using '->vtable_size' field.
5308
5309 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
5310
5311         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
5312         doesn't contain managed pointers, so use a normal hashtable.
5313
5314 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
5315
5316         * reflection.c, class-internals.h, domain.c: fixed handling of types
5317         used as values for objects in custom attributes (bug #77915):
5318
5319 2006-03-24  Martin Baulig  <martin@ximian.com>
5320
5321         * class.c (mono_class_setup_fields): Added support for generic
5322         instances; fixes #77580.
5323
5324 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5325
5326         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
5327
5328 2006-03-24  Dick Porter  <dick@ximian.com>
5329
5330         * file-io.c (get_file_attributes): More stat macro breakage.
5331         Fixes bug 77759.
5332
5333 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
5334
5335         * profiler.c: added the file=filename option in the default profiler
5336         to output the profile data to filename.
5337
5338 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5339
5340         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
5341         bug #77877.
5342
5343 2006-03-22  Martin Baulig  <martin@ximian.com>
5344
5345         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
5346         allocated `MonoClassField *' in `fb->handle'.
5347
5348 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
5349
5350         * class.c, image.c, metadata-internals.h: implemented new mechanism to
5351         allocate interface ID to save memory and allow better ID reuse on
5352         appdomain unload. setup_generic_vtable () removal from Martin.
5353
5354 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
5355
5356         * object.h, appdomain.c, domain.c, exception.c, icall.c,
5357         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
5358         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
5359         write barriers for reference stores with managed objects accessed with
5360         C structures in the runtime and in embedding programs.
5361
5362 2006-03-20  Raja R Harinath  <rharinath@novell.com>
5363
5364         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
5365         'interface_id' and 'max_interface_id' fields of MonoClasses
5366         representing open generic types.
5367
5368 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
5369
5370         * object.h, object.c, icall.c: added functions to deal with
5371         storing valuetypes that contain references in managed objects.
5372         * reflection.c, string-icalls.c, threads.c, marshal.c: small
5373         fixes and comments around uses of mono_array_addr ().
5374
5375 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
5376
5377         * object.h, icall.c, monitor.c: object.GetHashCode ()
5378         implementation that supports the moving garbage collector.
5379
5380 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
5381
5382         * icall.c, threads-types.h, threads.c: implemented finalizer for
5383         LocalDataStoreSlot.
5384
5385 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
5386
5387         * metadata.c (mono_type_size): Add a fixme.
5388         (mono_type_stack_size): Ditto.
5389
5390         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
5391         'type_forwarders' field.
5392
5393         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
5394         attribute from net 2.0.
5395
5396         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
5397         from class.c.
5398
5399         * class.c (mono_class_setup_fields): Fix a warning.
5400         
5401         * class.c (mono_class_from_name): Add support for assemblyref entries
5402         in the EXPORTEDTYPE table.
5403
5404         * reflection.c: Add support for handling type forwarders under net 2.0.
5405
5406         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
5407         
5408 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
5409
5410         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
5411         overwriting entries in ModuleBuild->types, also clean up the code
5412         a little. Fixes #77774.
5413
5414 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
5415
5416         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
5417         load friend assembly info when present.
5418
5419 2006-03-14  Raja R Harinath  <rharinath@novell.com>
5420
5421         Fix crasher on gtest-158.cs.
5422         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
5423         the return value if the MonoClass we want is yet in an
5424         inconsistent state.
5425         * class.c (mono_class_create_from_typedef): Add an comment
5426         explaining an order dependency between mono_class_setup_parent and
5427         mono_class_setup_mono_type.
5428
5429 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
5430
5431         * class.c: documentation updates and events bug fix.
5432
5433 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
5434
5435         * class.c: some cleanup, locking fixes.
5436
5437 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
5438
5439         * class.c: fix the generics code to setup nested
5440         type info to the instantiated type (bug #77770).
5441
5442 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
5443
5444         * marshal.c: fixed a few type correctness issues.
5445
5446 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
5447
5448         * loader.c: the Set/Get/Addrtess array methods should be public.
5449
5450 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
5451
5452         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
5453         
5454         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
5455         info->wrapper.
5456
5457 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
5458
5459         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
5460
5461         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
5462
5463         * mempool.c (mono_mempool_alloc): Speed this up a bit.
5464         (mono_mempool_alloc0): Ditto.
5465
5466 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5467
5468         * socket-io.c:
5469         (create_object_from_sockaddr): it was allocating 4 extra bytes
5470         for the AF_UNIX data. Fixes bug #77747.
5471
5472 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
5473
5474         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
5475
5476 2006-03-09  Dick Porter  <dick@ximian.com>
5477
5478         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
5479         Fixes bug 76966 again.
5480
5481 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
5482
5483         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
5484         names from r57532
5485         * appdomain.c: Bumped corlib version to 48 (due to r57532)
5486
5487 2006-03-07  Martin Baulig  <martin@ximian.com>
5488
5489         * object.c
5490         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
5491
5492 2006-03-07  Martin Baulig  <martin@ximian.com>
5493
5494         * class.c
5495         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
5496         regression introduced in r56970; see gtest-252.cs.
5497
5498         * loader.c (mono_get_method_constrained): Correctly handle generic
5499         methods; see gtest-253.cs.
5500
5501 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
5502
5503         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
5504
5505 2006-03-04  Martin Baulig  <martin@ximian.com>
5506
5507         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
5508         compute the parent type at runtime, just like we're already doing
5509         it for interfaces.
5510
5511         * reflection.c
5512         (mono_reflection_bind_generic_parameters): Don't compute the
5513         parent type anymore.
5514
5515         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
5516
5517 2006-03-04  Martin Baulig  <martin@ximian.com>
5518
5519         * mono-debug-debugger.h
5520         (mono_debugger_create_notification_function): Allocate memory at
5521         runtime and return a pointer to it.
5522
5523 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
5524
5525         * assembly.c: Fix windows build.
5526         
5527         * assembly.c: Fix build.
5528
5529         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
5530
5531         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
5532         
5533 2006-03-03  Dick Porter  <dick@ximian.com>
5534
5535         * process.c
5536         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
5537         Check parameters before dereferencing them.  Fixes Aaron's part of
5538         bug 77393.
5539
5540 2006-03-03  Raja R Harinath  <rharinath@novell.com>
5541
5542         Fix performance regression.
5543         * loader.c (find_method_in_class): Add 'from_class' argument.
5544         Rename 'klass' argument to 'in_class'.  The signature is compared
5545         against the method in 'in_class', and the corresponding method is
5546         returned from 'from_class'.
5547         (find_method): Walk both 'in_class' and 'from_class' in parallel.
5548         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
5549         type definition and generic instantiation in parallel.
5550         (mono_get_method_constrained): Update to changes.
5551
5552 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
5553
5554         * threads.c: make sure the domain is correct, too when doing
5555         mono_thread_attach ().
5556
5557 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
5558
5559         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
5560         windows. Fixes #77683.
5561
5562 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
5563
5564         * object.h, *: introduced specific way to set elements of an array
5565         of references to be used as write barrier. Still need to audit the
5566         uses of mono_array_addr.
5567
5568 2006-03-01  Miguel de Icaza  <miguel@novell.com>
5569
5570         * object-internals.h: New field to cache the assmebly name, patch
5571         from Tambet Ingo (tambet@ximian.com)
5572
5573 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
5574
5575         * decimal.h, class-internals.h, metadata-internals.h,
5576         file-io.h: mark a few function declarations as internal, to
5577         reduce the number of PLT entries.
5578
5579 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5580
5581         * file-io.c: fix typo in warning message.
5582
5583 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
5584
5585         * loader.c: on unix, lookup the "*A" version of a function
5586         if charset is auto as a second option before failing.
5587
5588 2006-02-28  Raja R Harinath  <rharinath@novell.com>
5589
5590         * class.h (mono_class_inflate_generic_method): Revert to two
5591         argument version.
5592         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
5593         (mono_class_inflate_generic_method_full): Add.
5594         * class.c (mono_class_inflate_generic_method_full): Rename from
5595         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
5596         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
5597         * loader.c, reflection.c: Update to changes.
5598
5599 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
5600
5601         * icall.c: const fixes and small improvements.
5602
5603 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5604
5605         * threadpool.c: for asynchronous connect(), enable the same workaround
5606         for BSD 6 as for the Mac. Fixes bug #77637.
5607
5608 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
5609
5610         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
5611         formatted classes. Fixes #77524.
5612
5613 2006-02-24  Raja R Harinath  <rharinath@novell.com>
5614
5615         * class.c (inflate_generic_type): Add a couple more
5616         micro-optimizations.
5617         (inflate_generic_context): Don't use the 'gmethod' from
5618         'inflate_with'.
5619         (mono_class_inflate_generic_method): If the method has generic
5620         parameters, but the passed-in context doesn't have a 'gmethod',
5621         create one.  Use the possibly simplified generic instantiation
5622         from the declaring class instead of the one passed in.
5623
5624 2006-02-24  Raja R Harinath  <harinath@gmail.com>
5625
5626         Make generic method signature and method header handling lazy.
5627         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
5628         (inflate_generic_header): Likewise.
5629         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
5630         parameter to avoid inflating types.
5631         (mono_get_inflated_method): Empty out.
5632         * class.h (mono_class_inflate_generic_method): Update to changes.
5633         * loader.c (mono_get_method_from_token): Don't parse signature for
5634         generic methods, nor methods of generic classes.
5635         (mono_method_signature): Rename from 'mono_method_signature'.
5636         Inflate signature on demand.
5637         (mono_method_get_header): Inflate method header on demand.
5638         * reflection.c: Update to changes.
5639
5640 2006-02-23  Raja R Harinath  <rharinath@novell.com>
5641
5642         * metadata.c (mono_metadata_inflate_generic_inst): If the
5643         instantiation is closed, don't bother expanding it in the new
5644         context.
5645         * class.c (inflate_generic_class): If the generic instantiation
5646         doesn't change after inflation, return the argument itself.
5647         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
5648         Add bounds checks.
5649         (inflate_generic_context): If neither the generic class nor the
5650         generic method instantiations change, return the original context.
5651         * reflection.c (mono_method_get_object): Do
5652         'mono_get_inflated_method' before accessing the ->klass field.
5653         (inflate_mono_method): Don't create a MonoGenericMethod unless
5654         necessary.
5655         (inflate_method): Don't pass a constructed type as the declaring
5656         type of a methodbuilder.
5657
5658 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
5659
5660         * object.c: fix memory overwrite.
5661
5662 2006-02-22  Dick Porter  <dick@ximian.com>
5663
5664         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
5665         it doesn't work any more.
5666         (mono_threads_request_thread_dump): Fix unused variable warnings.
5667
5668 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
5669
5670         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
5671         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
5672         the public header file.
5673
5674 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
5675
5676         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
5677
5678 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
5679
5680         * class-internals.h, object.c: reduce the size of MonoVTable
5681         and store the interface_offsets array at negative offsets.
5682
5683 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
5684
5685         * metadata.c: tweak table descriptors data structures to reduce
5686         size and runtime relocations.
5687
5688 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
5689
5690         * marshal.c: fix some types and opcodes to be type-safe
5691         in marshaling wrappers.
5692
5693 2006-02-21  Ankit Jain  <jankit@novell.com>
5694
5695         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
5696
5697 2006-02-21  Raja R Harinath  <rharinath@novell.com>
5698
5699         * metadata.c (get_constraints): Relax debugging checks for monodis.
5700
5701 2006-02-21  Ankit Jain  <jankit@novell.com>
5702
5703         * metadata.c (mono_metadata_load_generic_params): Move the code
5704         checking for ambiguous generic params from here to mono/dis/get.c
5705         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
5706
5707 2006-02-21  Raja R Harinath  <harinath@gmail.com>
5708
5709         Fix assertion triggered when compiling nemerle.
5710         * class.c (mono_get_shared_generic_inst): Rename from
5711         get_shared_inst and make non-static.
5712         * loader.c (mono_get_shared_generic_method): New.  Used to create
5713         the MonoGenericContext-equivalent of a MonoGenericContainer.
5714         (mono_get_method_from_token): Initialize the 'context' field of
5715         the created MonoGenericContainer.
5716         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
5717         * metadata.c (get_constraints): Add sanity check.
5718         * class-internals.h: Add new internal methods.
5719
5720         * reflection.c (verify_safe_for_managed_space): New sanity check.
5721         Currently checks that owner-less generic parameters aren't allowed
5722         in managed space.
5723         (mono_type_get_object): Use it.
5724         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
5725         that are now in mono_type_get_object.
5726         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
5727
5728 2006-02-19  Raja R Harinath  <harinath@gmail.com>
5729
5730         * metadata.c (mono_type_create_from_typespec): Rename from
5731         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
5732         argument and caching of types in the generic container.
5733         (unwrap_arrays, find_generic_param): Remove.
5734         * metadata-internals.h: Update.
5735         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
5736
5737 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
5738
5739         * class.c (mono_class_get_exception_for_failure): Fix a warning.
5740
5741         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
5742         return values. Fixes #77581.
5743
5744         * class.c (mono_fnptr_class_get): Switch name and name_space.
5745
5746         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
5747         classes and add support for [In, Out] attributes.
5748         (mono_marshal_free_asany): Ditto. Fixes #77524.
5749
5750 2006-02-18  Raja R Harinath  <harinath@gmail.com>
5751
5752         * class.c (mono_class_from_generic_parameter): Make more robust to
5753         incomplete MonoGenericContainers from monodis.
5754
5755 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
5756
5757         * class-internals.h: added some more exception types.
5758         * class.c, metadata.c: added a few checks to handle missing
5759         types.
5760
5761 2006-02-17  Raja R Harinath  <rharinath@novell.com>
5762
5763         Use owner-less generic-params some more.
5764         * class.c (my_mono_class_from_generic_parameter): Remove.
5765         (mono_class_from_generic_parameter): Handle null image,
5766         param->name and param->owner.
5767         (mono_class_from_mono_type): Update.
5768         (mono_class_create_from_typespec): Remove 'container' parameter.
5769         If that parameter is non-null, the result is always inflated by
5770         'mono_class_get_full' anyway.
5771         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
5772         parameter.
5773         (mono_class_get_full): Update.
5774
5775         * class.c (inflate_generic_type) [GENERICINST]: If the generic
5776         instance is not open, don't bother inflating.
5777         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
5778         parse metadata for inflated classes.
5779         (_mono_class_get): Change GenericContext* parameter to
5780         GenericContainer*.
5781         (mono_class_create_from_typespec): Likewise.  Simplify, and
5782         implement trivially.  All the cases are handled in
5783         mono_class_from_mono_type.  Don't inflate returned class.
5784         (mono_class_get_full): Delegate GENERICINST optimization to
5785         inflate_generic_type.
5786         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
5787
5788 2006-02-16  Dick Porter  <dick@ximian.com>
5789
5790         * socket-io.c (create_object_from_sockaddr): Fix typo.
5791         (create_sockaddr_from_object): Check array lengths before
5792         potentially accessing items off the end.
5793         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
5794         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
5795         (ves_icall_System_Net_Sockets_Socket_Send_internal)
5796         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
5797         length checks to avoid wraparound overflows.
5798         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
5799         contents of the array of sockets
5800         (hostent_to_IPHostEntry2)
5801         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
5802         Check return value of inet_ntop ().
5803         (addrinfo_to_IPHostEntry): Fix typo
5804
5805 2006-02-16  Raja R Harinath  <rharinath@novell.com>
5806
5807         Type metadata parsing doesn't use generic-instantiation information.
5808         * metadata.c (mono_metadata_parse_array_full): Change
5809         MonoGenericContext* parameter to MonoGenericContainer*.
5810         (mono_metadata_parse_type_full): Likewise.
5811         (mono_type_create_from_typespec_full): Likewise.
5812         (mono_metadata_parse_mh_full): Likewise.
5813         (mono_metadata_parse_generic_inst): Likewise.
5814         (do_mono_metadata_parse_generic_class): Likewise.
5815         (do_mono_metadata_parse_type): Likewise.
5816         * metadata-internals.h: Update to changes.
5817         * class.c (mono_class_find_enum_basetype): Likewise.
5818         (mono_class_setup_fields): Likewise.
5819         (mono_class_create_from_typespec): Likewise.
5820         * loader.c (method_from_methodspec): Likewise.
5821         (mono_get_method_from_token): Likewise.
5822         (mono_method_get_header): Likewise.
5823
5824 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
5825
5826         * marshal.c: handle additional GENERICINST case (patch from
5827         Thong Nguyen <tum@veridicus.com>).
5828         Fix a few cases where LDIND_I/STIND_I was used for references.
5829
5830 2006-02-16  Raja R Harinath  <rharinath@novell.com>
5831
5832         * reflection.c (mono_reflection_get_token): Remove unused variable.
5833
5834 2006-02-16  Martin Baulig  <martin@ximian.com>
5835
5836         * reflection.c (mono_reflection_get_token): Add support for fields
5837         in instantiated generic types.
5838
5839         * icall.c
5840         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
5841
5842 2006-02-15  Martin Baulig  <martin@ximian.com>
5843
5844         * icall.c
5845         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
5846         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
5847         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
5848         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
5849
5850 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
5851
5852         * class.c, metadata.c, metadata.h, object.c, icall.c,
5853         marshal.c: changed mono_type_get_underlying_type () to do
5854         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
5855         Fixed handling of instantiated generic valuetypes (bug #75479).
5856
5857 2006-02-15  Raja R Harinath  <rharinath@novell.com>
5858
5859         * metadata.c (mono_metadata_decode_signed_value): Simplify.
5860         Delegate to mono_metadata_decode_value, and work on the returned value.
5861
5862         * icall.c (ves_icall_MonoType_GetGenericArguments):
5863         Add consistency check here too.
5864         
5865 2006-02-15  Ankit Jain  <jankit@novell.com>
5866
5867         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
5868         char/short etc.
5869
5870 2006-02-15  Ankit Jain  <jankit@novell.com>
5871
5872         * metadata.c (mono_metadata_decode_signed_value): New function to decode
5873         signed values, used only for representing lower bounds of arrays.
5874         (mono_metadata_parse_array_full): Use new
5875         mono_metadata_decode_signed_value to decode lower bounds.
5876
5877 2006-02-14  Martin Baulig  <martin@ximian.com>
5878
5879         * reflection.c
5880         (mono_reflection_get_token): Support "MonoGenericMethod" and
5881         "MonoGenericCMethod" and allow generic instances / methods.
5882
5883 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
5884
5885         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
5886         to obtain the terminal size using an ioctl.
5887
5888         * object.c (mono_nullable_init): Revert this as nullable reference
5889         types are not valid.
5890         (mono_nullable_box): Ditto.
5891
5892 2006-02-09  Dick Porter  <dick@ximian.com>
5893
5894         * threads.c (mono_thread_detach): Drop a reference to the thread
5895         we're detaching.
5896
5897 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
5898
5899         * object.c (mono_nullable_init): Handle nullable reference types.
5900         (mono_nullable_box): Ditto. Fixes #77446.
5901
5902 2006-02-07  Martin Baulig  <martin@ximian.com>
5903
5904         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
5905
5906 2006-02-07  Ankit Jain  <jankit@novell.com>
5907
5908         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
5909         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
5910         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
5911         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
5912         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
5913         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
5914
5915 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
5916
5917         * class.c (mono_class_create_generic): Set type_token as well.
5918
5919         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
5920         compatible with MS.
5921
5922 2006-02-02  Martin Baulig  <martin@ximian.com>
5923
5924         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
5925         has never been used so far.
5926
5927 2006-02-02  Martin Baulig  <martin@ximian.com>
5928
5929         * mono-debug-debugger.h: Changed comment at the top of this file;
5930         the header is not installed, but it's safe to #include it from
5931         within the JIT.
5932
5933         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
5934         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
5935
5936 2006-02-02  Martin Baulig  <martin@ximian.com>
5937
5938         * mono-debug.h
5939         (MonoSymbolTable): Removed the `metadata_info' field.
5940
5941         * mono-debug.c
5942         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
5943
5944         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
5945         (mono_debugger_add_builtin_types): Removed.
5946         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
5947         (mono_debugger_create_notification_function): We now operate on a
5948         pre-allocated area; take a `gpointer' and return `void'.
5949
5950         * mono-debug-debugger.c
5951         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
5952         (mono_debugger_add_builtin_types): Removed.
5953
5954 2006-02-02  Martin Baulig  <martin@ximian.com>
5955
5956         * threads.c (mono_debugger_create_all_threads): New public method.
5957
5958 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
5959
5960         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
5961         breaks on several platforms.
5962
5963 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
5964
5965         * assembly.c: the VS.NET build doesn't supply default values for
5966         MONO_ASSEMBLIES and MONO_CFG_DIR.
5967
5968 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
5969
5970         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
5971         helper function.
5972
5973         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
5974
5975         * loader.c (method_from_memberref): Fix a warning.
5976
5977         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
5978
5979         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
5980         with explicit layout. Fixes #77433.
5981
5982 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
5983
5984         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
5985         max_interface_id is initialized before using it. Fixes #77398.
5986         (ves_icall_Type_GetInterfaces): Ditto.
5987
5988 2006-01-30  Raja R Harinath  <rharinath@novell.com>
5989
5990         * metadata.c (mono_metadata_parse_method_signature_full): Don't
5991         allocate memory for parameter attributes when parsing memberref
5992         signatures.
5993         * loader.c (mono_loader_set_error_method_load): Don't warn.
5994         (method_from_memberref): Ensure MissingMethodException gets thrown
5995         if method is not found.  Make warning more informative.
5996
5997 2006-01-29  Raja R Harinath  <harinath@gmail.com>
5998
5999         Fix #77397
6000         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
6001         return true if is byref.
6002         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
6003         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
6004         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
6005
6006 2006-01-27  Raja R Harinath  <rharinath@novell.com>
6007
6008         Fix tests/find-method.2.il
6009         * loader.c (find_method, find_method_in_class): Remove is_inflated
6010         argument.  Revert 2006-01-18 change.
6011         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
6012         is generic, search for method in its generic definition.
6013         * class.c (mono_class_setup_vtable_general): Print generic
6014         arguments of generic types in debugging printf.
6015
6016 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
6017
6018         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
6019
6020         * threads.c (mono_threads_request_thread_dump): New helper function.
6021
6022 2006-01-25  Raja R Harinath  <rharinath@novell.com>
6023
6024         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
6025
6026 2006-01-25  Ankit Jain  <jankit@novell.com>
6027
6028         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
6029         move definition to ..
6030         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
6031         
6032 2006-01-25  Ankit Jain  <jankit@novell.com>
6033             Raja R Harinath  <rharinath@novell.com>
6034
6035         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
6036         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
6037         as necessary.
6038
6039 2006-01-25  Martin Baulig  <martin@ximian.com>
6040
6041         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
6042         `MonoDebuggerThread' into debug-debugger.c.
6043
6044 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
6045
6046         * profiler.c: fix printing of data.
6047
6048 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
6049
6050         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
6051           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
6052
6053 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
6054
6055         * object.c: fix deadlock related to string interning.
6056
6057 2006-01-23  Martin Baulig  <martin@ximian.com>
6058
6059         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
6060
6061         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
6062
6063 2006-01-23  Martin Baulig  <martin@ximian.com>
6064
6065         * mono-debug.h: Moved the prototypes of some functions which are
6066         used by the JIT here from mono-debug-debugger.h.
6067
6068 2006-01-21  Martin Baulig  <martin@ximian.com>
6069
6070         * Makefile.am: Don't install mono-debug-debugger.h.
6071
6072 2006-01-21  Martin Baulig  <martin@ximian.com>
6073
6074         * mono-debug-debugger.h: Enforce the private status of this header
6075         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
6076         Moved some stuff from mono-debugger-jit-wrapper.h here.
6077
6078 2006-01-20  Raja R Harinath  <rharinath@novell.com>
6079
6080         * class.c (mono_class_from_typeref): Add a sanity test to help
6081         catch lack of assembly load/search hooks.
6082
6083 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
6084
6085         * marshal.c (emit_struct_conv): Relax the fields with same offset
6086         check even more. Fixes #77230.
6087
6088 2006-01-18  Martin Baulig  <martin@ximian.com>
6089
6090         * loader.c (find_method_in_class): Added `gboolean is_inflated'
6091         argument; if false, we compare the uninstantiated signatures.
6092         (method_from_memberref): Compare the uninstantiated signatures;
6093         fixes #76417.
6094
6095 2006-01-18  Robert Jordan  <robertj@gmx.net>
6096
6097         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
6098         Clear the weak link. Fixes bug #77170.
6099
6100         * gc.c (mono_gchandle_free):
6101         Reflect *-gc.c changes (tiny optimization).
6102
6103 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
6104
6105         * metadata.c (mono_metadata_signature_dup): Applied patch from
6106         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
6107         Fixes #77288.
6108
6109 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
6110
6111         * marshal.c (emit_struct_conv): Allow fields with the same offset when
6112         marshalling from native to managed code. Fixes #77230.
6113
6114 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6115
6116         * threadpool.c: fix problem (Mac only) when more than one asynchronous
6117         connect. Fixes bug #77020.
6118
6119 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
6120
6121         * class.c: fixed id assignement for nested interfaces (bug #77275).
6122         Added also better info for --print-vtable debugging.
6123
6124 2006-01-12  Martin Baulig  <martin@ximian.com>
6125
6126         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
6127         interfaces on-the-fly; fixes #76625.
6128
6129         * class-internals.h
6130         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
6131         don't need that anymore.
6132
6133 2006-01-12  Miguel de Icaza  <miguel@novell.com>
6134
6135         * socket-io.c
6136         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
6137         To avoid initing the nested_classes when not needed I turned the
6138         PeerCredData as a toplevel internal class, as it has to be shared
6139         anyways. 
6140
6141         Fixes the CASA issue.
6142
6143 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
6144
6145         * domain.c: Accessors for MonoJitInfo
6146
6147         * profiler-private.h: Add jitinfo to the end jit hook
6148
6149         * profiler.[ch]: Define new hooks, called after jitting which give
6150         the MonoJitInfo that was compiled
6151
6152 2006-01-10  Martin Baulig  <martin@ximian.com>
6153
6154         * class.c (mono_class_setup_events): Add support for generic
6155         classes; fixes #76440.
6156
6157 2006-01-06  Raja R Harinath  <rharinath@novell.com>
6158
6159         Fix #77160.
6160         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
6161         on passed-in method.
6162
6163 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
6164
6165         * object.c (mono_runtime_invoke_array): Add Nullable support.
6166
6167         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
6168
6169 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
6170
6171         * file-io.c: Don't consider sockets as directory and avoid an endless
6172         loop. Fix bug #76966.
6173
6174 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
6175
6176         * object.c (mono_nullable_init): New helper function.
6177         (mono_nullable_box): Ditto.
6178
6179         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
6180
6181         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
6182
6183         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
6184         
6185 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
6186
6187         * class.c (mono_class_is_assignable_from): Make T assignable to 
6188         Nullable<T>.
6189
6190 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
6191
6192         * appdomain.c: Bump corlib version to 46.
6193         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
6194         serialization purpose) and changed ves_icall_System_Reflection_
6195         Assembly_get_code_base signature to accept a boolean (to escape, or 
6196         not, the assembly code base).
6197
6198 2005-12-23  Dick Porter  <dick@ximian.com>
6199
6200         * icall.c: 
6201         * threads-types.h: 
6202         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
6203         CreateEvent icall now returns "created" boolean parameter.
6204
6205 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
6206
6207         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
6208         #76967.
6209
6210         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
6211         when attr_klass is an interface. Fixes #77045.
6212
6213 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
6214
6215         * marshal.c (emit_struct_conv): Fix previous patch.
6216         
6217         * marshal.c (emit_struct_conv): Add a check for fields with the same
6218         offset.
6219
6220 2005-12-20  Raja R Harinath  <rharinath@novell.com>
6221
6222         Fix regression in Mono.C5.
6223         * class.c (mono_class_create_generic): If 'klass' is an interface
6224         set up the interface offsets.
6225         (mono_class_is_assignable_from): Don't throw away generic arguments.
6226
6227 2005-12-19  Raja R Harinath  <rharinath@novell.com>
6228
6229         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
6230         type parameters.
6231
6232 2005-12-15  Raja R Harinath  <rharinath@novell.com>
6233
6234         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
6235         dead store.
6236         (do_mono_metadata_parse_generic_class): Don't pass the current
6237         generic context when parsing the type being instantiated: it
6238         cannot use it, anyway.
6239
6240         * loader.c (method_from_memberref): Don't inflate a signature if
6241         it doesn't contain any type parameters.
6242
6243 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
6244
6245         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
6246
6247 2005-12-14  Martin Baulig  <martin@ximian.com>
6248
6249         * class.c
6250         (mono_type_get_name_recurse): Don't return null for type
6251         parameters and open generic classes.
6252         (mono_class_setup_methods): Don't exclude generic instances.
6253         (mono_get_unique_iid): Use different IDs for different
6254         instantiations of the same generic type.
6255         (mono_class_setup_vtable): Only use setup_generic_vtable() for
6256         open generic instances; create a normal vtable for closed generic
6257         instances.
6258         (mono_class_setup_vtable_general): We're now also called for
6259         closed generic instances.
6260
6261         * reflection.c
6262         (mono_reflection_bind_generic_parameters): Correctly use
6263         mono_metadata_lookup_generic_inst() everywhere.
6264
6265 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
6266
6267         * object.c (mono_class_create_runtime_vtable): Call 
6268         mono_class_setup_vtable ().
6269
6270         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
6271         function.
6272         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
6273         #76959.
6274
6275         * loader.c (mono_loader_set_error_type_load): Print the type load
6276         warnings to the console so they are more visible to the user.
6277         (mono_loader_set_error_method_load): Ditto.
6278
6279         * reflection.c (ensure_runtime_vtable): Revert the last change as it
6280         is still broken.
6281         
6282         * reflection.c (ensure_runtime_vtable): Fix build.
6283
6284         * reflection.c (ensure_runtime_vtable): Disable an optimization which
6285         doesn't work in all cases.
6286
6287 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
6288
6289         * object.c (mono_array_new_full): Treat a single dimensional array
6290         with 0 lower bounds as an szarray. Fixes #76973.
6291
6292         * reflection.c (custom_attr_visible): Really fix this.
6293
6294 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
6295
6296         * reflection.c (custom_attr_visible): Allow nested public attributes
6297         as well.
6298
6299         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
6300         interface check.
6301
6302 2005-12-12  Raja R Harinath  <harinath@gmail.com>
6303
6304         * class.c (set_generic_param_owner): Delete.
6305         (mono_class_create_from_typedef): Don't set ->owner field of
6306         generic parameters to "param containers" of enclosing classes.
6307         * reflection.c (mono_reflection_initialize_generic_parameter):
6308         Likewise.
6309
6310 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
6311
6312         * reflection.c (custom_attr_visible): Fix build.
6313
6314 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
6315
6316         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
6317         private attributes.
6318         
6319         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
6320         handling of null parameter defaults.
6321
6322 2005-12-09  Raja R Harinath  <rharinath@novell.com>
6323
6324         * class.c (mono_class_from_generic_parameter): Don't set
6325         klass->generic_container.
6326         (my_mono_class_from_generic_parameter): Likewise.
6327
6328 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
6329
6330         * reflection.c (load_public_key): Fix a warning.
6331         (method_encode_code): Fix unaligned accesses.
6332
6333 2005-12-07  Martin Baulig  <martin@ximian.com>
6334
6335         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
6336
6337         * reflection.c
6338         (write_generic_param_entry): Encode our custom attrs.
6339
6340         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
6341
6342 2005-12-07  Martin Baulig  <martin@ximian.com>
6343
6344         * reflection.c (encode_new_constraint): Removed; we don't use the
6345         `NewConstraintAttribute' anymore.
6346
6347 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
6348
6349         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
6350         not fire a TypeResolve event when Assembly.GetType () is called.
6351
6352 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
6353
6354         Beginning of support for nullable types in the runtime. Parts of
6355         this patch are from Martin.
6356
6357         * appdomain.c (MONO_CORLIB_VERSION): Bump
6358
6359         * domain.c (mono_init_internal): get the nullable type
6360
6361         * class.c (mono_class_is_nullable): New method
6362         (mono_class_get_nullable_param): New mehod
6363         (mono_class_create_generic): In types T? set cast_class to T
6364
6365         * class-internals.h (MonoDefaults): new nullable default class
6366         (mono_class_get_nullable_param, mono_class_get_nullable_param):
6367         new methods.
6368
6369 2005-12-05  Raja R Harinath  <rharinath@novell.com>
6370
6371         * metadata.c (select_container): New.  Refactor code to select the
6372         appropriate GenericContainer given the type of generic parameter
6373         we are looking for.
6374         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
6375         not a MonoGenericContext.  Use select_container.  Update parameters.
6376         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
6377         and MONO_TYPE_MVAR.
6378         (unwrap_arrays): Remove duplicate tests.
6379         (find_generic_param): Rename from 'has_same_context'.  Now walks a
6380         generic instantiated class to find any arguments that are generic
6381         parameters.
6382         (mono_type_create_from_typespec_full): Use find_generic_param to
6383         avoid evicting some generic instantiations from the typespec
6384         cache.
6385
6386 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
6387
6388         * reflection.c: fixed writing of doubles on ARM FPA.
6389
6390 2005-12-02  Robert Jordan  <robertj@gmx.net>
6391
6392         * icall.c: Fixed EventInfo.ReflectedType (#76829).
6393
6394 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6395
6396         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
6397         least on SUSE 10 they are not the same (on debian, they are just the
6398         same thing).
6399
6400 2005-12-01  Raja R Harinath  <rharinath@novell.com>
6401
6402         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
6403         DeclaringType for VARs and MVARs.
6404         * class.c (set_generic_param_owner): Fix initialization of owner
6405         fields.
6406
6407 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
6408
6409         * icall.c: fixed Enum.ToObject() to correctly convert the values.
6410
6411 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6412
6413         * threadpool.c: workaround for a bug that shows up on the Mac:
6414         select()+connect() on a blocking socket is not like it should
6415         be, so we proceed to connect() in that case, wasting the I/O
6416         threadpool thread until connect succeedes. Fixes bug #75436.
6417
6418 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6419
6420         * threadpool.c: fix typo when setting file descriptor states.
6421
6422 2005-11-28  Raja R Harinath  <rharinath@novell.com>
6423
6424         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
6425         * metadata.c (mono_metadata_parse_method_signature_full): Don't
6426         create a temporary signature container.
6427         (mono_metadata_parse_generic_param): Update to changes.
6428         (mono_type_create_from_typespec_full): Update to changes.
6429         * loader.c (method_from_memberref): Don't use a
6430         MonoGenericContainer while parsing a memberref signature.
6431         (method_from_methodspec): Remove dead-store of the 'container'
6432         variable.  It's overwritten before use.
6433
6434         * metadata.c (mono_type_create_from_typespec_full): Make debugging
6435         checks tighter.
6436         (mono_metadata_parse_generic_param): Likewise.
6437         * loader.c (find_method_in_class): Does not need a
6438         MonoGenericContainer.  Use 'mono_method_signature' rather than
6439         'mono_method_signature_full'.
6440         (find_method, mono_get_method_constrained, method_from_memberref):
6441         Update to changes.
6442
6443         * metadata.c (mono_type_create_from_typespec_full): Ensure that
6444         owner-less generic-parameters are never evicted from the typespec
6445         cache.
6446
6447         * loader.c (method_from_memberref): Don't use the current context
6448         when parsing signatures.
6449         (method_from_methodspec, mono_get_method_from_token): Update to changes.
6450
6451         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
6452         side-effects in g_assert.
6453         * loader.c (mono_get_method_from_token): Resolve klass earlier so
6454         that we don't potentially lose information.
6455
6456 2005-11-26  Dick Porter  <dick@ximian.com>
6457
6458         * icall.c:
6459         * threads.c: icalls to implement basic (ie, not named)
6460         System.Threading.Semaphore.
6461
6462 2005-11-24  Dick Porter  <dick@ximian.com>
6463
6464         * process.c
6465         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
6466         Use GetProcessId() if it's available.
6467
6468 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
6469
6470         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
6471
6472 2005-11-23  Raja R Harinath  <rharinath@novell.com>
6473             Ankit Jain  <jankit@novell.com>
6474
6475         * loader.c (mono_get_method_from_token): Initialize 'method' field
6476         of all generic parameters before parsing the signature.  Remove
6477         code that "fixed"-up MVAR references.
6478
6479 2005-11-23  Ankit Jain  <jankit@novell.com>
6480
6481         * metadata.c (mono_metadata_has_generic_params):
6482         (mono_metadata_load_generic_param_constraints):
6483         (mono_metadata_load_generic_params): Move duplicate code ...
6484         (mono_metadata_get_generic_param_row): ... here. Returns the
6485         first row-id in GenericParam table for a given owner (token).
6486         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
6487         prototype.
6488
6489 2005-11-23  Raja R Harinath  <rharinath@novell.com>
6490             Ankit Jain  <jankit@novell.com>
6491
6492         * metadata.c (mono_metadata_class_equal): Pass signature_only when
6493         comparing VARs too.
6494         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
6495         type->data.generic_param only if the type is an MVAR.
6496         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
6497         leak owner-less VARs and MVARs into managed space.
6498
6499 2005-11-21  Martin Baulig  <martin@ximian.com>
6500
6501         * class-internals.h
6502         (MonoMethod): Moved the `generic_container' here from
6503         `MonoMethodNormal' since we now also need it for
6504         `MonoMethodPInvoke';
6505         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
6506         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
6507         an union containing both `MonoMethodNormal' and
6508         `MonoMethodPInvoke'.
6509
6510         * loader.c
6511         (mono_get_method_from_token): Allow implementing generic methods
6512         as interncalls.
6513
6514         * threads.c
6515         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
6516         icall.
6517
6518 2005-11-17  Dick Porter  <dick@ximian.com>
6519
6520         * icall.c: 
6521         * process.h: 
6522         * process.c: Split the Process Start_internal icall into
6523         ShellExecuteEx_internal and CreateProcess_internal, which are
6524         called depending on whether UseShellExecute is true.  Fixes bug
6525         76670.
6526
6527         * appdomain.c (MONO_CORLIB_VERSION): Incremented
6528
6529 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
6530
6531         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
6532         'msize' parameters, use the information in 'mspec' instead.
6533         (emit_object_to_ptr_conv): Ditto.
6534
6535         * marshal.c (emit_struct_conv): Handle explicit layout structs with
6536         fields out of order. Fixes #76733.
6537
6538 2005-11-17  Ankit Jain  <jankit@novell.com>
6539
6540         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
6541
6542 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
6543
6544         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
6545           bug #76575.
6546
6547 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
6548
6549         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
6550         for types with non-auto layout. Fixes #76717.
6551
6552 2005-11-16  Ankit Jain  <jankit@novell.com>
6553
6554         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
6555         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
6556         if generic_context is null.
6557           (mono_metadata_generic_param_equal): param->owner can be null.
6558           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
6559         null.
6560
6561 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
6562
6563         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
6564         the correct value.
6565
6566 2005-11-15  Martin Baulig  <martin@ximian.com>
6567
6568         * object.c (set_value): Use mono_class_from_mono_type() instead of
6569         the hack for generic instances; fixes #76136.
6570
6571 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
6572
6573         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
6574         fields.
6575
6576         * image.c (load_metadata_ptrs): Initialize the new fields.
6577
6578         * reflection.c (create_dynamic_mono_image): Ditto.
6579
6580         * reflection.c (build_compressed_metadata): Use the new fields.
6581
6582         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
6583         icall.
6584
6585         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
6586         icall.
6587         
6588 2005-11-15  Ankit Jain  <jankit@novell.com>
6589             Raja R Harinath  <harinath@gmail.com>
6590
6591         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
6592         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
6593         new per-generic_container cache if the cached MonoType's context matches
6594         the current context.
6595           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
6596         to the expected context.
6597           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
6598
6599 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6600
6601         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
6602         we changed the signature of an icall.
6603         * icall.c: Modify to mono_double_ParseImpl return true/false 
6604         depending on the success, instead of throwing the exception. This will
6605         help us in Double.TryParse methods.
6606         
6607 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
6608
6609         * marshal.c (emit_marshal_object): Throw an exception when
6610         marshalling 'object' instead of crashing. Fixes #76696.
6611
6612 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
6613
6614         * class-internals.h: Add prototype for mono_type_get_full_name ().
6615
6616 2005-11-11  Dick Porter  <dick@ximian.com>
6617
6618         * threads.c (mono_thread_manage): Make sure the main thread has
6619         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
6620
6621 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
6622
6623         * loader.c (mono_loader_set_error_type_load): Log a warning to the
6624         console about the missing type.
6625         (mono_loader_set_error_method_load): Ditto.
6626
6627 2005-11-09  Miguel de Icaza  <miguel@novell.com>
6628
6629         * mono-config.c (mono_get_config_dir): Set the system defaults if
6630         none is specified.
6631
6632         * assembly.c (mono_set_dirs): New API entry point to set the
6633         assembly and the config directory in one call
6634
6635 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
6636
6637         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
6638         the ftnptr was created from a delegate in a domain other than the
6639         current domain. Fixes #75377.
6640
6641         * exception.h exception.c: Add mono_get_exception_not_supported ().
6642
6643 2005-11-08  Martin Baulig  <martin@ximian.com>
6644
6645         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
6646
6647 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
6648
6649         * security-manager.h: Added definitions to deal with strongname key 
6650         pairs bigger (and smaller) than 1024 bits.
6651         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
6652         adjust wrt the public key length being used.
6653
6654 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
6655
6656         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
6657           Windows build (r51396-51397).
6658
6659 2005-11-03  Martin Baulig  <martin@ximian.com>
6660
6661         * class.c (mono_class_setup_vtable_general): Also add generic
6662         methods to the vtable; fixes #76581.
6663
6664 2005-11-01  Miguel de Icaza  <miguel@novell.com>
6665
6666         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
6667         sure that we lookup GetString method from the System.Text.Encoding
6668         class, not the derived class or we get an empty method.
6669
6670         Fixed class #76612.
6671
6672 2005-10-25  Miguel de Icaza  <miguel@novell.com>
6673
6674         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
6675         if it has been previously set (embedders). 
6676
6677         Make mono_set_rootdir available also on Unix.
6678
6679 005-10-24  Robert Jordan  <robertj@gmx.net>
6680
6681         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
6682
6683 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
6684
6685         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
6686         only calls which are made to native code use this flag.
6687
6688         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
6689
6690 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
6691
6692         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
6693         Add support for FieldBuilders.
6694
6695 2005-10-29  Martin Baulig  <martin@ximian.com>
6696
6697         * mono-debug.c
6698         (mono_debug_using_mono_debugger): New public method; returns
6699         whether we're running inside the debugger.
6700
6701 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
6702
6703         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
6704         for Method/Constructor/FieldBuilders.
6705
6706 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
6707
6708         * reflection.c (module_add_cattrs): Save custom attributes for global methods
6709         and fields as well.
6710
6711 2005-10-26  Martin Baulig  <martin@ximian.com>
6712
6713         * mono-debug-debugger.c
6714         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
6715
6716 2005-10-24  Raja R Harinath  <harinath@gmail.com>
6717
6718         * icall.c (base64_to_byte_array): Don't pass an out-of-range
6719         integer to isspace.
6720
6721 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
6722
6723         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
6724         when passing valuetypes byref. Fixes #76502.
6725
6726 2005-10-19  Jackson Harper  <jackson@ximian.com>
6727
6728         * profiler.c: Don't put a . in front of types that are not in a
6729         namespace.
6730
6731 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
6732
6733         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
6734
6735 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
6736
6737         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
6738         #76436.
6739         (mono_marshal_get_ldflda_wrapper): Fix a warning.
6740
6741 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6742
6743         * assembly.c metadata-internals.h icall.c: Define an additional
6744         parameter for mono_assembly_name_parse_full, so we can avoid creating
6745         S.R.AssemblyName.Version when no version info wasn't passed.
6746         
6747 2005-10-09  Miguel de Icaza  <miguel@novell.com>
6748
6749         * class.c (mono_type_get_full_name): Reimplement method that was
6750         removed. 
6751
6752         * image.c: Some docs
6753
6754 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
6755
6756         * profiler.c (output_newobj_profile): Fix printing of Total memory
6757         on x86.
6758
6759 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
6760
6761         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
6762
6763 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
6764
6765         * threads.c: remove debug output.
6766
6767 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
6768
6769         * threads.c (mono_thread_manage): Fix crashes if more than 64
6770         threads need to be aborted. Hopefully fixes #75899.
6771
6772         * assembly.c (mono_stringify_assembly_name): New helper function.
6773
6774         * class.c: Use mono_stringify_assembly_name instead of the similar
6775         static function.
6776
6777         * assembly.h assembly.c: Add support for calling a postload search 
6778         hook if an assembly cannot be loaded.
6779
6780         * appdomain.c: Register new search hooks which call the AssemblyResolve
6781         events in AppDomain. Fixes #75231
6782
6783 2005-10-07  Martin Baulig  <martin@ximian.com>
6784
6785         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
6786         methods without debug info.
6787
6788 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
6789
6790         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
6791         wrappers.
6792
6793 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6794
6795         * file-io.c: now that we return symlinks, use lstat and, when the file
6796         is a symbolic link, stat, to get the file attributes. Also avoid the
6797         conversion to/from utf16/external.
6798
6799 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
6800
6801         * class.c (mono_class_layout_fields): Compute klass->has_references
6802         correctly if an embedded valuetype is not yet initialized. Fixes
6803         #76331.
6804
6805 2005-10-04  Martin Baulig  <martin@ximian.com>
6806
6807         * metadata.c
6808         (mono_metadata_load_generic_param_constraints): New public
6809         function; splitted the constraints loading out from
6810         mono_metadata_load_generic_params().
6811
6812         * class.c (mono_class_create_from_typedef): Call
6813         mono_metadata_load_generic_param_constraints() after setting up
6814         the type and creating our parent; fixes #75329.
6815
6816 2005-10-04  Martin Baulig  <martin@ximian.com>
6817
6818         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
6819         non-dynamic parent classes.
6820
6821 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
6822
6823         * file-io.c : win32 build fix (ETXTBSY seems not found).
6824
6825 2005-10-04  Martin Baulig  <martin@ximian.com>
6826
6827         * reflection.c
6828         (mono_image_get_methodspec_token): Make the cache actually work;
6829         fixes #75974.
6830
6831 2005-10-04  Martin Baulig  <martin@ximian.com>
6832
6833         * class.c (mono_class_name_from_token): Removed the unneccessary
6834         `MonoGenericContext *' argument.
6835
6836 2005-10-04  Martin Baulig  <martin@ximian.com>
6837
6838         * loader.c
6839         (method_from_methodspec): Make the caching work again; fixes the
6840         performance regression from #76262.
6841
6842 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6843
6844         * file-io.c:
6845         * file-io.h:
6846         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
6847         GetFileSystemEntries that performs the same work but without going
6848         into io-layer, locking, etc.
6849
6850 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
6851
6852         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
6853         ThreadState_Stopped as well. Fixes #76047.
6854
6855 2005-09-29  Martin Baulig  <martin@ximian.com>
6856
6857         * class.c
6858         (inflate_generic_context): If the new context has a `gmethod', set
6859         its `container' that that gmethod's `container'.
6860
6861         * metadata.c
6862         (mono_metadata_parse_generic_param): Simplify things;
6863         `generic_container = generic_context->container;' is just fine.
6864
6865         * loader.c (method_from_methodspec): Code cleanups.
6866
6867 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
6868
6869         * decimal.c: fix warning (and let gcc generate correct
6870         code on ARM with optimizations).
6871
6872 2005-09-28  Martin Baulig  <martin@ximian.com>
6873
6874         * loader.c
6875         (method_from_memberref): Added `MonoGenericContext *class_context'
6876         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
6877         (method_from_methodspec): If we're a memberref, use the enclosing
6878         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
6879
6880 2005-09-28  Martin Baulig  <martin@ximian.com>
6881
6882         * object.c (mono_runtime_invoke_array): Added support for
6883         MONO_TYPE_GENERICINST; fixes #75917.
6884
6885 2005-09-27  Martin Baulig  <martin@ximian.com>
6886
6887         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
6888         `k->byval_arg.type' to determine the actual type.
6889
6890         * loader.c (method_from_methodspec): Removed some hacks.
6891
6892 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
6893
6894         * class-internals.h (mono_field_is_deleted): Do the test for
6895         rtspecialname before we check the actual name of the field. This
6896         prevents us from dereferencing a pointer into the string table,
6897         saving us from accessing a few pages
6898
6899         * *.c: Replace the use of {Enter,Leave}CriticalSection with
6900         macros. This will allow a deadlock debugger to easily be plugged
6901         in.
6902
6903 2005-09-27  Martin Baulig  <martin@ximian.com>
6904
6905         * loader.c (method_from_methodspec): Create a "signature"
6906         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
6907
6908 2005-09-27  Martin Baulig  <martin@ximian.com>
6909
6910         * class.c
6911         (inflate_generic_class): Correctly set the new context's
6912         container.
6913
6914         * loader.c
6915         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
6916         instead of a `MonoGenericContext *'.
6917         (mono_method_signature_full): Take a `MonoGenericContainer *'
6918         instead of a `MonoGenericContext *'.
6919
6920         * metadata.c
6921         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
6922         instead of a `MonoGenericContext *'.
6923         (mono_metadata_parse_method_signature_full): Likewise.
6924
6925 2005-09-26  Martin Baulig  <martin@ximian.com>
6926
6927         * class.c
6928         (mono_class_from_generic_parameter): Set `klass->generic_container'
6929         (mono_class_from_generic_parameter): Likewise.
6930         (mono_bounded_array_class_get): We inherit the generic container
6931         from the element class.
6932
6933         * loader.c
6934         (find_method, find_method_in_class): Take a `MonoGenericContext *'
6935         argument rather than computing it here.
6936         (method_from_memberref): Correctly set the generic context before
6937         parsing the signature.  Fixes #75681.
6938
6939 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
6940
6941         * object.c (mono_class_has_special_static_fields): Fix warnings.
6942
6943 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6944
6945         * assembly.c: Add parse_public_key function, to
6946         par the public keys. Also added mono_assembly_name_parse_full,
6947         to define it the parsed key should be freed or not.
6948         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
6949         to parse a long format assembly name.
6950         * metadata-internals.h: Keep mono_assembly_name_parse_full as
6951         private, since calling it to preserve the key requires
6952         freeing it manually.
6953         
6954 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
6955
6956         * locales.c : removed HAVE_ICU part.
6957
6958 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
6959
6960         * object.c (mono_class_create_runtime_vtable): Avoid calling 
6961         field_is_special_static if the klass has no special static fields.
6962
6963         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
6964         (MonoCachedClassInfo): Likewise.
6965
6966         * object.c (mono_class_has_special_static_fields): New helper function.
6967
6968 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6969
6970         * class.c (mono_class_create_from_typedef): Don't call 
6971         interfaces_from_typedef_full for enums.
6972         (mono_class_create_from_typedef): Compute the base types of enums directly
6973         without calling mono_class_setup_fields ().
6974         (mono_class_find_enum_basetype): New helper function.
6975
6976         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
6977         one place inside the string heap.
6978         
6979 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
6980
6981         * class.c: locking fixes, code cleanups, some docs added.
6982         Allocate some data structures in the image mempool.
6983
6984 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6985
6986         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
6987         the example code.
6988         
6989 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
6990
6991         * class-internals.h, class.c, reflection.c: reduce memory taken by
6992         MonoClass.
6993
6994 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
6995
6996         * metadata.c, metadata.h, loader.h: documentation updates, code and
6997         API cleanups.
6998
6999 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
7000
7001         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
7002         the example code.
7003
7004         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
7005         page faults caused by the runtime while reading metadata.
7006
7007 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7008
7009         * socket-io.c: the field names were changed 3 months ago and no one
7010         realized until bug #76077 got filed!
7011
7012 2005-09-20  Martin Baulig  <martin@ximian.com>
7013
7014         * icall.c (assembly_icalls): Removed some unused debugger icalls.
7015
7016 2005-09-20  Martin Baulig  <martin@ximian.com>
7017
7018         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
7019         write the rank into the class entry.
7020
7021 2005-09-20  Martin Baulig  <martin@ximian.com>
7022
7023         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
7024
7025 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
7026
7027         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7028
7029         * icall.c (custom_attrs_defined_internal): New icall.
7030
7031         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
7032         function.
7033         (mono_custom_attrs_construct_by_type): New helper function.
7034
7035 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
7036
7037         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
7038         terminate the resulting string. Fixes #76123.
7039
7040 2005-09-16  Martin Baulig  <martin@ximian.com>
7041
7042         * mono-debug.c
7043         (mono_debug_add_method): Ignore inflated methods for the moment.
7044
7045 2005-09-14  Martin Baulig  <martin@ximian.com>
7046
7047         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
7048
7049 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
7050
7051         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
7052         return a success/failure indication.
7053         (mono_metadata_interfaces_from_typedef_full): Ditto.
7054         (get_constraints): Ditto.
7055
7056 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
7057
7058         * marshal.c (emit_marshal_array): Fix handling of null arrays.
7059         
7060         * marshal.c (emit_marshal_array): Add support for returning string
7061         arrays from delegates. Fixes #76063.
7062
7063         * marshal.c: Use the emit_ldloc/stloc macros where possible.
7064
7065 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
7066
7067         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
7068         icall.
7069
7070 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
7071
7072         * reflection.c icall.c: Fix after mono_get_exception_type_load
7073         signature change.
7074
7075         * assembly.c (mono_assembly_get_assemblyref): New helper function.
7076         (mono_assembly_load_reference): Use the new helper.
7077
7078         * class-internals.h (MonoLoaderError): New structure containing 
7079         information about type loading errors.
7080
7081         * class-internals.h loader.c: Add APIs to store per-thread loader
7082         error information.
7083
7084         * loader.c class.c: Set the loader error if needed.
7085
7086         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
7087
7088 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
7089
7090         * decimal.c: fixed to handle the broken ARM fp format.
7091
7092 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
7093
7094         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
7095         broken.
7096
7097 2005-09-06  Martin Baulig  <martin@ximian.com>
7098
7099         * domain.c (supported_runtimes): Added v2.0.50727.
7100
7101 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
7102
7103         * culture-info.h: reduce the size of some structures.
7104
7105 2005-09-05  Martin Baulig  <martin@ximian.com>
7106
7107         Reflect latest API changes in the August CTP.
7108
7109         * icall.c
7110         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
7111         ("MonoType.HasGenericArguments"): Removed.
7112         ("MonoMethod.BindGenericParameters"): Renamed to
7113         "MakeGenericMethod".
7114         ("MethodBuilder.BindGenericParameters"): Renamed to
7115         "MakeGenericMethod".    
7116
7117 2005-09-05  Martin Baulig  <martin@ximian.com>
7118
7119         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
7120
7121 2005-09-05  Martin Baulig  <martin@ximian.com>
7122
7123         Applying a patch from Michal Moskal <malekith@nemerle.org>.
7124
7125         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
7126         generic_container is non-NULL.
7127
7128 2005-09-05  Martin Baulig  <martin@ximian.com>
7129
7130         Applying a patch from Michal Moskal <malekith@nemerle.org>.
7131
7132         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
7133
7134 2005-08-29  Michal Moskal  <malekith@nemerle.org>
7135
7136         * reflection.c (encode_locals,
7137         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
7138         for large generic types.
7139
7140 2005-09-05  Martin Baulig  <martin@ximian.com>
7141
7142         Applying a patch from Michal Moskal <malekith@nemerle.org>.
7143
7144         * class.c (mono_dup_array_type): New public method.
7145         (mono_metadata_signature_deep_dup): New public method.
7146         (dup_type): Correctly duplicate array and function types.
7147
7148 2005-09-05  Martin Baulig  <martin@ximian.com>
7149
7150         Applying a patch from Michal Moskal <malekith@nemerle.org>.
7151
7152         * reflection.c (get_default_param_value_blobs): Handle generic types
7153         and generic methods.
7154
7155 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
7156
7157         * class.c: Fixed error reporting (method/class were inversed) for 
7158         inheritance demands.
7159         * security-manager.c|h: Added the AppDomain when calling the managed
7160         System.Security.SecurityManager.InheritanceDemand method.
7161
7162 2005-09-01  Raja R Harinath  <rharinath@novell.com>
7163
7164         * reflection.c (encode_marshal_blob): 'marshaltype' and
7165         'marshaltyperef' are alternate sources for the custom marshaler
7166         name.
7167
7168 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
7169
7170         * class.c: fix creation of array classes with rank == 1
7171         (patch by Ankit Jain <jankit@novell.com>).
7172
7173 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
7174
7175         * object.c: fix check for creating the bound data for arrays vs
7176         szarrays.
7177
7178 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7179
7180         * object.c: configuration file name is now based on the executable name,
7181         not the image name. Fixes bug #75931.
7182
7183 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
7184
7185         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
7186         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
7187
7188 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
7189
7190         * rand.c: Use wincrypt.h instead of WinCrypt.h.
7191
7192 2005-08-24  Ankit Jain  <jankit@novell.com>
7193             Raja R Harinath  <rharinath@novell.com>
7194
7195         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
7196           called by it recursively.
7197           (mono_class_init): Remove special case in pending_init handling, since it's
7198           superseded by the fix to mono_class_from_typeref.
7199
7200 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
7201
7202         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
7203         BROKEN_THREAD_START stuff.
7204
7205 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
7206
7207         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
7208         trampoline.
7209
7210         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
7211         
7212         * object.c (mono_delegate_ctor): Replace the original function address with
7213         a delegate trampoline.
7214
7215 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
7216
7217         * icall.c: add boolean argument to base64_to_byte_array and 
7218         InternalFromBase64String to control whether a whitespace-only string
7219         is allowed (or should casue a FormatException to be thrown). We need
7220         this as the behavior has changed between MS.NET 1.x and 2.0, and we
7221         to match the MS behaviour in both profiles.
7222         * appdomain.c: Bump corlib version.
7223
7224 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7225
7226         This patch implements a big portion of publisher policy
7227         support, used to bind assembly versions and redirect
7228         one assembly from version A to version B.
7229
7230         * assembly.c:
7231         New GSList loaded_assembly_bindings, for storing the cached
7232         assembly bindings.
7233         (assembly_binding_maps_name): New static function for checking if a 
7234         assembly binding information maps an assembly name.
7235         (mono_assembly_binding_info_free): New function for freeing
7236         assembly binding information resources.
7237         (get_publisher_policy_info): New static function for retrieving 
7238         assembly binding information from a MonoImage.
7239         (compare_versions): New static function for comparing an assembly
7240         binding information data and the version of an assembly name.
7241         (check_policy_versions): New static function for checking if an
7242         assembly binding info mapping an assembly name is valid for it.
7243         (mono_assembly_load_publisher_policy): New static function for
7244         loading the 'policy.major.minor.MyAssembly' image for an assembly
7245         with an assembly name 'aname'.
7246         (mono_assembly_bind_version): New static function for updating
7247         assembly redirection.
7248         (mono_assembly_apply_binding): New static function for applying
7249         assembly binding.
7250         (search_binding_loaded): New static function for searching 
7251         loaded assembly binding infos in the cache domain.
7252         (mono_assembly_load_full): Don't apply assembly binding for
7253         reflection only assemblies.
7254
7255         * metadata-internals.h: Add MonoAssemblyBindingInfo,
7256         which contains information about assembly binding. Also
7257         declare signature for mono_config_parse_publisher_policy ()
7258         function, used to retrieve pub policy info.
7259         
7260         * mono-config.c:
7261         (publisher_policy_start): New static function used to parse publisher 
7262         policy config files.
7263         (publisher_policy_parser): New static MonoParseHandler containing 
7264         the functions used when parsing config files.
7265         (mono_config_parse_publisher_policy): New function for parsing
7266         publisher policy files.
7267         
7268 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
7269
7270         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
7271
7272         * marshal.c (mono_delegate_free_ftnptr): Ditto.
7273
7274         * object.c (mono_get_addr_from_ftnptr): New helper function.
7275
7276         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
7277
7278         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7279
7280 2005-08-19  Dick Porter  <dick@ximian.com>
7281
7282         * threads.c, threads.h, appdomain.c, appdomain.h,
7283         profiler-private.h, monitor.c, object.c, object-internals.h,
7284         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
7285         store the thread ID, so it can hold a 64 bit value if needed.
7286
7287 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
7288
7289         * reflection.c (mono_reflection_create_dynamic_method): Store the
7290         handle class into the method references as well so ldtoken works in
7291         dynamic methods.
7292
7293         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
7294         types.
7295
7296 2005-08-19  Ankit Jain <jankit@novell.com>
7297
7298         Fix #75847.
7299         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
7300           here rather than using the method signature of a arbitrary function
7301           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
7302           two arguments.
7303           Hack done with Harinath.
7304
7305 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7306
7307         * threadpool.c: disable printing stack traces when we get a exception
7308         in a threadpool thread. I need to do more testing to figure out which
7309         cases actually print this. Fixes bug #75828.
7310
7311 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7312
7313         * icall.c: there might be ignored whitespace after the last '='. This
7314         fixes length computation and bug #75840.
7315
7316 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
7317
7318         * assembly.c (mono_assembly_load_full): Consider .exe extension as
7319         well. Fixes #75809.
7320
7321         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
7322         #75784.
7323         
7324         * reflection.c (create_custom_attr_data): Ditto.
7325
7326 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
7327
7328         * locales.c, culture-info.h : removed RegionLCIDMap.
7329         * culture-info-tables.h : regenerated.
7330
7331 2005-08-16  Martin Baulig  <martin@ximian.com>
7332
7333         * class.c (mono_type_get_name_recurse): Small fix.
7334
7335 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
7336
7337         * locales.c : indentation fixie.
7338
7339 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
7340
7341         * object-internals.h,
7342           locales.h,
7343           locales.c,
7344           culture-info.h,
7345           icall.c : added RegionInfo table support.
7346         * culture-info-table.h : regenerated for region support.
7347
7348 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
7349
7350         * reflection.c (resolve_object): handle all kinds of MonoMethod
7351         including generic ones
7352
7353 2005-08-12  Ankit Jain <jankit@novell.com>
7354
7355         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
7356           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
7357
7358 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
7359
7360         * process.c: Don't close a thread handle when it's NULL. This is a
7361         workaround for bug #75733.
7362
7363 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
7364
7365         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
7366
7367 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
7368
7369         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
7370
7371 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7372
7373         * threadpool.c: if a work item in the thread pool has a callback that
7374         catches a exception, don't propagate it after invoking the callback.
7375         Fixes bug #75336.
7376
7377 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
7378
7379         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
7380
7381         * class-internals.h (MonoCachedClassInfo): Add some new fields.
7382
7383         * class.c (mono_class_init): Load field info lazily in the AOT case.    
7384
7385         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
7386
7387 2005-08-03  Ankit Jain  <jankit@novell.com>
7388
7389         Fix #75683.
7390         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
7391           PInvoke calling convention is 0.
7392
7393 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
7394
7395         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
7396         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
7397
7398 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
7399
7400         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
7401         to handle threads not started by the GC (patch by Michael Meeks
7402         <michael.meeks@novell.com>).
7403
7404 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
7405
7406         * reflection.c: Make buffer used in emitting types larger for some
7407         big generic types (patch by Michal Moskal).
7408
7409 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
7410
7411         * mono-debug.c: Fix some (not all) alignment problems.
7412
7413 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7414
7415         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
7416         Invoke mono_image_load_from_data_full passing the refonly
7417         parameter.
7418
7419         * assembly.c
7420         (mono_assembly_open_from_bundle): Add the refonly argument, 
7421         in order to pass it to other methods it calls to.
7422         (do_mono_assembly_open): Add the refonly argument, in order 
7423         to pass it to other methods it calls to.
7424         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
7425         the refonly parameter to it.
7426
7427         * image.c: Add loaded_images_refonly_hash and
7428         loaded_images_refonly_guid_hash to cache the reflection
7429         only loaded images.
7430         (mono_images_init): Initialize the hash tables used for
7431         caching the reflection only images.
7432         (load_modules): Invoke mono_image_open_full passing the refonly
7433         parameter to load the modules the correct way.
7434         (build_guid_table): Add the refonly argument, to re-build the 
7435         correct hash table.
7436         (do_mono_image_open): Added the refonly argument, in order to
7437         define it for the loaded image.
7438         (mono_image_loaded_full): New function, which receives an
7439         additional parameter to look for the image in the refonly or
7440         non-refonly section.
7441         (mono_image_loaded): Updated, using mono_image_loaded_full.
7442         (mono_image_loaded_by_guid_full): The same case that happens
7443         with mono_image_loaded_full.
7444         (mono_image_loaded_by_guid): Likewise.
7445         (register_image): Use the ref_only variable inside MonoImage
7446         to decide in which hash table store the current image.
7447         (mono_image_open_from_data_full): Rename
7448         mono_image_open_from_data to mono_image_open_from_data_full,
7449         adding the refonly argument, to define the ref_only variable 
7450         inside MonoImage.
7451         (mono_image_open_from_data): Return 
7452         mono_image_open_from_data_full.
7453         (mono_image_open_full): Rename mono_image_open to
7454         mono_image_open_full, receiving the new refonly argument,
7455         to pass it to inner methods.
7456         (mono_pe_file_open): Update this function, to open
7457         a MonoImage as a non-refonly image.
7458         (mono_image_close): Use the refonly variable inside
7459         MonoImage to remove the image from the correct caches.
7460
7461         * image.h: Add the signatures of mono_image_open_full,
7462         mono_image_open_from_data_full, mono_image_loaded_full,
7463         mono_image_loaded_by_guid_full.
7464
7465         * metadata-internals.h: Add the ref_only field to 
7466         MonoImage.
7467         
7468 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7469
7470         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
7471         Fix the last behavior, which used to load the assemblies and
7472         extract MonoReflectionAssemblyName information, instead of
7473         extract it from the metadata tables. Needed for Reflection
7474         Only assemblies.
7475         
7476 2005-07-29  Martin Baulig  <martin@ximian.com>
7477
7478         * mono-debug-debugger.c
7479         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
7480         not initialized.
7481
7482         * mono-debug.c
7483         (mono_debug_address_from_il_offset): Check whether we have
7484         debugging support before attempting to take the lock.
7485         (mono_debug_source_location_from_address): Likewise.
7486         (mono_debug_source_location_from_il_offset): Likewise.
7487         (mono_debug_il_offset_from_address): Likewise.
7488         (mono_debug_address_from_il_offset): Likewise.
7489
7490 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
7491
7492         * class.c (mono_class_from_name_case): Add support for dynamic images.
7493         Fixes #75650.
7494
7495         * object.c (mono_class_compute_gc_descriptor): Add a workaround
7496         for #75479.
7497
7498 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
7499         
7500         * reflection.c (mono_method_get_object): Fix warning.
7501
7502 2005-07-28  Martin Baulig  <martin@ximian.com>
7503
7504         * mono-debug.c
7505         (mono_debug_add_wrapper): Also write the wrapper type.
7506
7507 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
7508
7509         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
7510         
7511         * class.c (mono_class_init): Avoid reading nested classes if the AOT
7512         data indicates the class has none.
7513
7514 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
7515
7516         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
7517         loader lock with the debugger lock. Prevents deadlocks for beagle.
7518
7519         Beagle can now run on an smp box for a weekend without any
7520         issues. Woohoo!
7521
7522 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
7523
7524         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
7525         in a module. Fixes #75629.
7526
7527 2005-07-26  Martin Baulig  <martin@ximian.com>
7528
7529         * mono-debug.c (mono_debug_add_wrapper): New static method.
7530         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
7531         interncall or a wrapper.
7532
7533         * mono-debug.h (MonoDebugWrapperData): New public typedef.
7534         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
7535         (MONO_DEBUGGER_VERSION): Bump to 51.
7536
7537         * mono-debug-debugger.c
7538         (mono_debugger_add_type): Removed this empty function.
7539         (mono_debugger_add_method): Likewise.
7540
7541 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
7542
7543         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
7544         before accessing method->slot.
7545
7546 2005-07-21  Jb Evain  <jbevain@gmail.com>
7547
7548         * reflection.c (method_encode_clauses/class): Handle filters clauses.
7549         Fixes #75010.
7550
7551 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
7552
7553         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
7554         #75587.
7555
7556 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
7557
7558         * image.h image.c: Add mono_image_get_guid () API function.
7559
7560 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
7561
7562         There were issues when multiple threads tried to load
7563         assemblies. A deadlock was created between assemblies_mutex and
7564         mono_domain_assemblies_lock. This fixes the issue by making the
7565         assembly ref counting be lock free. See bug 75586.
7566         
7567         * image.c (mono_image_close): The add ref function here was using
7568         Interlocked operations while the unref was using a mutex and a
7569         --. I don't think this was ever a bug that would be exposed in a
7570         non-pendantic way (ie, by an embedder doing a ref on one thread
7571         and an unref on another), but for the sake of correctness, this is
7572         now Interlocked.
7573
7574         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
7575         (mono_assembly_load_reference): Call mono_assembly_addref rather
7576         than touching the refcount ourselves.
7577         (mono_assembly_close): Use InterlockedDecrement to unref the
7578         assembly. Don't acquire the lock unless it is actually needed.
7579
7580 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
7581
7582         * class.c (mono_class_layout_fields): Fix calculation of has_references
7583         for generic types.
7584
7585 2005-07-12  Martin Baulig  <martin@ximian.com>
7586
7587         Applying a patch from Michal Moskal <malekith@nemerle.org>.
7588
7589         * metadata.c
7590         (mono_type_hash): Provide better hashing for generic instances.
7591         (mono_generic_inst_hash): Improve hashing.
7592         (mono_generic_class_hash): Likewise.
7593
7594         * reflection.c (mymono_metadata_type_hash): Improve hashing for
7595         generic instances.
7596
7597 2005-07-12  Martin Baulig  <martin@ximian.com>
7598
7599         * reflection.c (mono_reflection_create_runtime_class): Remove the
7600         hack for generic type definitions and non-`Run' assemblies.
7601         (mono_reflection_bind_generic_parameters): Also use
7602         `klass->wastypebuilder' to check for TypeBuilders.
7603
7604 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
7605
7606         * class.c (mono_class_layout_fields): Fix calculation of has_references
7607         for generic types.
7608
7609         * class.c (inflate_generic_class): Fix a leak.
7610         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
7611         for generic types.
7612
7613 2005-07-11  Martin Baulig  <martin@ximian.com>
7614
7615         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
7616         on error.
7617
7618 2005-07-11  Martin Baulig  <martin@ximian.com>
7619
7620         * loader.c (find_method): Also lookup in
7621         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
7622
7623 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
7624
7625         * appdomain.c (mono_domain_unload): Don't free the error message
7626         before passing it to mono_get_exception_...
7627
7628         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
7629         
7630 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
7631
7632         * threads.c: try to better guess an available RT signal (bug #75387).
7633
7634 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
7635
7636         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
7637         and CACHE_OBJECT.
7638
7639 2005-07-07  Martin Baulig  <martin@ximian.com>
7640
7641         * class.c (mono_type_get_name_full): Return NULL for
7642         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
7643         fixes #75408.
7644
7645 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
7646
7647         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
7648         exit the appdomain as well being aborted.
7649
7650         * threadpool.c: Create all threadpool threads inside the root appdomain, and
7651         change back to the root domain after calling managed code. This enables
7652         appdomains using threadpools to be unloaded.
7653
7654 2005-07-07  Martin Baulig  <martin@ximian.com>
7655
7656         * class-internals.h
7657         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
7658         into `MonoDynamicGenericClass' since we only need it for dynamic
7659         types.
7660
7661         * reflection.c (mono_class_bind_generic_parameters): We don't need
7662         to compute the `parent' here.
7663
7664 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
7665
7666         * culture-info-table.h : regenerated.
7667
7668 2005-07-06  Martin Baulig  <martin@ximian.com>
7669
7670         * icall.c
7671         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
7672
7673         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
7674
7675 2005-07-06  Martin Baulig  <martin@ximian.com>
7676
7677         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
7678         we're doing a signature-only comparision; fixes #74945.
7679
7680 2005-07-06  Martin Baulig  <martin@ximian.com>
7681
7682         * class-internals.h (MonoGenericClass): Moved some things out into
7683         a new `MonoInflatedGenericClass' type.  
7684         (MonoInflatedGenericClass): New type; the `klass' of a
7685         `MonoGenericClass' is now computed lazyly in
7686         mono_get_inflated_generic_class().      
7687
7688         * class.c (mono_get_inflated_generic_class): New public function.
7689         (mono_class_inflate_generic_method): Removed the unused
7690         `MonoClass *' argument.
7691         (setup_generic_vtable): Don't call mono_get_inflated_method() on
7692         all the methods.
7693         (mono_class_create_generic): Make this static and merge it with
7694         mono_class_create_generic_2(); we're now called automatically from
7695         mono_get_inflated_generic_class().
7696
7697         * loader.c (mono_method_signature): Call
7698         mono_get_inflated_method() here.
7699
7700 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
7701
7702         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
7703         type of fields with RVA.
7704
7705         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
7706         for this pseudo class.
7707         (my_mono_class_from_generic_parameter): Likewise.
7708         (mono_class_init): Allow interfaces to have cctors.
7709
7710 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
7711
7712         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
7713         lazily for AOT methods.
7714
7715 2005-07-05  Martin Baulig  <martin@ximian.com>
7716
7717         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
7718         returns FALSE for a successful match, not TRUE.
7719
7720 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
7721
7722         * loader.c (mono_method_get_index): Optimize this a bit.
7723
7724 2005-07-04  Martin Baulig  <martin@ximian.com>
7725
7726         * class.c
7727         (class_compute_field_layout): Move the check for generic type
7728         definitions into mono_class_layout_fields().  Fixes #74684.
7729         (mono_class_from_generic_parameter): Correctly compute
7730         `klass->parent'; fixes #75457.
7731
7732         * reflection.c (register_assembly, register_module): Make sure
7733         `domain->rejobject_hash' is already created.
7734
7735 2005-07-02  Martin Baulig  <martin@ximian.com>
7736
7737         * class-internals.h
7738         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
7739         `MonoDynamicGenericClass'.      
7740
7741 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
7742
7743         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
7744         returned by a field getter is null, since null is a valid value.
7745
7746 2005-07-01  Martin Baulig  <martin@ximian.com>
7747
7748         * reflection.c (mono_reflection_generic_class_initialize): Update
7749         the `dgclass->fields [i].parent' to the correct class.
7750         (mono_image_get_fieldref_token): Use the declaring type, not the
7751         reflected type.
7752
7753 2005-07-01  Martin Baulig  <martin@ximian.com>
7754
7755         * loader.c (find_method): Also look in the interfaces; fixes #75429.
7756
7757 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
7758
7759         * threads.c (thread_cleanup): assert that thread != NULL
7760         (wait_for_tids_or_state_change): We were using the wrong variable
7761         when accessing wait->threads. `i' was always out of the bounds of
7762         the array.
7763
7764 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7765
7766         * loader.c: map user32 and kernel32 to libMonoSupportW
7767
7768 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
7769
7770         * appdomain.c (unload_thread_main): Mark this as WINAPI.
7771
7772 2005-06-28  Martin Baulig  <martin@ximian.com>
7773
7774         * loader.c (method_from_methodspec): Fix #75334.
7775
7776 2005-06-28  Martin Baulig  <martin@ximian.com>
7777
7778         Fix #74953 - Arrays now implement the generic IList<T> interface
7779         on the 2.0 platform.
7780
7781         * class-internals.h (MonoDefaults): Added `generic_array_class'.
7782
7783         * reflection.c (mono_class_bind_generic_parameters): New public
7784         function; similar to mono_reflection_bind_generic_parameters(),
7785         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
7786
7787         * domain.c (mono_init_internal): Try to initialize.
7788         `mono_defaults.generic_array_class' here; this'll only succeed if
7789         we're using the 2.0 corlib.
7790
7791         * icall.c
7792         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
7793         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
7794         (mono_lookup_internal_call): Added support for nested classes.
7795
7796         * loader.c
7797         (mono_get_method_from_token): Set `result->signature->pinvoke' if
7798         we're an interncall and have generic arguments.
7799
7800         * class.c
7801         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
7802         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
7803         instance of System.Array.InternalArray<T> for arrays, so they
7804         implement the generic IList<T> interface.
7805
7806 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
7807
7808         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
7809         (chastamar@yahoo.com). Fixes #75374.    
7810
7811 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
7812
7813         * culture-info-table.h: regenerated.
7814
7815 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7816
7817         * icall.c: handle spaces correctly for base64 strings.
7818
7819 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
7820
7821         * *.c: Kill some warnings.
7822
7823 2005-06-23  Duncan Mak  <duncan@novell.com>
7824
7825         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
7826         that this builds on Solaris 10 (x86).
7827
7828 2005-06-23  Martin Baulig  <martin@ximian.com>
7829
7830         * class.c
7831         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
7832         generic type definitions.
7833
7834 2005-06-23  Martin Baulig  <martin@ximian.com>
7835
7836         Fix #75331.
7837
7838         * metadata.c (mono_class_get_overrides): Renamed to
7839         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
7840         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
7841         pass it to mono_get_method_full().
7842
7843 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
7844
7845         * reflection.c (mono_reflection_create_runtime_class): take the
7846         mono_domain_lock in this method. Prevents deadlocks
7847
7848 2005-06-22  Martin Baulig  <martin@ximian.com>
7849
7850         * loader.c (method_from_methodspec): Fix #75330.
7851
7852 2005-06-22  Martin Baulig  <martin@ximian.com>
7853
7854         * reflection.c (type_get_qualified_name): Use
7855         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
7856         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
7857         argument; use it if we don't have an assembly name.
7858
7859 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
7860
7861         * object.c: In mono_message_init, set "copy out" flag for in
7862         parameters with the [Out] flag.
7863
7864 2005-06-21  Martin Baulig  <martin@ximian.com>
7865
7866         * class.c
7867         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
7868         and MONO_TYPE_PTR.
7869
7870 2005-06-21  Martin Baulig  <martin@ximian.com>
7871
7872         * class.c (mono_class_init): Don't initialize `class->fields' for
7873         generic instances since they're initialized again in
7874         compute_field_layout(). 
7875         (compute_field_layout): Set the field's `generic_info' here; fix
7876         #75320. 
7877
7878 2005-06-21  Martin Baulig  <martin@ximian.com>
7879
7880         * class-internals.h
7881         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
7882
7883         * metadata.c (mono_metadata_generic_method_equal): Also
7884         distinguish the `generic_class'; fixes #75334.
7885
7886 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7887
7888         * domain.c:
7889         * appdomain.c:
7890         * domain-internals.h:
7891         * reflection.c: 'domain_assemblies' field is now protected by its own
7892         lock. Don't call into managed code to run the AssemblyLoad event if we
7893         now there are no registered delegates for it.
7894
7895 2005-06-20  Martin Baulig  <martin@ximian.com>
7896
7897         * class.c (mono_class_is_assignable_from): Use a custom version of
7898         mono_class_has_parent() to make things work for generic instances;
7899         fix #75300.
7900
7901 2005-06-20  Martin Baulig  <martin@ximian.com>
7902
7903         * loader.c (method_from_methodspec): Apply a patch from
7904         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
7905
7906 2005-06-20  Martin Baulig  <martin@ximian.com>
7907
7908         * class.c (mono_class_init): Reverted Zoltan's last change; it
7909         breaks generics.
7910
7911 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
7912
7913         * threads.c (wait_for_tids_or_state_change): Add missing locking.
7914
7915 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7916
7917         * socket-io.c: fix the index in the socket array for writable/error
7918         sockets. Fixes bug #75306.
7919
7920 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
7921
7922         * class.c (mono_class_init): Allow interfaces to have static ctors.
7923
7924 2005-06-17  Martin Baulig  <martin@ximian.com>
7925
7926         * loader.c (method_from_methodspec): Use `context->container' when
7927         parsing the `gmethod->inst'.
7928
7929 2005-06-17  Martin Baulig  <martin@ximian.com>
7930
7931         * class.c (mono_type_get_name_recurse): Don't add the assembly
7932         name for type arguments.
7933
7934 2005-06-15  Martin Baulig  <martin@ximian.com>
7935
7936         * reflection.c (mono_image_get_inflated_method_token): Encode
7937         correct klass; fixes #75260.
7938
7939 2005-06-13 Michal Moskal <malekith@nemerle.org>
7940
7941         * icall.c: Make GetCorrespondingMethod/Constructor take
7942         MonoReflectionMethod method not MonoMethod. Removed
7943         MonoType.GetCorrespondingField, and make
7944         MonoGenericType.GetCorrespondingField take name not
7945         MonoClassField.
7946
7947 2005-06-13  Michal Moskal <malekith@nemerle.org>
7948
7949         * reflection.c (field_encode_signature, encode_locals):
7950          Make sizes of buffers for types larger (for big generic types).
7951          (create_generic_typespec,
7952          mono_reflection_sighelper_get_signature_local,
7953          mono_reflection_sighelper_get_signature_field):
7954          Add asserts for too small buffers.
7955
7956 2005-06-15  Martin Baulig  <martin@ximian.com>
7957
7958         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
7959         if our parent is not a dynamic type.
7960
7961 2005-06-15  Martin Baulig  <martin@ximian.com>
7962
7963         * class-internals.h (MonoTypeNameFormat): New enum.
7964
7965         * class.c
7966         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
7967         (mono_type_get_full_name): Removed.
7968         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
7969         argument instead of the boolean's.
7970
7971         * icall.c (ves_icall_System_MonoType_getFullName):
7972         Added `gboolean assembly_qualified'.    
7973
7974         * reflection.h
7975         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
7976
7977         * reflection.c (mono_reflection_parse_type): Parse the new type
7978         name format.
7979
7980 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7981
7982         * icall.c: no need to convert from utf16 to utf8 and then back again
7983         after the call to GetLogicalDrives.
7984
7985 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7986
7987         * icall.c: frombase64. Fix problems exposed by new tests.
7988
7989 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7990
7991         * icall.c: added internal calls for converting char [] and strings in
7992         base64 into byte [].
7993
7994 2005-06-10  Martin Baulig  <martin@ximian.com>
7995
7996         * class.c (mono_class_create_generic_2): Read the nested classes
7997         from the metadata rather than from `gklass->nested_classes' since
7998         `gklass' might not be initialized yet.
7999
8000 2005-06-09  Duncan Mak  <duncan@novell.com>
8001
8002         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
8003         all public headers. Fixes #74919.
8004
8005 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
8006
8007         * domain.c: The key for proxy_vtable_hash is now a pointer
8008         array. Added new GHashFunc and GCompareFunc functions for this.
8009
8010         * class.h: The list of interfaces in MonoRemoteClass is known in
8011         advance and can't grow (we create a new MonoRemoteClass if needed),
8012         so now the interface array can be allocated together with
8013         MonoRemoteClass.
8014         
8015         * object.c: Added a new method create_remote_class_key.
8016         Fixed mono_remote_class so it does not depend on
8017         mono_upgrade_remote_class.
8018         Removed extend_interface_array.
8019         Added new method clone_remote_class(), which makes a copy of a remote
8020         class and adds a new interface or class to it.
8021         mono_upgrade_remote_class() now creates a new remote class (or gets
8022         it from the cache) if an vtable upgrade is needed. In this way
8023         we make sure that other objects sharing the same remote class
8024         don't get the new vtable with unwanted interfaces.
8025         
8026         * object-internals.h:
8027         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
8028         
8029         * marshal.c: Track changes in mono_upgrade_remote_class().
8030
8031 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
8032         * icall.c: Add runtime methods for obtaining members of inflated
8033         class, which were created from supplied non-inflated members. It
8034         is used in internal Get{Method,Constructor,Field} methods in
8035         System.Type
8036
8037 2005-06-09  Martin Baulig  <martin@ximian.com>
8038
8039         * reflection.c
8040         (mono_reflection_bind_generic_method_parameters): Fix #75169.
8041
8042 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8043         * reflection.c (mono_image_basic_init): Define
8044         Version in MonoDynamicAssembly. 
8045         
8046 2005-06-08  Martin Baulig  <martin@ximian.com>
8047
8048         Fix #75136.
8049
8050         * loader.c
8051         (mono_method_signature_full): New public method; takes a
8052         `MonoGenericContext *'.
8053         (find_method): Use mono_method_signature_full() and pass the
8054         klass'es context to it.
8055
8056         * class.c (mono_class_is_inflated_method): Use
8057         mono_method_signature_full() and pass the context to it.
8058
8059 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
8060
8061         * object.c: add proper locking in mono_remote_class_vtable(),
8062         fixes possible memory corruption.
8063
8064 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
8065
8066         * marshal.c (mono_remoting_marshal_init): set
8067         initialized after initialization.
8068
8069 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
8070
8071         * locales.c : hush.
8072
8073 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
8074
8075         * object.c (extend_interface_array): fix really silly
8076         memory corrupting / comparison bug.
8077
8078 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8079
8080         * reflection.c: Functions added to support the creation
8081         of CustomAttributeData, which includes Attribute data
8082         used by ReflectionOnly methods.
8083
8084         * reflection.h:  mono_reflection_get_custom_attrs_data and
8085          mono_custom_attrs_data_construct added (functions exposed).
8086
8087          * icall.c: Added mono_reflection_get_custom_attrs_data
8088          as icall.
8089         
8090 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
8091
8092         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
8093         lupus's request.
8094
8095 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
8096
8097         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
8098
8099         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
8100         dynamic DllImportAttribute.
8101
8102         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
8103         dynamic DllImportAttribute.
8104
8105         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
8106         Fixes #75162.
8107
8108 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8109
8110         * threads.c: avoid segfault when an unstarted thread is aborted.
8111
8112 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
8113
8114         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
8115         Returns the name and version of the runtime for reporting.
8116
8117 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8118
8119         * appdomain.c: bump corlib version.
8120         * object-internals.h: new field in MonoReflectionAssembly.
8121
8122 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8123
8124         * object-internals.h: Carlos forgot to add this field.
8125
8126 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8127
8128         * icall.c: Added create_version to create instances
8129         of Version of MonoReflectionAssemblyName. This change helps
8130         the AssemblyName tests to keep running fine.
8131         
8132 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
8133   
8134         * object.c (mono_method_return_message_restore): A somehow less
8135         intrusive fix for #75138.
8136
8137 2005-06-03  Raja R Harinath  <rharinath@novell.com>
8138
8139         * object.c (mono_method_return_message_restore): Fix computation
8140         of expected number of out args.
8141
8142 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
8143
8144         * reflection.c (mono_image_get_method_info): Fix the case when the
8145         charset is empty.
8146
8147 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
8148
8149         * object.c: Added missing null check in
8150           mono_method_return_message_restore.
8151
8152 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
8153
8154         * reflection.c (mono_image_get_method_info): Handle the case when
8155         dllentry is empty.
8156
8157 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
8158
8159         * object.c: When creating the vtable for a proxy, take into account
8160         all inherited interfaces, not only the ones registered in
8161         iclass->interfaces. This fixs bug #74996.
8162         Also, in mono_method_return_message_restore, verify that the array
8163         of out args has the expected lengh.
8164
8165 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8166
8167         * socket-io.c: update the timeout in Poll when the call is interrupte.
8168
8169 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8170
8171         * socket-io.c: support abort/suspend in Select_internal after last
8172         change.
8173
8174 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8175
8176         * threadpool.c: remove warning.
8177
8178 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8179
8180         * icall.c:
8181         * socket-io.[ch]: Select_internal uses poll() now when available, thus
8182         removing the 1024 limit from select(). Runtime part of the fix for
8183         bug #71203.
8184
8185 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8186
8187         * socket-io.c: when resolving the addresses for the same
8188         host returned by gethostname(), get the local IPs from the interface
8189         list. Loopback addresses are discarded if the are interfaces up with
8190         non-loopback ones. Fixes bug #63265.
8191
8192 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
8193
8194         * appdomain.c, verify.c, object-internals.h, reflection.c:
8195         bumped corlib number to 36, and added new extra_flags field
8196         to ReflectionMethodBuilder and friends.  Fixes #75060.
8197
8198 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
8199
8200         * gc.c: register a new weak link only if the object is non-null
8201         (fixes bug#75047).
8202
8203 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
8204
8205         * culture-info.h : short time pattern too.
8206
8207 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
8208
8209         * culture-info.h : expand long time pattern string length.
8210
8211 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
8212
8213         * culture-info-table.h : update (more French date format; #72788).
8214
8215 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
8216
8217         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
8218         the method is static. Fixes #75029.
8219
8220 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
8221
8222         * reflection.c: Update the table_idx field of method builders after
8223         saving the module, since it can change. This is a workaround for
8224         bug #74914. 
8225
8226 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
8227
8228         * culture-info-table.h : update (additional French date format).
8229
8230 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
8231
8232         * icall.c (ves_icall_type_Equals): Revert last change.
8233         
8234         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
8235
8236         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
8237
8238 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
8239
8240         * class-internals.h: Added executioncontext_class field to 
8241         MonoDefaults structure.
8242         * domain.c: Cache System.Threading.ExecutionContext class in 
8243         mono_defaults.
8244         * object.c: Capture the ExecutionContext for asynchroneous calls in
8245          mono_async_result_new.
8246         * object-internals.h: Added execution_context and original_context 
8247         fields to MonoAsyncResult. Added execution_context to MonoThread.
8248         * security-manager.c|.h: Added mono_get_context_capture_method to 
8249         return the capture method (if required by the security manager or by
8250         the framework version used).
8251         * threadpool.c: Apply capture (if present) ExecutionContext in 
8252         mono_async_invoke and revert to original context after it completes.
8253
8254 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
8255
8256         * culture-info-table.h : updated (real hacky solution for zh-CHT).
8257
8258 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
8259
8260         * culture-info-table.h : zh-CHT related workaround.
8261
8262 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
8263
8264         * marshal.c (emit_marshal_custom): Add some error checking and call the
8265         methods in the ICustomMarshaler interface. Fixes #74875.
8266         
8267         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
8268         native->managed wrappers.
8269
8270 2005-05-12  Martin Baulig  <martin@ximian.com>
8271
8272         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
8273         here and use the loader lock.
8274
8275         * mono-debug.c: Properly lock when the debugger is not attached.
8276         (mono_debug_init): Release the initial lock if we're not running
8277         in the debugger.
8278
8279 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
8280
8281         * marshal.c (emit_marshal_custom): Pass through NULL values without
8282         calling the custom marshalling routines.
8283
8284         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
8285         conversion in structures. Fixes #74882.
8286
8287 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
8288
8289         * culture-info-table.h : zh-* cultures were missing.
8290
8291 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
8292
8293         * threads.c: Added a new event background_change_event which is signaled
8294         when a thread changes its background mode.
8295         Moved here several checks previously done in managed code. The checks
8296         require the thread lock, and using the thread lock in managed code
8297         can result in deadlocks.
8298         Merged Start_internal and Thread_internal into a single method. Now 
8299         Thread_internal does all work of creating and starting a thread.
8300         Added icalls for setting and getting the state of the object. Moved from
8301         managed code to avoid locking there.
8302         Added wait_for_tids_or_state_change() which is called instad of
8303         wait_for_tids when waiting for non-backround threads to end. This method
8304         will return if one of the threads ends or the background_change_event
8305         is signaled.
8306         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
8307         the background mode. This method signals the background_change_event
8308         event.
8309         * icall.c:
8310         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
8311         removed Start_internal.
8312         
8313 2005-05-11  Martin Baulig  <martin@ximian.com>
8314
8315         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
8316         to order of some fields to get proper alignment on 64-bit machines.
8317
8318 2005-05-11  Martin Baulig  <martin@ximian.com>
8319
8320         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
8321         changes as they're broken and completely fuck up the debugger.
8322
8323         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
8324
8325 2005-05-10  Martin Baulig  <martin@ximian.com>
8326
8327         * reflection.c (mono_reflection_generic_class_initialize): Don't
8328         call mono_class_setup_parent() here.
8329
8330 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8331
8332         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
8333         send/receive timeout use an integer in milliseconds. We were using a
8334         struct timeval.
8335
8336 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8337
8338         * locales.c:
8339         (internal_get_cultures): reserve the first slot of the array for the
8340         InvariantCulture, which will be filled in managed code.
8341
8342 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
8343
8344         * reflection.c (mono_image_fill_module_table): Initialize the
8345         GENERATION field as well.
8346
8347 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8348
8349         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
8350         Monitor.Enter on the object.
8351
8352 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
8353
8354         * threads.c: Enable the wait for running threads when exiting.
8355         * icall.c: Suspend all threads before exiting.
8356
8357 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
8358
8359         * assembly.c (mono_assembly_load_reference): Fix warning.
8360
8361 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8362
8363         * threadpool.c: changed the default number of threads per cpu. From now
8364         on, the default will be 20 + (5 * number of cpus) instead of 50.
8365
8366 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
8367
8368         * loader.c (mono_method_get_signature_full): Add locking here.
8369
8370 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
8371
8372         * appdomain.c: Moved methods for parsing and freeing assembly
8373         names to assembly.c.
8374         * assembly.c, domain-internals.h: Created public methods for parsing
8375         assembly names. Fixed mono_assembly_load_with_partial_name:
8376         it now finds the best match, taking into account the version,
8377         token and culture specified in the partial name. Also return
8378         the latest version if no version information is specified.
8379
8380 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
8381
8382         * threadpool.c: replace check for SocketAsyncCall class.
8383
8384 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8385
8386         * threadpool-internals.h:
8387         * Makefile.am: added threadpool-internals.h
8388
8389         * threadpool.c: call mono_unhandled_exception on exceptions not handled
8390         that happen in threadpool threads (tested on MS).
8391         (mono_thread_pool_remove_socket): new function that dispatch any pending
8392         AIO call on a socket that is closing. By now only epoll really needs it,
8393         as select/poll wake up when the socket closes.
8394
8395
8396         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
8397
8398 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
8399
8400         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
8401
8402 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
8403
8404         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
8405
8406 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
8407
8408         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
8409         has an abort request, convert it into a suspend request.
8410
8411 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
8412
8413         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
8414         warning for the usage of `UnmanagedFunctionPointerAttribute' which
8415         is not supported yet.
8416
8417 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8418
8419         * image.c: register assemblies loaded from data (bundles) in the loaded
8420         assemblies hash. Fixes bug #74772.
8421
8422 2005-04-29  Martin Baulig  <martin@ximian.com>
8423
8424         * class.c (mono_type_get_name_recurse): Update to the new naming
8425         schema from the latest .NET 2.x beta2.
8426         (mono_class_setup_vtable_general): If we're a generic instance,
8427         copy the vtable from our generic type definition and inflate all
8428         the methods in it.
8429
8430         * loader.c (find_method): Update to the new naming schema from the
8431         latest .NET 2.x beta2.
8432
8433 2005-04-29  Raja R Harinath  <harinath@gmail.com>
8434
8435         * class.c (mono_class_init): Add a mono_loader_unlock to the
8436         #74734 fix.
8437
8438 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
8439
8440         * icall.c (ves_icall_System_Environment_Exit): Remove the 
8441         suspend_all_other_threads () call for the time being, since it can hang.
8442
8443         * threads.c (mono_thread_manage): Similarly, disable the waiting for
8444         the background threads to exit, since it can also hang.
8445
8446         * class.c (mono_class_init): Applied patch from Ankit Jain 
8447         (radical@gmail.com). Avoid pending init errors when a field refers
8448         to a nested class using a typeref. Fixes #74734.
8449
8450         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
8451         this for dynamic modules.
8452
8453 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8454
8455         * threads.c: don't wait for threads that are in the process of aborting
8456         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
8457         and waiting for background threads to finish. This makes xsp and
8458         mod-mono-server exit without random length delays and/or hangs.
8459
8460 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8461
8462         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
8463
8464 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
8465
8466         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
8467         dynamic types to prevent infinite loops. Fixes #74727.
8468
8469         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
8470         ..._is_assignable_to.
8471
8472 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
8473
8474         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
8475
8476 2005-04-25  Martin Baulig  <martin@ximian.com>
8477
8478         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
8479
8480         * domain.c
8481         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
8482
8483         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
8484
8485         * reflection.c (build_compressed_metadata): Set metadata header
8486         version to 2.0.
8487
8488 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
8489
8490         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
8491         number into an integral and a decimal part. Fixes #70473.
8492
8493         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
8494
8495 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
8496
8497         * culture-info-table.h : reflected the latest locale-builder output.
8498
8499 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8500
8501         * threadpool.c: check for SuspendRequested too when deciding if
8502         mono_thread_interruption_checkpoint should be called.
8503
8504 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8505
8506         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
8507         * threads.c: remove interruption_mutex and use Interlocked instead. When
8508         suspending all the threads, wait for all the suspended events at once.
8509         If we're shutting down and get an APC that is going to be queued,
8510         call mono_thread_execute_interruption immediately, as the thread might
8511         be sleeping on a pthread condition or mutex.
8512
8513         * icall.c: call mono_runtime_set_shutting_down before suspending the
8514         threads.
8515
8516         Fixes bug #74693. And now xsp is happier when exiting.
8517
8518 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
8519
8520         * loader.c (mono_stack_walk): Fix #74690.
8521
8522 2005-04-22  Martin Baulig  <martin@ximian.com>
8523
8524         * mono-debug.h (MonoDebugMethodJitInfo): Added
8525         `MonoDebugMethodJitInfo *jit'.
8526
8527         * mono-debug.c (mono_debug_read_method): Cache the
8528         MonoDebugMethodJitInfo in `address->jit'.
8529         (mono_debug_free_method_jit_info): New public method.
8530
8531 2005-04-22  Martin Baulig  <martin@ximian.com>
8532
8533         * class.c (mono_class_is_assignable_from): Disallow
8534         type parameter -> interface.
8535
8536 2005-04-21  Dick Porter  <dick@ximian.com>
8537
8538         * threads.c (mono_thread_create): Turn an assertion into an error.
8539
8540 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
8541
8542         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
8543         
8544         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
8545         Fix some gcc 4.0 warnings.
8546
8547 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
8548
8549         * file-io.c: fix alt dir separator char on unix systems
8550         and cleanup (fixes bug #71214).
8551
8552 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
8553
8554         * marshal.c: Use CALLVIRT instead of CALL when dispatching
8555         a call to a remote domain, since the method may be an
8556         interface method in the client domain. This fixes bug #74192.
8557
8558 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8559
8560         * threadpool.c: recv/send are now performed before going back to managed
8561         code to save one transition.
8562
8563 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8564
8565         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
8566
8567         * metadata/threadpool.c: removed hack to workaround the bug above.
8568
8569         Fixes bug #74618.
8570
8571 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
8572
8573         * reflection.c reflection.h: Fix handling of parameter defaults in
8574         dynamic methods. Also fixes handling of parameter attributes.
8575         Fixes #74609.
8576
8577         * mono-debug.c (mono_debug_close_image): Fix warning.
8578
8579 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8580
8581         * socket-io.h: replaced old unused field with new 'blocking'.
8582         * threadpool.c: restore socket blocking state on windows(tm).
8583
8584 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
8585
8586         * icall.c: don't return the codebase in the AssemblyName[] returned by
8587         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
8588         * object-internals.h: Removed FIXME (fields were presents) and fixed
8589         versioncompat declaration.
8590
8591 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8592
8593         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
8594         not closed, so don't cleanup when it happens.
8595
8596 2005-04-13  Chris Toshok  <toshok@ximian.com>
8597
8598         * mono-debug-debugger.h: change prototype for
8599         mono_debugger_lookup_type.
8600
8601         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
8602         this function, although it should probably be named
8603         mono_debugger_init_type.
8604
8605 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8606
8607         * threadpool.c: fix non-AIO case.
8608
8609 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
8610
8611         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
8612         the built-in profiler to measure just JIT compilation times.
8613
8614 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8615
8616         * threadpool.c: the epollfd might be closed by another thread at
8617         any time, so ignore EBADF at treat it as a "we're closing" sign.
8618
8619 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8620
8621         * threadpool.c: release the semaphores with a count equals to the number
8622         of working threads in both IO and regular pools. Fixed typo that messed
8623         up the count of IO pool threads. Don't initialize the pipe handles if
8624         we're using epoll.
8625
8626 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8627
8628         * threadpool.c: some systems don't like a NULL when deleting the socket
8629         from epoll.
8630
8631 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8632
8633         * threadpool.c: fix semaphore allocation.
8634
8635 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8636
8637         * threadpool.c: added epoll() based implementation for asynchronous IO
8638         that is used instead of the default poll() when available.
8639         It can be disabled by setting MONO_DISABLE_AIO.
8640
8641 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8642
8643         * threadpool.c: windows needs 'closesocket' and instead of returning
8644         0 when the stream is closed while in select, it returns -1. Fixes bug
8645         #74573.
8646
8647 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
8648
8649         * class.c (class_compute_field_layout): Fix the regression caused by
8650         the previous try.
8651
8652 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8653
8654         * threadpool.c: separate pool for socket async. IO.
8655         * threadpool.h: mono_max_worker_threads is not a global any more.
8656
8657 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
8658
8659         * class.c (class_compute_field_layout): Fix #74549.
8660
8661 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8662
8663         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
8664         use 2 connected sockets instead.
8665
8666 2005-04-08  Miguel de Icaza  <miguel@novell.com>
8667
8668         * mono-config.c: Add new entry point for mkbundle
8669         mono_config_parse_memory. 
8670
8671 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8672
8673         * threadpool.c: removed another unused function.
8674
8675 2005-04-08  Ankit Jain  <radical@corewars.org>
8676
8677         * reflection.c (get_default_param_value_blobs): Add 'types'
8678         parameter to get the types encoded in the constant table.
8679         (mono_param_get_objects): Use the type from the constant table,
8680         not the type of the parameter, when creating default values.
8681         Handle null default values correctly.
8682
8683 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8684
8685         * file-io.c:
8686         * file-io.h:
8687         * threadpool.c:
8688         * threadpool.h:
8689         * icall.c:
8690         * socket-io.c: removed dead code for async IO.
8691
8692 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8693
8694         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
8695
8696         * threadpool.c: intercept socket async. calls and pass them to a thread
8697         that is polling and dispatching the job items to the threadpool as
8698         socket become ready. Fixes bugs #71217, #71933.
8699
8700         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
8701         between char and short/ushort arrays.
8702
8703         * socket-io.c: remove dead code.
8704
8705 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
8706
8707         * locales.c,
8708           icall.c : removed InternalToUpper_Comp() and
8709           InternalToLower_Comp().
8710
8711 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
8712
8713         * char-conversions.h : The tables were incorrectly generated. Should
8714           be generated against invariant culture.
8715
8716 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
8717
8718         * object.c (mono_runtime_invoke_array): Fix return value when 
8719         passing pre-created valuetype objects to ctors.
8720
8721         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
8722         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
8723         Fixes #74338.
8724
8725 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
8726
8727         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
8728         only used with --security and hides the wrong corlib version error.
8729
8730 2005-03-30  Joshua Tauberer  <tauberer@for.net>
8731
8732         * class.c: Changed mono_class_name_from_token so that types
8733         outside of a namespace don't have an initial period.  Improved
8734         the g_warning message used in _mono_class_get when loading
8735         fails.
8736         * assembly.c: In mono_assembly_load_reference, when an assembly
8737         can't be found, "No such file or directory" is misleading and
8738         unhelpful because a few paths were checked for the presence of
8739         the assembly.  When that happens (ENOENT), display a nicer
8740         message indicating the directories that were searched.  In all
8741         cases, the warning is made easier to read for non-hackers.
8742
8743 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
8744
8745         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
8746         project/solution.
8747         * appdomain.h|domain.c: Removed inline from functions.
8748         * appdomain.c: Reduced warnings when compiling on windows.
8749         * icall.c: Fixed output_debug declaration to gunichar2*.
8750         * mono-config.c: Reduced warnings when compiling on windows.
8751         * rand.c: Added missing "windows.h". Added missing return value.
8752         * rawbuffer.c: Added missing winsock2.h for windows.
8753         * sysmath.h: Added mono-compiler.h header to allow/ease 
8754         compilation with non-GCC compilers.
8755         * threads.c: Fixed declarations to compile with VS.NET C compiler.
8756         Removed cast warnings.
8757
8758         Adapted from the work of J Lothian (for VC6).
8759
8760 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
8761
8762         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
8763         from default_path.
8764
8765 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
8766
8767         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
8768         the 2.0 profile.
8769
8770 2005-03-27  Raja R Harinath  <harinath@gmail.com>
8771
8772         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
8773         has to be in $(exec_prefix).  $(prefix) is for arch-independent
8774         stuff, and it would probably use $(prefix)/share rather than
8775         $(prefix)/lib.
8776
8777 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8778
8779         * console-io.c: added 2 includes that might be missing.
8780
8781 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
8782
8783         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
8784         profile.
8785
8786         * reflection.c (create_custom_attr): Allocate the params array using
8787         alloca so it gets GC tracking.
8788
8789 2005-03-23  Chris Toshok  <toshok@ximian.com>
8790
8791         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
8792         out some spew.
8793
8794 2005-03-24  Raja R Harinath  <rharinath@novell.com>
8795
8796         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
8797         changes to pick up any changes in prefix, etc.
8798
8799 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
8800
8801         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
8802         
8803         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
8804         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
8805
8806 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
8807
8808         * class-internals.h object-internals.h class.c reflection.c: Extend the
8809         mono_lookup_dynamic_token () function to return the class of the
8810         token as well. 
8811
8812         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
8813         well. Fixes #73848.
8814
8815 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
8816
8817         * security-manager.c: Skip inheritance checks for intra-corlib
8818         class inheritance and method overrides. This skips a lot of checks
8819         and (anyway) permissions cannot work until corlib is loaded.
8820
8821 2005-03-23  Martin Baulig  <martin@ximian.com>
8822
8823         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
8824         MONO_TYPE_GENERICINST.  
8825
8826 2005-03-23  Martin Baulig  <martin@ximian.com>
8827
8828         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
8829
8830 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8831
8832         * class.c: added locking comments to some functions.
8833         Cache the interface offsets arrays (saves about 20 KB
8834         of runtime memory in a typical app).
8835         Reduce the time overhead in mono_class_setup_supertypes ().
8836
8837 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
8838
8839         * icall.c: speedup and fix leaks in GetMethodsByName and
8840         GetPropertiesByName.
8841
8842 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8843
8844         * reflection.c: some locking fixes.
8845
8846 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
8847
8848         * metadata.c: added missing break in case statement.
8849
8850 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
8851
8852         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
8853         typedbyref return values. Fixes #73941.
8854
8855 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
8856
8857         * security-manager.c|h: Added demandunmanaged method and 
8858         suppressunmanagedcodesecurity class to MonoSecurityManager.
8859         Renamed aptc class to allowpartiallytrustedcallers.
8860
8861 2005-03-17  Martin Baulig  <martin@ximian.com>
8862
8863         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
8864
8865 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8866
8867         * file-io.c: disabled file async. IO using aio_*. It uses the
8868         threadpool now. Workaround for bug #73718.
8869
8870 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8871
8872         * assembly.h, mono-config.c: added code to deal with bundled configs
8873         for bundled assemblies.
8874
8875 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
8876
8877         * *.c, private.h: cleanup, removing old private.h header file.
8878
8879 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
8880
8881         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
8882         and throw_on_unmappable_char attributes.
8883
8884 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
8885
8886         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
8887         _ProcessName_internal.
8888
8889 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
8890
8891         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
8892         #73631.
8893
8894         * icall.c threads.c threads-types.h: Remove slothash icalls as they
8895         are no longer used.
8896
8897 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
8898
8899         * object.c (compute_class_bitmap): Add support for generics. Fixes
8900         #73527.
8901
8902 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
8903
8904         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
8905
8906 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8907
8908         * filewatcher.c: commented out the code for windows watcher, as we don't
8909         use it (we use the managed implementation instead).
8910
8911 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
8912
8913         * object-internals.h (MonoThread): Remove 'unused1' field.
8914
8915         * appdomain.c: Bump corlib version.
8916
8917         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
8918
8919         * reflection.c (mono_reflection_create_runtime_class): Remove the
8920         AssemblyBuilder.Save optimization since it causes too many problems.
8921
8922 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
8923
8924         * exception.c|h: Added mono_get_exception_reflection_type_load to
8925         create a ReflectionTypeLoadException object.
8926         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
8927         to return NULL is a InheritanceDemand fails during reflection. Updated
8928         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
8929         ReflectionTypeLoadException if an InheritanceDemand fails during 
8930         reflection. Added icall mapping for GetLinkDemandSecurity.
8931         * security-manager.c|h: Added ves_icall_System_Security_
8932         SecurityManager_GetLinkDemandSecurity internal call to return the
8933         class and methods permissions set for a LinkDemand. Removed unused
8934         fields in MonoSecurityManager.
8935
8936 2005-03-10  Martin Baulig  <martin@ximian.com>
8937
8938         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
8939         it's a generic instance.
8940
8941 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
8942
8943         * reflection.c (mono_get_object_from_blob): Applied patch from
8944         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
8945
8946         * class.c (mono_class_is_assignable_from): Another try at fixing 
8947         #73469 without breaking anything.
8948
8949 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
8950
8951         * class.c: (mono_class_is_assignable_from): Revert the last changes
8952         since they don't work with generics.
8953         
8954         * class.c (mono_class_is_assignable_from): Fix build bustage.
8955
8956         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
8957         the managed IsAssignableFrom method. Fixes #73469.
8958
8959         * reflection.c (mono_reflection_call_is_assignable_from): New helper
8960         function.
8961
8962 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
8963
8964         * object.c (mono_load_remote_field_new): Fix returning uninitialized
8965         memory when the remoting callback does not sets the out arguments.
8966         Fixes #73007.
8967
8968         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
8969         by mistake.
8970
8971         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
8972
8973         * object-internals.h (MonoStackFrame): Sync with managed object layout.
8974
8975         * appdomain.c: Bump corlib version.
8976
8977 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
8978
8979         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
8980         function.
8981
8982         * threads.c (mono_thread_attach): Detect threads which are not started
8983         by the GC pthread wrappers.
8984
8985 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
8986
8987         * icall.c: Added new icall for RNG.
8988         * rand.c|h: Added new icall to open the RNG. This allows to share a 
8989         single handle on Linux to access /dev/urandom and fix #73183.
8990
8991 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
8992
8993         * object.c: setting the new vtable in a transparent proxy object must
8994         not change the GC descriptor.
8995
8996 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8997
8998         * object.c: fixed compilation without GCJ support.
8999         * reflection.c: for runtime-created types ensure klass->has_references
9000         is correct (bug #73215).
9001
9002 2005-03-02  Martin Baulig  <martin@ximian.com>
9003
9004         * class.c (mono_class_is_assignable_from): Make this work if
9005         `oklass' is a generic instance; fixes #72831.
9006
9007 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
9008
9009         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
9010         with hasthis set.
9011         
9012         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
9013
9014         * marshal.c: Reorganize native->managed marshalling code to also use
9015         the emit_marshal_... functions.
9016
9017 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
9018
9019         * object.c: typed allocs have issues with bitmap sizes > 30,
9020         so check for max_set >= 30.
9021
9022 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
9023
9024         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
9025         managed code. Fixes #73012.
9026
9027         * metadata.h (MonoMarshalSpec): Add elem_mult field.
9028
9029         * metadata.c reflection.c: Load/Emit elem_mult as well.
9030         
9031         * metadata.h (MonoMarshalSpec): Add comment.
9032
9033         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
9034
9035         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
9036         num_elem to -1 if not given.
9037
9038         * object-internals.h (MonoReflectionMarshal): Add has_size field.
9039
9040         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
9041         given values.
9042
9043 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
9044
9045         * null-gc.c (mono_gc_free_fixed): Was not compilable.
9046
9047 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
9048
9049         * reflection.c (encode_marshal_blob): Encode param_num field as well.
9050
9051         * object-internals.h (MonoReflectionMarshal): Add param_num field.
9052
9053 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
9054
9055         * object.c: generalized the reference bitmap creation
9056         and added hooks for the new GC.
9057         * class-internals.c: removed the gc_bitmap field from MonoClass.
9058
9059 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
9060
9061         * domain.c: help the compiler to produce better code
9062         in mono_jit_info_table_find ().
9063
9064 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
9065
9066         * object.c: make all allocations look typed.
9067
9068 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
9069
9070         * socket-io.c: load Mono.Posix if it's not loaded already
9071         (fixes bug#73033).
9072
9073 2005-02-24  Martin Baulig  <martin@ximian.com>
9074
9075         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
9076         * reflection.c (dup_type): Likewise.
9077
9078 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
9079
9080         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
9081         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
9082
9083 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
9084
9085         * domain.c, threads.c, object-internals.h: make the critical thread
9086         local vars use the fast access mode (even when we're compiled in
9087         a lib). Provide accessors to be used by the jit during codegen.
9088
9089 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9090
9091         * appdomain.c: Changed hook functios behavior to include
9092         support for the reflection only assemblies. Some icalls were changed
9093         to support the mentioned assemblies too. Signatures of static methods
9094         try_assembly_resolve and real_load now have an additional parameter:
9095         refonly.
9096
9097         * assembly.c: General changes to mono_assembly_ methods to support
9098         reflection only api. Functions mono_assembly_open, mono_assembly_load,
9099         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
9100         suffix, to support an additional gbool parameter to specify whether
9101         the assembli is reflection only or not. Created some new hook functions 
9102         to add support for reflection only assemblies. Signatures of static 
9103         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
9104         have now an additional parameter: refonly.
9105
9106         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
9107         indicating whether the assembly is reflection only or not.
9108
9109         * exception.c: Add mono_get_exception_invalid_operation.
9110
9111         * icall.c: Throw an InvalidOperationException when trying to invoke
9112         a property/method/event, or trying to set/get the value of a field.
9113         Also add an icall to retrieve the ref_only flag to the
9114         MonoReflectionAssembly.
9115
9116 2005-02-23  Chris Toshok  <toshok@ximian.com>
9117
9118         Part of fix for #72827.
9119         * mono-debug.c (mono_debug_add_method): add lexical block data to
9120         the info we write.  Kind of a hack at the moment - we copy the
9121         lexical block info from the MonoDebugMethodInfo to the
9122         MonoDebugMethodJitInfo here, before writing it.
9123         (mono_debug_read_method): read the lexical block info.
9124
9125         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
9126
9127         * debug-mono-symfile.h: add lexical block support.
9128
9129         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
9130         support.
9131
9132 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
9133
9134         * loader.c (mono_lookup_pinvoke_call): Fix warning.
9135
9136         * object.c (mono_runtime_free_method): Call mono_free_method () and
9137         put the TODOs there.
9138
9139         * loader.c (mono_free_method): Free up most memory allocated for 
9140         dynamic methods.
9141
9142 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
9143
9144         * reflection.c: properly flag a Type argument to a
9145         named custom attr value (bug #72248).
9146
9147 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
9148
9149         * reflection.c: reduce code duplication in named custom
9150         attribute encoding.
9151
9152 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
9153
9154         * reflection.c: properly encode custom attrs of type object
9155         (bug #72649).
9156
9157 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
9158
9159         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
9160
9161 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
9162
9163         * socket-io.c: load System.dll if it's not loaded already
9164         (bug #72850 and #70477).
9165
9166 2005-02-21  Martin Baulig  <martin@ximian.com>
9167
9168         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
9169         generic instances.
9170
9171 2005-02-21  Martin Baulig  <martin@ximian.com>
9172
9173         * reflection.c (mono_image_build_metadata): We also need to
9174         "fixup" the MethodImpl table after we computed the final method
9175         indices.  Call fixup_methodimpl() to do that.
9176         (fixup_methodimpl): New private method.
9177
9178 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
9179
9180         * assembly.c: special case mscorlib.dll (bug#72536),
9181         patch from Carlos Alberto Cortez.
9182
9183 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
9184
9185         * threads-types.h threads.c: Fix build bustage.
9186
9187         * threads.c: Use a union for long<->double conversions.
9188
9189         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
9190         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
9191
9192         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
9193         containing the checkpoint call with NOT_TAKEN.
9194         
9195         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
9196         checkpoint before pushing the arguments, so they won't have to be
9197         spilled to stack.
9198
9199 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9200
9201         * domain.c, assembly.c, domain-internals.h: make some data
9202         const and relocation-free.
9203
9204 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
9205
9206         * object.c, appdomain.c, class-internals.h: introduce the
9207         MonoClassRuntimeInfo structure to hold the info needed to
9208         use a class at runtime. Made mono_class_vtable() lock-free
9209         for all the appdomains.
9210
9211 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
9212
9213         * metadata-internals.h, image.c: introduce a per-image mempool to
9214         be used for memory that has the same lifetime as the image.
9215
9216 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
9217
9218         * domain.c: In mono_init_internal(), instead of selecting the first
9219         runtime version supported by an executable, get a list of all
9220         supported versions and select the one for which an mscorlib exists
9221         (since even if the runtime supports a given version, it doesn't mean
9222         that the framework for that version is installed).
9223         Modified get_runtimes_from_exe to support this behavior.
9224         In supported_runtimes, added information about additional system
9225         assembly versions.
9226         
9227         * assembly.c: Added support for more than one system assembly version
9228         per runtime version. Updated the assembly list.
9229         In mono_assembly_remap_version, removed the initial version check,
9230         since we don't know to which version we need to compare until we
9231         get the version set on which the assembly is based.
9232         Moved the code for loading corlib into the new method
9233         mono_assembly_load_corlib(), so it can be used by the initialization
9234         code.
9235         
9236         * domain-internals.h: Updated data structures and added declaration
9237         for mono_assembly_load_corlib.
9238
9239 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
9240
9241         * reflection.c (resolve_object): Fix the creation of the signature in 
9242         the SignatureHelper case.
9243
9244         * assembly.c (mono_assembly_remap_version): Fix binary search.
9245         
9246 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
9247  
9248         * class.c: Added inheritance check when a method is overloaded (from a
9249         virtual method or when implementing an interface) and when a class is
9250         inherited. Added functions to set a failure for a class and to 
9251         retreive the exception from a failure.
9252         * class-internals.h: Added fields to MonoClass to keep the exception
9253         information status for inheritance (or other exceptions) to be thrown
9254         later (i.e. not at load time).
9255         * object.c: Throw the inheritance SecurityException when a type is to 
9256         be created with either class or method inheritance violations.
9257         * reflection.c|h: Fix when getting declsec from a class. Removed 
9258         unrequired code for class. Improved sanity in parameter naming.
9259         * security-manager.c|h: Added functions to check for class and method
9260         inheritance.
9261
9262 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
9263
9264         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
9265         and has_finalize in dynamic types as well.
9266
9267 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
9268
9269         * culture-info-table.h : fixed currency format for en-GB (and so on).
9270
9271 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
9272
9273         * gc.c: ensure the GC handles never have 0 as a value.
9274
9275 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
9276
9277         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
9278         a pointer to a struct to unmanaged code. Fixes #72625.
9279
9280 2005-02-16  Martin Baulig  <martin@ximian.com>
9281
9282         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
9283
9284 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
9285
9286         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
9287
9288 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
9289
9290         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
9291
9292         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
9293         UnmanagedFunctionPointerAttribute, use it for determining calling convention
9294         etc. Fixes #71471.
9295
9296         * reflection.c (mono_custom_attrs_get_attr): New helper function.
9297
9298         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
9299
9300 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
9301
9302         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
9303         changes to make the current context a field in MonoThread.
9304
9305 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
9306
9307         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
9308         the last change.
9309         
9310         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
9311         extracted from mono_marshal_get_native_wrapper.
9312
9313         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
9314         to create wrappers around native functions.
9315
9316         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
9317         delegates for arbitrary function pointers. Fixes #71472.
9318
9319 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
9320
9321         * threads.c: cleaned up the code a little.
9322
9323 2005-02-15  Martin Baulig  <martin@ximian.com>
9324
9325         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
9326         the data table.
9327
9328         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
9329         allocate larger chunks if needed.
9330
9331 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
9332
9333         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
9334         in by mistake.
9335
9336 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
9337
9338         * domain.c: keep the domains in an array and ensure the domain ids
9339         are kept small, so they can be used as indexes to domain-specific data
9340         with a small memory overhead.
9341
9342 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
9343
9344         * icall.c: Handle byref types in Type icalls. Fixes #72544.
9345
9346 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
9347
9348         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
9349
9350 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
9351
9352         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
9353
9354         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
9355         values.
9356
9357         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
9358         
9359 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
9360
9361         * domain-internals.h: add the hashtable here.
9362
9363         * class-internals.h: Remove `info' from MonoMethod
9364
9365         * domain.c: Add a new hashtable, jit_trampoline_hash
9366
9367 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
9368
9369         * object.c: don't set the value of static fields
9370         (fixes bug#72494).
9371
9372 2005-02-11  Martin Baulig  <martin@ximian.com>
9373
9374         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
9375         (mono_debug_add_method): Silently ignore the method if it's too big.
9376         (mono_debug_add_type): Likewise.
9377
9378 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
9379
9380         * threads.c, appdomain.c: remove #ifdefs from the code.
9381
9382 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
9383
9384         * metadata-internals.h: Added flags to MonoAssembly to cache the most
9385         common security informations. This allows us to stay in unmanaged code
9386         when doing LinkDemand and it's special cases (except for the first 
9387         time for initialization). The flags a very much used with --security.
9388         * reflection.c|h: Added code to get declarative security attributes 
9389         for LinkDemand and InheritanceDemand. This required to refactor the
9390         existing code for Demand.
9391         * security-manager.c|h: Added new method fields for the special cases
9392         of LinkDemand.
9393
9394 2005-02-10  Martin Baulig  <martin@ximian.com>
9395
9396         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
9397         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
9398
9399 2005-02-10  Martin Baulig  <martin@ximian.com>
9400
9401         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
9402         debugging code; this is almost a complete rewrite.
9403
9404         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
9405
9406 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
9407
9408         * domain.c, object.h: expose mono_string_equal () and 
9409         mono_string_hash ().
9410         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
9411         it's implemented in managed code.
9412
9413 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9414
9415         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
9416         lo leak objects between appdomains.
9417
9418 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
9419
9420         * assembly.c: old compilers compilation fix from 
9421         robertj@gmx.net (Robert Jordan).
9422
9423 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
9424
9425         * class-internals.h: Little reminder for the future.
9426
9427         * debug-helpers.c: Fix up wrapper_type_names
9428
9429 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
9430
9431         * image.c, metadata-internals.h: when loading an image from a file,
9432         mmap all of it and use the same codepaths as when using a
9433         in-memory image: the code is simpler and we use less memory
9434         (both writable and readonly).
9435
9436 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
9437
9438         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
9439         API to alloc runtime data structures that need to be tracked by the
9440         GC and contain pointers.
9441         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
9442         make the code more readable and eventually use a different GC.
9443
9444 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
9445
9446         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
9447         for out arguments.
9448         
9449 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
9450
9451         * object.c: In release_type_locks(), don't release the cctor lock
9452         if it has already been released. This fixes a crash in the
9453         thread5 test.
9454
9455 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
9456
9457         * gc.c, marshal.c, icall.c: register a delegate for finalization
9458         only when the native function pointer has been allocated for it.
9459
9460 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
9461
9462         * object.c: cleaned up some code, allocate objects that are
9463         pointer free with the atomic malloc variant. Allocate memory
9464         for static data from the mempool if it's pointer-free.
9465         Allocate the bounds array at the end of the array data, when needed.
9466         * object-internals.h, object.h: move a private function in a private
9467         header.
9468         * class.c: handle missing case in tracking references in fields.
9469
9470 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
9471
9472         * class.c, class-internals.h: keep track if a type has
9473         reference fields in either the instance or static fields.
9474
9475 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
9476
9477         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
9478         and renamed to MonoRuntimeInfo. Added fields to store the expected
9479         framework assembly version. Changed mono_get_framework_version and
9480         mono_get_runtime_version for a single mono_get_runtime_info method.
9481         
9482         * assembly.c: Added method to remap system assembly versions to the
9483         current executing runtime version. Removed old mapping code.
9484         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
9485         
9486         * icall.c, reflection.c: Track api changes.
9487
9488 2005-02-06  Miguel de Icaza  <miguel@novell.com>
9489
9490         * loader.c (method_from_memberref): Improve error reporting,
9491         produce the class name instead of the typeref/typedef index. 
9492
9493 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
9494
9495         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
9496
9497 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
9498
9499         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
9500         stdcall and charset name mangling.  Reorganize the code and add
9501         some tracing stuff.
9502
9503 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
9504
9505         * monodiet.c: More iters!
9506
9507         * marshal.c: Iter usage.
9508
9509         * icall.c: Iter usage.
9510
9511         * object.c: Use iters.
9512
9513         * debug-helpers.c: More iters
9514
9515 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
9516
9517         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
9518         under win32.
9519
9520 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
9521
9522         * mono-debug-debugger.c: use iters
9523
9524         * class.c, class-internals.h: mono_class_setup_events is static
9525         now
9526
9527         * All callers: use iters
9528
9529 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
9530
9531         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
9532         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
9533
9534 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
9535
9536         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
9537
9538         * marshal.h: Add prototypes for ldfld/stfld_remote.
9539
9540         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
9541         this is called during startup.
9542         
9543 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
9544
9545         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
9546         MonoThreadsSync struct private in monitor.c. Changed the way
9547         MonoThreadsSync is allocated so it's faster and there is no
9548         need to keep track of it with a finalizer and it uses less memory.
9549         This also finally allows us to allocate mono objects as ptrfree when
9550         there are no reference fields.
9551
9552 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
9553
9554         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
9555         disappearing link to the GC interface and use them to simplify
9556         the gchandles code.
9557
9558 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
9559
9560         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
9561         stfld_remote which call mono_load/store_field_new. This allows methods
9562         calling ldfld/stfld wrappers to be AOTed.
9563
9564         * console-io.c: Include sys/filio.h under solaris.
9565         
9566         * console-io.c: Include curses.h if needed correctly.
9567
9568 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
9569         
9570         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
9571         method->klass as well.
9572
9573         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
9574
9575         * class.c (mono_class_init): Switch on lazy initialization of 
9576         methods.
9577
9578         * class.c (mono_class_get_finalizer): Handle the case when the 
9579         finalizer is inherited.
9580
9581 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9582
9583         * console-io.c: <curses.h> is needed by term.h on solaris.
9584
9585 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
9586
9587         * icall.c, class-internals.h, monodiet.c, class.c: Remove
9588         mono_class_setup_properties where possible. Remove this ftn from
9589         the header file, and make it static.
9590
9591 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
9592
9593         * loader.c: Add missing setup_... call.
9594
9595         * class.c: Add missing setup_... calls.
9596
9597         * class.c (mono_class_init): Switch on lazy initialization of 
9598         the generic vtable.
9599         
9600         * class.c (mono_class_init): Fix generics broken by the recent changes.
9601
9602         * monodiet.c (handle_type): Add missing setup_... calls.
9603
9604         * class.c: Back out garbage in previous patch.
9605         
9606         * class.c: Add missing setup_... calls.
9607
9608         * class.c (mono_class_get_method_from_name_flags): Avoid calling
9609         mono_class_setup_methods () if possible.
9610
9611         * class-internals.h (MonoClass): Add 'has_cctor' flag.
9612
9613         * class-internals.h (MonoCachedClassInfo): New structure.
9614
9615         * class.c: Initialize properties and events fields of MonoClass lazily.
9616
9617         * class.c: Add infrastructure for lazily initializing the methods and
9618         vtable fields of MonoClass. Not yet used.
9619
9620         * class.c (mono_class_get_finalizer): New helper function.
9621
9622         * class.c: Add infrastructure for loading some class related data from
9623         an AOT file.
9624
9625         * object.c: Add infrastructure for initializing the vtable from data
9626         in the AOT file.
9627
9628         * gc.c (run_finalize): Use mono_class_get_finalizer ().
9629
9630         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
9631         appropriate initialization function before accessing parts of the
9632         MonoClass structure.
9633
9634         * marshal.c: Fix warnings.
9635         
9636         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
9637
9638         * mono-debug-debugger.c (get_exception_message): Use 
9639         mono_class_get_method_from_name_flags ().
9640
9641 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
9642
9643         * reflection.c, appdomain.c: Replace a few manual searches that
9644         Zoltan missed. (Paolo approved this part of my initial patch).
9645
9646 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
9647
9648         * profiler.c: disable recording statistical events at report time.
9649
9650 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
9651
9652         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
9653         to byteswap arrays of enum values, too (bug #72080).
9654
9655 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
9656
9657         * appdomain.c (set_domain_search_path): Allow this to be called if
9658         domain->setup is not yet set.
9659
9660         * loader.c (mono_method_get_index): New helper function.
9661
9662         * loader.c reflection.c: Use mono_method_get_index ().
9663
9664         * class.c (mono_class_get_method_from_name_flags): New helper method.
9665
9666         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
9667         this.
9668
9669         * class.c (mono_class_get_cctor): New helper method.
9670
9671         * string-icalls.c object.c class.c marshal.c reflection.c: Use
9672         mono_class_get_method () to look up methods.
9673
9674 2005-02-01  Miguel de Icaza  <miguel@novell.com>
9675
9676         * console-io.c: Fix the build, this should work on Windows.
9677
9678 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
9679
9680         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
9681         be set to null to keep things valid
9682
9683 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9684
9685         * icall.c: added Console 2.0 icalls.
9686         * Makefile.am: added console-io.[ch]
9687         * console-io.[ch]: internal calls for Console 2.0 API.
9688
9689 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
9690
9691         * class.c: make sure we consider all the interfaces
9692         when calculating max_interface_id (bug found by
9693         Jeroen Frijters running ikvm).
9694
9695 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
9696
9697         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
9698         valuetype fields to null.
9699
9700         * object.c (set_value): Ditto. Fixes #71669.    
9701
9702 2005-01-31  Martin Baulig  <martin@ximian.com>
9703
9704         * metadata.c (mono_metadata_has_generic_params): New public
9705         function; checks whether something is a generic method.
9706
9707 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
9708
9709         * appdomain.c: fix infinite recursion when adding assemblies.
9710
9711 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
9712
9713         * object.c: Fix small typo to return all items for Environment.
9714         GetCommandLineArgs.
9715
9716 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
9717
9718         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
9719         reflection.c: more domain and assembly-unload related fixes
9720         and memory leaks plugs.
9721
9722 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
9723
9724         * 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.
9725
9726 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
9727
9728         * loader.c (mono_method_signature): Make this method lazy
9729         (mono_get_method_from_token): Don't computate the signature here.
9730
9731         Doing this saves quite a bit of memory. I got 90 kb on starting up
9732         monodoc. It should also save some disk reads on startup.
9733
9734         * *: MonoMethod->signature might be NULL now. You *MUST* use
9735         mono_method_signature.
9736
9737 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
9738
9739         * object.c (mono_runtime_get_main_args): Return an array from the
9740         current domain here. Fixes #71938.
9741
9742 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
9743
9744         * monitor.c: formatting changes to comply with the
9745         mono coding style and remove #ifdefs from the code.
9746
9747 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
9748
9749         * metadata.c, private.h: remove some unneeded data
9750         and use a more compact representation for table schemas.
9751
9752 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
9753
9754         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
9755         to get a better distribution in hash tables.
9756         * *.c: use mono_aligned_addr_hash() where appropriate.
9757         * assembly.c: make var static.
9758
9759 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
9760
9761         * domain-internals.h: Put MonoJitInfo on a diet.
9762
9763         * domain.c: Fix a warning.
9764
9765 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9766
9767         * gc.c: rework the gc handles code to reuse handles
9768         when freed.
9769
9770 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
9771
9772         * domain.c: fixed long standing bug in mono_string_equal() which
9773         was brought to light with the ldstr changes.
9774
9775 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
9776
9777         * reflection.c: Remove warning by adding missing include for marshal.h
9778
9779 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
9780
9781         * domain.c, object.c: change the ldstr_table to hold
9782         MonoString* as keys: makes the runtime isinterned lookup
9783         faster and simplifies memory management.
9784
9785 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
9786  
9787         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
9788         possible to add imperative security checks before calling the icall.
9789         * reflection.c: Return security attributes on the original MonoMethod
9790         (and not the wrapped one). This fix permissions on icalls.
9791
9792 2005-01-25  Dick Porter  <dick@ximian.com>
9793
9794         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
9795         the check for mktime() support actually test the mktime() return
9796         value.  "Fixes" bug 71682, though the output is still different to
9797         MS.
9798
9799 2005-01-25  Martin Baulig  <martin@ximian.com>
9800
9801         * class.c (mono_class_is_assignable_from): Make this work for
9802         generic instances.
9803
9804 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
9805
9806         * marshal.c (mono_string_utf8_to_builder)
9807         (mono_string_builder_to_utf16): We might not have ownership of the
9808         string. In thise case, we need to create a new buffer.
9809
9810         * object-internals.h (mono_stringbuilder_capacity): sb->str might
9811         be null, in which case, use the default capacity.
9812
9813 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
9814
9815         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
9816         GC events to the profiler.
9817
9818 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
9819
9820         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
9821         if you don't want the GC to run.
9822
9823 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
9824
9825         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
9826         start providing a GC API and keeping different implementations in
9827         their own file.
9828         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
9829
9830 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
9831
9832         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
9833         mmap rather than allocating a huge buffer.
9834         (mono_debug_close_mono_symbol_file): Free the buffer allocated
9835         above.
9836
9837 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
9838
9839         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
9840         and CheckExecutionRights.
9841         * reflection.c|h: Keep the index of the declarative security to be 
9842         used, instead of the pointer, when AOT compiler is used. Also add 
9843         class initialization when requesting demands.
9844         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
9845         CheckExecutionRights. Both properties are now FALSE by default, and
9846         unmodifiable, unless the --security option is used.
9847
9848 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
9849
9850         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
9851         reflection.c: properly refcount images and assemblies, many leaks fixed.
9852
9853 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9854
9855         * threadpool.c: increase the timeout for threads in the thread pool to
9856         10s.  Fixes bug #67159.
9857
9858 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
9859
9860         * class-internals.h: Sun's compiler insists on explicit
9861         signed on bit fields to handle then correctly.
9862
9863 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
9864
9865         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
9866         Make the size of the array fit only the number of invalid path
9867         chars that we have.
9868
9869         * class.c (_mono_class_get): Improve the error reporting when a
9870         class referenced is not found, to assist debugging. 
9871
9872 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
9873
9874         * threads.c: fix off-by-one error.
9875         * domain.c: free data allocated in the domain.
9876
9877 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
9878
9879         * reflection.c (mono_method_body_get_object): Fill out exception info
9880         as well.
9881
9882         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
9883         structure.
9884         
9885 2005-01-19  Martin Baulig  <martin@ximian.com>
9886
9887         * loader.c (mono_get_method_constrained): Make this work again.
9888
9889 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
9890
9891         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
9892         guint16 to match the managed side.
9893
9894         * reflection.c (mono_reflection_body_get_object): Fill out local
9895         variables array.
9896
9897         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
9898         as well.
9899
9900         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
9901         'local_var_sig_token'.
9902
9903 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
9904
9905         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
9906         System.Drawing.
9907
9908         * reflection.c (mono_method_body_get_object): Handle abstract and
9909         runtime methods.
9910
9911 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
9912
9913         * marshal.c, loader.c, class-internals.h, reflection.c:
9914         store the emthod data for a wrapper in an array instead of a list.
9915
9916 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
9917
9918         * marshal.c: change the code to allocate memory more
9919         conservatively for method wrappers.
9920
9921 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
9922
9923         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
9924         fields from MonoClass to the marshal info structure where they belong.
9925
9926 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9927
9928         * class.c, object.c, class-internals.h, marshal.c: rearrange
9929         some fields and tweak some types to lower memory usage.
9930
9931 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
9932
9933         * threads.c (signal_thread_state_change): Handle the case when the
9934         target thread is the current thread.
9935
9936         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
9937
9938         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
9939         emit_ptr_to_object_conv. 
9940
9941         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
9942         marshalling. Fixes #71352.
9943
9944 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
9945
9946         * metadata.h, blob.h: move table enum to blob.h so it can be included
9947         in any header.
9948         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
9949         cut the size of MonoImage/MonoDynamicImage.
9950
9951 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
9952
9953         * profiler.c (mono_profiler_install_simple): Fix default arguments.
9954
9955 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
9956
9957         * reflection.c, reflection.h, icall.c: add a function to check
9958         if an attribute type is defined for a metadata object.
9959
9960 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
9961
9962         * object-internals.h: Added some needed fields from StringBuilder class.
9963         * marshal.c: Set the maxCapacity when creating a StringBuilder.
9964
9965 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
9966
9967         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
9968         threads before shutting down the runtime.
9969
9970         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
9971
9972 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
9973
9974         * object-internal.h, threads.c: implement stacksize and 
9975         parameterized thread start functionality (requires
9976         matching corlib). Marked broken code for later removal.
9977
9978 2005-01-12  Martin Baulig  <martin@ximian.com>
9979
9980         * class-internals.h (MonoGenericClass): Moved the `initialized'
9981         flag to MonoDynamicGenericClass, removed `init_pending'.
9982         (MonoGenericInst): Added `is_reference' flag.
9983
9984 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
9985
9986         * reflection.c (mono_image_create_pefile): Only set the pe_offset
9987         inside the MSDOS header. Fixes #71201.
9988
9989         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
9990         gc thread.
9991         (mono_domain_finalize): Ditto.
9992
9993 2005-01-12  Martin Baulig  <martin@ximian.com>
9994
9995         * class.c (mono_get_shared_generic_class): Use the cache for
9996         non-dynamic generic classes.
9997
9998         * class-internals.h (mono_class_create_generic_2): Removed
9999         function prototype, this function is now static inside class.c.
10000
10001         * class.c (mono_class_create_generic_2): Made this static, only
10002         call it from mono_class_init() and mono_class_setup_parent().
10003         (collect_implemented_interfaces_aux): Call mono_class_init() on
10004         the interfaces we collect.
10005         (mono_class_setup_vtable): Call mono_class_init (class->parent).
10006
10007 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
10008
10009         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
10010         it a real thread handle.
10011
10012         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
10013         MonoJitExceptionInfo, since each catch clause needs its own variable.
10014         
10015 2005-01-11  Dick Porter  <dick@ximian.com>
10016
10017         * image.c (mono_pe_file_open): New variant on mono_image_open()
10018         that does not set up the CLI metadata; used for FileVersionInfo so
10019         it can get the data for windows binaries too.
10020         
10021         * process.c (process_read_string_block): Don't read off the end of
10022         the StringTable block.
10023
10024         These both fix bug 70766.
10025
10026 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
10027
10028         * gc.c: set some fields to NULL at GC cleanup time.
10029         * threads.c: if we quit the main thread, call exit ().
10030
10031 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
10032
10033         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
10034
10035 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
10036
10037         * threads.h, threads.c, object.c: added accessor and settor for
10038         main_thread. Handle it specially when exiting from it: wait
10039         for other foreground threads to exit.
10040
10041 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
10042
10043         * process.c, verify.c: remove some bloat.
10044
10045 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
10046
10047         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
10048         the calling convention to cdecl under win32.
10049
10050 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
10051
10052         * object.c (mono_object_get_size): New function to get the size of
10053         an object instance.
10054
10055         * profiler.c (simple_allocation): Use above.
10056
10057 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
10058
10059         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
10060         ves_icall_System_AppDomain_getRootDomain (as it's not required to
10061         get an appdomain by it's id and we can't assume the root's id is 0).
10062         * domain-internals.h: Change the function prototype to match.
10063         * icall.c: Change the icall table for AppDomain.
10064
10065 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
10066
10067         * locales.c (string_invariant_compare_char): Only compute
10068         GUnicodeTypes in the case where we need them.  Test for ordinality
10069         first and return if so.
10070
10071         From the commit:
10072
10073                 /*
10074                  * FIXME: here we must use the information from c1type and c2type
10075                  * to find out the proper collation, even on the InvariantCulture, the
10076                  * sorting is not done by computing the unicode values, but their
10077                  * actual sort order.
10078                  */
10079
10080 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
10081
10082         * loader.c: for P/Invoke methods, allow the "Internal" shared
10083         library name to refer to the calling process symbol namespace.
10084
10085 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
10086
10087         * Makefile.am: Add the security manager to the build.
10088         * security-manager.c|h: New. Initialization of the security manager.
10089
10090 2005-01-07  Dick Porter  <dick@ximian.com>
10091
10092         * threads.c: 
10093         * monitor.c: Update thread state during Monitor and WaitHandle
10094         waits.  Fixes bug 71031.
10095
10096 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
10097
10098         * reflection.c (property_encode_signature): Correctly handle when the
10099         property has no methods.
10100
10101 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
10102
10103         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
10104         
10105         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
10106         fields from mb, not rmb. Fixes #71017.
10107
10108         * marshal.c (emit_ptr_to_str_conv): Add support for 
10109         ByValTStr -> string conversion. Fixes #71015.
10110
10111         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
10112
10113         * mempool.c (mono_mempool_contains_addr): New helper function.
10114
10115 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
10116
10117         * metadata.c (mono_metadata_compute_size): Fix size calculation of
10118         HasSematics encoded fields.
10119         
10120         * metadata.c (mono_type_to_unmanaged): Improve error message for 
10121         invalid string marshalling.
10122
10123         * metadata.c: Fix warnings.
10124         
10125 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
10126
10127         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
10128         profiler support.
10129
10130 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
10131
10132         * domain.c object.c domain-internals.h: Revert part of r38077 since the
10133         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
10134         tests.
10135
10136 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
10137
10138         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
10139         so methods containing these can be AOTed.
10140
10141 2005-01-03  Martin Baulig  <martin@ximian.com>
10142
10143         * loader.c (find_method): Removed the hack for generic instances.
10144         (method_from_memberref): If our parent is a generic instance, pass
10145         its generic type definition to find_method() and then inflate the
10146         method.
10147         (mono_get_method_constrained): Pass the generic type definition to
10148         find_method() and inflate the method later.
10149
10150         * class-internals.h (MonoStats): Added `generic_class_count'.
10151
10152         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
10153         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
10154
10155         * reflection.c (mono_custom_attrs_from_params): Don't ignore
10156         generic type definitions.
10157
10158 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
10159
10160         * loader.c icall.c: Fix warnings.
10161
10162 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
10163
10164         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
10165         blittable types. Fixes #70864.
10166
10167 2004-12-29  Martin Baulig  <martin@ximian.com>
10168
10169         * icall.c
10170         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
10171
10172         * reflection.c (mono_method_get_object): Create a
10173         "System.Reflection.MonoGenericMethod" for inflated methods; don't
10174         call mono_get_inflated_method().
10175
10176         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
10177
10178 2004-12-27  Martin Baulig  <martin@ximian.com>
10179
10180         * class-internals.h (MonoMethod): Added `is_inflated' flag.
10181         (MonoMethodInflated): Added `inflated' field.
10182
10183         * class.c (mono_class_inflate_generic_method): Don't really
10184         inflate the method here; just set the `is_inflated' flag in the
10185         MonoMethod.
10186         (mono_class_get_inflated_method): Actually inflate the method here
10187         if it's not already inflated; we use the MonoMethodInflated's new
10188         `inflated' field as a cache.
10189
10190 2004-12-26  Martin Baulig  <martin@ximian.com>
10191
10192         * class.c
10193         (inflate_generic_class): Moved some code out of inflate_generic_type().
10194         (mono_class_inflate_generic_method): If we're already inflated,
10195         inflate the context and use the declaring method; ie. make sure
10196         the declaring method of an inflated method is always the generic
10197         method definition.
10198         (mono_class_create_from_typedef): Create
10199         `class->generic_container->context->gclass'.
10200
10201 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
10202
10203         * metadata-internals.h, marshal.c, reflection.c: More
10204         MonoGHashTable->GHashTable.
10205
10206         * domain-internals.h, class.c: Change MonoGHashTable's into
10207         GHashTables for some cases where no gc stuff is used
10208
10209         All users: update apis
10210
10211 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
10212
10213         * metadata.c (builtin_types): Make this `const'. Makes this get
10214         put into the shareable section.
10215         (mono_metadata_init): Casts to make gcc happy.
10216
10217 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
10218
10219         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
10220
10221 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
10222
10223         * icall.c: Added an internal call to retrieve the position and length
10224         of assembly-level declarative security attributes (RequestMinimum, 
10225         RequestOptional and RequestRefuse). This is used by the Assembly class
10226         to re-create the corresponding permission sets.
10227
10228 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
10229
10230         * marshal.c: fix the stelemref wrapper to be type correct
10231         (and faster).
10232
10233 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
10234
10235         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
10236         to do key & 0x7fffffff. Hashtable already does this. It just
10237         results in longer code.
10238
10239 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
10240
10241         * appdomain.c: Bump corlib version.
10242         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
10243         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
10244         * reflection.c|h: Add functions to get declarative security infos
10245         (blob position and length) for assemblies, classes and methods.
10246
10247 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
10248
10249         * reflection.c: sort the constant table (bug #70693).
10250
10251 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
10252
10253         * object-internals.h, threads.c, domain.c: add accessors for
10254         the MonoThread and MonoDomain tls keys.
10255
10256 2004-12-18  Martin Baulig  <martin@ximian.com>
10257
10258         * class.c (inflate_generic_type): If we're inflating a generic
10259         instance, set `ngclass->context->container = context->container';
10260         ie. the container we inflated into.
10261
10262         * metadata.c (mono_metadata_parse_generic_param): Reflect above
10263         inflate_generic_type() changes.
10264
10265 2004-12-17  Martin Baulig  <martin@ximian.com>
10266
10267         * class-internals.h
10268         (MonoGenericClass): Replaced `MonoType *generic_type' with
10269         `MonoClass *generic_class'.  Removed `dynamic_info'; if
10270         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
10271         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
10272
10273 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
10274
10275         * exception.c (mono_exception_from_token): New helper function.
10276
10277 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
10278
10279         * assembly.c (mono_assembly_load_with_partial_name): Call 
10280         mono_assembly_loaded before invoking the preload hooks. Fixes
10281         #70564.
10282
10283         * object-internals.h (MonoThread): Change culture_info and 
10284         ui_culture_info into an array.
10285
10286         * threads.c: Cache culture info objects from more than one appdomain.
10287
10288         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
10289         current UI culture.
10290
10291 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
10292
10293         * threads.h threads.c appdomain.c: Clear the culture_info field of
10294         all threads during unloading if they point to an object in the dying
10295         appdomain.
10296
10297 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
10298
10299         * culture-info.h (TextInfoEntry): New struct
10300         * object-internals.h: sync with managed
10301         * locales.c: fill the `text_info_data' field
10302         * culture-info-tables.h: update
10303
10304 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
10305
10306         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
10307         collector.
10308
10309 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
10310
10311         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
10312         (ves_icall_ModuleBuilder_getMethodToken): Ditto
10313
10314 2004-12-12  Martin Baulig  <martin@ximian.com>
10315
10316         * mono-debug-debugger.c (write_type): If we're an enum and the
10317         builtin types have already been initialized, call mono_class_init().
10318
10319 2004-12-11  Martin Baulig  <martin@ximian.com>
10320
10321         * metadata.c (mono_metadata_load_generic_params): Added
10322         `MonoGenericContainer *parent_container' argument; automatically
10323         compute `container->is_method'; pass the correct owner to
10324         get_constraints().      
10325
10326         * reflection.c (compare_genericparam): Sort the GenericParam table
10327         according to increasing owners. 
10328
10329 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
10330
10331         * profiler.c: allow disabling the default profiler.
10332
10333 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
10334
10335         * decimal.c, icall.c: allow disabling System.Decimal support.
10336
10337 2004-12-09  Marek Safar <marek.safar@seznam.cz>
10338
10339         * reflection.c: Add support for null attribute arguments.
10340
10341 2004-12-09  Martin Baulig  <martin@ximian.com>
10342
10343         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
10344         names to get rid of compiler warnings.
10345
10346 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
10347
10348         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
10349         mono_marshal_load_type_info (). Fixes #69625.
10350         (mono_marshal_get_ptr_to_struct): Likewise.
10351
10352 2004-12-08  Martin Baulig  <martin@ximian.com>
10353
10354         * mono-debug.h: Bumped version number to 47.
10355
10356         * mono-debug-debugger.c
10357         (mono_debugger_event_handler, mono_debugger_event): Take two
10358         guint64 arguments insteed of a gpointer and a guint32.  
10359
10360 2004-12-08  Martin Baulig  <martin@ximian.com>
10361
10362         * debug-mono-symfile.h
10363         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
10364         `address' to `native_offset'.
10365
10366 2004-12-08  Martin Baulig  <martin@ximian.com>
10367
10368         * class.c (mono_class_create_from_typespec): Only inflate if we
10369         either have `context->gclass' or `context->gmethod'.
10370
10371 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
10372
10373         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
10374
10375         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
10376
10377         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
10378
10379         * reflection.c (mono_assembly_get_object): Remove the workaround put
10380         in for the release.
10381         
10382         * appdomain.c: Use the corlib_internal field from MonoAssembly.
10383
10384         * appdomain.c: Bump corlib version.
10385
10386         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
10387         be visible in other appdomains.
10388
10389 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
10390
10391         * threads.c: Interlocked inc and dec for longs were messed up,
10392         use a KISS based impl for this. Fixes 70234
10393
10394 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
10395
10396         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
10397
10398 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
10399
10400         * icall.c: fix to follow policy not to allow struct
10401         arguments in icalls.
10402
10403 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10404
10405         * process.c: make the patch that handles spaces in file paths work
10406         on mono/windows too.
10407
10408 2004-12-06  Martin Baulig  <martin@ximian.com>
10409
10410         * class.c (mono_class_create_generic): Call
10411         mono_class_setup_supertypes() if we're dynamic.
10412         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
10413
10414 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
10415
10416         * object-internals.h: Add new fields to MonoThread.
10417
10418         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
10419
10420         * icall.c threads-types.h threads.c: Add new icalls.
10421
10422         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
10423
10424         * object-internals.h (MonoReflectionAssembly): Sync object layout with
10425         managed side.
10426
10427         * appdomain.c: Bump corlib version.
10428
10429         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
10430         internal assemblies. Fixes #69181.
10431
10432 2004-12-05  Martin Baulig  <martin@ximian.com>
10433
10434         * class.c (mono_class_inflate_generic_signature): Make this a
10435         no-op if `context' is NULL or we don't have any type parameters;
10436         also copy `sentinelpos'.        
10437
10438 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
10439
10440         * image.c: Add unbox_wrapper_cache.
10441
10442         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
10443
10444         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
10445         function generator.
10446         
10447         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
10448         Fixes #70173.
10449
10450         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
10451         
10452 2004-12-04  Martin Baulig  <martin@ximian.com>
10453
10454         * loader.c (mono_method_get_signature_full): New public function;
10455         like mono_method_get_signature(), but with an additional
10456         `MonoGenericContext *' argument.
10457
10458         * class.c (mono_class_inflate_generic_signature): Formerly known
10459         as inflate_generic_signature(); make this public.
10460
10461 2004-12-04  Martin Baulig  <martin@ximian.com>
10462
10463         * metadata.c
10464         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
10465         instead of a `MonoGenericContainer *'.  
10466         (mono_metadata_parse_array_full): Likewise.
10467         (mono_metadata_parse_signature_full): Likewise.
10468         (mono_metadata_parse_method_signature_full): Likewise.
10469         (mono_metadata_parse_generic_inst): Likewise.
10470         (mono_metadata_parse_generic_param): Likewise.
10471         (mono_metadata_parse_mh_full): Likewise.
10472         (mono_type_create_from_typespec_full): Likewise.
10473
10474 2004-12-03  Martin Baulig  <martin@ximian.com>
10475
10476         * class-internals.h (MonoGenericContainer): Replaced the
10477         `MonoGenericContext * pointer with a `MonoGenericContext'
10478         structure and made it the first element.
10479
10480 2004-12-03  Martin Baulig  <martin@ximian.com>
10481
10482         * class.c
10483         (inflate_generic_type): Set the `context->container' when creating
10484         a new MonoGenericContext.
10485         (mono_class_inflate_generic_method): Likewise.
10486         (mono_class_create_from_typespec): Just use `context->container'
10487         to get the container.
10488
10489         * loader.c (method_from_methodspec): Set `context->parent' from
10490         `context->container' - and if that's a method container, use its
10491         parent.  Also set the `context->container' when creating a new
10492         MonoGenericContext.
10493         (mono_get_method_from_token): Use just `context->container' to get
10494         the container.
10495
10496         * metadata.c (do_mono_metadata_parse_generic_class): Also set
10497         `gclass->context->container'.
10498
10499         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
10500         the `context->container' when creating a new MonoGenericContext.
10501
10502 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
10503
10504         * reflection.c (compare_genericparam): Sort params with identical
10505         owner by their number. Fixes gen-111 on sparc.
10506
10507 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
10508
10509         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
10510         around the domain changes.
10511
10512         * appdomain.c (mono_domain_unload): Handle the case when the thread
10513         calling Unload is itself being aborted during unloading. Fixes #70022.
10514
10515         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
10516
10517         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
10518         checkpoint_func as an icall so it gets a wrapper.
10519         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
10520         in the cross-appdomain wrappers too.
10521
10522         * threads.c (mono_thread_has_appdomain_ref): Make this public.
10523
10524         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
10525
10526         * reflection.c: Fix some memory leaks.
10527         
10528 2004-12-02  Martin Baulig  <martin@ximian.com>
10529
10530         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
10531
10532         * metadata.c (generic_class_cache): New static hashtable.
10533         (mono_metadata_lookup_generic_class): New public method.
10534
10535 2004-12-02  Martin Baulig  <martin@ximian.com>
10536
10537         * class.c (mono_class_create_from_typedef): Call
10538         mono_class_setup_parent() and mono_class_create_mono_type() before
10539         parsing the interfaces.
10540
10541 2004-12-02  Martin Baulig  <martin@ximian.com>
10542
10543         * metadata.c (generic_inst_cache): New static hashtable.
10544         (mono_metadata_lookup_generic_inst): New public function.
10545         (mono_metadata_inflate_generic_inst): New public function.
10546         (mono_metadata_parse_generic_inst): New public function.
10547         (do_mono_metadata_parse_generic_class): Use the new
10548         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
10549         since this'll also use the cache.
10550
10551         * reflection.c (mono_reflection_bind_generic_method_parameters):
10552         Use mono_metadata_lookup_generic_inst() to use the new cache.
10553
10554         * class.c (inflate_mono_type): Use
10555         mono_metadata_inflate_generic_inst() to inflate a generic
10556         instance; this'll also use the new cache.
10557
10558         * loader.c (method_from_methodspec): Use
10559         mono_metadata_parse_generic_inst() and
10560         mono_metadata_inflate_generic_inst() rather than parsing it
10561         manually, so we can use the new cache.
10562
10563 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
10564
10565         * threads.c (wait_for_tids): Do not incorrectly free threads when 
10566         the wait times out.
10567
10568 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
10569
10570         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
10571         iter->args based on whether parameters are passed in registers (i.e.
10572         MONO_ARCH_REGPARMS is defined)
10573
10574 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
10575
10576         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
10577         the exception message. Fixes #70070.
10578         (method_from_methodspec): Fix warnings.
10579
10580 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10581
10582         * process.c: (complete_path) return the path quoted
10583
10584 2004-12-01  Martin Baulig  <martin@ximian.com>
10585
10586         * class-internals.h (MonoGenericInst): New structure.
10587         (MonoGenericClass): Replaced `type_argc', `type_argv' and
10588         `is_open' with `MonoGenericInst *inst'.
10589         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
10590         `is_open' with `MonoGenericInst *inst'.
10591
10592 2004-11-30  Martin Baulig  <martin@ximian.com>
10593
10594         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
10595
10596         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
10597         to `generic_class_cache'.
10598
10599         * metadata.c
10600         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
10601         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
10602         (mono_generic_inst_is_valuetype): Renamed to
10603         mono_generic_class_is_valuetype().
10604
10605         * class-internals.h
10606         (MonoGenericInst): Renamed to MonoGenericClass.
10607         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
10608         (MonoClass): Renamed `generic_inst' to `generic_class'.
10609         (MonoGenericContext): Renamed `ginst' to `gclass'.
10610
10611         * object-internals.h
10612         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
10613
10614         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
10615         mono_reflection_generic_class_initialize().
10616
10617         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
10618         now known as "System.Reflection.MonoGenericClass".
10619         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
10620
10621 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
10622
10623         * class-internals.h: Added a flag field to MonoClass to cache the
10624         declarative security attributes actions associated with the class.
10625         * domain-internals.h: Added booleans to MonoJitInfo to cache the
10626         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
10627         applicable to the JITted method.
10628         * reflection.c|h: Added functions to extract (as flags) which security
10629         actions are available (declaratively) for a method, class or assembly.
10630         * metadata.c|h: Added functions to search the declarative security
10631         table in the metadata.
10632         
10633 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
10634
10635         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
10636         EXPORTEDTYPES are already in the class name cache, so there is no
10637         need to add extra code here to look at them. Just removes a bit of
10638         cruft.
10639
10640         (ves_icall_System_Environment_get_TickCount): No need for #if
10641         WINDOWS. We already have the code in io-layer.
10642
10643 2004-11-28  Martin Baulig  <martin@ximian.com>
10644
10645         * loader.c
10646         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
10647         Fixes gen-112.cs.
10648
10649 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
10650
10651         * assembly.c (do_mono_assembly_open): Instead of having a
10652         conditional WITH_BUNDLE, incorporate support for bundles here, by
10653         having a global `bundles' variable holding a pointer to the actual
10654         bundles. 
10655
10656         (mono_register_bundled_assemblies): New API call used by the
10657         bundle code. 
10658
10659         See mkbundle.1 for details.
10660         
10661 2004-11-27  Martin Baulig  <martin@ximian.com>
10662
10663         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
10664         the vtable for generic methods.
10665
10666 2004-11-26  Martin Baulig  <martin@ximian.com>
10667
10668         * metadata.c
10669         (mono_metadata_generic_method_hash): New public function.
10670         (mono_metadata_generic_method_equal): Likewise.
10671
10672         * class-internals.h
10673         (MonoGenericContainer): Added `GHashTable *method_hash'.
10674
10675         * reflection.c (ReflectionMethodBuilder): Added
10676         `MonoGenericContainer *generic_container'.
10677         (reflection_methodbuilder_to_mono_method): Don't create a new
10678         MonoGenericContainer each time we're called.
10679         (mono_reflection_bind_generic_method_parameters): Use
10680         `container->method_hash' to cache the results so we don't create a
10681         different method if we're called several times with the same
10682         arguments.
10683
10684         * loader.c (method_from_methodspec): Use the new
10685         `container->method_hash' here, too.
10686
10687 2004-11-26  Martin Baulig  <martin@ximian.com>
10688
10689         * class.c (inflate_generic_signature): Correctly compute
10690         `res->has_type_parameters'.
10691         (mono_class_vtable): Use the `has_type_parameters' flag to
10692         determine whether we're a generic method.
10693
10694         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
10695
10696 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
10697
10698         * object.c (mono_runtime_run_main): Fix a small memory leak.
10699
10700 2004-11-25  Martin Baulig  <martin@ximian.com>
10701
10702         * class.c (set_generic_param_owner): Fixed the loop.
10703
10704 2004-11-25  Martin Baulig  <martin@ximian.com>
10705
10706         * object.c (mono_class_vtable): Don't create any JIT wrappers for
10707         generic methods.
10708
10709 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
10710
10711         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
10712         names. Fixes #69787.
10713
10714 2004-11-24  Martin Baulig  <martin@ximian.com>
10715
10716         * class.c (mono_class_create_generic_2): If we don't have a
10717         `ginst->parent', inflate `gklass->parent' to get our parent.
10718
10719 2004-11-24  Martin Baulig  <martin@ximian.com>
10720
10721         * reflection.c (compare_genericparam): Correctly sort the
10722         GenericParam table; fixes #69779.
10723
10724 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
10725
10726         * reflection.c: When writing a PE file, don't create a huge
10727         buffer in memory. Just write the arrays we have to the file.
10728         This reduces memory usage.
10729
10730         * metadata-internals.h: MonoDynamicStream pefile is no longer used
10731         globally.
10732
10733 2004-11-17  Martin Baulig  <martin@ximian.com>
10734
10735         * class.c (mono_class_init): Don't setup `class->parent' for
10736         dynamic instances; moved this to mono_class_generic_2().
10737         (mono_class_create_generic): Also set `klass->inited' for dynamic
10738         generic instances.
10739         (mono_class_create_generic_2): Don't do anything for dynamic
10740         generic instances.  Set `klass->parent' here and also call
10741         mono_class_setup_parent() here. 
10742
10743         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
10744         `MonoType *parent' argument; set `ginst->parent' before calling
10745         mono_class_create_generic_2(), so we set the correct parent.
10746
10747 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
10748
10749         * reflection.c: allow getting attributes from ModuleBuilder
10750         (used by ikvm).
10751
10752 2004-11-17  Martin Baulig  <martin@ximian.com>
10753
10754         * class.c (mono_class_create_from_typedef): If a type parameter is
10755         inherited from an outer class, set its owner to that class.
10756
10757 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
10758
10759         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
10760           for (int*) written size. This fixes bug #69592.
10761
10762 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
10763
10764         * icall.c: Added IsAuthenticodePresnet internal call.
10765         * image.c|h: New function that check a MonoImage for an Authenticode
10766         signature in the certificate PE data directory.
10767         * security.c|h: New internal call to ask the runtime if an 
10768         Authenticode signature seems referenced in the PE header.
10769
10770 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
10771
10772         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
10773
10774         * reflection.c (mono_image_create_pefile): Free the assembly streams
10775         after writing out the assembly file.
10776
10777         * object.c (mono_runtime_run_main): Fix small memory leak.
10778
10779         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
10780         property access modifiers. Fixes #69389.
10781
10782 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
10783
10784         * domain.c, object.c, object-internals.h, domain-internals.h,
10785         object.h, marshal.c: keep dynamic code info per domain.
10786
10787 2004-11-15  Martin Baulig  <martin@ximian.com>
10788
10789         * class.c (mono_type_get_name_recurse): Put type arguments in
10790         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
10791         see bug #68387.
10792
10793 2004-11-15  Martin Baulig  <martin@ximian.com>
10794
10795         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
10796         (mono_class_setup_vtable): When computing `the_cname' for a
10797         generic instance, don't include the namespace since we'd otherwise
10798         add it twice.
10799
10800 2004-11-15  Martin Baulig  <martin@ximian.com>
10801
10802         * class.c (mono_class_create_generic): Changed return type to void.
10803         (mono_class_create_generic_2): New public function; setup
10804         `class->method', `class->field' and `class->interfaces' here
10805         instead of in mono_class_init().
10806
10807         * class.h (mono_class_create_generic): Moved to class-internals.h.
10808
10809 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
10810
10811         * reflection.c (mono_image_create_pefile): take a file HANDLE.
10812         rather than writing to memory, write to this file. Right now,
10813         we are just writting into a buffer, and copying that. However
10814         we can avoid the buffer later.
10815
10816         (mono_dynamic_stream_reset): new function
10817
10818         * icall.c, object-internals.h: update for the above.
10819
10820 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
10821
10822         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
10823         have been using gc'd memory. First it is slower, unlikely
10824         the comment in the source code said, secondly, it increases
10825         our footprint to do it in the gc.
10826
10827         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
10828         the method so that it does not have to copy to managed code.
10829
10830 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
10831
10832         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
10833
10834 2004-11-12  Martin Baulig  <martin@localhost>
10835
10836         * reflection.c (mono_image_create_token): Allow generic method
10837         definitions here, since they may appear in an `.override'; see
10838         gen-98/gen-99 for an example.
10839
10840 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
10841
10842         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
10843         #69365.
10844
10845         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
10846         descriptive.
10847
10848 2004-11-11  Martin Baulig  <martin@ximian.com>
10849
10850         * class.c (mono_class_setup_vtable): In an explicit interface
10851         implementation, the method name now includes the arity.
10852
10853 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
10854
10855         * object.c (mono_array_full_copy): Fix warning.
10856
10857 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
10858
10859         * appdomain.c: Removed look_for_method_by_name(). Use the new method
10860         mono_class_get_method_from_name() instead.
10861         
10862         * class-internals.h: Added two new types of wrappers. 
10863         Added MonoRemotingTarget enum. Added new trampoline function type, which
10864         takes an additional MonoRemotingTarget value as parameter, so it is
10865         possible to request a trampoline for a specific target.
10866         
10867         * class.c: Added new mono_class_get_method_from_name() method.
10868         
10869         * class.h: In MonoRemoteClass, we can have now to vtables, one for
10870         general remoting sinks and one specific for cross domain calls.
10871         
10872         * debug-helpers.c: Added new wrapper names.
10873         
10874         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
10875         of a remote class.
10876         
10877         * image.c: Porperly delete value objects form the remoting invoke hashtable.
10878         
10879         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
10880         with several other methods (mono_marshal_get_xappdomain_dispatch,
10881         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
10882         and others) can generate a fast remoting wrapper for cross domain calls.
10883         More information can be found in docs/remoting.
10884         Other changes: Removed mono_find_method_by_name, and used
10885         mono_class_get_method_from_name instead.
10886         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
10887         is stored in the remoting invoke hashtable.
10888         
10889         * marshal.h: published the new method for getting the xdomain wrapper,
10890         and also added a method for getting the adequate wrapper for a given
10891         method and target.
10892         
10893         * object-internals.h, object.c: Added a couple of methods for capying and
10894         cloning arrays.
10895         Modified mono_install_remoting_trampoline, which takes the new remoting
10896         trampoline that has a remoting target as parameter.
10897         mono_class_proxy_vtable now also takes a remoting target as parameter, and
10898         will return the most suitable vtable for the target.
10899         Added mono_remote_class_vtable, which returns the vtable of a remote class
10900         (which can be the normal remoting vtable or the xdomain vtable).
10901         
10902         * threads.c: the xdomain invoke and dispatch wrappers must also be
10903         protected against interruptions.
10904
10905 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10906
10907         * icall.c: use memmove in BlockCopyInternal when the source and
10908         destination arrays are the same.
10909
10910 2004-11-09  Martin Baulig  <martin@ximian.com>
10911
10912         * class-internals.h (MonoGenericContainer): Removed `method' and
10913         `signature', replaced them with `is_method' and `is_signature'
10914         flags.  Added `context'.
10915
10916         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
10917         instead of a `MonoGenericContainer *'.
10918
10919         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
10920         for dynamic type parameters.
10921         (mono_metadata_load_generic_params): Setup `container->context'.
10922
10923         * reflection.c (mono_reflection_setup_generic_class): Setup
10924         `tb->generic_container->context'.
10925         (do_mono_reflection_bind_generic_parameters): Use
10926         mono_class_inflate_generic_type() to correctly inflate types,
10927         rather than using our own hack just for MONO_TYPE_VAR.
10928
10929 2004-11-09  Martin Baulig  <martin@ximian.com>
10930
10931         * class.c (mono_class_inflate_generic_method): Small fix; don't
10932         crash here.
10933
10934         * icall.c
10935         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
10936         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
10937         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
10938         (ves_icall_Type_BindGenericParameters): Likewise.
10939         (ves_icall_Type_get_IsGenericInstance): Likewise.
10940         (ves_icall_Type_GetGenericParameterPosition): Likewise.
10941         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
10942         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
10943         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
10944
10945 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
10946
10947         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
10948         assembly versions and public key tokens. Fixes #69113.
10949
10950 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
10951
10952         * metadata.c: fix bug introduced with the type cache changes
10953         on 2004-11-06.
10954
10955 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
10956
10957         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
10958         the MonoClass pointer instead of the token in exception clauses.
10959         * reflection.c: updates for the above and make the code not depend
10960         on the structure of MonoExceptionClause.
10961
10962 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
10963
10964         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10965         Add support for dynamic assemblies. Fixes #69114.
10966
10967         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
10968
10969 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
10970
10971         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
10972         since most only those methods use it. the code member of
10973         MonoMethodPInvoke was dead, so that can be removed too. Also,
10974         remove inline_count (again, not used), and move slot so that it
10975         can share bits with some other flags. This saves 8 bytes in the
10976         structure and gives us about 50 kb back for mcs helloworld.cs
10977
10978         * *.[ch]: Do naming changes for the above.
10979
10980         * loader.c (mono_method_get_header): Lazily init the header
10981         on first access.
10982         (mono_get_method_from_token): don't init the header here
10983         (mono_free_method): the header may never be allocated
10984
10985         Overall, this saves 150 kb of unmanaged allocations
10986         for mcs helloworld.cs. That accounts for 10% of the unmanaged
10987         memory at runtime.
10988         
10989         * loader.c, loader.h (mono_method_get_header): new accessor.
10990
10991         * *.[ch]: use the above method. Prepares us to lazily load
10992         the header.
10993
10994         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
10995         three warnings, which are actual bugs (see 69206).
10996
10997         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
10998         unused. Saves a cool 4 bytes / method.
10999
11000 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
11001
11002         * metadata.c (builtin_types): Add types for System.Object here.
11003         (mono_metadata_parse_type_full): Cache MonoType*'s that are
11004         for a class or valuetype from klass->this_arg or klass->byval_arg.
11005
11006         On mcs for a hello world, this gets us down from 21836 MonoType's
11007         to 14560.
11008
11009         (mono_metadata_free_type): Account for the above change.
11010
11011 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
11012
11013         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
11014         exception instead of asserting if name is null.
11015         (ves_icall_System_AppDomain_GetData): Ditto.
11016
11017 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
11018
11019         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
11020         EnumBuilder.
11021
11022         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
11023         Return NULL when the domain does not have entry_assembly set.
11024
11025         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
11026         Add a 'resource_modules' argument.
11027         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
11028
11029         * reflection.c (mono_reflection_create_runtime_class): Move setting
11030         of wastypebuilder here, so mono_get_type_object () returns a MonoType
11031         for enums too.
11032
11033         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
11034         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
11035         Throw an ArgumentNullException if 'ptr' is null.
11036
11037         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
11038         assemblies here. Fixes #69020.
11039
11040 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
11041
11042         * reflection.c (build_compressed_metadata): Fix the previous patch for
11043         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
11044         the stack.
11045
11046 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
11047
11048         * assembly.c (mono_assembly_names_equal): Allow a match if one of
11049         the cultures is false. Fixes #69090.
11050
11051         * reflection.c (build_compressed_metadata): Fix invalid memory read 
11052         detected by valgrind.
11053         
11054         * reflection.c (mono_reflection_get_type): Avoid triggering a 
11055         TypeResolve multiple times for the same type. Fixes #65577.
11056
11057 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
11058
11059         * marshal.c: Avoid using ldftn to call managed functions. It is
11060         much slower than just a call.
11061
11062         * reflection.c (mono_module_get_object): free the basename we
11063         allocate here from glib.
11064         
11065         * reflection.c (ensure_runtime_vtable): make sure to free
11066         overrides.  Also, we were allocating an array of MonoMethod not an
11067         array of MonoMethod*.
11068
11069         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
11070
11071         * image.c (mono_image_close): free image->guid here.
11072
11073 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
11074
11075         * reflection.c: Fix some spec conformance issues with the PE file
11076         structures so mcs compiled apps run on the Net 2.0 beta.
11077
11078 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
11079
11080         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
11081         Implement this. Fixes #67264.
11082
11083         * debug-helpers.h debug-helpers.c marshal.c: Move 
11084         mono_find_method_by_name to debug-helpers.c.
11085
11086 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
11087
11088         * object.c (mono_release_type_locks): type_initialization_hash is
11089         a GHashTable.
11090
11091         * reflection.c object.c object-internals.h: Fix warnings.
11092
11093         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
11094         without accessors. Fixes #61561.
11095
11096         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
11097         application base from the root domain if not set. Fixes #65641.
11098         (mono_runtime_init): Fix warning.
11099
11100 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11101
11102         * appdomain.c: call mono_thread_pool_init.
11103         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
11104         of worker threads based on the number of CPUs and the environment
11105         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
11106         for non-windows (windows) systems.
11107
11108 2004-10-27  Chris Toshok  <toshok@ximian.com>
11109
11110         * mono-debug-debugger.c (write_class): don't call mono_class_init
11111         here, as even with the check for (!klass->init_pending), we get
11112         into a situation where we're hitting cycles in class
11113         initialization.  Fixes #68816.
11114
11115 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
11116
11117         * image.c: Avoid overwriting values in the loaded_images_hash when an
11118         assembly is loaded multiple times. Fixes #61152.
11119
11120         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
11121         so multiple satellite assemblies for the same name can be loaded.
11122         Fixes #68259.
11123
11124         * mono_domain_assembly_preload: Actually return the loaded assembly, 
11125         not NULL.
11126
11127         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
11128         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
11129
11130         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
11131         pending finalizers are not invoked after the appdomain has been 
11132         unloaded. Fixes #67862.
11133
11134 2004-10-22  Martin Baulig  <martin@ximian.com>
11135
11136         * mono-debug-debugger.c
11137         (mono_debugger_runtime_invoke): Don't box valuetypes.
11138
11139 2004-10-22  Chris Toshok  <toshok@ximian.com>
11140
11141         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
11142         don't hide private methods.
11143
11144 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
11145
11146         * icall.c: Allows the runtime to "share" (when known) the public key
11147         token of an assembly. This avoid the need to recalculate the token 
11148         (from the public key) in managed code.
11149
11150 2004-10-21  Chris Toshok  <toshok@ximian.com>
11151
11152         * debug-helpers.c (append_class_name): argh, revert last patch.
11153         
11154 2004-10-21  Chris Toshok  <toshok@ximian.com>
11155
11156         * debug-helpers.c (append_class_name): use '+' as the delimiter,
11157         not '/', so that it matches what the debugger uses to look up
11158         methods.
11159
11160 2004-10-21  Martin Baulig  <martin@ximian.com>
11161
11162         * mono-debug-debugger.c (mono_debugger_throw_exception): New
11163         public method; this is called each time an exception is thrown and
11164         allows the debugger to use exception catch points.
11165
11166 2004-10-21  Martin Baulig  <martin@ximian.com>
11167
11168         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
11169         the stack pointer and the exception object in some struct and pass
11170         that to the debugger.
11171
11172 2004-10-21  Chris Toshok  <toshok@ximian.com>
11173
11174         * mono-debug-debugger.c (do_write_class): add instance/static
11175         event support.  We don't expose "raise" or "other" yet.
11176         (event_is_static): new method.
11177
11178 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
11179
11180         * mono-debug-debugger.c
11181         (mono_debugger_handle_exception): Remove
11182         bogus return value for fussy compilers.
11183
11184 2004-10-20  Martin Baulig  <martin@ximian.com>
11185
11186         * mono-debug-debugger.c
11187         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
11188         (mono_debugger_handled_exception): Likewise.
11189
11190 2004-10-20  Martin Baulig  <martin@ximian.com>
11191
11192         * mono-debug-debugger.h (MonoDebuggerEvent): Added
11193         MONO_DEBUGGER_EVENT_EXCEPTION.
11194
11195         * mono-debug-debugger.c (mono_debugger_handle_exception): New
11196         public function to send the debugger a notification for an
11197         exception and inform it about a catch/finally clause.
11198
11199 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
11200
11201         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
11202         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
11203         fix 2.95 build. 
11204
11205         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
11206
11207 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
11208
11209         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
11210         marshalled as [In,Out]. Fixes #58325.
11211
11212 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
11213
11214         * reflection.c (mono_method_body_get_object): Implement some fields.
11215
11216 2004-10-12  Martin Baulig  <martin@ximian.com>
11217
11218         * reflection.c (mono_reflection_bind_generic_parameters): Small
11219         fix, correctly retrieve our parent from a generic instance.
11220
11221 2004-10-12  Martin Baulig  <martin@ximian.com>
11222
11223         * metadata.c (mono_metadata_generic_param_equal): We always have
11224         an owner.
11225
11226         * class.c
11227         (mono_class_from_generic_parameter): We need to have an owner.
11228         (my_mono_class_from_generic_parameter): Likewise.
11229
11230         * reflection.c (mono_reflection_setup_generic_class): Renamed to
11231         mono_reflection_create_generic_class() and added a new
11232         mono_reflection_setup_generic_class().  
11233         (mono_reflection_initialize_generic_param): If we're a nested
11234         generic type and inherited from the containing class, set our
11235         owner to the outer class.
11236
11237 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
11238
11239         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
11240
11241         * reflection.c (mono_method_body_get_object): New function to create
11242         a MethodBody object.
11243
11244         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
11245
11246 2004-10-11  Martin Baulig  <martin@ximian.com>
11247
11248         * metadata.c (_mono_metadata_type_equal): Renamed to
11249         do_mono_metadata_type_equal() and made static.
11250
11251 2004-10-11  Martin Baulig  <martin@ximian.com>
11252
11253         * appdomain.c: Bump corlib version number to 28.
11254
11255 2004-10-10  Martin Baulig  <martin@ximian.com>
11256
11257         * class-internals.h
11258         (MonoGenericInst): Added `MonoGenericContainer *container'.
11259         (MonoGenericMethod): Likewise.
11260         (MonoGenericContext): Likewise.
11261         (MonoGenericParam): Added `MonoGenericContainer *owner'.
11262
11263         * metadata.c
11264         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
11265         (do_mono_metadata_parse_generic_inst): Likewise.
11266         (mono_metadata_parse_type_full): New public method.  This is the actual
11267         mono_metadata_parse_type() implementation - with an additional
11268         `MonoGenericContainer *' argument.
11269         (mono_metadata_parse_array_full): Likewise.
11270         (mono_metadata_parse_signature_full): Likewise.
11271         (mono_metadata_parse_method_signature_full): Likewise.
11272         (mono_metadata_parse_mh_full): Likewise.
11273         (mono_type_create_from_typespec): Likewise.
11274         (mono_metadata_interfaces_from_typedef_full): New public method;
11275         this is similar to the other _full() methods, but we take a
11276         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
11277         (mono_metadata_parse_generic_param): Take an additional
11278         `MonoGenericContainer *' argument and lookup the MonoGenericParam
11279         from that container.
11280         (mono_metadata_generic_param_equal): New static method to compare
11281         two type parameters.
11282         (_mono_metadata_type_equal): New static method; takes an
11283         additional `gboolean signature_only' argument - if true, we don't
11284         compare the owners of generic parameters.
11285         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
11286         with a TRUE argument - do a signature-only comparision.
11287
11288         * loader.c: Use the new _full() methods and pass the
11289         MonoGenericContainer to them.
11290
11291         * object-internals.h (MonoReflectionTypeBuilder): Added
11292         `MonoGenericContainer *generic_container' field.
11293         (MonoReflectionMethodBuilder): Likewise.
11294
11295 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
11296
11297         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
11298         case initial images of dynamic assemblies.
11299
11300         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
11301
11302         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
11303
11304         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
11305         length of event->other array.
11306         (typebuilder_setup_events): Ditto.
11307
11308         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
11309         'assembly_by_name' and add an 'assemblies' list.
11310
11311         * assembly.h assembly.c: Add a new search hook for determining whenever
11312         an assembly is already loaded. Use this instead of searching in the
11313         loaded_assemblies list.
11314
11315         * domain.c appdomain.c: Implement the new search hook so loaded 
11316         assemblies are now scoped by appdomain. Fixes #67727.
11317
11318 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
11319
11320         * threads.c (mono_thread_attach): Initialize synch_lock field so
11321         mono_thread_detach works again.
11322
11323         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
11324         'lib' too. Fixes #63130.
11325
11326 2004-10-06  Jackson Harper  <jackson@ximian.com>
11327
11328         * culture-info-tables.h: regenerated.
11329
11330 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
11331
11332         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
11333         implemented by other interfaces in the result. Fixes #65764.
11334         
11335         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
11336         Handle unloadable modules without crashing.
11337
11338         * image.c (load_modules): Revert the previous patch since modules must
11339         have a fixed index inside the array.
11340         
11341         * image.c (load_modules): Don't include native modules in the modules
11342         array.
11343
11344 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
11345
11346         * reflection.h: Add param_defaults field.
11347
11348         * reflection.c: Add support for parameter defaults in dynamic methods.
11349         Fixes #64595.
11350
11351         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
11352         an empty string when a type has no namespace. Fixes #64230.
11353
11354 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
11355
11356         * tabledefs.h: Added "internal" security actions to support non-CAS
11357         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
11358         Note: they do not seems to be used anymore in 2.0 (new metadata format)
11359
11360 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
11361
11362         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
11363         constructor of abstract class. Fixes #61689.
11364
11365 2004-10-04  Martin Baulig  <martin@ximian.com>
11366
11367         * class-internals.h (MonoGenericContainer): New type.
11368         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
11369         `MonoGenericContainer *generic_container'.
11370         (MonoClass): Replaced `gen_params' and `num_gen_params' with
11371         `MonoGenericContainer *generic_container'.
11372
11373         * metadata.c (mono_metadata_load_generic_params): Return a
11374         `MonoGenericContainer *' instead of a `MonoGenericParam *';
11375         removed the `num' argument.
11376
11377 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
11378
11379         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
11380         for dynamic images.
11381
11382         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
11383         machine fields.
11384
11385         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
11386
11387         * reflection.c: Save pe_kind and machine values into the generated
11388         image file.
11389
11390         * appdomain.c: Bump corlib version number.
11391
11392         * object-internals.h: Reorganize layout of LocalBuilder.
11393
11394         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
11395         New helper function.
11396
11397         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
11398         created MonoType for dynamic types. Fixes #66180.
11399
11400 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
11401
11402         * threadpool.c: the ares hashtable needs a critical section around it.
11403         this prevents some nasty segfaults
11404
11405 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
11406
11407         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
11408         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
11409         bug 67324).
11410         
11411 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
11412
11413         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
11414         
11415 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
11416
11417         * image.c: Always canonicalize image file names, to avoid loading
11418         the same assembly twice when referenced using a relative path.
11419
11420 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
11421
11422         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
11423
11424         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
11425
11426         * marshal.c: Fix warnings.
11427
11428 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
11429
11430         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
11431         attempting to marshal the delegate_trampoline as the method_addr.
11432         This patch has a static hashtable of marshalled delegates so that 
11433         we can map delegate_trampoline addresses back to delegates.  This
11434         allows a delegate passed to managed code to be passed back into native
11435         code.  Fixes #67039
11436
11437 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
11438
11439         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
11440
11441         * reflection.c (method_encode_code): Align method headers properly.
11442         Fixes #66025.
11443
11444 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
11445
11446         * marshal.c: In the runtime invoke wrapper, reset the abort
11447         exception if it is cached. This avoids the automatic rethrowal of 
11448         the exception after the catch of the wrapper. Also check for pending
11449         interruptions before calling the managed method. This is done using
11450         the new method emit_thread_force_interrupt_checkpoint, since the
11451         normal checkpoint method is ignored when running the invoke wrapper.
11452         * object.c: If the abort exception is rethrown, set the abort_exc
11453         field of the thread, so it will be rethrown aftere every catch.
11454         * threadpool.c: Only run an interruption checkpoint if what has been
11455         requested is a stop of the thread (aborts will be ignored).
11456         * threads.c: By default, a thread will now never be interrumped while
11457         running the runtime invoke wrapper (this ensures that runtime_invoke
11458         will always return to the caller if an exception pointer is provided).
11459         There is a new special method mono_thread_force_interruption_checkpoint()
11460         to force an interruption checkpoint even if running a protected
11461         wrapper, which is used by the same runtime invoke wrapper to do a check
11462         at a safe point.
11463
11464 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
11465
11466         * object.c, object-internals.h: Implemented mono_release_type_locks,
11467         which releases the cctor locks held by a thread.
11468         * threads.c, threads.h: In thread_cleanup, release cctor locks held
11469         by a thread. Added mono_thread_exit() method to be used to safely stop
11470         a thread.
11471
11472 2004-09-28  Raja R Harinath  <rharinath@novell.com>
11473
11474         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
11475         Move null check before dereference.  Avoid indexing beyond the end
11476         of the 'modules' array.
11477
11478 2004-09-28  Raja R Harinath  <rharinath@novell.com>
11479
11480         * metadata-internals.h (MonoImage): Add module_count field.
11481         * image.c (load_modules): Set image->module_count.
11482         (mono_image_load_file_for_image): Use image->module_count.
11483         * reflection.c (mono_image_load_module): Append to image->modules array 
11484         of dynamic assembly.
11485         (mono_module_get_object): Fix loop to actually increment index.
11486         Use image->module_count.
11487         * assembly.c (mono_assembly_load_references): Use image->module_count.
11488         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
11489         Likewise.
11490
11491 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
11492
11493         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
11494         Avoid assert on generic types.
11495
11496 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
11497
11498         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
11499
11500         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
11501
11502         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
11503         function to convert a MarshalSpec structure to its managed counterpart.
11504
11505         * reflection.c: Fix warnings.
11506         
11507         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
11508         field.
11509
11510         * icall.c (mono_create_icall_signature): Fix build.
11511
11512 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
11513
11514         * icall.c: Add MakePointType icall.
11515
11516         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
11517         warnings.
11518
11519 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11520
11521         * threadpool.c: reuse allocated slots in the queue.
11522
11523 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
11524
11525         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
11526
11527         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
11528
11529         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
11530         previous change.
11531
11532         * tabledefs.h: Add constants for pinvoke attributes BestFit and
11533         ThrowOnUnmappableChar.
11534
11535         * icall.c (ves_icall_Type_GetPacking): New icall.
11536
11537 2004-09-24  Martin Baulig  <martin@ximian.com>
11538
11539         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
11540
11541 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11542
11543         * appdomain.c:
11544         (mono_domain_set): allow setting a domain that is being unloaded.
11545         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
11546         being unloaded.
11547
11548 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
11549
11550         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
11551         the GetCustomAttributes icall.
11552
11553 2004-09-23  Martin Baulig  <martin@ximian.com>
11554
11555         * object-internals.h (MonoReflectionGenericParam): Replaced
11556         'has_ctor_constraint', `has_reference_type' and `has_value_type'
11557         with `guint32 attrs'.
11558
11559 2004-09-23  Martin Baulig  <martin@ximian.com>
11560
11561         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
11562
11563 2004-09-23  Martin Baulig  <martin@ximian.com>
11564
11565         * object-internals.h (GenericParameterAttributes): New enum.
11566
11567 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
11568
11569         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
11570         
11571         * class.c (init_events): Fill out event->other field.
11572
11573         * class.c: Fix warnings.
11574
11575         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
11576
11577 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
11578
11579         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
11580         walk which doesn't supply the IL offset.
11581
11582 2004-09-22  Martin Baulig  <martin@ximian.com>
11583
11584         * reflection.c (mono_reflection_setup_internal_class): If we're
11585         System.ValueType, System.Object or System.Enum, set
11586         `klass->instance_size' and create the vtable.
11587         (mono_reflection_create_internal_class): If we're an enum type,
11588         get the base class from our current corlib.
11589
11590 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
11591
11592         * reflection.h (MonoResolveTokenError): New type.
11593
11594         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
11595         icall.
11596
11597         * icall.c: Add an 'error' argument to the ResolveToken icalls.
11598
11599 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
11600
11601         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
11602         Support also calling constructors, but only for already allocated objects.
11603
11604 2004-09-17  Geoff Norton <gnorton@customerdna.com>
11605
11606         * reflection.c (type_get_qualified_name): If the klass is null
11607         return the typename to avoid a NullRefEx.
11608         (encode_cattr_value): Get the qualified name of the boxed type,
11609         not the underlying enumtype.  Fixes #62984.
11610
11611 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
11612
11613         * marshal.c: Fix problems with previous checkin.
11614
11615 2004-09-21    <vargaz@freemail.hu>
11616
11617         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
11618         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
11619
11620         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
11621
11622 2004-09-21  Geoff Norton <gnorton@customerdna.com>
11623
11624         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
11625         should only return a type for pointers, arrays, and passbyref types.
11626         Fixes bug #63841.
11627
11628 2004-09-21  Martin Baulig  <martin@ximian.com>
11629
11630         * domain.c (mono_debugger_check_runtime_version): New public
11631         function.
11632
11633         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
11634
11635 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
11636
11637         * reflection.c: Added missing sort to the declarative security 
11638         attributes table. MS implementation stops seeing the attributes if the
11639         token number regress in the table (as shown by ildasm and permview).
11640
11641 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
11642
11643         * object-internals.h (MonoReflectionModule): Add 'token' field.
11644         
11645         * reflection.c (mono_reflection_get_token): Add support for Module
11646         and Assembly.
11647         (mono_module_get_object): Set 'token' field.
11648         (mono_module_file_get_object): Set 'token' field.
11649
11650         * icall.c: Add new Assembly and Module icalls.
11651
11652         * appdomain.c: Bump corlib version.
11653
11654 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
11655
11656         * loader.h loader.c class.h class.c: Add helper functions for obtaining
11657         tokens of metadata objects.
11658
11659         * reflection.h reflection.c (mono_reflection_get_token): New function
11660         to obtain the token of a metadata object.
11661
11662         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
11663
11664 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
11665
11666         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
11667         
11668         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
11669
11670 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
11671
11672         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
11673         * object-internals.h: Added 3 MonoArray* members to MonoReflection
11674         AssemblyBuilder to access the permissions set in the class lib.
11675         * reflection.c: Added security attributes encoding step in 
11676         mono_image_build_metadata.
11677         * tabledefs.h: Added new security actions defined in 2.0:
11678         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
11679
11680 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
11681
11682         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
11683         macro parameter.
11684
11685 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
11686  
11687         * locales.c: nullify the ICU_collator member of CompareInfo when it is
11688           finalized. There where random SIGSEVs at program termination, when
11689           an object being finalized was trying to do a string comparison and
11690           the current culture was already finalized.
11691  
11692 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11693
11694         * threads.c: call thread_cleanup before finishing the thread if we get
11695         there.
11696
11697 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
11698
11699         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
11700         assemblies from the parent. Fixes #65665.
11701
11702 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
11703
11704         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
11705         modifiers.
11706
11707 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
11708
11709         * reflection.h: add prototype for mono_get_dbnull_object
11710         * reflection.c: add prototypes for get_default_param_value_blobs 
11711         and mono_get_object_from_blob for fussier compilers
11712
11713 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
11714  
11715         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
11716         false deadlock checks in class initialization.
11717  
11718 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
11719
11720         * image.c (mono_image_addref): Fix comment.
11721
11722         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
11723         possible.
11724
11725 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
11726
11727         * reflection.c (mono_param_get_objects): Modified to return
11728         ParameterInfo.DefaultValue object.
11729
11730         (get_default_param_value_blobs):
11731         (mono_get_object_from_blob):
11732         (mono_get_dbnull_object): New helper routines. 
11733
11734         * object.c (mono_get_constant_value_from_blob): New helper routine
11735         carved out from get_default_field_value ()
11736
11737         * object-internals.h (mono_get_constant_value_from_blob): Added
11738         function declaration.
11739
11740 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
11741
11742         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
11743         referenced assemblies. Fixes #62135.
11744
11745         * exception.h exception.c (mono_get_exception_file_not_found2): New
11746         helper function.
11747
11748 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
11749
11750         * class.h class.c: Add mono_type_get_underlying_type ().
11751
11752 2004-09-09  Geoff Norton <gnorton@customerndna.com>
11753
11754         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
11755         Fix GetTypes() to support dynamically created assemblies.
11756
11757 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
11758
11759         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
11760         
11761         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
11762         previous patch.
11763
11764         * reflection.h reflection.c loader.c: Allow dynamic construction of
11765         pinvoke methods. Fixes #65571.
11766         
11767         * reflection.c (mono_reflection_get_type): Revert previous change since
11768         it causes regressions.
11769
11770 2004-09-08  Martin Baulig  <martin@ximian.com>
11771
11772         * class.c (class_compute_field_layout): Don't call
11773         mono_class_layout_fields() for open generic instances.
11774
11775 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
11776         * threads.c appdomain.c: fix typo in GC macro
11777
11778 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11779
11780         * threads.c: don't call mono_thread_detach() in start_wrapper(),
11781         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
11782
11783 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
11784
11785         * image.c (mono_image_close): Applied patch from 
11786         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
11787         assembly is loaded multiple times from data.
11788         
11789         * image.c (mono_image_open): Fix warning.
11790
11791 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11792
11793         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
11794         once. Fixes #58334.
11795         
11796         * reflection.c (mono_reflection_create_runtime_class): Initialize
11797         klass->nested_classes. Fixes #61224.
11798
11799 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
11800
11801         * threads.c: sched_yield() on exit, to allow threads to quit.
11802
11803 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11804
11805         * object.c (mono_unhandled_exception): Remove leftover debug code.
11806
11807 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
11808
11809         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
11810
11811 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11812
11813         * marshal.c (emit_marshal_array): Really null terminate string arrays.
11814         
11815         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
11816
11817 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11818
11819         * marshal.c (emit_marshal_array): Null terminate string arrays.
11820         
11821         * marshal.c (raise_auto_layout_exception): Fix warning.
11822
11823         * reflection.c (mono_param_get_objects): Initialize the default value
11824         with DBNull.Value, not null. Fixes #62123.
11825
11826 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
11827
11828         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
11829         throw an exception with a cute explanation.
11830
11831 2004-09-06  Dick Porter  <dick@ximian.com>
11832
11833         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
11834         Close the new process's thread handle, as we don't use it.  The
11835         handle stays around forever otherwise.
11836
11837 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11838
11839         * object.c (arith_overflow): Fix warning.
11840
11841         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
11842         calling conventions in method refs. Fixes #65352.
11843
11844         * reflection.c: Fix warnings.
11845
11846 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
11847
11848         * icall.c: Add a new icall for Array.Clear
11849
11850 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
11851
11852         * object.c: When allocating an array, we have to throw
11853         an overflow exception if any of the lengths are < 0.
11854
11855 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11856
11857         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
11858         properly. Also move implementation of string array marshalling to 
11859         managed code. Fixes #42316.
11860
11861 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11862
11863         * assembly.c: provide more information when loading an assembly fails.
11864
11865 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11866
11867         * filewatcher.c: don't expect the development fam package to be
11868         installed.
11869
11870 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
11871
11872         * marshal.c: Make a copy of the signature cookie since it will be
11873         freed by the caller.
11874         
11875         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
11876
11877         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
11878
11879         * metadata.c (mono_metadata_free_marshal_spec): New function to free
11880         marshal specs.
11881
11882         * marshal.c: More refactoring.
11883         
11884         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
11885         smaller functions.
11886
11887 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
11888
11889         * object.c: In mono_message_invoke, fill the output parameter array after
11890           calling the managed method (it was done before the call). This fixes
11891           bug #59299.
11892
11893 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
11894
11895         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
11896         as well.
11897
11898 2004-09-02  Martin Baulig  <martin@ximian.com>
11899
11900         * class.c (mono_class_instance_size): Don't allow generic type
11901         definitions or open generic instances.
11902         (mono_class_array_element_size): If we're a value type, call
11903         mono_class_instance_size() on the original class.
11904
11905         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
11906         handle generic instances.
11907
11908         * mono-debug-debugger.c (write_type): Handle generic instances
11909         like classes.
11910
11911 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
11912
11913         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
11914         the allocation request fails. Fixes #65089.
11915
11916         * object.c (mono_runtime_free_method): Do not call mono_free_method.
11917         
11918         * object.c (mono_runtime_free_method): New function to free a dynamic
11919         method.
11920
11921         * marshal.c (mono_delegate_free_ftnptr): New function to free the
11922         delegate trampoline.
11923
11924         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
11925         with hasthis as dynamic,
11926
11927         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
11928
11929         * domain.c (mono_jit_info_table_remove): New function to remove an
11930         entry from the jit info table.
11931
11932         * class-internals.h (MonoMethod): Add 'dynamic' field.
11933
11934         * loader.c: Fix warnings.
11935
11936 2004-09-01  Martin Baulig  <martin@ximian.com>
11937
11938         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
11939         instead of mono_debugger_lock() because the latter one is a no-op
11940         unless running in the debugger.
11941
11942 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
11943
11944         * class.c (class_compute_field_layout): Classes with auto-layout or
11945         reference fields are not blittable.
11946         
11947 2004-09-01  Dick Porter  <dick@ximian.com>
11948
11949         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
11950         mono_image_get_filename() to get the assembly location.
11951
11952         * icall.c:
11953         * metadata.h: Fix compile warnings
11954
11955 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
11956
11957         * class.c (class_compute_field_layout): System.Object is blittable.
11958
11959         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
11960         as in/out. Fixes #59909.
11961
11962 2004-09-01  Martin Baulig  <martin@ximian.com>
11963
11964         * metadata.h (MONO_TYPE_ISREFERENCE): Call
11965         mono_metadata_generic_inst_is_valuetype() if we're a generic
11966         instance to check whether our underlying type is a reference type.
11967
11968 2004-09-01  Martin Baulig  <martin@ximian.com>
11969
11970         * metadata.c (mono_type_size): If we're a generic instance, call
11971         mono_class_value_size() for value types.
11972
11973 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
11974
11975         * marshal.c: Implement more custom marshalling functionality. Fixes
11976         #64915.
11977
11978 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
11979
11980         * mono-debug.c, debug-mono-symfile.c: add some locking love.
11981
11982 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
11983
11984         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
11985
11986         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
11987
11988         * icall.c: Fix some warnings.
11989
11990         * threads.c (abort_appdomain_thread): Fix unref errors.
11991         (mono_thread_current): Fix THREAD_DEBUG define.
11992
11993 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
11994
11995         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
11996
11997         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
11998
11999 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
12000
12001         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
12002         string arrays.
12003
12004 2004-08-28  Martin Baulig  <martin@ximian.com>
12005
12006         * metadata.c
12007         (mono_metadata_generic_inst_is_valuetype): New public function.
12008
12009         * metadata.h (MONO_TYPE_ISSTRUCT): Call
12010         mono_metadata_generic_inst_is_valuetype() if we're a generic
12011         instance to check whether our underlying type is a valuetype.
12012
12013 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
12014
12015         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
12016         #63768.
12017
12018 2004-08-25  Martin Baulig  <martin@ximian.com>
12019
12020         * loader.c (mono_get_method_from_token): Abstract methods can also
12021         be generic and thus have type parameters.
12022
12023         * metadata-internals.h
12024         (MonoDynamicImage): Added `GPtrArray *gen_params'.
12025
12026         * reflection.c (mono_image_get_generic_param_info): Don't create a
12027         metadata row, just add an entry to the `gen_params' array.
12028         (build_compressed_metadata): Sort the `gen_params' array and then
12029         actually create the metadata.
12030
12031 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12032
12033         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
12034
12035 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
12036
12037         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
12038
12039 2004-08-24  Martin Baulig  <martin@ximian.com>
12040
12041         * class.cs (mono_class_is_subclass_of): Like an interface, a
12042         generic instance also derives from System.Object.
12043
12044 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
12045
12046         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
12047         custom modifiers to be in any order. Fixes #61990.
12048
12049 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
12050
12051         * object.c: Register mono_object_new_fast icall.
12052         
12053         * object.c (mono_class_get_allocation_ftn): Return to calling
12054         mono_object_new_fast, since it seems faster to compute the object 
12055         size in unmanaged code than passing it as a parameter.
12056
12057         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
12058
12059         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
12060         this function with Boehm as the oom handler, so we don't have to check
12061         the result of GC_malloc.
12062
12063         * object.c: Remove checks for oom.
12064
12065         * object.h object.c (mono_class_get_allocation_ftn): New function to
12066         return the icall which can be used to allocate an instance of a given
12067         class. 
12068
12069         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
12070
12071         * class-internals.h: Add 'enabled' field.
12072
12073 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
12074
12075         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
12076
12077 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
12078         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
12079         value 0x0010.
12080
12081 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
12082
12083         * appdomain.c: use the Tls function for appdomain too,
12084         at Zoltan's request. Actually return in mono_context_get
12085
12086         * appdomain.c, profiler.c, threads.c: use __thread
12087
12088 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
12089
12090         * appdomain.c threads.c: Call GC_CreateThread on windows.
12091
12092         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
12093         multiple libraries since this don't work on windows.
12094
12095 2004-08-18  Martin Baulig  <martin@ximian.com>
12096
12097         * class-internals.h
12098         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
12099         MonoMethodHeader.
12100
12101         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
12102         MonoMethodNormal since we also need it for abstract and interface
12103         methods.
12104
12105         * reflection.c
12106         (build_compressed_metadata): Sort the GenericParam table.
12107         (mono_image_create_token): Added `gboolean create_methodspec'
12108         argument; this is false when generating a MethodImpl token.
12109         (reflection_methodbuilder_to_mono_method): Abstract and interface
12110         methods may also have generic parameters.
12111
12112 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
12113
12114         * appdomain.c: thread local alloc
12115
12116 2004-08-17  Martin Baulig  <martin@ximian.com>
12117
12118         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
12119
12120         * icall.c
12121         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
12122         argument.
12123
12124         * class.c (mono_type_get_full_name): New public function.
12125         (mono_type_get_name): Don't include the type arguments.
12126
12127 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
12128
12129         * Makefile.am: Build static versions of libmetadata and libmonoruntime
12130         for inclusion into the mono executable.
12131
12132 2004-08-16  Martin Baulig  <martin@ximian.com>
12133
12134         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
12135         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
12136
12137 2004-08-14  Martin Baulig  <martin@ximian.com>
12138
12139         * class.c (dup_type): Also copy the `byref' field.
12140
12141 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
12142
12143         * reflection.c (create_dynamic_mono_image): Revert the last change 
12144         since it breaks bootstrap.
12145
12146 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
12147
12148         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
12149
12150         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
12151         not free them with g_free.
12152
12153 2004-08-11  Martin Baulig  <martin@ximian.com>
12154
12155         * reflection.c (mono_reflection_setup_internal_class): Also call
12156         mono_class_setup_mono_type() if we already have a `tb->type.type'.
12157
12158 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
12159
12160         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
12161         called during default (first) AppDomain creation. Keep track of
12162         Evidence when loading assemblies.
12163
12164 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
12165
12166         * opcodes.c, opcodes.h: reduce runtime relocations.
12167
12168 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
12169
12170         * culture-info.h, locales.c: fixes and chages to sue the new
12171         optimized format of the locale data.
12172         * culture-info-tables.h: regenerated.
12173
12174 2004-08-06  Geoff Norton <gnorton@customerdna.com>
12175         
12176         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
12177
12178 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
12179
12180         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
12181         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
12182         * domain-internals.h: icall declaration.
12183         * icall.c: icall registration.
12184         * object-internals.h: New fields in MonoAssembly for CAS.
12185
12186 2004-08-05  Duncan Mak  <duncan@ximian.com>
12187
12188         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
12189         CEE_LDELEM_ANY.
12190
12191 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
12192
12193         * reflection.c: fix to deal with object[] arrays in custom ctors
12194         (bug #62550).
12195
12196 2004-08-05  Martin Baulig  <martin@ximian.com>
12197
12198         * class.c (mono_class_array_element_size): Added support for
12199         generic instances and correctly handle "recursive" types.
12200
12201 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
12202
12203         * assembly.c: Fix warnings.
12204
12205 2004-08-04  Martin Baulig  <martin@ximian.com>
12206
12207         * class.c
12208         (mono_type_get_name_recurse): Added `gboolean include_arity'
12209         argument specifying whether or not we should include the generic
12210         arity in the type name.
12211         (_mono_type_get_name): New static function.
12212         (mono_class_setup_vtable): If we're a generic instance, don't
12213         include the generic arity in the names of explicit method
12214         implementations.        
12215
12216 2004-08-03  Martin Baulig  <martin@ximian.com>
12217
12218         * class.c (mono_type_get_name_recurse): Enclose the generic type
12219         arguments in `<', '>'.
12220
12221 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
12222
12223         * gc.c: make GC warning messages use the trace API, they are just
12224         noise to most of the users.
12225
12226 2004-08-03  Martin Baulig  <martin@ximian.com>
12227
12228         * debug-mono-symfile.c (read_string): Correctly read the string.
12229
12230 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
12231
12232         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
12233         
12234         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
12235         icalls.
12236         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
12237
12238 2004-07-30  Martin Baulig  <martin@ximian.com>
12239
12240         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
12241         Reflect latest symbol writer changes.   
12242
12243 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
12244
12245         * object.c: always create an object if null is passed
12246         to Invoke() where a valuetype is expected.
12247
12248 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
12249
12250         * marshal.c (mono_marshal_init): make managed
12251         signatures match native ones better for 64bits.
12252
12253 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12254
12255         * appdomain.c: hack to build correctly the private bin path on windows.
12256         Fixes bug #61991.
12257
12258 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
12259
12260         * assembly.c: Load mscorlib from the correct framework directory
12261           (mono/<version>/mscorlib.dll).
12262         * appdomain.h: Added prototypes for new functions.
12263         * internals.h: Added some prototypes.
12264         * domain.c: When initializing the runtime, get from the executable and
12265           the configuration files the runtime version that the app supports.
12266           Added support methods for reading app.exe.config. Added list of versions
12267           supported by the JIT. Added two new methods: mono_init_from_assembly,
12268           which initializes the runtime and determines the required version from
12269           the provided exe file, and mono_init_version, which initializes
12270           the runtime using the provided version.
12271         * icall.c: Get machine.config from version-specific directory.
12272         * reflection.c: When generating an image, embed the version number
12273           of the current runtime.
12274
12275 2004-07-28  Dick Porter  <dick@ximian.com>
12276
12277         * socket-io.c
12278         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
12279         returned sockaddr size before creating the remote address object.
12280         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
12281         61608.
12282
12283 2004-07-28  Dick Porter  <dick@ximian.com>
12284
12285         * locales.c (string_invariant_compare_char): Fix invariant char
12286         compares between upper and lower cases.  Fixes bug 61458.
12287
12288 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
12289         
12290         * marshal.c: actually cache stelem.ref wrappers.
12291         
12292 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
12293
12294         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
12295         sections and remove the mono_cli_rva_map () function.
12296
12297 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
12298
12299         * debug-mono-symfile.c: fix one more endianess issue, from a patch
12300         by Geoff Norton (<gnorton@customerdna.com>).
12301
12302 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
12303
12304         * class.c: fix class loads for pointer types (typeof(int) !=
12305         typeof(int*)).
12306
12307 2004-07-27  Martin Baulig  <martin@ximian.com>
12308
12309         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
12310         reading the debugging information from an external ".mdb" file.
12311
12312 2004-07-24  Martin Baulig  <martin@ximian.com>
12313
12314         * reflection.c (mono_image_get_type_info): Only write a class
12315         layout entry if we actually have a size or a packing size.
12316
12317 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
12318
12319         * reflection.c (type_get_fully_qualified_name): 
12320         insert cast to get type checking of ?: with non-gcc compilers
12321
12322 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
12323
12324         * rand.c: use g_getenv for both lookups of
12325         MONO_EGD_SOCKET
12326
12327 2004-07-17  Martin Baulig  <martin@ximian.com>
12328
12329         * reflection.c (mono_reflection_bind_generic_method_parameters):
12330         Set `gmethod->reflection_info'.
12331
12332 2004-07-17  Martin Baulig  <martin@ximian.com>
12333
12334         * class.c (mono_class_create_from_typedef): Insert the newly
12335         created class into the hash table before computing the interfaces
12336         since we could be called recursively.
12337
12338 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
12339
12340         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
12341         function to implement stelem.ref in managed code
12342         * class-internals.h, debug-helpers.c: a new wrapper type
12343         for the above.
12344
12345 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
12346
12347         * gc.c: allow GC handles to work even when no GC is compiled in.
12348         Fix part of bug #61134 (GetAddrOfPinnedObject).
12349
12350 2004-07-13  Peter Williams  <peter@newton.cx>
12351  
12352         * process.c (complete_path): Make sure we don't attempt to execute
12353         directories.
12354  
12355 2004-07-12  Geoff Norton <gnorton@customerdna.com>
12356
12357         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
12358           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
12359           and will add/subtract the hour if needed
12360
12361 2004-07-12  Martin Baulig  <martin@ximian.com>
12362
12363         * reflection.c (mono_field_get_object): If we have
12364         `field->generic_info', take the attributes from
12365         `field->generic_info->generic_type'.    
12366
12367 2004-07-12  Martin Baulig  <martin@ximian.com>
12368
12369         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
12370         This function must be called before initializing the runtime.
12371         (mono_debug_init_1): New function; call this after initializing
12372         the runtime, but before loading the assembly.  It tells the
12373         debugger to load corlib and the builtin types.
12374
12375         * mono-debug-debugger.c: Did some larger changes in the debugging
12376         code; support recursive class declarations, make sure we actually
12377         add all classes.
12378
12379 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12380
12381         * debug-helpers.c: undo my previous patch and fixed the real issue in
12382         ../mini/exceptions-x86.c
12383
12384 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12385
12386         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
12387         when no HOME env. variable was set and a NullRef was thrown in a .cctor
12388         called from other .cctors.
12389
12390 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
12391
12392         * loader.c: Removed the mono_loader_wine_init hack now that we are
12393         doing a managed version of Windows.Forms.
12394
12395 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
12396
12397         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
12398         threadpool.c, threads.c: remove static data from rootset.
12399
12400 2004-07-09  Dick Porter  <dick@ximian.com>
12401
12402         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
12403         Don't do any more processing if the matched length was 0.  It was
12404         increasing the size of the string before.  Fixes bug 61167.
12405
12406 2004-07-09  Dick Porter  <dick@ximian.com>
12407
12408         * socket-io.h:
12409         * socket-io.c
12410         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
12411         Add support for SO_PEERCRED if its available.
12412
12413 2004-07-09  Peter Bartok <pbartok@novell.com>
12414         * loader.c: winelib.exe.so error message is now only displayed if
12415         MONO_DEBUG is set. To help us avoid questions when people are trying
12416         out the new Managed.Windows.Forms.
12417
12418 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
12419
12420         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
12421         for isinst and castclass wrappers.
12422
12423         * class-internals.h icall.c: Move registration and lookup of JIT icalls
12424         to libmetadata from the JIT, so they could be used by the marshalling
12425         code and the interpreter.
12426
12427         * marshal.c: Register marshalling related JIT icalls here instead of
12428         in mini.c. Use CEE_MONO_ICALL instead of the family of 
12429         CEE_MONO_PROC<x> opcodes to call marshalling functions.
12430
12431         * metadata.h: Remove unneeded marshalling conversions.
12432
12433         * opcodes.c: Update for new opcodes.
12434         
12435 2004-07-08  Martin Baulig  <martin@ximian.com>
12436
12437         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
12438         (mono_debug_get_domain_data): Make this function static.
12439
12440 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
12441
12442         * gc.c, object.h: add nice GC handle API for embedders.
12443
12444 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
12445
12446         * reflection.c: more changes for the new api
12447
12448         * object.c: When we reflect on a field w/ a constant value, it
12449         will not have a memory location, so we must access metadata. Also,
12450         allow easier reading of strings so that we can read them from
12451         the constant data.
12452
12453         * class.c (mono_class_layout_fields): no need for literal fields here.
12454
12455         * class-internals.h: api changes for const fields
12456
12457         * icall.c (ves_icall_get_enum_info): use new apis for const fields
12458
12459 2004-07-06  Martin Baulig  <martin@ximian.com>
12460
12461         * mono-debug.h: Increment version number to 44.
12462
12463         * mono-debug.c (mono_debug_add_wrapper): The second argument is
12464         now a gpointer, rewrote this whole method.
12465
12466         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
12467         function.  Add information about the wrapper in a new "misc table".
12468
12469         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
12470         for the new misc table.
12471
12472 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
12473
12474         * metadata-internals.h image.c: Add a cache for helper signatures.
12475
12476         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
12477
12478 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
12479
12480         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
12481         delegates from a delegate. Fixes #61033.
12482         
12483         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
12484         marshalling of stringbuilder arrays. Fixes #59900.
12485
12486 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
12487
12488         * icall.c: Add EnumBuilder:setup_enum_type icall.
12489
12490 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
12491
12492         * icall.c: Added a new icall for the property version of
12493         OffsetOfStringData.
12494
12495 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
12496
12497         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
12498         it has a constant size across platforms.
12499
12500         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
12501         stack trace.
12502
12503 2004-06-29  Martin Baulig  <martin@ximian.com>
12504
12505         * mono-debug.c (mono_debug_add_method): Protect the whole function
12506         in mono_debugger_lock(), not just parts of it.
12507
12508 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
12509
12510         * reflection.c: make sure padding bytes in heaps are zeroed.
12511
12512 2004-06-24  David Waite  <mass@akuma.org>
12513
12514         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
12515         image.c, loader.c, locales.c, marshal.c, metadata.c,
12516         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
12517         string-icalls.c, threads.c: change to C90-style comments from C99 /
12518         C++ -style
12519
12520 2004-06-24  Dick Porter  <dick@ximian.com>
12521
12522         * threads.c
12523         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
12524         return createdNew.  Fixes bug 60412.
12525
12526         * threads-types.h: 
12527         * icall.c: Add createdNew parameter to CreateMutex icall
12528
12529 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
12530
12531         * reflection.c, object-internals.h: save default value in params.
12532
12533 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12534
12535         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
12536         no need to build a new path combining that with the application base.
12537         Fixes bug #60442.
12538
12539 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
12540
12541         * reflection.c: fixed minor standard compliance issues.
12542
12543 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
12544
12545         * reflection.c: fixed issue with encoding some custom attributes
12546         (arrays in properties and fields, bug #60411).
12547
12548 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12549
12550         * reflection.c: fix start address when copying the public key token.
12551
12552 2004-06-23  Martin Baulig  <martin@ximian.com>
12553
12554         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
12555         the `exc' object in a static object to put it into the GC's root set.
12556
12557 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
12558
12559         * reflection.c: make mono_reflection_setup_internal_class ()
12560         callable a second time to setup a new parent class.
12561
12562 2004-06-23  Dick Porter  <dick@ximian.com>
12563
12564         * threads.c: Check for WAIT_IO_COMPLETION return values.
12565
12566 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
12567
12568         * appdomain.c: Removed the g_free on the public key token. Now copy 
12569         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
12570         * assembly.c: Added public key token string value when loading 
12571         assemblies. Fix bug #60439.
12572         * icall.c: Added missing informations (like public key) in 
12573         GetReferencedAssemblies. Fix #60519.
12574         * image.h: Changed definition for public key token from const char*
12575         public_tok_value to guchar public_key_token [17];
12576         * reflection.c: Updated for changes to public key token.
12577
12578 2004-06-22  Lluis Sanchez Gual
12579
12580         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
12581         for the field in base classes.
12582
12583 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
12584
12585         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
12586         mark headers as not supported, they are installed only for use by the
12587         debugger.
12588
12589 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
12590
12591         * *.c, *.h: avoid namespace pollution in public headers.
12592
12593 2004-06-21  Martin Baulig  <martin@ximian.com>
12594
12595         * exception.c (mono_get_exception_security): It's in
12596         "System.Security", not in "System".
12597
12598         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
12599         the exception classes.
12600
12601 2004-06-21  Martin Baulig  <martin@ximian.com>
12602
12603         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
12604         Protect the exception object from being finalized.
12605
12606 2004-06-21  Martin Baulig  <martin@ximian.com>
12607
12608         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
12609         public function.
12610
12611 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
12612
12613         * reflection.c: Load the assembly in mono_reflection_type_from_name,
12614         if it was not loaded before. Fix parts of #60439.
12615
12616 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
12617
12618         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
12619         code that was broken since Ben's change: wrappers are now
12620         dependent on the method signature only again.
12621
12622 2004-06-21  Martin Baulig  <martin@ximian.com>
12623
12624         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
12625         added interface support.
12626
12627 2004-06-21  Martin Baulig  <martin@ximian.com>
12628
12629         * class.c (mono_vtable_get_static_field_data): New public method.
12630
12631 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
12632
12633         * filewatcher.c : Windows build fix to be compliant with API changes.
12634
12635 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
12636
12637         * class.h, class.c: more accessors.
12638         * metadata.h, metadata.c: prepare for hiding MonoType and
12639         MonoMethodSignature: people should use the accessors from now on
12640         outside of the tree.
12641
12642 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
12643
12644         * *.c, *.h: more API cleanups.
12645
12646 2004-06-18  Jackson Harper  <jackson@ximian.com>
12647
12648         * assembly.c: Trace loading assemblies.
12649         * loader.c: Trace loading native libraries.
12650         * mono-config.c: Trace loading config files.
12651         
12652 2004-06-18  Dick Porter  <dick@ximian.com>
12653
12654         * locales.c: Tell ICU the lengths of strings, it can cope with
12655         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
12656
12657 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
12658
12659         * image.c: swapped name/filename;
12660
12661 2004-06-18  Martin Baulig  <martin@ximian.com>
12662
12663         * mono-debug-debugger.c (write_class): Write the parent class at
12664         the end of the header.
12665
12666 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
12667
12668         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
12669
12670 2004-06-17  Raja R Harinath  <rharinath@novell.com>
12671
12672         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
12673         (bundle_obj): New conditional define.
12674         (BUILT_SOURCES): Remove.
12675         ($(bundle_srcs)): Make parallel-make safe.
12676         (libmonoruntime_la_LIBADD): Make unconditional.
12677         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
12678         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
12679
12680 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
12681
12682         * culture-info-tables.h: It was inconsistent with the latest
12683           supp info files.
12684
12685 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
12686
12687         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
12688         be loaded.
12689
12690         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
12691         with gcc 2.95.
12692
12693 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
12694
12695         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
12696         cleaned up public header threads.h.
12697
12698 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
12699
12700         * Makefile.am, *.c, *.h: more API cleanups.
12701
12702 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
12703
12704         * Makefile.am: removed monosn from compilation.
12705         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
12706         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
12707         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
12708         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
12709         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
12710         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
12711
12712 2004-06-15  Jackson Harper  <jackson@ximian.com>
12713
12714         * assembly.c: Make locales lower case when searching the GAC for
12715         assemblies. gacutil will always make locales lowercase when
12716         installing so this effectively makes them case insensitive.
12717         
12718 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
12719
12720         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
12721         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
12722           parameter which allows to choose whether the wait can be interrupted or 
12723           not. Also added the method mono_monitor_enter(), which locks the monitor
12724           using an infinite wait and without allowing interruption.
12725           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
12726           interrupted.
12727         * object.h: Added new fields in MonoThread. suspend_event holds the event
12728           used to susped/resume the thread. synch_lock is the lock object to use for
12729           modifying the thread state.
12730         * threads.c: Use the new synch_lock object for locking, instead of "this",
12731           which can generate deadlocks.
12732           Moved thread state change in Thread.Sleep and Thread.Join from managed
12733           to unmanaged code. This avoids a deadlock when the thread was suspended
12734           just after acquiring the thread lock.
12735           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
12736           Implemented Thread.Suspend using an event instead of ThreadSuspend,
12737           which is not fully implemented in the io-layer.
12738         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
12739
12740 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
12741
12742         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
12743         threads-types.h: more API cleanups.
12744
12745 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
12746
12747         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
12748         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
12749         threadpool.c, threads.c: first pass at the exported API cleanup.
12750
12751 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
12752
12753         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
12754
12755 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12756
12757         * icall.c: added internalGetHome.
12758
12759 2004-06-14  Dick Porter  <dick@ximian.com>
12760
12761         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
12762         possible to return successfully when '.' or '..' were the only
12763         entries in a directory, but were skipped.  The MonoIOStat was not
12764         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
12765         Fixes bug 59574.
12766
12767 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
12768
12769         * reflection.c: make binaries run on .Net 1.1 by default.
12770
12771 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
12772
12773         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
12774
12775 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
12776
12777         * marshal.c: keep track of struct size with explicit layout
12778         (bug #59979).
12779
12780 2004-06-12  Martin Baulig  <martin@ximian.com>
12781
12782         * mono-debug-debugger.c: Comment out a debugging g_message().
12783
12784 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
12785
12786         * reflection.c, reflection.h: do not free custom attrs that are cached.
12787         * icall.c: use braces to make code clearer.
12788
12789 2004-06-11  Martin Baulig  <martin@ximian.com>
12790
12791         * class.h (MonoInflatedField): New type.
12792         (MonoClassField): Replaced `MonoType *generic_type' with
12793         `MonoInflatedField *generic_info'.
12794
12795         * icall.c
12796         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
12797
12798 2004-06-11  Martin Baulig  <martin@ximian.com>
12799
12800         * reflection.c (mono_image_create_method_token): Correctly encode
12801         varargs methods.
12802
12803 2004-06-11  Martin Baulig  <martin@ximian.com>
12804
12805         * metadata.c (mono_metadata_parse_method_signature): When parsing
12806         a MethodDef which has VarArgs, also set sentinelpos if we don't
12807         have any parameters.
12808
12809 2004-06-11  Martin Baulig  <martin@ximian.com>
12810
12811         * verify.c (mono_method_verify): In CEE_CALL, use
12812         mono_method_get_signature() to get the method's signature, unless
12813         we're a PInvoke method.
12814
12815 2004-06-10  Jackson Harper  <jackson@ximian.com>
12816
12817         * assembly.c: Use <path>/lib/mono/gac for the extra paths
12818         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
12819         logical name as the supplied path is just a prefix to the gac not
12820         the direct path to it.
12821         
12822 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
12823
12824         * reflection.c: make the token for a created method match
12825         the token of the MethodBuilder it was created from
12826         (IKVM requires this behaviour now).
12827
12828 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
12829
12830         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
12831         reflection.c, socket-io.c: leak fixes.
12832
12833 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
12834
12835         * icall.c: handle sentinel pos in vararg methods in position different
12836         from 0.
12837
12838 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12839
12840         * culture-info-tables.h: freshly generated.
12841
12842 2004-06-09  Martin Baulig  <martin@ximian.com>
12843
12844         * loader.c (mono_get_method_constrained): Call `mono_class_init
12845         (constrained_class)'.   
12846
12847 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
12848
12849         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
12850         any methods. Fixes #59629.
12851
12852 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12853
12854         * culture-info-tables.h: reflecting locale-builder updates.
12855
12856 2004-06-08  Dick Porter  <dick@ximian.com>
12857
12858         * object.h:
12859         * locales.c: Fixed compile warnings, including a real bug in
12860         CompareInfo_internal_compare.
12861         
12862 2004-06-08  Dick Porter  <dick@ximian.com>
12863
12864         * locales.c
12865         (ves_icall_System_Globalization_CompareInfo_internal_index):
12866         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
12867         Double-check the resuls of usearches, because ICU currently
12868         ignores most of the collator settings here.  Fixes bug 59720.
12869         
12870 2004-06-08  Dick Porter  <dick@ximian.com>
12871
12872         * locales.c
12873         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
12874         Fix memory leak and segfault-causing typo.  No idea how this one
12875         lasted so long without being noticed.
12876
12877 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
12878
12879         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
12880         any methods. Fixes #59629.
12881
12882 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12883
12884         * assembly.c:
12885         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
12886         own the critical section before). Removed dead code (that's done
12887         in the preload hook).
12888
12889         (mono_assembly_load_with_partial_name): call the preload hook.
12890
12891 2004-06-08  Martin Baulig  <martin@ximian.com>
12892
12893         * metadata.c (mono_metadata_signature_alloc): Default
12894         `sentinelpos' to -1.
12895
12896         * reflection.c (mono_image_get_array_token): Likewise.
12897
12898 2004-06-08  Martin Baulig  <martin@ximian.com>
12899
12900         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
12901
12902         * metadata.c (mono_metadata_parse_method_signature): When parsing
12903         a MethodDef which has VarArgs, set sentinelpos.
12904
12905         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
12906         `gint16' since we're using -1 for non-varargs methods.
12907
12908         * reflection.c
12909         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
12910         (method_encode_signature): Added varargs support.
12911         (method_builder_encode_signature): Likewise.
12912         (mono_image_get_varargs_method_token): New static method.
12913         (mono_image_create_method_token): New public method; this is
12914         called via an icall instead of mono_image_create_token() when
12915         calling a varargs method.       
12916
12917 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
12918
12919         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
12920
12921 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12922
12923         * culture-info-tables.h : Reflecting the latest locale-builder that
12924           fixed empty array representation ({} to {0}).
12925
12926 2004-06-07  Jackson Harper  <jackson@ximian.com>
12927
12928         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
12929         looking up extra gac paths. This allows MONO_GAC_PATH to act
12930         exactly like a prefix.
12931         
12932 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
12933
12934         * reflection.c (mono_reflection_type_from_name): Make a copy of the
12935         type name before modifying it. Fixes #59405.
12936
12937 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12938
12939         * culture-info.h: added fields for "all datetime patterns".
12940         * locales.c: (  ves_icall_System_Globalization_CultureInfo
12941           _construct_datetime_format ()): fill xxx_patterns fields.
12942         * object.h: added fields for "all datetime patterns" to
12943           MonoDateTimeFormatInfo.
12944         * culture-info-tables.h: reflecting locale-builder updates.
12945
12946 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
12947
12948         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
12949         the event has no add and remove methods. Fixes #59629.
12950
12951 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
12952
12953         * object.c: Fixed possible integer overflow when allocating large
12954         strings.
12955
12956 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
12957
12958         * culture-info-tables.h: reflecting locale-builder updates.
12959
12960 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
12961
12962         * culture-info-tables.h: reflecting locale-builder updates.
12963
12964 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
12965
12966         * culture-info-tables.h: reflecting locale-builder updates.
12967
12968 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
12969
12970         * threads.c: Made Thread.Sleep abortable.
12971
12972 2004-06-02  Martin Baulig  <martin@ximian.com>
12973
12974         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
12975
12976         * debug-mono-symfile.h: Bumped symbol file version number to 37.
12977
12978 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
12979
12980         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
12981
12982 2004-05-30  Jackson Harper  <jackson@ximian.com>
12983
12984         * reflection.c: Do not hardcode assembly versions or public key
12985         tokens anymore. All of this except the corlib section was dead
12986         code anyways.
12987         
12988 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
12989
12990         * object.c (mono_runtime_invoke_array): Automatically create boxed
12991         objects for byref valuetypes if needed. Fixes #59300.
12992         
12993         * object.c (mono_method_return_message_restore): Handle 
12994         MONO_TYPE_OBJECT as well.
12995
12996 2004-05-28  Jackson Harper  <jackson@ximian.com>
12997
12998         * reflection.c: The modified type encoding was causing build
12999         problems. Reverted for now.
13000         
13001 2004-05-28  Jackson Harper  <jackson@ximian.com>
13002
13003         * reflection.c/h: Take an assembly ref so that we dont create
13004         fully qualified names when encoding types in the same assembly as
13005         the custom attribute being emitted.
13006         * appdomain.c: Increment version number.
13007         
13008 2004-05-26  Duncan Mak  <duncan@ximian.com>
13009
13010         * icall.c
13011         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
13012         Set the full version number (major, minor, build, revision).
13013
13014 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
13015
13016         * marshal.c (emit_struct_conv): increment src/dst after blit
13017         (mono_marshal_get_managed_wrapper,
13018         mono_marshal_get_native_wrapper): make sure we have marshalling
13019         info before marshalling params (info computation affects
13020         blittable)
13021
13022         * class.c (class_compute_field_layout): correctly deal with
13023         blittable
13024         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
13025         value types (as per what windows dows by default)
13026         (mono_class_setup_mono_type): System.ValueType is blittable
13027         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
13028         blittable
13029
13030         * marshal.c (mono_marshal_load_type_info): flag types  as
13031         non-blittable if the native layout doesn't match the managed
13032         layout
13033
13034 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13035
13036         * appdomain.c: don't add stuff in the private search path that is
13037         above the application base. If application base is not set, there's
13038         no private search path.
13039
13040 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
13041
13042         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
13043         byref struct arguments in native->managed marshalling.
13044
13045 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
13046
13047         * marshal.c (mono_marshal_get_runtime_invoke): correctly
13048         cache methods using signature (special case for methods
13049         that are value type or string class)
13050         
13051         * image.c (mono_image_close): clean up allocated GSList's
13052         in runtime_invoke_cache.
13053
13054 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13055
13056         * mono-config.c: set the correct path for mono_cfg_dir on windows when
13057         there's no MONO_CFG_DIR environment variable defined.
13058
13059 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13060
13061         * threads.c: windows version must be >= 0x0500 to include OpenThread.
13062
13063 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
13064
13065         * threadpool.c: Really wait for 500ms after the async call, even if the wait
13066           is interrumped.
13067         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
13068           before waiting for it, and call CloseHandle after the wait to unref it.
13069           This will make sure that handles are not disposed too early.
13070
13071 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13072
13073         * appdomain.c:
13074         * appdomain.h:
13075         * icall.c: removed
13076         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
13077         needed now.
13078
13079         * object.c: se the application_base only for the domain that runs
13080         Main. Fixes bug #59216,
13081
13082 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13083
13084         * appdomain.c:
13085         * object.c: only the domain in which Main is run have
13086         SetupInformation.ConfigurationFile set, so moved a few lines from
13087         appdomain.c to object.c.
13088
13089 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13090
13091         * appdomain.c: we tried to load [name].(dll|exe), but according
13092         to bug #57710, we must also try [culture]/[name].(dll|exe) and
13093         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
13094         There's a test case attached to bug #58922.
13095
13096 2004-05-27  Dick Porter  <dick@ximian.com>
13097
13098         * icall.c:
13099         * file-io.c: Implemented icalls for locking and unlocking regions
13100         in a file.
13101         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
13102         FALSE on error (fixes both compiler warning and real bug.)
13103
13104 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
13105
13106         * culture-info-tables.h: reflecting locale-builder updates.
13107
13108           (Added missing ChangeLog entry for 05/26)
13109
13110 2004-05-27  Jackson Harper  <jackson@ximian.com>
13111
13112         * locales.c: Fix some cut and paste errors.
13113         
13114 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13115
13116         * mono-config.c: set the correct path for config. directory on windows.
13117
13118 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
13119
13120         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
13121           on win32.
13122
13123 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
13124
13125         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
13126         from pinvoke functions.
13127         
13128         * marshal.c (mono_ftnptr_to_delegate): Implement this.
13129
13130 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
13131
13132         * culture-info-tables.h: reflecting locale-builder updates.
13133
13134 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
13135
13136         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
13137         #59086.
13138
13139 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
13140
13141         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
13142         * icall.c: Modified icalls for RNG.
13143         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
13144         Windows (CryptoAPI).
13145
13146 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
13147
13148         * locales.c: Fix build.
13149
13150 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
13151
13152         * culture-info-tables.h: reflecting locale-builder updates.
13153
13154 2004-05-25  Jackson Harper  <jackson@ximian.com>
13155
13156         * locales.c: When creating the current culture use the $LANGs
13157         specific culture. So DateTimeFormat and NumberFormat entries are created.
13158         
13159 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
13160
13161         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
13162         a char array as parameter.
13163
13164 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
13165
13166         * image.c: In mono_image_open(), always use an absolute path name to
13167           look for already loaded images.
13168
13169 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
13170
13171         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
13172         missing in the windows build (like older cygwin include files).
13173
13174 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
13175
13176         * icall.c: Fixed check for possible integer overflow in Buffer_
13177         BlockCopy icall. Replaced comments style // by /* */.
13178
13179 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
13180
13181         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
13182         
13183         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
13184         check after MONO_VTADDR. Fixes pinvoke2.exe.
13185
13186         * marshal.h marshal.c metadata.h: Add beginnings of support for
13187         ftnptr -> delegate marshalling.
13188
13189 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
13190
13191         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
13192         * threads.c: Fix warnings.
13193
13194 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
13195
13196         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
13197         * icall.c: Registered icalls for Suspend and Resume.
13198         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
13199           Thread.Abort.
13200         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
13201         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
13202         * process.c: Use WaitForSingleObjectEx.
13203         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
13204           checkpoints.
13205         * threads.c, threads.h: Make use of new Ex wait methods. Improved
13206           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
13207           for Suspend and Resume. Added new mono_thread_stop, used for stoping
13208           background threads. Added basic support for Abort in Windows.
13209           Start new threads using a managed delegate invoke wrapper. This wrapper
13210           has an interruption checkpoint that is needed since an interruption
13211           can be requested before the thread leaves the unmanaged code that starts 
13212           the thread.
13213         * marshal.c: Added interruption checkpoint after every native call, and
13214           also before managed calls for wrappers called from unmanaged code to
13215           go into managed code.
13216         * object.h: Added new field in MonoThread to keep track of interruption
13217           requests.
13218
13219 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
13220
13221         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
13222         calls.
13223
13224 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13225
13226         * appdomain.c:
13227         * assembly.c:
13228         * gc.c:
13229         * locales.c:
13230         * mono-config.c:
13231         * rand.c: getenv -> g_getenv (windows!)
13232
13233         * process.c: complete_path is also used on non-windows platforms.
13234
13235 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13236
13237         * icall.c: new signature for Process_Start.
13238
13239         * process.[ch]: new signature for Process_Start. If we're on windows
13240         and UseShellExecute is false, we have to search for the program by
13241         ourselves if we don't get a full path.
13242
13243 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
13244
13245         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
13246         marshalling and call CleanUpNativeData if needed. Fixes #58646.
13247
13248 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13249
13250         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
13251         Fixes bug #58373.
13252
13253 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13254
13255         * process.c: use double quotes to quote program name and arguments on
13256         windows. Fixes bug #58575.
13257
13258 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13259
13260         * file-io.c: don't return "." and ".." when using windows Find*File.
13261
13262 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
13263
13264         * marshal.c: Don't pass wrappers to message init because method 
13265         addressed used to lookup metadata. part of remoting[2|3] fix.
13266
13267 2004-05-15  Jackson Harper  <jackson@ximian.com>
13268
13269         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
13270         path is essentially the same as MONO_PATH except that it points to
13271         GACs instead of lib directories.
13272         * loader.h: The user gac is gone so we dont need function to
13273         enable/disable it.
13274         * mono-config.c: user gac option is now gone.
13275         
13276 2004-05-15  Jackson Harper  <jackson@ximian.com>
13277
13278         * culture-info.h: Make defines more consistent, add calendar data
13279         to the culture info table.
13280         * culture-info-tables.h: Add basic calendar data. Basically
13281         everyone gets default gregorian until all the data is
13282         updated.
13283         * locales.c: Use the new consistent defines. Set calendar data for
13284         culture info objects.
13285         * object.h: add a field for calendar data to CultureInfo
13286         
13287 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
13288
13289         * image.c: image->runtime_invoke_cache is keyed on signatures now.
13290         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
13291         a signature.
13292         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
13293         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
13294         an extra param that is the pointer of the method to invoke. The IL for
13295         the invoke method is no longer specific to the method, but to the
13296         signature of the method. Thus, we can share the same code for multiple
13297         methods. This reduces the number of methods that have to be compiled.
13298
13299 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
13300
13301         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
13302
13303         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
13304
13305         * icall.c: Optimize Buffer.BlockCopy.
13306
13307 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13308
13309         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
13310         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
13311         quote). Changed them to "MMMM yyyy".
13312
13313 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
13314
13315         * rand.c
13316         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
13317
13318 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
13319
13320         * reflection.h: Updated after changes to managed structures.
13321
13322         * appdomain.c: Bump corlib version.
13323
13324 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13325
13326         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
13327         windows.
13328
13329 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13330
13331         * Makefile.am: link to ../os/libmonoos.la on windows.
13332
13333         * assembly.c:
13334                 -If MONO_DEBUG, warn about non-existing directories in
13335                 MONO_PATH.
13336                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
13337                 compile time variable.
13338                 -Removed init_default_path and call mono_set_rootdir from
13339                 libmonoos.a instead (windows only).
13340
13341         * assembly.h: declare mono_assembly_getrootdir().
13342
13343         * domain.c:
13344         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
13345
13346         * loader.c: s/getenv/g_getenv/
13347
13348 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
13349
13350         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
13351
13352         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
13353
13354         * metadata.h: Add new marshalling conversions.
13355
13356         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
13357         function.
13358
13359         * reflection.c (mono_reflection_get_type): Lookup the type in all
13360         modules of a multi-module assembly. Fixes #58291.
13361
13362 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
13363
13364         * threads.c: Before aborting a background, set the StopRequested
13365         state.  This avoids throwing the Abort exception.
13366         In mono_thread_manage, don't continue with the shutdown until all
13367         aborted threads have actually stopped.
13368
13369 2004-05-10  Jackson Harper  <jackson@ximian.com>
13370
13371         * locales.c: Remove the modifier from culture names.
13372         
13373 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13374
13375         * Makefile.am: monosn is not installed any more. It has been deprecated
13376         in favor of sn.
13377
13378 2004-05-07  Jackson Harper  <jackson@ximian.com>
13379
13380         * locales.c
13381         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
13382         Fix array construction, add bailout if the length is 0.
13383
13384 2004-05-07  Dick Porter  <dick@ximian.com>
13385
13386         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
13387         machine doesn't have a DNS entry.  Patch by Urs Muff
13388         (umuff@quark.com), fixes bug 57928.
13389
13390 2004-05-06  Jackson Harper  <jackson@ximian.com>
13391
13392         * reflection.c: Handle null PublicTokens properly. alloc mem for
13393         assembly names culture so we dont crash when freeing it.
13394         
13395 2004-05-06  Jackson Harper  <jackson@ximian.com>
13396
13397         * assembly.c: Check the usergac when loading with partial names.
13398         
13399 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
13400
13401         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
13402         does nothing for now (not required for Linux/Windows) but the class
13403         library can call it (and a newer or modified runtime could need it).
13404         * icall.c: Registred icall.
13405
13406 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13407
13408         * loader.c: prints a message on module loading error we set MONO_DEBUG
13409         environment variable.
13410
13411 2004-05-05  Jackson Harper  <jackson@ximian.com>
13412
13413         * appdomain.c: Handle PublicKeyToken=null properly.
13414         
13415 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
13416
13417         * environment.c|h: Added icall ves_icall_System_Environment_
13418         GetOSVersionString to get the current OS version as a string.
13419         * icall.c: Registred icall.
13420
13421 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
13422
13423         * object.c: in mono_object_get_virtual_method(), take into account that
13424         non-virtual methods don't have a slot in the vtable. Check needed when
13425         the object is a proxy.
13426
13427 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
13428
13429         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
13430         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
13431
13432         * object.c (mono_class_compute_gc_descriptor): Fix warning.
13433
13434         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
13435         passed when a valuetype is expected.
13436
13437         * object.c (mono_unhandled_exception): Only set the exit code if the
13438         exception happens in the main thread. Fixes thread5.exe.
13439
13440         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
13441         invalid names. Fixes #58047.
13442
13443 2004-05-03  Jackson Harper  <jackson@ximian.com>
13444
13445         * assembly.c: This line was committed accidently and is unneeded.
13446         
13447 2004-05-03  Jackson Harper  <jackson@ximian.com>
13448
13449         * icall.c: Add new icall for Assembly::LoadWithPartialName
13450         * assembly.c/.h: new function that probes the GAC to load partial
13451         assembly names by Paolo Molaro.
13452         
13453 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13454
13455         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
13456         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
13457         (type_get_fully_qualified_name): Added PublicKeyToken when building a
13458         full type name.
13459
13460 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13461
13462         * appdomain.c: fixed check for 'neutral' culture and removed warning.
13463         * reflection.c: fix bug when parsing a full type name and Version is not
13464         the last thing in the string.
13465
13466 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
13467
13468         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
13469         crashes when it is freed.
13470
13471 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13472
13473         * assembly.c: print the compat warning to stderr.
13474
13475 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
13476
13477         * assembly.c (mono_assembly_load_references): Add a compatibility
13478         hack to run old applications that might be still referencing the
13479         3300-based assemblies, only do this for System.xxx.
13480
13481 2004-05-01  Jackson Harper  <jackson@ximian.com>
13482
13483         * appdomain.c: If the culture is neutral we set it to "".
13484         
13485 2004-04-29  Jackson Harper  <jackson@ximian.com>
13486
13487         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
13488
13489 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
13490  
13491         * string-icalls.c: added low overhead function for copying chars
13492         * icall.c: added needed icall for the above function
13493  
13494 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13495
13496         * icall.c: fix return value of get_global_assembly_cache.  Implemented
13497         Environment.GetLogicalDrives.
13498
13499 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
13500
13501         * rand.c: try and talk to egd or prngd
13502         for random bytes if opening devices fail.
13503
13504 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
13505
13506         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
13507         alignment for the type using the native alignment of its members 
13508         instead of using klass->min_align.
13509
13510         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
13511
13512 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13513
13514         * file-io.c:
13515         * socket-io.c: added check for sys/aio.h.
13516
13517 2004-04-28  Dick Porter  <dick@ximian.com>
13518
13519         * threads.c: Don't abort a thread thats already aborting, when
13520         terminating everything.
13521
13522 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13523
13524         * icall.c: added 2 new async calls for Socket.
13525
13526         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
13527         IO on *nix systems.
13528
13529         * threadpool.c: removed unused variable.
13530
13531 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
13532
13533         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
13534
13535 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
13536
13537         * locales.c: put back string_invariant_tolower () and
13538         string_invariant_toupper ().
13539
13540 2004-04-26 David Waite <mass@akuma.org>
13541
13542         * file-io.h:
13543         * socket-io.h:
13544         * threads.h:
13545         * unicode.h: remove comma from end of enumeration declarations
13546
13547 2004-04-26 David Waite <mass@akuma.org>
13548
13549         * debug-mono-symfile.h:
13550         * decimal.c:
13551         * mono_debug.h:
13552         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
13553
13554
13555 2004-04-26  Jackson Harper  <jackson@ximian.com>
13556
13557         * appdomain.c: Increment version number.
13558         
13559 2004-04-26  Jackson Harper  <jackson@ximian.com>
13560
13561         * appdomain.c: Set assembly references public token value when
13562         PublicKeyToken is specified, not the hash_value. Free public token
13563         values when free assembly name data. Previously the public key
13564         token was hex decoded, however we are using hex encoded public key
13565         tokens, so this is not neccasary.
13566         * assembly.c: Lookup assemblies in the gac if their public token
13567         value is set. Add function to allow enabling user gac
13568         lookups. Specify whether or not the assembly was loaded from the
13569         GAC. Compare full assembly names when checking the cache for
13570         assemblies (Temporarily disabled see comment in code). Remove
13571         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
13572         specifies trace-loader they get extra info to stdout on the
13573         loading of assemblies.
13574         * image.h: Add a field for an assembly references public token
13575         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
13576         whether an assembly has been loaded from the GAC.
13577         * image.c: Remove a corlib -> mscorlib name mapping.
13578         * loader.h: Add function to enable/disable the user gac.
13579         * mono-config.c: Check if the usergac is enabled in the config
13580         file.
13581         * icall.c: New icall to determine whether or not an assembly has
13582         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
13583         * tabldefs.h: Add constant for assemblyref flag that specifies a
13584         full public key is used instead of a public token.
13585         * reflection.c: Remove mscorlib -> corlib mappings. Set
13586         PublicTokenValue instead of hash value. This value is a hex
13587         string so it does not need to be expanded.
13588
13589 2004-04-26  Martin Baulig  <martin@ximian.com>
13590
13591         * mono-debug-debugger.c (mono_debugger_initialize): Set
13592         `mono_debugger_initialized' before calling mono_debug_lock().
13593
13594 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
13595
13596         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
13597           InternalToUpper/InternalToLower.
13598         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
13599           removed invariant culture shortcut.  This is now done in managed code.
13600         * locales.c: (string_invariant_toupper/tolower) removed.
13601
13602 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13603
13604         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
13605         Added Poll internal call.
13606
13607         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
13608         call for Poll. Select was too heavy for polling a single socket.
13609
13610         * threadpool.[ch]: added mono_threadpool_cleanup.
13611         * threads.c: use it. Don't use Thread_Abort on windows.
13612
13613 2004-04-23  Martin Baulig  <martin@ximian.com>
13614
13615         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
13616
13617 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
13618
13619         * icall.c: Registred new icalls for key pair protection and added an
13620         icall for Environment.GetFolderPath on Windows.
13621         * security.c|h: Added new icalls for key pair protection.
13622
13623 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13624
13625         * socket-io.c: don't display the non-supported family warning for known
13626         families. Now this is not displayed on windows when checking support
13627         for IPv4/IPv6.
13628
13629 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13630
13631         * class.c: don't display the layout warning for static fields.
13632
13633 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
13634
13635         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
13636         * locales.c, locales.h: Added new icalls for culture-specific
13637         Char.ToLower and Char.ToUpper.
13638
13639 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13640
13641         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
13642         by David Waite.
13643
13644 2004-04-20  Martin Baulig  <martin@ximian.com>
13645
13646         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
13647         of the type name before passing it to mono_reflection_type_from_name().
13648
13649 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
13650
13651         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
13652         encodings here. Fixes #56965.
13653
13654 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
13655
13656         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
13657         fix test on strstr result not that I can see anything that
13658         relies on the result.
13659
13660 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
13661
13662         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
13663         Fixes #57081.
13664
13665         * marshal.c (mono_marshal_get_string_encoding): New helper function.
13666
13667         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
13668         function to determine which marshalling to use for strings. Fixes
13669         #56965.
13670
13671         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
13672
13673         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
13674
13675 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
13676
13677         * icall.c: #include mono-config.h
13678
13679 2004-04-15  Jackson Harper  <jackson@ximian.com>
13680
13681         * culture-info-tables.h: Fix date formats for en-US culture.
13682         
13683 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
13684
13685         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
13686         ThreadPool.SetMinThreads.
13687         * threadpool.c: Implemented ThreadPool.GetMinThreads and
13688         ThreadPool.SetMinThreads.
13689
13690 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
13691
13692         * mono-config.c: also load the .config file in the directory
13693         where the assembly was found.
13694
13695 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
13696
13697         * assembly.c: load per-assembly config files.
13698         * icall.c: decrapified code to get the config dir and moved to
13699         mono-config.c.
13700         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
13701         per-assembly config files. When doing a dll map lookup give precedence
13702         to the per-assembly data.
13703
13704 2004-04-14  Martin Baulig  <martin@ximian.com>
13705
13706         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
13707         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
13708         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
13709
13710         * mono-debugger-debugger.c: While the debugger is locked, remember
13711         whether the symbol tables have changes and send one single
13712         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
13713
13714 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
13715
13716         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
13717
13718         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
13719         function.
13720
13721         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
13722         account when marshalling string arrays. Fixes #56965.
13723
13724 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
13725
13726         * icall.c: Add new icalls mapping for security.
13727         * security.c|h: Add internal calls for WindowsIdentity,
13728         WindowsImpersonationContext and WindowsPrincipal.
13729
13730 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
13731
13732         * class.c: Added comment to ensure the System.MonoDummy class
13733         is removed when no longer necessary
13734
13735 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
13736
13737         * appdomain.c: Pass arguments to the bootstraping exceptions to
13738         minimize JITed methods at boot
13739
13740         * metadata.c (mono_exception_from_name_two_strings): Allow for the
13741         second string to be null.
13742
13743         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
13744         Change the protocol to minimize the JIT methods at startup.  Now
13745         it Returns the internal codepage, if the value of "int_code_page"
13746         is 1 at entry, and we can not compute a suitable code page
13747         number, returns the code page as a string.
13748
13749 2004-04-13  Jackson Harper  <jackson@ximian.com>
13750
13751         * culture-info-tables.h: Fix number of decimal digits for all
13752         english locales.
13753
13754 2004-04-13  Jackson Harper  <jackson@ximian.com>
13755
13756         * icall.c: Clairfy out of sync error message. It is not always
13757         your corlib that is out of sync.
13758
13759 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
13760
13761         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
13762         properties when only the set accessor is overriden. Fixes #55874.
13763
13764 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
13765
13766         * assembly.c (mono_assembly_load_references): Make this thread safe.
13767         Fixes #56327.
13768
13769 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
13770
13771         * monosn.c: Add missing initialization calls.
13772
13773 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
13774
13775         * locales.c:
13776         ves_icall_System_Globalization_CultureInfo_construct_number_format
13777         Fix g_assert so it compiles on fussier compilers re int/ptr
13778         mismatch
13779
13780 2004-04-08  Dick Porter  <dick@ximian.com>
13781
13782         * socket-io.h:
13783         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
13784         53992.  Also rearrange the code so that the internal calls return
13785         an error value and exceptions are thrown from managed code.
13786
13787         * icall.c: Add type info to the socket icalls.
13788
13789 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13790
13791         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
13792         owes me a beer.
13793
13794 2004-04-07  Martin Baulig  <martin@ximian.com>
13795
13796         * class.c (mono_class_from_generic_parameter): Don't default
13797         `klass->parent' to `mono_defaults.object_type'.
13798
13799 2004-04-07  Martin Baulig  <martin@ximian.com>
13800
13801         * reflection.c (mono_reflection_initialize_generic_parameter): Set
13802         `param->pklass->reflection_info'.       
13803
13804 2004-04-07  Jackson Harper  <jackson@ximian.com>
13805
13806         * culture-info-tables.h: Fix date separator symbol.
13807         
13808 2004-04-07  Martin Baulig  <martin@ximian.com>
13809
13810         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
13811         from System.Type to System.MonoType.
13812
13813 2004-04-07  Martin Baulig  <martin@ximian.com>
13814
13815         * reflection.h
13816         (MonoReflectionGenericParam): Added `has_reference_type' and
13817         `has_value_type' fields.
13818
13819         * reflection.c (mono_image_get_generic_param_info): Encode the
13820         correct flags if we have the `class' or `struct' constraint.
13821
13822 2004-04-07  Martin Baulig  <martin@ximian.com>
13823
13824         * reflection.h
13825         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
13826
13827 2004-04-07  Jackson Harper  <jackson@ximian.com>
13828
13829         * appdomain.c: Revert extra patches, just wanted to bump the
13830         version number.
13831         
13832 2004-04-07  Jackson Harper  <jackson@ximian.com>
13833
13834         * Makefile.am: Add culture-info private headers.
13835         * icall.c: Add new icalls for contructing locales.
13836         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
13837         * locales.h: Declare new culture info construction methods.
13838         * object.h: Add new fields used to avoid the CultureMap to
13839         MonoCultureInfo.
13840         * culture-info.h: Definition of structs used in the culture info
13841         tables.
13842         * culture-info-tables.h: Autogenerated tables that contain culture
13843         info data. This file was generated with the locale-builder tool.
13844         * appdomain.c: Incement corlib version number.
13845         
13846 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
13847
13848         * appdomain.c: (mono_runtime_init) move mono_thread_init
13849         to before mono_object_new calls so critical sections
13850         are initialized before use.
13851
13852 2004-04-07  Martin Baulig  <martin@ximian.com>
13853
13854         * icall.c
13855         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
13856         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
13857         (ves_icall_MonoGenericParam_initialize): Removed.
13858         (monogenericparam_icalls): Removed.
13859         (generictypeparambuilder_icalls): Added new table for
13860         System.Reflection.Emit.GenericTypeParameterBuilder.
13861
13862         * reflection.c
13863         (mono_reflection_define_generic_parameter): Removed.
13864         (mono_reflection_initialize_generic_parameter): This is now called
13865         from GenericTypeParameterBuilder's .ctor.
13866
13867 2004-04-06  Martin Baulig  <martin@ximian.com>
13868
13869         * class.c (mono_class_init): Don't inflate nested classes in a
13870         generic instance.
13871         (mono_type_get_name_recurse): Include the generic arguments for
13872         generic instances and generic type declarations.
13873         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
13874         (_mono_class_get_instantiation_name): Removed.
13875         (mono_class_create_generic): Always use `gklass->name' as our name.
13876
13877         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
13878
13879         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
13880         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
13881         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
13882         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
13883         closed generic methods here.
13884
13885         * reflection.c
13886         (mono_reflection_generic_inst_get_nested_types): Removed.
13887         (inflate_mono_method): Copy the generic parameters from the
13888         MonoMethodHeader into out MonoGenericMethod.
13889
13890 2004-04-06  Martin Baulig  <martin@ximian.com>
13891
13892         * row-indexes.h
13893         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
13894
13895         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
13896
13897         * reflection.c (build_compressed_metadata): If we have any entries
13898         in the GenericParam, MethodSpec or GenericParamConstraint tables,
13899         set the header version to 1.1.
13900
13901 2004-04-06  Martin Baulig  <martin@ximian.com>
13902
13903         * class.c (mono_class_init): If we're a generic instance,
13904         initialize our nested classes, too.
13905         (_mono_class_get_instantiation_name): Deal with the new `!%d'
13906         suffix. 
13907
13908 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13909
13910         * process.c: quote the argument passed to the shell on windows.
13911
13912 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
13913
13914         * threads.c (mono_alloc_special_static_data): Allow this to be
13915         called during startup.
13916
13917 2004-04-02  Martin Baulig  <martin@ximian.com>
13918
13919         * icall.c
13920         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
13921
13922 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
13923
13924         * icall.c: Fix build.
13925
13926 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
13927
13928         * Makefile.am: Added security.c|h.
13929         * icall.c: Added icall for get_UserName;
13930         * security.c: New file for security related icalls. Added function
13931         get_UserName for System.Environment (fix #56144).
13932         * security.h: New. Header file for security.c
13933
13934 2004-04-02  Dick Porter  <dick@ximian.com>
13935
13936         * icall.c: Deleted the icalls that were obsoleted some time ago
13937         by the ICU string code, and which were mixed into the icall
13938         rearranging.  Fixes bug 55969.
13939
13940         * string-icalls.h: 
13941         * string-icalls.c: Deleted the code that those icalls reference.
13942
13943 2004-04-01  Martin Baulig  <martin@ximian.com>
13944
13945         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
13946
13947         * class.c (mono_class_from_generic_parameter): Don't set 
13948         TYPE_ATTRIBUTE_INTERFACE.
13949         (my_mono_class_from_generic_parameter): Likewise.
13950
13951 2004-04-01  Martin Baulig  <martin@ximian.com>
13952
13953         * loader.c (find_method): Added an optional `MonoClass *ic'
13954         argument to search in a specific interface.
13955         (mono_get_method_constrained): New public function.
13956
13957 2004-04-01  Martin Baulig  <martin@ximian.com>
13958
13959         * reflection.c (mono_image_get_generic_field_token): Use the
13960         `handleref' cache here.
13961
13962 2004-04-01  Martin Baulig  <martin@ximian.com>
13963
13964         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
13965
13966         * reflection.c (create_generic_typespec): Use the `typespec' hash
13967         here, not the `typeref' one.    
13968
13969 2004-04-01  Martin Baulig  <martin@ximian.com>
13970
13971         * class.c (mono_class_inflate_generic_type): Moved the
13972         functionality into a new static inflate_generic_type() which
13973         returns NULL if it didn't do anything.  Only increment the
13974         `mono_stats.inflated_type_count' if we actually inflated
13975         something.
13976         (mono_class_get_full): Check the classes type to see whether we
13977         need to inflate it; also inflate MONO_TYPE_(M)VAR.
13978
13979 2004-04-01  Jackson Harper  <jackson@ximian.com>
13980
13981         * reflection.c: Set culture for assembly references.
13982         
13983 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
13984
13985         * reflection.[ch], icall.[ch], Fix support for pinning variables.
13986
13987 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13988
13989         * assembly.c:
13990         (do_mono_assembly_open): the critical section also covers
13991         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
13992
13993 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13994
13995         * threads.c:
13996         (mono_manage_threads): abort the background threads when finishing.
13997         Fixes bug #47232.
13998
13999 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14000
14001         * gc.c: only close the done_event handle if there was no timeout.
14002         C-ified comments.
14003
14004 2004-03-30  Martin Baulig  <martin@ximian.com>
14005
14006         * icall.c (icall_entries): It's called "System.Activator", not
14007         "System.Activation".    
14008
14009 2004-03-30  Martin Baulig  <martin@ximian.com>
14010
14011         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
14012         (mono_class_create_from_typespec): Likewise.
14013
14014 2004-03-30  Martin Baulig  <martin@ximian.com>
14015
14016         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
14017         `has_ctor_constraint' and `initialized'.
14018
14019 2004-03-30  Martin Baulig  <martin@ximian.com>
14020
14021         * reflection.c (encode_new_constraint): New static function to add
14022         the constructor constraint attribute to a type parameter.
14023         (encode_constraints): Call encode_new_constraint() if necessary.
14024
14025         * reflection.h
14026         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
14027
14028         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
14029         
14030 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
14031
14032         * reflection.c, icall.c: add support for pinning variables. 
14033
14034 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
14035
14036         * marshal.c (mono_marshal_get_managed_wrapper):
14037         init bool local with zero rather than null.
14038
14039 2004-03-29  Martin Baulig  <martin@ximian.com>
14040
14041         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
14042         the "official" behavior here.
14043         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
14044
14045 2004-03-29  Martin Baulig  <martin@ximian.com>
14046
14047         * icall.c: Reflect latest API changes.
14048
14049 2004-03-29  Martin Baulig  <martin@ximian.com>
14050
14051         * loader.c (mono_get_method_from_token): Also call
14052         mono_metadata_load_generic_params () for abstract and interface
14053         methods; replace the type arguments in the method signature with
14054         the ones which are loaded from the metadata.
14055
14056 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
14057
14058         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
14059         of the lock is not the current thread. MS.NET don't do it, in spite of
14060         what the documentation says. See bug #56157.
14061
14062 2004-03-28  Martin Baulig  <martin@ximian.com>
14063
14064         * class.c (mono_class_init): Don't call init_properties() and
14065         init_events() for generic instances; set `prop->parent' when
14066         inflating properties.
14067
14068         * reflection.c (mono_generic_inst_get_object): Call
14069         `mono_class_init (ginst->klass)'.
14070         (mono_type_get_object): Only create a MonoGenericInst if your
14071         generic type is a TypeBuilder.
14072         (do_mono_reflection_bind_generic_parameters): Only set
14073         `ginst->is_dynamic' if our generic type is a TypeBuilder.
14074
14075 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
14076
14077         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
14078         Fixes #56091.
14079
14080 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14081
14082         * icall.c: added Kill_internal icall.
14083         * process.[ch]: added Kill_internal icall.
14084
14085 2004-03-25  Martin Baulig  <martin@ximian.com>
14086
14087         * class.h (MonoStats): Added `generic_instance_count',
14088         `inflated_method_count', `inflated_type_count' and
14089         `generics_metadata_size'.       
14090
14091 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14092
14093         * reflection.c: no warnings now.
14094
14095 2004-03-25  Martin Baulig  <martin@ximian.com>
14096
14097         * class.c (mono_class_get_full): New public function; does a
14098         mono_class_get(), but also takes a `MonoGenericContext *'.
14099
14100         * loader.c (mono_field_from_memberref): Renamed to
14101         `field_from_memberref', made static and added `MonoGenericContext *'
14102         argument.
14103         (mono_field_from_token): Added `MonoGenericInst *' argument.
14104         (method_from_memberef): Likewise.
14105         (mono_get_method_from_token): Likewise.
14106         (mono_get_method_full): New public function; does a
14107         mono_get_method(), but also takes a `MonoGenericContext *'.
14108
14109         * verify.c (mono_method_verify): Get the method's generic context
14110         and pass it to mono_field_from_token(), mono_get_method_full() and
14111         mono_class_get_full().
14112
14113 2004-03-25  Martin Baulig  <martin@ximian.com>
14114
14115         * class.c (mono_class_inflate_generic_type): Take a
14116         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
14117         `MonoGenericMethod *'.
14118
14119 2004-03-25  Martin Baulig  <martin@ximian.com>
14120
14121         * loader.h (MonoMethodInflated): Store the MonoGenericContext
14122         instead of the MonoGenericMethod here.
14123
14124 2004-03-25  Martin Baulig  <martin@ximian.com>
14125
14126         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
14127         each time we create a new MonoGenericInst, we also create a new
14128         context which points back to us.
14129
14130         * class.c (inflate_method): Use `ginst->context' instead of
14131         creating a new context.
14132
14133         * loader.c (method_from_memberref): Use
14134         `klass->generic_inst->context' instead of creating a new context.
14135
14136 2004-03-25  Martin Baulig  <martin@ximian.com>
14137
14138         * class.h (MonoGenericContext): New struct.
14139         (MonoGenericMethod): Removed `generic_inst'.
14140
14141         * class.c (mono_class_inflate_generic_method): Take a
14142         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
14143
14144 2004-03-25  Martin Baulig  <martin@ximian.com>
14145
14146         * loader.h (MonoMethodInflated): New typedef.
14147
14148         * metadata.h (MonoMethodSignature): Removed `gen_method', make
14149         `generic_param_count' consume just 30 bits, added `is_inflated'
14150         and `has_type_parameters' flags (one bit each).
14151
14152         * class.c (mono_class_inflate_generic_method): Create a
14153         MonoMethodInflated instead of a MonoMethodNormal and set
14154         `is_inflated' in the method signature.
14155
14156         * class.h (MonoGenericMethod): Removed `generic_method'.
14157
14158 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
14159
14160         * image.c: Make sure the name of a MonoImage is always an absolute path.
14161           This fixes bug #54415.
14162
14163 2004-03-24  Martin Baulig  <martin@ximian.com>
14164
14165         * class.c (mono_class_setup_vtable): If we're a generic instance,
14166         use our generic type's vtable size.
14167
14168 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
14169
14170         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
14171         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
14172         problems.
14173
14174 2004-03-23  Martin Baulig  <martin@ximian.com>
14175
14176         * class.h (MonoDynamicGenericInst): Added `int count_events' and
14177         `MonoEvent *events'.
14178
14179         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
14180         (typebuilder_icalls): Added "get_event_info"; calls
14181         mono_reflection_event_builder_get_event_info(). 
14182
14183         * reflection.c (mono_reflection_generic_inst_initialize): Added
14184         `MonoArray *events'.
14185         (mono_reflection_event_builder_get_event_info): New function.
14186
14187 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
14188
14189         * object.h: add mono_type_initialization_init
14190
14191         * object.c (mono_runtime_class_init): 
14192         implement class constructor synchronization rules
14193         to cope with threading issues.  
14194         add mono_type_initialization_init
14195
14196         * appdomain.c (mono_runtime_init): call 
14197         mono_type_initialization_init
14198
14199         * class.h: removing initializing field from MonoVTable
14200
14201 2004-03-23  Martin Baulig  <martin@ximian.com>
14202
14203         * class.c (my_mono_class_from_generic_parameter): Use
14204         `param->name' if it's not NULL. 
14205
14206 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
14207
14208         * class.c: do not insert non-virtual methods in the vtable.
14209         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
14210         that means the method is non-virtual. This never would have
14211         happened before.
14212
14213 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
14214
14215         * profiler.c: Added lock for accessing coverage_hash.
14216
14217 2004-03-22  Martin Baulig  <martin@ximian.com>
14218
14219         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
14220         `method->method->signature->generic_param_count != 0' to make it
14221         work for interface methods.
14222
14223 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14224
14225         * process.c: quote the string passed to the shell using g_shell_quote.
14226
14227 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14228
14229         * threads.c:
14230         (mono_threads_manage): don't remove the finalizer thread and self
14231         from the threads hash table so that mono_thread_manage can be called
14232         more than once.
14233
14234 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14235
14236         * process.c: quote the arguments when UseShellExecute is true. Fixes
14237         bug #55790.
14238
14239 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14240
14241         * threads.c: set mono_thread_detach as a cleanup routine for every
14242         thread. This way it's always executed upon thread termination, either
14243         aborted or finished normally. No more xsp hangs!
14244
14245 2004-03-17  Martin Baulig  <martin@ximian.com>
14246
14247         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
14248         `int count_nested' and a `MonoType **nested'.
14249
14250         * reflection.c (mono_reflection_bind_generic_parameters): Moved
14251         most of the functionality into a new static
14252         do_mono_reflection_bind_generic_parameters() and don't take a
14253         `MonoType *nested_in' argument any more.  Don't compute nested
14254         types here.
14255         (mono_reflection_generic_inst_get_nested_types): New public method
14256         to get nested types.
14257
14258         * class.c (mono_class_create_generic): Set `klass->nested_in' if
14259         we're a nested class.
14260
14261         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
14262         mono_reflection_generic_inst_get_nested_types() to compute the
14263         nested types.
14264
14265 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
14266
14267         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
14268         descriptive error message under windows.
14269         
14270 2004-03-17  Martin Baulig  <martin@ximian.com>
14271
14272         * class.c (dup_type): Added `const MonoType *original' argument;
14273         copy the attrs from the original type.
14274
14275 2004-03-17  Martin Baulig  <martin@ximian.com>
14276
14277         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
14278         `m->generic_inst_cache' here.
14279
14280 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
14281
14282         * exception.h exception.c: Add stack_overflow_exception.
14283
14284 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14285
14286         * threadpool.c:
14287         (overlapped_callback): call SetEvent *after* invoking the callback.
14288         No need to call CloseHandle.
14289
14290 2004-03-16  Martin Baulig  <martin@ximian.com>
14291
14292         * reflection.c (mono_image_get_fieldref_token): Take a
14293         `MonoReflectionField *' instead of a `MonoClassField *' and a
14294         `MonoClass *'; store the `MonoReflectionField *' in the hash.
14295
14296 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14297
14298         * appdomain.c: don't add the culture to the filename we're looking for
14299         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
14300
14301 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14302
14303         * locales.c: don't ignore symbols when doing case insensitive compares.
14304         Thanks Dick! Fixes bug #54046.
14305
14306         * threads.c: surround 'threads' usage with enter/leave in
14307         mono_thread_manage.
14308
14309 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
14310
14311         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
14312         implicitly marshalled as [Out]. Fixes #55450.
14313
14314         (mono_marshal_get_runtime_invoke): Zero out the result if there is
14315         an exception.
14316
14317 2004-03-16  Martin Baulig  <martin@ximian.com>
14318
14319         * class.c (mono_class_from_generic_parameter): Use the actual
14320         parameter name. 
14321
14322 2004-03-16  Martin Baulig  <martin@ximian.com>
14323
14324         * reflection.c (type_get_signature_size): New static function.
14325         Compues the size of the type in a method signature.
14326         (method_get_signature_size): New static function; calls
14327         type_get_signature_size() to compute the actual size of the
14328         method's signature.
14329         (method_encode_signature): Use method_get_signature_size() to get
14330         the signature's size rather than using `nparams * 10'.
14331
14332 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14333
14334         * file-io.h: define here WapiOverlapped on windows. I don't want the
14335         regular OVERLAPPED one.
14336
14337         * file-io.c:
14338         * threadpool.c: somehow, BindIoCompletionCallback is not found.
14339         Disabling AIO on windows.
14340
14341 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14342
14343         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
14344         bug #55385.
14345
14346 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14347
14348         * appdomain.c: upgraded corlib version.
14349
14350         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
14351         and BeginWrite. Allow opening files for asynchrnous operations.
14352
14353         * file-io.h: new struct that maps FileStreamAsyncResult.
14354         * icall.c: added new icalls.
14355         * process.[ch]: support setting child process environment variables
14356         and use the SHELL or COMSPEC when UseShellExecute is true.
14357
14358         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
14359         callback for async. IO is here and also BindHandle.
14360
14361         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
14362         from here.
14363
14364 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
14365
14366         * reflection.c (create_custom_attr): Allow len == 0.
14367
14368         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
14369         computation on big-endian machines.
14370
14371 2004-03-13  Martin Baulig  <martin@ximian.com>
14372
14373         * class.h (MonoGenericInst): Added `int count_ifaces'.
14374
14375         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
14376         `ginst->count_ifaces' instead `klass->interface_count' since we
14377         may get called before the vtable is created.
14378
14379         * loader.c (mono_method_get_param_names): If we're a generic
14380         instance, return and don't initialize the class.
14381
14382         * reflection.c (mono_reflection_setup_generic_class): Don't call
14383         ensure_runtime_vtable().
14384         (mono_reflection_bind_generic_parameters): Set
14385         `ginst->count_ifaces'.
14386
14387 2004-03-11  Jackson Harper <jackson@ximian.com>
14388
14389         * icall.c:
14390         * unicode.c:
14391         * unicode.h: Remove unused System.Char icalls.
14392         
14393 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
14394
14395         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
14396         code when we P/Invoke the first library in Windows.Forms, instead
14397         of when we first open the assembly.
14398
14399         * assembly.c: Drop the lookup from here.
14400
14401 2004-03-10  Martin Baulig  <martin@ximian.com>
14402
14403         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
14404         class for properties, fields and events.  Finally fixes #54945.
14405
14406 2004-03-10  Martin Baulig  <martin@ximian.com>
14407
14408         * metadata.c (mono_metadata_class_equal): New static function;
14409         checks whether two generic instances or two generic parameters are
14410         equal.
14411         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
14412         compare classes.        
14413
14414 2004-03-10  Martin Baulig  <martin@ximian.com>
14415
14416         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
14417
14418         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
14419         argument and write it into the `reflection_info' field.
14420
14421         * icall.c
14422         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
14423         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
14424
14425 2004-03-09  Jackson Harper  <jackson@ximian.com>
14426
14427         * char-conversions.h: use 8 bits for numeric data its all we need
14428         * icall.c: numeric data is only 8 bits now.
14429
14430 2004-03-09  Martin Baulig  <martin@ximian.com>
14431
14432         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
14433
14434         * class.c (init_properties, init_events): Initialize the new
14435         `parent' field.
14436
14437         * reflection.c (typebuilder_setup_properties): Likewise.
14438         (typebuilder_setup_events): Likewise.
14439
14440         * reflection.h (MonoEventInfo): Replaced `parent with
14441         `declaring_type' and `reflected_type'.
14442
14443         * icall.c (ves_icall_get_property_info): Distinguish between
14444         declaring and reflected type.
14445         (ves_icall_get_event_info): Likewise.
14446
14447 2004-03-09  Martin Baulig  <martin@ximian.com>
14448
14449         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
14450         (ves_icall_Type_GetField): Correctly set field->klass.
14451
14452 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
14453
14454         * loader.h: Fix warning.
14455
14456 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
14457
14458         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
14459         library routine if present.  Notice that it will still continue
14460         executing even if its missing, for those working on the Gtk#
14461         edition of Windows.Forms.
14462
14463         * assembly.c (do_mono_assembly_open): If loading the
14464         System.Windows.Forms call mono_loader_wini_init.
14465
14466 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
14467
14468         * class.h: Added MonoRemoteClass struct.
14469         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
14470         function for MonoStrings.
14471         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
14472         Added internal call for getting the proxy type.
14473         * marshal.c: Get the type of transparent proxies from its remote_class.
14474         Added methods that generate the IL for type checks and casts:
14475         mono_marshal_get_isinst, mono_marshal_get_castclass, 
14476         mono_marshal_get_proxy_cancast.
14477         * marshal.h: Declaration of the previous new methods.
14478         * object.c: Added new moethods for creating and updating MonoRemoteClass
14479         instances: mono_remote_class, mono_upgrade_remote_class, 
14480         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
14481         * verify.c: FIx transparent_proxy_fields layout.
14482         * appdomain.c: Bump corlib version.
14483
14484 2004-03-04  Jackson Harper  <jackson@ximian.com>
14485
14486         * icall.c: Add icall to access char conversion tables.
14487         * char-conversions.h: Character conversion tables.
14488         * Makefile.am: Add char-conversions.h private header file.
14489         
14490 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
14491
14492         * appdomain.c (unload_thread_main): Increase unloading timeout to
14493         10 sec as a temporary workaround for Nant problems.
14494
14495 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
14496
14497         * gc.c: Add checks for GC_enable and GC_disable.
14498
14499         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
14500         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
14501         (bug #54988).
14502         
14503 2004-02-27  Martin Baulig  <martin@ximian.com>
14504
14505         * reflection.c (mono_reflection_bind_generic_parameters): Take a
14506         `MonoReflectionType *' instead of a `MonoType *'.
14507
14508 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
14509
14510         * gc.c (run_finalize): Avoid finalizing the object representing the
14511         finalizer thread.
14512         (finalizer_thread): Fix warning.
14513
14514 2004-02-25  Martin Baulig  <martin@ximian.com>
14515
14516         * class.c (_mono_class_get_instantiation_name): Added `int offset'
14517         argument for nested types.
14518         (mono_class_create_generic): Added support for nested generictypes.
14519
14520         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
14521         `GList *nested'.
14522
14523         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
14524
14525         * reflection.c (method_encode_signature): Increase the minimum
14526         value of `size' from 10 to 11.
14527         (mono_reflection_bind_generic_parameters): Take `int type_argc'
14528         and `MonoType **types' arguments instead of the `MonoArray
14529         *types'; added `MonoType *nested_in'.  Recursively instantiate
14530         nested classes. 
14531
14532 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
14533
14534         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
14535         stack_overflow_ex members which are used by exception handling.
14536
14537         * appdomain.c (mono_runtime_init): Initialize the new members.
14538
14539         * gc.c (mono_gc_enable): New helper function.
14540         * gc.c (mono_gc_disable): New helper function.
14541
14542 2004-02-23  Martin Baulig  <martin@ximian.com>
14543
14544         * icall.c: I must have been really stupid - make it actually work
14545         this time ;-)
14546
14547 2004-02-23  Martin Baulig  <martin@ximian.com>
14548
14549         * loader.c (method_from_memberref): Only inflate the method if
14550         it's in another klass.
14551
14552 2004-02-23  Martin Baulig  <martin@ximian.com>
14553
14554         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
14555         (mono_class_init): If we're a generic instance and an interface,
14556         compute `class->interface_id'; also create `class->interfaces'
14557         here and inflate them.
14558
14559         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
14560         `ginst->is_open'.
14561         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
14562
14563         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
14564
14565 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
14566
14567         * reflection.c (method_encode_code): Improved the error message
14568         generated by the exception.
14569
14570 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14571
14572         * icall.c: Martin did not do what he said in the ChangeLog for
14573         2004-02-18, but put back the changes for properties and events.
14574         Commenting those changes out again and adding comment to bug #54518.
14575         
14576         * process.c: removed warning.
14577
14578 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
14579
14580         * marshal.c (emit_struct_conv): Print an error message instead of
14581         asserting when a type does not have the StructLayout attribute.
14582
14583 2004-02-20  Martin Baulig  <martin@ximian.com>
14584
14585         * reflection.c (mono_type_get_object): Also use the cache for
14586         generic instances.
14587         (mono_reflection_bind_generic_parameters): Always compute
14588         `ginst->ifaces'.        
14589
14590 2004-02-20  Martin Baulig  <martin@ximian.com>
14591
14592         * class.h (MonoGenericMethod): Removed `klass'.
14593
14594         * class.c (mono_class_inflate_generic_method): Added `MonoClass
14595         *klass' argument.
14596
14597 2004-02-20  Martin Baulig  <martin@ximian.com>
14598
14599         * reflection.c (method_encode_methodspec): Actually use the
14600         uninflated signature for the memberref.
14601
14602 2004-02-20  Martin Baulig  <martin@ximian.com>
14603
14604         * class.h (MonoGenericMethod): Removed `declaring'.
14605
14606         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
14607         is NULL, compute it here.
14608
14609 2004-02-20  Martin Baulig  <martin@ximian.com>
14610
14611         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
14612
14613         * metadata.c (mono_metadata_generic_inst_hash): New method.
14614         (mono_metadata_generic_inst_equal): New method.
14615
14616         * reflection.c (mono_reflection_bind_generic_parameters): Use the
14617         `klass->image->generic_inst_cache' cache to avoid creating
14618         duplicate MonoGenericInst's.
14619
14620         * class.c (mono_class_inflate_generic_type): Use the cache.
14621
14622 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
14623
14624         * object.c: fixed gc descriptor calculation for embedded valuetypes.
14625
14626 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14627
14628         * icall.c: added Socket.WSAIoctl icall.
14629
14630         * socket-io.[ch]: implemented
14631         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
14632
14633 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
14634
14635         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
14636
14637 2004-02-18  Urs C Muff  <umuff@quark.com>
14638
14639         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
14640         this work on PPC and other big-endian architectures.
14641
14642         * debug-mono-symfile.h: Prepended the names of all the `guint32'
14643         fields with an underscore to make sure they're only accessed by
14644         the read32() macro.
14645
14646 2004-02-18  Martin Baulig  <martin@ximian.com>
14647
14648         * icall.c: Put the klass->refclass changes back for methods and
14649         fields, but not for properties and events.  We're currently not
14650         distinguishing between DeclaringType and ReflectedType for
14651         properties and events, that's what caused the regressions.
14652
14653 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14654
14655         * object.c:
14656         (mono_async_result_new): the handle can be NULL.
14657
14658         * threadpool.c: Use an event instead of a semaphore, don't initialize
14659         it until needed. This saves quite a few semaphores from being created
14660         when using the threadpool.
14661
14662 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
14663
14664         * object.c (mono_string_is_interned_lookup): Fix interning of long
14665         strings. Fixes #54473.
14666
14667         * domain.c (ldstr_equal): Optimize if the two strings are equal.
14668
14669         * icall.c: Revert the klass->refclass changes since they introduce
14670         regressions (bug #54518).
14671
14672 2004-02-18  Martin Baulig  <martin@ximian.com>
14673
14674         * class.c (mono_class_init): If we're a generic instance and don't
14675         come from a TypeBuilder, inflate our members here.
14676         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
14677         (mono_class_create_generic): New public method.
14678         (mono_class_initialize_generic): Removed.
14679         (get_instantiation_name): Renamed to
14680         _mono_class_get_instantiation_name() and made it public.
14681
14682 2004-02-18  Martin Baulig  <martin@ximian.com>
14683
14684         * class.c (mono_class_inflate_generic_type): Clear the new
14685         instance's `nginst->klass' when inflating a generic instance.
14686         (mono_class_is_subclass_of): Added (basic) support for generic
14687         instances.
14688
14689 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
14690
14691         * appdomain.h, domain.c: use a MonoCodeManager instead of a
14692         MonoMempool to hold compiled native code.
14693
14694 2004-02-17  Martin Baulig  <martin@ximian.com>
14695
14696         * class.h (MonoDynamicGenericInst): Added `count_properties' and
14697         `properties'.
14698
14699         * reflection.c (mono_reflection_generic_inst_initialize): Added
14700         `MonoArray *properties' argument.
14701
14702         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
14703
14704 2004-02-17  Martin Baulig  <martin@ximian.com>
14705
14706         * icall.c (ves_icall_Type_GetFields): Renamed to
14707         ves_icall_Type_GetFields_internal() and added a
14708         `MonoReflectionType *rtype' argument; pass it to
14709         mono_field_get_object() to set the field's "reflected" type.
14710         (ves_icall_Type_GetConstructors): Likewise.
14711         (ves_icall_Type_GetEvents): Likewise.
14712         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
14713         argument; pass it to mono_method_get_object() to set the method's
14714         "reflected" type.       
14715
14716 2004-02-17  Martin Baulig  <martin@ximian.com>
14717
14718         * class.h (MonoDynamicGenericInst): New type.
14719         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
14720
14721         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
14722         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
14723         (ves_icall_MonoGenericInst_GetFields): New interncall.
14724
14725         * class.c (mono_class_from_generic): Don't call
14726         mono_class_initialize_generic() if this is a dynamic instance;
14727         ie. it's being created from a TypeBuilder.
14728         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
14729         `class->byval_arg.type'.
14730
14731         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
14732         to `inflate_method' and made static.
14733         (mono_reflection_inflate_field): Removed.
14734         (mono_reflection_generic_inst_initialize): New public method.
14735
14736         * reflection.h (MonoReflectionGenericInst): Removed `methods',
14737         `ctors' and `fields'; added `initialized'.
14738
14739 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
14740
14741         * debug-helpers.c (mono_method_full_name): Fix output for empty
14742         namespaces.
14743
14744 2004-02-12  Martin Baulig  <martin@ximian.com>
14745
14746         * class.h (MonoClassField): Added `MonoType *generic_type'.
14747
14748         * reflection.c (mono_image_get_fieldref_token): Added support for
14749         instantiated generic types.
14750         (field_encode_inflated_field): Removed.
14751         (mono_image_get_inflated_field_token): Removed.
14752         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
14753
14754         * reflection.h (MonoReflectionInflatedField): Removed.
14755
14756 2004-02-12  Martin Baulig  <martin@ximian.com>
14757
14758         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
14759         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
14760
14761         * reflection.c (mono_image_get_methodspec_token): Take a
14762         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
14763         (mono_image_create_token): Check whether we have a
14764         `method->signature->gen_method' and call
14765         mono_image_get_methodspec_token() if appropriate.
14766         (inflated_method_get_object): Removed.
14767         (mono_reflection_bind_generic_method_parameters): Return a
14768         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
14769         (mono_reflection_inflate_method_or_ctor): Likewise.
14770
14771         * reflection.h (MonoReflectionInflatedMethod): Removed.
14772
14773 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
14774
14775         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
14776         for custom valuetype marshalling.
14777
14778         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
14779
14780 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14781
14782         * icall.c: fixed WSAGetLastError_internal name.
14783
14784 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
14785
14786         * threads.c (mono_thread_attach): Allow this to be called multiple
14787         times for a thread.
14788         
14789         * threads.c (build_wait_tids): Do not wait for ourselves.
14790
14791         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
14792         appdomain list is empty.
14793
14794         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
14795         memory returned by mono_string_builder_to_utf16, since it points into
14796         managed memory. Thanks to Bernie Solomon for noticing this.
14797
14798         * icall.c: Add AppDomainSetup icalls.
14799
14800         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
14801
14802         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
14803         types.
14804
14805         * reflection.c (reflection_methodbuilder_to_mono_method): Save
14806         custom attributes to the method_aux struct. Also fix array indexes etc.
14807
14808         * loader.c (mono_method_get_param_names): Make dynamic case work again.
14809         
14810 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
14811
14812         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
14813         (both static and runtime) and reduce startup time.
14814
14815 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
14816
14817         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
14818         AsAny marshalling conversion instead of crashing.
14819
14820         * marshal.c: Fix warnings.
14821
14822 2004-02-09  Martin Baulig  <martin@ximian.com>
14823
14824         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
14825
14826         * reflection.h (MonoReflectionInflatedMethod): Removed the
14827         `declaring' field, it's now in the unmanaged MonoGenericMethod.
14828
14829         * reflection.c (method_encode_methodspec): Removed the `method'
14830         argument; we get it from `gmethod->declaring'.
14831         (inflated_method_get_object): Removed the `declaring' argument.
14832
14833 2004-02-09  Martin Baulig  <martin@ximian.com>
14834
14835         * class.h (MonoGenericMethod): New type.
14836         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
14837         `generic_method'.
14838
14839         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
14840         a `MonoGenericMethod *gen_method' one.
14841
14842         * class.c (mono_class_inflate_generic_type): Take an additional
14843         `MonoGenericMethod * argument.  This is only non-NULL if we're
14844         inflating types for a generic method.   
14845         (mono_class_inflate_generic_signature): Renamed to
14846         inflate_generic_signature() and made static; take a
14847         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
14848         (inflate_generic_header): Take a `MonoGenericMethod *' argument
14849         instead of a `MonoGenericInst *' one.
14850         (mono_class_inflate_generic_method): Likewise.
14851
14852         * reflection.c (encode_generic_method_sig): Take a
14853         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
14854         (method_encode_methodspec): Likewise.
14855         (inflated_method_get_object): Likewise. 
14856
14857         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
14858         field with a `MonoGenericMethod *gmethod' one.  
14859
14860 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
14861
14862         * class.h (mono_class_has_parent): add parens to expansion
14863         so you can ! this.
14864
14865 2004-02-08  Martin Baulig  <martin@ximian.com>
14866
14867         * image.h (MonoImage): Removed `generics_cache'.
14868
14869         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
14870         instead of a `MonoType *' argument; removed the `inflate_methods'
14871         argument.  Don't inflate methods here.
14872
14873         * loader.c (find_method): If it's a generic instance, call
14874         mono_class_init() on the `sclass->generic_inst->generic_type'.
14875
14876         * metadata.c (mono_type_size): Make this work on uninitialized
14877         generic instances; call it on the `ginst->generic_type's class.
14878
14879         * reflection.c (mono_reflection_bind_generic_parameters): Call
14880         mono_class_from_generic() to create the `ginst->klass'.
14881
14882 2004-02-08  Martin Baulig  <martin@ximian.com>
14883
14884         * class.h (MonoClass): Changed type of `generic_inst' from
14885         `MonoType *' to `MonoGenericInst *'.
14886
14887 2004-02-08  Martin Baulig  <martin@ximian.com>
14888
14889         * icall.c (ves_icall_Type_BindGenericParameters): Just call
14890         mono_type_get_object(), this is now creating a `MonoGenericInst'
14891         for MONO_TYPE_GENERICINST.
14892         (ves_icall_MonoGenericInst_GetParentType): Likewise.
14893         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
14894
14895         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
14896         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
14897         (inflated_method_get_object): Added `MonoClass *refclass' argument.
14898         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
14899         and reflected type.
14900
14901         * reflection.h (MonoReflectionInflatedMethod): Removed
14902         `declaring_type' and `reflected_type'.
14903
14904 2004-02-08  Martin Baulig  <martin@ximian.com>
14905
14906         * class.h (MonoGenericInst): Added `MonoType *parent' and
14907         `MonoType **ifaces'.
14908
14909         * reflection.h (MonoReflectionGenericInst): Removed `klass',
14910         `parent' and `interfaces'.
14911
14912         * reflection.c (mono_reflection_bind_generic_parameters): Take a
14913         `MonoType *' argument and return a `MonoType *'.
14914
14915         * icall.c
14916         (ves_icall_MonoGenericInst_GetParentType): New interncall.
14917         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
14918
14919 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
14920
14921         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
14922         valuetype marshalling.
14923
14924 2004-02-06  Martin Baulig  <martin@ximian.com>
14925
14926         * class.c
14927         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
14928         (my_mono_class_from_generic_parameter): Likewise.
14929
14930 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
14931
14932         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
14933         contents of the symbol files lazily.
14934
14935         * object.h (MonoThread): Add 'name' and 'name_len' fields.
14936
14937         * threads.h threads.c icall.c: New icalls for getting and setting the
14938         threads name.
14939
14940 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
14941
14942         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
14943         Raise an exception when the domain is not found.
14944
14945 2004-02-03  Martin Baulig  <martin@ximian.com>
14946
14947         * reflection.c (mono_image_get_methodspec_token): Use the
14948         uninflated signature; fixes gen-33.
14949
14950 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
14951
14952         * gc.c threads.c: Make the finalizer thread a normal managed thread so
14953         the finalizer code can use thread functionality.
14954
14955         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
14956         the finalizer thread.
14957
14958         * threads.c: Make some functions more robust.
14959
14960         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
14961
14962         * metadata.h: Add new marshalling conventions.
14963
14964         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
14965         stringbuilder marshalling. Fixes #53700.
14966
14967         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
14968
14969         * reflection.c (mono_image_get_type_info): Save declarative security
14970         info.
14971
14972         * reflection.c (mono_image_get_field_info): Handle uninitialized 
14973         unmanaged fields as well.
14974
14975         * appdomain.c: Bump corlib version.
14976
14977 2004-02-01  Martin Baulig  <martin@ximian.com>
14978
14979         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
14980         method type arguments.  
14981
14982 2004-01-30  Duncan Mak  <duncan@ximian.com>
14983
14984         * marshal.h: Add prototype for
14985         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
14986         and
14987         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
14988         fix the build.
14989
14990 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
14991
14992         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
14993         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
14994
14995 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
14996
14997         * marshal.c (mono_marshal_get_native_wrapper): Add support for
14998         custom marshalling of valuetypes.
14999
15000         * marshal.c: Fix some warnings.
15001
15002 2004-01-29  Martin Baulig  <martin@ximian.com>
15003
15004         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
15005         for generic method parameters.
15006
15007         * reflection.c (method_encode_methodspec): Write the uninflated
15008         signature into the methodspec table.
15009         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
15010         is always the uninflated method.
15011         (reflection_methodbuilder_to_mono_method): Copy the generic
15012         parameters from the MethodBuilder into `header->gen_params'.
15013
15014 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
15015
15016         * class.c (mono_class_from_generic_parameter): Fix warning.
15017
15018 2004-01-27  Martin Baulig  <martin@ximian.com>
15019
15020         * class.c (mono_class_from_generic_parameter): Don't create
15021         `klass->methods' here.  
15022
15023 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
15024
15025         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
15026         extension since it does not work with libraries named lib<FOO>.dll.so.
15027
15028 2004-01-25  Martin Baulig  <martin@ximian.com>
15029
15030         * class.c (mono_class_inflate_generic_type): Added support for
15031         MONO_TYPE_GENERICINST.
15032
15033         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
15034         inflate methods on open constructed types.      
15035
15036 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15037
15038         * object.c: fire ProcessExit event in the root AppDomain after running
15039         Main. Fixes bug #53299.
15040
15041 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
15042
15043         * socket-io.c: include the new socket-wrappers.h header.
15044         Use the wrappers instead of the unix socket functions to make the code
15045         more clear.
15046
15047 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
15048
15049         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
15050
15051         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
15052         Fixes #22532.
15053
15054 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
15055
15056         * reflection.c (mono_image_create_pefile): Handle the case when the
15057         entry point is not a MethodBuilder.
15058
15059         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
15060         field to ReflectionMethod since it is not allways a builder.
15061
15062         * reflection.c (type_get_fully_qualified_name): New helper function to
15063         return the fully qualified name of a type.
15064
15065         * reflection.c (encode_marshal_blob): Always emit the fully qualified
15066         type name for custom marshallers.
15067
15068         * reflection.c (mono_marshal_spec_from_builder): Ditto.
15069
15070         * class.c (mono_class_setup_vtable): If a parent class already 
15071         implements an interface, use the implementing methods from that class.
15072         Fixes #53148.
15073
15074 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15075
15076         * threadpool.c: just return instead of ExitThread to allow for thread
15077         clean up earlier.
15078
15079 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
15080
15081         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
15082         when closing resource modules.
15083
15084         * reflection.c (mono_image_create_pefile): Handle the case when the
15085         entry point is not a MethodBuilder.
15086
15087         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
15088         field to ReflectionMethod since it is not allways a builder.
15089
15090 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
15091
15092         * marshal.c (mono_marshal_get_managed_wrapper): 
15093         mono_marshal_alloc takes native int so CONV_I
15094         the arg for 64bits.
15095
15096 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
15097
15098         * reflection.c (fixup_cattrs): New function to fixup the methoddef
15099         tokens in the cattr table. Fixes #53108.
15100
15101 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15102
15103         * loader.c: don't trim ".dll" before looking up in the config file.
15104         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
15105
15106 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
15107
15108         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
15109         Return the module which contains the resource as well.
15110         (ves_icall_System_Reflection_Module_Close): New icall.
15111
15112         * appdomain.c: Bump corlib version number.
15113
15114         * image.c (mono_image_addref): New public function.
15115
15116         * assembly.c: Call mono_image_addref.
15117
15118         * reflection.c (mono_module_get_object): Increase reference count of 
15119         the image.
15120
15121         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
15122         Fixes #22532.
15123
15124         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
15125         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
15126         proper exceptions on DllImport problems.
15127
15128 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
15129
15130         * class.c, metadata.c: eliminate CSIZE macro.
15131
15132 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
15133
15134         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
15135         * object.h: Added async_callback field in MonoAsyncResult.
15136         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
15137         * verify.c: Added async_callback in MonoAsyncResult layout.
15138
15139 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
15140
15141         * reflection.c (mono_reflection_get_custom_attrs): Add support
15142         for Modules.
15143
15144 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
15145
15146         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
15147         marshalling.
15148         (mono_marshal_method_from_wrapper): Add null pointer check.
15149
15150 2004-01-16  Martin Baulig  <martin@ximian.com>
15151
15152         * debug-mono-symfile.h: Set version number to 36 and reflect
15153         latest symbol writer changes.
15154
15155 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
15156
15157         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
15158         multi-dimensional arrays.
15159         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
15160         (mono_class_from_mono_type): Use bounded_array_class_get.
15161         
15162         * class.c (mono_bounded_array_class_get): New function which takes
15163         a 'bounded' bool argument to distinguish vectors from one dimensional
15164         arrays.
15165
15166         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
15167         bounded_array_class_get if the array has bounds.
15168
15169         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
15170         Search modules loaded using AssemblyBuilder:AddModule as well.
15171
15172 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15173
15174         * appdomain.c: increased corlib version.
15175         * filewatcher.c: removed g_print.
15176         * icall.c:
15177         (get_property_info): only allocate what is actually requested.
15178         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
15179
15180 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15181
15182         * Makefile.am: added filewatcher.[ch]
15183         * filewatcher.[ch]: FileSystemWatcher runtime support.
15184         * icall.c: added new FSW icalls.
15185
15186 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
15187
15188         * string-icalls.c: fix stringbuilder regression as suggested by
15189         Iain McCoy <iain@mccoy.id.au>.
15190
15191 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
15192
15193         * process.c (process_read_stringtable_block): Recognize '007f' as
15194         a language neutral stringtable block.
15195
15196 2004-01-12  Patrik Torstensson
15197
15198         * object.h (MonoStringBuilder) : Changed layout to support our
15199         new stringbuilder class.
15200         * marshal.c: Change marshalling to support the new layout of 
15201         string builder.
15202         * appdomain.c: increased version number because new layout of
15203         string builder.
15204
15205 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
15206
15207         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
15208         assembly name as an string instead of an AssemblyName, since it is
15209         easier to extract info from it.
15210
15211         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
15212         the culture subdirectories too. Fixes #52231.
15213
15214 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15215
15216         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
15217         It takes 2 new parameters with an optional name for the method to look
15218         for and case ignoring info.
15219
15220         * threadpool.c: removed unused variable.
15221
15222 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15223
15224         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
15225         It takes 2 new parameters with an optional name for the property to look
15226         for and case ignoring info.
15227         Fixes bug #52753.
15228
15229 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
15230
15231         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
15232         Fix #52451.
15233
15234 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15235
15236         * appdomain.c:
15237         * assembly.c: escape the uri before passing it to g_filename_from_uri.
15238         Fixes bug #52630.
15239
15240 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
15241
15242         * reflection.c: Add support for more than one unmanaged resource.
15243
15244         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
15245         in field->def_value, as done in all other cases.
15246
15247         * reflection.c (mono_reflection_get_custom_attrs): Add support for
15248         TypeBuilders.
15249
15250         * reflection.c (mono_reflection_create_runtime_class): Remove 
15251         errorneous assignment to klass->element_class, since it is already
15252         done in mono_reflection_setup_internal_class.
15253
15254 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15255
15256         * gc.c: added missing LeaveCriticalSection.
15257         * icall.c: indented a couple of lines.
15258         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
15259         if we call EndInvoke inside a callback. Fixes bug #52601.
15260
15261 2004-01-07  Martin Baulig  <martin@ximian.com>
15262
15263         * mono-debug-debugger.h
15264         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
15265
15266 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
15267
15268         * appdomain.c: Use messages in NotImplementedException.
15269
15270         * exception.c (mono_get_exception_not_implemented): Now this takes
15271         a message argument.
15272
15273         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
15274         exception instead of g_asserting an aborting when something is not
15275         implemented.
15276
15277         Add some inline docs.
15278
15279 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
15280
15281         * reflection.h: Update after changes to object layout.
15282
15283         * reflection.c: Implement saving of unmanaged aka win32 resources.
15284
15285         * appdomain.c: Bump version number.
15286
15287         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
15288         Handle missing domains gracefully.
15289
15290 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
15291
15292         * file-io.c : On Windows, there are much more invalid_path_chars.
15293
15294 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
15295
15296         * class.h, object.c: prepare for GetType () speedup.
15297
15298 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
15299
15300         * profiler.c: workaround for --profile null reference exception on
15301           cygwin. Patch by Patrik Torstensson.
15302
15303 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
15304
15305         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
15306         make work for unaligned access.
15307
15308 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
15309
15310         * class.c: small cleanup (class->fields [i] -> field).
15311         * image.c: check address of metadata is valid.
15312
15313 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
15314
15315         * assembly.h assembly.c (mono_assembly_loaded): New public function to
15316         search the list of loaded assemblies.
15317
15318         * reflection.c (mono_reflection_type_from_name): Use 
15319         mono_assembly_loaded instead of mono_image_loaded.
15320
15321         * reflection.c: Fix warnings.
15322
15323 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
15324
15325         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
15326         is dynamic. This is needed since an assembly can contain both dynamic and
15327         non-dynamic images.
15328
15329         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
15330         assembly->dynamic.
15331
15332         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
15333
15334         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
15335         to store modules loaded using AddModule.
15336
15337         * reflection.c (mono_image_fill_file_table): Generalize this so it works
15338         on Modules.
15339
15340         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
15341
15342         * reflection.c (mono_image_fill_export_table_from_module): New function to
15343         fill out the EXPORTEDTYPES table from a module.
15344
15345         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
15346         into a separate function. Also handle loaded non-dynamic modules.
15347
15348         * reflection.c (mono_image_basic_init): Fix memory allocation.
15349
15350         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
15351
15352         * assembly.c (mono_assembly_load_references): Make this public.
15353
15354 2003-12-19  Martin Baulig  <martin@ximian.com>
15355
15356         * class.c (mono_class_initialize_generic): Made this static, take
15357         a `MonoGenericInst *' instead of a `MonoClass *'.
15358         (mono_class_from_generic): Call mono_class_initialize_generic()
15359         unless we're already initialized or being called from
15360         do_mono_metadata_parse_generic_inst().
15361
15362         * class.h (MonoGenericInst): Added `initialized' and
15363         `init_pending' flags.
15364
15365         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
15366         `mono_class_init (gklass)' or mono_class_initialize_generic()
15367         here; set `generic_inst->init_pending' while parsing the
15368         `type_argv'.
15369
15370 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
15371
15372         * locales.c: include string.h for memxxx prototypes
15373
15374 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
15375
15376         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
15377         constructor when accessing literal fields.
15378
15379 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
15380
15381         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
15382
15383         * reflection.c (assembly_add_resource_manifest): New function to fill
15384         the MANIFESTRESOURCE table.
15385
15386         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
15387
15388         * reflection.h: Update to changes in class layout.
15389
15390         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
15391         Reenable call to mono_runtime_is_shutting_down ().
15392
15393         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
15394         determine if the runtime is shutting down.
15395
15396 2003-12-16  Jackson Harper <jackson@ximian.com>
15397
15398         * icall.c: comment out call to mono_runtime_is_shutting_down to
15399         fix build.
15400         
15401 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
15402
15403         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
15404         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
15405
15406 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
15407
15408         * reflection.c: move definition of swap_with_size
15409         to before its first call
15410
15411 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
15412
15413         * appdomain.c (mono_runtime_is_shutting_down): New public function.
15414
15415         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
15416         icall.
15417
15418         * object.c: Fix warnings.
15419
15420         * icall.c (ves_icall_Type_Get...): Only consider inherited static
15421         members if FlattenHierarchy is set.
15422
15423         * reflection.c (mono_image_add_decl_security): New function to emit
15424         declarative security.
15425
15426         * reflection.h reflection.c: Add support for declarative security.
15427
15428         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
15429         
15430 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
15431
15432         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
15433         
15434         * appdomain.c verify.c: Moved corlib version checking into its own
15435         function in appdomain.c since it needs to create vtables etc.
15436
15437 2003-12-13  Patrik Torstensson <p@rxc.se>
15438
15439         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
15440         instead of unwrapped server.
15441
15442 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
15443
15444         * verify.c (check_corlib): Fix field index.
15445
15446 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
15447
15448         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
15449         GetGacPath icall.
15450
15451 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
15452
15453         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
15454         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
15455         cope with sizeof(size_t) != sizeof(guint32).
15456
15457 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15458
15459         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
15460         in case of failure.
15461
15462 2003-12-10  Mark Crichton <crichton@gimp.org>
15463
15464         * icall.c: removed the GetNonZeroBytes.  We now handle this case
15465         in managed code.
15466
15467         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
15468
15469 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
15470
15471         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
15472         marked as deleted.
15473
15474 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
15475
15476         * verify.c (check_corlib): Handle the case when the version field is 
15477         initialized by a static constructor.
15478
15479 2003-12-08  Patrik Torstensson  <p@rxc.se>
15480
15481     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
15482
15483 2003-12-08  Martin Baulig  <martin@ximian.com>
15484
15485         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
15486         a MonoReflectionGenericParameter, also take the parameter index
15487         and name as arguments.
15488         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
15489         (ves_icall_MonoGenericParam_initialize): New interncall.
15490         (ves_icall_Type_make_byref_type): New interncall.
15491
15492         * reflection.h (MonoReflectionGenericParam): Derive from
15493         MonoReflectionType, not just from MonoObject.  Added `refobj' and
15494         `index' fields.
15495
15496         * reflection.c (mono_reflection_define_generic_parameter): Create
15497         and return a new MonoReflectionGenericParam; don't initialize the
15498         constraints here.
15499         (mono_reflection_initialize_generic_parameter): New public method;
15500         initializes the constraints and creates the `param->pklass'.
15501
15502 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
15503
15504         * reflection.h reflection.c: Use the new fields 'num_types', 
15505         'num_fields' and 'num_methods' to track the number of types etc.
15506
15507         * verify.c (check_corlib): Check corlib version number.
15508
15509 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
15510
15511         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
15512         function works on all methods.
15513
15514 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
15515
15516         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
15517         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
15518         the custom_type_info flag of the transparent proxy.
15519         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
15520         objects that supports IRemotingTypeInfo.
15521         * object.h: Added custom_type_info field in transparent proxy.
15522
15523 2003-12-06  Martin Baulig  <martin@ximian.com>
15524
15525         * class.c (mono_class_create_from_generic): Removed.
15526         (mono_class_from_generic): Check `ginst->klass' before doing
15527         anything else.  This is important to fully support "recursive"
15528         generic types.
15529
15530         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
15531         empty `generic_inst->klass' before doing anything else.
15532
15533 2003-12-06  Dick Porter  <dick@ximian.com>
15534
15535         * verify.c: 
15536         * object.h:
15537         * icall.c:
15538         * locales.c: Use C structs to access class fields.  Don't do a
15539         conversion between MonoString and UChar because both are
15540         platform-endian UTF-16.  Compare now takes startindex and count
15541         parameters.  Add a char overload for IndexOf.  Speed up the
15542         invariant string IndexOf.
15543
15544 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
15545
15546         * Makefile.am (monosn_LDADD): Fix parallel build.
15547
15548 2003-12-04  Martin Baulig  <martin@ximian.com>
15549
15550         * icall.c
15551         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
15552         (ves_icall_Type_make_array_type): New interncall.       
15553
15554 2003-12-04  Martin Baulig  <martin@ximian.com>
15555
15556         * locales.c: also change it in the !HAVE_ICU case.
15557
15558 2003-12-04  Dick Porter  <dick@ximian.com>
15559
15560         * icall.c:
15561         * locales.c: construct_compareinfo is now in CompareInfo, not
15562         CultureInfo.
15563
15564 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
15565
15566         * image.c (mono_image_load_file_for_image): Cache loaded images in the
15567         image->files array.
15568
15569         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
15570         table as well.
15571
15572         * assembly.c (mono_assembly_load_references): Only load references
15573         once.
15574
15575         * class.c (mono_class_from_name): Avoid linear search of the 
15576         EXPORTEDTYPE table.
15577
15578         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
15579
15580 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
15581
15582         * image.h (MonoImage): Add 'field_cache' field.
15583
15584         * loader.c (mono_field_from_token): Cache field lookups.
15585         
15586         * reflection.c (mono_module_get_object): Fix name property.
15587
15588         * icall.c (ves_icall_get_enum_info): Update after changes to 
15589         mono_metadata_get_constant_index ().
15590
15591         * icall.c: Get rid of get_type_info icall, use a separate icall for
15592         each type property to avoid needless memory allocations. Fixes #51514.
15593
15594         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
15595         to avoid needless binary searches.
15596
15597         * class.c (class_compute_field_layout): Move the initialization of
15598         field->def_value to mono_class_vtable ().
15599
15600         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
15601         non-corlib types.
15602
15603         * object.c (mono_object_allocate): Make it inline.
15604
15605         * object.c (mono_object_allocate_spec): Make it inline.
15606         
15607 2003-12-02  Dick Porter  <dick@ximian.com>
15608
15609         * locales.c (create_NumberFormat): NumberFormatInfo construction.
15610         Patch by Mohammad DAMT (mdamt@cdl2000.com).
15611
15612 2003-12-01  Dick Porter  <dick@ximian.com>
15613
15614         * threads.c: Fix signature and call in CreateMutex and
15615         CreateEvent.
15616
15617 2003-12-01  Dick Porter  <dick@ximian.com>
15618
15619         * icall.c: 
15620         * locales.c: Implement string compares and searching
15621
15622         * object.h: Add extra Thread field
15623
15624 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
15625
15626         * reflection.c (fixup_method): Add support for MonoCMethod.
15627
15628 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
15629
15630         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
15631
15632         * reflection.c (assembly_name_to_aname): Allow extra characters in
15633         assembly names. Fixes #51468.
15634
15635 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
15636
15637         * exception.c (mono_exception_from_name_domain): New helper function.
15638
15639         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
15640         exception object in the correct domain.
15641
15642         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
15643         formatting + make a copy a the input data.
15644
15645         * loader.c (mono_get_method_from_token): Methods which contain
15646         native code do not have entries in the ImplMap.
15647
15648         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
15649         Thanks to Gonzalo for spotting this.
15650         
15651         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
15652         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
15653
15654         * assembly.h (mono_assembly_load_from): Split the second part of 
15655         assembly loading into a new public function.
15656
15657         * exception.h (mono_get_exception_bad_image_format): New function.
15658
15659 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
15660
15661         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
15662         Enumerate all modules inside a dynamic assembly. Fixes #51293.
15663         
15664         * icall.c: Add new icall for creating dynamic methods.
15665
15666         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
15667
15668         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
15669
15670         * reflection.c (mono_reflection_create_dynamic_method): New icall to
15671         create a dynamic method.
15672
15673         * reflection.c (resolve_object): New helper function.
15674
15675         * reflection.c: Generalize ReflectionMethodBuilder and the functions
15676         which manipulate it so they can also work on dynamic methods.
15677
15678         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
15679         creating the MonoReflectionMethodAux structure if it is not needed.
15680         
15681         * reflection.h verify.c: Update after changes to object layout.
15682
15683         * reflection.c (method_builder_encode_signature): Fix compilation on
15684         gcc 2.95.x.
15685
15686 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
15687
15688         * appdomain.h: Added support for context static fields. Added static_data
15689           field to MonoAppContext and renamed thread_static_fields to a more
15690           generic special_static_fields in MonoAppDomain, since it can now contain
15691           context static fields.
15692         * domain.c: Updated hashtable name.
15693         * object.c: Replaced field_is_thread_static() for a more generic
15694           field_is_special_static() which also checks for context static attribute.
15695           In mono_class_vtable(), added support for static context fields.
15696         * threads.c: Changed methods that manage thread static fields to more
15697           generic methods so they can be reused both for thread and context static
15698           data.
15699         * threads.h: Declared some new methods.
15700
15701 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
15702
15703         * reflection.h: Update after changes to the managed types.
15704
15705         * reflection.c (encode_custom_modifiers): New helper function.
15706
15707         * reflection.c (method_encode_signature): Emit custom modifiers.
15708
15709         * reflection.c (field_encode_signature): Emit custom modifiers.
15710
15711 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
15712
15713         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
15714
15715         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
15716         implementation.
15717
15718         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
15719         icall.
15720
15721         * object.c (mono_field_get_value_object): New function.
15722
15723         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
15724         specific.
15725
15726 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
15727
15728         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
15729         return a preallocated out-of-memory exception instance.
15730
15731         * object.c (out_of_memory): Use the new function.
15732
15733         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
15734         flag is before the custom modifiers. Fixes #49802.
15735
15736 2003-11-16  Martin Baulig  <martin@ximian.com>
15737
15738         * class.c (mono_class_is_open_constructed_type): Implemented the
15739         MONO_TYPE_GENERICINST case.
15740
15741 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
15742
15743         * assembly.c (mono_assembly_fill_assembly_name): New function to
15744         fill out the MonoAssemblyName structure.
15745         (mono_assembly_open): Use the new function.
15746
15747         * icall.c (fill_reflection_assembly_name): New helper function.
15748
15749         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
15750         new function.
15751
15752         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
15753
15754 2003-11-15  Martin Baulig  <martin@ximian.com>
15755
15756         * class.c (mono_class_is_open_constructed_type): New public
15757         function; checks whether a type is an open constructed type,
15758         ie. whether it still contains type parameters.
15759         (mono_class_inflate_generic_type): If we're a type parameter and
15760         the inflated type is also a MONO_TYPE_(M)VAR, return the original
15761         type.
15762
15763         * class.h (MonoGenericInst): Added `guint32 is_open'.
15764
15765         * loader.c (method_from_methodspec): Check whether we're an open
15766         or closed constructed type and set `ginst->is_open'.
15767
15768         * reflection.c (mono_reflection_bind_generic_parameters): Check
15769         whether we're an open or closed constructed type and set
15770         `ginst->is_open'.
15771         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
15772         from open constructed types.
15773
15774 2003-11-15  Martin Baulig  <martin@ximian.com>
15775
15776         * reflection.c (mono_reflection_bind_generic_parameters): If we're
15777         a generic instance (instead of a generic type declaration) with
15778         unbound generic parameters, bind them to our actual types.
15779
15780 2003-11-14  Martin Baulig  <martin@ximian.com>
15781
15782         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
15783
15784         * reflection.c (mono_reflection_bind_generic_parameters): If we're
15785         an interface type, populate `res->interfaces' with instantiated
15786         versions of all the interfaces we inherit.
15787
15788 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
15789
15790         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
15791         when MONO_PATH is set but doesn't contain the install dir.
15792
15793 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15794
15795         * icall.c:
15796         (ves_icall_Type_GetInterfaces): don't return an interface twice when
15797         it's also implemented in base classes. Fixes bug #50927.
15798
15799 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
15800
15801         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
15802         if this method is called from a finalizer. Fixes #50913.
15803
15804 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
15805
15806         * threads.c: Implement VolatileRead/VolatileWrite
15807
15808         * icall.c: Add new icalls for VolatileRead/VolatileWrite
15809
15810 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15811
15812         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
15813         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
15814         2.95.3.
15815
15816         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
15817         from Peter Ross (pro@missioncriticalit.com).
15818         
15819 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
15820
15821         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
15822
15823 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15824
15825         * assembly.c (mono_assembly_load_references): Disable check because it
15826         triggers on older corlibs which lots of people have.
15827
15828 2003-11-12  Jackson Harper  <jackson@ximian.com>
15829
15830         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
15831         load corlib.dll if mscorlib.dll is not found.
15832         * assembly.h: Remove corlib name define.
15833         * class.c:
15834         * domain.c:
15835         * image.c: Change corlib name to mscorlib.
15836         
15837 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15838
15839         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
15840
15841 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
15842
15843         * appdomain.h: Added loader_optimization here to sync with the C#
15844         code, and add disallow_binding_redirects field.
15845
15846 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
15847
15848         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
15849
15850         * reflection.c (mono_image_build_metadata): Fix crash on modules
15851         with no types.
15852
15853         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
15854
15855         * icall.c (ves_icall_get_method_info): Return callingConvention as
15856         well.
15857
15858         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
15859         namespaces from the EXPORTEDTYPE table as well.
15860
15861         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
15862         from all modules inside the assembly.
15863         
15864 2003-11-11  Martin Baulig  <martin@ximian.com>
15865
15866         * reflection.c (mono_reflection_bind_generic_parameters): Make
15867         this work for interfaces.
15868
15869 2003-11-11  Martin Baulig  <martin@ximian.com>
15870
15871         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
15872
15873 2003-11-11  Martin Baulig  <martin@ximian.com>
15874
15875         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
15876         "MonoInflatedMethod" and "MonoInflatedCtor".
15877
15878 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
15879
15880         * reflection.c (resolution_scope_from_image): Use the assembly table
15881         from the manifest module, since other modules don't have it.
15882
15883         * debug-helpers.c (mono_type_full_name): New helper function.
15884
15885         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
15886
15887         * image.c (mono_image_load_file_for_image): New public function which
15888         is a replacement for the load_file_for_image in class.c.
15889
15890         * assembly.c (mono_assembly_load_module): A wrapper for the function
15891         above which does assembly association and reference loading too.
15892
15893         * class.c (mono_class_from_name): Call mono_assembly_load_module.
15894
15895 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15896
15897         * appdomain.c: not all of the attributes for the full assembly name
15898         are required and the order doesn't matter. Fixes bug #50787.
15899
15900 2003-11-10  Dick Porter  <dick@ximian.com>
15901
15902         * locales.c: Use platform-endian UTF16
15903
15904 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
15905
15906         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
15907         
15908 2003-11-10  Martin Baulig  <martin@ximian.com>
15909
15910         * metadata.c
15911         (mono_metadata_load_generic_params): Make this actually work.
15912
15913         * reflection.c (mono_reflection_bind_generic_parameters): If our
15914         parent is a generic instance, pass all the `types' to it, no
15915         matter whether it has the same number of type parameters or not.
15916
15917 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
15918
15919         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
15920
15921         * assembly.c (mono_assembly_load_references): Move the image<->assembly
15922         assignment code to this function so it gets called recursively for all
15923         modules.
15924
15925         * image.c (load_modules): Remove the assembly assignment since it is
15926         now done by mono_assembly_load_references.
15927         
15928         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
15929         Add 'module' argument.
15930         (mono_module_get_types): New helper function.
15931         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
15932
15933 2003-11-08  Martin Baulig  <martin@ximian.com>
15934
15935         * class.c (mono_class_inflate_generic_method): Interface method
15936         don't have a header.
15937
15938         * reflection.c (mono_image_get_methodspec_token): Take an
15939         additional `MonoGenericInst *' argument instead of reading it from
15940         the header; this is necessary to support interfaces.
15941         (mono_image_create_token): Pass the `MonoGenericInst *' from the
15942         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
15943         (inflated_method_get_object): Take an additional `MonoGenericInst *'
15944         argument.
15945
15946         * reflection.h (MonoReflectionInflatedMethod): Added
15947         `MonoGenericInst *ginst'.
15948
15949 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
15950
15951         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
15952
15953 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
15954
15955         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
15956
15957 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
15958
15959         * reflection.c 
15960         (reflection_methodbuilder_from_method_builder):
15961         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
15962         initialize a ReflectionMethodBuilder structure.
15963         (mono_image_get_methodbuilder_token):
15964         (mono_image_get_ctorbuilder_token): New functions to emit memberref
15965         tokens which point to types in another module inside the same assembly.
15966
15967         * reflection.c: Use the new helper functions.
15968         
15969         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
15970
15971         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
15972         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
15973
15974         * reflection.c (resolution_scope_from_image): Emit a moduleref if
15975         neccesary.
15976
15977         * reflection.c (mono_image_build_metadata): Emit metadata only for the
15978         current module. Emit the manifest only for the main module.
15979
15980         * reflection.c (mono_image_create_token): Add assertion when a 
15981         memberref needs to be created.
15982
15983         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
15984
15985         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
15986         larger buffer for the custom attribute blob. Fixes #50637.
15987         
15988 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15989
15990         * threadpool.c: notify listener on async processing handles after
15991         invoking the async callback. Thanks to Zoltan.
15992
15993 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15994
15995         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
15996         avoid code duplication.
15997
15998         * reflection.h (MonoDynamicImage): New type which is currently unused,
15999         but will be used through the ref.emit code in place of 
16000         MonoDynamicAssembly.
16001
16002         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
16003         object layout.
16004
16005         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
16006         a MonoDynamicImage instead of just a MonoImage.
16007         
16008         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
16009         icalls to ModuleBuilder but keep their semantics, so they will work
16010         with moduleb->assemblyb. This will change later.
16011         
16012 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
16013
16014         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
16015         object layout.
16016
16017         * reflection.c (mono_image_build_metadata): Avoid creation of a default
16018         main module, since it is now done by the managed code.
16019
16020 2003-11-03  Martin Baulig  <martin@ximian.com>
16021
16022         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
16023         `ginst->klass' here.
16024         (method_encode_methodspec): Don't use the `ginst->generic_method's
16025         klass if it's a generic instance, use `ginst->klass' in this case.
16026
16027 2003-11-03  Martin Baulig  <martin@ximian.com>
16028
16029         * reflection.c (mono_image_get_generic_method_param_info):
16030         Removed, use mono_image_get_generic_param_info() instead.
16031         (mono_image_get_type_info): Write the GenericParam table before
16032         the Method table.  This is neccessary because in the GenericParam
16033         table, type parameters of the class (ie. '!0' etc.) must come
16034         before the ones from its generic methods (ie. '!!0' etc).
16035
16036 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
16037
16038         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
16039
16040 2003-11-02  Martin Baulig  <martin@ximian.com>
16041
16042         * reflection.c (create_generic_typespec): Take a
16043         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
16044         the generic parameters from it.
16045
16046 2003-11-02  Martin Baulig  <martin@ximian.com>
16047
16048         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
16049         instead of a `MonoClassField *' since we just need the type.
16050         (create_generic_typespec): New static function.  Creates a
16051         TypeSpec token for a generic type declaration.
16052         (mono_image_get_generic_field_token): New static function.
16053         (mono_image_create_token): If we're a FieldBuilder in a generic
16054         type declaration, call mono_image_get_generic_field_token() to get
16055         the token.
16056
16057 2003-11-02  Martin Baulig  <martin@ximian.com>
16058
16059         * reflection.h
16060         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
16061         `MonoReflectionGenericInst *declaring_type' and
16062         `MonoReflectionGenericInst *reflected_type' fields.
16063
16064         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
16065         `MonoReflectionGenericInst *declaring_type' and a
16066         `MonoReflectionGenericInst *reflected_type' argument instead of a
16067         single `MonoReflectionGenericInst *type' one.  Set
16068         `res->declaring_type' and `res->reflected_type' from them.
16069         (mono_reflection_inflate_field): Likewise.      
16070
16071 2003-11-02  Martin Baulig  <martin@ximian.com>
16072
16073         * class.c (mono_class_setup_vtable): Don't store generic methods
16074         in the vtable.  
16075
16076 2003-11-02  Martin Baulig  <martin@ximian.com>
16077
16078         * reflection.h (MonoReflectionGenericInst): Added
16079         `MonoReflectionType *declaring_type'.
16080
16081         * reflection.c (mono_reflection_bind_generic_parameters): Use
16082         `if (tb->parent)' instead of `klass->parent'.
16083
16084 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
16085
16086         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
16087         with an empty ASSEMBLY table.
16088
16089         * reflection.c (mono_image_build_metadata): Avoid using the same loop
16090         variable in the inner and outer loops.
16091
16092 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
16093
16094         * metadata.h (mono_metadata_make_token): Put parentheses around macro
16095         argument.
16096
16097         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
16098         
16099         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
16100         icalls. Instead, do everything in managed code. This is needed since
16101         it is hard to restore the original domain etc. in unmanaged code in the
16102         presence of undeniable exceptions.
16103
16104         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
16105         New icalls to push and pop appdomain refs.
16106
16107 2003-10-31  Martin Baulig  <martin@ximian.com>
16108
16109         * class.c (inflate_generic_type): Renamed to
16110         mono_class_inflate_generic_type() and made it public.
16111
16112         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
16113         New interncall.
16114
16115         * loader.c (mono_field_from_memberref): Also set the retklass for
16116         typespecs.
16117
16118         * fielder.c (mono_image_get_inflated_field_token): New static
16119         method; creates a metadata token for an inflated field.
16120         (mono_image_create_token, fixup_method): Added support for
16121         "MonoInflatedField".
16122         (fieldbuilder_to_mono_class_field): New static function.
16123         (mono_reflection_inflate_field): New public function.
16124
16125         * reflection.h
16126         (MonoReflectionGenericInst): Added `MonoArray *fields'.
16127         (MonoReflectionInflatedField): New typedef.     
16128
16129 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
16130
16131         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
16132         for Solaris and other platforms without s6_addr16
16133
16134 2003-10-30  Martin Baulig  <martin@ximian.com>
16135
16136         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
16137         argument instead of two.
16138         (mono_class_inflate_generic_signature): Likewise.
16139         (inflate_generic_header): Likewise.
16140         (mono_class_inflate_generic_method): Likewise.  In addition, if
16141         `ginst->klass' is set, it becomes the new `method->klass'.
16142
16143         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
16144         field.
16145
16146         * reflection.c (encode_generic_method_sig): Write a 0xa as the
16147         first byte. [FIXME]
16148         (method_encode_methodspec): If we have generic parameters, create
16149         a MethodSpec instead of a MethodRef.
16150         (fixup_method): Added support for "MonoInflatedMethod" and
16151         "MonoInflatedCtor".
16152         (mono_image_create_token): Added support for "MonoInflatedMethod"
16153         and "MonoInflatedCtor".
16154         (inflated_method_get_object): New static function; returns a
16155         managed "System.Reflection.MonoInflatedMethod" object.
16156         (mono_reflection_bind_generic_method_parameters): Return a
16157         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
16158         (mono_reflection_inflate_method_or_ctor): Likewise.
16159         (mono_image_get_generic_method_param_info): Initialize unused
16160         fields to zero.
16161         (mono_image_get_generic_param_info): Likewise.
16162
16163         * reflection.h (MonoReflectionInflatedMethod): New public
16164         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
16165         "S.R.MonoInflatedCtor" classes.
16166
16167         * loader.c (method_from_memberref): If we're a TypeSpec and it
16168         resolves to a generic instance, inflate the method.
16169
16170 2003-10-28  Dick Porter  <dick@ximian.com>
16171
16172         * object.c (mono_runtime_run_main): Convert command-line arguments
16173         into utf8, falling back to the user's locale encoding to do so.
16174
16175 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
16176
16177         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
16178         at this time.
16179
16180         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
16181
16182         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
16183         up icalls at method definition time. Partially fixes #33569.
16184
16185 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
16186
16187         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
16188         marshalling of arrays. Fixes #50116.
16189
16190         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
16191
16192         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
16193         points to a vtable in the dying appdomain.
16194
16195         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
16196         listeners into unmanaged code inside the lock.
16197
16198         * object.c (mono_class_vtable): Turn off typed allocation in non-root
16199         domains and add some comments.
16200
16201 2003-10-25  Martin Baulig  <martin@ximian.com>
16202
16203         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
16204
16205         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
16206
16207         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
16208         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
16209         currently parsing.  Create the generic class and store it in
16210         `generic_inst->klass' before parsing the type arguments.  This is
16211         required to support "recursive" definitions; see mcs/tests/gen-23.cs
16212         for an example.
16213         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
16214         to support recursive typespec entries.
16215
16216         * class.c (mono_class_setup_parent): If our parent is a generic
16217         instance, we may get called before it has its name set.
16218         (mono_class_from_generic): Splitted into
16219         mono_class_create_from_generic() and mono_class_initialize_generic().
16220
16221 2003-10-25  Martin Baulig  <martin@ximian.com>
16222
16223         * icall.c (ves_icall_Type_BindGenericParameters): Return a
16224         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
16225         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
16226         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
16227
16228         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
16229         (create_typespec): Likewise.
16230         (mono_reflection_bind_generic_parameters): Return a
16231         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
16232         (mono_reflection_inflate_method_or_ctor): New public function.
16233
16234         * reflection.h (MonoReflectionGenericInst): New typedef.        
16235
16236 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
16237
16238         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
16239         inside the domain lock. Fixes #49993.
16240         
16241         * object.c (mono_class_vtable): When typed allocation is used, 
16242         allocate vtables in the GC heap instead of in the mempool, since the
16243         vtables contain GC descriptors which are used by the collector even
16244         after the domain owning the mempool is unloaded.
16245
16246         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
16247
16248         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
16249         reflect what it does. Also invalidate mempools instead of freeing
16250         them if a define is set.
16251
16252         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
16253         of the appdomain.
16254         
16255         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
16256         hold the finalizable objects in this domain.
16257
16258         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
16259         appdomain.
16260
16261         * appdomain.c (mono_domain_set): New function to set the current
16262         appdomain, but only if it is not being unloaded.
16263
16264         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
16265         appdomain which is being unloaded.
16266         
16267         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
16268         unloading of the root appdomain.
16269
16270         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
16271         icall to execute a method in another appdomain. Intended as a 
16272         replacement for InternalSetDomain, which can confuse the code 
16273         generation in the JIT.
16274
16275         * appdomain.c (mono_domain_is_unloading): New function to determine
16276         whenever an appdomain is unloading.
16277
16278         * appdomain.c (mono_domain_unload): New function to correctly unload
16279         an appdomain.
16280
16281         * assembly.c (mono_assembly_load_references): Check that an assembly
16282         does not references itself.
16283
16284         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
16285         domain manually, it asks the finalizer thread to do it, then waits for
16286         the result. Also added a timeout.
16287
16288         * icall.c: Register the new icalls.
16289
16290         * threads.h threads.c: Export the mono_gc_stop_world and 
16291         mono_gc_start_world functions.
16292         
16293         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
16294         function to fill out the mempool with 0x2a.
16295
16296 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
16297
16298         * reflection.h (MonoReflectionMethodAux): New structure to store
16299         information which is rarely used, thus is not in the MonoMethod
16300         structure.
16301
16302         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
16303         store the aux info.
16304
16305         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
16306         and marshalling info into the aux structure.
16307
16308         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
16309         from the aux structure.
16310
16311         * loader.c (mono_method_get_param_names): Retrieve the param names from
16312         the aux structure.
16313         
16314 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
16315
16316         * exception.h exception.c: Add AppDomainUnloadedException && fix 
16317         warning.
16318
16319 2003-10-21  Dick Porter  <dick@ximian.com>
16320
16321         * socket-io.c
16322         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
16323         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
16324
16325 2003-10-21  Martin Baulig  <martin@ximian.com>
16326
16327         * reflection.c (mono_reflection_bind_generic_parameters):
16328         `klass->parent' is NULL for interfaces.
16329
16330 2003-10-21  Martin Baulig  <martin@ximian.com>
16331
16332         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
16333
16334 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
16335
16336         * exception.c (mono_exception_from_name_msg): New helper function for
16337         creating exceptions and initializing their message field.
16338
16339         * exception.c: Simplify functions using the new helper.
16340
16341         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
16342         New function.
16343
16344         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
16345         mono_raise_exception, since otherwise gcc doesn't generate the function
16346         epilog for raise_exception, confusing the stack unwinding in the JIT.
16347         Fixes #45043.
16348
16349         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
16350         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
16351         Fixes #49499.
16352
16353 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16354
16355         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
16356         utf8.
16357
16358 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
16359
16360         * icall.c: Removed GetUninitializedObject method because
16361           AllocateUninitializedClassInstance does the same.
16362
16363 2003-10-18  Martin Baulig  <martin@ximian.com>
16364
16365         * class.c (inflate_generic_signature): Renamed to
16366         mono_class_inflate_generic_signature() and made it public.
16367         (my_mono_class_from_generic_parameter): New static function; if we
16368         don't already have the generic parameter's MonoClass, create a
16369         very simple one which is just used internally in the runtime and
16370         not passed back to managed code.
16371
16372         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
16373
16374         * metadata.h (MonoMethodSignature): Moved the
16375         `MonoGenericParam *gen_params' to the MonoMethodHeader.
16376         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
16377
16378         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
16379         ves_icall_MonoMethod_GetGenericArguments(); this is now an
16380         interncall on the MonoMethod class, not on MethodInfo.
16381         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
16382         calling mono_reflection_bind_generic_method_parameters() directly.
16383
16384         * loader.c (mono_method_get_signature): If this is a MethodSpec;
16385         return the already computed `method->signature'.
16386         (method_from_methodspec): New static function to load a method
16387         from a MethodSpec entry.
16388         (mono_get_method_from_token): Call the new method_from_methodspec()
16389         for MethodSpec tokens.  
16390         (mono_get_method_from_token): If we're a generic method, load the
16391         type parameters.
16392
16393         * reflection.c (mono_image_get_memberref_token): Allow
16394         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
16395         table.
16396         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
16397         (mono_image_create_token): First check whether it's a generic
16398         method (so we'd need to create a MethodSpec), then do the other
16399         two alternatives.
16400         (mono_reflection_bind_generic_method_parameters): Return a
16401         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
16402         called directly from the interncall.
16403
16404 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
16405
16406         * reflection.c (load_public_key): Move loading of the public key
16407         into managed code.
16408
16409         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
16410
16411         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
16412         fields.
16413
16414         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
16415         culture, hash_alg and public_key. Fixes #49555.
16416
16417 2003-10-17  Martin Baulig  <martin@ximian.com>
16418
16419         * class.h (MonoGenericInst): Moved this declaration here and added
16420         `MonoMethod *generic_method'.
16421
16422         * icall.c
16423         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
16424         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
16425
16426         * metadata.c (mono_metadata_type_equal): Two types of
16427         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
16428         index; ie. don't compare the address of the `MonoGenericParam'
16429         structure.
16430         (mono_metadata_load_generic_params): Removed the `MonoMethod
16431         *method' argument.
16432
16433         * metadata.h (MonoGenericInst): Moved declaration to class.h.
16434         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
16435
16436         * reflection.c (method_encode_signature): Encode the number of
16437         generic parameters.
16438         (encode_generic_method_sig): New static function.
16439         (method_encode_methodspec): New static function; creates an entry
16440         in the MethodSpec table for a generic method.
16441         (mono_image_get_methodspec_token): New static function.
16442         (mono_image_create_token): Call mono_image_get_methodspec_token()
16443         for generic methods.
16444         (mono_reflection_bind_generic_method_parameters): New public
16445         function.  Instantiates a generic method.
16446
16447 2003-10-16  Martin Baulig  <martin@ximian.com>
16448
16449         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
16450         *gen_params' here from MonoMethodHeader.
16451
16452         * metadata.c (mono_metadata_parse_method_signature): If we have
16453         generic parameters, initialize `method->gen_params' and then set
16454         the correct `type->data.generic_param' in all the parameters.
16455
16456 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
16457
16458         * threads.c (mono_threads_get_default_stacksize): New function to 
16459         return the default stacksize.
16460
16461         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
16462         termination of the finalizer thread, since the previous method had
16463         race conditions. Fixes #49628.
16464
16465         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
16466         as for the other managed threads.
16467
16468 2003-10-16  Martin Baulig  <martin@ximian.com>
16469
16470         * class.c (inflate_generic_signature): Copy `generic_param_count'
16471         and `gen_params'.
16472
16473         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
16474         New interncall.
16475
16476         * metadata.c (mono_metadata_parse_method_signature): Actually set
16477         the `method->generic_param_count' here.
16478         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
16479
16480 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
16481
16482         * object.h: Add a new field to TypedRef to simplify the implementation
16483         of the REFANY opcodes in the JIT.
16484
16485         * icall.c: Make use of the new field.
16486
16487         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
16488         dynamically.
16489
16490 2003-10-15  Martin Baulig  <martin@ximian.com>
16491
16492         * class.c (mono_class_from_gen_param): Renamed to
16493         mono_class_from_generic_parameter() and moved most of the
16494         functionality from mono_reflection_define_generic_parameter()
16495         here; ie. we create a "real" class here.
16496         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
16497         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
16498         previously been called.
16499
16500         * class.h (MonoGenericParam): Moved the declaration of this struct
16501         here from metadata.h and added `MonoMethod *method'.
16502
16503         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
16504         interncall.
16505
16506         * loader.c (mono_get_method_from_token): If we have any generic
16507         parameters, call mono_metadata_load_generic_params() to read them
16508         from the MONO_TABLE_GENERICPAR.
16509
16510         * metadata.c (mono_metadata_load_generic_params): Added
16511         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
16512
16513         * metadata.h (MonoMethodSignature): Replaced
16514         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
16515         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
16516
16517         * reflection.c (mono_reflection_define_generic_parameter): Moved
16518         most of the functionality into the new
16519         mono_class_from_generic_parameter(); set the `method' field if
16520         we're a method parameter.       
16521
16522 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
16523
16524         * marshal.c (emit_struct_conv): if native size is 0
16525         emit no code.
16526
16527 2003-10-14  Martin Baulig  <martin@ximian.com>
16528
16529         * icall.c: The generics API has changed in the spec since it was
16530         added to System.Type; these modifications make it match the spec
16531         again.
16532         (ves_icall_Type_GetGenericParameters): Renamed to
16533         `ves_icall_Type_GetGenericArguments'.
16534         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
16535         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
16536         `ves_icall_MonoType_get_HasGenericArguments'.
16537         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
16538         `ves_icall_MonoType_get_IsGenericParameter'.
16539         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
16540         this is no interncall anymore.
16541         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
16542         `ves_icall_TypeBuilder_get_IsGenericParameter'.
16543
16544 2003-10-14  Martin Baulig  <martin@ximian.com>
16545
16546         * reflection.c (mono_reflection_bind_generic_parameters): Also
16547         inflate generic methods if we're reading the class from IL.
16548
16549 2003-10-13  Martin Baulig  <martin@ximian.com>
16550
16551         * reflection.c (mono_reflection_define_generic_parameter): This
16552         method isn't called directly from the icall anymore; take a
16553         `MonoReflectionAssemblyBuilder *' so we can use this for type and
16554         method generic parameters.
16555         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
16556         (method_builder_encode_signature): Encode generic parameters.
16557         (mono_image_get_method_info): Write generic params to the
16558         MONO_TABLE_GENERICPARAM table.
16559
16560         * reflection.h (MonoReflectionMethodBuilder): Added
16561         `MonoArray *generic_params'.
16562
16563         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
16564
16565         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
16566         wrapper for mono_reflection_define_generic_parameter().
16567         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
16568
16569 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
16570
16571         * marshal.h: Add missing function to fix build.
16572
16573         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
16574         the SetLastError pinvoke attribute.
16575
16576         * marshal.c (mono_marshal_set_last_error): New helper function called
16577         by the generated code.
16578         
16579         * marshal.c (mono_mb_emit_branch): New helper function.
16580
16581         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
16582
16583         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
16584         classes as parameters and return values of delegates. Fixes #29256. 
16585
16586 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
16587
16588         * locales.c: use gint32 in non HAVE_ICU case
16589
16590 2003-10-11  Martin Baulig  <martin@ximian.com>
16591
16592         * mono-debug.c (mono_debug_add_method): Added a workaround for
16593         bug #48591.
16594
16595 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
16596
16597         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
16598         delegates passed to native code must use the STDCALL calling 
16599         convention. Fixes #35987.
16600
16601 2003-10-10  Martin Baulig  <martin@ximian.com>
16602
16603         * class.c (inflate_generic_type): If we're inflating for a generic
16604         type instance (and not for a generic method), return
16605         MONO_TYPE_MVAR unchanged.
16606
16607 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16608
16609         * string-icalls.c: Join ignores null strings in the source array.
16610         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
16611         * threads.c: GetAvailableTheads is slightly more accurate.
16612
16613 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
16614
16615         * threads.h threads.c : add mono_threads_set_default_stacksize
16616         and pass default to CreateThread calls.
16617
16618 2003-10-09  Dick Porter  <dick@ximian.com>
16619
16620         * icall.c:
16621         * locales.h:
16622         * locales.c: Internal calls for constructing CultureInfo and
16623         related objects from libicu (if its available.)
16624
16625 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
16626
16627         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
16628
16629 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16630
16631         * threadpool.c: added an argument to async_invoke_thread that is the
16632         item to process, pass the MonoAsyncResult to the thread start function
16633         when creating a new thread. This way we don't need to acquire any lock
16634         when we're creating a new thread. Readded a semaphore for faster
16635         response times (instead of that Sleep i added).
16636
16637 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
16638
16639         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
16640         get daylight change dates better on Windows, fix handling
16641         of platforms without tm_gmtoff.
16642
16643 2003-10-06  Martin Baulig  <martin@ximian.com>
16644
16645         * class.c (inflate_generic_method): Renamed to
16646         mono_class_inflate_generic_method() and made public.
16647         (mono_class_init): Don't inflate the generic methods here.
16648         (mono_class_from_generic): Added `gboolean inflate_methods'
16649         argument.  Inflate the methods here.
16650
16651         * loader.c (mono_method_get_param_names): Ignore instances of
16652         generic types for the moment.
16653
16654         * reflection.c (fixup_method): Added support for inflated methods.
16655         (mono_image_create_token): Use mono_image_get_methodref_token()
16656         for inflated methods.
16657         (mono_custom_attrs_from_param): Ignore instances of generic types
16658         for the moment.
16659         (mono_reflection_bind_generic_parameters): New public function.
16660         Moved all the functionality from
16661         ves_icall_Type_BindGenericParameters() here and added support for
16662         dynamic types.
16663         (mono_reflection_define_generic_parameter): Initialize
16664         `klass->methods' here.
16665
16666         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
16667         functionality into mono_reflection_define_generic_parameter().
16668         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
16669         TypeBuilder, return that TypeBuilder.
16670
16671 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16672
16673         * appdomain.c: removed mono_delegate_semaphore.
16674
16675         * threadpool.c:
16676         (mono_thread_pool_add): moved hash table creation inside and the thread 
16677         creation outside of the critical region.
16678         (mono_thread_pool_finish): removed obsolete code.
16679         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
16680         continue or exit the thread depending on the queue.
16681
16682 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
16683
16684         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
16685         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
16686         handle more bool marshalling options
16687
16688 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
16689
16690         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
16691         arrays of structs. Also add a more descriptive error message when
16692         a structure member is marshalled as LPArray.
16693
16694 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
16695
16696         * marshal.c (mono_marshal_get_native_wrapper): Add support for
16697         marshalling arrays of complex types. Fixes #29098. Also remove an
16698         usused and incomplete function.
16699
16700 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
16701
16702         * gc.c: report heap_size - free_bytes as total memory allocated
16703         (bug#49362).
16704
16705 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
16706
16707         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
16708         fix timezone handling problems on Windows.
16709         
16710         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
16711         asserts when the year is outside the range handled by ms the functions.
16712
16713         * class.c (setup_interface_offsets): If the class is an interface,
16714         fill out its interface_offsets slot.
16715
16716 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16717
16718         * threadpool.c: mark threadpool threads as background.
16719
16720 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
16721
16722         * decimal.c - define DECINLINE to nothing if not using GCC
16723
16724 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
16725
16726         * assembly.c: More refcount fixes.
16727
16728 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16729
16730         * string-icalls.c: if we're not trimming, return the same string.
16731         When not splitting, don't create a new string.
16732
16733 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16734
16735         * image.c:
16736         (mono_image_open): increment the ref_count inside the critical section.
16737
16738 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
16739
16740         * image.c (mono_image_open): Fix reference counting bug.
16741
16742 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
16743
16744         * marshal.c (mono_marshal_type_size) struct alignment changed for 
16745         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
16746         64bits. Avoid leak in mono_marshal_get_native_wrapper when
16747         mono_lookup_pinvoke_call throws.        
16748
16749 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
16750
16751         * reflection.c (mono_reflection_parse_type): Fix #49114.
16752
16753         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
16754         temporary workaround for cygwin header problem.
16755
16756         * object.c (mono_object_isinst): Synchronize this with the code
16757         generated by the JIT for casts.
16758
16759 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
16760
16761         * reflection.c (encode_type): Fix #38332.
16762
16763 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
16764
16765         * marshal.c (mono_marshal_method_from_wrapper): New function to return
16766         the original method from the wrapper method.
16767
16768 2003-09-25  Martin Baulig  <martin@ximian.com>
16769
16770         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
16771         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
16772         (ves_icall_Type_get_IsGenericInstance): New interncall.
16773
16774 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
16775
16776         * object.c: fix cast warning in big endian code.
16777
16778 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
16779
16780         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
16781         
16782 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16783
16784         * assembly.c: don't call check_env from mono_assembly_load. It's
16785         already done once in mono_assemblies_init and may cause headaches when
16786         multiple threads are loading assemblies.
16787
16788 2003-09-19  Martin Baulig  <martin@ximian.com>
16789
16790         * reflection.c (mono_reflection_define_generic_parameter): Don't
16791         allocate `klass->methods', set `klass->flags' to
16792         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
16793
16794 2003-09-18  Martin Baulig  <martin@ximian.com>
16795
16796         * class.c (mono_class_init): Don't create `class->methods' if it's
16797         already initialized.
16798
16799         * metadata.c (mono_metadata_load_generic_params): Make this
16800         actually work.
16801
16802         * reflection.c (mono_reflection_define_generic_parameter): Set
16803         parent class and interfaces from the constraints.
16804
16805         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
16806         to keep this struct in sync with the declaration in TypeBuilder.cs.
16807
16808 2003-09-17  Martin Baulig  <martin@ximian.com>
16809
16810         * metadata.h (MonoType): Replaced the data's `int type_param'
16811         field with `MonoGenericParam *generic_param'.
16812         (MonoGenericParam): Added `MonoClass *klass'.
16813
16814         * class.c (mono_class_from_gen_param): Removed the
16815         `MonoImage *image' and `int type_num' arguments.
16816
16817         * metadata.c (mono_metadata_parse_generic_param): New static
16818         method; creates a MonoGenericParam which just contains the index.
16819         (do_mono_metadata_parse_type): Call
16820         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
16821         MONO_TYPE_MVAR.
16822
16823         * reflection.c (mono_image_typedef_or_ref): Generic type
16824         parameters may be in the same assembly, but never use a typedef
16825         for them.
16826         (mono_reflection_define_generic_parameter): We're now creating a
16827         "real" class for the type parameter; it's now safe to call
16828         mono_class_from_mono_type() on the class'es type, it'll do the
16829         right thing.
16830
16831 2003-09-16  Martin Baulig  <martin@ximian.com>
16832
16833         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
16834         `symfile->range_entry_size' and `symfile->class_entry_size' here;
16835         the `symfile' data structure must be fully initialized before it
16836         gets added to the table.
16837
16838 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
16839
16840         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
16841
16842         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
16843         class init trampolines.
16844
16845 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
16846
16847         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
16848         to the built-in profiler to turn off time and allocation profiling
16849         respectively.
16850
16851 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
16852
16853         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
16854         g_direct_equal.
16855
16856         * debug-helpers.c (mono_method_full_name): Print the wrapper type
16857         in human readable form.
16858
16859 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
16860
16861         * reflection.c icall.c: Fixed warnings.
16862
16863         * image.c (load_class_names): Use a temporary hash table to hold the
16864         namespaces in order to avoid doing many string comparisons.
16865
16866         * image.h: Fix typo.
16867
16868         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
16869         Pass NULL instead of g_direct_equal to the GHashTable constructor 
16870         since the NULL case is short-circuited inside g_hash_table_lookup, 
16871         leading to better performance.  
16872
16873         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
16874         obtain the first custom attribute for a given index. Depends on the
16875         CustomAttribute table being sorted by the parent field.
16876
16877         * reflection.c (mono_custom_attrs_from_index): Use the new function 
16878         for better performance.
16879
16880 2003-09-07  Martin Baulig  <martin@ximian.com>
16881
16882         * class.c (mono_class_init): If we're a generic instance, inflate
16883         all our methods instead of loading them from the image.
16884         (mono_class_from_generic): Set `class->methods = gklass->methods'.
16885
16886 2003-09-07  Martin Baulig  <martin@ximian.com>
16887
16888         * mono-debug-debugger.c: Added support for constructors.
16889
16890 2003-09-06  Martin Baulig  <martin@ximian.com>
16891
16892         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
16893         New interncall.
16894
16895         * reflection.c (mono_reflection_setup_generic_class): Call
16896         ensure_runtime_vtable() to create the vtable.
16897
16898 2003-09-05  Martin Baulig  <martin@ximian.com>
16899
16900         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
16901         MONO_TYPE_MVAR.
16902
16903 2003-09-04  Martin Baulig  <martin@ximian.com>
16904
16905         * reflection.c (mono_reflection_define_generic_parameter): Generic
16906         parameters start with zero.
16907
16908 2003-09-04  Martin Baulig  <martin@ximian.com>
16909
16910         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
16911
16912         * reflection.h (MonoReflectionGenericParam): New typedef.
16913         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
16914         the generic parameters from the managed TypeBuilder.
16915
16916         * reflection.c (mono_reflection_define_generic_parameter): New function.
16917         (mono_reflection_create_runtime_class): Encode generic parameters.
16918         (mono_reflection_setup_generic_class): New function; this is
16919         called after adding adding all generic params to the TypeBuilder.
16920         (encode_type): Added MONO_TYPE_VAR.
16921
16922 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
16923
16924         * class.h class.c (mono_class_needs_cctor_run): Moved this method
16925         here from the JIT.
16926
16927         * assembly.h assembly.c: Moved the AOT loading code into an assembly
16928         load hook.
16929
16930 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
16931
16932         * reflection.h reflection.c class.h class.c: Delete duplicate 
16933         definition of mono_type_get_name () from reflection.c and export the
16934         one in class.c.
16935
16936         * class.c: Class loading fixes from Bernie Solomon 
16937         (bernard@ugsolutions.com).
16938
16939         * reflection.c: Endianness fixes from Bernie Solomon 
16940         (bernard@ugsolutions.com).
16941         
16942 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
16943
16944         * assembly.h assembly.c: Define a file format version for AOT
16945         libraries.
16946         
16947         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
16948
16949         * appdomain.h (MonoJitInfo): New field to determine whenever the
16950         code is domain neutral.
16951         
16952 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
16953
16954         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
16955
16956 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
16957
16958         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
16959         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
16960         Avoid caching the result since strings must be domain specific. Fixes
16961         #48050.
16962
16963 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
16964
16965         * marshal.c (mono_marshal_init): Make this callable multiple times
16966         since it is hard to find a correct place to call it.
16967
16968         * object.c (mono_runtime_class_init): Execute static constructors in
16969         the correct appdomain.
16970
16971         * image.c (build_guid_table): Handle the case when multiple images have
16972         the same GUID.
16973
16974 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16975
16976         * icall.c: added a couple of icalls for System.Web.
16977
16978 2003-08-28  Martin Baulig  <martin@ximian.com>
16979
16980         * icall.c (ves_icall_Type_BindGenericParameters): Use
16981         `klass->generic_inst' instead of `&klass->byval_arg' in the
16982         mono_type_get_object() call.  The returned type must be
16983         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
16984
16985 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
16986
16987         * NOTES: New file.
16988
16989         * object.c (mono_class_proxy_vtable): Make it thread safe.
16990
16991         * pedump.c: Fix warning.
16992
16993         * object.c appdomain.h: Get rid of metadata_section. 
16994         It is no longer needed and it was causing deadlocks with domain->lock.
16995
16996         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
16997
16998 2003-08-26  Martin Baulig  <martin@ximian.com>
16999
17000         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
17001
17002 2003-08-26  Martin Baulig  <martin@ximian.com>
17003
17004         * pedump.c (main): Call mono_metadata_init(),
17005         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
17006         and mono_loader_init().
17007
17008 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
17009
17010         * loader.h: Add missing include to fix build.
17011
17012         * image.h: mono_image_load_references is no more.
17013
17014         * assembly.c: Reworked assembly loading to make it really thread safe.
17015         After these changes, the assembly returned by mono_assembly_open is
17016         fully initialized, i.e. all its references assemblies are loaded.
17017
17018         * assembly.c (mono_image_load_references): Renamed to 
17019         mono_assembly_load_references, and made private, since clients no
17020         longer need to call it.
17021
17022         * class.c: Removed calls to mono_assembly_load_references, since it was
17023         a source of deadlocks.
17024
17025         * loader.h loader.c class.h class.c: Protect data structures using a 
17026         new lock, the loader lock.
17027
17028         * class.c (mono_class_setup_vtable): Create temporary hash tables and
17029         GPtrArrays only when needed.
17030
17031         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
17032         into empty structures by mcs. Fixes pinvoke7.cs.
17033         
17034         * domain.c (mono_init): Call a new initialization function.
17035
17036         * appdomain.c (mono_runtime_init): Call the new initializer function
17037         of the marshal module.
17038
17039         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
17040         inserted into empty structures by mcs. Fixes pinvoke7.cs.
17041
17042         * marshal.h marshal.c: Added locks around the wrapper caches to make
17043         this module thread safe.
17044
17045         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
17046         this argument. Fixes pinvoke1.exe.
17047
17048 2003-08-25  Lluis Sanchez <lluis@ximian.com>
17049
17050         * object.h: Added call_type field to MonoMethodMessage and the corresponding
17051         enumeration of values. Removed fields to store remote call output values in
17052         MonoAsyncResult. Not needed any more.
17053         * object.c: Initialize call_type and async_result fields in mono_message_init.
17054         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
17055         dispatching the message.
17056         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
17057         async call to finish. To do it use a message with EndInvoke call type.
17058
17059 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
17060
17061         * loader.h loader.c (mono_method_hash_marhal_info): New function which
17062         determines whenever a method has marshalling info.
17063
17064 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17065
17066         * assembly.c: fix the build on windows.
17067
17068 2003-08-22 Lluis Sanchez <lluis@ximian.com>
17069
17070         * object.cs: Fixed bug #47785.
17071
17072 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
17073
17074         * string-icalls.c (StringReplace): If their are no occurances of
17075         the old string found return a reference to the supplied
17076         string. This saves some memory and matches MS behavoir.
17077         
17078 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17079
17080         * socket-io.c: fixed compilation for systems that define AF_INET6
17081         and don't define SOL_IP/SOL_IPV6.
17082
17083 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
17084
17085         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
17086         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
17087
17088         * rawbuffer.c rawbuffer.h: Make this module thread safe.
17089
17090         * domain.c: Make this module thread safe.
17091
17092         * domain.c (mono_init): Call new initialization function.
17093
17094         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
17095         reference types too. Fixes #38812.
17096
17097         * image.c (mono_image_init): Fixed warnings.
17098
17099         * class.c (mono_class_from_typeref): Handle assembly load failure
17100         correctly.
17101
17102         * appdomain.c (add_assemblies_to_domain): Handle the case when
17103         the references of an assembly are not yet loaded.
17104
17105         * metadata.c image.c assembly.c: Moved initialization of global
17106         variables to a separate function called at startup since lazy 
17107         initialization of these variables is not thread safe.
17108         
17109         * image.c assembly.c: Made this module thread safe by adding locks in 
17110         the appropriate places.
17111
17112         * domain.c (mono_init): Call the new initialization functions of the
17113         three modules.
17114
17115 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
17116
17117         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
17118           make a direct call. It is proxy's work to make the call asynchronous.
17119           mono_delegate_end_invoke(): If the targe is a proxy, just collect
17120           the return values.
17121         * object.cs: mono_method_call_message_new(): read AsyncResult and
17122           state object from parameters list, if this info is requested.
17123         * object.h: Added fields to store remote call output values in
17124           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
17125
17126 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
17127
17128         * object.h: add needed fields to MonoThread.
17129         * threads.c, threads.h: allow registering a function to cleanup data
17130         allocated per thread by the JIT.
17131
17132 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
17133
17134         * loader.h: portability fix by Bernie Solomon
17135         * <bernard@ugsolutions.com>.
17136
17137 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
17138
17139         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
17140         return a MonoArray. This simplifies the code and also ensures that
17141         the cache allways contains an object reference as a value.
17142
17143         * icall.c (ves_icall_get_parameter_info): Simplified using the new
17144         function.
17145
17146 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17147
17148         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
17149         fixes a problem with byte ordering when getting the address family for
17150         a socket.
17151
17152 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
17153
17154         * .cvsignore: Added monosn.
17155
17156         * reflection.h reflection.c loader.c: Added support for parameter
17157         marshalling to dynamically created types. Fixes #47295.
17158
17159 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
17160
17161         * rand.c: remove useless warnings.
17162
17163 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
17164
17165         * class.c: implemented ldtoken for methods and fieldrefs.
17166
17167 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17168
17169         * threadpool.c: when mono_async_invoke was called, no one took care of
17170         monitoring the queue. So if the method invoked took some time and we
17171         got new async invoke requests after 500 ms (the thread created waited
17172         that long in WaitForSingleObject), the new async invoke was not called
17173         until the previous one finished.
17174
17175         This is fixed now. Thanks to Totte for helping with it.
17176
17177 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17178
17179         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
17180
17181 2003-08-11  Martin Baulig  <martin@ximian.com>
17182
17183         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
17184
17185 2003-08-06  Martin Baulig  <martin@ximian.com>
17186
17187         * mono-debug-debugger.c: Added support for static fields,
17188         properties and methods.
17189
17190 2003-08-06  Martin Baulig  <martin@ximian.com>
17191
17192         * mono-debug-debugger.c: Don't store the MonoString's vtable to
17193         make this work for applications with multiple application domains.
17194
17195 2003-08-04  Martin Baulig  <martin@ximian.com>
17196
17197         * mono-debug-debugger.c: Completely reworked the type support; the
17198         most important thing is that we're now just using one single
17199         `MonoType' instance per type.
17200
17201 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
17202
17203         * mono-endian.h, mono-endian.c, icall.c: Added icall
17204         ves_icall_System_Double_AssertEndianity to assert double word endianity
17205         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
17206
17207 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
17208
17209         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
17210         support, icalls and fixes.
17211
17212 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
17213
17214         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
17215         classes that are a punctuation character in .NET is not the same a
17216         g_unichar_ispunct.
17217
17218 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
17219
17220         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
17221
17222 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
17223
17224         * icall.c: Add new MemCopy internalcall.
17225         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
17226         Simplified code; It is not necessary to handle all the cases here,
17227         as the C# code takes care of it.  Only handle the case of the name
17228         resource embedded into the assembly.
17229
17230         Changed signature to return the data pointer and the size of the
17231         data. 
17232
17233 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
17234
17235         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
17236         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
17237
17238 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
17239
17240         * socket-io.c: ignore EINTR error in select.
17241
17242 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
17243
17244         * class.h, class.c: removed unused subclasses field in MonoClass.
17245
17246 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
17247
17248         * icall.c: improve fix of get_base_definition(). If the parent class
17249           doesn't have the mehod, look at the parent of the parent.
17250         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
17251           to check if a parameter is an in or out parameter
17252           (PARAM_ATTRIBUTE_IN is not set by default).
17253           mono_method_return_message_restore(): Use mono_class_value_size to
17254           get the size of a value type. mono_type_stack_size (parameterType)
17255           does not return the correct value if parameterType is byRef.
17256           mono_load_remote_field(), mono_load_remote_field_new(),
17257           mono_store_remote_field(), mono_store_remote_field_new():
17258           raise exception if the remote call returns an exception.
17259
17260 2003-07-28  Martin Baulig  <martin@ximian.com>
17261
17262         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
17263         method.  This is a wrapper around mono_runtime_invoke() which
17264         boxes the instance object if neccessary.
17265
17266 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
17267
17268         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
17269         metadata.h, row-indexes.h, verify.c: first cut of generics support.
17270
17271 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
17272
17273         * icall.c: disable mcs bug workaround.
17274
17275 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
17276
17277         * object.c (mono_runtime_class_init): Take the metadata_section
17278         mutex before obtaining the domain mutex.
17279
17280         * appdomain.h: Added definition of metadata_section mutex here. 
17281
17282         * object.c: define metadata_mutex here.
17283
17284 2003-07-24  Ravi Pratap  <ravi@ximian.com>
17285
17286         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
17287         fixed.
17288
17289 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
17290
17291         * reflection.c: Fix bug #46669
17292
17293 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17294
17295         * exception.c:
17296         * exception.h:
17297         * icall.c:
17298         * object.h: fill in the type name for TypeLoadException.
17299
17300 2003-07-23  Ravi Pratap  <ravi@ximian.com>
17301
17302         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
17303         relationship between TypeBuilders while compiling corlib) and bug
17304         45993 (Array types returned from the runtime while compiling
17305         corlib were from the loaded corlib).
17306
17307 2003-07-22  Martin Baulig  <martin@ximian.com>
17308
17309         * mono-debug-debugger.c: Reworked the type support a bit more;
17310         distinguish between types and classes.
17311
17312 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
17313
17314         * icall.c: add IsArrayImpl icall.
17315
17316 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
17317
17318         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
17319         initializing real_size only once. Also fix bug #46602.
17320
17321 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
17322
17323         * object.c: Renamed mono_metadata_section to metadata_section.
17324
17325 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
17326
17327         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
17328           empty array if the type is an array. Fixed.
17329           ves_icall_MonoMethod_get_base_definition: if the base method
17330           is abstract, get the MethodInfo from the list of methods of
17331           the class.
17332         * reflection.c: ParameterInfo.PositionImpl should be zero-based
17333           and it was 1-based. Fixed in mono_param_get_objects.
17334
17335 2003-07-20  Martin Baulig  <martin@ximian.com>
17336
17337         * mono-debug.h: Set version number to 31.
17338         (mono_debug_init): Added `MonoDomain *' argument.
17339
17340         * mono-debug-debugger.c: Reworked the type support; explicitly
17341         tell the debugger about builtin types; pass the `klass' address to
17342         the debugger.
17343
17344 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
17345
17346         * image.c: Allow new metadata tables to be loaded without a
17347         warning. Also update the warning message to give the new constant value.
17348                 
17349 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
17350
17351         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
17352         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
17353         array type representation changes.
17354
17355 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
17356
17357         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
17358         on Environment.Exit () call.
17359
17360 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
17361
17362         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
17363         requires a matching corlib.
17364
17365 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
17366
17367         * Changelog: My editor decided to add a CR to each line. Sorry about that.
17368           Committed again without the CRs.
17369         
17370 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
17371
17372         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
17373           getting it from the "this" socket instance. Did not work
17374           if the socket is a subclass of Socket.
17375           Also fixed bug #35371.
17376
17377 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
17378
17379         * metadata.c: fixed size for TypedByRef.
17380         * loader.c: when searching for a method, consider the vararg amrker.
17381         * unicode.c, decimal.c: constify some arrays.
17382
17383 2003-07-15  Dick Porter  <dick@ximian.com>
17384
17385         * socket-io.c: Fixed compilation for gcc < 3.2.
17386
17387         Fixed compilation for machines that don't have AF_INET6 (thanks to
17388         Bernie Solomon <bernard@ugsolutions.com> for that part.)
17389
17390         Fixed compile warnings.
17391         
17392         Fixed formatting and line endings.
17393
17394 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
17395
17396         * socket-io.h:
17397         * socket-io.c: Added IPv6 support.
17398
17399 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
17400
17401         * class.c (mono_class_is_assignable_from): New function to implement
17402         the is_assignable_from logic. Used by mono_object_isinst, 
17403         Type::IsAssignableFrom () and the interpreter.
17404
17405         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
17406         Object, even interfaces.
17407         
17408         * object.c (mono_object_isinst): Implement in terms of 
17409         is_assignable_from.
17410
17411         * icall.c (ves_icall_type_is_assignable_from): New icall.
17412
17413 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
17414
17415         * domain.c (foreach_domain): fix compiler warning.
17416
17417 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
17418
17419         * image.c (load_metadata_ptrs): use g_strndup because strndup is
17420         not available on all plattforms
17421
17422 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
17423
17424         * image.h image.c: Store the metadata version string in MonoImage.
17425         * icall.c: New icall to retrieve the image version.
17426         * reflection.c (create_dynamic_image): Fill in the image version field
17427         * reflection.c (build_compressed_metadata): Use the image version
17428         from the image structure.
17429
17430 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17431
17432         * appdomain.c: modified comment.
17433         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
17434         That will be its last iteration when mono_gc_cleanup is called from
17435         mono_runtime_cleanup and before the domain is unloaded.
17436
17437         Fixes bug #45962.
17438
17439 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
17440
17441         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
17442         attributes.
17443
17444 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
17445
17446         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
17447         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
17448         Bernie Solomon <bernard@ugsolutions.com>.
17449
17450 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
17451
17452         * object.c, object.h: provide mono_object_new_fast() for faster
17453         allocation in some special cases.
17454
17455 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
17456
17457         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
17458         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
17459
17460 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
17461
17462         * threadpool.c: fix leaks.
17463
17464 2003-07-01  Dick Porter  <dick@ximian.com>
17465
17466         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
17467         using MonoGHashTables.  Fixes threadpool bug posted to list.
17468
17469 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
17470
17471         * image.h, image.c: added support to load an assembly from a byte array.
17472         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
17473         assembly bundle support.
17474
17475 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
17476
17477         * threadpool.c (mono_thread_pool_add): keep a reference to the
17478         AsyncResult to prevent GC
17479
17480 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
17481
17482         * class.c: leak fix.
17483
17484 2003-06-25  Dick Porter  <dick@ximian.com>
17485
17486         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
17487         for the async object, the WaitHandle object will close the handle.
17488         Fixes bug 45321.
17489
17490 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
17491
17492         * class.c: in mono_array_class_get (), lookup from the hash with the
17493         same type we insert: this works around a bug in
17494         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
17495         lluis. The real fix will have to wait for after the release.
17496
17497 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
17498
17499         * icall.c: fix memory leak when getting type members.
17500
17501 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
17502
17503         * reflection.c: added more pubtoken special cases.
17504
17505 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
17506
17507         * class.c: handle field offset correctly when class size
17508         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
17509
17510 2003-06-20  Martin Baulig  <martin@ximian.com>
17511
17512         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
17513         *image' field.
17514
17515 2003-06-20  Martin Baulig  <martin@ximian.com>
17516
17517         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
17518
17519 2003-06-20  Martin Baulig  <martin@ximian.com>
17520
17521         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
17522         just distinguish between variables in registers and variables at
17523         an offset relative to a register.
17524
17525 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17526
17527         * icall.c: #ifdef out latest changes until mcs is fixed.
17528
17529 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
17530
17531         * icall.c: return members in metadata order.
17532
17533 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
17534
17535         * icall.c: avoid infinite loop in GetTimeZoneData.
17536
17537 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
17538
17539         * icall.c: added Marshal.Prelink/All icalls.
17540
17541 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
17542
17543         * object.c, object.h: fix warnings and do some overflow checking
17544         when creating arrays.
17545
17546 2003-06-17  Dick Porter  <dick@ximian.com>
17547
17548         * file-io.h:
17549         * file-io.c: File attributes need to be tweaked slightly when
17550         passed from the managed to the w32 world.
17551
17552 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
17553         * profiler.h profiler-private.h profiler.c: Rework last patch
17554         based on suggestion by Paolo.
17555         
17556 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
17557
17558         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
17559         instruction level coverage data collection.
17560         * profiler.h profiler.c (: Added new callback function which can be
17561         used by the profiler to limit which functions should have coverage
17562         instrumentation.
17563         * profiler.c (mono_profiler_load): Call g_module_build_path to
17564         generate the file name of the profiler library.
17565
17566 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
17567
17568         * profiler.c, profiler.h, profiler-private.h: added basic block 
17569         coverage profiling API.
17570
17571 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
17572
17573         * reflection.c (mono_reflection_create_runtime_class): Add support
17574         for events in dynamically generated code.
17575
17576         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
17577         not allocated.
17578
17579 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
17580
17581         * icall.c: when getting timezone info, return reasonable values if we
17582         can't get the actual data.
17583
17584 2003-06-14  Dick Porter  <dick@ximian.com>
17585
17586         * threads.c (start_wrapper): Remove the reference to the thread
17587         object in the TLS data, so the thread object can be finalized.
17588         This won't be reached if the thread threw an uncaught exception,
17589         so those thread handles will stay referenced :-( (This is due to
17590         missing support for scanning thread-specific data in the Boehm GC
17591         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
17592
17593 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
17594
17595         * reflection.c: ensure streams and tables are first allocated with
17596         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
17597
17598 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
17599
17600         * icall.c: fixed GetElementType for byrefs (bug# 44792).
17601
17602 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
17603
17604         * reflection.c (mono_reflection_create_runtime_class): Add support for
17605         properties to dynamically created classes.
17606         * reflection.c: Fix a few places where non-MonoObjects were inserted
17607         into the tokens hashtable.
17608
17609 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
17610
17611         * object.c: some support to handle out of memory exceptions.
17612
17613 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
17614
17615         * marshal.c (mono_marshal_get_native_wrapper): support reference
17616         return types
17617
17618 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
17619
17620         * object.h, object.c: more portability stuff from Bernie Solomon.
17621         Unexport mono_object_allocate(). Added mono_object_unbox ().
17622         Set exitcode when an unhandled exception is thrown.
17623
17624 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
17625
17626         * marshal.c (mono_marshal_get_native_wrapper): use custom
17627         marshaler for return types.
17628
17629 2003-06-10  Dick Porter  <dick@ximian.com>
17630
17631         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
17632         ip_mreq is available
17633
17634 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
17635
17636         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
17637         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
17638         by Bernie Solomon <bernard@ugsolutions.com>.
17639
17640 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
17641
17642         * gc.c (mono_gc_init): Avoid error message on shutdown when
17643         GC_DONT_GC=1 is used.
17644
17645         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
17646         New icall to return the GUID of a module.
17647
17648 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
17649
17650         * class.c: ensure instance size always includes the parent's size
17651         even whem class size is set explicitly (fixes bug#44294).
17652
17653 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
17654
17655         * profiler.h, profiler.c: made the simple profiler thread-safe,
17656         get more accurate timing info. Allow the loading of an
17657         externally-developed profiler module.
17658
17659 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
17660
17661         * marshal.c (mono_marshal_get_native_wrapper): improved
17662         class/byref arguments.
17663         (mono_marshal_get_native_wrapper): better string marshaling support.
17664
17665 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
17666
17667         * class.c: ensure .pack and .size are handled correctly and
17668         simplified layout of static fields.
17669
17670 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
17671
17672         * appdomain.c
17673         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
17674
17675         * loader.c (mono_lookup_pinvoke_call): look for modules in the
17676         current directory (fix bug 44008)
17677
17678 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
17679
17680         * marshal.c (mono_marshal_get_native_wrapper): started support for
17681         custom marshalers.
17682         (mono_delegate_to_ftnptr): consider marshalling specifications
17683
17684 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
17685
17686         * reflection.c, reflection.h: emit custom marshal info.
17687
17688 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17689
17690         * object.c: free the GError.
17691         * icall.c: added CloseEvent_internal.
17692         * threads.[ch]:
17693         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
17694         call.
17695
17696 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
17697
17698         * loader.c (mono_method_get_signature): Add support for dynamic
17699         assemblies.
17700
17701 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
17702
17703         * reflection.c: fixed bug #43905.
17704
17705 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
17706
17707         * class.c, domain.c, icall.c, metadata.h, object.h: support for
17708         handling TypedReference and ArgIterator.
17709         * loader.c, loader.h: added function to get signature at call site.
17710
17711 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
17712
17713         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
17714         data readonly. Buglets and warning fixes. Some MethodSpec support.
17715
17716 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
17717
17718         * class.h, class.c, object.c: remove relative numbering support.
17719
17720 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
17721
17722         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
17723         free the string, until we get a chance to fix Gtk#
17724
17725 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17726
17727         * marshal.c: revert last patch.
17728
17729 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
17730
17731         * icall.c: updates for new mono_class_vtable() not calling
17732         the type constructor anymore.
17733
17734 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
17735
17736         * object.h, object.c: separate vtable creation from type
17737         initialization. Make running the .cctor thread safe.
17738
17739 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
17740
17741         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
17742
17743 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
17744
17745         * loader.c (mono_get_method): consider calling convention
17746
17747 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
17748
17749         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
17750         to return the invisible global type for a module.
17751
17752         * reflection.c (mono_image_build_metadata): Emit global fields too.
17753
17754 2003-05-20  Peter Williams  <peterw@ximian.com>
17755
17756         * loader.c (mono_lookup_internal_call): Add a few newlines.
17757
17758 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
17759
17760         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
17761         literal strings.
17762
17763         * appdomain.c (set_domain_search_path): Recalculate search path when
17764         AppDomainSetup.PrivateBinPath changes.
17765
17766         * object.c (mono_class_compute_gc_descriptor): It turns out some
17767         parts of the class libs (like System.Thread) holds pointers to
17768         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
17769         to treat native int a pointer type here.
17770         
17771 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
17772
17773         * appdomain.h, domain.c: add hashtable for jump target resolution.
17774
17775 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
17776
17777         * reflection.h reflection.c icall.c: Added new icalls 
17778         GetManifestResourceInfoInternal, GetModulesInternal and support
17779         infrastructure.
17780
17781 2003-05-16  Dick Porter  <dick@ximian.com>
17782
17783         * icall.c:
17784         * file-io.h:
17785         * file-io.c: Implement System.IO.MonoIO::GetTempPath
17786
17787 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
17788
17789         * object.c: mono_store_remote_field: little fix to previous patch.
17790
17791 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
17792
17793         * class.c: add constructors to array classes.
17794         * icall.c: special case array construction for InternalInvoke (),
17795
17796 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
17797
17798         * class.h class.c reflection.c object.c: Added support for field
17799         defaults in dynamically generated classes.
17800
17801 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
17802
17803         * reflection.c: properly encode charset for ddlimport.
17804
17805 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
17806
17807         * threads.c: allow compiling without GC.
17808
17809 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
17810
17811         * appdomain.h, object.c, object.h, threads.c, threads.h: added
17812         handling of thread static data.
17813
17814 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
17815
17816         * reflection.h, reflection.c: added mono_custom_attrs_free ().
17817
17818 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
17819
17820         * class.c (mono_array_class_get): always set the serializable flags
17821         (mono_array_class_get): always set the SEALED attribute for array types
17822
17823 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
17824
17825         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
17826         attributes (fix for bug 42021).
17827
17828 2003-05-12  Dick Porter  <dick@ximian.com>
17829
17830         * gc.c: Don't run finalizers when the finalizer thread is
17831         finishing up, because the default domain has already been
17832         destroyed.
17833
17834 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
17835
17836         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
17837         value is null, we should throw an exception.   This is slightly
17838         different than the other conventions used for the constructor.
17839
17840 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17841
17842         * socket-io.c: fixed windows build.
17843
17844 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17845
17846         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
17847
17848 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
17849
17850         * object.c (mono_string_new_wrapper): Compatibility fix for MS
17851         compilers.
17852
17853 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
17854
17855         * class.c (mono_class_layout_fields): Add experimental GC aware
17856         auto layout facility. Requires class library changes to work correctly.
17857
17858         (mono_class_setup_vtable): Avoid overriding explicit interface
17859         method implementations. Fixes iface3.exe test.
17860
17861         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
17862         object reference.
17863         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
17864         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
17865
17866         * metadata.h: Add new type classification macro which determines
17867         whenever the type holds an object reference.
17868
17869 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
17870
17871         * marshal.c (mono_marshal_get_native_wrapper): cleanups
17872
17873 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
17874
17875         * gc.c (finalizer_thread): Work around a GC bug.
17876
17877 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
17878
17879         * marshal.c (emit_struct_conv): allow unions
17880
17881         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
17882
17883 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
17884
17885         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
17886
17887 2003-05-06  Martin Baulig  <martin@ximian.com>
17888
17889         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
17890
17891 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17892
17893         * socket-io.c:
17894         (Select_internal): allow NULLs, don't create arrays if not needed.
17895         Coupled with Socket.cs changes.
17896
17897         * threadpool.c:
17898         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
17899         register a finalizer for it that will close the semaphore handle. This
17900         fixes the leak and make Lupus' test run with > 4080 loops.
17901
17902 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
17903
17904         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
17905         Jerome Laban (bug #42287)
17906
17907 2003-05-02  Martin Baulig  <martin@ximian.com>
17908
17909         * debug-mono-symfile.h
17910         (MonoSymbolFile): Moved declaration into mono-debug.h.
17911         (MonoDebugMethodJitInfo): Likewise.
17912         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
17913         argument.
17914         (_mono_debug_address_from_il_offset): Take a
17915         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
17916
17917         * mono-debug.h
17918         (MonoDebugDomainData): New struct.
17919         (mono_debug_get_domain_data): New function.
17920         (mono_debug_add_method): Take an additional `MonoDomain *'
17921         argument.
17922         (mono_debug_source_location_from_address): Likewise.
17923         (mono_debug_il_offset_from_address): Likewise.
17924         (mono_debug_address_from_il_offset): Likewise.
17925
17926 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
17927
17928         * reflection.c: one more check for null type in custom attrs.
17929
17930 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17931
17932         * reflection.c: avoid warning (comparison is always false due to limited
17933         range of data type).
17934
17935 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17936
17937         * icall.c: throw an exception in Type.GetField if the argument 'name'
17938         is NULL.
17939
17940 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
17941
17942         * reflection.c: fixed handling of enums in named arguments to custom
17943         attributes (bug #42123).
17944
17945 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
17946
17947         * reflection.c: use the right array element type and handle
17948         a null for a Type argument, too.
17949
17950 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
17951
17952         * reflection.c: handle arrays as arguments to custom attributes.
17953
17954 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
17955
17956         * reflection.c: handle a string value in a custom attr
17957         ctor that takes an object.
17958
17959 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
17960
17961         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
17962         (fix bug #42063)
17963
17964 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
17965
17966         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
17967
17968 2003-04-27  Martin Baulig  <martin@ximian.com>
17969
17970         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
17971         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
17972         MONO_DEBUGGER_EVENT_BREAKPOINT.
17973         (mono_breakpoint_trampoline_code): Removed.
17974         (mono_debugger_event_handler): The last argument is now a
17975         `guint32'.
17976         (mono_debugger_insert_breakpoint_full): Removed the
17977         `use_trampoline' argument.
17978         (mono_debugger_method_has_breakpoint): Likewise.
17979         (mono_debugger_trampoline_breakpoint_callback): Renamed to
17980         mono_debugger_breakpoint_callback(); take the method and
17981         breakpoint number as arguments.
17982
17983 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
17984
17985         * metadata.c: fix off by one when loading parameters attributes.
17986
17987 2003-04-24  Martin Baulig  <martin@ximian.com>
17988
17989         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
17990
17991 2003-04-24  Martin Baulig  <martin@ximian.com>
17992
17993         * mono-debug-debugger.c: Moved all code which interacts with the
17994         Mono Debugger here.
17995
17996         * debug-mono-symfile.c: This code now just deals with the symbol
17997         file itself, the debugger code is now in mono-debug-debugger.c.
17998
17999 2003-04-23  Martin Baulig  <martin@ximian.com>
18000
18001         * mono-debug.c (mono_debug_source_location_from_il_offset):
18002         New method; like mono_debug_source_location_from_address(), but
18003         takes an IL offset instead of a machine address.
18004
18005 2003-04-23  Martin Baulig  <martin@ximian.com>
18006
18007         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
18008         `line' field; this is now computed by the debugger.
18009
18010 2003-04-23  Martin Baulig  <martin@ximian.com>
18011
18012         * mono-debug.[ch]: New files.  This is the new debugging interface.
18013
18014         * mono-debug-debugger.[ch]: New files.  Moved all code which
18015         interacts with the Mono Debugger here.
18016
18017 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
18018
18019         * domain.c (mono_init): initialize mono_defaults.monitor_class
18020
18021 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
18022
18023         * reflection.c (method_encode_code): Add a spicy exception to help
18024         future compiler authors.
18025
18026 2003-04-21  Martin Baulig  <martin@ximian.com>
18027
18028         * icall.c
18029         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
18030         Make this work with relative pathnames; g_filename_to_uri() needs
18031         an absolute filename.
18032
18033 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
18034
18035         * icall.c: Track name changes in Object and ValueType.
18036
18037 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
18038
18039         * metadata.c (mono_type_stack_size): size should be a multiple of
18040         sizeof (gpointer)
18041
18042 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18043
18044         * gc.c:
18045         (internal_domain_finalize): moved into mono_domain_finalize. No need
18046         to create another thread because the finalizers will be run in the
18047         finalizer thread.
18048         
18049         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
18050         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
18051         to be run (MS does this too).
18052
18053 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
18054
18055         * object.c (mono_class_compute_gc_descriptor): Update comment.
18056
18057         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
18058
18059         * image.h: Add synchronized wrapper cache.
18060
18061         * image.c (do_mono_image_open): Initialize cache.
18062
18063         * reflection.c (create_dynamic_mono_image): Initialize cache.
18064
18065 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18066
18067         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
18068         ves_icall_System_Buffer_ByteLengthInternal.
18069
18070 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
18071
18072         * reflection.c: setup klass->nested_in earlier. Allow
18073         a dash in the assembly name.
18074
18075 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
18076
18077         * metadata.c (mono_type_to_unmanaged): dont access
18078         type->data.klass for MONO_TYPE_OBJECT
18079         (mono_type_to_unmanaged): consider System.Delegate class
18080
18081 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
18082
18083         * class.c: just setup supertypes in the proper place instead of
18084         initializing the full element class for arrays.
18085
18086 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
18087
18088         * class.c: ensure the element class of arrays is initialized.
18089         Setup the supertype info for array classes, too.
18090
18091 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
18092
18093         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
18094
18095 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18096
18097         * Makefile.am: re-added -m option when running cygpath. This way,
18098         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
18099         separator.
18100         * mono-config.c: same codepath for locating mono config file for WIN32
18101         and the rest.
18102         * assembly.c: if mono_assembly_setrootdir is called, don't override
18103         the value set.
18104
18105 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18106
18107         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
18108         MONO_ASSEMBLIES variable.
18109
18110 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
18111
18112         * icall.c: added Assembly::GetNamespaces() icall.
18113
18114 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18115
18116         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
18117
18118 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
18119
18120         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
18121         * object.c: fixed bug in the construction of vtable for proxies
18122
18123 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
18124
18125         * object.c (mono_array_new): Mark mono_array_new as an icall.
18126
18127 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18128
18129         * class.c: fixed test for public method when overriding interfaces.
18130         Closes bug #40970.
18131
18132 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
18133
18134         * appdomain.h, domain.c: added mono_domain_foreach() to
18135         be able to access the currently loaded appdomains.
18136         * object.c: make string interning work across sppdomains.
18137         Mark some functions for use as icalls.
18138
18139 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
18140
18141         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
18142
18143         * reflection.h reflection.c: Allocate long living data using 
18144         GC_MALLOC_ATOMIC so the collector does not need to scan it.
18145
18146         * reflection.c: Double the allocation size in streams instead of
18147         increasing it, to prevent unneccesary copying on large assemblies.
18148         
18149         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
18150         creation if the assembly does not have the Run flag set.
18151
18152 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
18153
18154         * class.h: avoid the C++ keywords in header files (Jerome Laban
18155         spotted and fixed this).
18156
18157 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18158
18159         * object.c:
18160         (mono_unhandled_exception): fill in the arguments for the
18161         UnhandledException event. Only trigger that event for the default
18162         domain (as MS does).
18163
18164 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
18165
18166         * object.c: Improve typed allocation stuff based on suggestions from
18167         Paolo. Also turn it on if the GC library supports it.
18168
18169 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
18170
18171         * object.c object.h class.h: Added experimental typed allocation
18172         facility using the interfaces in gc_gcj.h.
18173
18174         * os/gc_wrapper.h: Added new include files.
18175         
18176 2003-04-03  Martin Baulig  <martin@ximian.com>
18177
18178         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
18179         which is not yet enabled by default.
18180
18181         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
18182         functions.
18183         (mono_gc_lock, mono_gc_unlock): New static functions.
18184
18185         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
18186         functions; stop/start the world for the garbage collector.  This
18187         is using the windows API; we need to complete the SuspendThread()/
18188         ResumeThread() implementation in the io-layer to make this work on Unix.
18189         (mono_gc_push_all_stacks): New public function; tells the garbage
18190         collector about the stack pointers from all managed threads.
18191
18192 2003-04-03  Martin Baulig  <martin@ximian.com>
18193
18194         * object.h (MonoThread): Added `gpointer stack_ptr'.
18195
18196         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
18197
18198 2003-04-03  Martin Baulig  <martin@ximian.com>
18199
18200         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
18201
18202 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
18203
18204         * reflection.c (typebuilder_setup_fields): Initialize field.first and
18205         field.last.
18206
18207 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
18208
18209         * loader.c (mono_lookup_internal_call): Report the corlib that is
18210         out of sync.
18211
18212 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
18213
18214         * icall.c (ves_icall_type_GetTypeCode): fixed check for
18215         System.DBNull (it's class not valuetype).
18216
18217 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
18218
18219         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
18220         if the array method was already assigned a token (fixes bug#40646).
18221
18222 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
18223
18224         * reflection.c (mono_reflection_get_type): Attempt type resolve even
18225         if no assembly is given.
18226
18227 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
18228
18229         * metadata.h: Added the new tables.
18230
18231         * row-indexes.h: Added definitions for new tables.
18232
18233         * metadata.c: Add schemas for new tables, and add support for
18234         computing the sizes of them.
18235
18236         * class.c: Update for handling the new type cases.
18237
18238 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
18239
18240         * metadata.h (MONO_TYPE_IS_VOID): new macro
18241
18242 2003-03-31  Martin Baulig  <martin@ximian.com>
18243
18244         * threads.h (MonoThreadCallbacks): Added `thread_created'.
18245
18246         * threads.c (mono_thread_new_init): Call `thread_created' in the
18247         mono_thread_callbacks.
18248
18249 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
18250
18251         * loader.h: added marshalbyrefobject_class to mono_defaults
18252         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
18253         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
18254           generation of output parameters.
18255           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
18256         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
18257           contextbound and the target object belongs to the context of the caller.
18258         * object.h: added context and unwrapped_server variables in MonoRealProxy.
18259         * object.c: Implemented support for interfaces and abstract classes
18260           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
18261           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
18262
18263 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
18264
18265         * class.h class.c (mono_class_is_subclass_of): New function.
18266         
18267         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
18268         routines for most common case (calls from ArrayList::ToArray).
18269
18270         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
18271         routine so programs which call Environment::Exit() can be profiled.
18272
18273         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
18274         Added MONO_ARCH_SAVE_REGS.
18275
18276         * icall.c (ves_icall_type_is_subtype_of): Use new function.
18277
18278 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
18279
18280         * blob.h: Add a couple of new MonoType types definitions.
18281
18282         * tabledefs.h: Add a couple of new call convs.
18283
18284 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
18285
18286         * reflection.h (MonoReflectionDynamicAssembly): track changes in
18287         the layout of the class.
18288
18289         * reflection.c (alloc_table): double the size on overflow to avoid
18290         unnecessary copying.
18291
18292         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
18293         avoid filling out metadata tables and blobs. Also set mb->ilgen to
18294         null so it can be garbage collected.
18295         
18296 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
18297
18298         * reflection.c (mono_reflection_get_type): Return the resolved type
18299         only if it is in the assembly we searched.
18300
18301         * reflection.c (ensure_runtime_vtable): Initialize method slots.
18302
18303         * class.c (mono_class_setup_vtable): Set the slot of the overriding
18304         method.
18305
18306 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18307
18308         * appdomain.c:
18309         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
18310         the right one is 'file:///blah', but MS allows it.
18311         * assembly.c:
18312         (mono_assembly_open): allow 'file://blah'
18313
18314         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
18315
18316 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
18317
18318         * socket-io.c: fixes bug #40310.
18319
18320 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
18321
18322         * reflection.c (mono_reflection_parse_type): handle deeply nested
18323         types correctly.
18324
18325         * reflection.c (mono_image_create_token): Use unique token values
18326         since they will be put into a hash table.
18327
18328         * class.c (mono_class_setup_vtable): If a method occurs in more than
18329         one place in the vtable, and it gets overriden, then change the
18330         other occurances too.
18331
18332         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
18333         object as return type.
18334
18335 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
18336
18337         * icall.c: Deleted "ToString" implementation for double and float
18338         because they are full implemented in managed code.
18339
18340 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
18341
18342         * reflection.c, reflection.h: implemented and exported functions
18343         to retrieve info about custom attributes.
18344
18345 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18346
18347         * appdomain.c: moved Uri handling to assembly.c
18348         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
18349         work when using a file Uri in *nix and windows.
18350
18351         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
18352         GetReferencedAssemblies.
18353
18354 2003-03-18  Dick Porter  <dick@ximian.com>
18355
18356         * icall.c: Rename a couple of internal calls
18357
18358         * threads.c: Set the thread state to Stopped when a thread exits.
18359         Fixes bug 39377.
18360
18361 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
18362
18363         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
18364         New icall.
18365
18366         * object.c (mono_class_vtable): fix warning.
18367
18368 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
18369
18370         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
18371
18372         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
18373         memory.
18374         (method_encode_clauses): Create exception info structures in the right
18375         order.
18376         (mono_reflection_setup_internal_class): Initialize supertypes field.
18377
18378         * class.c object.c: Handle interfaces which implement other interfaces 
18379         correctly.
18380
18381         * class.h class.c: Move the supertypes array initialization code into 
18382         a separate function so it can be used for dynamic types too. Also call
18383         it earlier, in mono_class_init(), since it can be used before the
18384         type is initialized.
18385
18386 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18387
18388         * Makefile.am:
18389         * assembly.c:
18390         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
18391
18392         * appdomain.c:
18393         * appdomain.h:
18394         * marshal.c:
18395         * object.c: remove warnings.
18396
18397 2003-03-13  Martin Baulig  <martin@ximian.com>
18398
18399         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
18400         (MonoDebugLexicalBlockEntry): New types.
18401
18402         * debug-mono-symfile.c
18403         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
18404
18405 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18406
18407         * process.c: ret can be any non-zero value accroding to MS doc.
18408
18409 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
18410
18411         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
18412         fixing a warning for a miss-used prototype, would have cause
18413         random memory corruption.
18414
18415 2003-03-07  Martin Baulig  <martin@ximian.com>
18416
18417         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
18418         getting really annoying ....
18419
18420 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
18421
18422         * reflection.c (fixup_method): added support for array methods.
18423
18424 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
18425
18426         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
18427         (pointed out by Michael Adams).
18428
18429 2003-03-04  Dick Porter  <dick@ximian.com>
18430
18431         * icall.c: Temporarily reverted the Double and Single ToString()
18432         change, because it broke nunit.
18433
18434 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
18435
18436         * object.h, threads.h: make include files compatible with C++
18437         (patch by Jerome Laban <jlaban@wanadoo.fr>).
18438
18439 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
18440
18441         * icall.c: Erased ToString helper functions for Double and Single.
18442         Now, that implementations ar all in managed code (Double and Single
18443         Formatters).
18444
18445 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
18446
18447         * appdomain.c: Added method for initializing the default context of
18448         a domain. Added internal call for getting the default context.
18449         * appdomain.h: Added context variable in MonoDomain struct.
18450         * domain.c: mono_domain_set also sets the default context of the domain
18451         * icall.c: Mapped internal method InternalGetDefaultContext.
18452         * object.c: mono_object_get_virtual_method returns always a remoting
18453         wrapper if the object is a transparent proxy.
18454         mono_runtime_invoke_array: when creating an object by calling the
18455         constructor, if the created object is a proxy, then the constructor should
18456         be called using the a remoting wrapper.
18457
18458 2003-03-03  Dick Porter  <dick@ximian.com>
18459
18460         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
18461         variable so it compiles on solaris.  Problem spotted by
18462         Christopher Taylor <ct@cs.clemson.edu>
18463
18464 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18465
18466         * appdomain.c:
18467         (get_info_from_assembly_name): don't leak value.
18468
18469         * icall.c:
18470         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
18471         result.
18472
18473 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
18474
18475         * assembly.c: export mono_image_load_references ().
18476         * class.c: handle function pointers. mono_class_from_name() now
18477         supports nested type names directly.
18478
18479 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
18480
18481         * reflection.h reflection.c: Encode already created dynamic methods 
18482         and fields correctly as a DEF instead of a REF.
18483
18484         * reflection.c: Get rid of the force_ref argument to 
18485         mono_image_typedef_or_ref since it was wrong in the first place.
18486
18487         * string-icalls.c: add error checking to string constructors according
18488         to the MSDN docs.
18489
18490         * reflection.c: Emit types in the order their TypeBuilders were 
18491         created. Previously, a new table index was assigned to each type before
18492         the tables were emitted. This was wrong because the signature blob
18493         might already refer to a type by its original table index.
18494
18495 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
18496
18497         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
18498         change.
18499         
18500 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18501
18502         * Makefile.am: make assemblies dir have \ instead of / on windows.
18503
18504 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
18505
18506         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
18507         iterate over the NESTEDCLASS table using a linear search since the
18508         table is not guaranteed to be sorted by the secondary key.
18509
18510         * class.c (mono_class_create_from_typedef): fixed up call to
18511         mono_metadata_nesting_typedef.
18512         
18513 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
18514
18515         * marshal.c (mono_string_to_byvalstr): clear the memory as
18516         suggested by Jerome Laban <jlaban@wanadoo.fr>
18517
18518 2003-02-26  Dick Porter  <dick@ximian.com>
18519
18520         * process.c: Cope with padding in .rsrc blocks
18521
18522 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
18523
18524         * metadata.h: reverted the filter_len change, it breaks reflection
18525         
18526 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
18527
18528         * metadata.h: added a new field to store the filter_len
18529         
18530
18531 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
18532
18533         * reflection.c: handle custom attributes for types and members
18534         created with Reflection.Emit (bug#38422).
18535
18536 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
18537
18538         * reflection.c: define RTSpecialName automatically for constructors for
18539         compatibility with MS.NET.
18540
18541         * reflection.c (mono_reflection_create_runtime_class): initialize
18542         nested_in field of dynamically created classes.
18543
18544 2003-02-22  Martin Baulig  <martin@ximian.com>
18545
18546         * debug-mono-symfile.h: Incremented version number.
18547
18548 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
18549
18550         * object.h icall.c process.c: fix warnings.
18551
18552 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
18553
18554         * appdomain.h appdomain.c:
18555         (mono_domain_try_type_resolve): split the 
18556         name_or_tb argument into a name and a tb argument.
18557         (mono_domain_has_type_resolve): new function to check whenever the
18558         application has registered a TypeResolve event handler.
18559         
18560         * icall.c reflection.h reflection.c: move the type resolve logic into
18561         mono_reflection_get_type () so it will be invoked when 
18562         Assembly::GetType () is called.
18563
18564         * reflection.c:
18565         (mono_reflection_get_type): renamed to get_type_internal.
18566         (mono_reflection_get_type): fixed type name generation so it works 
18567         for nested types too.
18568         (mono_reflection_get_type): call has_type_resolve () to avoid the 
18569         costly type name generation if there is no resolve event handler.
18570
18571 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
18572
18573         * class.c, image.c: load exported types from file references.
18574
18575 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
18576
18577         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
18578           used to cache the managed methods used to create proxies and make 
18579           remote invocation of methods.
18580         * class.h: Added in MonoVTable a flag to indicate that a class needs 
18581           to be remotely created.
18582         * object.c: Modified the method mono_class_vtable(). It now initializes 
18583           the remote flag of the vtable. Modified mono_object_new_specific(), 
18584           so now it checks the remote flag.
18585         * icall.c: Added a couple of internal methods, one for enabling instance 
18586           creation interception for a type, and one for creating objects bypassing
18587           the remote check.
18588
18589 2003-02-18  Martin Baulig  <martin@ximian.com>
18590
18591         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
18592         New interncall to get a method's metadata token.
18593
18594         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
18595         New interncall for the debugger.
18596
18597 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
18598
18599         * class.c (mono_class_setup_vtable): allocate supertype array
18600
18601 2003-02-18  Martin Baulig  <martin@ximian.com>
18602
18603         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
18604
18605 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18606
18607         * reflection.c:
18608         (assembly_name_to_aname): jump over unknown properties (i've found
18609         something like: 'type, assembly, version=xxx, custom=null, public...',
18610         so now will ignore custom=null and still get the rest of the values).
18611
18612 2003-02-17  Dick Porter  <dick@ximian.com>
18613
18614         * threads.c: Have Thread.Start() wait for a semaphore to signal
18615         that the thread has set up all its local data.  This fixes bug
18616         34323, where Abort() raced the new thread's TLS data.
18617
18618         Also removes the handle_store() call from start_wrapper, because
18619         threads are now always created suspended and there is no longer a
18620         race between the parent and child threads to store the info.
18621
18622 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
18623
18624         * image.c: explain the #- heap issue in a message, hopefully
18625         avoiding FAQs on mono-list.
18626
18627 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18628
18629         * icall.c:
18630         (GetEntryAssembly): if the domain has not invoked
18631         AppDomain.ExecuteAssembly yet, return the assembly of the default
18632         AppDomain.
18633
18634 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
18635
18636         * class.c (mono_ldtoken): make it work in dynamic assemblies.
18637
18638 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
18639
18640         * metadata.c, reflection.c: simple speedup to type hash
18641         and equals code.
18642
18643 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
18644
18645         * image.c, image.h, class.c, assembly.c: move module loading
18646         to MonoImage. When loading metadata, consider alignemnet from
18647         the start of metadata, not from the metadata address in memory.
18648
18649 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
18650
18651         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
18652         AssemblyBuilder objects. Factored out custom attribute creation into
18653         a separate function.
18654         (create_custom_attr): new function to create custom attributes.
18655
18656 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
18657
18658         * Makefile.am: Got tired of typing the full pathname to pedump.
18659         Until there is another option, am installing this.
18660
18661 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
18662
18663         * class.c (class_compute_field_layout): always set field->parent 
18664         (mono_ldtoken): use mono_defaults.fieldhandle_class;
18665
18666 2003-02-11  Dick Porter  <dick@ximian.com>
18667
18668         * threads-types.h:
18669         * monitor.c: Rewrote Monitor, making lock much faster and
18670         Pulse/Wait work as specified.  Also uses much fewer handles, and only
18671         creates them as needed.
18672
18673         * exception.c: Added SynchronizationLockException
18674
18675         * threads.c: Deleted old Monitor implementation.  The new one is
18676         in a new file.
18677
18678 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
18679
18680         * class.c: handled TypedReference type code. Set the correct size for
18681         class data. Setup interface_offsets for interface classes, too.
18682
18683 2003-02-09  Martin Baulig  <martin@ximian.com>
18684
18685         * debug-mono-symfile.h: Reflect latest symbol writer changes.
18686
18687 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
18688
18689         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
18690         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
18691         * object.c: fixed mono_object_get_virtual_method () for interfaces.
18692         * verify.c: check for code that runs after the end of the method.
18693
18694 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
18695
18696         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
18697         "System.Math::Round2".
18698         * sysmath.h: Added Floor, Round and Round2 definitions.
18699         * sysmath.c: Modified certain functions that were not 100% compliant
18700         with MS.NET (math precision) and added the implementation of Floor,
18701         Round and Round2.
18702
18703 2003-02-07  Martin Baulig  <martin@ximian.com>
18704
18705         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
18706
18707 2003-02-07  Martin Baulig  <martin@ximian.com>
18708
18709         * debug-mono-symfile.c: Reflected latest symwriter changes.
18710         (mono_debug_create_mono_symbol_file): Removed.
18711         (mono_debug_open_mono_symbol_file): Take an argument which
18712         specifies whether to create a dynamic symbol file.
18713
18714 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
18715
18716         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
18717
18718 2003-02-05  Martin Baulig  <martin@ximian.com>
18719
18720         * reflection.c (mono_image_build_metadata): Make this public,
18721         protect it against being called multiple times, don't create
18722         resources and don't build the compressed metadata here.
18723         (mono_image_create_pefile): Do this here.
18724
18725         * icall.c
18726         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
18727
18728 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18729
18730         * socket-io.c: fixed bug #36322.
18731
18732 2003-02-06  Piers Haken <piersh@friskit.com>
18733
18734         * appdomain.[ch]:
18735         * class.h:
18736         * debug-mono-symfile.c:
18737         * icall.c:
18738         * loader.c:
18739         * mono-config.c:
18740         * monosn.c:
18741         * reflection.c:
18742         * socket-io.c: warning cleanups
18743
18744 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
18745
18746         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
18747         function. works like remoting invoke, but does a check for the Proxy first.
18748
18749 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
18750
18751         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
18752
18753 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
18754
18755         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
18756         array of pointers.
18757         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
18758         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
18759
18760         * object.c (mono_store_remote_field_new): used by the new jit
18761         instead of mono_store_remote_field
18762         (mono_load_remote_field_new): used by the new jit
18763         instead of mono_load_remote_field
18764
18765 2003-02-05  Patrik Torstensson
18766
18767         * appdomain.c: changed unload to take the domain id instead
18768         of domain
18769         
18770         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
18771
18772
18773 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18774
18775         * appdomain.c: don't look for assemblies in ApplicationBase if
18776         PrivateBinPathProbe is set.
18777
18778 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18779
18780         * object.c: make the first argument in main_args contain the absolute
18781         path to the assembly. Fixes bug #37511.
18782
18783 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18784
18785         * icall.c: get correct UTC offset for countries not using daylight
18786         time saving. Fixes bug #30030.
18787
18788 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18789
18790         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
18791         and 1 are the family).
18792
18793 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
18794
18795         * icall.c (ves_icall_InternalExecute): removed wrong assertion
18796
18797         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
18798
18799 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
18800
18801         * reflection.c: added support for SignatureHelper tokens, which is
18802         needed by the Calli opcode.
18803
18804         * reflection.h: track changes to SignatureHelper class.
18805
18806         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
18807
18808 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18809
18810         * appdomain.c: fixed loading assemblies from PrivateBinPath.
18811
18812 2003-02-03  Patrik Torstensson
18813         * appdomain.[c|h], domain.c : 
18814          - Added support for getting a domain via domain id
18815          - Support for setting and getting domain from System.AppDomain 
18816            (used in cross appdomain channel)
18817          - Added support for get/set for a MonoAppContext on a thread 
18818            (Context class in System.Runtime.Remoting.Contexts),
18819          - Removed hack in Get/SetData and ExecuteAssembly.
18820         
18821         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
18822         the managed world to get control when a proxy is created.
18823
18824         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
18825         
18826 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
18827
18828         * icall.c
18829         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
18830         Populate the codebase field as well.
18831
18832 2003-02-02  Martin Baulig  <martin@ximian.com>
18833
18834         * debug-mono-symfile.c
18835         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
18836         (mono_debug_symfile_add_method): Allow interncalls.
18837
18838 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18839
18840         * icall.c: throw parse exception if strtod fails or the string is empty.
18841
18842 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
18843
18844         * marshal.c: handle object type separately from defined
18845         class types.
18846
18847 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
18848
18849         * marshal.c: handle NATIVE_LPSTR for strings when it's
18850         explicitly specified.
18851
18852 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
18853
18854         * reflection.c, reflection.h, icall.c: setup the reflection
18855         handle cache for ModuleBuilders and AssemblyBuilders.
18856
18857 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
18858
18859         * reflection.c (reflection_methodbuilder_to_mono_method): set
18860         pinvoke flag
18861
18862 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18863
18864         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
18865
18866 2003-01-29  Dick Porter  <dick@ximian.com>
18867
18868         * threads.c: No need for the fake_thread kludge now that Thread
18869         doesn't run a class constructor
18870         
18871 2003-01-29  Dick Porter  <dick@ximian.com>
18872
18873         * threads.c: Use g_direct_hash instead of the rather bogus
18874         g_int_hash
18875
18876 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
18877
18878         * marshal.c (mono_marshal_get_native_wrapper): add check for null
18879         (fix pinvoke12.exe)
18880         (mono_marshal_get_struct_to_ptr): generate valid IL code
18881         (mono_marshal_get_ptr_to_struct): generate valid IL code
18882         (*): correctly set sig->pinvoke, we need to memdup the signature
18883         to do that
18884
18885 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
18886
18887         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
18888         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
18889
18890 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
18891
18892         * profiler.c: provide more callers information.
18893
18894 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
18895
18896         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
18897
18898         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
18899
18900         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
18901
18902 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18903
18904         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
18905         exception instead of going into an infinite loop on dates which it 
18906         can't yet handle.
18907
18908         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
18909         out-of-range exception if needed.
18910
18911         * class.c (mono_class_setup_vtable): allow a virtual method to provide
18912         an implementation for an interface method and to override an inherited
18913         method at the same time. 
18914         Imagine a scenario when a virtual method is used to override a
18915         virtual abstract method in a parent class, and this same method 
18916         provides an implementation for an method inherited from an interface. 
18917         In this case, the interface resolution code will set im->slot, which 
18918         means that the virtual method override pass will skip this method 
18919         which means a pointer to the abstract method inherited from the parent
18920         will remain in the vtable of this non-abstract class.
18921
18922         * class.c: (mono_class_setup_vtable): continue search for a real 
18923         method if only an abstract method is found.     
18924
18925 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
18926
18927         * reflection.c: add size to encoding for ByValStr and ByValArray
18928         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
18929
18930 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18931
18932         * class.c (mono_class_setup_vtable): pass the override info as an
18933         argument.
18934
18935         * class.c (mono_class_setup_vtable): set the slot of overriding methods
18936         correctly.
18937         
18938         * reflection.c (ensure_runtime_vtable); add support for method 
18939         overrides.
18940         
18941 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18942
18943         * reflection.c (resolution_scope_from_image): Hack to work to work with
18944         dynamic assemblies.
18945
18946         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
18947         added a 'force_ref' argument to force this function to allways return 
18948         a TypeRef. This is needed by mono_image_get_memberref_token ().
18949         
18950 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18951
18952         * reflection.c (mono_image_get_type_info): interfaces really don't have
18953         a parent.
18954
18955         * reflection.c (mono_image_basic_init): fill out missing fields of
18956         image structure.
18957
18958         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
18959         dynamic assemblies. This is required so dynamic assemblies show up in
18960         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
18961         Type::GetType() etc. This is consistent with MS behaviour.
18962
18963         * image.c image.h reflection.c: add newly created classes to the name 
18964         cache so mono_class_get () will find them.      
18965
18966 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18967
18968         First part of changes to get IKVM.NET running under mono.
18969         
18970         * appdomain.h, appdomain.c: added new function 
18971         mono_domain_try_type_resolve() which will emit TypeResolve events. 
18972         This function will call AppDomain::DoTypeResolve to do the actual work.
18973
18974         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
18975         moved existing code dealing with dynamic tokens to a new function 
18976         called mono_reflection_lookup_dynamic_token (). This function will 
18977         raise TypeResolve events when appropriate. Since reflection.c is not 
18978         part of libmetadata, a new hook function called 
18979         mono_lookup_dynamic_token() is added to class.c which will call this.
18980
18981         * assembly.h assembly.c: make the invoke_load_hook function public,
18982         so it can be called for dynamic assemblies.
18983
18984         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
18985
18986         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
18987         type isn't found.
18988
18989         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
18990         MonoGHashTable, since it contains pointers to objects which the GC 
18991         needs to track.
18992
18993         * assembly.c (search_loaded): remove unused variable.
18994         
18995 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
18996
18997         * object.c: fixed issue exposed by gcc-generated IL programs
18998         that use RVA data for pointers.
18999
19000 2003-01-25  Martin Baulig  <martin@ximian.com>
19001
19002         * threads.c (start_wrapper): Moved the initialization of
19003         `start_func' above the mono_new_thread_init() call to which we
19004         pass it as argument.
19005
19006 2003-01-24  Martin Baulig  <martin@ximian.com>
19007
19008         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
19009         the MonoThread pointer.
19010
19011 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
19012
19013         * icall.c: Rename `PowImpl' to Pow.
19014
19015 2003-01-23  Dick Porter  <dick@ximian.com>
19016
19017         * threads.c (start_wrapper): Create a Thread object if needed, so
19018         the Main() thread can do the class initialisation in a subthread
19019         that has been set up to allow managed code execution.
19020
19021         Pass the thread ID instead of the MonoThread pointer to the thread
19022         start and attach callbacks.  This change is required, because the
19023         jit thread start callback must be called _before_ the Thread
19024         object can be created.
19025         
19026         (mono_thread_init): Removed much object creation code that is no
19027         longer needed.  No managed code is called from here now.
19028
19029         * object.c (mono_runtime_exec_managed_code): Create a subthread
19030         for Main, and call back to the runtime to use it.
19031         Set the exit code when Main exits.
19032
19033         * gc.c: Make sure domain finalisation happens in a subthread.
19034         Re-enable threaded GC, fixing bug 31333 (again).
19035
19036         * environment.c: System.Environment internall calls (so far just
19037         ExitCode is here, the others are still in icall.c)
19038
19039         * appdomain.c (mono_runtime_cleanup): All threads running managed
19040         code should have finished before mono_runtime_cleanup() is
19041         reached, so no need to clean up threads.
19042
19043 2003-01-22  Martin Baulig  <martin@ximian.com>
19044
19045         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
19046         `gpointer func' arguments.      
19047         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
19048         but added `MonoThread *thread' argument.
19049         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
19050
19051         * threads.c (mono_new_thread_init): Added `gpointer func' argument
19052         and pass it to the mono_thread_start_cb callback.
19053         (mono_install_thread_callbacks): New public function to install a
19054         set of callbacks which are set by the debugger.
19055         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
19056
19057 2003-01-22  Martin Baulig  <martin@ximian.com>
19058
19059         * Makefile.am: Install debug-mono-symfile.h.
19060
19061 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
19062
19063         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
19064
19065 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
19066
19067         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
19068         * class.c (mono_ptr_class_get): correctly set access levels of pointers
19069         (mono_array_class_get): correctly set access levels of arrays
19070
19071 2003-01-20      Patrik Torstensson
19072         * image.h (MonoAssemblyName): changed major, minor, build, revision
19073         from signed to unsigned.
19074
19075 2003-01-20  sean kasun <skasun@azstarnet.com>
19076
19077         * reflection.c (load_cattr_value): Now this handles
19078         MONO_TYPE_SZARRAY.  Fixes bug #35629
19079
19080 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
19081
19082         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
19083         integer value
19084
19085 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19086
19087         * decimal.c: fixed bug #26056.
19088
19089 2003-01-17  Martin Baulig  <martin@ximian.com>
19090
19091         * gc.c: Raise an ExecutionEngineException instead of using g_error().
19092
19093 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19094
19095         * exception.[ch]:
19096         (mono_get_exception_type_initialization): new function.
19097
19098         * object.c: throw a TypeInitializationException when an exception is
19099         thrown invoking the class constructor.
19100
19101 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19102
19103         * reflection.c: fixed attribute reading.
19104
19105 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19106
19107         * icall.c:
19108         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
19109         provided, look for the type in the calling assembly and then in
19110         mscorlib; if the assembly name is provided, only try that one.
19111
19112 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
19113
19114         * object.c: register the vtable before there is a chance it's
19115         queried again recursively.
19116
19117 2003-01-13  Duncan Mak  <duncan@ximian.com>
19118
19119         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
19120         gc-internal.h. 
19121         
19122 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
19123
19124         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
19125
19126 2003-01-11  Martin Baulig  <martin@ximian.com>
19127
19128         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
19129         this to 20 for the release.
19130
19131 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
19132
19133         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
19134
19135         * loader.c (mono_method_get_marshal_info): bug fix
19136
19137         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
19138         structures with explicit layout
19139
19140 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
19141
19142         * profiler.c: made the output more readable (and sorted). 
19143         Added caller information for the allocation profiler.
19144
19145 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
19146
19147         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
19148
19149 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19150
19151         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
19152         to get value types.
19153         
19154 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
19155
19156         * object.c, profiler.h, profiler.c, profiler-private.h:
19157         Added object allocation profiler.
19158
19159 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
19160
19161         * reflection.h, reflection.c: handle global methods.
19162         Compress blob entries.
19163
19164 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
19165
19166         * marshal.c: fix compilation.
19167
19168 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
19169
19170         * loader.c (mono_method_get_marshal_info): impl.
19171
19172         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
19173
19174 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19175
19176         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
19177         for reference types.
19178
19179 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
19180
19181         * loader.c: fixed off by one error in loaded parameter names.
19182
19183 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
19184
19185         * marshal.c (mono_marshal_get_icall_wrapper): like
19186         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
19187         instead of a MonoMethod.
19188
19189 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19190
19191         * decimal.c: fixed bug #36537.
19192
19193 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
19194
19195         * marshal.c: throw a missing method exception if a
19196         P/Invoke method is not found.
19197
19198 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
19199
19200         * icall.c: allow a null this for constructors.
19201
19202 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
19203
19204         * icall.c: raise the proper exceptions if the arguments to the
19205         internal Invoke are incorrect.
19206
19207 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
19208
19209         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
19210
19211 2003-01-03  Martin Baulig  <martin@ximian.com>
19212
19213         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
19214
19215 2002-12-31  Martin Baulig  <martin@ximian.com>
19216
19217         * debug-mono-symfile.c: Completely rewrote the type section.
19218         Instead of using individual malloc()ed fields, we use one big
19219         continuous memory area and offsets into this area.
19220         See the comments in the source code for details.
19221
19222 2002-12-30  Martin Baulig  <martin@ximian.com>
19223
19224         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
19225
19226 2002-12-30  Martin Baulig  <martin@ximian.com>
19227
19228         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
19229         line number table in this data blob instead of using an external
19230         pointer.
19231
19232 2002-12-28  Martin Baulig  <martin@ximian.com>
19233
19234         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
19235
19236 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
19237
19238         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
19239         as a boxed return type.
19240
19241 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
19242
19243         * appdomain.c
19244         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
19245         g_build_filename to properly get separators on the filename created.
19246
19247         * object.h: Small change, introduce MonoMarshalByRefObject to
19248         track the layout of that structure in the C# universe as we make
19249         changes there.
19250
19251 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
19252
19253         * object.c: removed assert to allow static fields on interfaces.
19254         * loader.c: a TypeSpec may be used for any type, not just arrays.
19255
19256 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19257
19258         * class.c, class.h: added mono_class_array_element_size ().
19259         Ignore static methods in interfaces.
19260
19261 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19262
19263         * threads.c: fixed the build under cygwin.
19264
19265 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
19266
19267         * reflection.c: handle nullref constants. Allocate keys for
19268         reflection handles with the GC.
19269
19270 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
19271
19272         * threads.c, threads.h: added mono_thread_get_abort_signal()
19273         to get a suitable signal for thread abort.
19274
19275 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
19276
19277         * metadata.c: fix handling of ExportedType table.
19278
19279 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19280
19281         * icall.c: added WriteWindowsDebugString internal call.
19282
19283 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19284
19285         * reflection.h: added fields to match C# implementation.
19286
19287 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19288
19289         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
19290
19291 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
19292
19293         * gc.h, gc-internal.h: Rename header for GC internal calls to
19294         gc-internal.h from gc.h as to not clash with Boehm GC having its
19295         header installed as <gc.h> in outside include paths.
19296         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
19297         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
19298
19299 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19300
19301         * icall.c: assign minor, build and revision in FillName.
19302
19303 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
19304
19305         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
19306         Added support for running code generated by Reflection.Emit.
19307
19308 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19309
19310         * appdomain.c: check for NULL argument in LoadFrom.
19311
19312 2002-12-10  Dick Porter  <dick@ximian.com>
19313
19314         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
19315
19316 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19317
19318         * appdomain.c: fix buglet when building exe file name.  Handle full
19319         assembly name (needed after latest changes to AssemblyName).
19320         * image.c:
19321         (mono_image_close): free some hashtables.
19322
19323 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
19324
19325         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
19326         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
19327         on some systems (redhat 7.3) 
19328
19329 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
19330
19331         * threads.c: delete the critical section of a sync block,
19332         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
19333
19334 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
19335
19336         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
19337
19338 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19339
19340         * appdomain.[ch]: handle the assembly preload event to try loading the
19341         assemblies using the paths we have in the current domain.
19342
19343         * assembly.[ch]: created an assembly preload hook that is called to try
19344         loading the assembly by other means that the ones provided here.
19345
19346         * domain.c: initialize the domain search path.
19347
19348         From now on, assemblies (TODO: except corlib and System) are loaded
19349         according to these rules when using mono_assembly_load ():
19350
19351                 1. It tries to load the assembly from the ApplicationBase
19352                 of the current domain appending .dll and .exe (TODO: have to
19353                 try loading from name/name.dll and name/name.exe).
19354
19355                 2. It tries the search path specified in PrivateBinPath for the
19356                 current domain (if any).
19357
19358                 3. Previous behavior.
19359
19360 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
19361
19362         * icall.c: implemented GetInterfaceMap() related icall.
19363         * domain.c, loader.h: load MethodInfo in mono_defaults.
19364
19365 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
19366
19367         * gc.c: disable the finalizer thread for now, untill all the issues
19368         with it are resolved.
19369
19370 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19371
19372         * string-icalls.c: handle embedded nulls in string ctor when the
19373         length is specified.
19374
19375 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
19376
19377         * class.c: look for explicit interface implementation in parent
19378         classes, too.
19379
19380 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
19381
19382         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
19383
19384 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
19385
19386         * gc.c: protect handles with a critical section.
19387
19388 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19389
19390         * icall.c:
19391         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
19392         parameters. If no assembly specified, try getting the type from all
19393         the assemblies in the current domain, else, load the assembly and get
19394         the type from it.
19395
19396 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19397
19398         * marshal.c: applied patch from Aleksey Demakov that fixes
19399         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
19400
19401 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19402
19403         * icall.c: fixed get_location.
19404
19405 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
19406
19407         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
19408         declarations to make it work with older gcc. 
19409
19410         * loader.c (mono_get_method): set signature->pinvoke for native calls
19411
19412 2002-11-20  Dick Porter  <dick@ximian.com>
19413
19414         * threads.c (mono_thread_init): Set the main thread's handle
19415
19416 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
19417
19418         * gc.c: allow compilation without GC support. Changed to match the
19419         mono coding style.
19420
19421 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19422
19423         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
19424
19425 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
19426
19427         * reflection.c: set a public key token on the core assemblies.
19428
19429 2002-11-18  Dick Porter  <dick@ximian.com>
19430
19431         * threads.c: Split out some thread initialisation so that other
19432         files can set the start callback function.
19433
19434         * gc.c: Run finalisers in a separate thread, to avoid stack
19435         overflow.  Fixes bug 31333.
19436
19437         * appdomain.c: Set up GC finalisation thread.
19438
19439         * reflection.c: 
19440         * object.c: 
19441         * domain.c: Use gc.h macros for GC_malloc
19442         
19443 2002-11-15  Dick Porter  <dick@ximian.com>
19444
19445         * threadpool.c: 
19446         * threads.c:
19447         * appdomain.c: Removed mono_runtime_init_with_attach(),
19448         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
19449         merging the extra parameter with the existing function.  Removed
19450         unneeded code in mono_thread_attach().
19451
19452 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
19453
19454         * image.c (mono_image_loaded_by_guid): a method to get loaded
19455         images by guid. 
19456         (load_metadata_ptrs): we store the guid as string.
19457
19458 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
19459
19460         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
19461
19462         * metadata.c (mono_guid_to_string): imported method form Zoltan
19463         Varga (slightly modified)
19464
19465         * assembly.c (mono_assembly_open): load precompiled code
19466
19467         * loader.h (MonoMethod): we store the method token for use in the
19468         aot compiler. 
19469
19470 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19471
19472         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
19473         the hook function called when an assembly is loaded.
19474         
19475         * domain.c: Modified file.
19476         (mono_domain_assembly_load): removed hash table insertion of assemblies.
19477
19478         Fixes bug #33196.
19479
19480 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
19481
19482         * reflection.c: Map PEFileKind to the value expected by the WinNT
19483         image loader. 
19484
19485 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19486
19487         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
19488         Read until the buffer is filled completely.
19489
19490 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19491
19492         * icall.c: implemented MonoType.InternalGetEvent ().
19493
19494 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19495
19496         * appdomain.c: implemented InitAppDomainSetup. Delayed
19497         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
19498         the entry_assembly.
19499
19500         * assembly.c: base_dir is now an absolute path ending with
19501         G_DIR_SEPARATOR.
19502
19503         * icall.c: modified get_location according to the above changes.
19504
19505         * object.c: init AppDomain.SetupInformation for the default domain after
19506         we have the entry assembly.
19507
19508         * domain.c: when unloading a domain, setup = NULL.
19509
19510 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
19511
19512         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
19513
19514 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
19515
19516         * object.h, object.c: introduced mono_object_get_virtual_method ()
19517         to lookup the method invoked on an object when a callvirt is done on
19518         a method.
19519         * icall.c: make MethodInfo::Invoke() always do a virtual call.
19520
19521 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19522
19523         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
19524         current domain when loaded an assembly and failed to load it.
19525
19526         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
19527
19528 2002-10-31  Dick Porter  <dick@ximian.com>
19529
19530         * icall.c: 
19531         * file-io.h: 
19532         * file-io.c: Return the error status in a parameter, as the
19533         GetLastError() value has long since been blown away if we try and
19534         look it up in a subsequent internal call invocation.  Delete the
19535         GetLastError() internal call, because it's useless.
19536
19537 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
19538
19539         * class.[ch]: added cast_class to fix bug 29517
19540
19541 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
19542
19543         * marshal.c: create valid IL code in the filter clause:
19544         the new JIT is less forgiving:-)
19545
19546 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19547
19548         * icall.c: removed get_property internal call.
19549
19550 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
19551
19552         * appdomain.h domain.c: Added an ID to appdomains.
19553         
19554         * threads.c threads.h icall.c: Implement icall
19555         Thread:GetDomainID(), and remove unused icall 
19556         CurrentThreadDomain_internal.
19557
19558 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19559
19560         * icall.c: Don't recurse through the base types in GetConstructor.
19561         Fixes bug #32063. 
19562
19563 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
19564
19565         * mempool.h, mempool.c: added mono_mempool_empty() and
19566         mono_mempool_stats().
19567
19568 2002-10-23  Dick Porter  <dick@ximian.com>
19569
19570         * file-io.c: 
19571         * file-io.h: 
19572         * icall.c: Added MonoIO.GetFileType internal call
19573
19574 2002-10-17  Dick Porter  <dick@ximian.com>
19575
19576         * appdomain.c (mono_runtime_cleanup): Don't signal the async
19577         delegate semaphore before waiting for all threads to finish,
19578         because new threads can also call async delegates.  Fixes bug
19579         32004.
19580
19581         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
19582         of 3 seconds, in case another async job is queued.  (This part is
19583         needed because the bug fix reintroduced the 3s exit lag.)  This
19584         makes the mono_runtime_shutdown flag superfluous.
19585
19586 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
19587
19588         * reflection.c: include ehader size in method section headers.
19589         Really check for suplicated modules entries.
19590
19591 2002-10-17  Martin Baulig  <martin@gnome.org>
19592
19593         * debug-mono-symfile.c: Added back support for locals.
19594
19595 2002-10-14  Martin Baulig  <martin@gnome.org>
19596
19597         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
19598         MONO_TYPE_VOID.
19599
19600 2002-10-14  Martin Baulig  <martin@gnome.org>
19601
19602         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
19603         mono_class_get() instead of looking in the class cache. 
19604
19605 2002-10-13  Martin Baulig  <martin@gnome.org>
19606
19607         * debug-mono-symfile.c: Set version number to 28, include the
19608         signature in method names.
19609
19610 2002-10-13  Martin Baulig  <martin@gnome.org>
19611
19612         * debug-mono-symfile.h: Set version number to 27.
19613
19614 2002-10-11  Martin Baulig  <martin@gnome.org>
19615
19616         * gc.c: Don't register/unregister NULL pointers as disappearing links.
19617
19618 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19619
19620         * metadata.c, metadata.h: added helper function to allocate signatures.
19621
19622 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19623
19624         * icall.c: added internal call to get the location of machine.config.
19625
19626 2002-10-08  Martin Baulig  <martin@gnome.org>
19627
19628         * debug-mono-symfile.c: Ignore classes with a pending init for the
19629         moment.
19630
19631 2002-10-03  Dick Porter  <dick@ximian.com>
19632
19633         * threads.c: Freebsd pthread_t is a pointer
19634
19635 2002-10-03  Dick Porter  <dick@ximian.com>
19636
19637         * socket-io.c: Implemented GetHostName_internal
19638
19639 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19640
19641         * mono-config.c:
19642         (mono_config_parse_file): don't leak the text.
19643
19644 2002-10-02  Martin Baulig  <martin@gnome.org>
19645
19646         * debug-mono-symfile.c: Added support for methods.
19647
19648 2002-10-01  Martin Baulig  <martin@gnome.org>
19649
19650         * debug-mono-symfile.c: Don't emit methods and line numbers for
19651         the dynamic symbol file, just write the type table.  We can easily
19652         have an external helper program which creates a symbol file for an
19653         IL file.        
19654
19655 2002-10-01  Dick Porter  <dick@ximian.com>
19656
19657         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
19658         Only add the handle to the cleanup array when we're about to
19659         launch the thread.  Bug 31425 deadlocked when the test was run on
19660         mono under w32.
19661
19662 2002-10-01  Martin Baulig  <martin@gnome.org>
19663
19664         * debug-mono-symfile.c: Added support for properties.
19665
19666 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
19667
19668         * reflection.c: unaligned store fix from Mark Crichton
19669         <crichton@gimp.org>.
19670
19671 2002-09-27  Martin Baulig  <martin@gnome.org>
19672
19673         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
19674         New interncall.
19675
19676 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
19677
19678         * assembly.h, assembly.c: use a sane API to hook into the assembly
19679         loading process instead of a useless special-purpouse hack
19680         (ngen needs a hook, too, for example).
19681
19682 2002-09-27  Dick Porter  <dick@ximian.com>
19683
19684         * threads.c (mono_thread_init): Call GetCurrentProcess() so
19685         io-layer can set up some process handle info.  Not needed on w32,
19686         but doesn't hurt either.
19687
19688         * process.c: Pass the program name in the second parameter to
19689         CreateProcess, so the path is searched.  Include the working
19690         directory. Implemented process name, process enumeration, and some
19691         process detail internal calls.
19692         
19693         * icall.c: Added internal calls for process lookup, and some
19694         process details
19695
19696 2002-09-26  Martin Baulig  <martin@gnome.org>
19697
19698         * assembly.c (mono_install_open_assembly_hook): New global
19699         function to install a function to be invoked each time a new
19700         assembly is loaded.
19701         (mono_assembly_open): Run this callback function if set.
19702
19703         * debug-mono-symfile.c: Put back line numbers for the dynamic
19704         symbol file and also record the .il file as source file.  This
19705         allows us to install the temporary symbol file as `file.dbg' just
19706         like a compiler-generated one.
19707
19708 2002-09-26  Nick Zigarovich <nick@chemlab.org>
19709
19710         * Corrected typo in gc.c (BOHEM vs BOEHM).
19711
19712 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19713
19714         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
19715         GetProperties. Also avoid calling g_slist_length in GetProperties and
19716         GetMethods.
19717
19718 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
19719
19720         * reflection.c: avoid unaligned stores (bug spotted by
19721         Mark Crichton  <crichton@gimp.org>).
19722
19723 2002-09-25  Martin Baulig  <martin@gnome.org>
19724
19725         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
19726         instead of guint64 for addresses and added prologue/epilogue info.
19727
19728 2002-09-25  Martin Baulig  <martin@gnome.org>
19729
19730         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
19731         store line number info.  For the dynamic symbol file, we only need
19732         to provide the JIT generated dynamic line number info for the dynamic
19733         symbol file.
19734
19735 2002-09-25  Martin Baulig  <martin@gnome.org>
19736
19737         * debug-mono-symfile.h: Incremented version number.
19738
19739 2002-09-24  Martin Baulig  <martin@gnome.org>
19740
19741         * class.c (mono_debugger_class_init_func): New global function
19742         pointer variable.
19743         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
19744         call it.
19745
19746         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
19747         function.  This is called via the mono_debugger_class_init_func
19748         hook to add all types to the dynamic type table.
19749         (ves_icall_MonoDebugger_GetType): New interncall to get a class
19750         from its metadata token.
19751
19752         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
19753         New interncall for the debugger.
19754
19755 2002-09-24  Nick Drochak <ndrochak@gol.com>
19756
19757         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
19758         before using it in case it is null.
19759         
19760 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19761
19762         * metadata.c: allow custom modifiers in local var signatures
19763         (bug spotted by Zoltan Varga).
19764
19765 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
19766
19767         * class.c: deal with the <Module> class that may have a NULL vtable.
19768         Eliminate warnings.
19769
19770 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19771
19772         * image.c, image.h: more strong name helpers.
19773         * monosn.c: more work: convert pem keys to cryptoapi format.
19774
19775 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
19776
19777         * string-icalls.c: speedup IndexOf.
19778
19779 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19780
19781         * icall.c: updates from Zoltan.2.Varga@nokia.com.
19782
19783 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19784
19785         * icall.c: cleanup: use mono_object_domain ().
19786
19787 2002-09-23  Martin Baulig  <martin@gnome.org>
19788
19789         * debug-mono-symfile.c: Improved type support.
19790
19791 2002-09-22  Martin Baulig  <martin@gnome.org>
19792
19793         * debug-mono-symfile.c: Added support for reference types and strings.
19794
19795 2002-09-22  Martin Baulig  <martin@gnome.org>
19796
19797         * debug-mono-symfile.c: Started to work on the type table.
19798
19799 2002-09-21  Martin Baulig  <martin@gnome.org>
19800
19801         * debug-mono-symfile.c: Largely reworked the symbol table format.
19802         The symbol table is now incrementally updated each time a new
19803         method is added.  We're now also using our own magic and version
19804         so that you don't need to recompile all your classes if the
19805         dynamic table changes.
19806         (mono_debug_update_mono_symbol_file): Removed.
19807         (mono_debug_symfile_add_method): New function to add a method.
19808
19809 2002-09-21  Martin Baulig  <martin@gnome.org>
19810
19811         * icall.c
19812         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
19813         New interncall.
19814
19815         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
19816         New interncall to get a method from its metadata token.
19817
19818 2002-09-21  Martin Baulig  <martin@gnome.org>
19819
19820         * debug-mono-symfile.c: Create type table.
19821
19822 2002-09-20  Martin Baulig  <martin@gnome.org>
19823
19824         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
19825
19826 2002-09-20  Martin Baulig  <martin@gnome.org>
19827
19828         * debug-mono-symfile.c: Provide information about params and locals.
19829
19830 2002-09-20  Martin Baulig  <martin@gnome.org>
19831
19832         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
19833         New interncall.
19834
19835         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
19836         interncall to get a method from its metadata token.
19837
19838 2002-09-20  Martin Baulig  <martin@gnome.org>
19839
19840         * debug-mono-symfile.c: Added a few checks for method->header
19841         being non-NULL.  This should never happen, but for the moment
19842         let's use a g_warning() rather than a g_assert().
19843
19844 2002-09-19  Mark Crichton  <crichton@gimp.org>
19845
19846         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
19847         even if support for it isn't present.  Added an #ifdef to fix this.
19848
19849         * socket-io.c: Added checks back for Solaris support.
19850
19851 2002-09-19  Martin Baulig  <martin@gnome.org>
19852
19853         * debug-mono-symfile.c (read_string, write_string): Reflect latest
19854         changes in the symbol file format.
19855
19856 2002-09-18  Martin Baulig  <martin@gnome.org>
19857
19858         * debug-mono-symfile.c: Set version number to 21.
19859
19860 2002-09-18  Dick Porter  <dick@ximian.com>
19861
19862         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
19863         on netbsd.  Fixes bug 30051.
19864
19865 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19866
19867         * reflection.c:
19868         (set_version_from_string): little fix.
19869
19870 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19871
19872         * monosn.c, Makefile.am: added strong name utility.
19873         * reflection.h, reflection.c: implemented delayed signing,
19874         locale, version and hash id assembly attributes.
19875
19876 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
19877
19878         * loader.c, metadata.c: load param attributes in signatures.
19879
19880 2002-09-16  Martin Baulig  <martin@gnome.org>
19881
19882         * debug-mono-symfile.c: Added string table with all method names.
19883
19884 2002-09-14  Martin Baulig  <martin@gnome.org>
19885
19886         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
19887         fast method lookup.
19888
19889 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
19890
19891         * reflection.c: record the public key token of referenced assemblies.
19892
19893 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19894
19895         * image.c, image.h: added functions to get the strong name and the
19896         public key of an assembly.
19897         * pedump.c: use them.
19898
19899 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
19900
19901         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
19902
19903 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
19904
19905         * marshal.c (mono_marshal_get_managed_wrapper): Added
19906         MONO_TYPE_BOOLEAN 
19907
19908 2002-09-11  Martin Baulig  <martin@gnome.org>
19909
19910         * gc.c: Call GC_unregister_disappearing_link() on all links when
19911         finalizing them, this is necessary to aviod a crash in boehm's
19912         finalize handler.
19913
19914 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19915
19916         * gc.c: handle GetTarget for finalized objects spotted and fixed by
19917         nick@chemlab.org.
19918
19919 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
19920
19921         * icall.c: implemented MonoType::Module.
19922         * reflection.c, reflection.h: mono_module_get_object () from
19923         Tomi Pakarinen <tomi.pakarinen@welho.com>.
19924
19925 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
19926
19927         * icall.c: ignore overridden methods in GetMethods ().
19928         Fix for FieldInfo::SetValue().
19929         * object.c: handle float/double in runtime invoke.
19930
19931 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
19932
19933         * object.c: allow a constructor to be called again on an object.
19934
19935 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19936
19937         * class.h, class.c: move field layout code to it's own function and
19938         export it. Get an interface id earlier. Move fields in MonoClass
19939         so they are more cache friendly and align the bitfields.
19940         * loader.c: temporary handle get_param_names() for a runtime method.
19941         * reflection.c, reflection.h: more code to handle runtime creation of
19942         types.
19943
19944 2002-09-09  Martin Baulig  <martin@gnome.org>
19945
19946         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
19947         signature with the pinvoke field being set for the actual call.
19948
19949 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19950
19951         * icall.c: removed some unused icalls. Start of map of glib charsets
19952         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
19953
19954 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
19955
19956         * debug-helpers.c: break infinite loop (found and fixed by
19957         Holger Arnold <harnold@gmx.de>).
19958
19959 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
19960
19961         * icall.c: target may be null in create_delegate.
19962
19963 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19964
19965         * marshal.c: handle a boolean return type.
19966
19967 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19968
19969         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
19970
19971 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
19972
19973         * gc.c: fix weakreferences.
19974
19975 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
19976
19977         * icall.c: added icall to get default codepage.
19978
19979 2002-09-03  Dick Porter  <dick@ximian.com>
19980
19981         * threads.h: 
19982         * threads.c: Use MonoThread instead of MonoObject where
19983         apropriate.
19984
19985         Store running thread objects in a hash table, so that we have all
19986         the info to hand when waiting for them to finish
19987         (means we don't need OpenThread() any more, so mingw builds should
19988         be fully functional again.)
19989
19990         * verify.c:
19991         * object.h: Added thread ID to MonoThread
19992
19993 2002-09-03  Martin Baulig  <martin@gnome.org>
19994
19995         * icall.c (System.Reflection.Assembly::get_location): New interncall.
19996
19997 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19998
19999         * icall.c: fixed leak in get_temp_path. Thanks lupus.
20000
20001 2002-09-03  Martin Baulig  <martin@gnome.org>
20002
20003         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
20004         argument to store the end address of the disassembled instruction.
20005
20006         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
20007         here from debug-symfile.h.
20008         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
20009         JIT into this struct.
20010         (MonoSymbolFile): Added `char *image_file' field.
20011         (MonoDebugGetMethodFunc): Removed.
20012         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
20013         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
20014         (mono_debug_find_method): New method.
20015
20016         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
20017         create a full symbol file.
20018         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
20019         and static symbol files.
20020         (mono_debug_find_method): The symbol file keeps an internal method hash,
20021         call this to get a MonoDebugMethodInfo from a MonoMethod.
20022
20023         * debug-symfile.[ch]: Removed.
20024
20025 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
20026
20027         * image.c (do_mono_image_open): Remove linker version check.
20028
20029 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
20030
20031         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
20032         wrappers for instance methods.
20033         
20034 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20035
20036         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
20037
20038 2002-08-28  Dick Porter  <dick@ximian.com>
20039
20040         * Makefile.am: Export HOST_CC for w32 builds
20041
20042 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20043
20044         * file-io.c process.c: MonoString are null terminated, no
20045         need for mono_string_to_utf16() anymore.
20046
20047 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20048
20049         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
20050
20051 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
20052
20053         * icall.c, reflection.h: speedup System.MonoType.
20054
20055 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20056
20057         * reflection.c: allow null as the value of a string argument in
20058         custom attributes constructors.
20059
20060 2002-08-27  Martin Baulig  <martin@gnome.org>
20061
20062         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
20063         `trampoline_address' field.
20064
20065 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
20066
20067         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
20068         check (fixes bug #29486) 
20069
20070 2002-08-27  Martin Baulig  <martin@gnome.org>
20071
20072         * debug-mono-symfile.c: Changed the file format in a way that allows us
20073         open it read-only and to use a specially malloced area for all the
20074         dynamic data.  We can now also generate a symbol file on-the-fly if we're
20075         debugging IL code and there is no MCS generated symbol file for it.
20076
20077 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
20078
20079         * object.c: added a define for a good string and array
20080         creation speedup (not enabled by default because we need to deal with
20081         the synch stuff).
20082
20083 2002-08-26  Martin Baulig  <martin@gnome.org>
20084
20085         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
20086         function to create a dynamic symbol file.  This is used by the
20087         debugger to create a symbol file for IL code on-the-fly.
20088
20089 2002-08-26  Martin Baulig  <martin@gnome.org>
20090
20091         * loader.c (mono_lookup_pinvoke_call): Include the error message
20092         from g_module_error() in the error message.
20093
20094 2002-08-24  Martin Baulig  <martin@gnome.org>
20095
20096         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
20097         function to update the symbol file.  The symbol file is mmap()ed
20098         writable, but private.  This allows us to install the symbol file
20099         together with the assembly.
20100
20101 2002-08-24  Martin Baulig  <martin@gnome.org>
20102
20103         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
20104         but they can read the new symbol file format which mcs is now creating.
20105
20106         * debug-symfile.c (mono_debug_find_source_location): Moved to
20107         debug-mono-symfile.c; this is now operating on the new symbol file.
20108
20109 2002-08-23  Martin Baulig  <martin@gnome.org>
20110
20111         * debug-helpers.c (mono_method_desc_from_method): New function to get
20112         a MonoMethodDesc from a MonoMethod.
20113
20114 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
20115
20116         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
20117         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
20118
20119 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
20120
20121         * string-icalls.[ch]: make helper methods static.
20122
20123 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20124
20125         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
20126         types to it and to SetValueInternal.
20127
20128         * object.c: Moved handle_enum label to its proper place. This was the
20129         f... bug! ;-)
20130
20131         This time i compiled mcs and gtk-sharp and they both work.
20132
20133 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20134
20135         * icall.c: reverted partially my previous patch until 
20136         object.c:set_value handles enums correcly.
20137
20138 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20139
20140         * icall.c:
20141         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
20142         (ves_icall_System_Environment_get_MachineName): removed warning when
20143         compiling under cygwin.
20144
20145 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20146
20147         * object.c: fixed field_get_value() for reference types.
20148
20149 2002-08-22  Dick Porter  <dick@ximian.com>
20150
20151         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
20152         Don't free a buffer while it's still needed.  Patch from Jonathan
20153         Liger <Jonathan.liger@wanadoo.fr>
20154
20155 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
20156
20157         * icall.c (ves_icall_System_Environment_get_Platform): Add new
20158         internal call.
20159
20160 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
20161
20162         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
20163         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
20164
20165         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
20166         we call unmanaged code which throws exceptions.
20167
20168 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
20169
20170         * appdomain.h: added per-domain entry_assembly.
20171         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
20172         arguments.
20173         * icall.c: Assembly::GetEntryAssembly icall.
20174         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
20175         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
20176
20177 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
20178
20179         * appdomain.h, gc.c: added mono_domain_finalize ().
20180
20181 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20182
20183         * object.c:
20184         (mono_print_unhandled_exception): changed g_warning by g_printerr
20185         because g_log has a 1024 characters limit (yeah, i got a big stack
20186         trace). Don't print exception name, that should be in ToString 
20187         returned string.
20188
20189 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20190
20191         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
20192         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
20193
20194 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20195
20196         * object.c:
20197         (mono_print_unhandled_exception): after previous commit, i realized
20198         that MS calls ToString on the exception. I changed this function to
20199         do that. This way we get stack_trace for free.
20200
20201 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20202
20203         * object.c:
20204         (mono_print_unhandled_exception): invoke Message property instead of
20205         getting 'message' field from Exception. Don't allocate memory for
20206         'trace' and 'message' if not needed.
20207
20208 2002-08-18  Dick Porter  <dick@ximian.com>
20209
20210         * unicode.c: Fix asserts to match Encoder.cs checks
20211
20212 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20213
20214         * marshal.c: fix unaligned store issue and a few wrong
20215         opcode argument types.
20216
20217 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20218
20219         * icall.c: added GetUninitializedObjectInternal internal call.
20220
20221 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
20222
20223         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
20224         to the right domain.
20225
20226 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
20227
20228         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
20229
20230         * class.c (class_compute_field_layout): set blittable to false for Strings
20231
20232         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
20233
20234 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20235
20236         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
20237         first chunk of code to create types at runtime. Code to
20238         handle ReflectedType/DeclaringType. Make reflection handles
20239         domain specific.
20240
20241 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
20242
20243         * class.c: set correct name in arrays.
20244
20245 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
20246
20247         * appdomain.c (mono_domain_transfer_object): make it work with
20248         valuetypes. bug fixes.
20249
20250 2002-08-12  Dick Porter  <dick@ximian.com>
20251
20252         * object.h: Rename some parameters to avoid c++ keywords (Patch
20253         from Joseph Wenninger <kde@jowenn.at>)
20254
20255 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
20256
20257         * icall.c: added icall to implement Assembly.GetFile*.
20258
20259 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
20260
20261         * reflection.h, reflection.c: code to embed managed resources.
20262
20263 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
20264
20265         * class.c: move all the type size stuff into
20266         class_compute_field_layout().
20267
20268 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
20269
20270         * class.c: ensure enums have always the correct instance size.
20271         * unicode.c: remove wrong assert.
20272
20273 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
20274
20275         * assembly.c: fix mem corruption issue.
20276         * image.h, image.c: added mono_image_get_resource () to access
20277         managed resources.
20278         * icall.c: implemented Assembly.EntryPoint property and some
20279         Managed Resources related internalcalls.
20280
20281
20282 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
20283
20284         * image.c, image.h: impemented mono_image_get_entry_point ().
20285         * appdomain.c: use mono_image_get_entry_point.
20286
20287 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
20288
20289         * reflection.c: support the object type argument when loading
20290         custom attributes.
20291
20292 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
20293
20294         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
20295         String as return type.
20296
20297 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
20298
20299         * reflection.c: fix encoding of named args for custom attrs to match
20300         the ms implementation. Read them back when instantiating custom
20301         attributes.
20302
20303 2002-08-02  Radek Doulik  <rodo@ximian.com>
20304
20305         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
20306         by Dietmar as quick fix
20307         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
20308         16 as stack size, used on more places as quick fix before Dietmar
20309         will fix it properly
20310
20311 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
20312
20313         * object.h, object.c: added accessors for fields and properties.
20314
20315 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
20316
20317         * class.c, class.h: made mono_class_get_field_from_name ()
20318         loop on parent types.
20319         Added mono_class_get_property_from_name ().
20320
20321 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20322
20323         * class.c, class.h: move the code to setup the type vtable in its own
20324         function so that it can be reused also for types created at runtime.
20325         Eliminate the "class" identifier from the header file.
20326         * reflection.c: setup the vtable for enums so that we can create
20327         objects for use in SetConstant ().
20328
20329 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
20330
20331         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
20332         instead of the delegate itself as this pointer (bug #28383)
20333
20334 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
20335
20336         * marshal.c (mono_marshal_get_managed_wrapper): added return type
20337         conversions.
20338
20339 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20340
20341         * loader.c: don't set the pinvoke bit on icalls.
20342
20343 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
20344
20345         * debug-helpers.c (mono_method_full_name): only print a number to
20346         indicate wrapper type (so that the output is more readable in traces).
20347
20348 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
20349
20350         * class.c (mono_class_init): include method override patch from Paolo
20351
20352 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
20353
20354         * icall.c: fixed GetTypeCode().
20355
20356 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
20357
20358         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
20359         use real delegate invoke function to make it work with multicast
20360         delegates (fix bug# 28291).
20361
20362 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20363
20364         * object.c: load constant strings.
20365
20366 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20367
20368         * reflection.c: no magic numbers.
20369         * tabledefs.h: security action enum.
20370
20371 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20372
20373         * assembly.c: fix possible memory corruption.
20374
20375 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
20376
20377         * reflection.h, reflection.c: added support for linking resources.
20378         * verify.c: check we have an updated corlib.
20379
20380 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
20381
20382         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
20383         string arrays.
20384         (mono_marshal_string_array): null terminate unmanaged string arrays.
20385         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
20386
20387 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20388
20389         * icall.c: Type.GetType () can now return also types from the
20390         calling assembly.
20391
20392 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
20393
20394         * loader.h, loader.c: stack walking support.
20395         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
20396         GetCallingAssembly.
20397
20398 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
20399
20400         * marshal.c: added optimisations for blittable types 
20401
20402         * class.c (mono_array_class_get): do not set blittable attribute on arrays
20403         (mono_class_setup_mono_type): set blittable attribute for single
20404         and double.
20405
20406         * marshal.c (mono_string_utf8_to_builder): impl.
20407         (mono_string_builder_to_utf8): impl.
20408         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
20409
20410 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
20411
20412         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
20413         (mono_marshal_get_managed_wrapper): impl. byref types
20414
20415 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20416
20417         * icall.c:
20418         (search_method): don't display debug message. 
20419
20420 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
20421
20422         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
20423
20424 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
20425
20426         * appdomain.c: set the missing filename when throwing exception.
20427
20428 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
20429
20430         * metadata.c (mono_type_size): code cleanup
20431         (mono_type_stack_size): removed some test code
20432
20433 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
20434
20435         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
20436         mono_get_exception_file_not_found now.
20437
20438         * exception.c (mono_exception_from_name_two_strings): New version
20439         that will call a constructor with two string arguments. 
20440         (mono_get_exception_file_not_found): New helper routine, used to
20441         report file-not-found errors.
20442
20443 2002-07-20  Dick Porter  <dick@ximian.com>
20444
20445         * process.h:
20446         * process.c: Pass file handles to CreateProcess
20447         
20448         * icall.c:
20449         * file-io.h:
20450         * file-io.c: Implemented CreatePipe
20451
20452 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
20453
20454         * metadata.c (mono_get_param_info): set alignment for value types
20455
20456 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20457
20458         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
20459         Constify mono_domain_assembly_open().
20460         * loader.c: handle null namespace in icalls.
20461
20462 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
20463
20464         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
20465         (emit_str_to_ptr_conv): marshal object as structs
20466
20467         * metadata.c (mono_type_to_unmanaged): marshal object as structs
20468
20469         * marshal.c (mono_marshal_get_runtime_invoke): support value types
20470
20471 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
20472
20473         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
20474         (mono_marshal_get_native_wrapper): we an now return value types
20475
20476 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20477
20478         * verify.c: more checks implemented.
20479
20480 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
20481
20482         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
20483         (fix bug #27695)
20484         (mono_marshal_get_native_wrapper): allow byref arguments
20485         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
20486         impl. PtrToStringXXX methods
20487         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
20488         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
20489         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
20490         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
20491         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
20492
20493 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20494
20495         * reflection.c: fix buglet in parsing an assembly name.
20496
20497 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
20498
20499         * marshal.c (emit_ptr_to_str_conv): first impl.
20500
20501 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
20502
20503         * object.c, class.h: cache the vtable in the class as suggested by
20504         vargaz@freemail.hu (Zoltan Varga).
20505
20506 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20507
20508         * class.h, loader.c: added mono_field_from_token().
20509         * verify.c: first cut of type checking code.
20510
20511 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
20512
20513         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
20514
20515 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
20516
20517         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
20518         (fix bug #27782)
20519         (mono_marshal_get_remoting_invoke): impl.
20520         (mono_delegate_begin_invoke): impl.
20521         (mono_mb_emit_save_args): impl.
20522         (mono_delegate_end_invoke): impl.
20523         (mono_marshal_get_delegate_begin_invoke):
20524         (mono_marshal_get_delegate_end_invoke):
20525         (mono_marshal_get_delegate_invoke): generate a special name for
20526         those methods (including the signature) and associate them whith
20527         the delegate class. 
20528
20529 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
20530
20531         * reflection.[ch]: 
20532         (mono_reflection_type_from_name): now it has a MonoImage parameter
20533         which is used as the default image to search the type in. If the image
20534         is NULL or getting the type from it fails, it defaults to corlib.
20535
20536         * icall.c: changed 1 call to mono_reflection_type_from_name to match
20537         new parameter.
20538
20539 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20540
20541         * reflection.c: update the parameter table index.
20542
20543 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
20544
20545         * domain.c: don't include the mark byte in the string hash.
20546
20547 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
20548
20549         * icall.cs: icall for Type.GetTypeCode ().
20550         * verify: a couple of fixes and disabled local initialization checks.
20551
20552 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
20553
20554         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
20555
20556         * debug-helpers.c (mono_method_full_name): print the type of the
20557         runtime wrapper
20558
20559         * metadata.c (mono_signature_hash): a hash function for signatures
20560         (mono_signature_hash): better hash algorithm
20561
20562         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
20563
20564         * debug-helpers.c (mono_method_full_name): this can now generate
20565         method names with signatures
20566
20567         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
20568         method dont have this pointers.
20569
20570 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
20571
20572         * reflection.c: fixup typebuilder tokens.
20573         * image.c: fix buglet.
20574         * marshal.h: remove whitespace.
20575         * metadata.h, metadata.c: reinstate code that was removed.
20576         * verify.c: handle catch directives and fix another couple of bugs.
20577
20578 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
20579
20580         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
20581         (mono_marshal_get_native_wrapper): make it comp. with the old code
20582         (mono_marshal_get_native_wrapper): support boolean
20583         (mono_marshal_get_managed_wrapper): support more types
20584
20585 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
20586
20587         * class.c (class_compute_field_layout): compute class->blittable attribute.
20588
20589 2002-07-09  Dick Porter  <dick@ximian.com>
20590
20591         * threads.c: Make the thread cleaning up cope with threads that
20592         call ExitThread()
20593
20594 2002-07-08  Radek Doulik  <rodo@ximian.com>
20595
20596         * reflection.c (method_encode_code): use non-translated values to
20597         compute finally_start, this fixes exception handling on ppc, yay!
20598
20599         * decimal.h (struct signscale): fix endianess
20600
20601 2002-07-07  Radek Doulik  <rodo@ximian.com>
20602
20603         * reflection.c: swap box_val and not val
20604
20605 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
20606
20607         * reflection.c, reflection.h: handle full assembly info in type name.
20608         Handle Type arguments when loading custom attributes.
20609         * icall.c: updated to use new mono_reflection_type_from_name () method.
20610
20611 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20612
20613         * loader.c:
20614         (method_from_memberref): also print assembly name when method not found.
20615
20616 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20617
20618         * icall.c:
20619         (ves_icall_TypeGetProperties): fixed bug #27473. 
20620
20621 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20622
20623         * reflection.c: display image name and token when cannot find the
20624         .ctor for an attribute.
20625
20626 2002-07-05  Martin Baulig  <martin@gnome.org>
20627
20628         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
20629
20630 2002-07-04  Dick Porter  <dick@ximian.com>
20631
20632         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
20633         compile on mingw.  This will cause mingw builds to not wait for
20634         subthreads to terminate after the main thread does.  I've lodged a
20635         bug with the mingw developers for them to wrap OpenThread().
20636
20637 2002-07-03  Dick Porter  <dick@ximian.com>
20638
20639         * threads.c: Store thread IDs instead of handles, because
20640         GetCurrentThread() returns a pseudohandle and therefore stores
20641         useless values.  mono_thread_cleanup() continues checking the
20642         array of threads until it is empty, to cope with subthreads
20643         spawning new threads after the main thread has finished.
20644
20645         * profiler.h:
20646         * profiler.c:
20647         * profiler-private.h: Pass the thread ID to thread profiler
20648         functions, instead of a handle
20649
20650 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20651
20652         * verify.c: fixes to make it more usable.
20653         * pedump.c: added --verify code to verify IL code in an assembly.
20654
20655 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20656
20657         * reflection.c: turn errors into warnings to allow compiling corlib.
20658
20659 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
20660
20661         * reflection.c: add special cases to compile corlib.
20662
20663 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20664
20665         * reflection.c: handle properties with only a set method.
20666
20667 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20668
20669         * opcodes.h: add enum with opcodes in opval order.
20670
20671 2002-07-01  Dick Porter  <dick@ximian.com>
20672         
20673         * object.h:
20674         * object.c (mono_runtime_run_main): Removed unneeded argument
20675
20676 2002-06-28  Martin Baulig  <martin@gnome.org>
20677
20678         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
20679
20680 2002-06-27  Dick Porter  <dick@ximian.com>
20681
20682         * threads.c: Store the handle in both the parent thread and in the
20683         subthread, to minimise the time between starting a new thread and
20684         storing its ID.
20685
20686 2002-06-26  Dick Porter  <dick@ximian.com>
20687
20688         * appdomain.c (mono_runtime_cleanup): Close the socket library
20689         after all the threads have finished, not before
20690
20691 2002-06-26  Martin Baulig  <martin@gnome.org>
20692
20693         * debug-symfile.c (mono_debug_find_source_location): Added
20694         `guint32 *line_number' argument.  If it's not NULL, store the line number
20695         there and return the file name without the line number.
20696
20697 2002-06-25  Dick Porter  <dick@ximian.com>
20698
20699         * icall.c:
20700         * process.h:
20701         * process.c: Process forking and other support functions
20702
20703 2002-06-25  Dick Porter  <dick@ximian.com>
20704
20705         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
20706         things dont happen when the image is closed.
20707         (mono_image_lookup_resource): Walk the resource section looking
20708         for a particular entry
20709
20710         * cil-coff.h: PE resource section decoding
20711
20712 2002-06-25  Dick Porter  <dick@ximian.com>
20713         
20714         * assembly.h:
20715         * assembly.c: 
20716         (mono_assembly_foreach): Accessor functions to walk the list of
20717         loaded assemblies
20718         (mono_assembly_set_main):
20719         (mono_assembly_get_main): Process methods need to know which
20720         assembly is the "main" one
20721
20722         * object.c (mono_runtime_run_main): Record the main assembly
20723
20724         * debug-helpers.c: Fix typo
20725
20726 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
20727
20728         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
20729         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
20730
20731 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20732
20733         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
20734
20735 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
20736
20737         * image.c (do_mono_image_open): Initialize reference count,
20738         otherwise we leak the MonoImage.
20739
20740 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
20741
20742         * reflection.c: small tweak to handle self-hosting.
20743
20744 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
20745
20746         * reflection.c: fix type name parse code.
20747
20748 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20749
20750         * reflection.c: break out of the loop.
20751         * image.c: special case corlib.
20752
20753 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20754
20755         * reflection.c: add all the custom attrs at the end to ensure the
20756         ctors have been properly initialized when the attributes are defined
20757         in the current assembly.
20758
20759 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20760
20761         * reflection.c: handle correctly multiple-nested types.
20762
20763 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
20764
20765         * row-indexes.h: fix typos.
20766         * reflection.c: adjust for typos and fix method_def_or_ref
20767         encoding in MethodImpl table.
20768
20769 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20770
20771         * reflection.c: fix entry point patching (thanks Serge!).
20772
20773 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
20774
20775         * verify.c: add check for System.Exception
20776
20777 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
20778
20779         * image.c, class.c: minifix for code just c&p'ed.
20780         * reflection.c: warning fix.
20781         * object.h, loader.h, domain.c: load also StringBuilder.
20782
20783 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20784
20785         * marshal.h, marshal.c: some support code to handle complex marshaling.
20786
20787 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20788
20789         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
20790         Better signatures with vtable error dump.
20791
20792 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
20793
20794         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
20795
20796 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
20797
20798         * icall.c (ves_icall_Type_GetField): impl.
20799
20800 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20801
20802         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
20803         to retrieve a marshal description blob for a field or param.
20804
20805 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
20806
20807         * reflection.h, reflection.c: change order of nested type emission
20808         to avoid table corruption. The NestedTypes table is sorted.
20809         * icall.c: change order of GetConstructor results to workaround mcs bug.
20810
20811 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20812
20813         * reflection.h, reflection.c: handle field and param marshal
20814         information.
20815
20816 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20817
20818         * icall.c, marshal.c marshal.h: more Marshal class implementation.
20819
20820 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20821
20822         * reflection.c: fix call convention.
20823
20824 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20825
20826         * reflection.h, reflection.c: mono_image_get_memberref_token()
20827         takes a type instead of a class, now. Added
20828         mono_image_get_array_token() to create tokens for the special
20829         multi-dim array methods.
20830
20831 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20832
20833         * assembly.c: handle modules (no assembly table). Split
20834         loading references in its own function.
20835         * class.c: handle moduleref resolution scope.
20836         * image.c, image.h: cache module name in image.
20837
20838 2002-06-07  Martin Baulig  <martin@gnome.org>
20839
20840         * reflection.c (mono_image_get_type_info): Only add a class layout entry
20841         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
20842
20843 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20844
20845         * icall.c: more signature fixes that used uint instead of int.
20846
20847 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20848
20849         * reflection.c: fixed signature of field refs.
20850
20851 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20852
20853         * class.c, reflection.c: handle typerefs of nested types
20854         (both on read and when writing files).
20855
20856 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
20857
20858         * icall.c: fix method signatures that tried to workaround the previous
20859         typo, d'oh!
20860
20861 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
20862
20863         * debug-helpers.c: fix typo.
20864
20865 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
20866
20867         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
20868         rewrote the PE/COFF writing code (our programs are understood by the
20869         ms runtime, now).
20870
20871 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
20872
20873         * gc.c, gc.h, icall.c: weakreference support.
20874
20875 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20876
20877         * Makefile.am, mono-config.c: use $(sysconfdir).
20878
20879 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20880
20881         * icall.c: changed default precision of Double.ToString() to 15.
20882         Fixed memory leak. Unified with Single.ToString.
20883
20884 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
20885
20886         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
20887
20888 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
20889
20890         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
20891         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
20892         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
20893         and myself.
20894
20895 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20896
20897         * debug-symfile.c, sysmath.c: yet more compilation fixes.
20898
20899 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20900
20901         * reflection.c, socket-io.c: more compilation fixes.
20902
20903 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20904
20905         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
20906         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
20907         unicode.c: warning and compiler compatibility fixes.
20908
20909 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20910
20911         * class.h, metadata.c: fixed warnings/compilation errors.
20912
20913 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20914
20915         * Makefile.am, mono-config.c, mono-config.h: configuration file
20916         support routines.
20917         * loader.c, loader.h: make Dll mapping configurable at runtime in the
20918         config file. Export methods to insert and lookup mappings.
20919
20920 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
20921
20922         * reflection.c: handle types and boxed objects in custom attr
20923         constructors.
20924
20925 2002-05-30  Martin Baulig  <martin@gnome.org>
20926
20927         * debug-symfile.c
20928         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
20929
20930 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
20931
20932         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
20933         to lookup the implmap row for a P/Invoke method.
20934         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
20935         P/Invoke method from the runtime on an as needed basis.
20936
20937 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
20938
20939         * metadata.c (mono_metadata_parse_signature): impl.
20940
20941 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20942
20943         * class.c: handle .pack directive.
20944
20945 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
20946
20947         * object.c: initialize static fields with RVA data.
20948
20949 2002-05-25  Martin Baulig  <martin@gnome.org>
20950
20951         * debug-symfile.c
20952         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
20953
20954 2002-05-24  Martin Baulig  <martin@gnome.org>
20955
20956         * debug-symfile.c
20957         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
20958         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
20959         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
20960
20961 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
20962
20963         * object.c: special case string ctros in invoke.
20964         * gc.c: silly whitespace changes.
20965
20966 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
20967
20968         * threadpool.[ch]: impl. a threadpool that can
20969         be used by mint and mono.
20970
20971 2002-05-22  Martin Baulig  <martin@gnome.org>
20972
20973         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
20974         The first argument is now a `MonoReflectionModuleBuilder *', the return
20975         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
20976         `methods' field to get the method builder.  The `token' argument is the
20977         unfixed token.
20978
20979         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
20980         invalid characters instead of g_assert_not_reached()ing.  This seems
20981         to be the behaviour of mscorlib.
20982
20983 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
20984
20985         * object.c (mono_runtime_invoke_array): applied patch from Rachel
20986         Hestilow to fix bug #25104
20987
20988 2002-05-21  Martin Baulig  <martin@gnome.org>
20989
20990         * debug-symfile.c (mono_debug_find_source_location): New function.
20991         Looks up an IL offset in the line number table and returns the source
20992         location as a string.
20993
20994 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20995
20996         * icall.c:
20997         (mono_double_ToStringImpl): changed %f by %g until we have something
20998         better.
20999
21000 2002-05-21  Nick Drochak  <ndrochak@gol.com>
21001
21002         * icall.c : Use different name for Math.Pow's icall.  Needed to check
21003         parameters first in C#.
21004
21005 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
21006
21007         * icall.c, reflection.h: added icall to get info about an event.
21008
21009 2002-05-20  Radek Doulik  <rodo@ximian.com>
21010
21011         * object.c (mono_value_box): don't use memcpy for boxing on BIG
21012         endian
21013         (mono_value_box): don't use memcpy for small sizes on
21014         architectures with unaligned access
21015
21016 2002-05-20  Martin Baulig  <martin@gnome.org>
21017
21018         * reflection.c (mono_reflection_setup_internal_class): Don't crash
21019         if `tb->parent == NULL'.
21020         (mono_reflection_create_internal_class): New function.  This is
21021         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
21022         for enum types.
21023
21024         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
21025         New interncall.
21026
21027 2002-05-19  Martin Baulig  <martin@gnome.org>
21028
21029         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
21030         argument to get the length, don't default to the array length.
21031
21032 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
21033
21034         * assembly.c (mono_assembly_setrootdir): New function used to
21035         override the MONO_ASSEMBLIES directory.
21036
21037 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
21038
21039         * icall.c: ValueType_GetHashCode() initialize local var.
21040
21041 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
21042
21043         * reflection.c: sort custom attributes table.
21044
21045 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
21046
21047         * reflection.c: support named args in custom attributes (write support).
21048
21049 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
21050
21051         * reflection.c: fix finally position calculation.
21052
21053 2002-05-15  Radek Doulik  <rodo@ximian.com>
21054
21055         * reflection.c: fixed endianess at many places
21056
21057         * icall.c (ves_icall_InitializeArray): comment out debug msg
21058
21059 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
21060
21061         * object.c (mono_unhandled_exception): new function to handle
21062         unhandled exceptions.
21063         (mono_unhandled_exception): call the UnhandledException event.
21064         (mono_runtime_delegate_invoke): impl.
21065
21066 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
21067
21068         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
21069         returns the RVA, not the direct pointer to the data. Handle the case
21070         when the class size is fixed.
21071
21072 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
21073
21074         * reflection.c: fix some endianess issues.
21075
21076 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
21077
21078         * object.c (mono_runtime_invoke): is now able to catch exceptions.
21079
21080         * threads.c (mono_thread_init): added a callback which is invoked
21081         at thread start.
21082
21083 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
21084         
21085         * icall.c: make GetHashCode return non-negative values.
21086
21087 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
21088
21089         * object.c, icall.c, gc.c: revert to address-based hashcode.
21090
21091 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
21092
21093         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
21094
21095 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
21096
21097         * icall.c, class.c: special case <Module>.
21098
21099 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
21100
21101         * icall.c: fix bug in GetNow().
21102
21103 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
21104
21105         * object.c (mono_runtime_class_init): make sure that we call all
21106         static class constructors.
21107
21108 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
21109
21110         * reflection.c: sort methodsemantics table.
21111
21112 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
21113
21114         * reflection.h, reflection.c: honour init locals setting.
21115
21116 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
21117
21118         * icall.c: copied Double ToStringImpl for Single ToStringImpl
21119
21120 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
21121
21122         * reflection.c: support ContructorBuilders in attribute blob creation.
21123
21124 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
21125
21126         * reflection.c: some changes to build a binary that can be run
21127         directly in windows.
21128
21129 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
21130
21131         * loader.c: print a big message when an icall can't be found.
21132
21133 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21134
21135         * string-icalls.c: fix bug 24248.
21136
21137 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
21138
21139         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
21140         icall.c, reflection.h: separate assembly loading by pathname and by
21141         assembly name. Use the MONO_PATH env var to search for assemblies.
21142
21143 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
21144
21145         * assembly.c, image.h: add some support for assemblies
21146         with multiple modules.
21147         * class.c, class.h: export mono_class_from_typeref().
21148         * loader.c: remove duplicated code and use mono_class_from_typeref(),
21149         instead.
21150
21151 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
21152
21153         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
21154         documentation says (the ECMA one is correct).
21155
21156 2002-05-02  Dick Porter  <dick@ximian.com>
21157
21158         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
21159         Don't name the synchronisation mutex.
21160
21161 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
21162
21163         * rand.c
21164         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
21165         Make the prototypes match.
21166         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
21167         Same.
21168
21169         * icall.c
21170         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
21171         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
21172         all systems have tm.tm_zone, so use strftime() with %Z to print
21173         the timezone abreviation into a temp string.
21174
21175         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
21176         rather than mono_array_addr() on a MonoString on Big Endian
21177         machines.
21178
21179 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
21180
21181         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
21182         fix bug 24041
21183
21184 2002-04-30  Dick Porter  <dick@ximian.com>
21185
21186         * socket-io.c: Cope with SOCKET being an integer rather than a
21187         pointer now.
21188
21189         * threads.c: Added Thread_free_internal, to deal with thread
21190         handle cleanup.  Moved calls to handle_store() and handle_remove()
21191         to start_wrapper(), so each can only be called once.  Allocate
21192         synchronisation blocks with GC_malloc(), and use GC finalisation
21193         to close the handles.
21194
21195         * icall.c: added System.Threading.Thread::Thread_free_internal
21196
21197 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
21198
21199         * icall.c: support Environment.Exit, CommandLineArgs().
21200
21201 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
21202
21203         * object.c, object.h: added mono_runtime_run_main () and
21204         mono_runtime_get_main_args () for use in System.Environment.
21205
21206 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
21207
21208         * gc.c: fix thinko, enable actual finalization since the jit is now
21209         fixed.
21210
21211 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
21212
21213         * gc.c, object.c: take into account that an object may be offset wrt the address
21214         returned by GC_malloc().
21215
21216 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
21217
21218         * image.c: handle files without entries in the assembly table (modules).
21219
21220 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
21221
21222         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
21223         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
21224         allowed to be null when it's System.Object class setup.
21225
21226 2002-04-27  Martin Baulig  <martin@gnome.org>
21227
21228         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
21229         if `tb->parent == NULL' rather than crashing.
21230
21231 2002-04-28  Nick Drochak  <ndrochak@gol.com>
21232
21233         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
21234         calling acos() where asin() should have been called.
21235
21236 2002-04-26  Martin Baulig  <martin@gnome.org>
21237
21238         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
21239         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
21240         there's a subdirectory called `System', but we don't want to read that
21241         subdirectory as an assembly.
21242
21243 2002-04-25  Martin Baulig  <martin@gnome.org>
21244
21245         * debug-symfile.c: Reflect latest MonoString changes.
21246
21247 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
21248
21249         * rand.c, rand.h: instance method icalls need to have an explicit
21250         this pointer as first argument in the C implementation.
21251
21252 2002-04-25  Nick Drochak <ndrochak@gol.com>
21253
21254         * icall.c: Fix typo in map for GetNonZeroBytes
21255
21256 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
21257
21258         * string-icalls.c : String does now passes unit tests without any 
21259         errors, the following changes has been made:
21260         
21261         Implemented replace methods.
21262         Renaming of methods to (try) follow the standard.
21263         Fixed compare ordinal
21264         Made all memory allocated directly to function instead of via icall function.
21265         Small performance fix in is_in_array function
21266                         
21267  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
21268
21269         c (mono_string_Internal_ctor_charp_int_int):
21270         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
21271         sindex < 0, throw ArgumentOutOfRangeException instead of
21272         ArgumentNullException.
21273
21274         Added new check for length == 0, however
21275         I need to make it return String.Empty from the C code.
21276         
21277         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
21278         that calculate the length for us here.
21279         
21280         (mono_string_Internal_ctor_sbytep_int_int): Replaced
21281         mono_string_new_utf16 with mono_string_new, since value is utf8.
21282
21283 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
21284
21285         * object.c: register the object for finalization if needed.
21286         Allocate one more char in the string for the terminating 0 char.
21287
21288 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
21289
21290         * class.c, class.h, image.c: check if a type implemenst a destructor.
21291         Use the proper key for array class lookups.
21292         * icall.c: register the icalls in the System.GC class.
21293         * gc.c, gc.h: GC-related functions and icalls.
21294
21295 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21296
21297         * icall.c:
21298         * socket-io.c:
21299         * unicode.c: free some strings gotten from mono_string_to_utf8 and
21300         changed a couple of free () by g_free ().
21301
21302         * decimal.c: one-liner in the comments for decimal2string ().
21303
21304 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
21305
21306         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
21307
21308 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
21309
21310         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
21311         * object.c (mono_runtime_invoke_array) : handle null in params
21312
21313 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
21314
21315         * string-icalls.c: fixed bug in split (one off bug)
21316
21317 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
21318
21319         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
21320         * icalls.c: added String::Equals as internal method
21321
21322 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
21323
21324         * threads.c: fixed bug in the double interlocked functions
21325
21326 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
21327
21328         * threads.c: implemented all of the new interlocked icalls.
21329         * string-icalls.c: fix a bug in insert.
21330         * icalls.c: added the icalls for interlocked, removed old string functions.
21331         
21332 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
21333
21334         * loader.c: fix off-by-one error when reading argument names.
21335
21336 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
21337
21338         * profiler.c: win32 counter implementation (untested).
21339         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
21340         (the latter needs testing and more complete impl. from win32 folks).
21341
21342 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
21343
21344         * object.c: mono_array_new_full workaround mono_array_class_get
21345         problem.
21346
21347 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
21348
21349         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
21350         * object.h (mono_string_chars): Changed casting type.
21351
21352 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
21353
21354         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
21355                            method signatures to use gunichar2 instead of gint16.
21356
21357 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
21358
21359         * object.h, object.c: domain-specific versions of mono_object_new and
21360         mono_array_new.
21361
21362 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
21363
21364         * object.c: changed String layout
21365
21366         * string-icalls.c (mono_string_Internal_ctor_chara): added
21367         internal string constructors.
21368
21369 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
21370
21371         * threads.c: pass 'this' to the thread start routine.
21372
21373 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21374
21375         * string-icalls.c: fix IndexOf and LastIndexOf. Now
21376         InternalCompareStr don't call twice mono_string_cmp_char for the last
21377         character. Improved performance in mono_string_cmp_char.
21378
21379 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
21380
21381         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
21382         code into its own library: libmonoruntime.
21383
21384 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
21385
21386         * object.h, object.c: changed array format so that szarrays do not
21387         require a bounds structure.
21388         * icall.c, appdomain.c: support for new szarray format.
21389
21390 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
21391
21392         * metadata.c: compare also the retuns type when comparing signatures:
21393         we didn't do this as an optimization since really overloaded methods
21394         must differ also in the arguments, but this doesn't work with
21395         low-level IL code (or when using explicit conversion operators: see
21396         bug#23498 for an example).
21397
21398 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
21399
21400         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
21401
21402 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
21403
21404         * icall.c: make MonoType::GetElementType its own icall.
21405
21406 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
21407
21408         * icall.c: remove MonoMethod_get_Name().
21409         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
21410         object.
21411
21412 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
21413
21414         * string-icalls.c: optimized a few methods.
21415
21416 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
21417
21418         * icall.c: added all new string internal calls
21419         * string-icalls.c: added, new string internal call implementation.
21420         * object.c: added mono_string_new_size for allocating a string a size
21421
21422 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
21423
21424         * object.c (mono_object_isinst): use the same code as in the
21425         optimized x86 version.
21426
21427 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
21428
21429         * profiler.c: TSC-based timer code (faster and more accurate).
21430         Not hooked up in configure, yet (set USE_X86TSC to 1).
21431
21432 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
21433
21434         * profiler.c, profiler.h: track time spent compiling methods.
21435         * threads.c: track thread creation/destruction.
21436
21437 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
21438
21439         * profiler.c, profiler.h, profiler-private.h: profiling interface
21440         and sample implementation. Moved here so that it can be used also by
21441         the jit.
21442
21443 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
21444
21445         * reflection.c, reflection.h: keep types and other handles separate in
21446         the hash tables for referred tokens. Add guid for modules.
21447
21448 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
21449
21450         * assembly.c: fix bugs found with valgrind.
21451         * metadata.h, metadata.c: added mono_metadata_guid_heap().
21452
21453 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
21454
21455         * threads: added icall support for getting current domain for
21456                    the thread.
21457  
21458 2002-04-13  Martin Baulig  <martin@gnome.org>
21459
21460         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
21461         (MonoDebugVarInfo): Added `index' field for register based addresses.
21462         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
21463         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
21464         `MonoDebugVarInfo *params' and `guint32 this_offset' with
21465         `MonoDebugVarInfo *this_var'.
21466
21467         * debug-symfile.c (relocate_variable): New static function to write
21468         a location description for a local variable or method parameter.
21469
21470 2002-04-12  Martin Baulig  <martin@gnome.org>
21471
21472         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
21473         stack offset and begin/end scope address of a local variable.
21474         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
21475         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
21476         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
21477
21478         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
21479         Added new relocation types for start/end scope of a local variable.
21480
21481 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
21482
21483         * object.h: add mono_object_domain() macro.
21484         * reflection.c: handle typespecs.
21485         * icall.c: MonoMethod::get_Name() implementation.
21486
21487 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
21488
21489         * icall.c: String::GetHashCode() icall implementation.
21490
21491 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
21492
21493         * icall.c: String::IndexOfAny icall.
21494         * object.c, object.h: make array->max_length more useful.
21495         Intrduced mono_object_class() and mono_string_length() macros.
21496
21497 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21498
21499         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
21500         instead of g_unichar_isdigit.
21501
21502 2002-04-11  Nick Drochak  <ndrochak@gol.com>
21503
21504         * icall.c: Implement a simple Double.ToString().
21505
21506 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
21507
21508         * appdomain.h: only io-layer.h is supposed to be included.
21509         * icall.c: explicitly import environ. Fix warning.
21510
21511 2002-04-10  Nick Drochak  <ndrochak@gol.com>
21512
21513         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
21514                 return true even if it's not Daylight Savings time.
21515                 Only return false for the case where the function isn't
21516                 implemented for a plaform (read Windows).
21517
21518 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
21519
21520         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
21521         data with a mutex.
21522
21523 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
21524
21525         * mempool.c (mono_mempool_alloc): only use g_malloc when
21526         absolutely necessary.
21527
21528 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
21529
21530         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
21531
21532         * class.c (mono_class_vtable): use domain mempool to allocate vtable
21533         (mono_class_proxy_vtable): use domain mempool
21534
21535 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
21536
21537         * appdomain.h, appdomain.c: split initialization that requires the
21538         execution engine support into mono_runtime_init().
21539
21540 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
21541
21542         * class.c (mono_class_init): don't include vtable inside MonoClass
21543         to save some memory, gather some statistics.
21544         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
21545
21546 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
21547
21548         * icall.c: internalcall implementation for ValueType.Equals().
21549
21550 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
21551
21552         * object.c (mono_message_init): moved 
21553         (mono_runtime_exec_main): new arch. independent impl.
21554         (mono_runtime_invoke_array): new method - like
21555         mono_runtime_invoke, but you can pass an array of objects.
21556         (mono_remoting_invoke): new arch. independent impl.
21557         (mono_message_invoke): new arch. independent impl.
21558         (mono_runtime_class_init): new arch. independent impl.
21559         (mono_runtime_object_init): new arch. independent impl.
21560
21561 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
21562
21563         * metadata.c, object.c, reflection.c: documented the exported
21564         functions.
21565
21566 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
21567
21568         * icall.c: simpler code to pass the assembly builder data to corlib.
21569         Implement GetNestedTypes() internalcall.
21570
21571 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
21572
21573         * class.c: warn if a type can't be loaded.
21574
21575 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
21576
21577         * image.h: typedef MonoImageOpenStatus
21578         * types.h: removed unused file
21579         
21580 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
21581
21582         * icall.c: Enum_ToObject accepts enum value arguments.
21583
21584 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
21585
21586         * class.c: move initialization of properties, events and nested
21587         classes, so that they happen for interfaces, too.
21588
21589 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
21590
21591         * icall.c: cleanup some ugly casts in Array_SetValue*.
21592
21593 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
21594
21595         * icall.c: the values array fro enums is of the correct type, now.
21596         Implement (correctly) getFullName instead of assQualifiedName for
21597         MonoType.
21598         * reflection.h, reflection.c: added mono_type_get_name ().
21599
21600 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
21601
21602         * assembly.c, image.h: for each MonoImage, record from wich assembly
21603         it was loaded.
21604         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
21605         Make Type.Assembly work.
21606
21607 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
21608
21609         * debug-symfile.h: use char* instead of gpointer to avoid
21610         unnecessary casts.
21611
21612         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
21613
21614         * icall.c (ves_icall_InternalExecute): impl. FielSetter
21615         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
21616
21617 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
21618
21619         * icall.c (mono_message_init): impl. (code cleanup)
21620         (ves_icall_InternalExecute): impl. FieldGetter
21621
21622         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
21623         defined we call all (non-static)methods through the vtable. 
21624
21625 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
21626
21627         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
21628         finalizer even though the memory is still referenced (and the chunk of
21629         memory is not freed).
21630
21631 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
21632
21633         * assembly.c: fix brokeness.
21634
21635 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
21636
21637         * class.c: kill some warnings. Check explicit interface method
21638         implementation also without considering the namespace.
21639         Load also literal strings in static class data.
21640
21641 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
21642
21643         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
21644         (default_assembly_name_resolver): Make the resolver take the
21645         "base" directory where the assembly was originally defined, so we
21646         can load DLLs that are in the same directory as the assembly that
21647         is being referenced.
21648
21649 2002-03-28  Dick Porter  <dick@ximian.com>
21650
21651         * file-io.h: 
21652         * file-io.c:
21653         * socket-io.c: 
21654         * unicode.h: 
21655         * unicode.c: Warning cleanups
21656
21657 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
21658
21659         * object.h, reflection.h: use the correct type instead of MonoObject.
21660
21661 2002-03-28  Martin Baulig  <martin@gnome.org>
21662
21663         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
21664         (mono_debug_update_symbol_file): Initialize classes if necessary.
21665
21666 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
21667
21668         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
21669         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
21670
21671 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
21672
21673         * assembly.h: fix function prototype.
21674         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
21675         * mono-endian.h: use const cast.
21676
21677 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
21678
21679         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
21680
21681 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
21682
21683         * loader.c: don't assert when a typeref can't be loaded, give
21684         a chance to the runtime to trow an exception instead.
21685         * loader.h: fix warning.
21686
21687 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
21688
21689         * class.c (mono_class_proxy_vtable): added proxy support
21690
21691 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
21692
21693         * icall.c: removed last of PAL calls, added System.Environment
21694         * file-io.h, file-io.c: MonoIO implementation
21695         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
21696
21697 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
21698
21699         * appdomain.c: do not use the byte marker in ldstr table lookup.
21700         * debug-helpers.c: allow two ':' to separate class and method name.
21701         * object.c: allocate arrays bounds with the GC, too.
21702         * verify: add a few more checks.
21703
21704 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
21705
21706         * reflection.c: output also literal strings. Allocate parameter data
21707         with GC_malloc() (thanks, Martin, for catching this!).
21708
21709 2002-03-26  Martin Baulig  <martin@gnome.org>
21710
21711         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
21712         include the `this' offset in the `param_offsets'.
21713
21714 2002-03-25  Martin Baulig  <martin@gnome.org>
21715
21716         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
21717         mono_debug_get_class() function to get the classes. Added new
21718         relocation types for arrays and strings.
21719         (mono_debug_get_class): New static function to search in all
21720         referenced assemblies for a metadata token.
21721
21722         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
21723
21724 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
21725
21726         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
21727         hold gc-allocated objects. Make the string heap a stream like the
21728         others. Removed duplicated code when writing stream info.
21729         Added asserts to catch possible buffer overflows. Set the sorted map
21730         for tables that need sorting. Added some documentation.
21731
21732 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
21733
21734         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
21735         for interned strings and vtables.
21736
21737 2002-03-24  Martin Baulig  <martin@gnome.org>
21738
21739         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
21740         it in the array since it was created with g_slist_prepend().
21741
21742 2002-03-24  Martin Baulig  <martin@gnome.org>
21743
21744         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
21745         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
21746         (mono_debug_method_from_token): Renamed to
21747         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
21748         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
21749
21750         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
21751         relocation types.
21752
21753         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
21754
21755 2002-03-24  Martin Baulig  <martin@gnome.org>
21756
21757         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
21758         (mono_debug_method_from_token): New func.
21759
21760         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
21761         New interncall, calls mono_debug_local_type_from_signature().
21762         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
21763         calls mono_debug_method_from_token().
21764
21765 2002-03-23  Martin Baulig  <martin@gnome.org>
21766
21767         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
21768         specifies the number of bytes to be converted, not the array size.
21769         Return the number of chars, not the number of bytes.
21770         (ves_icall_iconv_get_chars): The `byteCount' argument
21771         specifies the number of bytes to be converted, not the array size.
21772
21773 2002-03-23  Martin Baulig  <martin@gnome.org>
21774
21775         * reflection.h (MonoReflectionSigHelper): New type.
21776
21777         * reflection.c (mono_reflection_sighelper_get_signature_local),
21778         (mono_reflection_sighelper_get_signature_local): New functions.
21779
21780         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
21781         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
21782         interncalls.
21783
21784 2002-03-23  Martin Baulig  <martin@gnome.org>
21785
21786         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
21787         is_writeable is set.
21788         (mono_raw_buffer_update): New function to write the modified map
21789         back to disk.
21790
21791         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
21792
21793         * debug-symfile.c (mono_debug_update_symbol_file): Call
21794         mono_raw_buffer_update() when done writing.
21795
21796 2002-03-23  Martin Baulig  <martin@gnome.org>
21797
21798         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
21799
21800         * debug-symfile.c: Added support for arguments and local variables.
21801
21802 2002-03-23  Dick Porter  <dick@ximian.com>
21803
21804         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
21805         protected by ifdefs, hence breaking the w32 build.
21806
21807 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21808
21809         * object.c: implement is_interned() the right way.
21810
21811 2002-03-21  Martin Baulig  <martin@gnome.org>
21812
21813         * debug-symfile.[ch]: New files to handle debugging information
21814         files. There's also support to dynamically update these symbol
21815         files to include machine dependent information.
21816
21817 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
21818
21819         * threads.c (mono_thread_create): new function to create thread
21820         from C
21821
21822 2002-03-20  Martin Baulig  <martin@gnome.org>
21823
21824         * icall.c (ves_icall_InternalInvoke): Create a new object if the
21825         method is a constructor.
21826         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
21827         points to ves_icall_InternalInvoke().
21828
21829 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
21830
21831         * file-io.c: Flush shouldn't throw exceptions.
21832
21833 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
21834
21835         * file-io.c: FileStream flush support; FileSetLength now
21836         restores file pointer.
21837
21838 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
21839
21840         * class.c: set image for pointer classes.
21841
21842 2002/03/19  Nick Drochak <ndrochak@gol.com>
21843
21844         * sysmath.c: Forgot one.
21845
21846 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
21847
21848         * sysmath.c: Avoid redefining existing names.
21849
21850 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
21851
21852         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
21853         handled by runtime as icall rather than dllimport from libm.so
21854         * file-io.c, file-io.h: fixed handle argument type.
21855
21856 2002-03-18  Dick Porter  <dick@ximian.com>
21857
21858         * reflection.c (mono_image_get_type_info): rename interface to
21859         iface, because of "#define interface struct" on windows.
21860
21861 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
21862
21863         * class.c, class.h: rename and export mono_ptr_class_get().
21864         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
21865         * reflection.c, reflection.h, icall.c: better/saner type name
21866         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
21867         method signatures.
21868
21869 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
21870
21871         * class.c (mono_class_init): removed hardcoded GHC_SLOT
21872
21873         * icall.c (ves_icall_InternalInvoke): impl.
21874
21875 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21876
21877         * reflection.c: output the interface map table, too.
21878
21879 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
21880
21881         * class.c (class_compute_field_layout): separate computation of 
21882         static field layout
21883
21884 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
21885
21886         * icall.c: added System.Buffer support.
21887         * file-io.c: moved file icalls from PAL to FileStream.
21888
21889 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
21890
21891         * icall.c (ves_icall_System_Object_GetHashCode): impl.
21892
21893 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
21894
21895         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
21896
21897 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21898
21899         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
21900
21901 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
21902
21903         * debug-helpers.{c,h}: moved here from monograph some useful functions
21904         to locate a method by name/signature in a class or image. Included
21905         also a small and flexible IL disassembler.
21906
21907 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21908
21909         * reflection.c: fixup tokens in methods with small header size, too.
21910
21911 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
21912
21913         * object.c (mono_string_to_utf8): remove assert(!error), instead
21914         print a warning. 
21915
21916 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
21917
21918         * icall.c: update to the new mono_Array_class_get interface.
21919
21920 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
21921
21922         * appdomain.c, object.c: Boehm-GC enable.
21923         * icall.c: make get_data_chunk() support split data requests.
21924         Ensure a class is initialized in more cases. Return only the first
21925         property found in GetProperties() or the compiler gets confused. 
21926         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
21927         * reflection.h, reflection.c: add fixup mechanism for field and method
21928         tokens. Initialize assembly->typeref in a single place. Output
21929         properties after events. Support custom attributes for events, too.
21930         Typo fix for paramter custom attrs.
21931
21932 2002-03-07  Martin Baulig  <martin@gnome.org>
21933
21934         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
21935
21936 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
21937
21938         * class.c (mono_array_class_get): fix. for multi. dim. arrays
21939
21940 2002-03-06  Martin Baulig  <martin@gnome.org>
21941
21942         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
21943         non-zero lower bounds. See testcases #F10-#F13.
21944
21945 2002-03-05  Martin Baulig  <martin@gnome.org>
21946
21947         * exception.c (mono_get_exception_argument_out_of_range): New exception.
21948
21949         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
21950         ves_icall_System_Array_GetValue(), only calculate the absolute array position
21951         here.
21952         (ves_icall_System_Array_SetValue): Likewise.
21953         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
21954         as argument and does the actual work. This function is used when copying a
21955         multi-dimensional array.
21956         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
21957         now do all the widening conversions of value types.
21958         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
21959
21960 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21961
21962         * class.c: remove some magic numbers and use the smbolic names,
21963         instead. Added init_events() to load event info at class init time.
21964         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
21965         and mono_metadata_methods_from_event().
21966         * reflection.h, reflection.c: added support for writing out the evnets
21967         related information.
21968
21969 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
21970
21971         * reflection.h, icall.c: use a different method (GetInterfaces)
21972         to gather interface info and add isbyref, isprimitive and
21973         ispointer to the ves_icall_get_type_info() return value.
21974
21975 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
21976
21977         * class.h: stared adding support for events.
21978         * icall.c: split find_members implementation. Added debug icall to get
21979         the address of an object.
21980         * reflection.c: handle TypeBuilders in mono_type_get_object().
21981
21982 2002-03-01  Martin Baulig  <martin@gnome.org>
21983
21984         * icall.c (ves_icall_System_Array_GetLength): This must throw an
21985         ArgumentOutOfRangeException(), not an ArgumentException().
21986         (ves_icall_System_Array_GetLowerBound): Likewise.
21987         (ves_icall_System_Array_GetValue): Improved argument checking.
21988         (ves_icall_System_Array_SetValue): Improved argument checking.
21989
21990 2002-03-01  Martin Baulig  <martin@gnome.org>
21991
21992         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
21993         called with invalid arguments rather than just dying with g_assert().
21994         (ves_icall_System_Array_SetValue): Likewise.
21995         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
21996         raise a NotImplementedException instead.
21997         (ves_icall_System_Array_GetLength): Added argument checking.
21998         (ves_icall_System_Array_GetLowerBound): Added argument checking.
21999
22000 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
22001
22002         * object.h (mono_assert): new macros mono_assert and
22003         mono_assert_not_reached
22004
22005 2002-02-28  Martin Baulig  <martin@gnome.org>
22006
22007         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
22008         and "System::String::IsInterned" to "System::String::_IsInterned".
22009
22010 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
22011
22012         * icall.c: remove hacks for typebuilder. Added icall to create a
22013         modified type from a tybebuilder.
22014         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
22015         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
22016         to create a backing MonoClass for a TypeBuilder.
22017
22018 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
22019
22020         * class.c, class.h: more refactoring of class init.
22021         Export mono_class_setup_mono_type() and mono_class_setup_parent().
22022
22023 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
22024
22025         * marshal.c, marshal.h: start of marshaling interface.
22026
22027 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
22028
22029         * icall.c: fix order in assembly qualified name icall.
22030
22031 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
22032
22033         * class.c: do not free str, since we store it in the hash table.
22034         * reflection.h: add label field to MonoILExceptionInfo.
22035         * reflection.c: handle references to more than one assembly. Handle
22036         case when there isn't a module created in the assembly.
22037
22038 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
22039
22040         * class.c: Fix typo. Start refactoring of class init code.
22041
22042 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
22043
22044         * appdomain.c: exit with 1 on error.
22045         * class.c: we already have the name in MonoClassField.
22046         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
22047         MonoStreamHeader instead of an offset of image->raw_metadata.
22048
22049 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
22050
22051         * appdomain.c (mono_init): Be even more descriptive about the error.
22052
22053 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
22054
22055         * appdomain.c: give the user an informative message when corlib can't
22056         be loaded.
22057
22058 2002-02-26  Martin Baulig  <martin@gnome.org>
22059
22060         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
22061         New icall to get the time zone data.
22062
22063 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
22064
22065         * reflection.c: set virtual and raw size of section correctly.
22066         * threads.c: transfer domain information to newly created threads.
22067
22068 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
22069
22070         * class.c: when instancing a class in a domain, load the default
22071         vaules for static fields from the constant table. Fix System.Enum to
22072         not be an enum.
22073         * icall.c: implement Object::GetType() internalcall. Implemented
22074         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
22075         Fixed checking of binding flags in find_members().
22076         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
22077         * reflection.c: handle enumerations when writing to the constant
22078         table. Use a different object cache for types.
22079
22080
22081 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
22082
22083         * object.c (mono_object_isinst): fix for arrays
22084
22085         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
22086
22087 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
22088
22089         * object.c: don't use mprotect ()  and fix intern pool hash table
22090         lookup for big endian systems.
22091
22092 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
22093
22094         * icall.c: change type_is_subtype_of () signature.
22095
22096 2002-02-21  Mark Crichton  <crichton@gimp.org>
22097
22098         * rand.c, rand.h: Added random number generator for
22099         System.Security.Cryptography classes.
22100
22101         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
22102
22103         * icall.c: Added System.Security.Cryptography calls.
22104
22105 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
22106
22107         * class.c, icall.c, metadata.c: better support for pointer types.
22108         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
22109         * reflection.c: Add support for getting custom attrs for properties
22110         and simplify some code.
22111
22112 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
22113
22114         * icall.c: change getToken () and add custom attribute GetBlob()helper
22115         method.
22116         * reflection.h: add custom attrs array to the reflection builder structures.
22117         * reflection.c: encode and emit custom attributes for all the relevant
22118         reflection objects. Cache fieldref and methodref tokens. Change
22119         mono_image_create_token() interface to take a MonoDynamicAssembly.
22120         More complete custom attributes decoder. Load custom attributes for
22121         Assembly, Field, Method and Constructor objects, too. Make the
22122         returned array an Attribute[] one, not object[]. Added
22123         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
22124         custom attribute constructor.
22125
22126 2002-02-20  Dick Porter  <dick@ximian.com>
22127
22128         * icall.c:
22129         * rawbuffer.c:
22130         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
22131         problem code out for now).
22132
22133 2002-02-19  Radek Doulik  <rodo@ximian.com>
22134
22135         * object.c (mono_ldstr): use hash table to avoid multiple swapping
22136
22137 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
22138
22139         * icall.c: register the GetCustomAttributes method.
22140         * object.c, object.h: add mono_string_new_len ().
22141         * reflection.h, reflection.c: added mono_runtime_invoke(),
22142         mono_install_runtime_invoke(). Added
22143         mono_reflection_get_custom_attrs () to load custom attributes and
22144         create the attribute objects.
22145
22146 2002-02-19  Dick Porter  <dick@ximian.com>
22147         * threads-dummy-types.c:
22148         * threads-dummy-types.h:
22149         * threads-dummy.c:
22150         * threads-dummy.h:
22151         * threads-pthread-types.c:
22152         * threads-pthread-types.h:
22153         * threads-pthread.c:
22154         * threads-pthread.h:  Deleted obsolete files
22155
22156 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
22157
22158         * class.c (mono_class_vtable): runtime init the class when we
22159         allocate static class data.
22160
22161         * icall.c (ves_icall_System_Array_SetValue): check for null values.
22162
22163         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
22164         and String - but we will need generic marshalling support in the
22165         future. 
22166         (mono_init): set the domain name in a ms compatible way
22167
22168         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
22169         String[].
22170
22171 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
22172
22173         * object.c (mono_array_clone): use alloca() instead of g_malloc  
22174         for sizes
22175
22176         * appdomain.c (mono_domain_unload): impl.
22177
22178 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
22179
22180         * appdomain.c, object.c: fix intern pool implementation.
22181         * class.c: fix alignment code.
22182
22183 2002-02-16  Radek Doulik  <rodo@ximian.com>
22184
22185         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
22186         and s2 > s1, just copy lower bytes to be compatible with little
22187         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
22188         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
22189
22190         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
22191         force big_endian to be 1 for big endian machines 
22192         (ves_icall_iconv_new_decoder): ditto
22193
22194 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
22195
22196         * socket-io.c (convert_sockopt_level_and_name): If the system
22197         doesn't define SOL_IP or SOL_TCP, get them by hand using
22198         getprotobyname() and caching the values (because this could be a
22199         slow operation).
22200         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
22201         Use the appropriate struct when the system does support it. Ie,
22202         not all systems have struct ip_mreqn so use struct ip_mreq when
22203         appropriate.
22204
22205 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
22206
22207         * reflection.c: handle finally clauses.
22208
22209 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
22210
22211         * socket-io.c: use g_snprintf() instead of snprintf.
22212
22213 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
22214
22215         * reflection.c (mono_param_get_objects): Cast second argument to
22216         mono_method_get_param_names to a const char** to silence the
22217         compiler warning.
22218
22219         * appdomain.c (mono_domain_assembly_open): Put parens around the
22220         truth statement in the for-loop.
22221
22222         * unicode.c (iconv_convert): Got rid of a compiler warning about
22223         int i being unused when the system has a new iconv.
22224         (iconv_get_length): Same.
22225
22226         * image.c (load_class_names): Cast the second argument to
22227         g_hash_table_insert() to char* to hush compiler warnings about the
22228         arg being a const.
22229         (mono_image_open): Same here.
22230
22231         * socket-io.c: Don't conditionally include sys/filio.h or
22232         sys/sockio.h here anymore since we now get them from
22233         io-layer/io-layer.h
22234         (inet_pton): If the system doesn't support inet_aton, implement
22235         using inet_addr and also #define INADDR_NONE if it isn't defined
22236         by the system.
22237
22238 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
22239
22240         * metadata.c, metadata.h: added function to get packing and size info
22241         of a typedef.
22242         * reflection.h, reflection.c: handle field RVA data. Save info about
22243         the table layout if needed. Assign typedef indexes to all the types
22244         before dumping the info about them to avoid forward reference problems.
22245
22246 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
22247
22248         * socket-io.c (convert_sockopt_level_and_name): ifdef
22249         SO_ACCEPTCONN because it is not defined on my system (old debian)
22250
22251 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
22252
22253         * opcode.c: use stddef.h to get NULL.
22254
22255 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
22256
22257         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
22258         for FIONBIO, FIONREAD and SIOCATMARK.
22259         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
22260         define INADDR_NONE and besides, inet_addr() is deprecated and
22261         should not be used. Use inet_pton() instead - it also has the
22262         added bonus that it can easily handle IPv6 addresses as well.
22263         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
22264
22265 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
22266
22267         * decimal.c: remove _MSC_VER conditional.
22268
22269 2002-02-13  Dick Porter  <dick@ximian.com>
22270
22271         * socket-io.c: 
22272         * icall.c: Internal calls for Blocking, Select, Shutdown,
22273         GetSocketOption and SetSocketOption
22274
22275 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
22276
22277         * assembly.cs: better resolver: use it instead of some kludgy
22278         code.
22279
22280 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
22281
22282         * reflection.c: the best way to speed-up the compiler is to avoid
22283         infinite loops.
22284
22285 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
22286
22287         * class.c (mono_class_vtable): changed the object layout
22288         (obj->vtable->class). 
22289         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
22290
22291 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
22292
22293         * assembly.c: look for assemblies in the assembly dir, too.
22294
22295 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
22296
22297         * class.c: fix thinko in mono_class_from_type().
22298
22299 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
22300
22301         * exception.h, exception.c: added TypeLoadException.
22302         * object.h, object.c: added mono_array_clone ().
22303         * icall.c: handle throwOnError in AssemblyGetType().
22304         Added Array.Clone().
22305         * opcode.h, opcode.c: use a single value for the opcode val.
22306         Compile fix for non-gcc compilers.
22307
22308 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
22309
22310         * opcodes.c, opcodes.h: export interesting info about opcodes.
22311
22312 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
22313
22314         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
22315         icalls. 
22316
22317         * class.c (class_compute_field_layout): set element_class for enums
22318         (mono_class_create_from_typedef): set element_class for normal classes
22319
22320         * icall.c (ves_icall_System_Enum_get_value): impl.
22321
22322         * class.c (mono_class_create_from_typedef): do not set valuetype
22323         flag for System.ValueType and System.Enum
22324
22325 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
22326
22327         * unicode.c (iconv_convert): fix big endian problem.
22328
22329 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
22330
22331         * class.c: add asserts if we are ever going to scribble over memory.
22332         * socket-io.c: not all systems have AF_IRDA defined.
22333
22334 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
22335
22336         * class.c (class_compute_field_layout): do not consider static
22337         fields to compute alignment
22338
22339 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
22340
22341         * appdomain.c (mono_appdomain_get): impl.
22342         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
22343
22344 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
22345
22346         * icall.c: ignore "file://" prefix when loading an assembly.
22347
22348 2002-01-23  Dick Porter  <dick@ximian.com>
22349
22350         * socket-io.c:
22351         * icall.c:
22352         * Makefile.am: Added socket support
22353
22354 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
22355
22356         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
22357         code back.  This should return the assemblies that are loaded by
22358         the runtime on behalf of an application domain. 
22359
22360         The current implementation is still broken, it just returns every
22361         assembly loaded, but until we get real applications domain this
22362         will do.
22363
22364 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
22365
22366         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
22367         AppDomain object.
22368
22369 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
22370
22371         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
22372         the mono_class_from_name lookup.
22373         (ves_icall_get_parameter_info): ditto.
22374         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
22375         method.
22376         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
22377
22378 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
22379
22380         * class.c: load also nested classes on class init.
22381         System.ValueType instance methods gets passed boxed
22382         values, unless methods in derived classed that get a pointer to the
22383         data.
22384         * icall.c: use better name parsing code in GetType().
22385         * image.c, image.h: add mono_image_loaded ().
22386         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
22387         * reflection.c, reflection.h: added mono_reflection_parse_type().
22388
22389 2002-01-22  Veronica De Santis <veron78@interfree.it>
22390
22391         * icall.c : Added mapping of internal calls for Manual and Auto reset events
22392         * threads.c : Added the implementation of internal calls for events
22393         * threads.h : Added prototypes of internal calls for events
22394         
22395 2002-01-21  Radek Doulik  <rodo@ximian.com>
22396
22397         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
22398
22399 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
22400
22401         * class.c (mono_class_init): set min_align to 1 (instead of 0)
22402         (mono_class_value_size): use min_align
22403
22404 2002-01-20  Dick Porter  <dick@ximian.com>
22405
22406         * threads.h:
22407         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
22408         so it compiles on w32.
22409
22410 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
22411
22412         * metadata.c (mono_type_stack_size): impl.
22413
22414         * class.c (mono_class_get_field): impl. memberref token
22415
22416 2002-01-16 Veronica De Santis <veron78@@interfree.it>
22417
22418         * icall.h : Added the internal calls mapping for CreateMutex_internal
22419                     and ReleaseMutex_internal.
22420         * threads.h : Added the prototype of mutexes internal calls.
22421         * threads.c : Added the implementations of mutexes internal calls.
22422
22423 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
22424
22425         * metaparse.h: removed unused file.
22426         * reflection.c, reflection.h: added stream_data_align () function 
22427         to align data in streams and keep stream aligned. Add support for
22428         exception support in method headers.
22429
22430 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
22431
22432         * unicode.c: make iconv_convert () return the number of bytess written
22433         in the output buffer.
22434
22435 2002-01-15  Dick Porter  <dick@ximian.com>
22436         * threads.c: Make the runtime's idea of infinite timeouts coincide
22437         with the class library's
22438
22439         Fix a particularly egregious bug in mono_thread_cleanup(). That
22440         code was so utterly bogus it must have been written on a Monday.
22441
22442 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
22443
22444         * reflection.h: add subtypes field to TypeBuilder.
22445         * reflection.c: encode constants for literal fields.
22446         Handle subtypes. Fix user string token (and add a zero byte)
22447         at the end.
22448         
22449 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
22450
22451         * class.c (mono_class_init): bug fix: assign slot numbers for
22452         abstract methods.
22453
22454 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
22455
22456         * reflection.c: don't try to output a code RVA for abstract methods.
22457         Small fixes for method header format. Output parameter info to the
22458         ParamDef table. Save method overriding info to MethodImpl table.
22459         Fix property support. Allow typedef.extends to be a type in the
22460         building assembly.
22461         * verify.c: fix off-by-one error.
22462
22463 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
22464
22465         * class.c: fix mono_class_from_mono_type () for szarray types.
22466         Remove unused cache check in mono_class_from_type_spec().
22467         * icall.c: *type_from_name () functions handle simple arrays and byref.
22468         * reflection.c: handle byref and szarray types. Handle methods without
22469         body (gets P/Invoke compilation working). Handle types and fields in
22470         get_token ().
22471         * reflection.h: add rank to MonoTypeInfo.
22472
22473 2002-01-10  Dick Porter  <dick@ximian.com>
22474
22475         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
22476         internal calls
22477
22478 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
22479
22480         * icall.c: initialize class in type_from_handle ().
22481         Loop also in parent classes for get_method ().
22482         * reflection.c: properly encode class and valuetype types.
22483         Start on encoding TypeBuilder types. Handle fieldrefs.
22484         Use correct length when registering a user string.
22485         Handle ConstructorBuilder and MonoMethod in get_token ().
22486         Make mono_type_get_object () aware of cached types.
22487         * object.c: back out change to mono_string_new ().
22488
22489 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
22490         * object.c: mono_string_new should return a NULL when the string 
22491         passed in is NULL -- not try to deference it.
22492         
22493 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
22494
22495         * icall.c: hack to make IsSubType work for TypeBuilders.
22496         * reflection.c: emit constructors before methods.
22497         Retrieve param names in mono_param_get_objects().
22498
22499 2002/01/05  Nick Drochak  <ndrochak@gol.com>
22500
22501         * Makefile.am: fix list of headers and sources so automake 1.5
22502         doesn't complain. Removed \# at end of list.
22503
22504 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
22505
22506         * reflection.c: get token for a method ref. Set return type of
22507         constructor to void.
22508         * loader.c: debug message.
22509         * class.c: typo fix.
22510
22511 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
22512
22513         * icall.c: fix array init with rank > 1. FindMembers
22514         loops in parent class as well.
22515         * image.c: do not insert nested types in name cache.
22516         * reflection.c: warning fix.
22517         * reflection.h: add override method (for interface impl).
22518
22519 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
22520
22521         * metadata.c: fix customattr decoding.
22522
22523 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
22524
22525         * rawbuffer.cs: Added native Win32 implementation, avoids using
22526         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
22527
22528 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
22529
22530         * class.c: make the low-level routines handle the cache.
22531
22532 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
22533
22534         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
22535
22536 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
22537
22538         * class.c: fix mono_array_element_size() for objects.
22539         * class.h, class.c: add properties to MonoClass and load them
22540         at init time.
22541         * icall.c: check with isinst() when assigning a value to an array
22542         instead of requiring the classes to match exactly.
22543         Implemented icall for System.Type::GetType().
22544         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
22545         enums. Handle bindingflags when looking for methods and fields.
22546         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
22547         and mono_metadata_methods_from_property().
22548         * reflection.h, reflection.c: added structures for propreties,
22549         parameters and enums. Implemented mono_property_get_object() and
22550         mono_param_get_objects().
22551
22552 2001-12-18  Dick Porter  <dick@ximian.com>
22553
22554         * file-io.c: Use mono_string_to_utf16() instead of
22555         mono_string_chars()
22556
22557         * object.c: Added mono_string_to_utf16(), which copies the non
22558         NULL-terminated MonoString into a new double-null-terminated
22559         buffer.
22560
22561 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
22562
22563         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
22564
22565 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
22566
22567         * file-io.c: raise exceptions if handle is invalid.
22568
22569 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
22570
22571         * assembly.c: yet another check for mscorlib.
22572         * class.c, class.h: load nesting info for classes.
22573         * icall.c: many new functions to support the Reflection classes.
22574         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
22575         * reflection.h, reflection.c: mono_image_create_token(),
22576         mono_assembly_get_object(), mono_type_get_object(),
22577         mono_method_get_object(), mono_field_get_object(): methods to return
22578         objects that parallel the C representation of assemblies, types,
22579         methods, fields.
22580
22581 2001-12-11  Dick Porter  <dick@ximian.com>
22582
22583         * icall.c:
22584         * file-io.c: Internal calls for file IO.
22585
22586 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
22587
22588         * tabledefs.h: missing FileAttributes.
22589         * verify.h, verify.c: use is_valid_string () to simplify and check for
22590         valid strings more correctly. Fix warnings and speeling.
22591         Check more tables: Filed, File, ModuleRef, StandAloneSig.
22592         Check code: branches, maxstack, method calls.
22593
22594 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
22595
22596         * object.c (mono_object_allocate): removed static, so that the jit
22597         can allocate value types.
22598
22599         * icall.c (ves_icall_System_DateTime_GetNow): impl.
22600
22601 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
22602
22603         * class.c: init enum types right away and register the
22604         token->MonoClass map in mono_class_create_from_typedef ().
22605         * verify.h, verify.c: first cut of the verifier.
22606         * pedump.c: add --verify switch to verify metadata tables.
22607         * tabledefs.h: add some missing enums.
22608
22609 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
22610
22611         * class.c (mono_install_runtime_class_init): impl.
22612         (mono_class_init): renamed mono_class_metadata_init to
22613         mono_class_init, also removed the metadata_inited flag
22614
22615         * object.c (mono_object_isinst): use faster algorithm
22616
22617 2001-11-30  Radek Doulik  <rodo@ximian.com>
22618
22619         * mono-endian.h: reverted last change
22620         added function prototypes
22621
22622         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
22623         add mono-endian.c back
22624
22625         * mono-endian.c: returned back, as Paolo pointed out, it's needed
22626         for unaligned access, I've mistaked it with endianess. I am
22627         sorry.
22628         (mono_read16): fix reverted endianess
22629         (mono_read64): ditto
22630         (mono_read32): ditto
22631
22632 2001-11-30  Dick Porter  <dick@ximian.com>
22633
22634         * exception.c: Implement mono_exception_from_name()
22635
22636 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
22637
22638         * metadata.h, metadata.c: remove params_size and locals_size and their
22639         calculation from the metadata code: they are only usefult to the
22640         interp.
22641
22642 2001-11-29  Radek Doulik  <rodo@ximian.com>
22643
22644         * object.c (mono_ldstr): swap bytes here, it's probably not the
22645         best place, but works for me now, I'll redo it once I know mono
22646         better, also note that I add PROT_WRITE and don't reset back, also
22647         note that it's only affects big endians, so x86 should be OK
22648
22649         * mono-endian.h (read16): use just glib macros for both endians
22650
22651         * mono-endian.c: removed as glib macros are used in in
22652         mono-endian.h so we don't need to care about endianess for read
22653         macros as glib does that for us already
22654
22655 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
22656
22657         * class.h, class.h: take minimum alignment into consideration so
22658         that the fields of a class remain aligned also when in an array.
22659
22660 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
22661
22662         * loader.h, loader.c: add mono_method_get_param_names().
22663         * class.c: 0-init class fields.
22664
22665 2001-11-26  Dick Porter  <dick@ximian.com>
22666
22667         * icall.c:
22668         * threads-types.h:
22669         * threads.c: New file that handles System.Threading on all platforms
22670
22671         * object.c: 
22672         * object.h: Remove the synchronisation struct from MonoObject,
22673         replace it with a pointer that gets initialised on demand
22674
22675         * Makefile.am: Replace all the system-specific threading code with
22676         a single file that uses the new wrapper library
22677
22678 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
22679
22680         * class.c, class.h: add mono_install_trampoline() so that the runtime
22681         can register a function to create a trampoline: removes the ugly
22682         requirement that a runtime needed to export arch_create_jit_trampoline.
22683         * object.h, object.c: added mono_install_handler() so that the runtime
22684         can install an handler for exceptions generated in C code (with
22685         mono_raise_exception()). Added C struct for System.Delegate.
22686         * pedump.c: removed arch_create_jit_trampoline.
22687         * reflection.c: some cleanups to allow registering user strings and
22688         later getting a token for methodrefs and fieldrefs before the assembly
22689         is built.
22690         * row-indexes.h: updates and fixes from the new ECMA specs.
22691
22692 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
22693
22694         * class.h, class.c: add enum_basetype field to MonoClass.
22695         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
22696         to get index in the constant table reated to a field, param or
22697         property.
22698         * reflection.h, reflection.c: handle constructors. Set public-key and
22699         version number of the built assembly to 0.
22700         * row-indexes.h: update from new ECMA spec.
22701
22702 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
22703
22704         * class.h, class.c: add a max_interface_id to MonoClass.
22705         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
22706         since it's used to do that. Added mono_type_type_from_obj().
22707         Make GetType() return NULL instead of segfaulting if the type was not
22708         found. Handle simple arrays in assQualifiedName.
22709         * object.h: add a struct to represent an Exception.
22710         * reflection.c: output call convention in method signature.
22711         Add code to support P/Invoke methods and fixed offsets for fields.
22712
22713 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
22714
22715         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
22716         the value.
22717         * icall.c: use mono_array_addr instead of array->vector: fixes the
22718         reflection image writing.
22719         * reflection.c: init call convention byte to 0 in method signature.
22720         Encode the property signature. Don't output property-related methods
22721         twice. Really process the properties for a type (don't cast a field to
22722         a property, my mom always told me that).
22723         Fix 64 bit issues in pointer alignment in a different and more
22724         readable way.
22725
22726 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
22727
22728         * loader.h: Removed type class from MonoDefaults, added monotype
22729
22730         * loader.c: Loaded MonoType, removed loading of Type
22731
22732         * icall.c (my_mono_new_object): Now returns a System.MonoType,
22733         and fills in System.Type._impl with a RuntimeTypeHandle rather
22734         than the actual MonoClass *
22735
22736         (ves_icall_type_from_handle): change from type_class to
22737         monotype_class
22738
22739         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
22740         implemented
22741
22742         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
22743         implemented
22744
22745         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
22746
22747         (ves_icall_System_Reflection_Assembly_GetType): implemented
22748
22749         (ves_icall_System_MonoType_assQualifiedName): implemented
22750
22751         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
22752
22753 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
22754
22755         * assembly.c (mono_assembly_open): Implement a cache for the
22756         assemblies. 
22757
22758         (mono_assembly_close): only destroy the assembly when the last
22759         reference is gone.
22760         
22761 2001-11-09  Dick Porter  <dick@ximian.com>
22762
22763         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
22764
22765 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
22766
22767         * class.c (mono_class_metadata_init): bug fix: compute the right slot
22768
22769 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
22770
22771         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
22772         from Martin Weindel.
22773         * object.h: add mono_string_chars ().
22774
22775 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
22776
22777         * reflection.c (build_compressed_metadata): Eliminates warnings
22778         and uses 64-bit clean code.
22779
22780         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
22781         (mono_type_equal): Change signature to eliminate warnings.
22782
22783 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
22784
22785         * icall.c, loader.c: remove the internalcall array constructors.
22786         Changes to match the new MonoArray structure.
22787         * object.h, object.c: an array object doesn't allocate an extra
22788         vector. Add mono_array_new_full () to create jagged arrays easily.
22789
22790 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
22791
22792         * metadata.h, metadata.c: add mono_metadata_field_info () to
22793         retreive all the info about a field from vairous tables.
22794         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
22795         * class.h, class.c: augment MonoClassField with more info.
22796         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
22797         policy and load a field's RVA if needed.
22798
22799 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
22800
22801         * class.c (mono_class_metadata_init): create a trampoline for all
22802         virtual functions instead of actually compiling them.
22803
22804 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
22805
22806         * class.h, class.c: include name in MonoClassField.
22807         * class.c: fix fundamental type of System.Object and System.String.
22808         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
22809         tokens in ldtoken.
22810         * icall.c: remove internalcalls for the Reflection stuff that is now
22811         done in C# code.
22812         * loader.c: mono_field_from_memberref () implementation.
22813         * mono-endian.c: thinko (s/struct/union/g).
22814         * object.c, object.h: make the mono_string_* prototypes actually use
22815         MonoString instead of MonoObject.
22816         * reflection.c, reflection.h: updates for changes in the reflection
22817         code in corlib: we use C structures that map to the actual C# classes.
22818         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
22819         fat method header if needed and use the info from the ILGenerator for
22820         methods. Handle fields in types. Misc fixes.
22821
22822 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
22823
22824         * class.c (mono_class_metadata_init): bug fix: always allocate
22825         space for static class data
22826
22827 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
22828
22829         * class.c (mono_compute_relative_numbering): use relative
22830         numbering to support fast runtime type checks.
22831
22832 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
22833
22834         * class.c (mono_class_create_from_typeref): added debugging output
22835         to print class name when MonoDummy is returned instead of real class
22836
22837 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
22838
22839         * class.c (mono_class_metadata_init): interface offset table now
22840         contains pointers into the vtable - this is more efficient for the jit
22841
22842 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
22843
22844         * class.c (mono_class_metadata_init): use a temporary vtable (the
22845         old algorithm only worked for the interpreter, but not for the jit)
22846
22847 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
22848
22849         * loader.c (method_from_memberref): use mono_class_get to get the
22850         class of an array instead of using System.Array directly.
22851         (mono_get_method): also add MEMBERREF methods to the method cache
22852         which usefull for arrays.
22853
22854 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
22855
22856         * pedump.c (arch_compile_method): added to compute vtable entry
22857
22858         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
22859         number of interfaces.
22860         
22861         * class.h: merged MonoArrayClass into MonoClass
22862
22863         * class.c (mono_class_create_from_typedef): compute the vtable size and
22864         allocate space to include the vtable inside MonoClass
22865         (mono_class_metadata_init): initialize the vtable
22866
22867 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
22868
22869         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
22870         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
22871         * image.c: endian fixes by Laurent Rioux.
22872         * object.h, object.c: rename MonoStringObject to MonoString and
22873         MonoArrayObject to MonoArray. Change some function names to conform to
22874         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
22875         guint16* as first argument, so don't use char*.
22876         Provide macros to do the interesting things on arrays in a portable way.
22877         * threads-pthread.c: updates for the API changes and #include <sched.h>
22878         (required for sched_yield()).
22879         * icall.c: updates for the API changes above.
22880         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
22881         platforms that need them.
22882
22883 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
22884
22885         * class.c: set the correct type for all the fundamental
22886         type when loading the class.
22887
22888 2001-10-05  Dick Porter  <dick@ximian.com>
22889
22890         * threads-pthread.c (pthread_mutex_timedlock): Simple
22891         compatibility version for C libraries that lack this call.
22892
22893 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22894
22895         * class.c: MonoTypes stored in MonoClass are stored as
22896         fundamental MonoTypes when the class represents a
22897         fundamental type (System.Int32, ...).
22898         The TypeHandle return by ldtoken is a MonoType*.
22899         * icall.c: ves_icall_get_data_chunk () write out all the
22900         PE/COFF stuff. Implement ves_icall_define_method (),
22901         ves_icall_set_method_body (), ves_icall_type_from_handle ().
22902         * image.c: properly skip unknown streams.
22903         * loader.h, loader.c: add type_class to mono_defaults.
22904         * metadata.c, metadata.h: export compute_size () as
22905         mono_metadata_compute_size () with a better interface.
22906         Typo and C&P fixes.
22907         * pedump.c: don't try to print the entry point RVA if there is no entry point.
22908         * reflection.c, reflection.h: many cleanups, fixes, output method
22909         signatures and headers, typedef and typeref info, compress the metadata
22910         tables, output all the heap streams, cli header etc.
22911         * row-indexes.h: typo fixes.
22912
22913 2001-10-04  Dick Porter  <dick@ximian.com>
22914
22915         * object.h: Add a synchronisation mutex struct to MonoObject
22916
22917         * object.c (mono_new_object): Initialise the object
22918         synchronisation mutexes
22919
22920         * icall.c: System.Threading.Monitor internal calls
22921         
22922         * threads-pthread.h:
22923         * threads-pthread.c: System.Threading.Monitor internal calls
22924
22925         * threads-types.h: New file, includes the system-specific thread
22926         structures
22927         
22928         * threads-pthread-types.h:
22929         * threads-pthread-types.c: New files, handle pthread-specific
22930         synchronisation types
22931
22932         * threads-dummy-types.h: 
22933         * threads-dummy-types.c: New files of dummy support for
22934         thread-specific types
22935
22936         * metadata.c:
22937         * image.c:
22938         * pedump.c: include mono-endian.h not endian.h
22939         
22940         * Makefile.am: More threads files.
22941         Name mono-endian.h not endian.h
22942
22943 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
22944
22945         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
22946         stuff and implement a few more bits.
22947         * icall.c: a field needs to be dereferenced twice. Do not use the same
22948         name for two variables in the same scope.
22949         * image.c, image.h: cleanups.
22950
22951 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
22952
22953         * class.c (mono_class_metadata_init): bug fix: compute the right size
22954
22955 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
22956
22957         * icall.c: implemented some of the Reflection internalcalls.
22958         * image.c, image.h: start writing out the PE/COFF image.
22959         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
22960         that does the reverse than decode_blob_size ().
22961         * object.c: use mono_metadata_encode_value (). Move here
22962         temporary implementation of mono_string_to_utf8 ().
22963         * rawbuffer.c: make malloc_map static.
22964
22965 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22966
22967         * metadata.c: fix type comparison for arrays.
22968         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
22969         Added a couple of new classes to monodefaults.
22970         * icall.c: added a couple of Reflection-related internalcalls.
22971         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
22972         Added a byval_arg MonoType to MonoClass.
22973
22974 2001-09-28  Dick Porter  <dick@ximian.com>
22975
22976         * icall.c:
22977         * threads-pthread.h: 
22978         * threads-pthread.c: Implemented internal calls for
22979         LocalDataStoreSlot operations.  Applied mutexes around all shared
22980         data.  Reworked the thread creation and Start() operations to
22981         avoid a race condition.
22982         
22983         * threads-dummy.h:
22984         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
22985
22986 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
22987
22988         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
22989
22990 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
22991
22992         * class.c, loader.c: warn and return NULL instead of erroring out.
22993         * icall.c: added System.AppDomain::getCurDomain().
22994         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
22995
22996 2001-09-25  Dick Porter  <dick@ximian.com>
22997
22998         * threads-pthread.h:
22999         * threads-pthread.c: Implemented timed thread joining and added
23000         System.Threading.Thread::Join_internal internal call
23001
23002         * icall.c: Added System.Threading.Thread::Join_internal internal call
23003
23004         * threads-dummy.h:
23005         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
23006
23007 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
23008
23009         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
23010         mono_string_intern () to implement the semantics of the ldstr opcode
23011         and the interning of System.Strings.
23012         * icall.c: provide hooks to make String::IsIntern and String::Intern
23013         internalcalls.
23014
23015 2001-09-23  Dick Porter  <dick@ximian.com>
23016
23017         * threads-dummy.c: 
23018         * threads-dummy.h: New files of dummy threading routines
23019
23020         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
23021         support code based on system specifics
23022
23023         Rename PTHREAD_LIBS to THREAD_LIBS
23024         
23025 2001-09-23  Dick Porter  <dick@ximian.com>
23026
23027         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
23028         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
23029         internal calls.
23030         (mono_thread_init): Set up a Thread object instance to return when
23031         the main thread calls Thread.CurrentThread
23032         (mono_thread_cleanup): Wait for all subthreads to exit
23033
23034         * icall.c: New internal calls for System.Threading.Thread::Sleep
23035         (including Schedule) and CurrentThread
23036
23037         * threads.h: New file, to insulate thread-specific stuff from the
23038         rest of the code
23039
23040 2001-09-21  Dick Porter  <dick@ximian.com>
23041
23042         * threads-pthread.h: 
23043         * threads-pthread.c: New file, for handling pthreads-style
23044         threading support.  Start() now starts a new thread and executes
23045         the ThreadStart delegate instance.
23046
23047         * icall.c: Added the internalcall for
23048         System.Threading.Thread::Start_internal
23049
23050         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
23051
23052 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
23053
23054         * loader.c: work around the different signatures for delegates
23055         constructors csc generates in compiled code vs the ones compiled in mscorlib.
23056
23057 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
23058
23059         * class.h, class.c: add mono_class_get_field_from_name ().
23060         * *: Fix C comments and other ANSI C issues.
23061
23062 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
23063
23064         * endian.h, assembly.c: fix some endianness issues.
23065
23066 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
23067
23068         * loader.h, load.c: add delegate_class to mono_defaults.
23069         Handle runtime provided methods in mono_get_method ().
23070
23071 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
23072
23073         * loader.c (mono_get_method): use pinvoke for internal call
23074
23075         * icall.c: use pinvoke for internal call
23076
23077         * loader.c (method_from_memberref): set the method name
23078
23079 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
23080
23081         * metadata.c: help the compiler generate better code for
23082         mono_class_from_mono_type ().
23083
23084 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
23085
23086         * class.c (mono_class_metadata_init): delayed computing of the
23087         class size to mono_class_metadata_init ()
23088
23089 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
23090
23091         * class.c, class.h: add an interfaces member to MonoClass.
23092         * image.c, image.h: add assembly_name field to MonoImage
23093         from the assembly table.
23094         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
23095
23096 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
23097
23098         * class.c: Handle Array in mono_class_from_mono_type ().
23099         * metadata.c, pedump.c: some endian fixes.
23100
23101 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
23102
23103         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
23104         * metadata.c: fix small problem introduced with the latest commit.
23105
23106 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
23107
23108         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
23109         We don't need a MonoMetadata pointer anymore to compare signatures in
23110         mono_metadata_signature_equal (), update callers.
23111         Reduced memory usage an number of allocations for MonoMethodHeader and
23112         MonoMethodSignature.
23113
23114 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
23115
23116         * metadata.c: added compare for szarray.
23117
23118 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
23119
23120         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
23121         and add a couple more types to it and mono_defaults. Give an hint on
23122         classes that need implementing in our corlib and are referenced
23123         in mscorlib.
23124
23125 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
23126
23127         * class.h, class.c: keep track if a class is also an Enum.
23128         * loader.c: Implement a couple more types for use in libffi
23129         marshalling. Gives better diagnostics when failing to dlopen
23130         a library. Set method->klass for P/Invoke methods, too.
23131
23132 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
23133
23134         * class.c, class.h: add a MonoType this_arg to MonoClass that
23135         represents a pointer to an object of the class' type that
23136         can be used by the interpreter and later the type cache.
23137         Add best guess alignment info for valuetype objects.
23138
23139 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
23140
23141         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
23142         into MonoType: one less level of indirection and allocation and
23143         simplifies quite a bit of code. Added cache for MonoTypes that are
23144         used frequently, so that we don't need to allocate them all the time.
23145
23146 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
23147
23148         * class.c (mono_class_create_from_typedef): System.Enum is also a
23149         value type, although it does not derive from System.ValueType
23150         (maybe a bug in the ms compiler?)
23151
23152         * metadata.c (mono_type_size): return the right size for value types
23153
23154         * loader.c (mono_get_method): only initialize method header if not abstract
23155
23156         * class.c (mono_class_from_mono_type): use mono_default values. 
23157
23158 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
23159
23160         * *: use MonoClass pointers instead of <type_tokens>
23161         
23162         * class.h: new flag: metadata_inited.
23163
23164         * class.c (mono_class_metadata_init): impl.
23165         (mono_class_instance_size): impl.
23166         (mono_class_data_size): impl.
23167
23168 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
23169
23170         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
23171         MonoClass now has the name and name_space fields. 
23172         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
23173         mono_get_method () takes and optional MonoClass as argument.
23174         Removed mono_typedef_from_name() and added mono_class_token_from_name()
23175         instead that takes advantage of a map from class names to typedef
23176         tokens in MonoImage.
23177
23178 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
23179
23180         * metadata.c: zero is not a valid alignment boundary.
23181         Merge MONO_TYPE_VOID in default decoding code.
23182
23183 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
23184
23185         * image.h: merged MonoMetadata into MonoImage
23186
23187         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
23188         identify the type of elements.
23189
23190 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
23191
23192         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
23193         * cil-coff.h: split MonoMSDOSHeader and add size info.
23194         * image.c: add some consistency checks.
23195         * metadata.c: fix row size computation: one programmer
23196         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
23197         add explanation for the locator routine.
23198         Fix decoding of size in method header.
23199         
23200 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
23201
23202         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
23203         (g_concat_dir_and_file): Bring g_concat_dir_and_file
23204         function from gnome-libs.  This uses the right path separator
23205         based on the OS, and also works around a bug in some systems where
23206         a double slash is not allowed. 
23207         (default_assembly_name_resolver): Use g_concat_dir_and_file
23208         (mono_assembly_open): ditto.
23209
23210 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
23211
23212         * metadata.c (mono_metadata_signature_equal): impl.
23213
23214         * *: void is now a realy MonoType (instead of using NULL)
23215         
23216         * metadata.c (do_mono_metadata_parse_type): use
23217         mono_metadata_parse_type to parse void value.
23218
23219 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
23220
23221         * metadata.c, metadata.h: in the signature and method header store
23222         only the space required for holding the loca vars and incoming arguments.
23223
23224 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
23225
23226         * metadata.c (do_mono_metadata_parse_type): treat void like any
23227         other type (instead of assigning NULL);
23228
23229 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
23230
23231         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
23232
23233 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
23234
23235         * image.c (do_mono_image_open): added a cache for arrays.
23236
23237 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
23238
23239         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
23240         decode a single column from a row in a metadata table and changes
23241         to take advantage of it in the typedef locator (gives a nice speed up).
23242         Store offset info for function params.
23243
23244 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
23245
23246         * image.h (MONO_IMAGE_IS_CORLIB): removed 
23247
23248 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
23249
23250         * assembly.c: how could mono_assembly_close () had ever worked?
23251         * metadata.c, metadata.h: provide offset info for local vars.
23252         Implement mono_type_size () to take care of alignment as well
23253         as size (it was mono_field_type_size in cli/class.c before).
23254
23255 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
23256
23257         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
23258
23259         * assembly.h (CORLIB_NAME): set to corlib.dll
23260
23261         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
23262
23263 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
23264
23265         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
23266         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
23267         tokentype.h: massive namespace cleanup.
23268
23269 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
23270
23271         * metadata.h, metadata.c: decode exception clauses when parsing method header.
23272
23273 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
23274
23275         * metadata.c (mono_metadata_free_type): added check for type !=
23276         NULL (void) before calling mono_metadata_free_type()
23277
23278 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
23279
23280         * metadata.h, row_indexes.h: added header with enumerations to use
23281         to index in the columns from tables in metadata and to decode coded
23282         tokens: we should start using this instead of embedding magic numbers
23283         all over the code.
23284
23285 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
23286
23287         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
23288         Move metadata_t info from cli_image_info_t to MonoImage, where
23289         it's easily accessible. Changed all the uses accordingly.
23290         Added the method and class caches to MonoImage.
23291         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
23292         and mono_metadata_decode_value () signature to be more consistent
23293         with the other parse functions (and simplify code). Taken advantage
23294         of zero-length array allocation with GCC. Removed reduntant (and
23295         wrong) MonoFieldType struct and use MonoParam instead. Changed
23296         mono_metadata_parse_field_type () to use common code for parsing.
23297         Added mono_metadata_typedef_from_field () and
23298         mono_metadata_typedef_from_method () to lookup a typedef index from a
23299         field or method token.
23300         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
23301
23302 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
23303
23304         * metadata.c (mono_metadata_parse_field_type): Implement. 
23305         (do_mono_metadata_parse_type): Split engine from
23306         mono_metadata_parse_type, so that we can create smaller structures
23307         for things that just have one pointer to the MonoType (look at
23308         the MonoFieldType)
23309
23310 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
23311
23312         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
23313         as Jan Gray found out, it is incorrect. 
23314
23315 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
23316
23317         * assembly.c: Implement asssembly loading.  This loads an image
23318         and loads all the referenced assemblies.  Come to think of it, we
23319         could always do lazy loading of the assemblies. 
23320
23321         * image.c (mono_image_open): Keep loaded images in a hashtable.
23322
23323         * image.h (MonoImage): Add reference count.
23324
23325 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
23326
23327         * assembly.c (mono_assembly_open): Keep track of the file name in
23328         case the assembly has no ASSEMBLY table.
23329
23330         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
23331         from get.c here.
23332
23333 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
23334
23335         * metadata.c, metadata.h: decode local vars in method header
23336         parse function. Change callers accordingly.
23337
23338 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
23339
23340         * metadata.h, cil-coff.h: protect against multiple inclusion.
23341         Added some new structures to hold information decoded from metadata:
23342         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
23343         and relevant decoding/free functions.
23344         * metadata.c: implement decoding functions. Add warning for out of bounds
23345         index in mono_metadata_locate(). Implement mono_get_method () to retreive
23346         all the info about a method signature and invocation. Remove check on
23347         uninitialized local var in parse_mh() and fix memory leak.
23348
23349 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
23350
23351         * metadata.h: More macros.
23352
23353         * tokentype.h: New file.
23354
23355 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
23356
23357         * assembly.c: added a consistency check and initialize
23358         some structures with g_new0().
23359         * metadata.c: fixed a couple more bugs in table size computation
23360         and add other checks for out-of bound access to metadata.
23361
23362 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
23363
23364         * metatada.c: fix bugs computing table sizes. Spew a
23365         warning when index in string heap is out of bounds.
23366
23367 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
23368
23369         * metadata.h: Add a couple of macros to manipulate tokens. 
23370
23371 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
23372
23373         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
23374         cli_section_tables).
23375
23376 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
23377
23378         * metadata.c (mono_metadata_user_string): New function, provides
23379         access to the UserString heap. 
23380
23381 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
23382
23383         * metadata.c: Add inline documentation.
23384
23385 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
23386
23387         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
23388         files. 
23389
23390 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
23391
23392         * typeattr.h: New file, TypeAttribute flags. 
23393
23394 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
23395
23396         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
23397         mono_assembly_ensure_section): Section loading code.
23398         (load_section_tables): Load the sections.
23399
23400         * mono/metadata/metadata.c (mono_metadata_locate_token,
23401         mono_metadata_locate): Functions to locate the information
23402         definition given a token or a table and an index.
23403         (mono_metadata_compute_table_bases): New.
23404         (compute_size): New function to compute the sizes of the various
23405         tables.
23406
23407         * mono/metadata/metadata.h: Finish listing the different index
23408         types. 
23409
23410         * mono/metadata/pedump.c: Improve to dump new information.
23411
23412 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
23413
23414         * mono/metadata/metadata.c: Entered all the tables matching
23415         Beta2. 
23416
23417         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
23418
23419
23420