4ddfc49fa0b7314afa3210ed22a94a46c4e9cabb
[mono.git] / mono / metadata / ChangeLog
1 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com> 
2
3         * object.c: Fix mono_string_to_utf8 to handle NULL values inside the
4         UTF16 MonoString. Fix the crash from bug #335488
5
6 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com>
7
8         * marshal.c: Correct (for non-Win32 OS) length != size in 
9         mono_string_from_bstr. Fix #339530.
10
11 2007-11-06  Geoff Norton  <gnorton@novell.com>
12
13         * socket-io.c: Apple requires sin(6)_len to be set for getnameinfo
14         to succeed
15
16 2007-11-05  Kornél Pál  <kornelpal@gmail.com>
17
18         * process.c: Added run-time GetProcessId API detection for Windows.
19
20 2007-11-04  Miguel de Icaza  <miguel@novell.com>
21
22         * reflection.c  (mono_param_get_objects): If a parameter has the
23         attribute [System.Runtime.InteropServices.Optional] we should
24         set the DefaultValue of the ParameterInfo to be
25         System.Reflection.Missing instead of DBNull.
26
27         See bug #339013.
28
29         (mono_get_reflection_missing_object): New method,
30         returns the System.Reflection.Missing.Value singleton instance.
31
32 2007-11-03  Atsushi Enomoto  <atsushi@ximian.com>
33
34         * culture-info-table.h : regenerated.
35
36 2007-11-02  Jonathan Chambers <joncham@gmail.com>
37
38         * icall.c: Use GetEnvironmentStrings on windows
39         so we are using the same environment block as 
40         GetEnvironmentVariable/SetEnvironmentVariable. Fixes
41         #333740.
42         
43         Code is contributed under MIT/X11 license.
44
45 2007-10-31  Martin Baulig  <martin@ximian.com>
46
47         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 64.
48
49         * mono-debug-debugger.h
50         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_TRAMPOLINE'.
51
52 2007-10-30  Zoltan Varga  <vargaz@gmail.com>
53
54         * reflection.c (mono_custom_attrs_from_class): Add support for dynamic inflated 
55         classes.
56
57 2007-10-30  Atsushi Enomoto  <atsushi@ximian.com>
58
59         * culture-info-table.h : regenerated.
60
61 2007-10-30  Robert Jordan  <robertj@gmx.net>
62
63         * icall-def.h, icall.c:
64         Add ves_icall_Remoting_RemotingServices_GetVirtualMethod ().
65
66         Code is contributed under MIT/X11 license.
67
68 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
69
70         * class.c (mono_class_setup_vtable): Find the inflated methods in the
71         inflated class instead of inflating them again.
72         
73         * class.c (mono_class_setup_vtable): Inflate the override methods in the 
74         dynamic case.
75
76         * class.c (mono_generic_class_get_class): Set klass->property.count as well.
77         Call setup_supertypes () after klass->parent is set.
78         (mono_class_setup_properties): Enable this to work on dynamic generic classes.
79
80         * reflection.c (mono_type_get_object): Only return a MonoGenericClass object
81         for inflated instances of not yet created dynamic generic classes.
82         (ctorbuilder_to_mono_method): Handle the case when this is called multiple
83         times from inflated_method.
84         (methodbuilder_to_mono_method): Ditto.
85
86 Mon Oct 29 21:02:53 CET 2007 Paolo Molaro <lupus@ximian.com>
87
88         * gc.c: code cleanup and removed old untested option of not creating the
89         finalizer thread.
90
91 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
92
93         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Avoid
94         creating a jump trampoline for dynamic methods.
95
96 2007-10-29 Rodrigo Kumpera <rkumpera@novell.com>
97
98         * reflection.c (mono_image_create_token): Correctly encode methods and constructors of
99         generic TypeBuilders when called from another method of the same type (bug #335131).
100
101
102 2007-10-27  Zoltan Varga  <vargaz@gmail.com>
103
104         * reflection.c (methodbuilder_to_mono_method): Revert the last change as it
105         doesn't seem to work perfectly.
106         
107         * reflection.c (ctorbuilder_to_mono_method): Handle the case when this is
108         called multiple times.
109         (methodbuilder_to_mono_method): Ditto.
110         (resolve_object): Inflate FieldBuilder's.
111
112 Fri Oct 26 19:38:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
113
114         * string-icalls.c, string-icalls.h, appdomain.c: patch from
115         Tyler Larson <mono-devel@tlarson.com> to fix the handling of
116         RemoveEmptyEntries in the string.Split implementation (bug #322375).
117
118 2007-10-26  Dick Porter  <dick@ximian.com>
119
120         * appdomain.c (MONO_CORLIB_VERSION): Bump version because of
121         Thread initialisation changes
122
123 2007-10-26 Rodrigo Kumpera <rkumpera@novell.com>
124
125         * verify.c: fix compatibility check between arrays and System.Array
126
127 2007-10-26  Zoltan Varga  <vargaz@gmail.com>
128
129         * reflection.c (mono_reflection_get_custom_attrs_info): Handle MonoGenericClass
130         too. Fixes #336999.
131
132 2007-10-25  Zoltan Varga  <vargaz@gmail.com>
133
134         * object.c (mono_value_box): Use typed allocation here.
135
136 2007-10-23  Zoltan Varga  <vargaz@gmail.com>
137
138         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Create a jump
139         trampoline instead of compiling the method right away.
140
141         * class-internals.h object.c: Add a JIT callback to create a jump trampoline.
142
143 2007-10-21  Zoltan Varga  <vargaz@gmail.com>
144
145         * class.c (mono_generic_class_get_class): Avoid setting klass->size_inited and
146         related fields for dynamic classes. Fixes #334493.
147
148 2007-10-20  Zoltan Varga  <vargaz@gmail.com>
149
150         * class.c (mono_generic_class_get_class): Set klass->field.count as well.
151         
152         * class.c (mono_class_layout_fields): Use 1 instead of TRUE for consistency.
153
154         * class.c (mono_class_layout_fields): Set size_inited for generic classes as well.
155         (mono_class_setup_vtable): Obtain overrides for dynamic generic classes correctly.
156
157         * class.c (mono_class_setup_methods): Handle dynamic inflated classes correctly.
158
159         * reflection.c (create_generic_typespec): Initialize klass->generic_container
160         if needed.
161         (reflection_methodbuilder_to_mono_method): Set container->is_method to TRUE.
162
163 2007-10-18  Jonathan Chambers <joncham@gmail.com>
164
165         * marshal.c: Use correct key when removing item
166         from ccw_hash.
167         
168         Code is contributed under MIT/X11 license.
169
170 2007-10-17  William Holmes  <billholmes54@gmail.com>
171
172         *marshal.c: Adding a case to marshal booleans to U1
173
174         Code is contributed under MIT/X11 license.
175
176 2007-10-18  Zoltan Varga  <vargaz@gmail.com>
177
178         * class.c (mono_class_from_name): Search the modules compromising dynamic
179         assemblies. Fixes #331601.
180
181 2007-10-16  Zoltan Varga  <vargaz@gmail.com>
182
183         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Throw an
184         exception if the type name contains an assembly component. Fixes #334203.
185
186         * reflection.c (mono_reflection_get_type_with_rootimage): Search all the
187         modules inside dynamic assemblies. Fixes #334200.
188         
189         * reflection.c: Set image->public_key and image->public_key_length;
190
191         * metadata-internals.h (MonoDynamicImage): Add public_key and public_key_len
192         fields.
193
194         * image.c (mono_image_get_public_key): Handle dynamic assemblies. Fixes #334173.        
195         
196 2007-10-16  Mark Probst  <mark.probst@gmail.com>
197
198         * metadata.c: Implemented correct comparing of generic classes.
199         An inflated generic class can be equal to a non-inflated one if it
200         is inflated with generic type variables as type arguments.  Fixes
201         bug #333798.
202
203 2007-10-15  Dick Porter  <dick@ximian.com>
204
205         * monitor.c (mono_monitor_try_enter_internal): Set thread state to
206         WaitSleepJoin while it is waiting to acquire a lock.  Fixes bug
207         81646.
208
209         * threads.c: Turn the thread synch_lock into a CRITICAL_SECTION,
210         instead of a monitor lock.  This means that monitor_try_enter and
211         co can set the thread state safely.
212         (ves_icall_System_Threading_Thread_Interrupt_internal): Always set
213         thread_interrupt_requested, so interrupt actually works.
214
215         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal,
216         ves_icall_System_Net_Sockets_Socket_Select_internal): Use thread
217         state accessor function
218
219 2007-10-15  Martin Baulig  <martin@ximian.com>
220
221         * mono-debug.h
222         (MONO_DEBUGGER_VERSION): Bump to 63 to make it impossible to use
223         the debugger with the current runtime.
224
225 Mon Oct 15 10:20:56 CEST 2007 Paolo Molaro <lupus@ximian.com>
226
227         * object.c, object-internals.h: added the ability to set a single
228         trampoline for all the slots in a vtable.
229
230 Fri Oct 12 17:50:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
231
232         * marshal.c: deal with a possible race condition during multicast
233         delegate invocation.
234
235 Fri Oct 12 13:31:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
236
237         * class.c: ensure value type methods don't have the synchronized
238         flag set.
239
240 Fri Oct 12 08:10:59 CEST 2007 Paolo Molaro <lupus@ximian.com>
241
242         * string-icalls.c, string-icalls.h: reverted unapproved patch that
243         breaks the build.
244
245 2007-10-11  Joel Reed  <joelwreed@comcast.com>
246
247         * string-icalls.c, string-icalls.h: modify System_String_InternalSplit
248         to take an options parameter so that empty entries can be removed during
249         the split procedure. Patch from: Tyler Larson <mono-devel@tlarson.com>
250
251 Thu Oct 11 20:16:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
252
253         * marshal.c: make sure we don't store the signature from a dynamic
254         method into the runtime invoke cache (bug #327189).
255
256 Thu Oct 11 18:22:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
257
258         * marshal.c: make sure the wrapper methods are properly initialized.
259
260 2007-10-11  Mark Probst  <mark.probst@gmail.com>
261
262         * metadata.c, metadata-internals.h: Generalized
263         mono_type_stack_size() to mono_type_stack_size_internal() which
264         takes an additional argument specifying whether it allows open
265         types.
266
267 2007-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
268
269         * verify.c (do_invoke_method): handle typedbyref params
270         correctly and check for unverifiable return values.
271
272         * verify.c (do_newobj): fix a warning.
273
274 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
275
276         * verify.c: don't tread typedbyref as allways unverifable,
277         so uses, like (ld/st)loc.0 are valid. verify for the cases
278         that it matters, like boxing related operations.
279
280 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
281
282         * verify.c: add verification of the newobj opcode. verification
283         of delegate instantation still missing due ldftn and virldftn not
284         pushing the function type on stack
285
286 2007-10-08  Mark Probst  <mark.probst@gmail.com>
287
288         * class-internals.h: Runtime generic context data structure
289         definition.
290
291         * object.c: Initialization of runtime generic context at runtime
292         vtable creation time.
293
294 2007-10-08  Massimiliano Mantione  <massi@ximian.com>
295         * class.c (mono_class_create_from_typedef,
296         mono_class_from_generic_parameter, mono_ptr_class_get,
297         mono_fnptr_class_get, mono_bounded_array_class_get)
298         * domain.c (mono_domain_create, mono_domain_free)
299         * assembly.c (mono_assembly_load_from_full, mono_assembly_close)
300         * image.c (do_mono_image_load, mono_image_close):
301         Hooked up load-unload profiler events.
302
303 Mon Oct 8 11:38:04 CEST 2007 Paolo Molaro <lupus@ximian.com>
304
305         * domain.c: track statistics about the actual amount of native code
306         allocated.
307
308 Sat Oct 6 10:01:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
309
310         * class.c: the valuetype enumerators don't have the additional
311         supertypes interfaces.
312
313 Fri Oct 5 20:33:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
314
315         * class.c: need more interfaces setup for the IEnumerator<T>
316         object created for arrays (tests/ienumerator-interfaces.2.cs).
317
318 2007-10-05  Zoltan Varga  <vargaz@gmail.com>
319
320         * class.c (mono_ldtoken): Handle methodspec tokens as well. Fixes #331097.
321
322 2007-10-05  Alp Toker  <alp@atoker.com>
323
324         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
325         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
326         #315863.
327
328 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
329
330         * verify.c (verify_type_compatibility_full): verification of
331         compatibility improved, validates correctly non-strict checks between
332         native int and I4 types different than (unsigned)int32.
333
334         * verify.c (do_store_indirect): added, do all verification of
335         ldind.X opcodes. 
336
337         * verify.c (get_load_indirect_mono_type): renamed to
338         get_indirect_op_mono_type, as it now returns the MonoType for 
339         ldind.X and stind.X opcodes.
340
341 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
342
343         * reflection.c: Fix the encoding of generic type definition for
344         TypeBuilders.
345
346         * reflection.c (mono_image_typedef_or_ref_full: do the same thing as
347         mono_image_typedef_or_ref but allows to specify if typespec lookups should
348         be made. Typespec check is done prior to typeref cache lookup.
349
350         * reflection.c (mono_image_typedef_or_ref): now just delegate to
351         mono_image_typedef_or_ref_full.
352
353         * reflection.c (encode_generic_class): encode the generic class
354         directly instead of calling encode_type.
355
356         * reflection.c (encode_type): encode the generic type definition
357         MonoClass as a generic instantiation.
358
359         * reflection.c (create_typespec): cache typespec tokens in
360         the assembly->typespec cache. Don't create typespec for a generic
361         instance MonoClass. Create typespec for the generic type defintion.
362
363         * reflection.c (create_generic_typespec): encode the generic
364         class directly instead of calling encode_type.
365
366         * reflection.c (mono_image_create_token): encode the generic
367         type definition not using a typespec for MonoType instances.
368
369
370 2007-10-04  Raja R Harinath  <rharinath@novell.com>
371
372         Fix #328812
373         * class.c (mono_image_init_name_cache): Don't return nested
374         'protected internal' classes.
375         (mono_class_from_name_case): Likewise.
376
377 2007-10-04  Atsushi Enomoto  <atsushi@ximian.com>
378
379         * icall-def.h, icall.c : get_bundled_machine_config() is now the
380           common function used by both DefaultConfig in System.dll and
381           InternalConfigurationHost in System.Configuration.dll.
382
383 Wed Oct 3 17:26:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
384
385         * class.c: automatically add to vectors only a few essential explicit
386         generic interfaces. The rest of the interfaces that arrays should
387         provide are currently implicitly added (but still not lazily, see the
388         design in the discussion of bug#325495 for the details of what is
389         needed for that). Additionally, implicit interfaces are assigned the
390         same vtable slot as the explicit interfaces (as they are compatible):
391         this enables huge memory savings since we don't need to instantiate
392         as many memthods and as large vtables anymore. Also, Since
393         GetEnumerator<T> returns an instance of a type that is required to
394         support a similarly large set of interfaces as arrays, we add
395         implicit interfaces and interface offset sharing support to those
396         types, too. This change adds all the required interfaces so that
397         the anonarray.cs test case in the bug report works (we don't add
398         all the interfaces to arrays of arrays 3-level deep and more because
399         of the memory requirements explained in the bug and since they are much
400         less common: the lazy-loading support will enabled them to work, too).
401
402 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
403
404         * verify.c (merge_stacks): major clean up, all type compatibility
405         checks are done by verify_type_compatibility. This fix my earlier lack
406         of understanding of the CLR type system and merge_stacks no longer looks
407         scary.
408
409         * verify.c: fixed some bad spelling.
410
411 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
412
413         * verify.c (mono_type_from_stack_slot): added. returns the MonoType for
414         a given stack slock.
415         
416         * verify.c: killed verify_type_compat in favor of verify_type_compatibility and
417         verify_type_compatibility_full. This removed a near indentical function and fixed
418         handling of Int32 and IntPtr across all opcodes.
419
420 Tue Oct 2 15:24:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
421
422         * class.c: only vectors have the additional generic interfaces.
423
424 2007-10-01  Jonathan Chambers <joncham@gmail.com>
425
426         * mono-config.c: Use g_strcasecmp instead of
427         strcasecmp like everywhere else to fix
428         compilation with MSVC.
429         
430         Code is contributed under MIT/X11 license.
431
432 Mon Oct 1 14:39:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
433
434         * object.c, object-internals.h: refactored the IMT code to enable
435         building a single slot at a time and lazily creating the IMT trampolines
436         and thunks.
437
438 2007-09-29  Zoltan Varga  <vargaz@gmail.com>
439
440         * loader.c (inflate_generic_signature): Allocate inflated signatures from the heap.
441
442         * metadata.c (mono_metadata_free_inflated_signature): Free the signature itself too.
443         Fixes #328501.
444         
445 2007-09-29  Raja R Harinath  <harinath@gmail.com>
446
447         * loader.c (method_from_methodspec): Rearrange to avoid
448         un-necessary exposition.  Don't assert out if the method's
449         declaring type is a generic type definition.
450
451 2007-09-28  Martin Baulig  <martin@ximian.com>
452
453         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 61.
454
455 Fri Sep 28 20:15:47 CEST 2007 Paolo Molaro <lupus@ximian.com>
456
457         * class-internals.h: optimize field layout of MonoClass to
458         requires less cachelines at runtime and save a few bytes on 64 bit
459         systems.
460
461 2007-09-28  Jb Evain  <jbevain@novell.com>
462
463         * reflection.c: when encoding type names in custom attributes,
464         if the type is a closed generic type, its generic arguments
465         have to be serialized as AssemblyQualifiedName, so that when
466         they are deserialized, it's possible to re-create them properly.
467         Fixes #329450.
468
469
470 Fri Sep 28 19:19:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
471
472         * object.c, class-internals.h: added delegate-creation counter.
473
474 Fri Sep 28 18:07:53 CEST 2007 Paolo Molaro <lupus@ximian.com>
475
476         * class.c: cleanup of the code that synthetizes interfaces for
477         arrays in 2.0: saves quit a bit of corlib mempool memory.
478         Code to fix bug #325495 ifdeffed out for now until the issues
479         with memory usage and O(n^2) behaviour are fixed.
480
481 Fri Sep 28 17:19:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
482
483         * marshal.c: when possible, do not duplicate the name of the methods
484         in the method builder and in the generated MonoMethod.
485
486 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
487         * verify.c: added support for type checking ldind_* opcodes.
488
489 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
490
491         * class-internals.h (struct _MonoGenericClass): new field is_tb_open
492         which is used to distinguish the fully open instantiation of a TypeBuilder
493         with the rest. This temporary hack is required to restore the property that
494         the fully open instantiation is the same type of the generic type definition.
495
496         * class-internals.h (mono_generic_class_is_generic_type_definition):
497         new function as part of the internal API.
498
499         * class.c (inflate_generic_type): return NULL when the generic inst is
500         fully open. The fully open generic type is now the same as the generic type
501         definition for non TypeBuilder types.
502
503         * class.c (mono_generic_class_get_class): removed assert since it is
504         no longer valid, gklass->cached_class can point to the generic type definition.
505
506         * class.c (mono_generic_class_is_generic_type_definition): new.
507
508         * metadata.c (mono_generic_class_hash): added is_tb_open field
509         to the hash calculation.
510
511         * metadata.c (free_generic_class): if the generic class is associated
512         with the generic type definition, its field will come from the mempool and
513         must not be freed.
514
515         * metadata.c (mono_metadata_is_type_builder_generic_type_definition):
516         new, this function identifies the corner case of a TypeBuilder fully open
517         instantiation.
518
519         * metadata.c (mono_metadata_lookup_generic_class): use is_tb_open
520         for lookup. Set gclass->cached_class to be the container class in case of
521         the fully open instantiation of non TypeBuilder types.
522
523         * metadata.c (_mono_metadata_generic_class_equal): use is_tb_open
524         to compare generic classes.
525
526         * reflection.c (method_encode_methodspec): remove assert that
527         no longer is valid.
528
529         * reflection.c (mono_reflection_generic_class_initialize): add
530         an aditional assert to ensure the proper type is used.
531
532 2007-09-26  Rodrigo Kumpera  <rkumpera@novell.com>
533
534         * verify.c: disabled all debug spew by default, define MONO_VERIFIER_DEBUG
535         to enjoy it.
536
537 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
538
539         * verify.c (push_arg): Fixed support for ldarga
540         * verify.c (set_stack_value): Removed superfluous parameter, fixed the
541         MonoType used as first arg in case of instance calls.
542
543 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
544
545         * verify.c: Support for verifying VAR and MVAR types, 
546
547 2007-09-25  Zoltan Varga  <vargaz@gmail.com>
548
549         * icall.c (ves_icall_get_property_info): Set the reflected type of the
550         accessors correctly.
551
552 Tue Sep 25 14:56:03 CEST 2007 Paolo Molaro <lupus@ximian.com>
553
554         * threads.c: support OSX and other systems in
555         mono_thread_get_stack_bounds (bug #328026).
556
557 2007-09-25  Martin Baulig  <martin@ximian.com>
558
559         * mono-debug.h
560         (MonoDebugVarInfo): Replace `MonoClass *klass' with `MonoType *type'.
561
562 2007-09-24  Martin Baulig  <martin@ximian.com>
563
564         * mono-debug.h
565         (MonoDebugClassEntry): Moved the definition of this struct into
566         mono-debug.c to make it private.
567
568         * mono-debug.c
569         (MonoDebugClassEntry): Removed `symfile_id'; since we now use one
570         type table per symbol file, we don't need to store the symfile id
571         any longer.
572
573 2007-09-24  Martin Baulig  <martin@ximian.com>
574
575         Create one type table per symbol file, since a `MonoClass *' gets
576         invalid when its image is unloaded.
577
578         * mono-debug.h (MonoSymbolTable): Removed `type_table'.
579         (MonoDebugHandle): Added `type_table'.
580
581 Mon Sep 24 17:25:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
582
583         * mempool.c, mempool.h: added mono_mempool_new_size () API
584         to be able to specify a smaller initial size for the pool.
585         Adjusted the code to slowly increase pool size before using
586         the previous default size.
587         * image.c: use a small initial size for image mempools.
588
589 2007-09-23  Zoltan Varga  <vargaz@gmail.com>
590
591         * marshal.c (emit_marshal_array): Generate valid IL for byref array case.
592         Fixes ##320990.
593
594         * icall.c (ves_icall_System_Reflection_Assembly_get_ManifestModuleInternal): 
595         Rename this to ves_icall_System_Reflection_Assembly_GetManifestModuleInternal.
596
597 2007-09-22  Zoltan Varga  <vargaz@gmail.com>
598
599         * metadata.c (mono_type_create_from_typespec): Remove an invalid
600         free. Fixes #327438.
601
602 2007-09-21  Raja R Harinath  <harinath@gmail.com>
603
604         * metadata.c (type_in_image) <MONO_TYPE_SZARRAY>: Handle arrays of
605         generic instantiations, etc.
606         <MONO_TYPE_ARRAY>: Likewise.
607
608 2007-09-21  Martin Baulig  <martin@ximian.com>
609
610         * mono-debug.h (MonoSymbolFilePriv, MonoDebugHandlePriv): Removed;
611         these structs were never defined.
612         (MonoDebugHandle): Removed the `_priv' field, it was never used.
613
614 2007-09-21  Martin Baulig  <martin@ximian.com>
615
616         * mono-debug.h (MonoDebugVarInfo): Add `MonoClass *klass'.
617
618 Fri Sep 21 14:39:45 CEST 2007 Paolo Molaro <lupus@ximian.com>
619
620         * image.c: removed the guid hash tables: we can get the same info
621         without the additional memory usage hit (partially fixes also bug #327052).
622
623 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
624
625         * profiler.h, profiler-private.h, profiler.c: add a new profiler
626         event to handle unloading methods. After the event is called, the
627         corresponding MonoMethod* must be considered invalid.
628         * loader.c (mono_free_method): call the new mono_profiler_method_free
629         event.
630
631 2007-09-20  Mark Probst  <mark.probst@gmail.com>
632
633         * domain-internals.h: New flag in MonoJitInfo which marks shared
634         generic methods.  New hash table (shared_generics_hash) in
635         MonoDomain to keep track of shared generic methods.  Prototypes
636         for functions to register and lookup shared generic methods.
637
638         * domain.c: Support for registering and looking up shared generic
639         methods via a hash table (shared_generics_hash) in MonoDomain.
640
641         * class-internals.h: New exception to signal failure of shared
642         compilation of a generic method.  New counters for generics
643         sharing in MonoStats.
644
645 Thu Sep 20 16:59:36 CEST 2007 Paolo Molaro <lupus@ximian.com>
646
647         * image.c, metadata-internals.h: don't keep a file descriptor open
648         for loaded assemblies (bug#325988).
649
650 2007-09-19  Raja R Harinath  <rharinath@novell.com>
651
652         * metadata.c (signature_in_image): New.  Carve out of type_in_image.
653         (ginst_in_image, gclass_in_image): Simplify.  Change signature to
654         use the corresponding datatypes.
655         (type_in_image): Update to changes.
656         (CleanForImageUserData): Simplify.
657         (steal_gclass_in_image): Carved out of old 'gclass_in_image'.
658         Avoid quadratic behaviour in handling the "stolen" list by
659         separating the filter predicate out, and by prepending the stolen
660         items rather than appending them.
661         (steal_ginst_in_image): Likewise.
662         (mono_metadata_clean_for_image): Update to changes.
663
664 2007-09-19  Martin Baulig  <martin@ximian.com>
665
666         * domain.c (mono_cleanup): Call mono_debug_cleanup() here.
667
668 2007-09-19  Martin Baulig  <martin@ximian.com>
669
670         * mono-debug.c (mono_debug_cleanup): Don't call
671         mono_debugger_cleanup(); this is now called earlier from mini_cleanup().
672
673 2007-09-19  Raja R Harinath  <harinath@gmail.com>
674
675         Fix crash on 'make run-test' in mcs/errors
676         * metadata.c (type_in_image): New.  Carve out of ginst_in_image.
677         Avoid more potential allocations in mono_class_from_mono_type.
678         (ginst_in_image): Update to changes.
679         (gclass_in_image): Rearrange slightly.
680
681 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
682
683         * class.c (mono_class_init): Move the code that sets up class->methods to 
684         mono_class_setup_methods () for inflated generic classes too. Ditto for properties.
685
686         * metadata.c (mono_metadata_get_inflated_signature): New function to return a
687         canonical instance of an inflated generic signature.
688         (mono_type_create_from_typespec): Remove an invalid free.
689
690         * loader.c (mono_method_get_signature_full): Use mono_metadata_get_inflated_signature.  
691
692 2007-09-18  Marek Habersack  <mhabersack@novell.com>
693
694         * domain-internals.h: added a declaration of the
695         mono_assembly_load_full_nosearch internal function.
696
697         * assembly.c (mono_assembly_load_with_partial_name): use
698         mono_try_assembly_resolve return value properly.
699         (mono_assembly_load_full_nosearch): copied the function body from
700         mono_assembly_load_full, without the code to invoke assembly
701         search hooks.
702         (mono_assembly_load_full): calls the above new function and if the
703         assembly is not resolved, invokes the search hooks.
704
705         * appdomain.c (mono_runtime_init): restore the global postload
706         assembly search handlers.
707
708 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
709
710         * class.c (mono_class_init): Make sure class->methods and class->properties
711         are never NULL in the generics case.
712
713         * metadata.c (free_generic_class): Enable this again, skip the dynamic case.
714
715 2007-09-17  Zoltan Varga  <vargaz@gmail.com>
716
717         * metadata.c (free_generic_class): Disable some code to fix the build.
718
719         * domain.c (mono_cleanup): Fix a crash introduced by a previous patch.
720
721         * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data
722         from the image mempool.
723
724         * metadata.c (free_generic_class): Free more data from the inflated class.
725
726         * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool.
727
728         * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
729         mempool.
730         (mono_type_create_from_typespec): Ditto.
731
732         * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
733         MonoImage to the caller.
734         (mono_init_internal): Save the opened image in a global variable.
735         (mono_cleanup): Close the image opened in get_runtimes_from_exe.
736
737         * reflection.c (resolve_object): Fix a leak.
738
739         * metadata.c: Fix the freeing of data in the generics caches.
740         
741         * metadata.c (free_generic_inst): Comment this out to fix the build.
742         (free_generic_class): Ditto.
743
744         * metadata.c: Free cached generic methods, instantinations and classes when
745         they are removed from the caches.
746         (mono_metadata_free_type): Free the type itself.
747
748         * class.c: Free the result of mono_class_inflate_generic_type () in a few
749         places.
750
751 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
752
753         * boehm-gc.c: restrict managed allocs to __thread supporting
754         architectures.
755
756 2007-09-16  Zoltan Varga  <vargaz@gmail.com>
757
758         * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
759         (mono_generic_class_get_class): Fix a leak.
760
761         * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
762         mono_metadata_free_type ().
763         (mono_metadata_inflate_generic_inst): Fix a leak.
764
765 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
766
767         * mono-debug.c (free_header_data): Fix a leak missed earlier.
768
769         * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
770         mempool.
771
772         * mono-debug.c (mono_debug_close_image): Fix call to 
773         g_hash_table_remove ().
774
775 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
776
777         * icall-def.h: redirect all the string ctor to the managed
778         CreateString () methods.
779         * string-icalls.c, string-icalls.h: removed dead code for string
780         ctors and icalls.
781
782 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
783
784         * mono-debug.c: Fix memory leaks.
785
786 2007-09-14  Jonathan Chambers <joncham@gmail.com>
787
788         * threads-types.h: Implement mono_hazard_pointer_set and 
789         mono_hazard_pointer_clear macros using do/while(0) to fix
790         compilation with MSVC.
791         
792         Code is contributed under MIT/X11 license.
793
794 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
795
796         * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
797         -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
798
799 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
800
801         * icall-def.h, string-icalls.c: get rid of old, no longer used, string
802         icalls.
803
804 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
805
806         * boehm-gc.c, gc-internal.h, object.c: allow strings to be
807         managed-code allocated as well.
808
809 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
810
811         * class.c (mono_class_is_assignable_from): Add support for generic variance.
812
813 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
814
815         * boehm-gc.c: fixed the build after the AOT changes.
816
817 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
818
819         * wrapper-types.h: Add an ALLOC wrapper type.
820
821         * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
822         reference managed allocator methods.
823
824 2007-09-12  Marek Safar  <marek.safar@gmail.com>
825
826         * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
827         of Type array and not MonoType, a fix suggested by Hari.
828         
829 2007-09-12  Jonathan Chambers <joncham@gmail.com>
830
831         * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
832         and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
833         
834         Code is contributed under MIT/X11 license.
835
836 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
837
838         * domain.c, object.c, mono-config.c, object-internals.h: Fixed  #82416.
839
840 2007-09-12  Marek Habersack  <mhabersack@novell.com>
841
842         * image.c (do_mono_image_open): if assembly file fails to open and
843         MONO_IOMAP is in effect, try to find the path in a
844         case-insensitive way.
845
846         * appdomain.c (mono_runtime_init): do not install postload hooks -
847         tests show that MS.NET doesn't use anything of that sort to
848         trigger the AppDomain.AssemblyResolve event.
849         (mono_try_assembly_resolve): renamed from try_assembly_resolve and
850         made non-static.
851         (mono_runtime_init): init portability helpers here.
852
853         * assembly.c (mono_assembly_load_with_partial_name): if other   
854         attempts fail, trigger the AppDomain.AssemblyResolve event handler
855         to resolve the assembly.
856
857         * domain-internals.h: added mono_try_assembly_resolve and marked
858         it as internal.
859
860 2007-09-11  Jb Evain  <jbevain@novell.com>
861
862         * object-internals.h (MonoReflectionDynamicMethod): add
863         a `MonoReflectionType *owner` field. The owner is used
864         * reflection.c:
865         (mono_reflection_create_dynamic_method): use the owner of the dynamic
866         method as the class declaring the dynamic method.
867         (reflection_methodbuilder_from_dynamic_method): copy the owner of the
868         dynamic method to the declaring type of the methodbuilder.
869
870 2007-09-11  Mark Probst  <mark.probst@gmail.com>
871
872         * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
873         rules for calling methods via reflection.
874
875 2007-09-11  Zoltan Varga  <vargaz@gmail.com>
876
877         * reflection.c (resolve_object): Add support for MonoGenericClass. 
878         Inflate MonoType's.
879
880 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
881
882         * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
883         provide a managed method that does fast allocations without needing
884         a managed->unmanaged transition. Boehm GC implementation currently
885         enabled for ptrfree objects on sane architectures.
886
887 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
888
889         * marshal.c, marshal.h: exported a couple of useful functions and
890         added mono_mb_get_label () to easily handle backward branches.
891
892 2007-09-10  Zoltan Varga  <vargaz@gmail.com>
893
894         * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
895
896 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
897
898         * loader.c (find_method): Fixed the regression introduced while
899         fixing bug #81466.
900
901 2007-09-09  Zoltan Varga  <vargaz@gmail.com>
902
903         * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
904         well.
905         
906         * class.c loader.c metadata.c object.c class-internals.h object-internals.h
907         icall.c reflection.c: Pass a MonoGenericContext argument to 
908         mono_lookup_dynamic_token ().
909
910         * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
911         #82744.
912         
913 2007-09-09  Robert Jordan  <robertj@gmx.net>
914
915         * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
916         for generic methods.
917
918         * object.c (mono_object_get_virtual_method): Handle generic methods.
919         Fixes bug #78882.
920
921         Code is contributed under MIT/X11 license.
922
923 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
924
925         * image.c: fix locking in mono_image_load_file_for_image ().
926
927 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
928
929         * reflection.c, icall.c, icall-def.h: the methodinfos name field is
930         used only as a cache: added an icall to fill it.
931
932 2007-09-16  Rodrigo Kumpera  <rkumpera@novell.com>
933
934         * reflection.h: exposed mono_reflection_free_type_info
935         * reflection.c (mono_reflection_get_type_internal): type_args is always freed
936         since mono_reflection_bind_generic_parameters makes a copy of it.
937         * reflection.c (free_type_info): subinfos should be freed.
938         * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and 
939         made non static.
940         * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
941         replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
942         this fixes #82695 and #81726.
943    
944
945 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
946
947         * process.h, process.c:  added support for user profile/info in
948           ProcessStartInfo. For now only Windows works.
949
950 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
951
952         * metadata.c: consider the generic arguments when comparing
953         signatures (bug #82614).
954
955 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
956
957         * cil-coff.h, image.c: updated assembly loader to cope with the
958         PE32+ 64 bit file format.
959
960 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
961
962         * assembly.c, class.c, domain.c, loader.c: remove useless
963         inclusion of cil-coff.h.
964
965 2007-08-29  Jonathan Chambers  <joncham@gmail.com>
966
967         * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
968         if interface is marked with CoClassAttribute. 
969    
970         Code is contributed under MIT/X11 license.
971
972 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
973
974         * sgen-gc.c: ensure no object from the to space is copied again or finalized
975         if it's seen twice in major collections.
976
977 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
978
979         * sgen-gc.c: big objects are not copied to the gray area, but they
980         need to be considered for scanning, too, if they are brought alive
981         by an object ready for finalizations or a survived one.
982
983 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
984
985         * sgen-gc.c: properly account the number of disappearing links when
986         they are nullified.
987
988 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
989
990         * sgen-gc.c: share the code to scan the registered roots between the
991         different types of collections.
992
993 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
994
995         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
996
997 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
998
999         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
1000         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
1001
1002 2007-08-28  Mark Probst  <mark.probst@gmail.com>
1003
1004         * security-manager.c (mono_security_manager_get_methods):
1005         LinkDemandSecurityException now has 2 arguments instead of 3.
1006
1007 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
1008
1009         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
1010         platforms which need it.
1011
1012 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
1013
1014         * sgen-gc.c: unregister thread data structures with a pthread_key_t
1015         dtor.
1016
1017 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
1018
1019         * threads.c: free the thread static data on thread exit.
1020
1021 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
1022
1023         * class.c: walk the hierarchy to find the generic definition for
1024         a class (fixes runtime part of bug #82498).
1025
1026 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
1027
1028         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
1029         ...
1030
1031         * image.c (mono_image_close): Here. Hopefully fixes #82510.
1032
1033 2007-08-24  Mark Probst  <mark.probst@gmail.com>
1034
1035         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
1036
1037 2007-08-24  Robert Jordan  <robertj@gmx.net>
1038
1039         * appdomain.c: don't perform the ':'->';' substitution on Win32.
1040
1041 2007-08-24  Jb Evain  <jbevain@novell.com>
1042
1043         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
1044         for byref types.
1045
1046 2007-08-24  Mark Probst  <mark.probst@gmail.com>
1047
1048         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
1049         #82286.
1050
1051 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
1052
1053         * assembly.c: Fix a warning.
1054         
1055 2007-08-23  Marek Habersack  <mhabersack@novell.com>
1056
1057         * appdomain.c: parse the <runtime> section looking for the probing
1058         element with the 'privatePath' attribute, which sets additional
1059         directories in which the runtime should look for assemblies.
1060
1061 2007-08-23  Robert Jordan  <robertj@gmx.net>
1062
1063         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
1064         Fixes #82499.
1065
1066 2007-08-23  Martin Baulig  <martin@ximian.com>
1067
1068         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
1069         _mono_debug_init_corlib() and remove it from the header file.
1070
1071 2007-08-23  Martin Baulig  <martin@ximian.com>
1072
1073         * mono-debug-debugger.c
1074         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
1075         don't notify the debugger about it.
1076
1077         * mono-debug-debugger.h
1078         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
1079
1080 2007-08-23  Robert Jordan  <robertj@gmx.net>
1081
1082         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
1083         Code is contributed under MIT/X11 license.
1084
1085 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
1086
1087         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
1088
1089 2007-08-22  Martin Baulig  <martin@ximian.com>
1090
1091         * mono-debug.c: Store debugging info on a per-domain basis and
1092         free it on domain unload.  Add support for unloading symbol files.
1093
1094         * mono-debug.h
1095         (MonoDebugList): New typedef.
1096         (MonoSymbolTable):
1097         - add `data_tables and `type_table'.
1098         - replace 'symbol_files' and `num_symbol_files' with a
1099           `MonoDebugList *'.
1100         (mono_debug_data_table): Removed.
1101         (mono_debug_list_add): New public function.
1102         (mono_debug_list_remove): New public function.
1103         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
1104         (mono_debug_init_2_memory): Renamed into
1105         mono_debug_open_image_from_memory().
1106         (mono_debug_close_image): New public function.
1107         (mono_debug_domain_create): Likewise.
1108         (mono_debug_domain_unload): Likewise.
1109         (MONO_DEBUGGER_VERSION): Bump to 60.
1110
1111         * mono-debug-debugger.h
1112         (MonoDebuggerEvent):
1113         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
1114         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
1115         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
1116         - rename `THREAD_CREATED' and `THREAD_EXITED' into
1117           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
1118         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
1119           meaning.
1120         (mono_debugger_add_symbol_file): Removed.
1121         (mono_debugger_add_type): Removed.
1122         (mono_debugger_lookup_type): Removed.
1123         (mono_debugger_lookup_assembly): Removed.
1124
1125         * domain.c
1126         (mono_domain_create): Call mono_debug_domain_create().
1127         (mono_init_internal): Call mono_debug_init_corlib().
1128
1129         * assembly.c
1130         (mono_assembly_close): Call mono_debug_close_image().
1131
1132 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
1133
1134         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
1135         mmap call.
1136
1137 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
1138
1139         * sgen-gc.c: ensure section->pin_queue_end is initialized
1140         correctly when non pinning objects in the section have been found.
1141
1142 2007-08-22  Marek Habersack  <mhabersack@novell.com>
1143
1144         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
1145         containing a list of directories separated by ':'. MSDN docs say
1146         the directories should be separated with ';'. Part of a bugfix for
1147         bug #81446
1148
1149 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
1150
1151         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
1152         it should MonoType and not MonoClass.
1153
1154 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
1155
1156         * culture-info-table.h : regenerated.
1157
1158 2007-08-20  William Holmes  <billholmes54@gmail.com>
1159
1160         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
1161          to call ReplaceFile Kernel32 on windows or in io-layer.
1162         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
1163         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
1164          as an internal call.
1165
1166         Code is contributed under MIT/X11 license.
1167
1168 2007-08-20  Jb Evain  <jbevain@novell.com>
1169
1170         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
1171         and MONO_EXCEPTION_FIELD_ACCESS.
1172
1173         * debug-helpers.[c|h]: new mono_field_full_name function.
1174
1175 2007-08-20  Mark Probst  <mark.probst@gmail.com>
1176
1177         * class.c: Removed class_security_level() and moved it to
1178         security-core-clr.c.
1179
1180         * security-core-clr.c, security-core-clr.h: class_security_level()
1181         is now public and renamed to mono_security_core_clr_class_level().
1182         It also looks for security attributes in the classes a class is
1183         nested in.
1184
1185 2007-08-20  Mark Probst  <mark.probst@gmail.com>
1186
1187         * security-core-clr.c, security-core-clr.h: CoreCLR security
1188         utility functions.
1189
1190         * Makefile.am: Added security-core-clr.[ch].
1191
1192         * security-manager.c, security-manager.h: Functions and enum for
1193         setting and getting the security mode.
1194
1195         * class.c: CoreCLR security checks.
1196
1197 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
1198
1199         * icall-def.h, process.c, process.h: implemented icall to get
1200         user/system processor times.
1201
1202 2007-08-17  Mark Probst  <mark.probst@gmail.com>
1203
1204         * domain.c, threads.c, class-internals.h, domain-internals.h: New
1205         reader-lock-free jit_info_table.
1206
1207 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
1208
1209         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
1210
1211         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
1212
1213         * object-internals.h (MonoException): Add missing _data member.
1214
1215 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
1216
1217         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
1218         checking that only methods with matching qname or fqname are picked
1219         from implemented interfaces.
1220
1221 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
1222
1223         * verify.c (do_newarr):added, do type verification of
1224         newarr ops, push the right value on the eval stack.
1225         * verify.c (mono_method_verify): use do_newarr
1226
1227
1228 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
1229
1230         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
1231         factored the common code into get_boxable_mono_type, which
1232         is now using mono_type_get_full, this fixed byref related tests.
1233
1234 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
1235
1236         * class.c: added mono_type_get_full, this function has the same
1237         behavior of mono_class_get_full but the returned MonoType has
1238         all metadata of the associated token in case of a typespec token.
1239         * class.c: added mono_type_retrieve_from_typespec, used by 
1240         mono_type_get_full to retrieve the token type.
1241         * class.c (mono_class_create_from_typespec): changed to use
1242         mono_type_retrieve_from_typespec.
1243         * class.c (mono_ldtoken): changed to use mono_type_get_full
1244         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
1245         * class-internals.h: exported mono_type_get_full for internal use.
1246
1247 2007-08-16  Jb Evain  <jbevain@novell.com>
1248
1249         * domain.c (supported_runtimes): add entry for
1250         the 'moonlight' runtime version.
1251
1252 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
1253
1254         * verify.c (mono_method_verify): small typo sliped in.  
1255
1256 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
1257
1258         * verify.c (do_unbox_value): added, do type verification of
1259         unboxing ops
1260         * verify.c (mono_method_verify): use do_unbox_value
1261
1262
1263 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
1264
1265         * verify.c (dump_stack_value): fixed typo, was printing string
1266         instead of object on stack.
1267         * verify.c (do_box_value): moved the byref check up as it leads
1268         to invalid code and should be done earlier.
1269         * verify.c: improved error messages for and ldobj
1270
1271 2007-08-15  William Holmes  <billholmes54@gmail.com>
1272
1273         * marshal.c (emit_marshal_custom): Omit the call to 
1274           marshal_native_to_managed when calling native to managed 
1275           and the argument is specified as an out argument.
1276
1277         Code is contributed under MIT/X11 license.
1278
1279 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
1280
1281         * verify.c: fixed the type checks for generics, function pointers and vectors.
1282         Added type verification for ldobj and ldtoken. The verifier
1283         would segfault if header or signature of a method contained references
1284         to non-existant types.
1285
1286 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
1287
1288         * marshal.c (cominterop_get_ccw): Patch from
1289         Bill Holmes to no walk up interface hierarchy. 
1290         All parent methods should be present in the interface for COM.
1291    
1292         Code is contributed under MIT/X11 license.
1293
1294 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
1295
1296         * marshal.c (emit_marshal_com_interface): Patch from
1297         Bill Holmes to handle COM Interfaces as return values
1298         for native->managed calls.
1299    
1300         Code is contributed under MIT/X11 license.
1301
1302 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
1303
1304         * marshal.c (cominterop_get_idispatch_for_object): Implement
1305         for runtime callable wrappers.
1306    
1307         Code is contributed under MIT/X11 license.
1308
1309 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
1310
1311         * pedump.c (main): changed from mono_init to mono_init_from_assembly
1312         so 2.0 types are accessible
1313
1314
1315 2007-08-13  Miguel de Icaza  <miguel@novell.com>
1316
1317         * domain.c (mono_init_internal): Call mono_assembly_load_friends
1318         once we load mscorlib.   Due to the order in which we initialize,
1319         the mono_assembly_load_full routine that loads mscorlib did not
1320         load friends.   We now load it once we load the
1321         mono_defaults.internals_visible_class class. 
1322
1323         * assembly.c: Expose the mono_load_friend_assemblies method.
1324
1325 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
1326
1327         * verify.c: improved the handling of boxing, better
1328         type checking for unary ops and conversion. Fix bug
1329         regarding managed pointer compatibility checking
1330
1331 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
1332
1333         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
1334
1335         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
1336
1337 2007-08-09  Raja R Harinath  <rharinath@novell.com>
1338
1339         * reflection.c (dup_type): Remove.
1340         * class.c (dup_type): Remove.
1341         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
1342         instead of the dodgy 'dup_type'.
1343         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
1344         handle the case where 'dup_type' needed the second argument.
1345
1346 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
1347
1348         * domain.c: Fix a warning.
1349
1350 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
1351
1352         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
1353         checking that methods with the same fqname are not overridden
1354         with a method from an ancestor.
1355
1356 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
1357
1358         * threads.c (free_thread_static_data_helper): Avoid a crash if
1359         thread->static_data is not yet set.
1360
1361 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
1362
1363         * marshal.c: Use correct image when emitting
1364         native wrapper for COM calls.
1365    
1366         Code is contributed under MIT/X11 license.
1367
1368 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
1369
1370         * icall-def.h, security.c, security.h :
1371           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
1372
1373 2007-08-07  Martin Baulig  <martin@ximian.com>
1374
1375         * mono-debug-debugger.h
1376         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
1377
1378         * domain.c (mono_domain_free): Call
1379         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
1380
1381 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
1382
1383         * verify.c (check_underflow, check_overflow): error message now returns IL offset
1384         * verify.c (in_same_block): code should test if either offset is inside the clauses
1385         * verify.c (mono_method_verify): push the exception into the eval stack of exception
1386         and filter blocks
1387
1388 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
1389
1390         * image.c (mono_image_close): Fix a leak.
1391
1392         * object.c (mono_runtime_invoke_array): Avoid using alloca.
1393
1394         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
1395
1396 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
1397
1398         * domain.c, threads.c, threads-types.h: fix memory retention issue
1399         with thread static variables not being cleared on domain unload.
1400         Reuse thread static slots after domain unload.
1401
1402 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
1403
1404         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
1405         nullable type.
1406
1407         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
1408         now done in mono_runtime_invoke_array.
1409
1410         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
1411         receiver is a nullable type.
1412
1413         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
1414         generic parameter.
1415
1416 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
1417
1418         * marshal.c: Implement COM Objects as return type for 
1419         managed->unmanaged calls. Added Release calls for COM Object
1420         out/return values in managed->unmanaged calls.
1421
1422         Code is contributed under MIT/X11 license.
1423
1424 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
1425
1426         * threads.h, threads-type.h: move the hazard pointer declarations
1427         to the private header.
1428
1429 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
1430
1431         * file-io.c, appdomain.c: memory leak fixes.
1432
1433 2007-08-02  Dick Porter  <dick@ximian.com>
1434
1435         * socket-io.c
1436         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
1437         SO_REUSEADDR setting into io-layer/sockets.c.
1438
1439 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
1440
1441         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
1442         from Object when called on a generic parameter. Fixes #82211.
1443
1444 2007-08-01  Dick Porter  <dick@ximian.com>
1445
1446         * file-io.c (convert_share): Test FileShare values bit-by-bit.
1447         Fixes bug 79250 yet again.
1448
1449 2007-07-30  Martin Baulig  <martin@ximian.com>
1450
1451         Merged the `debugger-dublin' branch.
1452
1453         * mono-debug.h
1454         (MonoDebugDataTable): New typedef.
1455         (MonoDebugMethodAddressList): New typedef.
1456         (MonoDebugWrapperData): Removed.
1457         (MonoDebugSymbolTable): Removed `current_data_table',
1458         `current_data_table_size', `current_data_table_offset'.
1459         (MonoDebugDataItemType): Moved into mono-debug.c.
1460         (MonoDebugMethodJitInfo): Remove `address'.
1461         (mono_debug_data_table): New global variable.
1462         (mono_debug_lookup_method_addresses): New public function.
1463         (mono_debug_find_method): Take a `MonoMethod *', not a
1464         `MonoDebugMethodInfo *'.
1465
1466         * mono-debug.c: Drop support for the old symbol tables.
1467
1468 2007-06-28  Martin Baulig  <martin@ximian.com>
1469
1470         * mono-debug.c (mono_debug_debugger_version): New public variable.
1471
1472 2007-07-31  William Holmes  <billholmes54@gmail.com>
1473
1474         * metadata.c Changed mono_type_create_from_typespec to not insert
1475           the type into the hash map until after
1476           do_mono_metadata_parse_type has completed.
1477         Fixes Bug #82194
1478         Code is contributed under MIT/X11 license.
1479
1480 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
1481
1482         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
1483         generic parameter. Fixes #82211.
1484
1485 2007-07-27  Jb Evain  <jbevain@novell.com>
1486
1487         * pedump.c (dump_metadata, dump_metadata_header): dump
1488         versions contained in the metadata header.
1489
1490 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
1491
1492         * threads.c: register small_id_table with the GC.
1493
1494 2007-07-27  Mark Probst  <mark.probst@gmail.com>
1495
1496         * threads.c, threads.h, class-internals.h, object-internals.h:
1497         Hazard pointers, to be used by lock-free parallel algorithms.
1498
1499 2007-07-26  Dick Porter  <dick@ximian.com>
1500
1501         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
1502         routine on non-windows platforms, as I've not managed to think of
1503         a non-kludgy way of doing this.  Finishes off bug 78739.
1504
1505 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
1506
1507         * object.c: properly setup interface_bitmap in proxy vtables.
1508
1509 2007-07-25  Marek Habersack  <mhabersack@novell.com>
1510
1511         * appdomain.c (get_shadow_assembly_location): do not use TickCount
1512         to create unique shadow copy target directories, use the domain's
1513         serial number instead. Each domain gets a unique target directory
1514         that way.
1515
1516         * domain.c (mono_domain_create): added code to increment domain
1517         shadow copy serial number and cache the value in the current
1518         domain structure.
1519
1520         * domain-internals.h (struct _MonoDomain): added a new field -
1521         shadow_serial to hold the serial number used in generation of
1522         shadow-copy directories. This is to make sure that the directory
1523         name is unique for each and every domain created. We avoid a race
1524         condition with overriding assemblies already in use by other app
1525         domains.
1526
1527 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
1528
1529         * class.c (mono_bounded_array_class_get): fixed memory leak when 
1530         binding generic parameters.
1531
1532 2007-07-24  Raja R Harinath  <rharinath@novell.com>
1533
1534         * metadata.c (do_mono_metadata_parse_generic_class): Use
1535         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
1536         error.
1537
1538 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
1539
1540         * loader.c, class-internals.h, reflection.c: removed the per-method
1541         generics hashtable: we use the global one through the call of
1542         mono_class_inflate_generic_method ().
1543
1544 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
1545
1546         * class.c, metadata.c, class-internals.h: introduce yet another
1547         generics global cache for inflated methods (fixes 98% of the perf
1548         issue in bug #81806).
1549
1550 2007-07-23  Raja R Harinath  <rharinath@novell.com>
1551
1552         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
1553         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
1554         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
1555         return a MonoGenericInst containing (a copy) of those types.
1556         (mono_metadata_inflate_generic_inst): Update to changes.
1557         (mono_metadata_parse_generic_inst): Likewise.
1558         (mono_get_shared_generic_inst): Likewise.
1559         * reflection.c (mono_class_bind_generic_parameters): Likewise.
1560         (mono_reflection_bind_generic_method_parameters): Likewise.
1561         * metadata-internals.h: Likewise.
1562         * icall.c (free_generic_context): Kill.
1563         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
1564
1565         * reflection.c (reflection_methodbuilder_to_mono_method): Use
1566         mono_metadata_type_dup.
1567         * marshal.c (mono_mb_create_method): Likewise.
1568
1569         * metadata.c (mono_metadata_type_dup): Rename from
1570         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
1571         MonoImage.  Handle a few more cases, esp. when no mempool is given.
1572         * marshal.c, metadata-internals.h: Update to changes.
1573
1574 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
1575
1576         * class.c: fixed a small leak for array classes and removed warning.
1577
1578 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
1579
1580         * loader.c (mono_method_get_param_token): Make this work on generic methods.
1581         Return 0x8000000 for return parameters. Fixes #82161.
1582
1583 2007-07-21  Marek Habersack  <grendello@gmail.com>
1584
1585         * appdomain.c (get_shadow_assembly_location): append the current
1586         ticks value to the path. Avoids overwriting the same assemblies by
1587         several threads at the same time.
1588
1589 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
1590         and Raja R Harinath  <rharinath@novell.com>
1591
1592         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
1593         Simplify slightly.
1594         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
1595         property for testing if a method is a generic method definition.
1596
1597 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
1598
1599         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
1600
1601 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1602
1603         * verify.c: used function from private branch, reverted to the one in class.h 
1604
1605 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1606
1607         * verify.c: a typo slipped in and the code wont compile
1608
1609 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1610
1611         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
1612         disabled box instruction as it is doing the wrong thing
1613         improved stack dump messages, now it is easier to debug type related issues
1614
1615
1616 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
1617
1618         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
1619
1620 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1621
1622         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
1623         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
1624         grouped with class and valuetype. This change will simply 
1625         the code as it should be handled just like unmanaged pointers.
1626
1627 2007-07-19  Mark Probst  <mark.probst@gmail.com>
1628
1629         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
1630
1631 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1632
1633         * verify.c: several stack merge issues fixed, reference comparisons now
1634         check the type size. strict type check now works correctly.
1635         added more uses of IS_MANAGED_POINTER macro.
1636         fixed issues pointed by running the test suite against .net.
1637         
1638
1639 2007-07-19  Mark Probst  <mark.probst@gmail.com>
1640
1641         * class.c, loader.c, class-internals.h: Removed the
1642         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
1643         defines.
1644
1645         * icall.c: Better error checking in some internal reflection
1646         methods.
1647
1648 2007-07-18  William Holmes  <billholmes54@gmail.com>
1649
1650         * filewatcher.c : removed unused variable 'filename' in 
1651           ves_icall_System_IO_FSW_SupportsFSW
1652
1653 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
1654
1655         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
1656         obsolete, removed.
1657
1658 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
1659
1660         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
1661         
1662         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
1663
1664 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
1665
1666         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
1667         Implement generics support.
1668         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
1669
1670         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
1671         type_args and method_args arguments.
1672         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
1673         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
1674         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
1675
1676 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
1677
1678         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
1679           It adds a rootimage parameter to mono_reflection_get_type_internal,
1680           adds new function mono_reflection_get_type_with_rootimage and use
1681           the rootimage to resolve the types instead of the current image
1682
1683 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1684
1685         * culture-info-table.h: Forgot to update after r78304.
1686
1687 2007-07-13  Raja R Harinath  <rharinath@novell.com>
1688
1689         * class.c (mono_class_is_open_constructed_type)
1690         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
1691
1692 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
1693
1694         * class.c (mono_bounded_array_class_get):  method fails if used with
1695         an incomplete TypeBuilder enum (no basetype field), fixed it by 
1696         avoiding calculating the size for such array as it cannot be instantiated.
1697         Fix bug #82015
1698
1699 2007-07-12  Raja R Harinath  <rharinath@novell.com>
1700
1701         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
1702         field.
1703         * metadata.c, reflection.c: Update to changes.
1704
1705 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
1706
1707         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
1708         mono_class_is_valid_enum, they are used to valide a enum when loading.
1709         * reflection.c: used new functions to throw TypeLoadException when and
1710         invalid enum is build with TypeBuilder. Fixes #82018
1711   
1712 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
1713
1714         * object.c: forgot commit of mono_class_setup_methods () to access
1715         iface->methods.
1716         * object-internals.h: added a few more handy fields to
1717         MonoIMTCheckItem.
1718
1719 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
1720
1721         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
1722         iface->methods.
1723
1724 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
1725
1726         * class-internals.h, object-internals.h, object.c: IMT-based
1727         interface invocation core from Massimiliano Mantione
1728         (massi@ximian.com) with a reworked arch-specific interface,
1729         bsearch implementation and a few bugfixes and memory savings by me.
1730
1731 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
1732
1733         * class.c (mono_class_create_from_typedef): mono would segfault if 
1734         an enum did not have a __value field. It now throws a TypeLoadException
1735         for such cases. Fix bug #82022
1736
1737 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
1738
1739         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
1740
1741 2007-07-09  Mark Probst  <mark.probst@gmail.com>
1742
1743         * class.c (mono_class_init): If a class is already inited but has
1744         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
1745
1746 2007-07-09  Mark Probst  <mark.probst@gmail.com>
1747
1748         * class.c: Properly handle the case of an unimplemented interface
1749         method.  Fixes: 81673.
1750
1751 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
1752
1753         * class-internals.h, object.c: cleanup patch from massi: use
1754         MonoVTable->interface_bitmap since the vtable interfaces offset array
1755         is going away.
1756
1757 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
1758
1759         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
1760         GetMDStreamVersion icall instead.
1761
1762 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
1763
1764         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
1765         not use mono_dl_build_path() with a full library name: makes
1766         fallbacks to libgaim and libfam work.
1767
1768 2007-07-06  William Holmes  <billholmes54@gmail.com>
1769
1770         * assembly.c: Added a continue statement in probe_for_partial_name when
1771          parse_assembly_directory_name fails.  Fixes : 82002
1772
1773 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
1774
1775         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
1776         and added a verification  for TYPEDBYREF.
1777         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
1778         make native int interchangeable with int32 and some small cleanup and formating.
1779         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
1780         handle byref of byref.
1781         * verify.c (push_local): handle byref of byref.
1782         * verify.c (do_binop): invalid mix of values is unverifiable
1783         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
1784         added visibility checks
1785         * verify.c (field related method): added visibility checks
1786         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
1787
1788 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
1789
1790         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
1791         string.
1792
1793 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
1794
1795         * profiler.c (mono_profiler_load): Fix an off-by-one error.
1796
1797         * marshal.c (emit_marshal_string): When returning a string from managed code,
1798         allways make a copy even for unicode strings. Fixes #81990.
1799
1800 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
1801
1802         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
1803         of byref generic inst types (bug #81997).
1804
1805 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
1806
1807         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
1808         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
1809
1810 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
1811
1812         * marshal.c (emit_marshal_string): Add support for unicode strings in
1813         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
1814
1815 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
1816
1817         * verify.c: field load/store are now verified, missing only access checks now
1818
1819 2007-06-28  Martin Baulig  <martin@ximian.com>
1820
1821         * mono-debug.c (mono_debug_debugger_version): New public variable.
1822
1823 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
1824
1825         * locales.c: When constructing DateTimeFormat or NumberFormat for
1826         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
1827         MonoCultureInfo contructed from the current locale is always
1828         read-only and has UseUserOverride set to true. All MonoCultureInfo
1829         instances returned for GetCultures have both IsReadOnly and
1830         UseUserOverride set to true. Fixes part of bug #81930.
1831
1832 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
1833
1834        * icall-def.h: Update System.__ComObject icalls
1835        * marshal.c: Avoid managed transition (and object creation)
1836        when looking up COM interface in RCW.
1837        * marshal.h: Ditto.
1838        
1839        Code is contributed under MIT/X11 license.
1840
1841 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
1842
1843         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
1844         to avoid crashes during assembly unloading.
1845
1846 2007-06-22  Raja R Harinath  <rharinath@novell.com>
1847
1848         Fix MethodInfo.IsGenericMethodDefinition
1849         * reflection.c (mono_reflection_bind_generic_method_parameters):
1850         Rearrange code to ensure we always uses a generic method definition.
1851         * class.c (mono_class_inflate_generic_method_full): Set
1852         'generic_container' field only for generic method definitions.
1853         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
1854         Use presense of 'generic_container' field as indication of being a
1855         generic method definition.
1856
1857 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
1858
1859         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1860
1861         * object-internals.h: Reflect changes in the layout of the managed Delegate
1862         class.
1863         
1864         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
1865         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
1866         runtime memory used by the dynamic method. Fixes #77146.
1867
1868 2007-06-21  Dick Porter  <dick@ximian.com>
1869
1870         * file-io.h: 
1871         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
1872         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
1873         81767.
1874
1875 2007-06-21  Raja R Harinath  <rharinath@novell.com>
1876
1877         * reflection.c (method_encode_methodspec): Add a tripwire.
1878         * class.c (inflate_generic_type): The fully open generic type is
1879         not the same as the generic type definition.
1880
1881 2007-06-21  Martin Baulig  <martin@ximian.com>
1882
1883         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
1884
1885         * mono-debug-debugger.h
1886         (MonoDebuggerBreakpointInfo): Removed.
1887         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
1888         (mono_debugger_remove_breakpoint): Likewise.
1889         (mono_debugger_breakpoint_callback): Likewise.
1890         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
1891
1892 2007-06-21  Raja R Harinath  <rharinath@novell.com>
1893
1894         * metadata.c (mono_metadata_lookup_generic_class): The fully open
1895         generic type is not the same as the generic type definition.
1896         * class.c (mono_generic_class_get_class): Likewise.
1897
1898 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
1899
1900         * icall.c: The second argument to 
1901         System.Reflection.MethodBase.GetMethodFromHandleInternalType
1902         is a MonoType not a MonoClass.
1903
1904 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
1905
1906         * verify.c: support for function pointers in the verifier
1907
1908 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
1909
1910         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
1911
1912 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
1913
1914         * assembly.c: removed Mono.Data.SqliteClient from the list of
1915         forward-compatible assemblies as it breaks the ABI (bug #81899).
1916
1917 2007-06-19  Raja R Harinath  <rharinath@novell.com>
1918
1919         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
1920         lookup/update with the loader lock.
1921         * reflection.c (mono_class_bind_generic_parameters): No need to
1922         protect mono_metadata_lookup_* with the loader lock.
1923         * class.c (inflate_generic_type): Likewise.
1924         
1925         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
1926         on a generic instantiated type.
1927
1928 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
1929
1930         *verify.c: produce meanfull error messages on verification error
1931         *verify.c: fixed some cases of verification errors reported as validation errors
1932         *pedump.c: fixed the error name array, now it shows validation errors properly
1933         *verify.h: fixed the contant that should be used for verification errors
1934
1935 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
1936
1937         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
1938         for bug #77596, 81858 and 80743 (generics data structures on domain
1939         unload).
1940
1941 2007-06-15  Raja R Harinath  <rharinath@novell.com>
1942
1943         Avoid allocating 'MonoGenericContext' on the heap.
1944         * class-internals (_MonoMethodInflated::context): Make field
1945         inline, not a pointer.
1946         * loader.c (method_from_methodspec): Allocate 'new_context' on the
1947         stack.  Use the context embedded within the inflated method as the
1948         hash key, rather than 'new_context'.
1949         * class.c (inflate_generic_context): Simplify.  Return a struct
1950         rather than allocating on the heap.
1951         (mono_class_inflate_generic_method_full): Update to changes.  Now,
1952         doesn't salt away a copy of the context -- simplifying the
1953         lifetime rules of a 'MonoGenericContext *'.
1954         (mono_method_get_context): Return pointer to embedded context.
1955         (setup_generic_array_ifaces): Allocate temporary context on stack.
1956         * reflection.c (inflate_mono_method): Likewise.
1957         (mono_reflection_bind_generic_method_parameters): Likewise.
1958         Use the context embedded within the inflated method as the hash key.
1959
1960         Avoid a source of allocation of 'MonoGenericContext'.
1961         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
1962         and 'cached_context' fields into embedded 'MonoGenericContext' field.
1963         * class.c: Update to changes.
1964         (mono_generic_class_get_context): Simplify drastically.  Now just
1965         returns a pointer to the field.
1966         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
1967         argument as a const pointer.
1968         (mono_metadata_generic_context_equal): Likewise.
1969         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
1970         Update to changes.
1971
1972 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
1973
1974         * verify.c improved the handling of brtrue/brfalse, factored out common code
1975
1976 2007-06-14  Raja R Harinath  <rharinath@novell.com>
1977
1978         Kill MonoGenericMethod.
1979         * class-internals.h (MonoGenericContext::method_inst): Rename from
1980         'gmethod' and convert to a MonoGenericInst.
1981         (MonoGenericMethod): Remove.
1982         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
1983         * loader.c (method_from_methodspec): Update to changes.  Use a
1984         MonoGenericContext as the key to the hashtable.
1985         * metadata.c (mono_metadata_generic_context_equal): Rename from 
1986         'mono_metadata_generic_method_equal' and take MonoGenericContext.
1987         (mono_metadata_generic_context_hash): Likewise from
1988         'mono_metadata_generic_method_hash'.  Change hash function.
1989         (mono_metadata_load_generic_params): Update to changes.
1990         (mono_get_shared_generic_method): Remove.
1991         * metadata-internals.h (mono_get_shared_generic_method): Remove.
1992         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
1993         (inflate_generic_context): Likewise.
1994         (mono_class_inflate_generic_method_full): Likewise.
1995         (setup_generic_array_ifaces): Likewise.
1996         (mono_class_create_from_typespec): Likewise.
1997         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
1998         (method_encode_methodspec): Update callsite.
1999         (reflection_methodbuilder_to_mono_method): Update to changes.
2000         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
2001         MonoGenericContext as the key to the hashtable.
2002         (inflate_mono_method): Update to changes.
2003
2004         * class-internals.h (MonoGenericMethod::container): Remove.
2005         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
2006
2007 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
2008
2009         * profiler-private.h, profiler.c, profiler.h: added API to profile
2010         exception events.
2011
2012 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
2013
2014         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
2015
2016 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
2017
2018         * verify.c: method invocation is now validated, now we verify parameter types on stack.
2019         Fixed overflow and underflow not aborting the verification process.
2020
2021 2007-06-13  Mark Probst  <mark.probst@gmail.com>
2022
2023         * class-internals.h (MonoStats): Added stats entries for dynamic
2024         code allocations.
2025
2026 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
2027
2028         * loader.c (mono_free_method): Free header->locals and header->clauses.
2029
2030         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
2031         dynamic case.
2032
2033         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
2034
2035         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
2036
2037 2007-06-12  Raja R Harinath  <rharinath@novell.com>
2038
2039         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
2040         the tables.
2041
2042 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
2043
2044         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
2045
2046 2007-06-11  Raja R Harinath  <harinath@gmail.com>
2047
2048         MonoGenericMethod on a diet
2049         * class-internals.h (_MonoMethodInflated::reflection_info): Move
2050         here ...
2051         (_MonoGenericMethod::reflection_info): ... from here.
2052         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
2053         Update to changes.
2054         * reflection.c (inflate_mono_method): Likewise.
2055         (mono_reflection_bind_generic_method_parameters): Likewise.
2056
2057 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
2058
2059         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
2060         *verify.c: factored long ldarg forms to share code with short forms
2061
2062 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
2063
2064         *verify.c: fixed code formating factored some duplicate code
2065         into a new function
2066
2067         *verify.h: fixed binary incompatibility introduced earlier
2068
2069         *pedump.c: fixed formating
2070
2071 2007-06-11  Raja R Harinath  <harinath@gmail.com>
2072
2073         Fix assertion when disassembling Mono.C5.dll
2074         * loader.c (method_from_methodspec): Avoid inflating a method
2075         twice with the same context.  If the methodref is inflated, use
2076         the declaring method instead.
2077
2078         * class.c (mono_class_from_generic_parameter): Fix case similar to
2079         bug #81830 handled below, but for method containers.
2080
2081 2007-06-10  Raja R Harinath  <harinath@gmail.com>
2082
2083         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
2084         get_shared_generic_class.  Directly inflate the instance.
2085         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
2086         (inflate_generic_class): Delete.
2087         (get_shared_generic_class): Delete.  Move setting of
2088         'cached_class' and 'cached_context' ...
2089         * metadata.c (mono_metadata_lookup_generic_class): ... here.
2090
2091         * metadata.c (mono_metadata_lookup_generic_class): Change
2092         signature to take the components of a MonoGenericClass rather than
2093         an allocated MonoGenericClass.  Change semantics to be intern-like.
2094         * reflection.c (mono_class_bind_generic_parameters): Update to
2095         changes.  Make locking region tighter.
2096         * class.c (inflate_generic_class): Update to changes.
2097         (get_shared_generic_class): Likewise.
2098         * metadata-internals.h: Likewise.
2099
2100         * reflection.c (mono_class_bind_generic_parameters): Take and
2101         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
2102         (mono_reflection_bind_generic_parameters): Use
2103         'mono_class_bind_generic_parameters' rather than duplicate the code.
2104         * class.c (mono_bounded_array_class_get): Update to changes.
2105         * object-internals.h: Likewise.
2106
2107         * reflection.c (mono_class_bind_generic_parameters): Only support
2108         parameterizing generic type definitions.  Remove support for other
2109         open types.
2110
2111 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
2112
2113         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
2114
2115         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
2116         in the dynamic case.
2117
2118 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
2119
2120         * threads.c: When cleaning up thread, reset the Background bit.
2121         Fixes bug #81720.
2122
2123 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
2124
2125        * metadata.c: Move variable declarations to top of scope.
2126        * verify.c: Move variable declarations to top of scope.
2127
2128        Code is contributed under MIT/X11 license.
2129
2130 2007-06-08  Raja R Harinath  <rharinath@novell.com>
2131
2132         * reflection.c (mono_class_bind_generic_parameters): Replace
2133         open-coded loop with mono_metadata_inflate_generic_inst.
2134
2135         * class.c (get_shared_generic_class): Don't call
2136         mono_get_shared_generic_inst.  Use the container's own
2137         'class_inst'.
2138
2139         * metadata.c (mono_metadata_load_generic_params): Move
2140         initialization of 'context' field here from ...
2141         * class.c (mono_class_create_from_typedef): ... here, and ...
2142         * loader.c (mono_get_method_from_token): ... here.
2143
2144         * class.c (get_shared_generic_class): Rename from
2145         mono_get_shared_generic_class and make static.
2146         (mono_get_shared_generic_inst): Move to metadata.c.
2147         * loader.c (mono_get_shared_generic_method): Likewise.
2148         * class-internals.h, metadata-internals.h: Update to changes.
2149
2150         Fix #81830
2151         * class.c (mono_class_from_generic_parameter): Don't assume a
2152         generic container owner exists.  Generic containers from monodis
2153         don't have any.
2154
2155 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
2156
2157         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
2158         * verify.h: new typedefs to returns the non-verifiable status
2159         * verify.c: initial implementation of generics, stack merging and object compatibility check
2160
2161 2007-06-06  Mark Probst  <mark.probst@gmail.com>
2162
2163         * class.c, image.c, class-internals.h (MonoImage): class_cache is
2164         a MonoInternalHashTable again (fixed bug in internal hash table
2165         code).
2166
2167 2007-06-06  Mark Probst  <mark.probst@gmail.com>
2168
2169         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
2170         MonoInternalHashTable again (fixed bug in internal hash table
2171         code).
2172
2173 2007-06-06  Mark Probst  <mark.probst@gmail.com>
2174
2175         * class.c, image.c, class-internals.h, domain.c,
2176         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
2177         changes.  Have to figure out what makes them break the SWF
2178         regression.
2179
2180 2007-06-04  Mark Probst  <mark.probst@gmail.com>
2181
2182         * class.c, image.c, class-internals.h (MonoImage): class_cache is
2183         a MonoInternalHashTable now.
2184
2185 2007-06-04  Mark Probst  <mark.probst@gmail.com>
2186
2187         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
2188         MonoInternalHashTable now.
2189
2190 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
2191
2192         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
2193         invoke_impl code.
2194
2195         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
2196
2197         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
2198         dependent trampoline.
2199
2200         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2201
2202         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
2203
2204 2007-05-29  Robert Jordan  <robertj@gmx.net>
2205
2206         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
2207
2208 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
2209
2210         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
2211
2212 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
2213
2214        * marshal.c: Fix interface lookup loops for
2215        cominterop_get_com_slot_for_method and 
2216        cominterop_get_method_interface. Only need to lookup
2217        if type is a class, else use interface type method is on.
2218
2219        Code is contributed under MIT/X11 license.
2220
2221 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
2222
2223         * reflection.c: HasSecurity can be present even if no specially 
2224         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
2225         SecurityAttribute). Fix CAS regression tests on buildbot.
2226
2227 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
2228
2229        * appdomain.c: Add configure checks for header files.
2230        * image.c: Add configure checks for header files.
2231        * file-io.c: Add configure checks for header files.
2232        * debug-mono-symfile.c: Add configure checks for header files.
2233        * threadpool.c: Add configure checks for header files.
2234        * console-io.c: Add configure checks for header files.
2235        * profiler.c: Add configure checks for header files.
2236        * rawbuffer.c: Add configure checks for header files.
2237        * icall.c: Add configure checks for header files.
2238        * rand.c: Add configure checks for header files.
2239        * socket-io.c: Add configure checks for header files.
2240
2241        Code is contributed under MIT/X11 license.
2242
2243 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
2244
2245         * reflection.c (mono_custom_attrs_from_builders): Remove the 
2246         assertion as it breaks the build.
2247         
2248         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
2249
2250         * reflection.c (lookup_custom_attr): Make a copy here too.
2251
2252         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
2253         dynamic images.
2254
2255         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
2256         images.
2257
2258         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
2259         info.
2260
2261 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
2262
2263         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
2264         (load_cattr_value): Ditto.
2265
2266 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
2267
2268         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
2269
2270 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
2271
2272         * threads.c: In "start_wrapper", set apartment_state to MTA if
2273         apartment_state is Unknown and we're running on 2.0 profile or
2274         higher.
2275         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
2276         to main method, then set apartment_state to Unknown on 1.0 profile,
2277         and MTA on 2.0 profile.
2278
2279 2007-05-16  Jb Evain  <jb@nurv.fr>
2280
2281         * class-internals.h (MonoDefaults): Add an attribute_class and
2282           customattribute_data_class.
2283         * domain.c (mono_init_internal): Populate them.
2284         * reflection.c: Use them to remove duplicates. Make a vew
2285         MonoClass variables `static'.
2286
2287 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
2288
2289         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
2290         step in implementing IMT, so that all isinst checks now can go
2291         through the bitmap.
2292         This was needed because vtables for TransparentProxy need to look
2293         like the vtable of the "target" class, so they need to point to
2294         its interface bitmap directly.
2295
2296         * object.c: inside "mono_class_create_runtime_vtable" and
2297         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
2298
2299 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
2300
2301         * object-internals.h
2302           culture-info.h : added territory field in MonoCulture and
2303           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
2304         * locales.c : fill territory field above too.
2305         * culture-info-table.h : regenerated.
2306
2307 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
2308
2309         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
2310         Fixes #81599.
2311
2312 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
2313
2314         * object.c: Always initialize apartment, even if 
2315         there is no custom attributes on entry point.
2316         
2317         Code is contributed under MIT/X11 license.
2318
2319 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
2320
2321         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
2322         * metadata.c: If no encoding is set, check for unicode
2323         on class.
2324         
2325         Code is contributed under MIT/X11 license.
2326
2327 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
2328
2329         * threads.c: Handle if mono_thread_current returns NULL 
2330         
2331         Code is contributed under MIT/X11 license.
2332
2333 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
2334
2335         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
2336         in start_wrapper. Added mono_thread_init_apartment_state and
2337         mono_thread_cleanup_apartment_state.
2338         * object.c: Initialize thread apartment state on main thread
2339         by checking for STAThreadAttribute on entry point.
2340         * object-internals.h: Add apartment_state field to MonoThread.
2341         * threads-types.h: Add unmanaged definition of 
2342         System.Threading.ApartmentState, MonoThreadApartmentState.
2343         
2344         Code is contributed under MIT/X11 license.
2345         
2346 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
2347
2348         * class.c: Fix windows build.
2349         * class-internals.h: Fix windows build.
2350         
2351         Code is contributed under MIT/X11 license.
2352
2353 2007-05-08  Robert Jordan  <robertj@gmx.net>
2354
2355         * process.c (CreateProcess_internal):
2356         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
2357         .CreateNoWindow was specified. Fixes #81496.
2358
2359 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
2360
2361         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
2362         step in implementing IMT, replaced it with two compact arrays
2363         (interfaces_packed and interface_offsets_packed) and a bitmap that
2364         is used for isinst checks (interface_bitmap).
2365
2366         * class.c: (compare_interface_ids): compare function to pass to
2367         bsearch when looking for an interface with a given id.
2368         (mono_class_interface_offset): reimplemented using bsearch on
2369         interfaces_packed, getting the offset from interface_offsets_packed.
2370         (print_implemented_interfaces): utility debugging function.
2371         (setup_interface_offsets): reworked to initialize interfaces_packed,
2372         interface_offsets_packed and interface_bitmap.
2373
2374         * object.c: replaced all accesses to "MonoClass.interface_offsets"
2375         with uses of interfaces_packed and interface_offsets_packed.
2376
2377 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
2378
2379         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
2380         mono_class_interface_offset prototype to wrap all accesses to
2381         "MonoClass.interface_offsets".
2382
2383         * class.c: Implemented mono_class_interface_offset, and wrapped all
2384         accesses to "MonoClass.interface_offsets".
2385
2386         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
2387         "MonoClass.interface_offsets".
2388
2389 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
2390
2391         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
2392         GetMethodFromHandle overloads (bug #78637).
2393
2394 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
2395
2396         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
2397         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
2398
2399 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
2400
2401         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
2402         #81498.
2403
2404         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
2405         gracefully.
2406         (mono_custom_attrs_from_index): Ditto.
2407
2408         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
2409         Fixes #81501.
2410
2411 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
2412
2413         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
2414         is now allocated from a mempool.
2415
2416 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
2417
2418         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
2419         caller holds threads_lock, leading to deadlocks. Fixes #81476.
2420
2421 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
2422
2423         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
2424         mono_loader_clear_error () too late. Fixes #81463.
2425
2426 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
2427
2428         * culture-info-table.h : regenerated.
2429
2430 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
2431
2432         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
2433         is missing.
2434
2435 2007-04-25  Dick Porter  <dick@ximian.com>
2436
2437         * Makefile.am: Put the mingw enforced-optimisation back into the
2438         PLATFORM_WIN32 section.
2439
2440 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
2441
2442         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
2443         patch.
2444
2445         * image.c (mono_image_load_module): New API function to load a module reference.
2446
2447         * image.c (load_modules): Load modules lazily. Fixes #80812.
2448
2449         * class.c (mono_class_from_typeref): Use mono_image_load_module.
2450         
2451         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
2452
2453         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
2454         to mono_image_load_module_dynamic.
2455
2456 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
2457
2458         * marshal.c: Fix calling convention for CCW on non-windows
2459         platforms. STDCALL on windows, CDECL everywhere else to work 
2460         with XPCOM and MainWin COM.
2461         
2462         Code is contributed under MIT/X11 license.
2463
2464 2007-04-23  Martin Baulig  <martin@ximian.com>
2465
2466         Fix #80969.
2467
2468         * loader.c
2469         (method_from_memberref): Added `gboolean *used_context' argument.
2470         (mono_get_method_from_token): Likewise.
2471         (mono_get_method_full): Don't insert the method in the cache when
2472         `used_context' is true.
2473
2474 2007-04-23  Raja R Harinath  <rharinath@novell.com>
2475
2476         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
2477
2478         * reflection.c (mono_reflection_bind_generic_parameters): Don't
2479         create new MonoTypes for returned types.
2480         * class.c (mono_generic_class_get_class): Export mono-internal.
2481         * class-internals.h: Update to changes.
2482
2483 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
2484
2485         * threadpool.c, threadpool.h, icall-def.h: patch from
2486         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
2487
2488 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
2489
2490         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
2491         
2492         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
2493
2494         * threads.c (mono_thread_get_stack_bounds): New helper function.
2495
2496         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
2497         Correctly compute stack bounds when attaching. Fixes #81394.
2498
2499 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
2500
2501         * reflection.c: fix handling of doubles in custom attributes
2502         for the arm-fpa format (bug #81368).
2503
2504 2007-04-18  Raja R Harinath  <rharinath@novell.com>
2505
2506         * reflection.c (assembly_add_win32_resources): Mildly relax an
2507         bounds check to let the end pointer point just past the end of the
2508         allocated buffer.  (may fix #81384)
2509
2510 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
2511
2512         * culture-info-table.h : regenerated.
2513
2514 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
2515
2516         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
2517         the thread is aborted early.
2518
2519 2007-04-05  Dick Porter  <dick@ximian.com>
2520
2521         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
2522         FindFirstFile()/FindNextFile() to find entries.  This lets the
2523         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
2524         81038.
2525
2526         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
2527         the parameters of
2528         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
2529
2530 2007-04-04  Martin Baulig  <martin@ximian.com>
2531
2532         * debug-helpers.c
2533         (mono_method_desc_full_match): Add support for nested classes.
2534
2535 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
2536
2537         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
2538
2539 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
2540
2541         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
2542         waiting for too many threads.
2543
2544 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
2545
2546         * environment.c: Fix return value check on uname so we can get the 
2547         executing version on Solaris operating systems.
2548
2549 2007-03-28  Jb Evain  <jbevain@gmail.com>
2550
2551         * class.c (mono_type_get_name_recurse): Complete the
2552         fix for the creation of assembly qualified names for
2553         pointer types. Fixes #81208.
2554
2555 2007-03-27  Dick Porter  <dick@ximian.com>
2556
2557         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
2558         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
2559         changed.
2560
2561         * threads.c
2562         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
2563         the value of ReleaseMutex().
2564
2565 2007-03-27  Dick Porter  <dick@ximian.com>
2566
2567         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
2568         in little-endian order, not network endian, so must be converted
2569         to host endian here.  Fixes bug 80593.
2570
2571 2007-03-22  Jb Evain  <jbevain@gmail.com>
2572
2573         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
2574         qualified names for pointer types. Fixes #81208.
2575
2576 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
2577
2578         * marshal.c: Add support for PreserveSigAttribute. 
2579         
2580         Code is contributed under MIT/X11 license.
2581
2582 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
2583
2584         * process.c: Fix endianness issues. Fixes #81126.
2585
2586         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
2587         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
2588
2589         * image.c (mono_image_lookup_resource): Make this work on big-endian
2590         machines.Change API contract so the caller needs to free the return value.
2591         
2592         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
2593         API change.
2594         
2595 2007-03-14  Martin Baulig  <martin@ximian.com>
2596
2597         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
2598         mono_type_get_desc() as well.
2599
2600 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
2601
2602         * icall.c:  Fix environ access in VS.  
2603         
2604 2007-03-13  Alp Toker  <alp@atoker.com>
2605
2606         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
2607         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
2608         #63841.
2609
2610 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
2611
2612         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
2613         circular references among dynamic methods. Fixes #81091.
2614
2615         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
2616
2617 2007-03-09  Martin Baulig  <martin@ximian.com>
2618
2619         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
2620
2621 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
2622
2623         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
2624         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
2625         
2626         Code is contributed under MIT/X11 license.
2627         
2628 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
2629
2630         * loader.c: Reapply patch for bug #79424.
2631
2632 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
2633
2634         * metadata.c (mono_type_to_unmanaged): Only convert object to
2635         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
2636
2637 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
2638
2639         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
2640         (and incorrectly set) is_reference field from MonoGenericInst.
2641
2642 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
2643
2644         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
2645         a little earlier.
2646
2647         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
2648
2649         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
2650
2651 2007-03-05  Miguel de Icaza  <miguel@novell.com>
2652
2653         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
2654         FileOptions.1 value to mean "temporary", map that to
2655         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
2656
2657         Fixes 80688
2658
2659 2007-03-03  Marek Habersack  <mhabersack@novell.com>
2660
2661         * appdomain.c: implement MS .Net style shadow copying. Copies of
2662         the assemblies are made in a subdirectory of the dynamic base
2663         directory, the assembly names are preserved.
2664         Copy .mdb and .config files along with the assemblies being shadowed.
2665
2666 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
2667
2668         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
2669         (emit_marshal_handleref): Ditto.
2670
2671         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
2672         on Visual C++. Fixes #80671.
2673
2674 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
2675
2676         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
2677         for clone operations.
2678
2679 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
2680
2681         * marshal.c: Fix warnings.
2682
2683 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
2684
2685         * loader.c: allow case-insensitive matching of the dll name
2686         in dllmap handling when prefixed with "i:".
2687
2688 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
2689
2690         * threads.c: Fix #ifdef for dummy_apc function for VS.
2691
2692 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
2693
2694         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
2695
2696 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
2697         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
2698         giving precedence to the methods with a fully qualified name
2699         (InterfaceName.MethodName) when building the interface sections
2700         of the vtable.
2701
2702 2007-02-16  Dick Porter  <dick@ximian.com>
2703
2704         * threadpool.c (append_job): Fix fast-path array handling, so it's
2705         less likely the array will grow exponentially when the load is
2706         heavy.
2707
2708 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
2709
2710         * metadata-internals.h, loader.c: fix dllmap lookup order
2711         for non-function maps, too, and prepare for fallback code.
2712
2713 2007-02-12  Robert Jordan  <robertj@gmx.net>
2714
2715         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
2716         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
2717         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
2718         GlobalFree. Fixes a part of bug #77075.
2719
2720 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
2721
2722         * loader.c: implemented typedef parent in field memberref.
2723
2724 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
2725
2726         * marshal.c: Fix warnings and remember to call Release on
2727         IUnknown of RCW.
2728         
2729         Code is contributed under MIT/X11 license.
2730
2731 2007-02-10  Miguel de Icaza  <miguel@novell.com>
2732
2733         * class-internals.h: Add MonoHandleRef definition, and
2734         handleref_class to mono_defaults. 
2735
2736         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
2737         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
2738
2739         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
2740         (do nothing on this stage)
2741         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
2742         (emit_marshal_handleref): New method, used for argument handling
2743         of HandleRefs. 
2744
2745 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
2746
2747         * class.c (mono_class_setup_parent): Lazily init com types.
2748         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
2749         init com types.
2750         * object.c (mono_remote_class_vtable): Lazily init com types.
2751         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
2752         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
2753         * domain-internals.h: Expose mono_init_com_types.
2754         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
2755         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
2756         Add support for COM Callable Wrapper marshalling.
2757         * marshal.h: Add icall definitions.
2758         * gc.c: Handle freeing of CCWs in finalizer code.
2759         
2760         Code is contributed under MIT/X11 license.
2761
2762 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
2763
2764         * reflection.c: changed all the signature encoding code to use
2765         a variable-sized buffer.
2766
2767 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
2768
2769         * marshal.c: locking fixes: never take the loader lock
2770         or other runtime locks when holding the marshal lock
2771         (fixes bug#80664).
2772
2773 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
2774
2775         * marshal.c: make the delegate function pointer mapping
2776         work for the moving GC.
2777
2778 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
2779
2780         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
2781         for bug #80618.
2782
2783 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
2784
2785         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
2786         gmodule.
2787
2788 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
2789
2790         * threadpool.c: made the code moving-GC safe.
2791
2792 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
2793
2794         * assembly.c, boehm-gc.c, class-internals.h, class.c,
2795         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
2796         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
2797         warning cleanup.
2798         * reflection.c: warning cleanup, some threading and moving GC fixes.
2799
2800 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
2801
2802         * class.c, loader.c: create the needed Set/Get/Address array methods
2803         as well as the .ctors in mono_class_init (), fixes bug #80567.
2804
2805 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
2806
2807         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
2808         we doesn't decrease its alignment. Should fix the sparc build.
2809
2810 2007-01-24  Dick Porter  <dick@ximian.com>
2811
2812         * socket-io.c
2813         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
2814         Create the returned object if we need to ignore an unsupported
2815         socket option.  Fixes a segfault reported by Atsushi.
2816
2817 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
2818
2819         * class.c, object.c: restrict GC-tracked fields to
2820         UIntPtr fields used inside corlib, so we provide better
2821         type info to the GC and also allow broken packing as in
2822         bug #80580.
2823
2824 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
2825
2826         * sgen-gc.c: removed duplicated function.
2827
2828 2007-01-19  Miguel de Icaza  <miguel@novell.com>
2829
2830         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
2831         value that means that the value is not supported, but that we
2832         should not return a failure, but instead report this as a
2833         successful operation.
2834
2835 2007-01-19  Raja R Harinath  <rharinath@novell.com>
2836
2837         Fix tests/bug79956.2.il
2838         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
2839         (mono_generic_class_get_class): If the generic definition in an
2840         enum, copy over other fields related to it.
2841
2842 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
2843
2844         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
2845         genericinst enums (bug #79215).
2846
2847 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
2848         * class.c: Fix bug 80307.
2849
2850 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
2851
2852         * image.c: if the file table is not present, try to load
2853         all the modules, since we don't have info about them
2854         having or not metadata (bug #80517).
2855         * assembly.c: allow mono_assembly_load_references () to
2856         work for netmodules.
2857
2858 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
2859
2860         * image.c, metadata-internals.h, object.c: execute module
2861         cctors when running on the 2 runtime if present (bug #80487).
2862
2863 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
2864
2865         * icall.c: optimized InitializeArray() on bigendian.
2866
2867 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
2868
2869         * icall.c: fix for the broken ARM FPA double format.
2870
2871 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
2872
2873         * icall.c: handle endian issues for r4 and r8 types, too, in
2874         the InitializeArray() icall.
2875
2876 2007-01-15  Miguel de Icaza  <miguel@novell.com>
2877
2878         * loader.c (mono_loader_error_prepare_exception): Clear the error
2879         once we have extracted the information from it, do this before we
2880         call into the JIT's class loading mechanisms.
2881
2882         * object.c (mono_class_create_runtime_vtable): Do not clear the
2883         loader error before calling mono_class_get_exception_for_failure
2884         as the loader error is needed inside
2885         mono_class_get_exception_for_failure to throw the error (thinko).
2886
2887         Fixes #80521
2888         
2889 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
2890
2891         * reflection.c: align fields rva data so it's faster to load at
2892         runtime.
2893
2894 2007-01-12  Raja R Harinath  <rharinath@novell.com>
2895
2896         Prepare to simplify GenericMethod handling.
2897         * class-internals.h (mono_method_get_context): New accessor function.
2898         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
2899         rather than directly accessing '->context' field.
2900
2901         * class-internals.h (_MonoGenericParam.method): Move ...
2902         (_MonoGenericContainer): ... here.  Add into union with klass field.
2903         * class.c, icall.c, loader.c, metadata.c, reflection.c:
2904         Update to changes.
2905
2906 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
2907
2908         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
2909         the wrapper type enum and reduce relocations.
2910
2911 2007-01-12  Raja R Harinath  <rharinath@novell.com>
2912
2913         * reflection.c (inflate_mono_method): Reuse method instantiation
2914         from the generic method, if available.
2915
2916 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2917
2918         * marshal.c (emit_marshal_variant): Fix conv_arg
2919         type in last commit, based on whether parameter is byref.
2920         
2921 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2922
2923         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
2924         marshalling.
2925         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
2926         MONO_TYPE_OBJECT back for VARIANT support.
2927
2928 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2929
2930         * marshal.c, marshal.h, icall-def.h: Implement 
2931         Marshal.ReAllocCoTaskMem.
2932
2933 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
2934
2935         * marshal.c: memory retention fixes: use the proper
2936         image cache for runtime_invoke method lookups.
2937
2938 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
2939
2940         * mempool.c: added code to help debug mempool allocations.
2941
2942 2007-01-11  Dick Porter  <dick@ximian.com>
2943
2944         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
2945         support (experimenting with faking it with IP_MTU_DISCOVER for
2946         systems that don't have IP_DONTFRAGMENT.)
2947         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
2948         icall.
2949
2950         * icall-def.h: new System.Net.Sockets.Disconnect icall.
2951
2952         * socket-io.h: Add new fields to MonoSocketAsyncResult
2953         corresponding to the new ones in Socket.cs.
2954
2955 2007-01-11  Raja R Harinath  <rharinath@novell.com>
2956
2957         Fix IronPython regression mentioned in #80249
2958         * metadata.c (do_mono_metadata_parse_generic_class): Clear
2959         'cached_context' field, since it may have been initialized as a
2960         side-effect of metadata parsing.
2961
2962         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
2963         (_MonoGenericClass.cached_class): Move here and rename from lone
2964         remaining field of ...
2965         (_MonoInflatedGenericClass): ... this.  Remove.
2966         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
2967         to changes.
2968
2969         Fix mcs/tests/test-128.cs regression.
2970         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
2971         2007-01-10 change below.
2972         [MONO_TYPE_OBJECT]: Recurse into array case.
2973
2974 2007-01-11  Raja R Harinath  <harinath@gmail.com>
2975
2976         * class-internals.h (mono_get_inflated_generic_class): Remove.
2977         * class.c (mono_get_inflated_generic_class): Remove.
2978         (mono_generic_class_get_class): Rename from
2979         mono_class_create_generic.
2980         (mono_class_from_mono_type) [GENERICINST]: Use it.
2981         * reflection.c, metadata.c: Update to changes.  Use
2982         'mono_class_from_mono_type'.
2983
2984 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
2985
2986         * reflection.c: use passed type when encoding an array element
2987         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
2988
2989 2007-01-09  Robert Jordan  <robertj@gmx.net>
2990
2991         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
2992         result arguments (someDelegate.EndInvoke (unrelatedAres)).
2993         Fixes bug #80392.
2994
2995 2007-01-09  Raja R Harinath  <rharinath@novell.com>
2996
2997         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
2998
2999         * object.c (set_value): Avoid aliasing between type->data.klass
3000         and type->data.generic_class.
3001
3002         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
3003
3004 2007-01-08  Raja R Harinath  <rharinath@novell.com>
3005
3006         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
3007         between type->data.klass and type->data.generic_class.
3008
3009 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
3010
3011         * marshal.c: In MS.NET, StringBuilder objects are not copied by
3012         value in out parameters.
3013
3014 2007-01-08  Raja R Harinath  <rharinath@novell.com>
3015
3016         Simplify invariant for MonoGenericClass::klass field.
3017         * class.c (mono_class_create_generic): Verify 'klass' is null.
3018         * metadata.c (do_mono_metadata_parse_generic_class): Don't
3019         initialize 'klass' field.
3020
3021 2007-01-05  Raja R Harinath  <rharinath@novell.com>
3022
3023         Ongoing work to avoid redundant data and simplify invariants.
3024         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
3025         'generic_class', and change type to a GenericInst.
3026         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
3027         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
3028
3029 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
3030
3031         * class.c : skip io-layer under PLATFORM_WIN32.
3032
3033 2007-01-03  Tor Lillqvist  <tml@novell.com>
3034
3035         Fix #80305: In a bundled executable, look in the bundled exe
3036         assembly to determine the runtime version. Add the possibility to
3037         bundle also the machine.config file.
3038         
3039         * assembly.c (mono_assembly_open_from_bundle): Make
3040         non-static. Allow being called even if we have no bundled
3041         assemblies, and return NULL right away in that case.
3042
3043         * domain-internals.h: Declare mono_assembly_open_from_bundle()
3044         here.
3045
3046         * domain.c (app_config_parse): Take an assembly exe file name as
3047         parameter instead of a config file name. Check for a bundled
3048         config file for that assembly by calling
3049         mono_config_string_for_assembly_file() (see below) before looking
3050         for one in the file system.
3051         (get_runtimes_from_exe): Corrsponding change to call of
3052         app_config_parse().
3053         (get_runtimes_from_exe): Check for bundled assembly exe file first
3054         by calling mono_assembly_open_from_bundle(). If no bundled
3055         assembly exe file is found, call mono_image_open() as before to
3056         look it up in the file system.
3057
3058         * mono-config.c: Add variable bundled_machinec_onfig.
3059         (mono_config_string_for_assembly_file): New function.
3060         (mono_config_for_assembly): Move code snippet that looks for a
3061         bundled assembly .config file into the above new function. Call
3062         it.
3063         (mono_register_machine_config, mono_get_machine_config): New
3064         functions to set and retrieve
3065
3066         * assembly.h: Declare mono_register_machine_config().
3067
3068         * mono-config.h: Declare mono_get_machine_config() and
3069         mono_config_string_for_assembly_file().
3070
3071         * icall.c: No declaration of environ necessary on Win32. It is
3072         declared (as a macro expanding to a function call) in stdlib.h.
3073         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
3074         New internal mono function. Returns the value of
3075         mono_get_machine_config() as a Mono string.
3076
3077         * icall-def.h: Add get_bundled_machine_config().
3078
3079 2007-01-04  Raja R Harinath  <rharinath@novell.com>
3080
3081         Remove redundant field
3082         * class-internals.h (_MonoGenericContext.container): Remove field.
3083         * loader.c (mono_method_get_signature_full): Don't parse a
3084         "container" for a signature parse when the signature is inflated
3085         immediately.
3086         (method_from_methodspec): Likewise, for a generic_inst.
3087         * class.c, metadata.c, reflection.c: Update to changes.
3088
3089 2006-01-04  Raja R Harinath  <rharinath@novell.com>
3090
3091         * class-internals.h (_MonoGenericClass): Rename 'context' field to
3092         'cached_context', and change semantics -- it starts off NULL, and
3093         is initialized on demand.
3094         * class.c (mono_generic_class_get_context): New accessor to
3095         replace 'context' field accesses.
3096         (mono_class_get_context): New helper.
3097         (*): Update to changes.
3098         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
3099
3100 2007-01-03  Miguel de Icaza  <miguel@novell.com>
3101
3102         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
3103         before the memcpy.   Fixes Marshal2 regression.
3104
3105 2007-01-02  Jb Evain  <jbevain@gmail.com>
3106
3107         * blob.h: add a MONO_TYPE_ENUM definition
3108         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
3109         fix the encoding of arrays of enums in custom attributes.
3110
3111         Fixes #79666.
3112
3113 2007-01-01  Miguel de Icaza  <miguel@novell.com>
3114
3115         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
3116         string is null terminated, but only cut the string short if it
3117         overflows the buffer.   
3118         
3119         (mono_string_to_byvalstr): Also fix this routine.   The code here
3120         was not properly terminating a string (it was only terminated
3121         because of the previous catch-all memset). 
3122
3123         I left the memset, because I do not know if applications expect
3124         the runtime to clear this region. 
3125
3126         Fixes #79944.
3127
3128         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
3129         Clear the error before returning to unmanaged code to prevent the
3130         runtime from being confused later on (fixes  80420).
3131         (ves_icall_type_from_name): Always call mono_loader_clear_error
3132         after parsing a type that could have failed.
3133         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
3134
3135         * loader.c (mono_loader_clear_error): Fix indentation.
3136
3137 2006-12-28  Martin Baulig  <martin@ximian.com>
3138
3139         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
3140
3141 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
3142
3143         * reflection.c: patch from Rolf Bjarne Kvinge to fix
3144         getting a token for an EnumBuilder.
3145
3146 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
3147
3148         * reflection.c: be more careful in case resource generation
3149         fails to create the data array.
3150
3151 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
3152
3153         * sgen-gc.c: write barrier for clone and fix unregister handles.
3154
3155 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
3156
3157         * reflection.c: some fixes needed in the generics code for the moving GC.
3158
3159 2006-12-22  Robert Jordan  <robertj@gmx.net>
3160
3161         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
3162         account. Fixes bug #80299.
3163
3164 2006-12-21  Raja R Harinath  <rharinath@novell.com>
3165
3166         Fix WaitHandle usage in delegates.
3167         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
3168         * object.c (mono_wait_handle_new): Use the property set method to
3169         initialize the handle.
3170         (mono_wait_handle_get_handle): New.
3171         * threadpool.c (mono_async_invoke): Use it.
3172         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
3173         Likewise.
3174         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
3175
3176 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
3177
3178         * marshal.c (emit_marshal): Call emit_marshal_variant and
3179         emit_marshal_com_interface when applicable.
3180         (emit_marshal_variant, emit_marshal_com_interface): Add
3181         methods for this case and remove if's from emit_marshal_object.
3182         
3183 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
3184
3185         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
3186
3187 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
3188
3189         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
3190         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
3191         and GlobalFree on Windows. Remove FIXME.
3192
3193 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
3194
3195         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
3196         implementation for managed objects.
3197
3198 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
3199
3200         * object.c: implemented code to be used for checking
3201         that no reference field overlaps with non-references.
3202
3203 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
3204
3205         * threadpool.c: fix queue code to be compatible with the
3206         moving GC.
3207
3208 2006-12-18  Miguel de Icaza  <miguel@novell.com>
3209
3210         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
3211         in structures by throwing ArgumentNullException.
3212
3213         (emit_marshal_safehandle): Also when they are null parameters.
3214
3215         (emit_marshal_safehandle): Add support for ref
3216         SafeHandles parameters
3217
3218 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
3219
3220         * profiler.c: updated to use the mono-dl API instead of
3221         gmodule.
3222
3223 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
3224
3225         * profiler.c: updated to use the mono-dl dynamic loading
3226         API instead of gmodule.
3227
3228 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
3229
3230         * profiler.c: use readlink, older versions of glib don't have
3231         g_file_read_link ().
3232
3233 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
3234
3235         * profiler.c: try to detect the path to mono if libc fails to provide
3236         a useful name (bug #80286).
3237
3238 2006-12-16  Raja R Harinath  <rharinath@novell.com>
3239
3240         Fix #80242
3241         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
3242         instance, use the generic type definition instead.
3243         (ves_icall_Type_GetNestedTypes): Likewise.
3244         * class.c (mono_class_create_generic): Always set the
3245         nested_classes of a generic instance to NULL, even if the generic
3246         type definition has nested types.
3247
3248 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
3249
3250         * marshal.c (mono_string_from_bstr): Revert previous Windows change
3251         and fix on Linux.
3252         
3253 2006-12-15  Miguel de Icaza  <miguel@novell.com>
3254
3255         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
3256         my arguments were in the wrong order.   I also fixed the Windows
3257         version which seems to have had the same issue.
3258
3259         (mono_free_bstr): On Unix, this is g_free.
3260         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
3261         conversions (for the tests in corlib to pass).
3262
3263 2006-12-14  Miguel de Icaza  <miguel@novell.com>
3264
3265         * marshal.c (emit_ptr_to_object_conv): For now, ignore
3266         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
3267         exception if a ref SafeHandle in a struct has changed).
3268         
3269         (emit_struct_conv): Do not perform layout checks for classes
3270         derived from SafeHandle, as those are specially handled. 
3271
3272         (emit_object_to_ptr_conv): Add support for
3273         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
3274
3275         (emit_marshal_safehandle): Implement conversion of return values
3276         of safehandles (MARSHAL_ACTION_CONV_RESULT).
3277         
3278         * threads.c: WaitHandle now is compiled with two different handles
3279         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
3280         for 2.0.
3281         
3282         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
3283         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
3284         these routines to cope with both kinds of fields.
3285
3286 2006-12-12  Miguel de Icaza  <miguel@novell.com>
3287
3288         * metadata.c (mono_type_to_unmanaged): Handle the case where
3289         type->data.klass is a SafeHandle, and in that case, return the
3290         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
3291         MONO_MARSHAL_CONV_SAFEHANDLE. 
3292
3293 2006-12-11  Miguel de Icaza  <miguel@novell.com>
3294
3295         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
3296         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
3297         calling emit_marshal_object.
3298
3299         (emit_marshal_safehandle): Implement marshalling of
3300         SafeHandle parameters (no ref support yet).
3301
3302         (MarshalAction): Document the defines as I implement
3303         them for SafeHandle.
3304
3305         (emit_marshal_object): indentation police.
3306
3307         * class-internals.h: Define MonoSafeHandle.
3308         Add safehandle_class to MonoDefaults type.
3309
3310         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
3311         list of classes to check for fields. 
3312
3313         * domain.c (mono_init_internal): Add SafeHandle to the list of
3314         mono_defaults loaded.
3315
3316 2006-12-15  Raja R Harinath  <rharinath@novell.com>
3317
3318         Fix #80253
3319         * reflection.c (mono_reflection_bind_generic_parameters): If the
3320         generic type definition is a type builder, ensure that it is fully
3321         initialized before instantiating it.  Kill some dead code.
3322
3323 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
3324
3325         * object.c: clear the loader_error () before loading
3326         more metadata stuff (bug #80258).
3327
3328 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
3329
3330         * icall.c, icall-defs.h: type modifiers icalls for
3331         parameters and properties.
3332
3333 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
3334
3335         * object.c, icall.c: fixed warnings.
3336
3337 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
3338
3339         * marshal.c: fixed a couple of leaks and coding style in a few places.
3340
3341 2006-12-08  Dick Porter  <dick@ximian.com>
3342
3343         * process.c: Cope with NULL ProcessStartInfo arguments on windows
3344         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
3345         80173.
3346
3347 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
3348
3349         * process.c: ProcessStartInfo may have only filename set and
3350         arguments can be NULL.
3351
3352 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
3353
3354         * icall.c: fix leak found by Robert Jordan.
3355
3356 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
3357
3358         * marshal.c, marshal.h: generate managed method to access an element
3359         of a multi-dimensional array.
3360
3361 2006-11-30  Paolo Molaro (lupus@ximian.com)
3362
3363         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
3364
3365 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
3366
3367         * icall.c: back out GetFields () fix until the serialization code is
3368         fixed to not depend on the incorrect behaviour.
3369
3370 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
3371
3372         * profiler.c: provide defaults if none are set.
3373
3374 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
3375
3376         * Makefile.am, attrdefs.h: new public header file with
3377         constants for attributes for use by embedders.
3378
3379 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
3380
3381         * icall.c: GetFields () fix for bug #80064.
3382
3383 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
3384
3385         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
3386         removed long unused icalls.
3387
3388 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
3389   
3390         * marshal.c: 
3391                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
3392                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
3393                 can be generated without a delegate class.
3394                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
3395         
3396         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
3397
3398 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3399
3400         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
3401         #80069.
3402
3403 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
3404
3405         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
3406         icall-def.h: added icalls needed by System.GC.
3407
3408 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
3409
3410         * loader.c: ensure the class in catch clauses is handled
3411         correctly for generics methods (fixes bug#79980).
3412
3413 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
3414
3415         * monitor.h, monitor.c: added mono_locks_dump () function
3416         to help debug deadlocks involving managed locks.
3417
3418 2006-11-13  Dick Porter  <dick@ximian.com>
3419
3420         * file-io.c (get_file_attributes): If the file is a symlink try
3421         and get the stat data for the target, but also add the
3422         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
3423         the specs for the windows symlink support, but will probably have
3424         to be reworked when I have test data from a vista machine.  Fixes
3425         bug 79887.
3426
3427 2006-11-13  Dick Porter  <dick@ximian.com>
3428
3429         * gc.c (mono_domain_finalize): 
3430         * marshal.c (mono_delegate_begin_invoke): 
3431         * threadpool.c (socket_io_init, mono_thread_pool_init)
3432         (mono_thread_pool_finish): 
3433         * monitor.c (mono_monitor_try_enter_internal): 
3434         * threads.c (mono_thread_resume, mono_thread_init)
3435         (mono_thread_suspend_all_other_threads)
3436         (mono_thread_execute_interruption): 
3437         * appdomain.c (mono_domain_unload): Check for NULL error returns
3438         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
3439         75733.
3440
3441 2006-11-11  Miguel de Icaza  <miguel@novell.com>
3442
3443         * process.c
3444         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
3445         Only close the handle if the value of the handle is not
3446         INVALID_HANDLE_VALUE.  This just makes the process a bit more
3447         robust.
3448
3449         Improvement for #75733, so that we do not run into this problem. 
3450
3451         
3452         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
3453         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
3454         internal variables.  Fixes #79462 
3455         
3456
3457 2006-11-09  Dick Porter  <dick@ximian.com>
3458
3459         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
3460         Use poll() not select().  Fixes bug 79397.
3461
3462 2006-11-09  Raja R Harinath  <rharinath@novell.com>
3463
3464         Fix #79872
3465         * assembly.c (mono_assembly_load_from_full): Check that the given
3466         image has an assembly manifest.
3467
3468 2006-11-09  Ankit Jain  <jankit@novell.com>
3469
3470         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
3471         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
3472         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
3473
3474 2006-11-07  Dick Porter  <dick@ximian.com>
3475
3476         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
3477         Put the old resolver behaviour back for pre-2.0 profiles.
3478
3479 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
3480
3481         * threadpool.c: precise GC and locking fixes.
3482
3483 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
3484
3485         * class.c: don't load types that have an explicit unaligned
3486         managed reference. Provide better info in the TypeLoad exception.
3487         Part of the fix for bug #79744.
3488         * object.c: use the correct check for class type load issues.
3489
3490 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
3491
3492         * class.c: enforce alignment of fields with managed references
3493         even when Pack=1 is forced by the user (bug #77788).
3494
3495 2006-11-03  Dick Porter  <dick@ximian.com>
3496
3497         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
3498         If the address reverse lookup fails, return it as the hostname
3499         anyway.  Fixes bug 79721.
3500
3501 2006-11-03  Dick Porter  <dick@ximian.com>
3502
3503         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
3504         Fix build on Windows.
3505
3506 2006-11-02  Dick Porter  <dick@ximian.com>
3507
3508         * icall-def.h: 
3509         * object-internals.h: 
3510         * exception.c (mono_get_exception_thread_interrupted): 
3511         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
3512         Fixes bug 74525.
3513
3514         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
3515         Check for pending Thread.Interrupt.
3516
3517 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
3518         * loader.c: Fixed bug 79684.
3519
3520 2006-10-27  Dick Porter  <dick@ximian.com>
3521
3522         * file-io.c (get_file_attributes): Force symlinks to directories
3523         to be returned as a regular file.  Fixes bug 79733.
3524 2006-10-26  Dick Porter  <dick@ximian.com>
3525
3526         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
3527         CreateFile to open a directory then we need to set the
3528         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
3529
3530 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
3531
3532         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
3533         friends.
3534
3535 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
3536
3537         * sgengc.c: small cleanup of timer code.
3538
3539 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
3540
3541         * sgen-gc.c: fix some warnings and start adding support for
3542         complete object removal on domain unload.
3543
3544 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
3545
3546         * assembly.c: build_assembly_name should not consider a version
3547         number without build or revision number invalid. Fixes bug #79715.
3548
3549 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
3550
3551         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
3552         call kernel32 function OutputDebugString directly.
3553         
3554         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
3555         
3556 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
3557
3558         * reflection.c: small cleanup, using a function to insert a MonoString
3559         in the string heap.
3560
3561 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
3562
3563         * reflection.c: moving GC fixes.
3564
3565 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
3566
3567         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
3568         all the objects with finalizers belonging to an unloading appdomain.
3569
3570 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
3571
3572         * sgen-gc.c: added ability to allocate even when the nursery is fully
3573         pinned and fixed a couple of bugs.
3574
3575 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
3576
3577         * threads.h: Revert the last change for now.
3578
3579         * threads.h (mono_thread_get_pending_exception): Rename this to
3580         mono_thread_get_undeniable_exception ().
3581
3582 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
3583
3584         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
3585         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
3586         when fname does not refer to valid assembly. This result in a more
3587         meaningful error message.
3588         * exception.c: added mono_get_exception_bad_image_format2 which 
3589         constructs a BadImageFormatException using the ctor taking a custom
3590         message and the file name. Passing in a NULL msg results in a default
3591         message.
3592         * exception.h: define mono_get_exception_bad_image_format2 function.
3593         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
3594         when file name pointed to an invalid IL image. Use 
3595         mono_get_exception_file_not_found2 to construct FileNotFoundException,
3596         as this results in a more meaningful error message.
3597
3598 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
3599
3600         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
3601         #79465.
3602
3603 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
3604
3605         * metadata.c (mono_type_size): Change the align parameter to guint32 for
3606         consistency with the other _size functions.
3607         (mono_type_stack_size): Ditto.
3608
3609         * class.c object.c icall.c: Fix warnings caused by the above change.
3610
3611         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
3612
3613         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
3614
3615         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
3616
3617 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
3618
3619         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
3620         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
3621         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
3622         threadpool.h, threads-types.h: mark more internal functions.
3623
3624 2006-10-11  Dick Porter  <dick@ximian.com>
3625
3626         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
3627         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
3628         reproduce the bug even before applying the fix.)
3629
3630 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
3631
3632         * reflection.c: allow retrieving attributes for arguments in generic
3633         methods (bug #79241).
3634
3635 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
3636
3637         * debug-mono-symfile.c: properly check fopen () result (found by
3638         coverity).
3639
3640 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
3641
3642         * reflection.c: make error message clearer and fixed two
3643         issuelets found by Coverity.
3644
3645 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
3646
3647         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
3648
3649 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
3650
3651         * object-internals.h, gc-internal.h, profiler-private.h:
3652         mark internal functions.
3653
3654 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
3655
3656         * reflection.c: put data in the text section.
3657         * icall.c: recognize more types in type_from_typename ().
3658         * process.c, marshal.c: added some GC FIXMEs.
3659
3660 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
3661
3662         * loader.c: check for NULL before initializing.
3663
3664 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
3665
3666         * gc.c (finalizer_thread): Use a non-alertable wait here.
3667
3668         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
3669         until the correct solution is found.
3670
3671 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
3672
3673         * reflection.c (mono_module_get_object): Avoid an assert when operating on
3674         modules with no metadata. Fixes #79596.
3675
3676         * image.c (load_metadata_ptrs): Put back the error message when
3677         the #- heap is encountered since the support is not complete yet.
3678
3679 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
3680
3681         * gc.c: do not allow the user to SuppressFinalize () a
3682         delegate because it would leak the trampoline if present.
3683
3684 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
3685
3686         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
3687         PropertyPtr table.
3688
3689 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
3690
3691         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
3692
3693         * metadata.c (mono_metadata_get_param_attrs): Ditto.
3694
3695         * row-indexes.h: Add definitions for *Ptr tables.
3696
3697         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
3698
3699         * metadata.c (mono_metadata_translate_token_index): New helper function to
3700         translate table indexes used in uncompressed metadata.
3701         (mono_metadata_decode_table_row): Ditto.
3702         (mono_metadata_decode_table_row_col): Ditto.
3703
3704         * metadata.c: Add table schema for *Ptr tables.
3705
3706         * class.c loader.c: Use the new helper function to access the affected metadata
3707         tables.
3708         
3709         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
3710         #38532.
3711         
3712 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
3713
3714         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
3715         sequences which can be unbounded in size. Fixes #79583.
3716
3717 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
3718
3719         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
3720         static initialization.
3721
3722         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
3723
3724         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
3725
3726         * domain.c (mono_domain_free): Free up type_init_exception_hash.
3727
3728         * object.c (mono_runtime_class_init): Implement correct semantics when a static
3729         ctor fails, i.e. throw the same exception on subsequent accesses.
3730         
3731 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
3732
3733         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
3734         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
3735         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
3736         Handle marshalling of interfaces and VARIANTs contained in structs.
3737         
3738         Code is contributed under MIT/X11 license.
3739         
3740 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
3741
3742         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
3743         
3744         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
3745         mempool.
3746
3747 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3748
3749         * console-io.c: ignore previous SIGINT handler.
3750
3751 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
3752
3753         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
3754         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
3755         #79460, #79461, #79485.
3756
3757         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
3758
3759         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
3760         #79217.
3761
3762 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
3763
3764         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
3765         could be generated from it.
3766
3767 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
3768
3769         * rand.c: fix read loop to correctly handle EINTR.
3770
3771 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
3772
3773         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
3774         internal calls are defined to keep methods closer to the declaring
3775         type and allow a significant reduction in runtime relocations and
3776         memory usage.
3777
3778 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
3779
3780         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
3781         exception message to have FileNotFoundException use the default
3782         assembly load error message. Fixes bug #79426.
3783         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
3784
3785 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3786
3787         * threadpool.c: (start_thread_or_queue) use the root domain when
3788         creating the thread instead of the async object one.
3789
3790 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
3791
3792         * class.c, object.c, class-internals.h, reflection.c:
3793         for arrays, store element_size inside MonoClass (speedup
3794         for array object creation).
3795
3796 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
3797
3798         * icall.c: fixed CodeBase to use the file name and not the module
3799         name (bug #79365).
3800
3801 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
3802
3803         * mono-debug.c, mono-debug.h: export find_method as
3804         mono_debug_find_method ().
3805
3806 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
3807
3808         * debug-helpers.c, class-internals.h: added a few functions useful
3809         when debugging under gdb.
3810
3811 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3812
3813         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
3814         characters that need special handling.
3815
3816 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
3817
3818         * mono-config.c: make the os/cpu specification more flexible,
3819         allowing lists and negation.
3820
3821 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
3822
3823         * marshal.c: COM Interop fixes. Handle case where method->klass.
3824         is interface. Handle BSTR/MonoString when null. Use CDECL as 
3825         calling convention on non-windows platforms. This is for
3826         compatibility with XPCOM and MainWin COM.
3827         
3828         Code is contributed under MIT/X11 license.
3829         
3830
3831 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
3832
3833         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
3834         correctly. Fixes #79217.
3835
3836         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
3837
3838 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
3839
3840         * mono-config.c: allow both an os and cpu attribute for dllmap
3841         and dllentry elemnets to enable a single config file to be used
3842         for multiple architectures.
3843
3844 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
3845
3846         * loader.c: MonoLoaderError was cleared too soon on load failure.
3847         Fixes bug #79424.
3848
3849 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
3850
3851         * icall.c: use the defining class vtable when accessing a
3852         static field, not a pobblibly derived class.
3853
3854 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
3855
3856         * icall.c string-icalls.c: Remove references to unicode.h.
3857
3858         * unicode.h unicode.c Makefile.am: Remove these unused source files.
3859
3860         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
3861
3862         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
3863         indicating the image where custom marshaller types should be looked up.
3864         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
3865         custom marshallers, instead of corlib. Fixes #79425.
3866
3867 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
3868
3869         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
3870
3871 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
3872
3873         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
3874         Implement Environment.ProcessorCount.
3875         
3876         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
3877         Implement Environment.ProcessorCount.
3878         
3879         * icall.c: 
3880         Add Environment.ProcessorCount icall.
3881         
3882         Patch by Jason McFall.
3883
3884 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3885
3886         * assembly.c: don't append .exe/.dll when the filename already contains
3887         one of those extensions.
3888
3889 2006-09-12  Martin Baulig  <martin@ximian.com>
3890
3891         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
3892         to array interfaces.
3893
3894 2006-09-11  Martin Baulig  <martin@ximian.com>
3895
3896         * reflection.c (mono_image_build_metadata): Create the
3897         MethodImpl's after emitting all types and methods, so we don't
3898         need another fixup pass for them.
3899
3900 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
3901
3902         * class.c (mono_class_from_name_case): Fix regression introduced by the last
3903         change.
3904
3905 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
3906
3907         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
3908         unload.
3909
3910 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
3911
3912         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
3913         args is not set. Fixes #78926.
3914
3915 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
3916
3917         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
3918
3919         * image.c (load_class_names): Move this to class.c, and rename it to 
3920         'mono_image_init_name_cache'.
3921         (load_modules): Fix a warning.
3922
3923         * class.c icall.c image.c: Initialize image->name_cache lazily.
3924
3925         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
3926         on its name using information in the AOT file.
3927
3928         * class.c (mono_class_from_name): Use the new hook function.
3929
3930 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
3931
3932         * reflection.c (mono_param_get_objects): Handle enum default parameter values
3933         correctly.
3934
3935         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
3936         Fixes #79289.
3937         
3938 2006-09-06  Martin Baulig  <martin@ximian.com>
3939
3940         * icall.c (mono_lookup_internal_call): Small fix.
3941
3942 2006-09-05  Raja R Harinath  <rharinath@novell.com>
3943
3944         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
3945         double g_free.
3946
3947 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
3948
3949         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
3950         when --debug is specified.
3951
3952 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
3953
3954         * class.c (setup_generic_array_ifaces): Fix a warning.
3955
3956 2006-09-04  Miguel de Icaza  <miguel@novell.com>
3957
3958         * Temporarily remove the patch to assemly.c that checks the
3959         assembly versions as it breaks our gacutil.
3960
3961 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
3962
3963         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
3964
3965         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
3966         a net 1.0 runtime.
3967
3968         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
3969         created using the default ctor. Fixes #79152.
3970         (mono_string_builder_to_utf16): Ditto.
3971
3972 2006-09-01  Martin Baulig  <martin@ximian.com>
3973
3974         Fix handling of the generic array interfaces.
3975
3976         * class-internals.h
3977         (MonoDefaults): Removed `generic_array_class' and added
3978         `generic_ilist' class.
3979
3980         * class.c
3981         (mono_bounded_array_class_get): Add the new generic array interfaces.
3982         (setup_generic_array_ifaces): New static method; create vtable
3983         entries for each method in the generic array interfaces.
3984
3985         * metadata.c
3986         (select_container): Allow "parent-less" generic methods.
3987
3988         * marshal.c
3989         (mono_marshal_get_generic_array_helper): New public method.
3990
3991         * icall.c
3992         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
3993         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
3994         moved the interncall into System.Array.
3995
3996 2006-09-01  Raja R Harinath  <rharinath@novell.com>
3997
3998         A few more cases of avoiding work on types with ->byref set.
3999         Has the real fix for #79238
4000         * icall.c (is_generic_parameter): New helper.
4001         (ves_icall_Type_GetGenericParameterPosition): Use it.
4002         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
4003         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
4004         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
4005         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
4006         reference types.
4007         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
4008         reference types.
4009         (ves_icall_Type_get_IsGenericInstance): Likewise.
4010         (ves_icall_Type_get_IsGenericType): Likewise.
4011
4012 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
4013
4014         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
4015         class if possible.
4016
4017         * mempool.h (mono_mempool_get_allocated): New helper function.
4018
4019         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
4020         change.
4021
4022         * mempool.c: Fix warnings and the calculation of stats.
4023
4024         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
4025
4026         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
4027
4028         * loader.c (mono_get_method_from_token): Update method_count stat.
4029
4030         * class-internals.h (MonoStats): Add some stats.
4031
4032 2006-08-31 Robert Jordan  <robertj@gmx.net>
4033
4034         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
4035         with managed variants.
4036         All code is contributed under the MIT/X11 license.
4037         
4038 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
4039
4040         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
4041         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
4042
4043         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
4044
4045         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
4046         with cycles in classes.
4047
4048         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
4049
4050         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
4051         missing a [MarshalAs] directive. Fixes #79203.
4052
4053         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
4054         klass->marshal_info. Fixes #79217.
4055
4056 2006-08-30  Martin Baulig  <martin@ximian.com>
4057
4058         Committing a patch from Joachim Ante <joe@otee.dk>:
4059         Add support for binary data symbol stores.
4060
4061         * debug-mono-symfile.c
4062         (mono_debug_open_mono_symbol_file): Renamed into
4063         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
4064         arguments.
4065
4066         * mono-debug.c
4067         (mono_debug_open_image): Added `raw_contents' and `size' args.
4068         (mono_debug_init_2_memory): New public function.
4069
4070 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
4071
4072         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
4073
4074 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4075
4076         * appdomain.c: implement support for ShadowCopyFiles.
4077
4078 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
4079
4080         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
4081         when value is NULL (and should remove CID #51).
4082
4083 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4084
4085         * image.c: moved 2 functions to ../utils.
4086
4087 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
4088
4089         * gc.c: cope with the target object of a GC handle being NULL
4090         (bug #78877).
4091
4092 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
4093
4094         * class.c: recursively check parent's explicit implementations
4095         of interface methods (fixes bug #79125).
4096
4097 2006-08-19  Miguel de Icaza  <miguel@novell.com>
4098
4099         * filewatcher.c: Avoid warnings when building, do not redefine
4100         constants that are defined.
4101
4102         Remove warnings.
4103
4104 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4105
4106         * image.c: don't fail when the link points to an absolute path.
4107
4108 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
4109
4110         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
4111         Fix CID #3.
4112
4113 2006-08-17  Miguel de Icaza  <miguel@novell.com>
4114
4115         * image.c (full_path): A new method used to obtain the actual path
4116         of an assembly even in the presence of symbolic links.  
4117
4118         This is necessary for the case where we are running a binary that
4119         has been GACed, but we are using the "published" path name
4120         ($prefix/mono/1.0/blah.exe) which happens to point to the real
4121         file in the GAC.
4122
4123         This was the source of the failure for the `xsp' command with the
4124         recent AppDomain changes, as far as the runtime was concerned,
4125         there were two different assemblies: $prefix/mono/1.0/blah.exe and
4126         $prefix/mono/gac/blah/version/blah.exe.
4127
4128         (do_mono_image_open): use full path
4129
4130 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
4131
4132         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
4133
4134 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
4135
4136         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
4137         domain_id is supplied. Fix CID #241 and corlib's unit tests.
4138
4139 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
4140
4141         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
4142         small structures. Fixes #78990.
4143
4144 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
4145
4146         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
4147
4148         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
4149
4150 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4151
4152         * appdomain.c:
4153         * marshal.c: don't load all the assemblies from a domain into newly
4154         created ones. The new domains might have different rules and load
4155         assemblies from different locations. Fixes bug #76757.
4156
4157         Patch by Lluis. Conflicts resolved by Brian Crowell.
4158
4159 2006-08-16  Alp Toker  <alp@atoker.com>
4160
4161         * socket-io.c: First half of the fix for #79084.
4162         Set sa_size to the length of the content, not that of the struct.
4163         Don't add NULL suffix to the content, this should be done in
4164         managed code if needed.
4165
4166 2006-08-14  Raja R Harinath  <rharinath@novell.com>
4167
4168         Fix part of #79012
4169         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
4170         mono_metadata_parse_type returns NULL.
4171
4172 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
4173
4174         * normalization-tables.h : new file for string normalization data.
4175         * locales.c, locales.h, icall.c :
4176           added load_normalization_resource() for string normalization,
4177           and icall as well.
4178         * Makefile.am : added normalization-tables.h to the sources.
4179
4180 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
4181
4182         * marshal.c: Add more helper functions to reduce code duplication and use them
4183         everywhere.
4184
4185 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
4186
4187         * marshal.c: Fix non-x86 stdcall warnings.
4188         
4189         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
4190         them everywhere.
4191
4192 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
4193
4194         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
4195         type check on multi-dimensional arrays. Fixes #79000.
4196
4197 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
4198
4199         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
4200         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
4201         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
4202         * class-internals.h: add is_com_object to class structure.
4203         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
4204         null checks to COM object marshalling. Fix .ctor call on RCW.
4205         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
4206         
4207         All code is contributed under the MIT/X11 license.
4208
4209 2006-08-09  Dick Porter  <dick@ximian.com>
4210
4211         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
4212         racing mono_monitor_allocator_lock() somewhere, so don't delete
4213         the critical section for now.  Found by running and exiting
4214         monodevelop.
4215
4216 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
4217
4218         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
4219         (ves_icall_System_ComObject_FindInterface): Ditto.
4220         (ves_icall_System_ComObject_CacheInterface): Ditto.
4221
4222         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
4223         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
4224
4225 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4226
4227         * threadpool.c: treat pipes from process asynchronous reads as sockets
4228         when reading from them, so we get select/poll or epoll to wait for
4229         data.
4230
4231 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
4232
4233         * loader.c: Fix a typo (CID #233) in the null check.
4234
4235 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
4236
4237         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
4238         Hopefully fixes #78949.
4239         
4240         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
4241         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
4242         bytes. Fixes #78972.
4243
4244 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4245
4246         * filewatcher.c: we need to set errno here.
4247
4248 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4249
4250         * filewatcher.c: let Win32Exception get the error value.
4251
4252 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4253
4254         * filewatcher.c: translate errno into win32 errors for Win32Exception
4255         to know what happened.
4256
4257 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
4258
4259         * threadpool.c: Fix more warnings.
4260
4261         * assembly.c (search_loaded): Fix warnings.
4262
4263         * threadpool.c (mono_thread_pool_finish): Fix warnings.
4264         (mono_async_invoke): Ditto.
4265
4266 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
4267
4268         * object.c (mono_remote_class_vtable): Need to create proxy vtable
4269         entries for __ComObject type in addition to ComImport types.
4270         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
4271         about hash table.
4272         
4273         All code is contributed under the MIT/X11 license.
4274
4275 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
4276
4277         * image.c: avoid tentative loading of modulerefs that contain
4278         no metadata (P/Invoke library names).
4279
4280 2006-07-28  Dick Porter  <dick@ximian.com>
4281
4282         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
4283         mono_loader_lock() somewhere, so don't delete the critical section
4284         for now.  Found by running and exiting monodevelop.
4285
4286 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4287
4288         * filewatcher.c: define the inotify syscalls when we're building on
4289         linux and have sys/syscall.h. The build system might not have support
4290         for inotify but the target system might have it.
4291
4292 2006-07-26  Miguel de Icaza  <miguel@novell.com>
4293
4294         * domain.c: Documentation updates.
4295
4296         * loader.c (mono_free_method): Do not release the method
4297         information if we are being profiled, as profilers will use this
4298         information at shut down to present some data to the user.
4299
4300         This is needed so that the profiler does not crash, as the
4301         profiler tends to keep MonoMethods around, and they might become
4302         invalid if we free these.
4303
4304         (mono_get_method_constrained): Return the original CIL stream
4305         method as well, so verification can be performed against it.
4306
4307 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4308
4309         * filewatcher.[ch]: support for inotify file system watcher.
4310         * icall.c: add new internal calls for the inotify file system watcher.
4311
4312 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4313
4314         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
4315         #78888.
4316
4317 2006-07-20  Dick Porter  <dick@ximian.com>
4318
4319         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
4320         warning.
4321
4322 2006-07-20  Dick Porter  <dick@ximian.com>
4323
4324         * threads.c (start_wrapper): Do the thread cleanup while we still
4325         hold a reference to its object.  Fixes bug 78123.
4326
4327 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
4328
4329         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
4330         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
4331           "managed-to-managed".
4332         * icall.c: Redirect string constructors that take sbyte* to
4333           ves_icall_System_String_ctor_RedirectToCreateString.
4334         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
4335           to CreateString () methods with matching signature.
4336         * reflection.c: Use original security informations for
4337           MONO_WRAPPER_MANAGED_TO_MANAGED.
4338         * security-manager.c: Use original security informations for
4339           MONO_WRAPPER_MANAGED_TO_MANAGED.
4340         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
4341           that is a placeholder and only its address should be used.
4342         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
4343           that is a placeholder and only its address should be used.
4344
4345 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
4346
4347         Begin implementing COM Interop.
4348         * appdomain.c: Increment corlib version.
4349         * class.c: Set ComImport classes' parent to __ComObject.
4350         * loader.c: Mark cominterop methods as such.
4351         * domain.c: Add __ComObject class to MonoDefaults structure.
4352         * image.c: Add 2 hashtables to the image for COM Interop related methods
4353         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
4354         using the mempool allocator
4355         
4356         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
4357         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
4358         declaration for mono_metadata_type_dup_mp.
4359         
4360         * debug-helpers.c: Added strings for two additional wrapper types
4361         * object.c: Create proxy objects for ComImport classes
4362         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
4363         and added __ComObject class to MonoDefaults structure.
4364         
4365         * object-internals.h: Finish MonoRealProxy definition, and add definition of
4366         MonoComInteropProxy and MonoComObject.
4367         
4368         * marshal.c: Added support for COM Interop
4369         (signature_cominterop): Converts managed signature to corresponding
4370         unmanaged COM signature.
4371         (cominterop_get_function_pointer): gets unmanaged function pointer via
4372         COM object vtable
4373         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
4374         (cominterop_get_method_interface): returns interface type that method is defined on
4375         (mono_mb_emit_cominterop_call): emits native call to function pointer
4376         gotten from vtable
4377         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
4378         that matches signature of unmanaged function.
4379         (cominterop_get_native_wrapper): wrapper around adjusted method call.
4380         (cominterop_get_invoke): forwards call from proxy to __ComObject
4381         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
4382         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
4383         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
4384         
4385         * marshal.h: Added Marshal icall declarations.
4386         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
4387         so we can access them in finalizer
4388         
4389 2006-07-14  Dick Porter  <dick@ximian.com>
4390
4391         * object.c (mono_type_initialization_cleanup): Fix a race
4392         condition by temporarily commenting out the critical section
4393         deletion.
4394
4395 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
4396
4397         * reflection.c (create_custom_attr): Fix some warnings.
4398         (create_custom_attr_data): Ditto.
4399         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
4400         types. Fixes #78855.
4401
4402 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
4403
4404         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
4405
4406         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
4407
4408 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
4409
4410         * reflection.c (resolve_object): Add support for DynamicMethod.
4411
4412         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
4413         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
4414
4415 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
4416
4417         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
4418         don't leak GPtrArray's pdata has we have no use (nor free) for it.
4419
4420 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
4421
4422         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
4423         Fixes #77888.
4424
4425 2006-06-30  Raja R Harinath  <rharinath@novell.com>
4426
4427         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
4428         slightly: remove a shadow local variable.
4429
4430 2006-06-29  Raja R Harinath  <rharinath@novell.com>
4431
4432         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
4433         definition that introduces the virtual function slot.
4434         Also fix Coverity #105.
4435
4436 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
4437
4438         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
4439         for dynamic assemblies. Fixes #78724.
4440
4441 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
4442
4443         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
4444         Fixes #78722.
4445
4446 2006-06-21  Martin Baulig  <martin@ximian.com>
4447
4448         * reflection.c
4449         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
4450         fixes #76484.
4451
4452 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
4453
4454         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
4455
4456 2006-06-20  Raja R Harinath  <rharinath@novell.com>
4457
4458         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
4459         nor TYPEREFs.
4460         * class.c (mono_class_create_from_typespec): Add 'context' argument.
4461         Inflate result if necessary.
4462         (mono_class_get_full): Remove old version.  Rename from
4463         'mono_class_get' and add 'context' argument.  Pass it to
4464         ..._create_from_typespec.
4465         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
4466         (mono_ldtoken): Revert change below.
4467
4468 2006-06-20  Martin Baulig  <martin@ximian.com>
4469
4470         * class.c (mono_ldtoken): Don't pass the generic context to
4471         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
4472
4473 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
4474
4475         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
4476         and later freeing it. Fixes #78638.
4477
4478 2006-06-15  Miguel de Icaza  <miguel@novell.com>
4479
4480         * icall.c (mono_class_get_throw): Revert over-zealous error
4481         throwing, the caller for mono_class_get_throw will cope with
4482         errors when classes are not properly initialized already.
4483
4484         The code still copes with loader exceptions though.
4485
4486         Fixes the regression in reftype1 and reftype3 from the CAS tests.
4487         
4488 2006-06-14  Miguel de Icaza  <miguel@novell.com>
4489
4490         Fixes the `make run1' version of RuntimeAbort (to be commited,
4491         source is in Bugzilla).
4492         
4493         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
4494         FALSE on class loading failure instead of returning true.
4495
4496         * class.c (mono_class_create_from_typedef): It is possible for
4497         mono_metadata_interfaces_from_typedef_full to fail if a class is
4498         not found, cope with this.
4499         
4500
4501 2006-06-14  Dick Porter  <dick@ximian.com>
4502
4503         * socket-io.c: 
4504         * process.c: Fix a bunch of signed/unsigned warnings from gcc
4505         4.1.1
4506
4507 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
4508
4509         * culture-info-table.h : oops, forgot to make it nsync with r61548.
4510
4511 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
4512
4513         * icall.c: Another fix for building mono in Visual Studio.
4514
4515 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
4516
4517         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
4518         
4519 2006-06-09  Martin Baulig  <martin@ximian.com>
4520
4521         * debug-mono-symfile.c: Put this back and really fix it this
4522         time. Sorry for all the trouble.
4523
4524 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
4525
4526         * icall.c (mono_class_get_throw): Fix a warning.
4527         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
4528         ReflectionTypeLoadException if needed. Fixes #78606.
4529
4530         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
4531         (mono_class_init): Ditto.
4532
4533         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
4534         ref_only exceptions.
4535         (mono_loader_clear_error): Make this work even if there is no error.
4536
4537 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
4538
4539         * object-internals.h marshal.c marshal.h icall.c: Implement method 
4540         Marshal.GetComSlotForMethodInfo using internal call.
4541
4542 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
4543
4544         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
4545         a function for signalling it.
4546
4547         * class.c (mono_class_from_typeref): Use the new kind of loader error when
4548         a referenced assembly is not found.
4549
4550         * loader.c (mono_loader_error_prepare_exception): Add support for 
4551         LOADER_ERROR_ASSEMBLY. Fix formatting.
4552
4553 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
4554
4555         * domain.c appdomain.c class-internals.h marshal.c: Add support 
4556         for VARIANT marshalling on windows and increment corlib version
4557         since Variant struct was added.
4558
4559 2006-06-03  Miguel de Icaza  <miguel@novell.com>
4560
4561         * debug-mono-symfile.c: Revert Martin's previous patch which broke
4562         stack trace line information:
4563
4564         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
4565         (Martin) when looking up B which is between A and C, return A not C.
4566
4567         Bug is #78573.
4568
4569         Thanks to Alexander Olk for tracking this down.
4570
4571 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
4572
4573         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
4574         
4575         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
4576         avoid clobbering its value.
4577         (mono_string_to_lpstr): Fix a warning on windows.
4578
4579 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
4580
4581         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
4582
4583         * reflection.c loader.c: Removed references to 'dummy' flag.
4584
4585         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
4586
4587         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
4588         it gets GC tracking.
4589
4590         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
4591         GC tracking.
4592         
4593         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
4594
4595         * marshal.c threadpool.c: Update callers of mono_async_result_new.
4596
4597         * appdomain.c: Bump corlib version.
4598
4599 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
4600
4601         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
4602         CEE_STIND_REF when working with object references.
4603
4604 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
4605
4606         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
4607         Fixes #78539.
4608
4609 2006-05-30  Miguel de Icaza  <miguel@novell.com>
4610
4611         * loader.c (method_from_memberref): Fix argument value for
4612         mono_loader_set_error_method_load (I was passing the MonoClass
4613         instead of the class name char *).
4614
4615 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
4616
4617         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
4618         CEE_STIND_REF when working with object references.
4619
4620 2006-05-30  Martin Baulig  <martin@ximian.com>
4621
4622         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
4623         mono_method_full_name() change and replace the ':' with a '.'
4624         here.
4625
4626 2006-05-30  Martin Baulig  <martin@ximian.com>
4627
4628         * debug-mono-symfile.c
4629         (mono_debug_symfile_lookup_location): Fix the algorithm:
4630         when looking up B which is between A and C, return A not C.
4631
4632 2006-05-29  Martin Baulig  <martin@ximian.com>
4633
4634         * mono-debug.h
4635         (MonoDebugMethodInfo): Make the typedef public.
4636         (MonoDebugSourceLocation): New public struct.
4637
4638         * mono-debug.c
4639         (mono_debug_source_location_from_address): Removed.
4640         (mono_debug_source_location_from_il_offset): Removed.
4641         (mono_debug_il_offset_from_address): Removed.
4642         (mono_debug_address_from_il_offset): Removed.
4643         (mono_debug_lookup_method): New public function.
4644         (mono_debug_lookup_source_location): New public function; replaces
4645         the old mono_debug_source_location_from_*() functions; see the
4646         inline documentation.
4647         (mono_debug_free_source_location): New public function.
4648         (mono_debug_print_stack_frame): New public function; see the
4649         inline documentation.
4650
4651         * debug-mono-symfile.c
4652         (mono_debug_find_source_location): Renamed into
4653         mono_debug_symfile_lookup_location(); only take a
4654         `MonoDebugMethodInfo *' and an `offset' argument; added inline
4655         documentation.
4656         (mono_debug_find_method): Renamed into
4657         mono_debug_symfile_lookup_method().
4658
4659 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
4660
4661         * assembly.c (mono_assembly_open_full): Dont overwrite the status
4662         returned by mono_image_open_full ().
4663
4664         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
4665         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
4666         #78517.
4667
4668         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
4669         #78518.
4670
4671 2006-05-27  Miguel de Icaza  <miguel@novell.com>
4672
4673         * class.c (mono_class_from_typeref): handle missing images
4674         earlier, deals with bug #78418.   Refactor code; 
4675
4676         Fix a warning introduced in my previous commit (some stale code
4677         from before I revisited my patch).
4678
4679         * class.c (mono_class_create_from_typedef): On failure, remove the
4680         class from the MonoImage->class_cache as the class is not
4681         initialized;   Fixes the leak pointed out by Paolo.
4682
4683 2006-05-25  Dick Porter  <dick@ximian.com>
4684
4685         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
4686         DeleteCriticalSections until I figure out which one may still be
4687         sometimes locked when mono_thread_cleanup is called.
4688
4689 2006-05-24  Dick Porter  <dick@ximian.com>
4690
4691         * threads.c (mono_thread_cleanup): Move the threading cleanup out
4692         of mono_thread_manage and back into its own function, so it can be
4693         called after the finalizer thread has finished.
4694
4695         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
4696
4697 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
4698
4699         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
4700         Fixes #78495.
4701
4702         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
4703         with non-blittable elements.
4704         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
4705
4706 2006-05-24  Martin Baulig  <martin@ximian.com>
4707
4708         * mono-debug-debugger.h (MonoDebuggerEvent): Added
4709         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
4710
4711         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
4712         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
4713         `mono_debugger_event_handler' to NULL.
4714
4715 2006-05-24  Martin Baulig  <martin@ximian.com>
4716
4717         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
4718
4719 2006-05-24  Martin Baulig  <martin@ximian.com>
4720
4721         * mono-debug-debugger.h
4722         (mono_debugger_create_notification_function): Added
4723         `MonoCodeManager *' argument.
4724
4725 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
4726
4727         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
4728
4729 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
4730
4731         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
4732         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
4733         implementation.
4734
4735 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
4736
4737         * icall.c: precise GC support: objects can't be stored in unmanaged
4738         memory anymore, even if they are kept alive by other references: since
4739         they can move the GC needs to be able to always find them.
4740
4741 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
4742
4743         * object.c: precise GC support for static fields. Support
4744         for moving GCs: write barriers and pinned allocation for interned
4745         strings.
4746
4747 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
4748
4749         * domain.c, domain-internals.h: precise GC support for the MonoDomain
4750         structure.
4751
4752 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
4753
4754         * class.c, gc.c: sgen and precise GC updates.
4755
4756 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
4757
4758         * marshal.h, marshal.c: added write barrier wrapper and precise type
4759         fixes.
4760
4761 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
4762
4763         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
4764         support.
4765
4766 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
4767
4768         * reflection.c: precise and sgen GC updates.
4769
4770 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
4771
4772         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
4773
4774 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
4775
4776         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
4777
4778 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
4779
4780         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
4781         MONO_TYPE_OBJECT. Fixes #78462.
4782
4783 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
4784
4785         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
4786         and blittable types.
4787
4788 2006-05-17  Miguel de Icaza  <miguel@novell.com>
4789
4790         * class.c (mono_class_get_exception_for_failure): Implement parts
4791         of a TODO: if the loader error is set (instead of the class
4792         error), we return a Loader exception that can be properly thrown
4793         elsewhere.
4794
4795         This was exposed by some Winforms 2.0 code that I tried to run
4796         (Atsushi pointed me to it).
4797
4798 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
4799
4800         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
4801         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
4802         
4803         * marshal.c (emit_marshal_vtype): Add limited support for 
4804         UnmanagedType.LPStruct. Fixes #78427.
4805
4806         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
4807         Applied a patch from kangaroo to fix #77523.
4808
4809 2006-05-17  Martin Baulig  <martin@ximian.com>
4810
4811         * threads.c
4812         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
4813         (debugger_thread_created): Removed.
4814         (debugger_thread_exited): Removed.
4815
4816 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
4817
4818         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4819
4820         * object-internals.h (MonoReflectionResource): Sync with managed version.
4821
4822 2006-05-12  Wade Berrier <wberrier@novell.com>
4823
4824         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
4825
4826 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
4827
4828         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
4829         functions try to allocate from the image mempool.
4830
4831 2006-05-12  Dick Porter  <dick@ximian.com>
4832
4833         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
4834
4835 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
4836
4837         * object.c: The FieldGetter and FieldSetter methods require the full
4838         name of the class, not only the name. Fixes bug #78277.
4839
4840 2006-05-11  Miguel de Icaza  <miguel@novell.com>
4841
4842         * loader.c (method_from_memberref): Do not pass the NULL klass to
4843         mono_loader_set_error_() methods.  Pass the non-NULL value
4844         (class). 
4845
4846 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
4847
4848         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
4849         (mono_assembly_close): Null out assembly->image->references after freeing it.
4850
4851         * image.c (mono_image_close): Free image->references.
4852         
4853         * reflection.c (mono_image_basic_init): Fix a small memory leak.
4854
4855 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
4856
4857         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
4858         before checking if it's NULL (g_assert).
4859
4860 2006-05-10  Martin Baulig  <martin@ximian.com>
4861
4862         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
4863         I thought I already killed that two months ago, but now it somehow reappeared.
4864
4865 2006-05-10  Martin Baulig  <martin@ximian.com>
4866
4867         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
4868
4869 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
4870
4871         * reflection.c: Allocate memory for dynamically created methods in the image
4872         mempools.
4873
4874 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
4875
4876         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
4877         don't use the ad pointer before checking if it's NULL (g_assert).
4878
4879 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
4880
4881         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
4882         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
4883
4884         * marshal.c: Allocate all signatures from mempools.
4885
4886         * marshal.c: Allocate some more signatures from mempools.
4887
4888 2006-05-09  Miguel de Icaza  <miguel@novell.com>
4889
4890         * object.c (mono_load_remote_field): The code used to provide a
4891         temporary variable for returning results if the user did not
4892         provide a result pointer.  But our temporary variable was allocted
4893         on the satck.
4894
4895         Fix calling code to always pass a result area.   Coverity ID 103.
4896
4897 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
4898
4899         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
4900         value, not the old. Fixes #78312.
4901         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
4902
4903         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
4904         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
4905         per-image cache.
4906
4907         * assembly.c (mono_assembly_close): Free image->references.
4908
4909         * assembly.c (mono_assembly_names_equal): Fix a warning.
4910         (mono_assemblies_cleanup): Cleanup more global data.
4911
4912         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
4913
4914         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
4915         ptr_cache and image->modules.
4916
4917         * image.c (mono_image_init): Allocate array_cache lazily.
4918         
4919 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4920
4921         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
4922         behavior was changed recently and has bad side effects.
4923
4924 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
4925
4926         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
4927         
4928         * assembly.c (mono_assembly_close): Remove a debug printf.
4929
4930         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
4931
4932         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
4933         to also allow for temporary references between mono_image_open ()/close ().
4934
4935         * domain.c (get_runtimes_from_exe): Add a FIXME.        
4936
4937 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
4938
4939         * marshal.c: Fix support for dynamic methods.
4940
4941         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
4942
4943         * marshal.c (mono_marshal_cleanup): New cleanup function.
4944
4945         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
4946         image mempools.
4947
4948         * class.c (mono_class_init): Fix leaking class->nested_classes.
4949
4950         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
4951
4952         * image.c (mono_image_init): Initialize the new cashes.
4953
4954         * image.c (mono_image_close): Destroy the new cashes.
4955
4956         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
4957
4958         * mempool.c (mono_mempool_strdup): New helper function.
4959
4960         * class-internals.h: Add prototype for mono_loader_unlock ().
4961
4962         * domain.c (mono_jit_info_table_find): Fix a warning.
4963         (mono_debugger_check_runtime_version): Ditto.
4964
4965         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
4966         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
4967         functions to these modules.
4968
4969         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
4970         metadata modules.
4971         
4972         * marshal.c (mono_free_bstr): Fix a warning.
4973
4974         * assembly.c (mono_assembly_open_full): Fix another small leak.
4975
4976         * object.c: Fix some unload leaks in the remoting code.
4977
4978         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
4979         function.
4980
4981         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
4982
4983         * reflection.c: Fix some unload leaks in dynamic assemblies.
4984
4985 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
4986
4987         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
4988         * marshal.h: Add BSTR support on Win32
4989         * icall.c: Add BSTR icalls
4990         * metadata.h: Add BSTR enums
4991
4992 2006-04-28  Miguel de Icaza  <miguel@novell.com>
4993
4994         Work to catch the crash from #76795 and turn it into an
4995         exception.   As I stubbed out pieces of the VisualBasic support,
4996         I found a number of places where the code was failing and I added
4997         checks to those places. 
4998         
4999         * metadata.c (do_mono_metadata_parse_generic_class): Make this
5000         function return a status code.  If we fail to parse the signature
5001         from mono_metadata_parse_generic_inst, return FALSE.
5002
5003         * loader.c (mono_get_method_from_token): If we fail to load the
5004         method (mono_class_get) return NULL.   
5005
5006         * (method_from_memberref): Return NULL if we are unable to parse
5007         the method signature
5008
5009         (mono_loader_error_prepare_exception): Since we now use the
5010         loader_error flag internally to stop processing, and obtaining
5011         exceptions that might be thrown will walk this code path the
5012         proper way of going from a MonoLoaderError into a
5013         MonoException was convoluted.   This new routine encapsulates the
5014         process of turning the error into an exception and *clearing* the
5015         error afterwards.
5016         
5017 2006-04-27  Miguel de Icaza  <miguel@novell.com>
5018
5019         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
5020         with missing assemblies), and to cope with:
5021
5022                 * Missing fieldref from a non-existing assembly.
5023                 * Missing methodref from a non-existing assembly.
5024
5025         The first batch of work to address *some* of the issues from 76661.
5026         
5027         * object.c (mono_class_create_runtime_vtable): If we fail to
5028         initialize the class raise the exception here. 
5029
5030         * metadata.c (mono_class_get_overrides_full): If any methods fail
5031         to load return the failure to the caller.
5032
5033         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
5034         flagging assemblies that failed to load.   
5035
5036         Do not crash if we are unable to load the assembly.
5037
5038         (mono_assembly_close): Do nothing with REFERENCE_MISSING
5039         assemblies. 
5040
5041         * loader.c (mono_loader_set_error_type_load): Change the
5042         convention to always pass unallocated strings, so we make our own
5043         copies (I know our own code had duplicated strings before, but
5044         this keeps the normal conventions).
5045         (method_from_memberref): Call mono_loader_set_error_method_load
5046         for all possible failures of loading the class. 
5047         Remove assert, turn into a loader error.
5048
5049         (mono_loader_error_to_exception): Move this routine from mini
5050         (mini_loader_error_to_exception) there was no need to have that in
5051         mini. 
5052
5053         * class.c (mono_class_from_typeref): If we were not able to load
5054         the assembly with mono_assembly_load_reference, call the
5055         mono_loader_set_error_type_load to register the problem.
5056
5057         (mono_class_setup_fields): If we fail to load the type from
5058         mono_metadata_parse_type_full, call mono_class_set_failure and
5059         break from the loop.
5060
5061         If class->exception_type is set, we do not layout the fields as
5062         that might crash the runtime, and instead return (from breaking
5063         from the previous loop).
5064
5065         (mono_class_setup_vtable): This now returns a boolean indicating
5066         whether the table was properly setup.   The decision is driven by
5067         mono_class_get_overrides_full which might run into non-existing
5068         methods. 
5069         
5070         (mono_class_init): Returns TRUE on success or FALSE if there was a
5071         problem in loading the type (incorrect assemblies, missing
5072         assemblies, methods, etc).
5073
5074         When we call mono_class_setup_fields we also check for a potential
5075         error inside this call (either a class exception or a general
5076         loader exception).
5077
5078         (mono_class_create_from_typedef): If the parent fails to load
5079         (calling mono_class_get_full) return NULL.
5080         
5081         ** Important **
5082
5083         calls to mono_metadata_parse_type_full should be checked
5084         everywhere and set the mono_class_set_failure
5085         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
5086
5087         The current patch checks the places where my manually constructed
5088         tests show the errors are showing up, but we should do it
5089         everywhere. 
5090
5091         ** Important2 **
5092
5093         mono_class_init return values should be tested everywhere, like
5094         the previous case this is something that we should audit
5095         everywhere and not only on the cases exposed by the tests I
5096         created. 
5097
5098 2006-04-26  Miguel de Icaza  <miguel@novell.com>
5099
5100         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
5101         boolean parameter and instead pass the information on `options'
5102         parameter (FileOptions).
5103
5104         * icall.c: Register the new signature for MonoIO.Open.
5105
5106         * debug-helpers.c (dis_one): Trying to understand how coverity
5107         works.  Fix Run 5, item 78.
5108
5109 2006-04-26  Dick Porter  <dick@ximian.com>
5110
5111         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
5112         dereference.
5113
5114 2006-04-25  Martin Baulig  <martin@ximian.com>
5115
5116         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
5117
5118         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
5119         debugger_thread_created().
5120         (debugger_gc_push_all_stacks): Don't handle the main thread in any
5121         special way.
5122         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
5123         (mono_debugger_finalize_threads): New function; undo the effects
5124         of mono_debugger_init_threads().
5125         (mono_debugger_create_all_threads): Removed.
5126
5127 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
5128
5129         * image.c (mono_image_close): Tidy up trace messages.
5130
5131         * assembly.c (mono_assembly_close): Ditto.
5132
5133         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
5134         no longer references an already freed assembly. Fixes #78168.
5135
5136 2006-04-21  Dick Porter  <dick@ximian.com>
5137
5138         * threads.c (mono_thread_detach): Fix reference counting when
5139         detaching threads.
5140
5141 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
5142
5143         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
5144         #78155.
5145
5146 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
5147
5148         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
5149         (mono_type_to_stind): Ditto.
5150
5151         * marshal.c: Use the new helper functions to simplify code.
5152
5153         * image.c (mono_image_close): Add some code for help debug assembly unloading
5154         problems.
5155
5156         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
5157         image mempool.
5158
5159         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
5160         assembly was already loaded in another appdomain. Fixes #78083.
5161
5162 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
5163
5164         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
5165         referenced assemblies.
5166         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
5167
5168         * domain.c (mono_domain_free): Add a trace message.
5169
5170         * appdomain.c (add_assemblies_to_domain): Ditto.        
5171
5172         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
5173         field.  
5174
5175 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
5176
5177         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
5178
5179 2006-04-12  Martin Baulig  <martin@ximian.com>
5180
5181         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
5182         `USE_INCLUDED_LIBGC'.   
5183
5184 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
5185
5186         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
5187         the patch contains ../ and a small directory name later. Hopefully fixes
5188         #78035.
5189
5190 2006-04-10  Martin Baulig  <martin@ximian.com>
5191
5192         Clean up the debugger's thread-handling code.
5193
5194         The debugger's thread-handling code has been moved from
5195         ../mini/debug-debugger.c to threads.c.  We now iterate directly
5196         over the `threads' hash, keep track of exiting threads and also
5197         use proper locking.
5198
5199         We can now debug XSP and XSP based applications with the debugger.
5200
5201         * object-internals.h (MonoThread): Added `gpointer end_stack'.
5202
5203         * threads.h
5204         (MonoThreadCallbacks): Removed; this was only used by the debugger.
5205         (mono_install_thread_callbacks): Likewise.      
5206
5207         * threads.c (mono_thread_callbacks): Removed.
5208         (debugger_thread_created, debugger_thread_exited): New static functions.
5209         (start_wrapper): Call debugger_thread_created().
5210         (thread_cleanup): Call debugger_thread_exited().
5211         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
5212         (mono_debugger_init_threads): New public function.
5213         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
5214         iterate directly over the `threads' hash and also use proper locking.
5215
5216         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
5217
5218         * mono-debug-debugger.h
5219         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
5220
5221 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
5222
5223         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
5224         argument type=array. Fixes #78057.
5225
5226 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
5227
5228         * culture-info-table.h : regenerated. Fixed bug #69652.
5229
5230 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
5231
5232         * loader.c metadata.c: Reapply a variant r59116.
5233         
5234         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
5235
5236         * class.c (mono_class_setup_interface_offsets): New internal function.
5237
5238         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
5239         interfaces too. Fixes #77398.
5240
5241         * reflection.c (encode_cattr_value): Add support for 
5242         parameter type=object, argument type=array.
5243         (load_cattr_value): Ditto. Fixes #77916.
5244
5245         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
5246         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
5247
5248         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
5249         a byval char array and CharSet is Ansi.
5250
5251         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
5252
5253 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
5254
5255         * metadata.c: Add some locking comments.
5256         
5257         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
5258         mempool.
5259         (mono_metadata_free_method_signature): Don't free the signature itself.
5260
5261         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
5262
5263         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
5264         reference the same MonoImage.
5265         (mono_assembly_load_from_full): Add an assert.
5266
5267 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
5268
5269         * image.c (mono_image_close): Don't put the image we are about to free into the
5270         loaded_images_guid_hash.
5271
5272         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
5273         to reduce code duplication.
5274
5275         * marshal.c: Register the native functions called by this module as icalls, to
5276         somewhat centralize the creation of MonoMethodSignature's.
5277
5278         * loader.c (mono_method_signature): Add a cache for method signatures.
5279
5280         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
5281         the parameter attributes of a method.
5282         (mono_metadata_parse_method_signature_full): Refactored the computation of
5283         parameter attributes into a separate function. Also avoid one allocation in
5284         most cases.
5285
5286         * assembly.c (mono_assembly_close): Ditto.
5287
5288         * image.c (mono_image_close): Log trace messages with INFO level.
5289
5290         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
5291
5292         * image.c reflection.c: Correct reference counting of image modules.
5293         
5294         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
5295         of this function from the image mempool.
5296         
5297         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
5298         to allow more cached types to be used.
5299
5300         * mono-debug.c (mono_debug_add_method): Appled patch from
5301         David S. Miller  <davem@sunset.davemloft.net>: Access 
5302         minfo->lexical_blocks[] entry elements using read32().
5303
5304 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
5305
5306         * loader.c (mono_free_method): No longer free the method header for non-dynamic
5307         methods as it is allocated from the mempool.
5308
5309         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
5310         image mempool.
5311
5312         * metadata-internals.h: Add comments describing the reference counting scheme
5313         used for MonoImage and MonoAssembly.
5314
5315         * image.c assembly.c reflection.c: Rework reference counting of images and 
5316         assemblies so they are freed when the runtime is shut down. Free some 
5317         additional memory structures when an image is unloaded.
5318         
5319 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
5320
5321         * class.c loader.c reflection.c: Allocate more data structures in
5322         the image mempool.
5323
5324 2006-03-31  Miguel de Icaza  <miguel@novell.com>
5325
5326         * icall.c
5327         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
5328         build on pre glib 2.4 systems.
5329
5330 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
5331
5332         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
5333
5334         * icall.c: Fix some warnings.
5335
5336 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
5337
5338         * culture-info-table.h : regenerated.
5339
5340 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
5341
5342         * threads.c, object-internals.h, verify.c: changed the culture caching
5343         code to use a normal MonoArray for storage so the GC can keep track of
5344         them easily. Fixed bits of the cache logic, too and simplified the
5345         code.
5346
5347 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
5348
5349         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
5350         thread for non-Boehm GCs.
5351
5352 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
5353
5354         * domain.c, object.c, domain-internals.h: reduce the amount of memory
5355         needed to keep track of the data for static fields.
5356
5357 2006-03-29  Raja R Harinath  <rharinath@novell.com>
5358
5359         Fix #75172
5360         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
5361         for interface classes.  Use 'num_methods' instead.
5362         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
5363         before using '->vtable_size' field.
5364
5365 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
5366
5367         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
5368         doesn't contain managed pointers, so use a normal hashtable.
5369
5370 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
5371
5372         * reflection.c, class-internals.h, domain.c: fixed handling of types
5373         used as values for objects in custom attributes (bug #77915):
5374
5375 2006-03-24  Martin Baulig  <martin@ximian.com>
5376
5377         * class.c (mono_class_setup_fields): Added support for generic
5378         instances; fixes #77580.
5379
5380 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5381
5382         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
5383
5384 2006-03-24  Dick Porter  <dick@ximian.com>
5385
5386         * file-io.c (get_file_attributes): More stat macro breakage.
5387         Fixes bug 77759.
5388
5389 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
5390
5391         * profiler.c: added the file=filename option in the default profiler
5392         to output the profile data to filename.
5393
5394 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5395
5396         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
5397         bug #77877.
5398
5399 2006-03-22  Martin Baulig  <martin@ximian.com>
5400
5401         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
5402         allocated `MonoClassField *' in `fb->handle'.
5403
5404 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
5405
5406         * class.c, image.c, metadata-internals.h: implemented new mechanism to
5407         allocate interface ID to save memory and allow better ID reuse on
5408         appdomain unload. setup_generic_vtable () removal from Martin.
5409
5410 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
5411
5412         * object.h, appdomain.c, domain.c, exception.c, icall.c,
5413         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
5414         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
5415         write barriers for reference stores with managed objects accessed with
5416         C structures in the runtime and in embedding programs.
5417
5418 2006-03-20  Raja R Harinath  <rharinath@novell.com>
5419
5420         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
5421         'interface_id' and 'max_interface_id' fields of MonoClasses
5422         representing open generic types.
5423
5424 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
5425
5426         * object.h, object.c, icall.c: added functions to deal with
5427         storing valuetypes that contain references in managed objects.
5428         * reflection.c, string-icalls.c, threads.c, marshal.c: small
5429         fixes and comments around uses of mono_array_addr ().
5430
5431 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
5432
5433         * object.h, icall.c, monitor.c: object.GetHashCode ()
5434         implementation that supports the moving garbage collector.
5435
5436 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
5437
5438         * icall.c, threads-types.h, threads.c: implemented finalizer for
5439         LocalDataStoreSlot.
5440
5441 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
5442
5443         * metadata.c (mono_type_size): Add a fixme.
5444         (mono_type_stack_size): Ditto.
5445
5446         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
5447         'type_forwarders' field.
5448
5449         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
5450         attribute from net 2.0.
5451
5452         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
5453         from class.c.
5454
5455         * class.c (mono_class_setup_fields): Fix a warning.
5456         
5457         * class.c (mono_class_from_name): Add support for assemblyref entries
5458         in the EXPORTEDTYPE table.
5459
5460         * reflection.c: Add support for handling type forwarders under net 2.0.
5461
5462         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
5463         
5464 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
5465
5466         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
5467         overwriting entries in ModuleBuild->types, also clean up the code
5468         a little. Fixes #77774.
5469
5470 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
5471
5472         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
5473         load friend assembly info when present.
5474
5475 2006-03-14  Raja R Harinath  <rharinath@novell.com>
5476
5477         Fix crasher on gtest-158.cs.
5478         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
5479         the return value if the MonoClass we want is yet in an
5480         inconsistent state.
5481         * class.c (mono_class_create_from_typedef): Add an comment
5482         explaining an order dependency between mono_class_setup_parent and
5483         mono_class_setup_mono_type.
5484
5485 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
5486
5487         * class.c: documentation updates and events bug fix.
5488
5489 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
5490
5491         * class.c: some cleanup, locking fixes.
5492
5493 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
5494
5495         * class.c: fix the generics code to setup nested
5496         type info to the instantiated type (bug #77770).
5497
5498 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
5499
5500         * marshal.c: fixed a few type correctness issues.
5501
5502 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
5503
5504         * loader.c: the Set/Get/Addrtess array methods should be public.
5505
5506 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
5507
5508         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
5509         
5510         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
5511         info->wrapper.
5512
5513 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
5514
5515         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
5516
5517         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
5518
5519         * mempool.c (mono_mempool_alloc): Speed this up a bit.
5520         (mono_mempool_alloc0): Ditto.
5521
5522 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5523
5524         * socket-io.c:
5525         (create_object_from_sockaddr): it was allocating 4 extra bytes
5526         for the AF_UNIX data. Fixes bug #77747.
5527
5528 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
5529
5530         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
5531
5532 2006-03-09  Dick Porter  <dick@ximian.com>
5533
5534         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
5535         Fixes bug 76966 again.
5536
5537 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
5538
5539         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
5540         names from r57532
5541         * appdomain.c: Bumped corlib version to 48 (due to r57532)
5542
5543 2006-03-07  Martin Baulig  <martin@ximian.com>
5544
5545         * object.c
5546         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
5547
5548 2006-03-07  Martin Baulig  <martin@ximian.com>
5549
5550         * class.c
5551         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
5552         regression introduced in r56970; see gtest-252.cs.
5553
5554         * loader.c (mono_get_method_constrained): Correctly handle generic
5555         methods; see gtest-253.cs.
5556
5557 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
5558
5559         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
5560
5561 2006-03-04  Martin Baulig  <martin@ximian.com>
5562
5563         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
5564         compute the parent type at runtime, just like we're already doing
5565         it for interfaces.
5566
5567         * reflection.c
5568         (mono_reflection_bind_generic_parameters): Don't compute the
5569         parent type anymore.
5570
5571         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
5572
5573 2006-03-04  Martin Baulig  <martin@ximian.com>
5574
5575         * mono-debug-debugger.h
5576         (mono_debugger_create_notification_function): Allocate memory at
5577         runtime and return a pointer to it.
5578
5579 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
5580
5581         * assembly.c: Fix windows build.
5582         
5583         * assembly.c: Fix build.
5584
5585         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
5586
5587         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
5588         
5589 2006-03-03  Dick Porter  <dick@ximian.com>
5590
5591         * process.c
5592         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
5593         Check parameters before dereferencing them.  Fixes Aaron's part of
5594         bug 77393.
5595
5596 2006-03-03  Raja R Harinath  <rharinath@novell.com>
5597
5598         Fix performance regression.
5599         * loader.c (find_method_in_class): Add 'from_class' argument.
5600         Rename 'klass' argument to 'in_class'.  The signature is compared
5601         against the method in 'in_class', and the corresponding method is
5602         returned from 'from_class'.
5603         (find_method): Walk both 'in_class' and 'from_class' in parallel.
5604         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
5605         type definition and generic instantiation in parallel.
5606         (mono_get_method_constrained): Update to changes.
5607
5608 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
5609
5610         * threads.c: make sure the domain is correct, too when doing
5611         mono_thread_attach ().
5612
5613 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
5614
5615         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
5616         windows. Fixes #77683.
5617
5618 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
5619
5620         * object.h, *: introduced specific way to set elements of an array
5621         of references to be used as write barrier. Still need to audit the
5622         uses of mono_array_addr.
5623
5624 2006-03-01  Miguel de Icaza  <miguel@novell.com>
5625
5626         * object-internals.h: New field to cache the assmebly name, patch
5627         from Tambet Ingo (tambet@ximian.com)
5628
5629 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
5630
5631         * decimal.h, class-internals.h, metadata-internals.h,
5632         file-io.h: mark a few function declarations as internal, to
5633         reduce the number of PLT entries.
5634
5635 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5636
5637         * file-io.c: fix typo in warning message.
5638
5639 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
5640
5641         * loader.c: on unix, lookup the "*A" version of a function
5642         if charset is auto as a second option before failing.
5643
5644 2006-02-28  Raja R Harinath  <rharinath@novell.com>
5645
5646         * class.h (mono_class_inflate_generic_method): Revert to two
5647         argument version.
5648         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
5649         (mono_class_inflate_generic_method_full): Add.
5650         * class.c (mono_class_inflate_generic_method_full): Rename from
5651         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
5652         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
5653         * loader.c, reflection.c: Update to changes.
5654
5655 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
5656
5657         * icall.c: const fixes and small improvements.
5658
5659 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5660
5661         * threadpool.c: for asynchronous connect(), enable the same workaround
5662         for BSD 6 as for the Mac. Fixes bug #77637.
5663
5664 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
5665
5666         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
5667         formatted classes. Fixes #77524.
5668
5669 2006-02-24  Raja R Harinath  <rharinath@novell.com>
5670
5671         * class.c (inflate_generic_type): Add a couple more
5672         micro-optimizations.
5673         (inflate_generic_context): Don't use the 'gmethod' from
5674         'inflate_with'.
5675         (mono_class_inflate_generic_method): If the method has generic
5676         parameters, but the passed-in context doesn't have a 'gmethod',
5677         create one.  Use the possibly simplified generic instantiation
5678         from the declaring class instead of the one passed in.
5679
5680 2006-02-24  Raja R Harinath  <harinath@gmail.com>
5681
5682         Make generic method signature and method header handling lazy.
5683         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
5684         (inflate_generic_header): Likewise.
5685         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
5686         parameter to avoid inflating types.
5687         (mono_get_inflated_method): Empty out.
5688         * class.h (mono_class_inflate_generic_method): Update to changes.
5689         * loader.c (mono_get_method_from_token): Don't parse signature for
5690         generic methods, nor methods of generic classes.
5691         (mono_method_signature): Rename from 'mono_method_signature'.
5692         Inflate signature on demand.
5693         (mono_method_get_header): Inflate method header on demand.
5694         * reflection.c: Update to changes.
5695
5696 2006-02-23  Raja R Harinath  <rharinath@novell.com>
5697
5698         * metadata.c (mono_metadata_inflate_generic_inst): If the
5699         instantiation is closed, don't bother expanding it in the new
5700         context.
5701         * class.c (inflate_generic_class): If the generic instantiation
5702         doesn't change after inflation, return the argument itself.
5703         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
5704         Add bounds checks.
5705         (inflate_generic_context): If neither the generic class nor the
5706         generic method instantiations change, return the original context.
5707         * reflection.c (mono_method_get_object): Do
5708         'mono_get_inflated_method' before accessing the ->klass field.
5709         (inflate_mono_method): Don't create a MonoGenericMethod unless
5710         necessary.
5711         (inflate_method): Don't pass a constructed type as the declaring
5712         type of a methodbuilder.
5713
5714 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
5715
5716         * object.c: fix memory overwrite.
5717
5718 2006-02-22  Dick Porter  <dick@ximian.com>
5719
5720         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
5721         it doesn't work any more.
5722         (mono_threads_request_thread_dump): Fix unused variable warnings.
5723
5724 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
5725
5726         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
5727         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
5728         the public header file.
5729
5730 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
5731
5732         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
5733
5734 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
5735
5736         * class-internals.h, object.c: reduce the size of MonoVTable
5737         and store the interface_offsets array at negative offsets.
5738
5739 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
5740
5741         * metadata.c: tweak table descriptors data structures to reduce
5742         size and runtime relocations.
5743
5744 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
5745
5746         * marshal.c: fix some types and opcodes to be type-safe
5747         in marshaling wrappers.
5748
5749 2006-02-21  Ankit Jain  <jankit@novell.com>
5750
5751         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
5752
5753 2006-02-21  Raja R Harinath  <rharinath@novell.com>
5754
5755         * metadata.c (get_constraints): Relax debugging checks for monodis.
5756
5757 2006-02-21  Ankit Jain  <jankit@novell.com>
5758
5759         * metadata.c (mono_metadata_load_generic_params): Move the code
5760         checking for ambiguous generic params from here to mono/dis/get.c
5761         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
5762
5763 2006-02-21  Raja R Harinath  <harinath@gmail.com>
5764
5765         Fix assertion triggered when compiling nemerle.
5766         * class.c (mono_get_shared_generic_inst): Rename from
5767         get_shared_inst and make non-static.
5768         * loader.c (mono_get_shared_generic_method): New.  Used to create
5769         the MonoGenericContext-equivalent of a MonoGenericContainer.
5770         (mono_get_method_from_token): Initialize the 'context' field of
5771         the created MonoGenericContainer.
5772         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
5773         * metadata.c (get_constraints): Add sanity check.
5774         * class-internals.h: Add new internal methods.
5775
5776         * reflection.c (verify_safe_for_managed_space): New sanity check.
5777         Currently checks that owner-less generic parameters aren't allowed
5778         in managed space.
5779         (mono_type_get_object): Use it.
5780         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
5781         that are now in mono_type_get_object.
5782         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
5783
5784 2006-02-19  Raja R Harinath  <harinath@gmail.com>
5785
5786         * metadata.c (mono_type_create_from_typespec): Rename from
5787         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
5788         argument and caching of types in the generic container.
5789         (unwrap_arrays, find_generic_param): Remove.
5790         * metadata-internals.h: Update.
5791         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
5792
5793 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
5794
5795         * class.c (mono_class_get_exception_for_failure): Fix a warning.
5796
5797         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
5798         return values. Fixes #77581.
5799
5800         * class.c (mono_fnptr_class_get): Switch name and name_space.
5801
5802         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
5803         classes and add support for [In, Out] attributes.
5804         (mono_marshal_free_asany): Ditto. Fixes #77524.
5805
5806 2006-02-18  Raja R Harinath  <harinath@gmail.com>
5807
5808         * class.c (mono_class_from_generic_parameter): Make more robust to
5809         incomplete MonoGenericContainers from monodis.
5810
5811 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
5812
5813         * class-internals.h: added some more exception types.
5814         * class.c, metadata.c: added a few checks to handle missing
5815         types.
5816
5817 2006-02-17  Raja R Harinath  <rharinath@novell.com>
5818
5819         Use owner-less generic-params some more.
5820         * class.c (my_mono_class_from_generic_parameter): Remove.
5821         (mono_class_from_generic_parameter): Handle null image,
5822         param->name and param->owner.
5823         (mono_class_from_mono_type): Update.
5824         (mono_class_create_from_typespec): Remove 'container' parameter.
5825         If that parameter is non-null, the result is always inflated by
5826         'mono_class_get_full' anyway.
5827         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
5828         parameter.
5829         (mono_class_get_full): Update.
5830
5831         * class.c (inflate_generic_type) [GENERICINST]: If the generic
5832         instance is not open, don't bother inflating.
5833         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
5834         parse metadata for inflated classes.
5835         (_mono_class_get): Change GenericContext* parameter to
5836         GenericContainer*.
5837         (mono_class_create_from_typespec): Likewise.  Simplify, and
5838         implement trivially.  All the cases are handled in
5839         mono_class_from_mono_type.  Don't inflate returned class.
5840         (mono_class_get_full): Delegate GENERICINST optimization to
5841         inflate_generic_type.
5842         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
5843
5844 2006-02-16  Dick Porter  <dick@ximian.com>
5845
5846         * socket-io.c (create_object_from_sockaddr): Fix typo.
5847         (create_sockaddr_from_object): Check array lengths before
5848         potentially accessing items off the end.
5849         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
5850         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
5851         (ves_icall_System_Net_Sockets_Socket_Send_internal)
5852         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
5853         length checks to avoid wraparound overflows.
5854         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
5855         contents of the array of sockets
5856         (hostent_to_IPHostEntry2)
5857         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
5858         Check return value of inet_ntop ().
5859         (addrinfo_to_IPHostEntry): Fix typo
5860
5861 2006-02-16  Raja R Harinath  <rharinath@novell.com>
5862
5863         Type metadata parsing doesn't use generic-instantiation information.
5864         * metadata.c (mono_metadata_parse_array_full): Change
5865         MonoGenericContext* parameter to MonoGenericContainer*.
5866         (mono_metadata_parse_type_full): Likewise.
5867         (mono_type_create_from_typespec_full): Likewise.
5868         (mono_metadata_parse_mh_full): Likewise.
5869         (mono_metadata_parse_generic_inst): Likewise.
5870         (do_mono_metadata_parse_generic_class): Likewise.
5871         (do_mono_metadata_parse_type): Likewise.
5872         * metadata-internals.h: Update to changes.
5873         * class.c (mono_class_find_enum_basetype): Likewise.
5874         (mono_class_setup_fields): Likewise.
5875         (mono_class_create_from_typespec): Likewise.
5876         * loader.c (method_from_methodspec): Likewise.
5877         (mono_get_method_from_token): Likewise.
5878         (mono_method_get_header): Likewise.
5879
5880 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
5881
5882         * marshal.c: handle additional GENERICINST case (patch from
5883         Thong Nguyen <tum@veridicus.com>).
5884         Fix a few cases where LDIND_I/STIND_I was used for references.
5885
5886 2006-02-16  Raja R Harinath  <rharinath@novell.com>
5887
5888         * reflection.c (mono_reflection_get_token): Remove unused variable.
5889
5890 2006-02-16  Martin Baulig  <martin@ximian.com>
5891
5892         * reflection.c (mono_reflection_get_token): Add support for fields
5893         in instantiated generic types.
5894
5895         * icall.c
5896         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
5897
5898 2006-02-15  Martin Baulig  <martin@ximian.com>
5899
5900         * icall.c
5901         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
5902         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
5903         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
5904         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
5905
5906 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
5907
5908         * class.c, metadata.c, metadata.h, object.c, icall.c,
5909         marshal.c: changed mono_type_get_underlying_type () to do
5910         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
5911         Fixed handling of instantiated generic valuetypes (bug #75479).
5912
5913 2006-02-15  Raja R Harinath  <rharinath@novell.com>
5914
5915         * metadata.c (mono_metadata_decode_signed_value): Simplify.
5916         Delegate to mono_metadata_decode_value, and work on the returned value.
5917
5918         * icall.c (ves_icall_MonoType_GetGenericArguments):
5919         Add consistency check here too.
5920         
5921 2006-02-15  Ankit Jain  <jankit@novell.com>
5922
5923         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
5924         char/short etc.
5925
5926 2006-02-15  Ankit Jain  <jankit@novell.com>
5927
5928         * metadata.c (mono_metadata_decode_signed_value): New function to decode
5929         signed values, used only for representing lower bounds of arrays.
5930         (mono_metadata_parse_array_full): Use new
5931         mono_metadata_decode_signed_value to decode lower bounds.
5932
5933 2006-02-14  Martin Baulig  <martin@ximian.com>
5934
5935         * reflection.c
5936         (mono_reflection_get_token): Support "MonoGenericMethod" and
5937         "MonoGenericCMethod" and allow generic instances / methods.
5938
5939 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
5940
5941         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
5942         to obtain the terminal size using an ioctl.
5943
5944         * object.c (mono_nullable_init): Revert this as nullable reference
5945         types are not valid.
5946         (mono_nullable_box): Ditto.
5947
5948 2006-02-09  Dick Porter  <dick@ximian.com>
5949
5950         * threads.c (mono_thread_detach): Drop a reference to the thread
5951         we're detaching.
5952
5953 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
5954
5955         * object.c (mono_nullable_init): Handle nullable reference types.
5956         (mono_nullable_box): Ditto. Fixes #77446.
5957
5958 2006-02-07  Martin Baulig  <martin@ximian.com>
5959
5960         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
5961
5962 2006-02-07  Ankit Jain  <jankit@novell.com>
5963
5964         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
5965         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
5966         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
5967         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
5968         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
5969         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
5970
5971 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
5972
5973         * class.c (mono_class_create_generic): Set type_token as well.
5974
5975         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
5976         compatible with MS.
5977
5978 2006-02-02  Martin Baulig  <martin@ximian.com>
5979
5980         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
5981         has never been used so far.
5982
5983 2006-02-02  Martin Baulig  <martin@ximian.com>
5984
5985         * mono-debug-debugger.h: Changed comment at the top of this file;
5986         the header is not installed, but it's safe to #include it from
5987         within the JIT.
5988
5989         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
5990         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
5991
5992 2006-02-02  Martin Baulig  <martin@ximian.com>
5993
5994         * mono-debug.h
5995         (MonoSymbolTable): Removed the `metadata_info' field.
5996
5997         * mono-debug.c
5998         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
5999
6000         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
6001         (mono_debugger_add_builtin_types): Removed.
6002         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
6003         (mono_debugger_create_notification_function): We now operate on a
6004         pre-allocated area; take a `gpointer' and return `void'.
6005
6006         * mono-debug-debugger.c
6007         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
6008         (mono_debugger_add_builtin_types): Removed.
6009
6010 2006-02-02  Martin Baulig  <martin@ximian.com>
6011
6012         * threads.c (mono_debugger_create_all_threads): New public method.
6013
6014 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
6015
6016         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
6017         breaks on several platforms.
6018
6019 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
6020
6021         * assembly.c: the VS.NET build doesn't supply default values for
6022         MONO_ASSEMBLIES and MONO_CFG_DIR.
6023
6024 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
6025
6026         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
6027         helper function.
6028
6029         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
6030
6031         * loader.c (method_from_memberref): Fix a warning.
6032
6033         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
6034
6035         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
6036         with explicit layout. Fixes #77433.
6037
6038 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
6039
6040         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
6041         max_interface_id is initialized before using it. Fixes #77398.
6042         (ves_icall_Type_GetInterfaces): Ditto.
6043
6044 2006-01-30  Raja R Harinath  <rharinath@novell.com>
6045
6046         * metadata.c (mono_metadata_parse_method_signature_full): Don't
6047         allocate memory for parameter attributes when parsing memberref
6048         signatures.
6049         * loader.c (mono_loader_set_error_method_load): Don't warn.
6050         (method_from_memberref): Ensure MissingMethodException gets thrown
6051         if method is not found.  Make warning more informative.
6052
6053 2006-01-29  Raja R Harinath  <harinath@gmail.com>
6054
6055         Fix #77397
6056         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
6057         return true if is byref.
6058         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
6059         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
6060         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
6061
6062 2006-01-27  Raja R Harinath  <rharinath@novell.com>
6063
6064         Fix tests/find-method.2.il
6065         * loader.c (find_method, find_method_in_class): Remove is_inflated
6066         argument.  Revert 2006-01-18 change.
6067         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
6068         is generic, search for method in its generic definition.
6069         * class.c (mono_class_setup_vtable_general): Print generic
6070         arguments of generic types in debugging printf.
6071
6072 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
6073
6074         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
6075
6076         * threads.c (mono_threads_request_thread_dump): New helper function.
6077
6078 2006-01-25  Raja R Harinath  <rharinath@novell.com>
6079
6080         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
6081
6082 2006-01-25  Ankit Jain  <jankit@novell.com>
6083
6084         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
6085         move definition to ..
6086         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
6087         
6088 2006-01-25  Ankit Jain  <jankit@novell.com>
6089             Raja R Harinath  <rharinath@novell.com>
6090
6091         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
6092         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
6093         as necessary.
6094
6095 2006-01-25  Martin Baulig  <martin@ximian.com>
6096
6097         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
6098         `MonoDebuggerThread' into debug-debugger.c.
6099
6100 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
6101
6102         * profiler.c: fix printing of data.
6103
6104 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
6105
6106         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
6107           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
6108
6109 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
6110
6111         * object.c: fix deadlock related to string interning.
6112
6113 2006-01-23  Martin Baulig  <martin@ximian.com>
6114
6115         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
6116
6117         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
6118
6119 2006-01-23  Martin Baulig  <martin@ximian.com>
6120
6121         * mono-debug.h: Moved the prototypes of some functions which are
6122         used by the JIT here from mono-debug-debugger.h.
6123
6124 2006-01-21  Martin Baulig  <martin@ximian.com>
6125
6126         * Makefile.am: Don't install mono-debug-debugger.h.
6127
6128 2006-01-21  Martin Baulig  <martin@ximian.com>
6129
6130         * mono-debug-debugger.h: Enforce the private status of this header
6131         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
6132         Moved some stuff from mono-debugger-jit-wrapper.h here.
6133
6134 2006-01-20  Raja R Harinath  <rharinath@novell.com>
6135
6136         * class.c (mono_class_from_typeref): Add a sanity test to help
6137         catch lack of assembly load/search hooks.
6138
6139 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
6140
6141         * marshal.c (emit_struct_conv): Relax the fields with same offset
6142         check even more. Fixes #77230.
6143
6144 2006-01-18  Martin Baulig  <martin@ximian.com>
6145
6146         * loader.c (find_method_in_class): Added `gboolean is_inflated'
6147         argument; if false, we compare the uninstantiated signatures.
6148         (method_from_memberref): Compare the uninstantiated signatures;
6149         fixes #76417.
6150
6151 2006-01-18  Robert Jordan  <robertj@gmx.net>
6152
6153         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
6154         Clear the weak link. Fixes bug #77170.
6155
6156         * gc.c (mono_gchandle_free):
6157         Reflect *-gc.c changes (tiny optimization).
6158
6159 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
6160
6161         * metadata.c (mono_metadata_signature_dup): Applied patch from
6162         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
6163         Fixes #77288.
6164
6165 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
6166
6167         * marshal.c (emit_struct_conv): Allow fields with the same offset when
6168         marshalling from native to managed code. Fixes #77230.
6169
6170 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6171
6172         * threadpool.c: fix problem (Mac only) when more than one asynchronous
6173         connect. Fixes bug #77020.
6174
6175 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
6176
6177         * class.c: fixed id assignement for nested interfaces (bug #77275).
6178         Added also better info for --print-vtable debugging.
6179
6180 2006-01-12  Martin Baulig  <martin@ximian.com>
6181
6182         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
6183         interfaces on-the-fly; fixes #76625.
6184
6185         * class-internals.h
6186         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
6187         don't need that anymore.
6188
6189 2006-01-12  Miguel de Icaza  <miguel@novell.com>
6190
6191         * socket-io.c
6192         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
6193         To avoid initing the nested_classes when not needed I turned the
6194         PeerCredData as a toplevel internal class, as it has to be shared
6195         anyways. 
6196
6197         Fixes the CASA issue.
6198
6199 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
6200
6201         * domain.c: Accessors for MonoJitInfo
6202
6203         * profiler-private.h: Add jitinfo to the end jit hook
6204
6205         * profiler.[ch]: Define new hooks, called after jitting which give
6206         the MonoJitInfo that was compiled
6207
6208 2006-01-10  Martin Baulig  <martin@ximian.com>
6209
6210         * class.c (mono_class_setup_events): Add support for generic
6211         classes; fixes #76440.
6212
6213 2006-01-06  Raja R Harinath  <rharinath@novell.com>
6214
6215         Fix #77160.
6216         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
6217         on passed-in method.
6218
6219 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
6220
6221         * object.c (mono_runtime_invoke_array): Add Nullable support.
6222
6223         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
6224
6225 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
6226
6227         * file-io.c: Don't consider sockets as directory and avoid an endless
6228         loop. Fix bug #76966.
6229
6230 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
6231
6232         * object.c (mono_nullable_init): New helper function.
6233         (mono_nullable_box): Ditto.
6234
6235         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
6236
6237         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
6238
6239         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
6240         
6241 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
6242
6243         * class.c (mono_class_is_assignable_from): Make T assignable to 
6244         Nullable<T>.
6245
6246 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
6247
6248         * appdomain.c: Bump corlib version to 46.
6249         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
6250         serialization purpose) and changed ves_icall_System_Reflection_
6251         Assembly_get_code_base signature to accept a boolean (to escape, or 
6252         not, the assembly code base).
6253
6254 2005-12-23  Dick Porter  <dick@ximian.com>
6255
6256         * icall.c: 
6257         * threads-types.h: 
6258         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
6259         CreateEvent icall now returns "created" boolean parameter.
6260
6261 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
6262
6263         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
6264         #76967.
6265
6266         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
6267         when attr_klass is an interface. Fixes #77045.
6268
6269 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
6270
6271         * marshal.c (emit_struct_conv): Fix previous patch.
6272         
6273         * marshal.c (emit_struct_conv): Add a check for fields with the same
6274         offset.
6275
6276 2005-12-20  Raja R Harinath  <rharinath@novell.com>
6277
6278         Fix regression in Mono.C5.
6279         * class.c (mono_class_create_generic): If 'klass' is an interface
6280         set up the interface offsets.
6281         (mono_class_is_assignable_from): Don't throw away generic arguments.
6282
6283 2005-12-19  Raja R Harinath  <rharinath@novell.com>
6284
6285         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
6286         type parameters.
6287
6288 2005-12-15  Raja R Harinath  <rharinath@novell.com>
6289
6290         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
6291         dead store.
6292         (do_mono_metadata_parse_generic_class): Don't pass the current
6293         generic context when parsing the type being instantiated: it
6294         cannot use it, anyway.
6295
6296         * loader.c (method_from_memberref): Don't inflate a signature if
6297         it doesn't contain any type parameters.
6298
6299 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
6300
6301         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
6302
6303 2005-12-14  Martin Baulig  <martin@ximian.com>
6304
6305         * class.c
6306         (mono_type_get_name_recurse): Don't return null for type
6307         parameters and open generic classes.
6308         (mono_class_setup_methods): Don't exclude generic instances.
6309         (mono_get_unique_iid): Use different IDs for different
6310         instantiations of the same generic type.
6311         (mono_class_setup_vtable): Only use setup_generic_vtable() for
6312         open generic instances; create a normal vtable for closed generic
6313         instances.
6314         (mono_class_setup_vtable_general): We're now also called for
6315         closed generic instances.
6316
6317         * reflection.c
6318         (mono_reflection_bind_generic_parameters): Correctly use
6319         mono_metadata_lookup_generic_inst() everywhere.
6320
6321 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
6322
6323         * object.c (mono_class_create_runtime_vtable): Call 
6324         mono_class_setup_vtable ().
6325
6326         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
6327         function.
6328         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
6329         #76959.
6330
6331         * loader.c (mono_loader_set_error_type_load): Print the type load
6332         warnings to the console so they are more visible to the user.
6333         (mono_loader_set_error_method_load): Ditto.
6334
6335         * reflection.c (ensure_runtime_vtable): Revert the last change as it
6336         is still broken.
6337         
6338         * reflection.c (ensure_runtime_vtable): Fix build.
6339
6340         * reflection.c (ensure_runtime_vtable): Disable an optimization which
6341         doesn't work in all cases.
6342
6343 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
6344
6345         * object.c (mono_array_new_full): Treat a single dimensional array
6346         with 0 lower bounds as an szarray. Fixes #76973.
6347
6348         * reflection.c (custom_attr_visible): Really fix this.
6349
6350 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
6351
6352         * reflection.c (custom_attr_visible): Allow nested public attributes
6353         as well.
6354
6355         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
6356         interface check.
6357
6358 2005-12-12  Raja R Harinath  <harinath@gmail.com>
6359
6360         * class.c (set_generic_param_owner): Delete.
6361         (mono_class_create_from_typedef): Don't set ->owner field of
6362         generic parameters to "param containers" of enclosing classes.
6363         * reflection.c (mono_reflection_initialize_generic_parameter):
6364         Likewise.
6365
6366 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
6367
6368         * reflection.c (custom_attr_visible): Fix build.
6369
6370 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
6371
6372         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
6373         private attributes.
6374         
6375         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
6376         handling of null parameter defaults.
6377
6378 2005-12-09  Raja R Harinath  <rharinath@novell.com>
6379
6380         * class.c (mono_class_from_generic_parameter): Don't set
6381         klass->generic_container.
6382         (my_mono_class_from_generic_parameter): Likewise.
6383
6384 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
6385
6386         * reflection.c (load_public_key): Fix a warning.
6387         (method_encode_code): Fix unaligned accesses.
6388
6389 2005-12-07  Martin Baulig  <martin@ximian.com>
6390
6391         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
6392
6393         * reflection.c
6394         (write_generic_param_entry): Encode our custom attrs.
6395
6396         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
6397
6398 2005-12-07  Martin Baulig  <martin@ximian.com>
6399
6400         * reflection.c (encode_new_constraint): Removed; we don't use the
6401         `NewConstraintAttribute' anymore.
6402
6403 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
6404
6405         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
6406         not fire a TypeResolve event when Assembly.GetType () is called.
6407
6408 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
6409
6410         Beginning of support for nullable types in the runtime. Parts of
6411         this patch are from Martin.
6412
6413         * appdomain.c (MONO_CORLIB_VERSION): Bump
6414
6415         * domain.c (mono_init_internal): get the nullable type
6416
6417         * class.c (mono_class_is_nullable): New method
6418         (mono_class_get_nullable_param): New mehod
6419         (mono_class_create_generic): In types T? set cast_class to T
6420
6421         * class-internals.h (MonoDefaults): new nullable default class
6422         (mono_class_get_nullable_param, mono_class_get_nullable_param):
6423         new methods.
6424
6425 2005-12-05  Raja R Harinath  <rharinath@novell.com>
6426
6427         * metadata.c (select_container): New.  Refactor code to select the
6428         appropriate GenericContainer given the type of generic parameter
6429         we are looking for.
6430         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
6431         not a MonoGenericContext.  Use select_container.  Update parameters.
6432         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
6433         and MONO_TYPE_MVAR.
6434         (unwrap_arrays): Remove duplicate tests.
6435         (find_generic_param): Rename from 'has_same_context'.  Now walks a
6436         generic instantiated class to find any arguments that are generic
6437         parameters.
6438         (mono_type_create_from_typespec_full): Use find_generic_param to
6439         avoid evicting some generic instantiations from the typespec
6440         cache.
6441
6442 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
6443
6444         * reflection.c: fixed writing of doubles on ARM FPA.
6445
6446 2005-12-02  Robert Jordan  <robertj@gmx.net>
6447
6448         * icall.c: Fixed EventInfo.ReflectedType (#76829).
6449
6450 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6451
6452         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
6453         least on SUSE 10 they are not the same (on debian, they are just the
6454         same thing).
6455
6456 2005-12-01  Raja R Harinath  <rharinath@novell.com>
6457
6458         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
6459         DeclaringType for VARs and MVARs.
6460         * class.c (set_generic_param_owner): Fix initialization of owner
6461         fields.
6462
6463 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
6464
6465         * icall.c: fixed Enum.ToObject() to correctly convert the values.
6466
6467 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6468
6469         * threadpool.c: workaround for a bug that shows up on the Mac:
6470         select()+connect() on a blocking socket is not like it should
6471         be, so we proceed to connect() in that case, wasting the I/O
6472         threadpool thread until connect succeedes. Fixes bug #75436.
6473
6474 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6475
6476         * threadpool.c: fix typo when setting file descriptor states.
6477
6478 2005-11-28  Raja R Harinath  <rharinath@novell.com>
6479
6480         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
6481         * metadata.c (mono_metadata_parse_method_signature_full): Don't
6482         create a temporary signature container.
6483         (mono_metadata_parse_generic_param): Update to changes.
6484         (mono_type_create_from_typespec_full): Update to changes.
6485         * loader.c (method_from_memberref): Don't use a
6486         MonoGenericContainer while parsing a memberref signature.
6487         (method_from_methodspec): Remove dead-store of the 'container'
6488         variable.  It's overwritten before use.
6489
6490         * metadata.c (mono_type_create_from_typespec_full): Make debugging
6491         checks tighter.
6492         (mono_metadata_parse_generic_param): Likewise.
6493         * loader.c (find_method_in_class): Does not need a
6494         MonoGenericContainer.  Use 'mono_method_signature' rather than
6495         'mono_method_signature_full'.
6496         (find_method, mono_get_method_constrained, method_from_memberref):
6497         Update to changes.
6498
6499         * metadata.c (mono_type_create_from_typespec_full): Ensure that
6500         owner-less generic-parameters are never evicted from the typespec
6501         cache.
6502
6503         * loader.c (method_from_memberref): Don't use the current context
6504         when parsing signatures.
6505         (method_from_methodspec, mono_get_method_from_token): Update to changes.
6506
6507         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
6508         side-effects in g_assert.
6509         * loader.c (mono_get_method_from_token): Resolve klass earlier so
6510         that we don't potentially lose information.
6511
6512 2005-11-26  Dick Porter  <dick@ximian.com>
6513
6514         * icall.c:
6515         * threads.c: icalls to implement basic (ie, not named)
6516         System.Threading.Semaphore.
6517
6518 2005-11-24  Dick Porter  <dick@ximian.com>
6519
6520         * process.c
6521         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
6522         Use GetProcessId() if it's available.
6523
6524 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
6525
6526         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
6527
6528 2005-11-23  Raja R Harinath  <rharinath@novell.com>
6529             Ankit Jain  <jankit@novell.com>
6530
6531         * loader.c (mono_get_method_from_token): Initialize 'method' field
6532         of all generic parameters before parsing the signature.  Remove
6533         code that "fixed"-up MVAR references.
6534
6535 2005-11-23  Ankit Jain  <jankit@novell.com>
6536
6537         * metadata.c (mono_metadata_has_generic_params):
6538         (mono_metadata_load_generic_param_constraints):
6539         (mono_metadata_load_generic_params): Move duplicate code ...
6540         (mono_metadata_get_generic_param_row): ... here. Returns the
6541         first row-id in GenericParam table for a given owner (token).
6542         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
6543         prototype.
6544
6545 2005-11-23  Raja R Harinath  <rharinath@novell.com>
6546             Ankit Jain  <jankit@novell.com>
6547
6548         * metadata.c (mono_metadata_class_equal): Pass signature_only when
6549         comparing VARs too.
6550         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
6551         type->data.generic_param only if the type is an MVAR.
6552         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
6553         leak owner-less VARs and MVARs into managed space.
6554
6555 2005-11-21  Martin Baulig  <martin@ximian.com>
6556
6557         * class-internals.h
6558         (MonoMethod): Moved the `generic_container' here from
6559         `MonoMethodNormal' since we now also need it for
6560         `MonoMethodPInvoke';
6561         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
6562         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
6563         an union containing both `MonoMethodNormal' and
6564         `MonoMethodPInvoke'.
6565
6566         * loader.c
6567         (mono_get_method_from_token): Allow implementing generic methods
6568         as interncalls.
6569
6570         * threads.c
6571         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
6572         icall.
6573
6574 2005-11-17  Dick Porter  <dick@ximian.com>
6575
6576         * icall.c: 
6577         * process.h: 
6578         * process.c: Split the Process Start_internal icall into
6579         ShellExecuteEx_internal and CreateProcess_internal, which are
6580         called depending on whether UseShellExecute is true.  Fixes bug
6581         76670.
6582
6583         * appdomain.c (MONO_CORLIB_VERSION): Incremented
6584
6585 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
6586
6587         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
6588         'msize' parameters, use the information in 'mspec' instead.
6589         (emit_object_to_ptr_conv): Ditto.
6590
6591         * marshal.c (emit_struct_conv): Handle explicit layout structs with
6592         fields out of order. Fixes #76733.
6593
6594 2005-11-17  Ankit Jain  <jankit@novell.com>
6595
6596         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
6597
6598 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
6599
6600         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
6601           bug #76575.
6602
6603 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
6604
6605         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
6606         for types with non-auto layout. Fixes #76717.
6607
6608 2005-11-16  Ankit Jain  <jankit@novell.com>
6609
6610         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
6611         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
6612         if generic_context is null.
6613           (mono_metadata_generic_param_equal): param->owner can be null.
6614           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
6615         null.
6616
6617 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
6618
6619         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
6620         the correct value.
6621
6622 2005-11-15  Martin Baulig  <martin@ximian.com>
6623
6624         * object.c (set_value): Use mono_class_from_mono_type() instead of
6625         the hack for generic instances; fixes #76136.
6626
6627 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
6628
6629         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
6630         fields.
6631
6632         * image.c (load_metadata_ptrs): Initialize the new fields.
6633
6634         * reflection.c (create_dynamic_mono_image): Ditto.
6635
6636         * reflection.c (build_compressed_metadata): Use the new fields.
6637
6638         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
6639         icall.
6640
6641         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
6642         icall.
6643         
6644 2005-11-15  Ankit Jain  <jankit@novell.com>
6645             Raja R Harinath  <harinath@gmail.com>
6646
6647         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
6648         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
6649         new per-generic_container cache if the cached MonoType's context matches
6650         the current context.
6651           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
6652         to the expected context.
6653           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
6654
6655 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6656
6657         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
6658         we changed the signature of an icall.
6659         * icall.c: Modify to mono_double_ParseImpl return true/false 
6660         depending on the success, instead of throwing the exception. This will
6661         help us in Double.TryParse methods.
6662         
6663 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
6664
6665         * marshal.c (emit_marshal_object): Throw an exception when
6666         marshalling 'object' instead of crashing. Fixes #76696.
6667
6668 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
6669
6670         * class-internals.h: Add prototype for mono_type_get_full_name ().
6671
6672 2005-11-11  Dick Porter  <dick@ximian.com>
6673
6674         * threads.c (mono_thread_manage): Make sure the main thread has
6675         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
6676
6677 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
6678
6679         * loader.c (mono_loader_set_error_type_load): Log a warning to the
6680         console about the missing type.
6681         (mono_loader_set_error_method_load): Ditto.
6682
6683 2005-11-09  Miguel de Icaza  <miguel@novell.com>
6684
6685         * mono-config.c (mono_get_config_dir): Set the system defaults if
6686         none is specified.
6687
6688         * assembly.c (mono_set_dirs): New API entry point to set the
6689         assembly and the config directory in one call
6690
6691 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
6692
6693         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
6694         the ftnptr was created from a delegate in a domain other than the
6695         current domain. Fixes #75377.
6696
6697         * exception.h exception.c: Add mono_get_exception_not_supported ().
6698
6699 2005-11-08  Martin Baulig  <martin@ximian.com>
6700
6701         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
6702
6703 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
6704
6705         * security-manager.h: Added definitions to deal with strongname key 
6706         pairs bigger (and smaller) than 1024 bits.
6707         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
6708         adjust wrt the public key length being used.
6709
6710 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
6711
6712         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
6713           Windows build (r51396-51397).
6714
6715 2005-11-03  Martin Baulig  <martin@ximian.com>
6716
6717         * class.c (mono_class_setup_vtable_general): Also add generic
6718         methods to the vtable; fixes #76581.
6719
6720 2005-11-01  Miguel de Icaza  <miguel@novell.com>
6721
6722         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
6723         sure that we lookup GetString method from the System.Text.Encoding
6724         class, not the derived class or we get an empty method.
6725
6726         Fixed class #76612.
6727
6728 2005-10-25  Miguel de Icaza  <miguel@novell.com>
6729
6730         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
6731         if it has been previously set (embedders). 
6732
6733         Make mono_set_rootdir available also on Unix.
6734
6735 005-10-24  Robert Jordan  <robertj@gmx.net>
6736
6737         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
6738
6739 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
6740
6741         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
6742         only calls which are made to native code use this flag.
6743
6744         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
6745
6746 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
6747
6748         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
6749         Add support for FieldBuilders.
6750
6751 2005-10-29  Martin Baulig  <martin@ximian.com>
6752
6753         * mono-debug.c
6754         (mono_debug_using_mono_debugger): New public method; returns
6755         whether we're running inside the debugger.
6756
6757 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
6758
6759         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
6760         for Method/Constructor/FieldBuilders.
6761
6762 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
6763
6764         * reflection.c (module_add_cattrs): Save custom attributes for global methods
6765         and fields as well.
6766
6767 2005-10-26  Martin Baulig  <martin@ximian.com>
6768
6769         * mono-debug-debugger.c
6770         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
6771
6772 2005-10-24  Raja R Harinath  <harinath@gmail.com>
6773
6774         * icall.c (base64_to_byte_array): Don't pass an out-of-range
6775         integer to isspace.
6776
6777 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
6778
6779         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
6780         when passing valuetypes byref. Fixes #76502.
6781
6782 2005-10-19  Jackson Harper  <jackson@ximian.com>
6783
6784         * profiler.c: Don't put a . in front of types that are not in a
6785         namespace.
6786
6787 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
6788
6789         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
6790
6791 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
6792
6793         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
6794         #76436.
6795         (mono_marshal_get_ldflda_wrapper): Fix a warning.
6796
6797 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6798
6799         * assembly.c metadata-internals.h icall.c: Define an additional
6800         parameter for mono_assembly_name_parse_full, so we can avoid creating
6801         S.R.AssemblyName.Version when no version info wasn't passed.
6802         
6803 2005-10-09  Miguel de Icaza  <miguel@novell.com>
6804
6805         * class.c (mono_type_get_full_name): Reimplement method that was
6806         removed. 
6807
6808         * image.c: Some docs
6809
6810 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
6811
6812         * profiler.c (output_newobj_profile): Fix printing of Total memory
6813         on x86.
6814
6815 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
6816
6817         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
6818
6819 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
6820
6821         * threads.c: remove debug output.
6822
6823 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
6824
6825         * threads.c (mono_thread_manage): Fix crashes if more than 64
6826         threads need to be aborted. Hopefully fixes #75899.
6827
6828         * assembly.c (mono_stringify_assembly_name): New helper function.
6829
6830         * class.c: Use mono_stringify_assembly_name instead of the similar
6831         static function.
6832
6833         * assembly.h assembly.c: Add support for calling a postload search 
6834         hook if an assembly cannot be loaded.
6835
6836         * appdomain.c: Register new search hooks which call the AssemblyResolve
6837         events in AppDomain. Fixes #75231
6838
6839 2005-10-07  Martin Baulig  <martin@ximian.com>
6840
6841         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
6842         methods without debug info.
6843
6844 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
6845
6846         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
6847         wrappers.
6848
6849 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6850
6851         * file-io.c: now that we return symlinks, use lstat and, when the file
6852         is a symbolic link, stat, to get the file attributes. Also avoid the
6853         conversion to/from utf16/external.
6854
6855 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
6856
6857         * class.c (mono_class_layout_fields): Compute klass->has_references
6858         correctly if an embedded valuetype is not yet initialized. Fixes
6859         #76331.
6860
6861 2005-10-04  Martin Baulig  <martin@ximian.com>
6862
6863         * metadata.c
6864         (mono_metadata_load_generic_param_constraints): New public
6865         function; splitted the constraints loading out from
6866         mono_metadata_load_generic_params().
6867
6868         * class.c (mono_class_create_from_typedef): Call
6869         mono_metadata_load_generic_param_constraints() after setting up
6870         the type and creating our parent; fixes #75329.
6871
6872 2005-10-04  Martin Baulig  <martin@ximian.com>
6873
6874         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
6875         non-dynamic parent classes.
6876
6877 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
6878
6879         * file-io.c : win32 build fix (ETXTBSY seems not found).
6880
6881 2005-10-04  Martin Baulig  <martin@ximian.com>
6882
6883         * reflection.c
6884         (mono_image_get_methodspec_token): Make the cache actually work;
6885         fixes #75974.
6886
6887 2005-10-04  Martin Baulig  <martin@ximian.com>
6888
6889         * class.c (mono_class_name_from_token): Removed the unneccessary
6890         `MonoGenericContext *' argument.
6891
6892 2005-10-04  Martin Baulig  <martin@ximian.com>
6893
6894         * loader.c
6895         (method_from_methodspec): Make the caching work again; fixes the
6896         performance regression from #76262.
6897
6898 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6899
6900         * file-io.c:
6901         * file-io.h:
6902         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
6903         GetFileSystemEntries that performs the same work but without going
6904         into io-layer, locking, etc.
6905
6906 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
6907
6908         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
6909         ThreadState_Stopped as well. Fixes #76047.
6910
6911 2005-09-29  Martin Baulig  <martin@ximian.com>
6912
6913         * class.c
6914         (inflate_generic_context): If the new context has a `gmethod', set
6915         its `container' that that gmethod's `container'.
6916
6917         * metadata.c
6918         (mono_metadata_parse_generic_param): Simplify things;
6919         `generic_container = generic_context->container;' is just fine.
6920
6921         * loader.c (method_from_methodspec): Code cleanups.
6922
6923 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
6924
6925         * decimal.c: fix warning (and let gcc generate correct
6926         code on ARM with optimizations).
6927
6928 2005-09-28  Martin Baulig  <martin@ximian.com>
6929
6930         * loader.c
6931         (method_from_memberref): Added `MonoGenericContext *class_context'
6932         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
6933         (method_from_methodspec): If we're a memberref, use the enclosing
6934         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
6935
6936 2005-09-28  Martin Baulig  <martin@ximian.com>
6937
6938         * object.c (mono_runtime_invoke_array): Added support for
6939         MONO_TYPE_GENERICINST; fixes #75917.
6940
6941 2005-09-27  Martin Baulig  <martin@ximian.com>
6942
6943         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
6944         `k->byval_arg.type' to determine the actual type.
6945
6946         * loader.c (method_from_methodspec): Removed some hacks.
6947
6948 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
6949
6950         * class-internals.h (mono_field_is_deleted): Do the test for
6951         rtspecialname before we check the actual name of the field. This
6952         prevents us from dereferencing a pointer into the string table,
6953         saving us from accessing a few pages
6954
6955         * *.c: Replace the use of {Enter,Leave}CriticalSection with
6956         macros. This will allow a deadlock debugger to easily be plugged
6957         in.
6958
6959 2005-09-27  Martin Baulig  <martin@ximian.com>
6960
6961         * loader.c (method_from_methodspec): Create a "signature"
6962         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
6963
6964 2005-09-27  Martin Baulig  <martin@ximian.com>
6965
6966         * class.c
6967         (inflate_generic_class): Correctly set the new context's
6968         container.
6969
6970         * loader.c
6971         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
6972         instead of a `MonoGenericContext *'.
6973         (mono_method_signature_full): Take a `MonoGenericContainer *'
6974         instead of a `MonoGenericContext *'.
6975
6976         * metadata.c
6977         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
6978         instead of a `MonoGenericContext *'.
6979         (mono_metadata_parse_method_signature_full): Likewise.
6980
6981 2005-09-26  Martin Baulig  <martin@ximian.com>
6982
6983         * class.c
6984         (mono_class_from_generic_parameter): Set `klass->generic_container'
6985         (mono_class_from_generic_parameter): Likewise.
6986         (mono_bounded_array_class_get): We inherit the generic container
6987         from the element class.
6988
6989         * loader.c
6990         (find_method, find_method_in_class): Take a `MonoGenericContext *'
6991         argument rather than computing it here.
6992         (method_from_memberref): Correctly set the generic context before
6993         parsing the signature.  Fixes #75681.
6994
6995 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
6996
6997         * object.c (mono_class_has_special_static_fields): Fix warnings.
6998
6999 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7000
7001         * assembly.c: Add parse_public_key function, to
7002         par the public keys. Also added mono_assembly_name_parse_full,
7003         to define it the parsed key should be freed or not.
7004         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
7005         to parse a long format assembly name.
7006         * metadata-internals.h: Keep mono_assembly_name_parse_full as
7007         private, since calling it to preserve the key requires
7008         freeing it manually.
7009         
7010 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
7011
7012         * locales.c : removed HAVE_ICU part.
7013
7014 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
7015
7016         * object.c (mono_class_create_runtime_vtable): Avoid calling 
7017         field_is_special_static if the klass has no special static fields.
7018
7019         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
7020         (MonoCachedClassInfo): Likewise.
7021
7022         * object.c (mono_class_has_special_static_fields): New helper function.
7023
7024 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
7025
7026         * class.c (mono_class_create_from_typedef): Don't call 
7027         interfaces_from_typedef_full for enums.
7028         (mono_class_create_from_typedef): Compute the base types of enums directly
7029         without calling mono_class_setup_fields ().
7030         (mono_class_find_enum_basetype): New helper function.
7031
7032         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
7033         one place inside the string heap.
7034         
7035 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
7036
7037         * class.c: locking fixes, code cleanups, some docs added.
7038         Allocate some data structures in the image mempool.
7039
7040 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
7041
7042         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
7043         the example code.
7044         
7045 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
7046
7047         * class-internals.h, class.c, reflection.c: reduce memory taken by
7048         MonoClass.
7049
7050 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
7051
7052         * metadata.c, metadata.h, loader.h: documentation updates, code and
7053         API cleanups.
7054
7055 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
7056
7057         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
7058         the example code.
7059
7060         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
7061         page faults caused by the runtime while reading metadata.
7062
7063 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7064
7065         * socket-io.c: the field names were changed 3 months ago and no one
7066         realized until bug #76077 got filed!
7067
7068 2005-09-20  Martin Baulig  <martin@ximian.com>
7069
7070         * icall.c (assembly_icalls): Removed some unused debugger icalls.
7071
7072 2005-09-20  Martin Baulig  <martin@ximian.com>
7073
7074         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
7075         write the rank into the class entry.
7076
7077 2005-09-20  Martin Baulig  <martin@ximian.com>
7078
7079         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
7080
7081 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
7082
7083         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7084
7085         * icall.c (custom_attrs_defined_internal): New icall.
7086
7087         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
7088         function.
7089         (mono_custom_attrs_construct_by_type): New helper function.
7090
7091 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
7092
7093         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
7094         terminate the resulting string. Fixes #76123.
7095
7096 2005-09-16  Martin Baulig  <martin@ximian.com>
7097
7098         * mono-debug.c
7099         (mono_debug_add_method): Ignore inflated methods for the moment.
7100
7101 2005-09-14  Martin Baulig  <martin@ximian.com>
7102
7103         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
7104
7105 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
7106
7107         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
7108         return a success/failure indication.
7109         (mono_metadata_interfaces_from_typedef_full): Ditto.
7110         (get_constraints): Ditto.
7111
7112 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
7113
7114         * marshal.c (emit_marshal_array): Fix handling of null arrays.
7115         
7116         * marshal.c (emit_marshal_array): Add support for returning string
7117         arrays from delegates. Fixes #76063.
7118
7119         * marshal.c: Use the emit_ldloc/stloc macros where possible.
7120
7121 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
7122
7123         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
7124         icall.
7125
7126 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
7127
7128         * reflection.c icall.c: Fix after mono_get_exception_type_load
7129         signature change.
7130
7131         * assembly.c (mono_assembly_get_assemblyref): New helper function.
7132         (mono_assembly_load_reference): Use the new helper.
7133
7134         * class-internals.h (MonoLoaderError): New structure containing 
7135         information about type loading errors.
7136
7137         * class-internals.h loader.c: Add APIs to store per-thread loader
7138         error information.
7139
7140         * loader.c class.c: Set the loader error if needed.
7141
7142         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
7143
7144 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
7145
7146         * decimal.c: fixed to handle the broken ARM fp format.
7147
7148 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
7149
7150         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
7151         broken.
7152
7153 2005-09-06  Martin Baulig  <martin@ximian.com>
7154
7155         * domain.c (supported_runtimes): Added v2.0.50727.
7156
7157 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
7158
7159         * culture-info.h: reduce the size of some structures.
7160
7161 2005-09-05  Martin Baulig  <martin@ximian.com>
7162
7163         Reflect latest API changes in the August CTP.
7164
7165         * icall.c
7166         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
7167         ("MonoType.HasGenericArguments"): Removed.
7168         ("MonoMethod.BindGenericParameters"): Renamed to
7169         "MakeGenericMethod".
7170         ("MethodBuilder.BindGenericParameters"): Renamed to
7171         "MakeGenericMethod".    
7172
7173 2005-09-05  Martin Baulig  <martin@ximian.com>
7174
7175         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
7176
7177 2005-09-05  Martin Baulig  <martin@ximian.com>
7178
7179         Applying a patch from Michal Moskal <malekith@nemerle.org>.
7180
7181         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
7182         generic_container is non-NULL.
7183
7184 2005-09-05  Martin Baulig  <martin@ximian.com>
7185
7186         Applying a patch from Michal Moskal <malekith@nemerle.org>.
7187
7188         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
7189
7190 2005-08-29  Michal Moskal  <malekith@nemerle.org>
7191
7192         * reflection.c (encode_locals,
7193         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
7194         for large generic types.
7195
7196 2005-09-05  Martin Baulig  <martin@ximian.com>
7197
7198         Applying a patch from Michal Moskal <malekith@nemerle.org>.
7199
7200         * class.c (mono_dup_array_type): New public method.
7201         (mono_metadata_signature_deep_dup): New public method.
7202         (dup_type): Correctly duplicate array and function types.
7203
7204 2005-09-05  Martin Baulig  <martin@ximian.com>
7205
7206         Applying a patch from Michal Moskal <malekith@nemerle.org>.
7207
7208         * reflection.c (get_default_param_value_blobs): Handle generic types
7209         and generic methods.
7210
7211 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
7212
7213         * class.c: Fixed error reporting (method/class were inversed) for 
7214         inheritance demands.
7215         * security-manager.c|h: Added the AppDomain when calling the managed
7216         System.Security.SecurityManager.InheritanceDemand method.
7217
7218 2005-09-01  Raja R Harinath  <rharinath@novell.com>
7219
7220         * reflection.c (encode_marshal_blob): 'marshaltype' and
7221         'marshaltyperef' are alternate sources for the custom marshaler
7222         name.
7223
7224 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
7225
7226         * class.c: fix creation of array classes with rank == 1
7227         (patch by Ankit Jain <jankit@novell.com>).
7228
7229 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
7230
7231         * object.c: fix check for creating the bound data for arrays vs
7232         szarrays.
7233
7234 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7235
7236         * object.c: configuration file name is now based on the executable name,
7237         not the image name. Fixes bug #75931.
7238
7239 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
7240
7241         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
7242         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
7243
7244 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
7245
7246         * rand.c: Use wincrypt.h instead of WinCrypt.h.
7247
7248 2005-08-24  Ankit Jain  <jankit@novell.com>
7249             Raja R Harinath  <rharinath@novell.com>
7250
7251         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
7252           called by it recursively.
7253           (mono_class_init): Remove special case in pending_init handling, since it's
7254           superseded by the fix to mono_class_from_typeref.
7255
7256 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
7257
7258         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
7259         BROKEN_THREAD_START stuff.
7260
7261 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
7262
7263         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
7264         trampoline.
7265
7266         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
7267         
7268         * object.c (mono_delegate_ctor): Replace the original function address with
7269         a delegate trampoline.
7270
7271 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
7272
7273         * icall.c: add boolean argument to base64_to_byte_array and 
7274         InternalFromBase64String to control whether a whitespace-only string
7275         is allowed (or should casue a FormatException to be thrown). We need
7276         this as the behavior has changed between MS.NET 1.x and 2.0, and we
7277         to match the MS behaviour in both profiles.
7278         * appdomain.c: Bump corlib version.
7279
7280 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7281
7282         This patch implements a big portion of publisher policy
7283         support, used to bind assembly versions and redirect
7284         one assembly from version A to version B.
7285
7286         * assembly.c:
7287         New GSList loaded_assembly_bindings, for storing the cached
7288         assembly bindings.
7289         (assembly_binding_maps_name): New static function for checking if a 
7290         assembly binding information maps an assembly name.
7291         (mono_assembly_binding_info_free): New function for freeing
7292         assembly binding information resources.
7293         (get_publisher_policy_info): New static function for retrieving 
7294         assembly binding information from a MonoImage.
7295         (compare_versions): New static function for comparing an assembly
7296         binding information data and the version of an assembly name.
7297         (check_policy_versions): New static function for checking if an
7298         assembly binding info mapping an assembly name is valid for it.
7299         (mono_assembly_load_publisher_policy): New static function for
7300         loading the 'policy.major.minor.MyAssembly' image for an assembly
7301         with an assembly name 'aname'.
7302         (mono_assembly_bind_version): New static function for updating
7303         assembly redirection.
7304         (mono_assembly_apply_binding): New static function for applying
7305         assembly binding.
7306         (search_binding_loaded): New static function for searching 
7307         loaded assembly binding infos in the cache domain.
7308         (mono_assembly_load_full): Don't apply assembly binding for
7309         reflection only assemblies.
7310
7311         * metadata-internals.h: Add MonoAssemblyBindingInfo,
7312         which contains information about assembly binding. Also
7313         declare signature for mono_config_parse_publisher_policy ()
7314         function, used to retrieve pub policy info.
7315         
7316         * mono-config.c:
7317         (publisher_policy_start): New static function used to parse publisher 
7318         policy config files.
7319         (publisher_policy_parser): New static MonoParseHandler containing 
7320         the functions used when parsing config files.
7321         (mono_config_parse_publisher_policy): New function for parsing
7322         publisher policy files.
7323         
7324 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
7325
7326         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
7327
7328         * marshal.c (mono_delegate_free_ftnptr): Ditto.
7329
7330         * object.c (mono_get_addr_from_ftnptr): New helper function.
7331
7332         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
7333
7334         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7335
7336 2005-08-19  Dick Porter  <dick@ximian.com>
7337
7338         * threads.c, threads.h, appdomain.c, appdomain.h,
7339         profiler-private.h, monitor.c, object.c, object-internals.h,
7340         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
7341         store the thread ID, so it can hold a 64 bit value if needed.
7342
7343 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
7344
7345         * reflection.c (mono_reflection_create_dynamic_method): Store the
7346         handle class into the method references as well so ldtoken works in
7347         dynamic methods.
7348
7349         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
7350         types.
7351
7352 2005-08-19  Ankit Jain <jankit@novell.com>
7353
7354         Fix #75847.
7355         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
7356           here rather than using the method signature of a arbitrary function
7357           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
7358           two arguments.
7359           Hack done with Harinath.
7360
7361 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7362
7363         * threadpool.c: disable printing stack traces when we get a exception
7364         in a threadpool thread. I need to do more testing to figure out which
7365         cases actually print this. Fixes bug #75828.
7366
7367 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7368
7369         * icall.c: there might be ignored whitespace after the last '='. This
7370         fixes length computation and bug #75840.
7371
7372 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
7373
7374         * assembly.c (mono_assembly_load_full): Consider .exe extension as
7375         well. Fixes #75809.
7376
7377         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
7378         #75784.
7379         
7380         * reflection.c (create_custom_attr_data): Ditto.
7381
7382 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
7383
7384         * locales.c, culture-info.h : removed RegionLCIDMap.
7385         * culture-info-tables.h : regenerated.
7386
7387 2005-08-16  Martin Baulig  <martin@ximian.com>
7388
7389         * class.c (mono_type_get_name_recurse): Small fix.
7390
7391 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
7392
7393         * locales.c : indentation fixie.
7394
7395 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
7396
7397         * object-internals.h,
7398           locales.h,
7399           locales.c,
7400           culture-info.h,
7401           icall.c : added RegionInfo table support.
7402         * culture-info-table.h : regenerated for region support.
7403
7404 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
7405
7406         * reflection.c (resolve_object): handle all kinds of MonoMethod
7407         including generic ones
7408
7409 2005-08-12  Ankit Jain <jankit@novell.com>
7410
7411         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
7412           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
7413
7414 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
7415
7416         * process.c: Don't close a thread handle when it's NULL. This is a
7417         workaround for bug #75733.
7418
7419 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
7420
7421         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
7422
7423 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
7424
7425         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
7426
7427 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7428
7429         * threadpool.c: if a work item in the thread pool has a callback that
7430         catches a exception, don't propagate it after invoking the callback.
7431         Fixes bug #75336.
7432
7433 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
7434
7435         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
7436
7437         * class-internals.h (MonoCachedClassInfo): Add some new fields.
7438
7439         * class.c (mono_class_init): Load field info lazily in the AOT case.    
7440
7441         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
7442
7443 2005-08-03  Ankit Jain  <jankit@novell.com>
7444
7445         Fix #75683.
7446         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
7447           PInvoke calling convention is 0.
7448
7449 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
7450
7451         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
7452         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
7453
7454 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
7455
7456         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
7457         to handle threads not started by the GC (patch by Michael Meeks
7458         <michael.meeks@novell.com>).
7459
7460 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
7461
7462         * reflection.c: Make buffer used in emitting types larger for some
7463         big generic types (patch by Michal Moskal).
7464
7465 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
7466
7467         * mono-debug.c: Fix some (not all) alignment problems.
7468
7469 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7470
7471         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
7472         Invoke mono_image_load_from_data_full passing the refonly
7473         parameter.
7474
7475         * assembly.c
7476         (mono_assembly_open_from_bundle): Add the refonly argument, 
7477         in order to pass it to other methods it calls to.
7478         (do_mono_assembly_open): Add the refonly argument, in order 
7479         to pass it to other methods it calls to.
7480         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
7481         the refonly parameter to it.
7482
7483         * image.c: Add loaded_images_refonly_hash and
7484         loaded_images_refonly_guid_hash to cache the reflection
7485         only loaded images.
7486         (mono_images_init): Initialize the hash tables used for
7487         caching the reflection only images.
7488         (load_modules): Invoke mono_image_open_full passing the refonly
7489         parameter to load the modules the correct way.
7490         (build_guid_table): Add the refonly argument, to re-build the 
7491         correct hash table.
7492         (do_mono_image_open): Added the refonly argument, in order to
7493         define it for the loaded image.
7494         (mono_image_loaded_full): New function, which receives an
7495         additional parameter to look for the image in the refonly or
7496         non-refonly section.
7497         (mono_image_loaded): Updated, using mono_image_loaded_full.
7498         (mono_image_loaded_by_guid_full): The same case that happens
7499         with mono_image_loaded_full.
7500         (mono_image_loaded_by_guid): Likewise.
7501         (register_image): Use the ref_only variable inside MonoImage
7502         to decide in which hash table store the current image.
7503         (mono_image_open_from_data_full): Rename
7504         mono_image_open_from_data to mono_image_open_from_data_full,
7505         adding the refonly argument, to define the ref_only variable 
7506         inside MonoImage.
7507         (mono_image_open_from_data): Return 
7508         mono_image_open_from_data_full.
7509         (mono_image_open_full): Rename mono_image_open to
7510         mono_image_open_full, receiving the new refonly argument,
7511         to pass it to inner methods.
7512         (mono_pe_file_open): Update this function, to open
7513         a MonoImage as a non-refonly image.
7514         (mono_image_close): Use the refonly variable inside
7515         MonoImage to remove the image from the correct caches.
7516
7517         * image.h: Add the signatures of mono_image_open_full,
7518         mono_image_open_from_data_full, mono_image_loaded_full,
7519         mono_image_loaded_by_guid_full.
7520
7521         * metadata-internals.h: Add the ref_only field to 
7522         MonoImage.
7523         
7524 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7525
7526         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
7527         Fix the last behavior, which used to load the assemblies and
7528         extract MonoReflectionAssemblyName information, instead of
7529         extract it from the metadata tables. Needed for Reflection
7530         Only assemblies.
7531         
7532 2005-07-29  Martin Baulig  <martin@ximian.com>
7533
7534         * mono-debug-debugger.c
7535         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
7536         not initialized.
7537
7538         * mono-debug.c
7539         (mono_debug_address_from_il_offset): Check whether we have
7540         debugging support before attempting to take the lock.
7541         (mono_debug_source_location_from_address): Likewise.
7542         (mono_debug_source_location_from_il_offset): Likewise.
7543         (mono_debug_il_offset_from_address): Likewise.
7544         (mono_debug_address_from_il_offset): Likewise.
7545
7546 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
7547
7548         * class.c (mono_class_from_name_case): Add support for dynamic images.
7549         Fixes #75650.
7550
7551         * object.c (mono_class_compute_gc_descriptor): Add a workaround
7552         for #75479.
7553
7554 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
7555         
7556         * reflection.c (mono_method_get_object): Fix warning.
7557
7558 2005-07-28  Martin Baulig  <martin@ximian.com>
7559
7560         * mono-debug.c
7561         (mono_debug_add_wrapper): Also write the wrapper type.
7562
7563 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
7564
7565         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
7566         
7567         * class.c (mono_class_init): Avoid reading nested classes if the AOT
7568         data indicates the class has none.
7569
7570 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
7571
7572         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
7573         loader lock with the debugger lock. Prevents deadlocks for beagle.
7574
7575         Beagle can now run on an smp box for a weekend without any
7576         issues. Woohoo!
7577
7578 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
7579
7580         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
7581         in a module. Fixes #75629.
7582
7583 2005-07-26  Martin Baulig  <martin@ximian.com>
7584
7585         * mono-debug.c (mono_debug_add_wrapper): New static method.
7586         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
7587         interncall or a wrapper.
7588
7589         * mono-debug.h (MonoDebugWrapperData): New public typedef.
7590         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
7591         (MONO_DEBUGGER_VERSION): Bump to 51.
7592
7593         * mono-debug-debugger.c
7594         (mono_debugger_add_type): Removed this empty function.
7595         (mono_debugger_add_method): Likewise.
7596
7597 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
7598
7599         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
7600         before accessing method->slot.
7601
7602 2005-07-21  Jb Evain  <jbevain@gmail.com>
7603
7604         * reflection.c (method_encode_clauses/class): Handle filters clauses.
7605         Fixes #75010.
7606
7607 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
7608
7609         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
7610         #75587.
7611
7612 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
7613
7614         * image.h image.c: Add mono_image_get_guid () API function.
7615
7616 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
7617
7618         There were issues when multiple threads tried to load
7619         assemblies. A deadlock was created between assemblies_mutex and
7620         mono_domain_assemblies_lock. This fixes the issue by making the
7621         assembly ref counting be lock free. See bug 75586.
7622         
7623         * image.c (mono_image_close): The add ref function here was using
7624         Interlocked operations while the unref was using a mutex and a
7625         --. I don't think this was ever a bug that would be exposed in a
7626         non-pendantic way (ie, by an embedder doing a ref on one thread
7627         and an unref on another), but for the sake of correctness, this is
7628         now Interlocked.
7629
7630         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
7631         (mono_assembly_load_reference): Call mono_assembly_addref rather
7632         than touching the refcount ourselves.
7633         (mono_assembly_close): Use InterlockedDecrement to unref the
7634         assembly. Don't acquire the lock unless it is actually needed.
7635
7636 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
7637
7638         * class.c (mono_class_layout_fields): Fix calculation of has_references
7639         for generic types.
7640
7641 2005-07-12  Martin Baulig  <martin@ximian.com>
7642
7643         Applying a patch from Michal Moskal <malekith@nemerle.org>.
7644
7645         * metadata.c
7646         (mono_type_hash): Provide better hashing for generic instances.
7647         (mono_generic_inst_hash): Improve hashing.
7648         (mono_generic_class_hash): Likewise.
7649
7650         * reflection.c (mymono_metadata_type_hash): Improve hashing for
7651         generic instances.
7652
7653 2005-07-12  Martin Baulig  <martin@ximian.com>
7654
7655         * reflection.c (mono_reflection_create_runtime_class): Remove the
7656         hack for generic type definitions and non-`Run' assemblies.
7657         (mono_reflection_bind_generic_parameters): Also use
7658         `klass->wastypebuilder' to check for TypeBuilders.
7659
7660 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
7661
7662         * class.c (mono_class_layout_fields): Fix calculation of has_references
7663         for generic types.
7664
7665         * class.c (inflate_generic_class): Fix a leak.
7666         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
7667         for generic types.
7668
7669 2005-07-11  Martin Baulig  <martin@ximian.com>
7670
7671         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
7672         on error.
7673
7674 2005-07-11  Martin Baulig  <martin@ximian.com>
7675
7676         * loader.c (find_method): Also lookup in
7677         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
7678
7679 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
7680
7681         * appdomain.c (mono_domain_unload): Don't free the error message
7682         before passing it to mono_get_exception_...
7683
7684         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
7685         
7686 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
7687
7688         * threads.c: try to better guess an available RT signal (bug #75387).
7689
7690 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
7691
7692         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
7693         and CACHE_OBJECT.
7694
7695 2005-07-07  Martin Baulig  <martin@ximian.com>
7696
7697         * class.c (mono_type_get_name_full): Return NULL for
7698         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
7699         fixes #75408.
7700
7701 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
7702
7703         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
7704         exit the appdomain as well being aborted.
7705
7706         * threadpool.c: Create all threadpool threads inside the root appdomain, and
7707         change back to the root domain after calling managed code. This enables
7708         appdomains using threadpools to be unloaded.
7709
7710 2005-07-07  Martin Baulig  <martin@ximian.com>
7711
7712         * class-internals.h
7713         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
7714         into `MonoDynamicGenericClass' since we only need it for dynamic
7715         types.
7716
7717         * reflection.c (mono_class_bind_generic_parameters): We don't need
7718         to compute the `parent' here.
7719
7720 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
7721
7722         * culture-info-table.h : regenerated.
7723
7724 2005-07-06  Martin Baulig  <martin@ximian.com>
7725
7726         * icall.c
7727         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
7728
7729         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
7730
7731 2005-07-06  Martin Baulig  <martin@ximian.com>
7732
7733         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
7734         we're doing a signature-only comparision; fixes #74945.
7735
7736 2005-07-06  Martin Baulig  <martin@ximian.com>
7737
7738         * class-internals.h (MonoGenericClass): Moved some things out into
7739         a new `MonoInflatedGenericClass' type.  
7740         (MonoInflatedGenericClass): New type; the `klass' of a
7741         `MonoGenericClass' is now computed lazyly in
7742         mono_get_inflated_generic_class().      
7743
7744         * class.c (mono_get_inflated_generic_class): New public function.
7745         (mono_class_inflate_generic_method): Removed the unused
7746         `MonoClass *' argument.
7747         (setup_generic_vtable): Don't call mono_get_inflated_method() on
7748         all the methods.
7749         (mono_class_create_generic): Make this static and merge it with
7750         mono_class_create_generic_2(); we're now called automatically from
7751         mono_get_inflated_generic_class().
7752
7753         * loader.c (mono_method_signature): Call
7754         mono_get_inflated_method() here.
7755
7756 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
7757
7758         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
7759         type of fields with RVA.
7760
7761         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
7762         for this pseudo class.
7763         (my_mono_class_from_generic_parameter): Likewise.
7764         (mono_class_init): Allow interfaces to have cctors.
7765
7766 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
7767
7768         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
7769         lazily for AOT methods.
7770
7771 2005-07-05  Martin Baulig  <martin@ximian.com>
7772
7773         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
7774         returns FALSE for a successful match, not TRUE.
7775
7776 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
7777
7778         * loader.c (mono_method_get_index): Optimize this a bit.
7779
7780 2005-07-04  Martin Baulig  <martin@ximian.com>
7781
7782         * class.c
7783         (class_compute_field_layout): Move the check for generic type
7784         definitions into mono_class_layout_fields().  Fixes #74684.
7785         (mono_class_from_generic_parameter): Correctly compute
7786         `klass->parent'; fixes #75457.
7787
7788         * reflection.c (register_assembly, register_module): Make sure
7789         `domain->rejobject_hash' is already created.
7790
7791 2005-07-02  Martin Baulig  <martin@ximian.com>
7792
7793         * class-internals.h
7794         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
7795         `MonoDynamicGenericClass'.      
7796
7797 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
7798
7799         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
7800         returned by a field getter is null, since null is a valid value.
7801
7802 2005-07-01  Martin Baulig  <martin@ximian.com>
7803
7804         * reflection.c (mono_reflection_generic_class_initialize): Update
7805         the `dgclass->fields [i].parent' to the correct class.
7806         (mono_image_get_fieldref_token): Use the declaring type, not the
7807         reflected type.
7808
7809 2005-07-01  Martin Baulig  <martin@ximian.com>
7810
7811         * loader.c (find_method): Also look in the interfaces; fixes #75429.
7812
7813 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
7814
7815         * threads.c (thread_cleanup): assert that thread != NULL
7816         (wait_for_tids_or_state_change): We were using the wrong variable
7817         when accessing wait->threads. `i' was always out of the bounds of
7818         the array.
7819
7820 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7821
7822         * loader.c: map user32 and kernel32 to libMonoSupportW
7823
7824 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
7825
7826         * appdomain.c (unload_thread_main): Mark this as WINAPI.
7827
7828 2005-06-28  Martin Baulig  <martin@ximian.com>
7829
7830         * loader.c (method_from_methodspec): Fix #75334.
7831
7832 2005-06-28  Martin Baulig  <martin@ximian.com>
7833
7834         Fix #74953 - Arrays now implement the generic IList<T> interface
7835         on the 2.0 platform.
7836
7837         * class-internals.h (MonoDefaults): Added `generic_array_class'.
7838
7839         * reflection.c (mono_class_bind_generic_parameters): New public
7840         function; similar to mono_reflection_bind_generic_parameters(),
7841         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
7842
7843         * domain.c (mono_init_internal): Try to initialize.
7844         `mono_defaults.generic_array_class' here; this'll only succeed if
7845         we're using the 2.0 corlib.
7846
7847         * icall.c
7848         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
7849         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
7850         (mono_lookup_internal_call): Added support for nested classes.
7851
7852         * loader.c
7853         (mono_get_method_from_token): Set `result->signature->pinvoke' if
7854         we're an interncall and have generic arguments.
7855
7856         * class.c
7857         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
7858         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
7859         instance of System.Array.InternalArray<T> for arrays, so they
7860         implement the generic IList<T> interface.
7861
7862 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
7863
7864         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
7865         (chastamar@yahoo.com). Fixes #75374.    
7866
7867 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
7868
7869         * culture-info-table.h: regenerated.
7870
7871 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7872
7873         * icall.c: handle spaces correctly for base64 strings.
7874
7875 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
7876
7877         * *.c: Kill some warnings.
7878
7879 2005-06-23  Duncan Mak  <duncan@novell.com>
7880
7881         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
7882         that this builds on Solaris 10 (x86).
7883
7884 2005-06-23  Martin Baulig  <martin@ximian.com>
7885
7886         * class.c
7887         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
7888         generic type definitions.
7889
7890 2005-06-23  Martin Baulig  <martin@ximian.com>
7891
7892         Fix #75331.
7893
7894         * metadata.c (mono_class_get_overrides): Renamed to
7895         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
7896         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
7897         pass it to mono_get_method_full().
7898
7899 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
7900
7901         * reflection.c (mono_reflection_create_runtime_class): take the
7902         mono_domain_lock in this method. Prevents deadlocks
7903
7904 2005-06-22  Martin Baulig  <martin@ximian.com>
7905
7906         * loader.c (method_from_methodspec): Fix #75330.
7907
7908 2005-06-22  Martin Baulig  <martin@ximian.com>
7909
7910         * reflection.c (type_get_qualified_name): Use
7911         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
7912         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
7913         argument; use it if we don't have an assembly name.
7914
7915 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
7916
7917         * object.c: In mono_message_init, set "copy out" flag for in
7918         parameters with the [Out] flag.
7919
7920 2005-06-21  Martin Baulig  <martin@ximian.com>
7921
7922         * class.c
7923         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
7924         and MONO_TYPE_PTR.
7925
7926 2005-06-21  Martin Baulig  <martin@ximian.com>
7927
7928         * class.c (mono_class_init): Don't initialize `class->fields' for
7929         generic instances since they're initialized again in
7930         compute_field_layout(). 
7931         (compute_field_layout): Set the field's `generic_info' here; fix
7932         #75320. 
7933
7934 2005-06-21  Martin Baulig  <martin@ximian.com>
7935
7936         * class-internals.h
7937         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
7938
7939         * metadata.c (mono_metadata_generic_method_equal): Also
7940         distinguish the `generic_class'; fixes #75334.
7941
7942 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7943
7944         * domain.c:
7945         * appdomain.c:
7946         * domain-internals.h:
7947         * reflection.c: 'domain_assemblies' field is now protected by its own
7948         lock. Don't call into managed code to run the AssemblyLoad event if we
7949         now there are no registered delegates for it.
7950
7951 2005-06-20  Martin Baulig  <martin@ximian.com>
7952
7953         * class.c (mono_class_is_assignable_from): Use a custom version of
7954         mono_class_has_parent() to make things work for generic instances;
7955         fix #75300.
7956
7957 2005-06-20  Martin Baulig  <martin@ximian.com>
7958
7959         * loader.c (method_from_methodspec): Apply a patch from
7960         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
7961
7962 2005-06-20  Martin Baulig  <martin@ximian.com>
7963
7964         * class.c (mono_class_init): Reverted Zoltan's last change; it
7965         breaks generics.
7966
7967 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
7968
7969         * threads.c (wait_for_tids_or_state_change): Add missing locking.
7970
7971 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7972
7973         * socket-io.c: fix the index in the socket array for writable/error
7974         sockets. Fixes bug #75306.
7975
7976 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
7977
7978         * class.c (mono_class_init): Allow interfaces to have static ctors.
7979
7980 2005-06-17  Martin Baulig  <martin@ximian.com>
7981
7982         * loader.c (method_from_methodspec): Use `context->container' when
7983         parsing the `gmethod->inst'.
7984
7985 2005-06-17  Martin Baulig  <martin@ximian.com>
7986
7987         * class.c (mono_type_get_name_recurse): Don't add the assembly
7988         name for type arguments.
7989
7990 2005-06-15  Martin Baulig  <martin@ximian.com>
7991
7992         * reflection.c (mono_image_get_inflated_method_token): Encode
7993         correct klass; fixes #75260.
7994
7995 2005-06-13 Michal Moskal <malekith@nemerle.org>
7996
7997         * icall.c: Make GetCorrespondingMethod/Constructor take
7998         MonoReflectionMethod method not MonoMethod. Removed
7999         MonoType.GetCorrespondingField, and make
8000         MonoGenericType.GetCorrespondingField take name not
8001         MonoClassField.
8002
8003 2005-06-13  Michal Moskal <malekith@nemerle.org>
8004
8005         * reflection.c (field_encode_signature, encode_locals):
8006          Make sizes of buffers for types larger (for big generic types).
8007          (create_generic_typespec,
8008          mono_reflection_sighelper_get_signature_local,
8009          mono_reflection_sighelper_get_signature_field):
8010          Add asserts for too small buffers.
8011
8012 2005-06-15  Martin Baulig  <martin@ximian.com>
8013
8014         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
8015         if our parent is not a dynamic type.
8016
8017 2005-06-15  Martin Baulig  <martin@ximian.com>
8018
8019         * class-internals.h (MonoTypeNameFormat): New enum.
8020
8021         * class.c
8022         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
8023         (mono_type_get_full_name): Removed.
8024         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
8025         argument instead of the boolean's.
8026
8027         * icall.c (ves_icall_System_MonoType_getFullName):
8028         Added `gboolean assembly_qualified'.    
8029
8030         * reflection.h
8031         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
8032
8033         * reflection.c (mono_reflection_parse_type): Parse the new type
8034         name format.
8035
8036 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8037
8038         * icall.c: no need to convert from utf16 to utf8 and then back again
8039         after the call to GetLogicalDrives.
8040
8041 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8042
8043         * icall.c: frombase64. Fix problems exposed by new tests.
8044
8045 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8046
8047         * icall.c: added internal calls for converting char [] and strings in
8048         base64 into byte [].
8049
8050 2005-06-10  Martin Baulig  <martin@ximian.com>
8051
8052         * class.c (mono_class_create_generic_2): Read the nested classes
8053         from the metadata rather than from `gklass->nested_classes' since
8054         `gklass' might not be initialized yet.
8055
8056 2005-06-09  Duncan Mak  <duncan@novell.com>
8057
8058         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
8059         all public headers. Fixes #74919.
8060
8061 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
8062
8063         * domain.c: The key for proxy_vtable_hash is now a pointer
8064         array. Added new GHashFunc and GCompareFunc functions for this.
8065
8066         * class.h: The list of interfaces in MonoRemoteClass is known in
8067         advance and can't grow (we create a new MonoRemoteClass if needed),
8068         so now the interface array can be allocated together with
8069         MonoRemoteClass.
8070         
8071         * object.c: Added a new method create_remote_class_key.
8072         Fixed mono_remote_class so it does not depend on
8073         mono_upgrade_remote_class.
8074         Removed extend_interface_array.
8075         Added new method clone_remote_class(), which makes a copy of a remote
8076         class and adds a new interface or class to it.
8077         mono_upgrade_remote_class() now creates a new remote class (or gets
8078         it from the cache) if an vtable upgrade is needed. In this way
8079         we make sure that other objects sharing the same remote class
8080         don't get the new vtable with unwanted interfaces.
8081         
8082         * object-internals.h:
8083         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
8084         
8085         * marshal.c: Track changes in mono_upgrade_remote_class().
8086
8087 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
8088         * icall.c: Add runtime methods for obtaining members of inflated
8089         class, which were created from supplied non-inflated members. It
8090         is used in internal Get{Method,Constructor,Field} methods in
8091         System.Type
8092
8093 2005-06-09  Martin Baulig  <martin@ximian.com>
8094
8095         * reflection.c
8096         (mono_reflection_bind_generic_method_parameters): Fix #75169.
8097
8098 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8099         * reflection.c (mono_image_basic_init): Define
8100         Version in MonoDynamicAssembly. 
8101         
8102 2005-06-08  Martin Baulig  <martin@ximian.com>
8103
8104         Fix #75136.
8105
8106         * loader.c
8107         (mono_method_signature_full): New public method; takes a
8108         `MonoGenericContext *'.
8109         (find_method): Use mono_method_signature_full() and pass the
8110         klass'es context to it.
8111
8112         * class.c (mono_class_is_inflated_method): Use
8113         mono_method_signature_full() and pass the context to it.
8114
8115 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
8116
8117         * object.c: add proper locking in mono_remote_class_vtable(),
8118         fixes possible memory corruption.
8119
8120 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
8121
8122         * marshal.c (mono_remoting_marshal_init): set
8123         initialized after initialization.
8124
8125 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
8126
8127         * locales.c : hush.
8128
8129 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
8130
8131         * object.c (extend_interface_array): fix really silly
8132         memory corrupting / comparison bug.
8133
8134 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8135
8136         * reflection.c: Functions added to support the creation
8137         of CustomAttributeData, which includes Attribute data
8138         used by ReflectionOnly methods.
8139
8140         * reflection.h:  mono_reflection_get_custom_attrs_data and
8141          mono_custom_attrs_data_construct added (functions exposed).
8142
8143          * icall.c: Added mono_reflection_get_custom_attrs_data
8144          as icall.
8145         
8146 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
8147
8148         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
8149         lupus's request.
8150
8151 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
8152
8153         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
8154
8155         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
8156         dynamic DllImportAttribute.
8157
8158         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
8159         dynamic DllImportAttribute.
8160
8161         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
8162         Fixes #75162.
8163
8164 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8165
8166         * threads.c: avoid segfault when an unstarted thread is aborted.
8167
8168 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
8169
8170         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
8171         Returns the name and version of the runtime for reporting.
8172
8173 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8174
8175         * appdomain.c: bump corlib version.
8176         * object-internals.h: new field in MonoReflectionAssembly.
8177
8178 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8179
8180         * object-internals.h: Carlos forgot to add this field.
8181
8182 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8183
8184         * icall.c: Added create_version to create instances
8185         of Version of MonoReflectionAssemblyName. This change helps
8186         the AssemblyName tests to keep running fine.
8187         
8188 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
8189   
8190         * object.c (mono_method_return_message_restore): A somehow less
8191         intrusive fix for #75138.
8192
8193 2005-06-03  Raja R Harinath  <rharinath@novell.com>
8194
8195         * object.c (mono_method_return_message_restore): Fix computation
8196         of expected number of out args.
8197
8198 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
8199
8200         * reflection.c (mono_image_get_method_info): Fix the case when the
8201         charset is empty.
8202
8203 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
8204
8205         * object.c: Added missing null check in
8206           mono_method_return_message_restore.
8207
8208 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
8209
8210         * reflection.c (mono_image_get_method_info): Handle the case when
8211         dllentry is empty.
8212
8213 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
8214
8215         * object.c: When creating the vtable for a proxy, take into account
8216         all inherited interfaces, not only the ones registered in
8217         iclass->interfaces. This fixs bug #74996.
8218         Also, in mono_method_return_message_restore, verify that the array
8219         of out args has the expected lengh.
8220
8221 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8222
8223         * socket-io.c: update the timeout in Poll when the call is interrupte.
8224
8225 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8226
8227         * socket-io.c: support abort/suspend in Select_internal after last
8228         change.
8229
8230 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8231
8232         * threadpool.c: remove warning.
8233
8234 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8235
8236         * icall.c:
8237         * socket-io.[ch]: Select_internal uses poll() now when available, thus
8238         removing the 1024 limit from select(). Runtime part of the fix for
8239         bug #71203.
8240
8241 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8242
8243         * socket-io.c: when resolving the addresses for the same
8244         host returned by gethostname(), get the local IPs from the interface
8245         list. Loopback addresses are discarded if the are interfaces up with
8246         non-loopback ones. Fixes bug #63265.
8247
8248 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
8249
8250         * appdomain.c, verify.c, object-internals.h, reflection.c:
8251         bumped corlib number to 36, and added new extra_flags field
8252         to ReflectionMethodBuilder and friends.  Fixes #75060.
8253
8254 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
8255
8256         * gc.c: register a new weak link only if the object is non-null
8257         (fixes bug#75047).
8258
8259 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
8260
8261         * culture-info.h : short time pattern too.
8262
8263 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
8264
8265         * culture-info.h : expand long time pattern string length.
8266
8267 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
8268
8269         * culture-info-table.h : update (more French date format; #72788).
8270
8271 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
8272
8273         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
8274         the method is static. Fixes #75029.
8275
8276 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
8277
8278         * reflection.c: Update the table_idx field of method builders after
8279         saving the module, since it can change. This is a workaround for
8280         bug #74914. 
8281
8282 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
8283
8284         * culture-info-table.h : update (additional French date format).
8285
8286 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
8287
8288         * icall.c (ves_icall_type_Equals): Revert last change.
8289         
8290         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
8291
8292         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
8293
8294 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
8295
8296         * class-internals.h: Added executioncontext_class field to 
8297         MonoDefaults structure.
8298         * domain.c: Cache System.Threading.ExecutionContext class in 
8299         mono_defaults.
8300         * object.c: Capture the ExecutionContext for asynchroneous calls in
8301          mono_async_result_new.
8302         * object-internals.h: Added execution_context and original_context 
8303         fields to MonoAsyncResult. Added execution_context to MonoThread.
8304         * security-manager.c|.h: Added mono_get_context_capture_method to 
8305         return the capture method (if required by the security manager or by
8306         the framework version used).
8307         * threadpool.c: Apply capture (if present) ExecutionContext in 
8308         mono_async_invoke and revert to original context after it completes.
8309
8310 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
8311
8312         * culture-info-table.h : updated (real hacky solution for zh-CHT).
8313
8314 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
8315
8316         * culture-info-table.h : zh-CHT related workaround.
8317
8318 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
8319
8320         * marshal.c (emit_marshal_custom): Add some error checking and call the
8321         methods in the ICustomMarshaler interface. Fixes #74875.
8322         
8323         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
8324         native->managed wrappers.
8325
8326 2005-05-12  Martin Baulig  <martin@ximian.com>
8327
8328         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
8329         here and use the loader lock.
8330
8331         * mono-debug.c: Properly lock when the debugger is not attached.
8332         (mono_debug_init): Release the initial lock if we're not running
8333         in the debugger.
8334
8335 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
8336
8337         * marshal.c (emit_marshal_custom): Pass through NULL values without
8338         calling the custom marshalling routines.
8339
8340         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
8341         conversion in structures. Fixes #74882.
8342
8343 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
8344
8345         * culture-info-table.h : zh-* cultures were missing.
8346
8347 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
8348
8349         * threads.c: Added a new event background_change_event which is signaled
8350         when a thread changes its background mode.
8351         Moved here several checks previously done in managed code. The checks
8352         require the thread lock, and using the thread lock in managed code
8353         can result in deadlocks.
8354         Merged Start_internal and Thread_internal into a single method. Now 
8355         Thread_internal does all work of creating and starting a thread.
8356         Added icalls for setting and getting the state of the object. Moved from
8357         managed code to avoid locking there.
8358         Added wait_for_tids_or_state_change() which is called instad of
8359         wait_for_tids when waiting for non-backround threads to end. This method
8360         will return if one of the threads ends or the background_change_event
8361         is signaled.
8362         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
8363         the background mode. This method signals the background_change_event
8364         event.
8365         * icall.c:
8366         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
8367         removed Start_internal.
8368         
8369 2005-05-11  Martin Baulig  <martin@ximian.com>
8370
8371         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
8372         to order of some fields to get proper alignment on 64-bit machines.
8373
8374 2005-05-11  Martin Baulig  <martin@ximian.com>
8375
8376         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
8377         changes as they're broken and completely fuck up the debugger.
8378
8379         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
8380
8381 2005-05-10  Martin Baulig  <martin@ximian.com>
8382
8383         * reflection.c (mono_reflection_generic_class_initialize): Don't
8384         call mono_class_setup_parent() here.
8385
8386 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8387
8388         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
8389         send/receive timeout use an integer in milliseconds. We were using a
8390         struct timeval.
8391
8392 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8393
8394         * locales.c:
8395         (internal_get_cultures): reserve the first slot of the array for the
8396         InvariantCulture, which will be filled in managed code.
8397
8398 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
8399
8400         * reflection.c (mono_image_fill_module_table): Initialize the
8401         GENERATION field as well.
8402
8403 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8404
8405         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
8406         Monitor.Enter on the object.
8407
8408 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
8409
8410         * threads.c: Enable the wait for running threads when exiting.
8411         * icall.c: Suspend all threads before exiting.
8412
8413 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
8414
8415         * assembly.c (mono_assembly_load_reference): Fix warning.
8416
8417 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8418
8419         * threadpool.c: changed the default number of threads per cpu. From now
8420         on, the default will be 20 + (5 * number of cpus) instead of 50.
8421
8422 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
8423
8424         * loader.c (mono_method_get_signature_full): Add locking here.
8425
8426 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
8427
8428         * appdomain.c: Moved methods for parsing and freeing assembly
8429         names to assembly.c.
8430         * assembly.c, domain-internals.h: Created public methods for parsing
8431         assembly names. Fixed mono_assembly_load_with_partial_name:
8432         it now finds the best match, taking into account the version,
8433         token and culture specified in the partial name. Also return
8434         the latest version if no version information is specified.
8435
8436 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
8437
8438         * threadpool.c: replace check for SocketAsyncCall class.
8439
8440 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8441
8442         * threadpool-internals.h:
8443         * Makefile.am: added threadpool-internals.h
8444
8445         * threadpool.c: call mono_unhandled_exception on exceptions not handled
8446         that happen in threadpool threads (tested on MS).
8447         (mono_thread_pool_remove_socket): new function that dispatch any pending
8448         AIO call on a socket that is closing. By now only epoll really needs it,
8449         as select/poll wake up when the socket closes.
8450
8451
8452         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
8453
8454 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
8455
8456         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
8457
8458 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
8459
8460         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
8461
8462 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
8463
8464         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
8465         has an abort request, convert it into a suspend request.
8466
8467 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
8468
8469         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
8470         warning for the usage of `UnmanagedFunctionPointerAttribute' which
8471         is not supported yet.
8472
8473 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8474
8475         * image.c: register assemblies loaded from data (bundles) in the loaded
8476         assemblies hash. Fixes bug #74772.
8477
8478 2005-04-29  Martin Baulig  <martin@ximian.com>
8479
8480         * class.c (mono_type_get_name_recurse): Update to the new naming
8481         schema from the latest .NET 2.x beta2.
8482         (mono_class_setup_vtable_general): If we're a generic instance,
8483         copy the vtable from our generic type definition and inflate all
8484         the methods in it.
8485
8486         * loader.c (find_method): Update to the new naming schema from the
8487         latest .NET 2.x beta2.
8488
8489 2005-04-29  Raja R Harinath  <harinath@gmail.com>
8490
8491         * class.c (mono_class_init): Add a mono_loader_unlock to the
8492         #74734 fix.
8493
8494 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
8495
8496         * icall.c (ves_icall_System_Environment_Exit): Remove the 
8497         suspend_all_other_threads () call for the time being, since it can hang.
8498
8499         * threads.c (mono_thread_manage): Similarly, disable the waiting for
8500         the background threads to exit, since it can also hang.
8501
8502         * class.c (mono_class_init): Applied patch from Ankit Jain 
8503         (radical@gmail.com). Avoid pending init errors when a field refers
8504         to a nested class using a typeref. Fixes #74734.
8505
8506         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
8507         this for dynamic modules.
8508
8509 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8510
8511         * threads.c: don't wait for threads that are in the process of aborting
8512         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
8513         and waiting for background threads to finish. This makes xsp and
8514         mod-mono-server exit without random length delays and/or hangs.
8515
8516 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8517
8518         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
8519
8520 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
8521
8522         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
8523         dynamic types to prevent infinite loops. Fixes #74727.
8524
8525         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
8526         ..._is_assignable_to.
8527
8528 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
8529
8530         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
8531
8532 2005-04-25  Martin Baulig  <martin@ximian.com>
8533
8534         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
8535
8536         * domain.c
8537         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
8538
8539         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
8540
8541         * reflection.c (build_compressed_metadata): Set metadata header
8542         version to 2.0.
8543
8544 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
8545
8546         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
8547         number into an integral and a decimal part. Fixes #70473.
8548
8549         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
8550
8551 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
8552
8553         * culture-info-table.h : reflected the latest locale-builder output.
8554
8555 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8556
8557         * threadpool.c: check for SuspendRequested too when deciding if
8558         mono_thread_interruption_checkpoint should be called.
8559
8560 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8561
8562         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
8563         * threads.c: remove interruption_mutex and use Interlocked instead. When
8564         suspending all the threads, wait for all the suspended events at once.
8565         If we're shutting down and get an APC that is going to be queued,
8566         call mono_thread_execute_interruption immediately, as the thread might
8567         be sleeping on a pthread condition or mutex.
8568
8569         * icall.c: call mono_runtime_set_shutting_down before suspending the
8570         threads.
8571
8572         Fixes bug #74693. And now xsp is happier when exiting.
8573
8574 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
8575
8576         * loader.c (mono_stack_walk): Fix #74690.
8577
8578 2005-04-22  Martin Baulig  <martin@ximian.com>
8579
8580         * mono-debug.h (MonoDebugMethodJitInfo): Added
8581         `MonoDebugMethodJitInfo *jit'.
8582
8583         * mono-debug.c (mono_debug_read_method): Cache the
8584         MonoDebugMethodJitInfo in `address->jit'.
8585         (mono_debug_free_method_jit_info): New public method.
8586
8587 2005-04-22  Martin Baulig  <martin@ximian.com>
8588
8589         * class.c (mono_class_is_assignable_from): Disallow
8590         type parameter -> interface.
8591
8592 2005-04-21  Dick Porter  <dick@ximian.com>
8593
8594         * threads.c (mono_thread_create): Turn an assertion into an error.
8595
8596 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
8597
8598         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
8599         
8600         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
8601         Fix some gcc 4.0 warnings.
8602
8603 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
8604
8605         * file-io.c: fix alt dir separator char on unix systems
8606         and cleanup (fixes bug #71214).
8607
8608 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
8609
8610         * marshal.c: Use CALLVIRT instead of CALL when dispatching
8611         a call to a remote domain, since the method may be an
8612         interface method in the client domain. This fixes bug #74192.
8613
8614 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8615
8616         * threadpool.c: recv/send are now performed before going back to managed
8617         code to save one transition.
8618
8619 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8620
8621         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
8622
8623         * metadata/threadpool.c: removed hack to workaround the bug above.
8624
8625         Fixes bug #74618.
8626
8627 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
8628
8629         * reflection.c reflection.h: Fix handling of parameter defaults in
8630         dynamic methods. Also fixes handling of parameter attributes.
8631         Fixes #74609.
8632
8633         * mono-debug.c (mono_debug_close_image): Fix warning.
8634
8635 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8636
8637         * socket-io.h: replaced old unused field with new 'blocking'.
8638         * threadpool.c: restore socket blocking state on windows(tm).
8639
8640 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
8641
8642         * icall.c: don't return the codebase in the AssemblyName[] returned by
8643         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
8644         * object-internals.h: Removed FIXME (fields were presents) and fixed
8645         versioncompat declaration.
8646
8647 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8648
8649         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
8650         not closed, so don't cleanup when it happens.
8651
8652 2005-04-13  Chris Toshok  <toshok@ximian.com>
8653
8654         * mono-debug-debugger.h: change prototype for
8655         mono_debugger_lookup_type.
8656
8657         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
8658         this function, although it should probably be named
8659         mono_debugger_init_type.
8660
8661 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8662
8663         * threadpool.c: fix non-AIO case.
8664
8665 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
8666
8667         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
8668         the built-in profiler to measure just JIT compilation times.
8669
8670 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8671
8672         * threadpool.c: the epollfd might be closed by another thread at
8673         any time, so ignore EBADF at treat it as a "we're closing" sign.
8674
8675 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8676
8677         * threadpool.c: release the semaphores with a count equals to the number
8678         of working threads in both IO and regular pools. Fixed typo that messed
8679         up the count of IO pool threads. Don't initialize the pipe handles if
8680         we're using epoll.
8681
8682 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8683
8684         * threadpool.c: some systems don't like a NULL when deleting the socket
8685         from epoll.
8686
8687 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8688
8689         * threadpool.c: fix semaphore allocation.
8690
8691 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8692
8693         * threadpool.c: added epoll() based implementation for asynchronous IO
8694         that is used instead of the default poll() when available.
8695         It can be disabled by setting MONO_DISABLE_AIO.
8696
8697 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8698
8699         * threadpool.c: windows needs 'closesocket' and instead of returning
8700         0 when the stream is closed while in select, it returns -1. Fixes bug
8701         #74573.
8702
8703 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
8704
8705         * class.c (class_compute_field_layout): Fix the regression caused by
8706         the previous try.
8707
8708 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8709
8710         * threadpool.c: separate pool for socket async. IO.
8711         * threadpool.h: mono_max_worker_threads is not a global any more.
8712
8713 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
8714
8715         * class.c (class_compute_field_layout): Fix #74549.
8716
8717 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8718
8719         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
8720         use 2 connected sockets instead.
8721
8722 2005-04-08  Miguel de Icaza  <miguel@novell.com>
8723
8724         * mono-config.c: Add new entry point for mkbundle
8725         mono_config_parse_memory. 
8726
8727 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8728
8729         * threadpool.c: removed another unused function.
8730
8731 2005-04-08  Ankit Jain  <radical@corewars.org>
8732
8733         * reflection.c (get_default_param_value_blobs): Add 'types'
8734         parameter to get the types encoded in the constant table.
8735         (mono_param_get_objects): Use the type from the constant table,
8736         not the type of the parameter, when creating default values.
8737         Handle null default values correctly.
8738
8739 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8740
8741         * file-io.c:
8742         * file-io.h:
8743         * threadpool.c:
8744         * threadpool.h:
8745         * icall.c:
8746         * socket-io.c: removed dead code for async IO.
8747
8748 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8749
8750         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
8751
8752         * threadpool.c: intercept socket async. calls and pass them to a thread
8753         that is polling and dispatching the job items to the threadpool as
8754         socket become ready. Fixes bugs #71217, #71933.
8755
8756         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
8757         between char and short/ushort arrays.
8758
8759         * socket-io.c: remove dead code.
8760
8761 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
8762
8763         * locales.c,
8764           icall.c : removed InternalToUpper_Comp() and
8765           InternalToLower_Comp().
8766
8767 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
8768
8769         * char-conversions.h : The tables were incorrectly generated. Should
8770           be generated against invariant culture.
8771
8772 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
8773
8774         * object.c (mono_runtime_invoke_array): Fix return value when 
8775         passing pre-created valuetype objects to ctors.
8776
8777         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
8778         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
8779         Fixes #74338.
8780
8781 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
8782
8783         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
8784         only used with --security and hides the wrong corlib version error.
8785
8786 2005-03-30  Joshua Tauberer  <tauberer@for.net>
8787
8788         * class.c: Changed mono_class_name_from_token so that types
8789         outside of a namespace don't have an initial period.  Improved
8790         the g_warning message used in _mono_class_get when loading
8791         fails.
8792         * assembly.c: In mono_assembly_load_reference, when an assembly
8793         can't be found, "No such file or directory" is misleading and
8794         unhelpful because a few paths were checked for the presence of
8795         the assembly.  When that happens (ENOENT), display a nicer
8796         message indicating the directories that were searched.  In all
8797         cases, the warning is made easier to read for non-hackers.
8798
8799 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
8800
8801         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
8802         project/solution.
8803         * appdomain.h|domain.c: Removed inline from functions.
8804         * appdomain.c: Reduced warnings when compiling on windows.
8805         * icall.c: Fixed output_debug declaration to gunichar2*.
8806         * mono-config.c: Reduced warnings when compiling on windows.
8807         * rand.c: Added missing "windows.h". Added missing return value.
8808         * rawbuffer.c: Added missing winsock2.h for windows.
8809         * sysmath.h: Added mono-compiler.h header to allow/ease 
8810         compilation with non-GCC compilers.
8811         * threads.c: Fixed declarations to compile with VS.NET C compiler.
8812         Removed cast warnings.
8813
8814         Adapted from the work of J Lothian (for VC6).
8815
8816 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
8817
8818         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
8819         from default_path.
8820
8821 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
8822
8823         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
8824         the 2.0 profile.
8825
8826 2005-03-27  Raja R Harinath  <harinath@gmail.com>
8827
8828         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
8829         has to be in $(exec_prefix).  $(prefix) is for arch-independent
8830         stuff, and it would probably use $(prefix)/share rather than
8831         $(prefix)/lib.
8832
8833 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8834
8835         * console-io.c: added 2 includes that might be missing.
8836
8837 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
8838
8839         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
8840         profile.
8841
8842         * reflection.c (create_custom_attr): Allocate the params array using
8843         alloca so it gets GC tracking.
8844
8845 2005-03-23  Chris Toshok  <toshok@ximian.com>
8846
8847         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
8848         out some spew.
8849
8850 2005-03-24  Raja R Harinath  <rharinath@novell.com>
8851
8852         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
8853         changes to pick up any changes in prefix, etc.
8854
8855 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
8856
8857         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
8858         
8859         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
8860         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
8861
8862 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
8863
8864         * class-internals.h object-internals.h class.c reflection.c: Extend the
8865         mono_lookup_dynamic_token () function to return the class of the
8866         token as well. 
8867
8868         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
8869         well. Fixes #73848.
8870
8871 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
8872
8873         * security-manager.c: Skip inheritance checks for intra-corlib
8874         class inheritance and method overrides. This skips a lot of checks
8875         and (anyway) permissions cannot work until corlib is loaded.
8876
8877 2005-03-23  Martin Baulig  <martin@ximian.com>
8878
8879         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
8880         MONO_TYPE_GENERICINST.  
8881
8882 2005-03-23  Martin Baulig  <martin@ximian.com>
8883
8884         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
8885
8886 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8887
8888         * class.c: added locking comments to some functions.
8889         Cache the interface offsets arrays (saves about 20 KB
8890         of runtime memory in a typical app).
8891         Reduce the time overhead in mono_class_setup_supertypes ().
8892
8893 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
8894
8895         * icall.c: speedup and fix leaks in GetMethodsByName and
8896         GetPropertiesByName.
8897
8898 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8899
8900         * reflection.c: some locking fixes.
8901
8902 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
8903
8904         * metadata.c: added missing break in case statement.
8905
8906 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
8907
8908         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
8909         typedbyref return values. Fixes #73941.
8910
8911 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
8912
8913         * security-manager.c|h: Added demandunmanaged method and 
8914         suppressunmanagedcodesecurity class to MonoSecurityManager.
8915         Renamed aptc class to allowpartiallytrustedcallers.
8916
8917 2005-03-17  Martin Baulig  <martin@ximian.com>
8918
8919         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
8920
8921 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8922
8923         * file-io.c: disabled file async. IO using aio_*. It uses the
8924         threadpool now. Workaround for bug #73718.
8925
8926 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8927
8928         * assembly.h, mono-config.c: added code to deal with bundled configs
8929         for bundled assemblies.
8930
8931 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
8932
8933         * *.c, private.h: cleanup, removing old private.h header file.
8934
8935 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
8936
8937         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
8938         and throw_on_unmappable_char attributes.
8939
8940 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
8941
8942         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
8943         _ProcessName_internal.
8944
8945 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
8946
8947         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
8948         #73631.
8949
8950         * icall.c threads.c threads-types.h: Remove slothash icalls as they
8951         are no longer used.
8952
8953 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
8954
8955         * object.c (compute_class_bitmap): Add support for generics. Fixes
8956         #73527.
8957
8958 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
8959
8960         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
8961
8962 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8963
8964         * filewatcher.c: commented out the code for windows watcher, as we don't
8965         use it (we use the managed implementation instead).
8966
8967 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
8968
8969         * object-internals.h (MonoThread): Remove 'unused1' field.
8970
8971         * appdomain.c: Bump corlib version.
8972
8973         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
8974
8975         * reflection.c (mono_reflection_create_runtime_class): Remove the
8976         AssemblyBuilder.Save optimization since it causes too many problems.
8977
8978 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
8979
8980         * exception.c|h: Added mono_get_exception_reflection_type_load to
8981         create a ReflectionTypeLoadException object.
8982         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
8983         to return NULL is a InheritanceDemand fails during reflection. Updated
8984         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
8985         ReflectionTypeLoadException if an InheritanceDemand fails during 
8986         reflection. Added icall mapping for GetLinkDemandSecurity.
8987         * security-manager.c|h: Added ves_icall_System_Security_
8988         SecurityManager_GetLinkDemandSecurity internal call to return the
8989         class and methods permissions set for a LinkDemand. Removed unused
8990         fields in MonoSecurityManager.
8991
8992 2005-03-10  Martin Baulig  <martin@ximian.com>
8993
8994         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
8995         it's a generic instance.
8996
8997 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
8998
8999         * reflection.c (mono_get_object_from_blob): Applied patch from
9000         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
9001
9002         * class.c (mono_class_is_assignable_from): Another try at fixing 
9003         #73469 without breaking anything.
9004
9005 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
9006
9007         * class.c: (mono_class_is_assignable_from): Revert the last changes
9008         since they don't work with generics.
9009         
9010         * class.c (mono_class_is_assignable_from): Fix build bustage.
9011
9012         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
9013         the managed IsAssignableFrom method. Fixes #73469.
9014
9015         * reflection.c (mono_reflection_call_is_assignable_from): New helper
9016         function.
9017
9018 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
9019
9020         * object.c (mono_load_remote_field_new): Fix returning uninitialized
9021         memory when the remoting callback does not sets the out arguments.
9022         Fixes #73007.
9023
9024         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
9025         by mistake.
9026
9027         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
9028
9029         * object-internals.h (MonoStackFrame): Sync with managed object layout.
9030
9031         * appdomain.c: Bump corlib version.
9032
9033 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
9034
9035         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
9036         function.
9037
9038         * threads.c (mono_thread_attach): Detect threads which are not started
9039         by the GC pthread wrappers.
9040
9041 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
9042
9043         * icall.c: Added new icall for RNG.
9044         * rand.c|h: Added new icall to open the RNG. This allows to share a 
9045         single handle on Linux to access /dev/urandom and fix #73183.
9046
9047 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
9048
9049         * object.c: setting the new vtable in a transparent proxy object must
9050         not change the GC descriptor.
9051
9052 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9053
9054         * object.c: fixed compilation without GCJ support.
9055         * reflection.c: for runtime-created types ensure klass->has_references
9056         is correct (bug #73215).
9057
9058 2005-03-02  Martin Baulig  <martin@ximian.com>
9059
9060         * class.c (mono_class_is_assignable_from): Make this work if
9061         `oklass' is a generic instance; fixes #72831.
9062
9063 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
9064
9065         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
9066         with hasthis set.
9067         
9068         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
9069
9070         * marshal.c: Reorganize native->managed marshalling code to also use
9071         the emit_marshal_... functions.
9072
9073 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
9074
9075         * object.c: typed allocs have issues with bitmap sizes > 30,
9076         so check for max_set >= 30.
9077
9078 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
9079
9080         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
9081         managed code. Fixes #73012.
9082
9083         * metadata.h (MonoMarshalSpec): Add elem_mult field.
9084
9085         * metadata.c reflection.c: Load/Emit elem_mult as well.
9086         
9087         * metadata.h (MonoMarshalSpec): Add comment.
9088
9089         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
9090
9091         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
9092         num_elem to -1 if not given.
9093
9094         * object-internals.h (MonoReflectionMarshal): Add has_size field.
9095
9096         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
9097         given values.
9098
9099 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
9100
9101         * null-gc.c (mono_gc_free_fixed): Was not compilable.
9102
9103 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
9104
9105         * reflection.c (encode_marshal_blob): Encode param_num field as well.
9106
9107         * object-internals.h (MonoReflectionMarshal): Add param_num field.
9108
9109 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
9110
9111         * object.c: generalized the reference bitmap creation
9112         and added hooks for the new GC.
9113         * class-internals.c: removed the gc_bitmap field from MonoClass.
9114
9115 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
9116
9117         * domain.c: help the compiler to produce better code
9118         in mono_jit_info_table_find ().
9119
9120 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
9121
9122         * object.c: make all allocations look typed.
9123
9124 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
9125
9126         * socket-io.c: load Mono.Posix if it's not loaded already
9127         (fixes bug#73033).
9128
9129 2005-02-24  Martin Baulig  <martin@ximian.com>
9130
9131         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
9132         * reflection.c (dup_type): Likewise.
9133
9134 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
9135
9136         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
9137         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
9138
9139 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
9140
9141         * domain.c, threads.c, object-internals.h: make the critical thread
9142         local vars use the fast access mode (even when we're compiled in
9143         a lib). Provide accessors to be used by the jit during codegen.
9144
9145 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9146
9147         * appdomain.c: Changed hook functios behavior to include
9148         support for the reflection only assemblies. Some icalls were changed
9149         to support the mentioned assemblies too. Signatures of static methods
9150         try_assembly_resolve and real_load now have an additional parameter:
9151         refonly.
9152
9153         * assembly.c: General changes to mono_assembly_ methods to support
9154         reflection only api. Functions mono_assembly_open, mono_assembly_load,
9155         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
9156         suffix, to support an additional gbool parameter to specify whether
9157         the assembli is reflection only or not. Created some new hook functions 
9158         to add support for reflection only assemblies. Signatures of static 
9159         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
9160         have now an additional parameter: refonly.
9161
9162         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
9163         indicating whether the assembly is reflection only or not.
9164
9165         * exception.c: Add mono_get_exception_invalid_operation.
9166
9167         * icall.c: Throw an InvalidOperationException when trying to invoke
9168         a property/method/event, or trying to set/get the value of a field.
9169         Also add an icall to retrieve the ref_only flag to the
9170         MonoReflectionAssembly.
9171
9172 2005-02-23  Chris Toshok  <toshok@ximian.com>
9173
9174         Part of fix for #72827.
9175         * mono-debug.c (mono_debug_add_method): add lexical block data to
9176         the info we write.  Kind of a hack at the moment - we copy the
9177         lexical block info from the MonoDebugMethodInfo to the
9178         MonoDebugMethodJitInfo here, before writing it.
9179         (mono_debug_read_method): read the lexical block info.
9180
9181         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
9182
9183         * debug-mono-symfile.h: add lexical block support.
9184
9185         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
9186         support.
9187
9188 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
9189
9190         * loader.c (mono_lookup_pinvoke_call): Fix warning.
9191
9192         * object.c (mono_runtime_free_method): Call mono_free_method () and
9193         put the TODOs there.
9194
9195         * loader.c (mono_free_method): Free up most memory allocated for 
9196         dynamic methods.
9197
9198 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
9199
9200         * reflection.c: properly flag a Type argument to a
9201         named custom attr value (bug #72248).
9202
9203 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
9204
9205         * reflection.c: reduce code duplication in named custom
9206         attribute encoding.
9207
9208 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
9209
9210         * reflection.c: properly encode custom attrs of type object
9211         (bug #72649).
9212
9213 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
9214
9215         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
9216
9217 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
9218
9219         * socket-io.c: load System.dll if it's not loaded already
9220         (bug #72850 and #70477).
9221
9222 2005-02-21  Martin Baulig  <martin@ximian.com>
9223
9224         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
9225         generic instances.
9226
9227 2005-02-21  Martin Baulig  <martin@ximian.com>
9228
9229         * reflection.c (mono_image_build_metadata): We also need to
9230         "fixup" the MethodImpl table after we computed the final method
9231         indices.  Call fixup_methodimpl() to do that.
9232         (fixup_methodimpl): New private method.
9233
9234 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
9235
9236         * assembly.c: special case mscorlib.dll (bug#72536),
9237         patch from Carlos Alberto Cortez.
9238
9239 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
9240
9241         * threads-types.h threads.c: Fix build bustage.
9242
9243         * threads.c: Use a union for long<->double conversions.
9244
9245         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
9246         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
9247
9248         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
9249         containing the checkpoint call with NOT_TAKEN.
9250         
9251         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
9252         checkpoint before pushing the arguments, so they won't have to be
9253         spilled to stack.
9254
9255 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9256
9257         * domain.c, assembly.c, domain-internals.h: make some data
9258         const and relocation-free.
9259
9260 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
9261
9262         * object.c, appdomain.c, class-internals.h: introduce the
9263         MonoClassRuntimeInfo structure to hold the info needed to
9264         use a class at runtime. Made mono_class_vtable() lock-free
9265         for all the appdomains.
9266
9267 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
9268
9269         * metadata-internals.h, image.c: introduce a per-image mempool to
9270         be used for memory that has the same lifetime as the image.
9271
9272 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
9273
9274         * domain.c: In mono_init_internal(), instead of selecting the first
9275         runtime version supported by an executable, get a list of all
9276         supported versions and select the one for which an mscorlib exists
9277         (since even if the runtime supports a given version, it doesn't mean
9278         that the framework for that version is installed).
9279         Modified get_runtimes_from_exe to support this behavior.
9280         In supported_runtimes, added information about additional system
9281         assembly versions.
9282         
9283         * assembly.c: Added support for more than one system assembly version
9284         per runtime version. Updated the assembly list.
9285         In mono_assembly_remap_version, removed the initial version check,
9286         since we don't know to which version we need to compare until we
9287         get the version set on which the assembly is based.
9288         Moved the code for loading corlib into the new method
9289         mono_assembly_load_corlib(), so it can be used by the initialization
9290         code.
9291         
9292         * domain-internals.h: Updated data structures and added declaration
9293         for mono_assembly_load_corlib.
9294
9295 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
9296
9297         * reflection.c (resolve_object): Fix the creation of the signature in 
9298         the SignatureHelper case.
9299
9300         * assembly.c (mono_assembly_remap_version): Fix binary search.
9301         
9302 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
9303  
9304         * class.c: Added inheritance check when a method is overloaded (from a
9305         virtual method or when implementing an interface) and when a class is
9306         inherited. Added functions to set a failure for a class and to 
9307         retreive the exception from a failure.
9308         * class-internals.h: Added fields to MonoClass to keep the exception
9309         information status for inheritance (or other exceptions) to be thrown
9310         later (i.e. not at load time).
9311         * object.c: Throw the inheritance SecurityException when a type is to 
9312         be created with either class or method inheritance violations.
9313         * reflection.c|h: Fix when getting declsec from a class. Removed 
9314         unrequired code for class. Improved sanity in parameter naming.
9315         * security-manager.c|h: Added functions to check for class and method
9316         inheritance.
9317
9318 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
9319
9320         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
9321         and has_finalize in dynamic types as well.
9322
9323 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
9324
9325         * culture-info-table.h : fixed currency format for en-GB (and so on).
9326
9327 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
9328
9329         * gc.c: ensure the GC handles never have 0 as a value.
9330
9331 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
9332
9333         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
9334         a pointer to a struct to unmanaged code. Fixes #72625.
9335
9336 2005-02-16  Martin Baulig  <martin@ximian.com>
9337
9338         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
9339
9340 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
9341
9342         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
9343
9344 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
9345
9346         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
9347
9348         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
9349         UnmanagedFunctionPointerAttribute, use it for determining calling convention
9350         etc. Fixes #71471.
9351
9352         * reflection.c (mono_custom_attrs_get_attr): New helper function.
9353
9354         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
9355
9356 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
9357
9358         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
9359         changes to make the current context a field in MonoThread.
9360
9361 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
9362
9363         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
9364         the last change.
9365         
9366         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
9367         extracted from mono_marshal_get_native_wrapper.
9368
9369         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
9370         to create wrappers around native functions.
9371
9372         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
9373         delegates for arbitrary function pointers. Fixes #71472.
9374
9375 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
9376
9377         * threads.c: cleaned up the code a little.
9378
9379 2005-02-15  Martin Baulig  <martin@ximian.com>
9380
9381         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
9382         the data table.
9383
9384         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
9385         allocate larger chunks if needed.
9386
9387 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
9388
9389         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
9390         in by mistake.
9391
9392 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
9393
9394         * domain.c: keep the domains in an array and ensure the domain ids
9395         are kept small, so they can be used as indexes to domain-specific data
9396         with a small memory overhead.
9397
9398 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
9399
9400         * icall.c: Handle byref types in Type icalls. Fixes #72544.
9401
9402 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
9403
9404         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
9405
9406 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
9407
9408         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
9409
9410         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
9411         values.
9412
9413         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
9414         
9415 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
9416
9417         * domain-internals.h: add the hashtable here.
9418
9419         * class-internals.h: Remove `info' from MonoMethod
9420
9421         * domain.c: Add a new hashtable, jit_trampoline_hash
9422
9423 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
9424
9425         * object.c: don't set the value of static fields
9426         (fixes bug#72494).
9427
9428 2005-02-11  Martin Baulig  <martin@ximian.com>
9429
9430         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
9431         (mono_debug_add_method): Silently ignore the method if it's too big.
9432         (mono_debug_add_type): Likewise.
9433
9434 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
9435
9436         * threads.c, appdomain.c: remove #ifdefs from the code.
9437
9438 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
9439
9440         * metadata-internals.h: Added flags to MonoAssembly to cache the most
9441         common security informations. This allows us to stay in unmanaged code
9442         when doing LinkDemand and it's special cases (except for the first 
9443         time for initialization). The flags a very much used with --security.
9444         * reflection.c|h: Added code to get declarative security attributes 
9445         for LinkDemand and InheritanceDemand. This required to refactor the
9446         existing code for Demand.
9447         * security-manager.c|h: Added new method fields for the special cases
9448         of LinkDemand.
9449
9450 2005-02-10  Martin Baulig  <martin@ximian.com>
9451
9452         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
9453         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
9454
9455 2005-02-10  Martin Baulig  <martin@ximian.com>
9456
9457         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
9458         debugging code; this is almost a complete rewrite.
9459
9460         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
9461
9462 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
9463
9464         * domain.c, object.h: expose mono_string_equal () and 
9465         mono_string_hash ().
9466         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
9467         it's implemented in managed code.
9468
9469 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9470
9471         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
9472         lo leak objects between appdomains.
9473
9474 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
9475
9476         * assembly.c: old compilers compilation fix from 
9477         robertj@gmx.net (Robert Jordan).
9478
9479 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
9480
9481         * class-internals.h: Little reminder for the future.
9482
9483         * debug-helpers.c: Fix up wrapper_type_names
9484
9485 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
9486
9487         * image.c, metadata-internals.h: when loading an image from a file,
9488         mmap all of it and use the same codepaths as when using a
9489         in-memory image: the code is simpler and we use less memory
9490         (both writable and readonly).
9491
9492 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
9493
9494         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
9495         API to alloc runtime data structures that need to be tracked by the
9496         GC and contain pointers.
9497         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
9498         make the code more readable and eventually use a different GC.
9499
9500 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
9501
9502         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
9503         for out arguments.
9504         
9505 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
9506
9507         * object.c: In release_type_locks(), don't release the cctor lock
9508         if it has already been released. This fixes a crash in the
9509         thread5 test.
9510
9511 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
9512
9513         * gc.c, marshal.c, icall.c: register a delegate for finalization
9514         only when the native function pointer has been allocated for it.
9515
9516 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
9517
9518         * object.c: cleaned up some code, allocate objects that are
9519         pointer free with the atomic malloc variant. Allocate memory
9520         for static data from the mempool if it's pointer-free.
9521         Allocate the bounds array at the end of the array data, when needed.
9522         * object-internals.h, object.h: move a private function in a private
9523         header.
9524         * class.c: handle missing case in tracking references in fields.
9525
9526 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
9527
9528         * class.c, class-internals.h: keep track if a type has
9529         reference fields in either the instance or static fields.
9530
9531 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
9532
9533         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
9534         and renamed to MonoRuntimeInfo. Added fields to store the expected
9535         framework assembly version. Changed mono_get_framework_version and
9536         mono_get_runtime_version for a single mono_get_runtime_info method.
9537         
9538         * assembly.c: Added method to remap system assembly versions to the
9539         current executing runtime version. Removed old mapping code.
9540         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
9541         
9542         * icall.c, reflection.c: Track api changes.
9543
9544 2005-02-06  Miguel de Icaza  <miguel@novell.com>
9545
9546         * loader.c (method_from_memberref): Improve error reporting,
9547         produce the class name instead of the typeref/typedef index. 
9548
9549 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
9550
9551         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
9552
9553 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
9554
9555         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
9556         stdcall and charset name mangling.  Reorganize the code and add
9557         some tracing stuff.
9558
9559 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
9560
9561         * monodiet.c: More iters!
9562
9563         * marshal.c: Iter usage.
9564
9565         * icall.c: Iter usage.
9566
9567         * object.c: Use iters.
9568
9569         * debug-helpers.c: More iters
9570
9571 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
9572
9573         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
9574         under win32.
9575
9576 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
9577
9578         * mono-debug-debugger.c: use iters
9579
9580         * class.c, class-internals.h: mono_class_setup_events is static
9581         now
9582
9583         * All callers: use iters
9584
9585 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
9586
9587         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
9588         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
9589
9590 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
9591
9592         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
9593
9594         * marshal.h: Add prototypes for ldfld/stfld_remote.
9595
9596         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
9597         this is called during startup.
9598         
9599 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
9600
9601         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
9602         MonoThreadsSync struct private in monitor.c. Changed the way
9603         MonoThreadsSync is allocated so it's faster and there is no
9604         need to keep track of it with a finalizer and it uses less memory.
9605         This also finally allows us to allocate mono objects as ptrfree when
9606         there are no reference fields.
9607
9608 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
9609
9610         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
9611         disappearing link to the GC interface and use them to simplify
9612         the gchandles code.
9613
9614 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
9615
9616         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
9617         stfld_remote which call mono_load/store_field_new. This allows methods
9618         calling ldfld/stfld wrappers to be AOTed.
9619
9620         * console-io.c: Include sys/filio.h under solaris.
9621         
9622         * console-io.c: Include curses.h if needed correctly.
9623
9624 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
9625         
9626         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
9627         method->klass as well.
9628
9629         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
9630
9631         * class.c (mono_class_init): Switch on lazy initialization of 
9632         methods.
9633
9634         * class.c (mono_class_get_finalizer): Handle the case when the 
9635         finalizer is inherited.
9636
9637 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9638
9639         * console-io.c: <curses.h> is needed by term.h on solaris.
9640
9641 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
9642
9643         * icall.c, class-internals.h, monodiet.c, class.c: Remove
9644         mono_class_setup_properties where possible. Remove this ftn from
9645         the header file, and make it static.
9646
9647 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
9648
9649         * loader.c: Add missing setup_... call.
9650
9651         * class.c: Add missing setup_... calls.
9652
9653         * class.c (mono_class_init): Switch on lazy initialization of 
9654         the generic vtable.
9655         
9656         * class.c (mono_class_init): Fix generics broken by the recent changes.
9657
9658         * monodiet.c (handle_type): Add missing setup_... calls.
9659
9660         * class.c: Back out garbage in previous patch.
9661         
9662         * class.c: Add missing setup_... calls.
9663
9664         * class.c (mono_class_get_method_from_name_flags): Avoid calling
9665         mono_class_setup_methods () if possible.
9666
9667         * class-internals.h (MonoClass): Add 'has_cctor' flag.
9668
9669         * class-internals.h (MonoCachedClassInfo): New structure.
9670
9671         * class.c: Initialize properties and events fields of MonoClass lazily.
9672
9673         * class.c: Add infrastructure for lazily initializing the methods and
9674         vtable fields of MonoClass. Not yet used.
9675
9676         * class.c (mono_class_get_finalizer): New helper function.
9677
9678         * class.c: Add infrastructure for loading some class related data from
9679         an AOT file.
9680
9681         * object.c: Add infrastructure for initializing the vtable from data
9682         in the AOT file.
9683
9684         * gc.c (run_finalize): Use mono_class_get_finalizer ().
9685
9686         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
9687         appropriate initialization function before accessing parts of the
9688         MonoClass structure.
9689
9690         * marshal.c: Fix warnings.
9691         
9692         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
9693
9694         * mono-debug-debugger.c (get_exception_message): Use 
9695         mono_class_get_method_from_name_flags ().
9696
9697 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
9698
9699         * reflection.c, appdomain.c: Replace a few manual searches that
9700         Zoltan missed. (Paolo approved this part of my initial patch).
9701
9702 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
9703
9704         * profiler.c: disable recording statistical events at report time.
9705
9706 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
9707
9708         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
9709         to byteswap arrays of enum values, too (bug #72080).
9710
9711 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
9712
9713         * appdomain.c (set_domain_search_path): Allow this to be called if
9714         domain->setup is not yet set.
9715
9716         * loader.c (mono_method_get_index): New helper function.
9717
9718         * loader.c reflection.c: Use mono_method_get_index ().
9719
9720         * class.c (mono_class_get_method_from_name_flags): New helper method.
9721
9722         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
9723         this.
9724
9725         * class.c (mono_class_get_cctor): New helper method.
9726
9727         * string-icalls.c object.c class.c marshal.c reflection.c: Use
9728         mono_class_get_method () to look up methods.
9729
9730 2005-02-01  Miguel de Icaza  <miguel@novell.com>
9731
9732         * console-io.c: Fix the build, this should work on Windows.
9733
9734 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
9735
9736         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
9737         be set to null to keep things valid
9738
9739 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9740
9741         * icall.c: added Console 2.0 icalls.
9742         * Makefile.am: added console-io.[ch]
9743         * console-io.[ch]: internal calls for Console 2.0 API.
9744
9745 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
9746
9747         * class.c: make sure we consider all the interfaces
9748         when calculating max_interface_id (bug found by
9749         Jeroen Frijters running ikvm).
9750
9751 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
9752
9753         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
9754         valuetype fields to null.
9755
9756         * object.c (set_value): Ditto. Fixes #71669.    
9757
9758 2005-01-31  Martin Baulig  <martin@ximian.com>
9759
9760         * metadata.c (mono_metadata_has_generic_params): New public
9761         function; checks whether something is a generic method.
9762
9763 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
9764
9765         * appdomain.c: fix infinite recursion when adding assemblies.
9766
9767 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
9768
9769         * object.c: Fix small typo to return all items for Environment.
9770         GetCommandLineArgs.
9771
9772 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
9773
9774         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
9775         reflection.c: more domain and assembly-unload related fixes
9776         and memory leaks plugs.
9777
9778 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
9779
9780         * 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.
9781
9782 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
9783
9784         * loader.c (mono_method_signature): Make this method lazy
9785         (mono_get_method_from_token): Don't computate the signature here.
9786
9787         Doing this saves quite a bit of memory. I got 90 kb on starting up
9788         monodoc. It should also save some disk reads on startup.
9789
9790         * *: MonoMethod->signature might be NULL now. You *MUST* use
9791         mono_method_signature.
9792
9793 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
9794
9795         * object.c (mono_runtime_get_main_args): Return an array from the
9796         current domain here. Fixes #71938.
9797
9798 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
9799
9800         * monitor.c: formatting changes to comply with the
9801         mono coding style and remove #ifdefs from the code.
9802
9803 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
9804
9805         * metadata.c, private.h: remove some unneeded data
9806         and use a more compact representation for table schemas.
9807
9808 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
9809
9810         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
9811         to get a better distribution in hash tables.
9812         * *.c: use mono_aligned_addr_hash() where appropriate.
9813         * assembly.c: make var static.
9814
9815 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
9816
9817         * domain-internals.h: Put MonoJitInfo on a diet.
9818
9819         * domain.c: Fix a warning.
9820
9821 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9822
9823         * gc.c: rework the gc handles code to reuse handles
9824         when freed.
9825
9826 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
9827
9828         * domain.c: fixed long standing bug in mono_string_equal() which
9829         was brought to light with the ldstr changes.
9830
9831 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
9832
9833         * reflection.c: Remove warning by adding missing include for marshal.h
9834
9835 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
9836
9837         * domain.c, object.c: change the ldstr_table to hold
9838         MonoString* as keys: makes the runtime isinterned lookup
9839         faster and simplifies memory management.
9840
9841 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
9842  
9843         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
9844         possible to add imperative security checks before calling the icall.
9845         * reflection.c: Return security attributes on the original MonoMethod
9846         (and not the wrapped one). This fix permissions on icalls.
9847
9848 2005-01-25  Dick Porter  <dick@ximian.com>
9849
9850         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
9851         the check for mktime() support actually test the mktime() return
9852         value.  "Fixes" bug 71682, though the output is still different to
9853         MS.
9854
9855 2005-01-25  Martin Baulig  <martin@ximian.com>
9856
9857         * class.c (mono_class_is_assignable_from): Make this work for
9858         generic instances.
9859
9860 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
9861
9862         * marshal.c (mono_string_utf8_to_builder)
9863         (mono_string_builder_to_utf16): We might not have ownership of the
9864         string. In thise case, we need to create a new buffer.
9865
9866         * object-internals.h (mono_stringbuilder_capacity): sb->str might
9867         be null, in which case, use the default capacity.
9868
9869 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
9870
9871         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
9872         GC events to the profiler.
9873
9874 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
9875
9876         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
9877         if you don't want the GC to run.
9878
9879 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
9880
9881         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
9882         start providing a GC API and keeping different implementations in
9883         their own file.
9884         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
9885
9886 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
9887
9888         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
9889         mmap rather than allocating a huge buffer.
9890         (mono_debug_close_mono_symbol_file): Free the buffer allocated
9891         above.
9892
9893 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
9894
9895         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
9896         and CheckExecutionRights.
9897         * reflection.c|h: Keep the index of the declarative security to be 
9898         used, instead of the pointer, when AOT compiler is used. Also add 
9899         class initialization when requesting demands.
9900         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
9901         CheckExecutionRights. Both properties are now FALSE by default, and
9902         unmodifiable, unless the --security option is used.
9903
9904 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
9905
9906         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
9907         reflection.c: properly refcount images and assemblies, many leaks fixed.
9908
9909 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9910
9911         * threadpool.c: increase the timeout for threads in the thread pool to
9912         10s.  Fixes bug #67159.
9913
9914 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
9915
9916         * class-internals.h: Sun's compiler insists on explicit
9917         signed on bit fields to handle then correctly.
9918
9919 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
9920
9921         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
9922         Make the size of the array fit only the number of invalid path
9923         chars that we have.
9924
9925         * class.c (_mono_class_get): Improve the error reporting when a
9926         class referenced is not found, to assist debugging. 
9927
9928 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
9929
9930         * threads.c: fix off-by-one error.
9931         * domain.c: free data allocated in the domain.
9932
9933 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
9934
9935         * reflection.c (mono_method_body_get_object): Fill out exception info
9936         as well.
9937
9938         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
9939         structure.
9940         
9941 2005-01-19  Martin Baulig  <martin@ximian.com>
9942
9943         * loader.c (mono_get_method_constrained): Make this work again.
9944
9945 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
9946
9947         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
9948         guint16 to match the managed side.
9949
9950         * reflection.c (mono_reflection_body_get_object): Fill out local
9951         variables array.
9952
9953         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
9954         as well.
9955
9956         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
9957         'local_var_sig_token'.
9958
9959 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
9960
9961         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
9962         System.Drawing.
9963
9964         * reflection.c (mono_method_body_get_object): Handle abstract and
9965         runtime methods.
9966
9967 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
9968
9969         * marshal.c, loader.c, class-internals.h, reflection.c:
9970         store the emthod data for a wrapper in an array instead of a list.
9971
9972 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
9973
9974         * marshal.c: change the code to allocate memory more
9975         conservatively for method wrappers.
9976
9977 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
9978
9979         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
9980         fields from MonoClass to the marshal info structure where they belong.
9981
9982 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9983
9984         * class.c, object.c, class-internals.h, marshal.c: rearrange
9985         some fields and tweak some types to lower memory usage.
9986
9987 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
9988
9989         * threads.c (signal_thread_state_change): Handle the case when the
9990         target thread is the current thread.
9991
9992         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
9993
9994         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
9995         emit_ptr_to_object_conv. 
9996
9997         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
9998         marshalling. Fixes #71352.
9999
10000 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
10001
10002         * metadata.h, blob.h: move table enum to blob.h so it can be included
10003         in any header.
10004         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
10005         cut the size of MonoImage/MonoDynamicImage.
10006
10007 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
10008
10009         * profiler.c (mono_profiler_install_simple): Fix default arguments.
10010
10011 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
10012
10013         * reflection.c, reflection.h, icall.c: add a function to check
10014         if an attribute type is defined for a metadata object.
10015
10016 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
10017
10018         * object-internals.h: Added some needed fields from StringBuilder class.
10019         * marshal.c: Set the maxCapacity when creating a StringBuilder.
10020
10021 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
10022
10023         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
10024         threads before shutting down the runtime.
10025
10026         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
10027
10028 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
10029
10030         * object-internal.h, threads.c: implement stacksize and 
10031         parameterized thread start functionality (requires
10032         matching corlib). Marked broken code for later removal.
10033
10034 2005-01-12  Martin Baulig  <martin@ximian.com>
10035
10036         * class-internals.h (MonoGenericClass): Moved the `initialized'
10037         flag to MonoDynamicGenericClass, removed `init_pending'.
10038         (MonoGenericInst): Added `is_reference' flag.
10039
10040 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
10041
10042         * reflection.c (mono_image_create_pefile): Only set the pe_offset
10043         inside the MSDOS header. Fixes #71201.
10044
10045         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
10046         gc thread.
10047         (mono_domain_finalize): Ditto.
10048
10049 2005-01-12  Martin Baulig  <martin@ximian.com>
10050
10051         * class.c (mono_get_shared_generic_class): Use the cache for
10052         non-dynamic generic classes.
10053
10054         * class-internals.h (mono_class_create_generic_2): Removed
10055         function prototype, this function is now static inside class.c.
10056
10057         * class.c (mono_class_create_generic_2): Made this static, only
10058         call it from mono_class_init() and mono_class_setup_parent().
10059         (collect_implemented_interfaces_aux): Call mono_class_init() on
10060         the interfaces we collect.
10061         (mono_class_setup_vtable): Call mono_class_init (class->parent).
10062
10063 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
10064
10065         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
10066         it a real thread handle.
10067
10068         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
10069         MonoJitExceptionInfo, since each catch clause needs its own variable.
10070         
10071 2005-01-11  Dick Porter  <dick@ximian.com>
10072
10073         * image.c (mono_pe_file_open): New variant on mono_image_open()
10074         that does not set up the CLI metadata; used for FileVersionInfo so
10075         it can get the data for windows binaries too.
10076         
10077         * process.c (process_read_string_block): Don't read off the end of
10078         the StringTable block.
10079
10080         These both fix bug 70766.
10081
10082 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
10083
10084         * gc.c: set some fields to NULL at GC cleanup time.
10085         * threads.c: if we quit the main thread, call exit ().
10086
10087 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
10088
10089         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
10090
10091 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
10092
10093         * threads.h, threads.c, object.c: added accessor and settor for
10094         main_thread. Handle it specially when exiting from it: wait
10095         for other foreground threads to exit.
10096
10097 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
10098
10099         * process.c, verify.c: remove some bloat.
10100
10101 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
10102
10103         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
10104         the calling convention to cdecl under win32.
10105
10106 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
10107
10108         * object.c (mono_object_get_size): New function to get the size of
10109         an object instance.
10110
10111         * profiler.c (simple_allocation): Use above.
10112
10113 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
10114
10115         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
10116         ves_icall_System_AppDomain_getRootDomain (as it's not required to
10117         get an appdomain by it's id and we can't assume the root's id is 0).
10118         * domain-internals.h: Change the function prototype to match.
10119         * icall.c: Change the icall table for AppDomain.
10120
10121 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
10122
10123         * locales.c (string_invariant_compare_char): Only compute
10124         GUnicodeTypes in the case where we need them.  Test for ordinality
10125         first and return if so.
10126
10127         From the commit:
10128
10129                 /*
10130                  * FIXME: here we must use the information from c1type and c2type
10131                  * to find out the proper collation, even on the InvariantCulture, the
10132                  * sorting is not done by computing the unicode values, but their
10133                  * actual sort order.
10134                  */
10135
10136 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
10137
10138         * loader.c: for P/Invoke methods, allow the "Internal" shared
10139         library name to refer to the calling process symbol namespace.
10140
10141 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
10142
10143         * Makefile.am: Add the security manager to the build.
10144         * security-manager.c|h: New. Initialization of the security manager.
10145
10146 2005-01-07  Dick Porter  <dick@ximian.com>
10147
10148         * threads.c: 
10149         * monitor.c: Update thread state during Monitor and WaitHandle
10150         waits.  Fixes bug 71031.
10151
10152 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
10153
10154         * reflection.c (property_encode_signature): Correctly handle when the
10155         property has no methods.
10156
10157 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
10158
10159         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
10160         
10161         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
10162         fields from mb, not rmb. Fixes #71017.
10163
10164         * marshal.c (emit_ptr_to_str_conv): Add support for 
10165         ByValTStr -> string conversion. Fixes #71015.
10166
10167         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
10168
10169         * mempool.c (mono_mempool_contains_addr): New helper function.
10170
10171 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
10172
10173         * metadata.c (mono_metadata_compute_size): Fix size calculation of
10174         HasSematics encoded fields.
10175         
10176         * metadata.c (mono_type_to_unmanaged): Improve error message for 
10177         invalid string marshalling.
10178
10179         * metadata.c: Fix warnings.
10180         
10181 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
10182
10183         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
10184         profiler support.
10185
10186 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
10187
10188         * domain.c object.c domain-internals.h: Revert part of r38077 since the
10189         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
10190         tests.
10191
10192 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
10193
10194         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
10195         so methods containing these can be AOTed.
10196
10197 2005-01-03  Martin Baulig  <martin@ximian.com>
10198
10199         * loader.c (find_method): Removed the hack for generic instances.
10200         (method_from_memberref): If our parent is a generic instance, pass
10201         its generic type definition to find_method() and then inflate the
10202         method.
10203         (mono_get_method_constrained): Pass the generic type definition to
10204         find_method() and inflate the method later.
10205
10206         * class-internals.h (MonoStats): Added `generic_class_count'.
10207
10208         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
10209         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
10210
10211         * reflection.c (mono_custom_attrs_from_params): Don't ignore
10212         generic type definitions.
10213
10214 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
10215
10216         * loader.c icall.c: Fix warnings.
10217
10218 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
10219
10220         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
10221         blittable types. Fixes #70864.
10222
10223 2004-12-29  Martin Baulig  <martin@ximian.com>
10224
10225         * icall.c
10226         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
10227
10228         * reflection.c (mono_method_get_object): Create a
10229         "System.Reflection.MonoGenericMethod" for inflated methods; don't
10230         call mono_get_inflated_method().
10231
10232         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
10233
10234 2004-12-27  Martin Baulig  <martin@ximian.com>
10235
10236         * class-internals.h (MonoMethod): Added `is_inflated' flag.
10237         (MonoMethodInflated): Added `inflated' field.
10238
10239         * class.c (mono_class_inflate_generic_method): Don't really
10240         inflate the method here; just set the `is_inflated' flag in the
10241         MonoMethod.
10242         (mono_class_get_inflated_method): Actually inflate the method here
10243         if it's not already inflated; we use the MonoMethodInflated's new
10244         `inflated' field as a cache.
10245
10246 2004-12-26  Martin Baulig  <martin@ximian.com>
10247
10248         * class.c
10249         (inflate_generic_class): Moved some code out of inflate_generic_type().
10250         (mono_class_inflate_generic_method): If we're already inflated,
10251         inflate the context and use the declaring method; ie. make sure
10252         the declaring method of an inflated method is always the generic
10253         method definition.
10254         (mono_class_create_from_typedef): Create
10255         `class->generic_container->context->gclass'.
10256
10257 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
10258
10259         * metadata-internals.h, marshal.c, reflection.c: More
10260         MonoGHashTable->GHashTable.
10261
10262         * domain-internals.h, class.c: Change MonoGHashTable's into
10263         GHashTables for some cases where no gc stuff is used
10264
10265         All users: update apis
10266
10267 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
10268
10269         * metadata.c (builtin_types): Make this `const'. Makes this get
10270         put into the shareable section.
10271         (mono_metadata_init): Casts to make gcc happy.
10272
10273 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
10274
10275         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
10276
10277 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
10278
10279         * icall.c: Added an internal call to retrieve the position and length
10280         of assembly-level declarative security attributes (RequestMinimum, 
10281         RequestOptional and RequestRefuse). This is used by the Assembly class
10282         to re-create the corresponding permission sets.
10283
10284 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
10285
10286         * marshal.c: fix the stelemref wrapper to be type correct
10287         (and faster).
10288
10289 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
10290
10291         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
10292         to do key & 0x7fffffff. Hashtable already does this. It just
10293         results in longer code.
10294
10295 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
10296
10297         * appdomain.c: Bump corlib version.
10298         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
10299         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
10300         * reflection.c|h: Add functions to get declarative security infos
10301         (blob position and length) for assemblies, classes and methods.
10302
10303 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
10304
10305         * reflection.c: sort the constant table (bug #70693).
10306
10307 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
10308
10309         * object-internals.h, threads.c, domain.c: add accessors for
10310         the MonoThread and MonoDomain tls keys.
10311
10312 2004-12-18  Martin Baulig  <martin@ximian.com>
10313
10314         * class.c (inflate_generic_type): If we're inflating a generic
10315         instance, set `ngclass->context->container = context->container';
10316         ie. the container we inflated into.
10317
10318         * metadata.c (mono_metadata_parse_generic_param): Reflect above
10319         inflate_generic_type() changes.
10320
10321 2004-12-17  Martin Baulig  <martin@ximian.com>
10322
10323         * class-internals.h
10324         (MonoGenericClass): Replaced `MonoType *generic_type' with
10325         `MonoClass *generic_class'.  Removed `dynamic_info'; if
10326         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
10327         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
10328
10329 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
10330
10331         * exception.c (mono_exception_from_token): New helper function.
10332
10333 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
10334
10335         * assembly.c (mono_assembly_load_with_partial_name): Call 
10336         mono_assembly_loaded before invoking the preload hooks. Fixes
10337         #70564.
10338
10339         * object-internals.h (MonoThread): Change culture_info and 
10340         ui_culture_info into an array.
10341
10342         * threads.c: Cache culture info objects from more than one appdomain.
10343
10344         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
10345         current UI culture.
10346
10347 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
10348
10349         * threads.h threads.c appdomain.c: Clear the culture_info field of
10350         all threads during unloading if they point to an object in the dying
10351         appdomain.
10352
10353 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
10354
10355         * culture-info.h (TextInfoEntry): New struct
10356         * object-internals.h: sync with managed
10357         * locales.c: fill the `text_info_data' field
10358         * culture-info-tables.h: update
10359
10360 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
10361
10362         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
10363         collector.
10364
10365 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
10366
10367         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
10368         (ves_icall_ModuleBuilder_getMethodToken): Ditto
10369
10370 2004-12-12  Martin Baulig  <martin@ximian.com>
10371
10372         * mono-debug-debugger.c (write_type): If we're an enum and the
10373         builtin types have already been initialized, call mono_class_init().
10374
10375 2004-12-11  Martin Baulig  <martin@ximian.com>
10376
10377         * metadata.c (mono_metadata_load_generic_params): Added
10378         `MonoGenericContainer *parent_container' argument; automatically
10379         compute `container->is_method'; pass the correct owner to
10380         get_constraints().      
10381
10382         * reflection.c (compare_genericparam): Sort the GenericParam table
10383         according to increasing owners. 
10384
10385 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
10386
10387         * profiler.c: allow disabling the default profiler.
10388
10389 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
10390
10391         * decimal.c, icall.c: allow disabling System.Decimal support.
10392
10393 2004-12-09  Marek Safar <marek.safar@seznam.cz>
10394
10395         * reflection.c: Add support for null attribute arguments.
10396
10397 2004-12-09  Martin Baulig  <martin@ximian.com>
10398
10399         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
10400         names to get rid of compiler warnings.
10401
10402 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
10403
10404         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
10405         mono_marshal_load_type_info (). Fixes #69625.
10406         (mono_marshal_get_ptr_to_struct): Likewise.
10407
10408 2004-12-08  Martin Baulig  <martin@ximian.com>
10409
10410         * mono-debug.h: Bumped version number to 47.
10411
10412         * mono-debug-debugger.c
10413         (mono_debugger_event_handler, mono_debugger_event): Take two
10414         guint64 arguments insteed of a gpointer and a guint32.  
10415
10416 2004-12-08  Martin Baulig  <martin@ximian.com>
10417
10418         * debug-mono-symfile.h
10419         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
10420         `address' to `native_offset'.
10421
10422 2004-12-08  Martin Baulig  <martin@ximian.com>
10423
10424         * class.c (mono_class_create_from_typespec): Only inflate if we
10425         either have `context->gclass' or `context->gmethod'.
10426
10427 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
10428
10429         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
10430
10431         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
10432
10433         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
10434
10435         * reflection.c (mono_assembly_get_object): Remove the workaround put
10436         in for the release.
10437         
10438         * appdomain.c: Use the corlib_internal field from MonoAssembly.
10439
10440         * appdomain.c: Bump corlib version.
10441
10442         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
10443         be visible in other appdomains.
10444
10445 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
10446
10447         * threads.c: Interlocked inc and dec for longs were messed up,
10448         use a KISS based impl for this. Fixes 70234
10449
10450 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
10451
10452         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
10453
10454 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
10455
10456         * icall.c: fix to follow policy not to allow struct
10457         arguments in icalls.
10458
10459 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10460
10461         * process.c: make the patch that handles spaces in file paths work
10462         on mono/windows too.
10463
10464 2004-12-06  Martin Baulig  <martin@ximian.com>
10465
10466         * class.c (mono_class_create_generic): Call
10467         mono_class_setup_supertypes() if we're dynamic.
10468         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
10469
10470 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
10471
10472         * object-internals.h: Add new fields to MonoThread.
10473
10474         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
10475
10476         * icall.c threads-types.h threads.c: Add new icalls.
10477
10478         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
10479
10480         * object-internals.h (MonoReflectionAssembly): Sync object layout with
10481         managed side.
10482
10483         * appdomain.c: Bump corlib version.
10484
10485         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
10486         internal assemblies. Fixes #69181.
10487
10488 2004-12-05  Martin Baulig  <martin@ximian.com>
10489
10490         * class.c (mono_class_inflate_generic_signature): Make this a
10491         no-op if `context' is NULL or we don't have any type parameters;
10492         also copy `sentinelpos'.        
10493
10494 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
10495
10496         * image.c: Add unbox_wrapper_cache.
10497
10498         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
10499
10500         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
10501         function generator.
10502         
10503         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
10504         Fixes #70173.
10505
10506         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
10507         
10508 2004-12-04  Martin Baulig  <martin@ximian.com>
10509
10510         * loader.c (mono_method_get_signature_full): New public function;
10511         like mono_method_get_signature(), but with an additional
10512         `MonoGenericContext *' argument.
10513
10514         * class.c (mono_class_inflate_generic_signature): Formerly known
10515         as inflate_generic_signature(); make this public.
10516
10517 2004-12-04  Martin Baulig  <martin@ximian.com>
10518
10519         * metadata.c
10520         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
10521         instead of a `MonoGenericContainer *'.  
10522         (mono_metadata_parse_array_full): Likewise.
10523         (mono_metadata_parse_signature_full): Likewise.
10524         (mono_metadata_parse_method_signature_full): Likewise.
10525         (mono_metadata_parse_generic_inst): Likewise.
10526         (mono_metadata_parse_generic_param): Likewise.
10527         (mono_metadata_parse_mh_full): Likewise.
10528         (mono_type_create_from_typespec_full): Likewise.
10529
10530 2004-12-03  Martin Baulig  <martin@ximian.com>
10531
10532         * class-internals.h (MonoGenericContainer): Replaced the
10533         `MonoGenericContext * pointer with a `MonoGenericContext'
10534         structure and made it the first element.
10535
10536 2004-12-03  Martin Baulig  <martin@ximian.com>
10537
10538         * class.c
10539         (inflate_generic_type): Set the `context->container' when creating
10540         a new MonoGenericContext.
10541         (mono_class_inflate_generic_method): Likewise.
10542         (mono_class_create_from_typespec): Just use `context->container'
10543         to get the container.
10544
10545         * loader.c (method_from_methodspec): Set `context->parent' from
10546         `context->container' - and if that's a method container, use its
10547         parent.  Also set the `context->container' when creating a new
10548         MonoGenericContext.
10549         (mono_get_method_from_token): Use just `context->container' to get
10550         the container.
10551
10552         * metadata.c (do_mono_metadata_parse_generic_class): Also set
10553         `gclass->context->container'.
10554
10555         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
10556         the `context->container' when creating a new MonoGenericContext.
10557
10558 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
10559
10560         * reflection.c (compare_genericparam): Sort params with identical
10561         owner by their number. Fixes gen-111 on sparc.
10562
10563 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
10564
10565         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
10566         around the domain changes.
10567
10568         * appdomain.c (mono_domain_unload): Handle the case when the thread
10569         calling Unload is itself being aborted during unloading. Fixes #70022.
10570
10571         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
10572
10573         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
10574         checkpoint_func as an icall so it gets a wrapper.
10575         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
10576         in the cross-appdomain wrappers too.
10577
10578         * threads.c (mono_thread_has_appdomain_ref): Make this public.
10579
10580         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
10581
10582         * reflection.c: Fix some memory leaks.
10583         
10584 2004-12-02  Martin Baulig  <martin@ximian.com>
10585
10586         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
10587
10588         * metadata.c (generic_class_cache): New static hashtable.
10589         (mono_metadata_lookup_generic_class): New public method.
10590
10591 2004-12-02  Martin Baulig  <martin@ximian.com>
10592
10593         * class.c (mono_class_create_from_typedef): Call
10594         mono_class_setup_parent() and mono_class_create_mono_type() before
10595         parsing the interfaces.
10596
10597 2004-12-02  Martin Baulig  <martin@ximian.com>
10598
10599         * metadata.c (generic_inst_cache): New static hashtable.
10600         (mono_metadata_lookup_generic_inst): New public function.
10601         (mono_metadata_inflate_generic_inst): New public function.
10602         (mono_metadata_parse_generic_inst): New public function.
10603         (do_mono_metadata_parse_generic_class): Use the new
10604         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
10605         since this'll also use the cache.
10606
10607         * reflection.c (mono_reflection_bind_generic_method_parameters):
10608         Use mono_metadata_lookup_generic_inst() to use the new cache.
10609
10610         * class.c (inflate_mono_type): Use
10611         mono_metadata_inflate_generic_inst() to inflate a generic
10612         instance; this'll also use the new cache.
10613
10614         * loader.c (method_from_methodspec): Use
10615         mono_metadata_parse_generic_inst() and
10616         mono_metadata_inflate_generic_inst() rather than parsing it
10617         manually, so we can use the new cache.
10618
10619 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
10620
10621         * threads.c (wait_for_tids): Do not incorrectly free threads when 
10622         the wait times out.
10623
10624 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
10625
10626         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
10627         iter->args based on whether parameters are passed in registers (i.e.
10628         MONO_ARCH_REGPARMS is defined)
10629
10630 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
10631
10632         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
10633         the exception message. Fixes #70070.
10634         (method_from_methodspec): Fix warnings.
10635
10636 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10637
10638         * process.c: (complete_path) return the path quoted
10639
10640 2004-12-01  Martin Baulig  <martin@ximian.com>
10641
10642         * class-internals.h (MonoGenericInst): New structure.
10643         (MonoGenericClass): Replaced `type_argc', `type_argv' and
10644         `is_open' with `MonoGenericInst *inst'.
10645         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
10646         `is_open' with `MonoGenericInst *inst'.
10647
10648 2004-11-30  Martin Baulig  <martin@ximian.com>
10649
10650         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
10651
10652         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
10653         to `generic_class_cache'.
10654
10655         * metadata.c
10656         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
10657         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
10658         (mono_generic_inst_is_valuetype): Renamed to
10659         mono_generic_class_is_valuetype().
10660
10661         * class-internals.h
10662         (MonoGenericInst): Renamed to MonoGenericClass.
10663         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
10664         (MonoClass): Renamed `generic_inst' to `generic_class'.
10665         (MonoGenericContext): Renamed `ginst' to `gclass'.
10666
10667         * object-internals.h
10668         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
10669
10670         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
10671         mono_reflection_generic_class_initialize().
10672
10673         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
10674         now known as "System.Reflection.MonoGenericClass".
10675         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
10676
10677 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
10678
10679         * class-internals.h: Added a flag field to MonoClass to cache the
10680         declarative security attributes actions associated with the class.
10681         * domain-internals.h: Added booleans to MonoJitInfo to cache the
10682         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
10683         applicable to the JITted method.
10684         * reflection.c|h: Added functions to extract (as flags) which security
10685         actions are available (declaratively) for a method, class or assembly.
10686         * metadata.c|h: Added functions to search the declarative security
10687         table in the metadata.
10688         
10689 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
10690
10691         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
10692         EXPORTEDTYPES are already in the class name cache, so there is no
10693         need to add extra code here to look at them. Just removes a bit of
10694         cruft.
10695
10696         (ves_icall_System_Environment_get_TickCount): No need for #if
10697         WINDOWS. We already have the code in io-layer.
10698
10699 2004-11-28  Martin Baulig  <martin@ximian.com>
10700
10701         * loader.c
10702         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
10703         Fixes gen-112.cs.
10704
10705 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
10706
10707         * assembly.c (do_mono_assembly_open): Instead of having a
10708         conditional WITH_BUNDLE, incorporate support for bundles here, by
10709         having a global `bundles' variable holding a pointer to the actual
10710         bundles. 
10711
10712         (mono_register_bundled_assemblies): New API call used by the
10713         bundle code. 
10714
10715         See mkbundle.1 for details.
10716         
10717 2004-11-27  Martin Baulig  <martin@ximian.com>
10718
10719         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
10720         the vtable for generic methods.
10721
10722 2004-11-26  Martin Baulig  <martin@ximian.com>
10723
10724         * metadata.c
10725         (mono_metadata_generic_method_hash): New public function.
10726         (mono_metadata_generic_method_equal): Likewise.
10727
10728         * class-internals.h
10729         (MonoGenericContainer): Added `GHashTable *method_hash'.
10730
10731         * reflection.c (ReflectionMethodBuilder): Added
10732         `MonoGenericContainer *generic_container'.
10733         (reflection_methodbuilder_to_mono_method): Don't create a new
10734         MonoGenericContainer each time we're called.
10735         (mono_reflection_bind_generic_method_parameters): Use
10736         `container->method_hash' to cache the results so we don't create a
10737         different method if we're called several times with the same
10738         arguments.
10739
10740         * loader.c (method_from_methodspec): Use the new
10741         `container->method_hash' here, too.
10742
10743 2004-11-26  Martin Baulig  <martin@ximian.com>
10744
10745         * class.c (inflate_generic_signature): Correctly compute
10746         `res->has_type_parameters'.
10747         (mono_class_vtable): Use the `has_type_parameters' flag to
10748         determine whether we're a generic method.
10749
10750         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
10751
10752 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
10753
10754         * object.c (mono_runtime_run_main): Fix a small memory leak.
10755
10756 2004-11-25  Martin Baulig  <martin@ximian.com>
10757
10758         * class.c (set_generic_param_owner): Fixed the loop.
10759
10760 2004-11-25  Martin Baulig  <martin@ximian.com>
10761
10762         * object.c (mono_class_vtable): Don't create any JIT wrappers for
10763         generic methods.
10764
10765 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
10766
10767         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
10768         names. Fixes #69787.
10769
10770 2004-11-24  Martin Baulig  <martin@ximian.com>
10771
10772         * class.c (mono_class_create_generic_2): If we don't have a
10773         `ginst->parent', inflate `gklass->parent' to get our parent.
10774
10775 2004-11-24  Martin Baulig  <martin@ximian.com>
10776
10777         * reflection.c (compare_genericparam): Correctly sort the
10778         GenericParam table; fixes #69779.
10779
10780 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
10781
10782         * reflection.c: When writing a PE file, don't create a huge
10783         buffer in memory. Just write the arrays we have to the file.
10784         This reduces memory usage.
10785
10786         * metadata-internals.h: MonoDynamicStream pefile is no longer used
10787         globally.
10788
10789 2004-11-17  Martin Baulig  <martin@ximian.com>
10790
10791         * class.c (mono_class_init): Don't setup `class->parent' for
10792         dynamic instances; moved this to mono_class_generic_2().
10793         (mono_class_create_generic): Also set `klass->inited' for dynamic
10794         generic instances.
10795         (mono_class_create_generic_2): Don't do anything for dynamic
10796         generic instances.  Set `klass->parent' here and also call
10797         mono_class_setup_parent() here. 
10798
10799         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
10800         `MonoType *parent' argument; set `ginst->parent' before calling
10801         mono_class_create_generic_2(), so we set the correct parent.
10802
10803 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
10804
10805         * reflection.c: allow getting attributes from ModuleBuilder
10806         (used by ikvm).
10807
10808 2004-11-17  Martin Baulig  <martin@ximian.com>
10809
10810         * class.c (mono_class_create_from_typedef): If a type parameter is
10811         inherited from an outer class, set its owner to that class.
10812
10813 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
10814
10815         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
10816           for (int*) written size. This fixes bug #69592.
10817
10818 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
10819
10820         * icall.c: Added IsAuthenticodePresnet internal call.
10821         * image.c|h: New function that check a MonoImage for an Authenticode
10822         signature in the certificate PE data directory.
10823         * security.c|h: New internal call to ask the runtime if an 
10824         Authenticode signature seems referenced in the PE header.
10825
10826 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
10827
10828         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
10829
10830         * reflection.c (mono_image_create_pefile): Free the assembly streams
10831         after writing out the assembly file.
10832
10833         * object.c (mono_runtime_run_main): Fix small memory leak.
10834
10835         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
10836         property access modifiers. Fixes #69389.
10837
10838 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
10839
10840         * domain.c, object.c, object-internals.h, domain-internals.h,
10841         object.h, marshal.c: keep dynamic code info per domain.
10842
10843 2004-11-15  Martin Baulig  <martin@ximian.com>
10844
10845         * class.c (mono_type_get_name_recurse): Put type arguments in
10846         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
10847         see bug #68387.
10848
10849 2004-11-15  Martin Baulig  <martin@ximian.com>
10850
10851         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
10852         (mono_class_setup_vtable): When computing `the_cname' for a
10853         generic instance, don't include the namespace since we'd otherwise
10854         add it twice.
10855
10856 2004-11-15  Martin Baulig  <martin@ximian.com>
10857
10858         * class.c (mono_class_create_generic): Changed return type to void.
10859         (mono_class_create_generic_2): New public function; setup
10860         `class->method', `class->field' and `class->interfaces' here
10861         instead of in mono_class_init().
10862
10863         * class.h (mono_class_create_generic): Moved to class-internals.h.
10864
10865 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
10866
10867         * reflection.c (mono_image_create_pefile): take a file HANDLE.
10868         rather than writing to memory, write to this file. Right now,
10869         we are just writting into a buffer, and copying that. However
10870         we can avoid the buffer later.
10871
10872         (mono_dynamic_stream_reset): new function
10873
10874         * icall.c, object-internals.h: update for the above.
10875
10876 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
10877
10878         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
10879         have been using gc'd memory. First it is slower, unlikely
10880         the comment in the source code said, secondly, it increases
10881         our footprint to do it in the gc.
10882
10883         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
10884         the method so that it does not have to copy to managed code.
10885
10886 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
10887
10888         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
10889
10890 2004-11-12  Martin Baulig  <martin@localhost>
10891
10892         * reflection.c (mono_image_create_token): Allow generic method
10893         definitions here, since they may appear in an `.override'; see
10894         gen-98/gen-99 for an example.
10895
10896 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
10897
10898         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
10899         #69365.
10900
10901         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
10902         descriptive.
10903
10904 2004-11-11  Martin Baulig  <martin@ximian.com>
10905
10906         * class.c (mono_class_setup_vtable): In an explicit interface
10907         implementation, the method name now includes the arity.
10908
10909 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
10910
10911         * object.c (mono_array_full_copy): Fix warning.
10912
10913 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
10914
10915         * appdomain.c: Removed look_for_method_by_name(). Use the new method
10916         mono_class_get_method_from_name() instead.
10917         
10918         * class-internals.h: Added two new types of wrappers. 
10919         Added MonoRemotingTarget enum. Added new trampoline function type, which
10920         takes an additional MonoRemotingTarget value as parameter, so it is
10921         possible to request a trampoline for a specific target.
10922         
10923         * class.c: Added new mono_class_get_method_from_name() method.
10924         
10925         * class.h: In MonoRemoteClass, we can have now to vtables, one for
10926         general remoting sinks and one specific for cross domain calls.
10927         
10928         * debug-helpers.c: Added new wrapper names.
10929         
10930         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
10931         of a remote class.
10932         
10933         * image.c: Porperly delete value objects form the remoting invoke hashtable.
10934         
10935         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
10936         with several other methods (mono_marshal_get_xappdomain_dispatch,
10937         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
10938         and others) can generate a fast remoting wrapper for cross domain calls.
10939         More information can be found in docs/remoting.
10940         Other changes: Removed mono_find_method_by_name, and used
10941         mono_class_get_method_from_name instead.
10942         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
10943         is stored in the remoting invoke hashtable.
10944         
10945         * marshal.h: published the new method for getting the xdomain wrapper,
10946         and also added a method for getting the adequate wrapper for a given
10947         method and target.
10948         
10949         * object-internals.h, object.c: Added a couple of methods for capying and
10950         cloning arrays.
10951         Modified mono_install_remoting_trampoline, which takes the new remoting
10952         trampoline that has a remoting target as parameter.
10953         mono_class_proxy_vtable now also takes a remoting target as parameter, and
10954         will return the most suitable vtable for the target.
10955         Added mono_remote_class_vtable, which returns the vtable of a remote class
10956         (which can be the normal remoting vtable or the xdomain vtable).
10957         
10958         * threads.c: the xdomain invoke and dispatch wrappers must also be
10959         protected against interruptions.
10960
10961 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10962
10963         * icall.c: use memmove in BlockCopyInternal when the source and
10964         destination arrays are the same.
10965
10966 2004-11-09  Martin Baulig  <martin@ximian.com>
10967
10968         * class-internals.h (MonoGenericContainer): Removed `method' and
10969         `signature', replaced them with `is_method' and `is_signature'
10970         flags.  Added `context'.
10971
10972         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
10973         instead of a `MonoGenericContainer *'.
10974
10975         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
10976         for dynamic type parameters.
10977         (mono_metadata_load_generic_params): Setup `container->context'.
10978
10979         * reflection.c (mono_reflection_setup_generic_class): Setup
10980         `tb->generic_container->context'.
10981         (do_mono_reflection_bind_generic_parameters): Use
10982         mono_class_inflate_generic_type() to correctly inflate types,
10983         rather than using our own hack just for MONO_TYPE_VAR.
10984
10985 2004-11-09  Martin Baulig  <martin@ximian.com>
10986
10987         * class.c (mono_class_inflate_generic_method): Small fix; don't
10988         crash here.
10989
10990         * icall.c
10991         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
10992         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
10993         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
10994         (ves_icall_Type_BindGenericParameters): Likewise.
10995         (ves_icall_Type_get_IsGenericInstance): Likewise.
10996         (ves_icall_Type_GetGenericParameterPosition): Likewise.
10997         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
10998         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
10999         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
11000
11001 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
11002
11003         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
11004         assembly versions and public key tokens. Fixes #69113.
11005
11006 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
11007
11008         * metadata.c: fix bug introduced with the type cache changes
11009         on 2004-11-06.
11010
11011 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
11012
11013         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
11014         the MonoClass pointer instead of the token in exception clauses.
11015         * reflection.c: updates for the above and make the code not depend
11016         on the structure of MonoExceptionClause.
11017
11018 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
11019
11020         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
11021         Add support for dynamic assemblies. Fixes #69114.
11022
11023         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
11024
11025 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
11026
11027         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
11028         since most only those methods use it. the code member of
11029         MonoMethodPInvoke was dead, so that can be removed too. Also,
11030         remove inline_count (again, not used), and move slot so that it
11031         can share bits with some other flags. This saves 8 bytes in the
11032         structure and gives us about 50 kb back for mcs helloworld.cs
11033
11034         * *.[ch]: Do naming changes for the above.
11035
11036         * loader.c (mono_method_get_header): Lazily init the header
11037         on first access.
11038         (mono_get_method_from_token): don't init the header here
11039         (mono_free_method): the header may never be allocated
11040
11041         Overall, this saves 150 kb of unmanaged allocations
11042         for mcs helloworld.cs. That accounts for 10% of the unmanaged
11043         memory at runtime.
11044         
11045         * loader.c, loader.h (mono_method_get_header): new accessor.
11046
11047         * *.[ch]: use the above method. Prepares us to lazily load
11048         the header.
11049
11050         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
11051         three warnings, which are actual bugs (see 69206).
11052
11053         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
11054         unused. Saves a cool 4 bytes / method.
11055
11056 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
11057
11058         * metadata.c (builtin_types): Add types for System.Object here.
11059         (mono_metadata_parse_type_full): Cache MonoType*'s that are
11060         for a class or valuetype from klass->this_arg or klass->byval_arg.
11061
11062         On mcs for a hello world, this gets us down from 21836 MonoType's
11063         to 14560.
11064
11065         (mono_metadata_free_type): Account for the above change.
11066
11067 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
11068
11069         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
11070         exception instead of asserting if name is null.
11071         (ves_icall_System_AppDomain_GetData): Ditto.
11072
11073 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
11074
11075         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
11076         EnumBuilder.
11077
11078         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
11079         Return NULL when the domain does not have entry_assembly set.
11080
11081         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
11082         Add a 'resource_modules' argument.
11083         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
11084
11085         * reflection.c (mono_reflection_create_runtime_class): Move setting
11086         of wastypebuilder here, so mono_get_type_object () returns a MonoType
11087         for enums too.
11088
11089         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
11090         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
11091         Throw an ArgumentNullException if 'ptr' is null.
11092
11093         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
11094         assemblies here. Fixes #69020.
11095
11096 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
11097
11098         * reflection.c (build_compressed_metadata): Fix the previous patch for
11099         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
11100         the stack.
11101
11102 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
11103
11104         * assembly.c (mono_assembly_names_equal): Allow a match if one of
11105         the cultures is false. Fixes #69090.
11106
11107         * reflection.c (build_compressed_metadata): Fix invalid memory read 
11108         detected by valgrind.
11109         
11110         * reflection.c (mono_reflection_get_type): Avoid triggering a 
11111         TypeResolve multiple times for the same type. Fixes #65577.
11112
11113 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
11114
11115         * marshal.c: Avoid using ldftn to call managed functions. It is
11116         much slower than just a call.
11117
11118         * reflection.c (mono_module_get_object): free the basename we
11119         allocate here from glib.
11120         
11121         * reflection.c (ensure_runtime_vtable): make sure to free
11122         overrides.  Also, we were allocating an array of MonoMethod not an
11123         array of MonoMethod*.
11124
11125         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
11126
11127         * image.c (mono_image_close): free image->guid here.
11128
11129 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
11130
11131         * reflection.c: Fix some spec conformance issues with the PE file
11132         structures so mcs compiled apps run on the Net 2.0 beta.
11133
11134 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
11135
11136         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
11137         Implement this. Fixes #67264.
11138
11139         * debug-helpers.h debug-helpers.c marshal.c: Move 
11140         mono_find_method_by_name to debug-helpers.c.
11141
11142 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
11143
11144         * object.c (mono_release_type_locks): type_initialization_hash is
11145         a GHashTable.
11146
11147         * reflection.c object.c object-internals.h: Fix warnings.
11148
11149         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
11150         without accessors. Fixes #61561.
11151
11152         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
11153         application base from the root domain if not set. Fixes #65641.
11154         (mono_runtime_init): Fix warning.
11155
11156 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11157
11158         * appdomain.c: call mono_thread_pool_init.
11159         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
11160         of worker threads based on the number of CPUs and the environment
11161         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
11162         for non-windows (windows) systems.
11163
11164 2004-10-27  Chris Toshok  <toshok@ximian.com>
11165
11166         * mono-debug-debugger.c (write_class): don't call mono_class_init
11167         here, as even with the check for (!klass->init_pending), we get
11168         into a situation where we're hitting cycles in class
11169         initialization.  Fixes #68816.
11170
11171 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
11172
11173         * image.c: Avoid overwriting values in the loaded_images_hash when an
11174         assembly is loaded multiple times. Fixes #61152.
11175
11176         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
11177         so multiple satellite assemblies for the same name can be loaded.
11178         Fixes #68259.
11179
11180         * mono_domain_assembly_preload: Actually return the loaded assembly, 
11181         not NULL.
11182
11183         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
11184         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
11185
11186         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
11187         pending finalizers are not invoked after the appdomain has been 
11188         unloaded. Fixes #67862.
11189
11190 2004-10-22  Martin Baulig  <martin@ximian.com>
11191
11192         * mono-debug-debugger.c
11193         (mono_debugger_runtime_invoke): Don't box valuetypes.
11194
11195 2004-10-22  Chris Toshok  <toshok@ximian.com>
11196
11197         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
11198         don't hide private methods.
11199
11200 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
11201
11202         * icall.c: Allows the runtime to "share" (when known) the public key
11203         token of an assembly. This avoid the need to recalculate the token 
11204         (from the public key) in managed code.
11205
11206 2004-10-21  Chris Toshok  <toshok@ximian.com>
11207
11208         * debug-helpers.c (append_class_name): argh, revert last patch.
11209         
11210 2004-10-21  Chris Toshok  <toshok@ximian.com>
11211
11212         * debug-helpers.c (append_class_name): use '+' as the delimiter,
11213         not '/', so that it matches what the debugger uses to look up
11214         methods.
11215
11216 2004-10-21  Martin Baulig  <martin@ximian.com>
11217
11218         * mono-debug-debugger.c (mono_debugger_throw_exception): New
11219         public method; this is called each time an exception is thrown and
11220         allows the debugger to use exception catch points.
11221
11222 2004-10-21  Martin Baulig  <martin@ximian.com>
11223
11224         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
11225         the stack pointer and the exception object in some struct and pass
11226         that to the debugger.
11227
11228 2004-10-21  Chris Toshok  <toshok@ximian.com>
11229
11230         * mono-debug-debugger.c (do_write_class): add instance/static
11231         event support.  We don't expose "raise" or "other" yet.
11232         (event_is_static): new method.
11233
11234 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
11235
11236         * mono-debug-debugger.c
11237         (mono_debugger_handle_exception): Remove
11238         bogus return value for fussy compilers.
11239
11240 2004-10-20  Martin Baulig  <martin@ximian.com>
11241
11242         * mono-debug-debugger.c
11243         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
11244         (mono_debugger_handled_exception): Likewise.
11245
11246 2004-10-20  Martin Baulig  <martin@ximian.com>
11247
11248         * mono-debug-debugger.h (MonoDebuggerEvent): Added
11249         MONO_DEBUGGER_EVENT_EXCEPTION.
11250
11251         * mono-debug-debugger.c (mono_debugger_handle_exception): New
11252         public function to send the debugger a notification for an
11253         exception and inform it about a catch/finally clause.
11254
11255 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
11256
11257         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
11258         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
11259         fix 2.95 build. 
11260
11261         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
11262
11263 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
11264
11265         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
11266         marshalled as [In,Out]. Fixes #58325.
11267
11268 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
11269
11270         * reflection.c (mono_method_body_get_object): Implement some fields.
11271
11272 2004-10-12  Martin Baulig  <martin@ximian.com>
11273
11274         * reflection.c (mono_reflection_bind_generic_parameters): Small
11275         fix, correctly retrieve our parent from a generic instance.
11276
11277 2004-10-12  Martin Baulig  <martin@ximian.com>
11278
11279         * metadata.c (mono_metadata_generic_param_equal): We always have
11280         an owner.
11281
11282         * class.c
11283         (mono_class_from_generic_parameter): We need to have an owner.
11284         (my_mono_class_from_generic_parameter): Likewise.
11285
11286         * reflection.c (mono_reflection_setup_generic_class): Renamed to
11287         mono_reflection_create_generic_class() and added a new
11288         mono_reflection_setup_generic_class().  
11289         (mono_reflection_initialize_generic_param): If we're a nested
11290         generic type and inherited from the containing class, set our
11291         owner to the outer class.
11292
11293 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
11294
11295         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
11296
11297         * reflection.c (mono_method_body_get_object): New function to create
11298         a MethodBody object.
11299
11300         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
11301
11302 2004-10-11  Martin Baulig  <martin@ximian.com>
11303
11304         * metadata.c (_mono_metadata_type_equal): Renamed to
11305         do_mono_metadata_type_equal() and made static.
11306
11307 2004-10-11  Martin Baulig  <martin@ximian.com>
11308
11309         * appdomain.c: Bump corlib version number to 28.
11310
11311 2004-10-10  Martin Baulig  <martin@ximian.com>
11312
11313         * class-internals.h
11314         (MonoGenericInst): Added `MonoGenericContainer *container'.
11315         (MonoGenericMethod): Likewise.
11316         (MonoGenericContext): Likewise.
11317         (MonoGenericParam): Added `MonoGenericContainer *owner'.
11318
11319         * metadata.c
11320         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
11321         (do_mono_metadata_parse_generic_inst): Likewise.
11322         (mono_metadata_parse_type_full): New public method.  This is the actual
11323         mono_metadata_parse_type() implementation - with an additional
11324         `MonoGenericContainer *' argument.
11325         (mono_metadata_parse_array_full): Likewise.
11326         (mono_metadata_parse_signature_full): Likewise.
11327         (mono_metadata_parse_method_signature_full): Likewise.
11328         (mono_metadata_parse_mh_full): Likewise.
11329         (mono_type_create_from_typespec): Likewise.
11330         (mono_metadata_interfaces_from_typedef_full): New public method;
11331         this is similar to the other _full() methods, but we take a
11332         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
11333         (mono_metadata_parse_generic_param): Take an additional
11334         `MonoGenericContainer *' argument and lookup the MonoGenericParam
11335         from that container.
11336         (mono_metadata_generic_param_equal): New static method to compare
11337         two type parameters.
11338         (_mono_metadata_type_equal): New static method; takes an
11339         additional `gboolean signature_only' argument - if true, we don't
11340         compare the owners of generic parameters.
11341         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
11342         with a TRUE argument - do a signature-only comparision.
11343
11344         * loader.c: Use the new _full() methods and pass the
11345         MonoGenericContainer to them.
11346
11347         * object-internals.h (MonoReflectionTypeBuilder): Added
11348         `MonoGenericContainer *generic_container' field.
11349         (MonoReflectionMethodBuilder): Likewise.
11350
11351 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
11352
11353         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
11354         case initial images of dynamic assemblies.
11355
11356         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
11357
11358         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
11359
11360         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
11361         length of event->other array.
11362         (typebuilder_setup_events): Ditto.
11363
11364         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
11365         'assembly_by_name' and add an 'assemblies' list.
11366
11367         * assembly.h assembly.c: Add a new search hook for determining whenever
11368         an assembly is already loaded. Use this instead of searching in the
11369         loaded_assemblies list.
11370
11371         * domain.c appdomain.c: Implement the new search hook so loaded 
11372         assemblies are now scoped by appdomain. Fixes #67727.
11373
11374 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
11375
11376         * threads.c (mono_thread_attach): Initialize synch_lock field so
11377         mono_thread_detach works again.
11378
11379         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
11380         'lib' too. Fixes #63130.
11381
11382 2004-10-06  Jackson Harper  <jackson@ximian.com>
11383
11384         * culture-info-tables.h: regenerated.
11385
11386 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
11387
11388         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
11389         implemented by other interfaces in the result. Fixes #65764.
11390         
11391         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
11392         Handle unloadable modules without crashing.
11393
11394         * image.c (load_modules): Revert the previous patch since modules must
11395         have a fixed index inside the array.
11396         
11397         * image.c (load_modules): Don't include native modules in the modules
11398         array.
11399
11400 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
11401
11402         * reflection.h: Add param_defaults field.
11403
11404         * reflection.c: Add support for parameter defaults in dynamic methods.
11405         Fixes #64595.
11406
11407         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
11408         an empty string when a type has no namespace. Fixes #64230.
11409
11410 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
11411
11412         * tabledefs.h: Added "internal" security actions to support non-CAS
11413         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
11414         Note: they do not seems to be used anymore in 2.0 (new metadata format)
11415
11416 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
11417
11418         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
11419         constructor of abstract class. Fixes #61689.
11420
11421 2004-10-04  Martin Baulig  <martin@ximian.com>
11422
11423         * class-internals.h (MonoGenericContainer): New type.
11424         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
11425         `MonoGenericContainer *generic_container'.
11426         (MonoClass): Replaced `gen_params' and `num_gen_params' with
11427         `MonoGenericContainer *generic_container'.
11428
11429         * metadata.c (mono_metadata_load_generic_params): Return a
11430         `MonoGenericContainer *' instead of a `MonoGenericParam *';
11431         removed the `num' argument.
11432
11433 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
11434
11435         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
11436         for dynamic images.
11437
11438         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
11439         machine fields.
11440
11441         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
11442
11443         * reflection.c: Save pe_kind and machine values into the generated
11444         image file.
11445
11446         * appdomain.c: Bump corlib version number.
11447
11448         * object-internals.h: Reorganize layout of LocalBuilder.
11449
11450         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
11451         New helper function.
11452
11453         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
11454         created MonoType for dynamic types. Fixes #66180.
11455
11456 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
11457
11458         * threadpool.c: the ares hashtable needs a critical section around it.
11459         this prevents some nasty segfaults
11460
11461 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
11462
11463         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
11464         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
11465         bug 67324).
11466         
11467 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
11468
11469         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
11470         
11471 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
11472
11473         * image.c: Always canonicalize image file names, to avoid loading
11474         the same assembly twice when referenced using a relative path.
11475
11476 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
11477
11478         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
11479
11480         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
11481
11482         * marshal.c: Fix warnings.
11483
11484 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
11485
11486         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
11487         attempting to marshal the delegate_trampoline as the method_addr.
11488         This patch has a static hashtable of marshalled delegates so that 
11489         we can map delegate_trampoline addresses back to delegates.  This
11490         allows a delegate passed to managed code to be passed back into native
11491         code.  Fixes #67039
11492
11493 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
11494
11495         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
11496
11497         * reflection.c (method_encode_code): Align method headers properly.
11498         Fixes #66025.
11499
11500 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
11501
11502         * marshal.c: In the runtime invoke wrapper, reset the abort
11503         exception if it is cached. This avoids the automatic rethrowal of 
11504         the exception after the catch of the wrapper. Also check for pending
11505         interruptions before calling the managed method. This is done using
11506         the new method emit_thread_force_interrupt_checkpoint, since the
11507         normal checkpoint method is ignored when running the invoke wrapper.
11508         * object.c: If the abort exception is rethrown, set the abort_exc
11509         field of the thread, so it will be rethrown aftere every catch.
11510         * threadpool.c: Only run an interruption checkpoint if what has been
11511         requested is a stop of the thread (aborts will be ignored).
11512         * threads.c: By default, a thread will now never be interrumped while
11513         running the runtime invoke wrapper (this ensures that runtime_invoke
11514         will always return to the caller if an exception pointer is provided).
11515         There is a new special method mono_thread_force_interruption_checkpoint()
11516         to force an interruption checkpoint even if running a protected
11517         wrapper, which is used by the same runtime invoke wrapper to do a check
11518         at a safe point.
11519
11520 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
11521
11522         * object.c, object-internals.h: Implemented mono_release_type_locks,
11523         which releases the cctor locks held by a thread.
11524         * threads.c, threads.h: In thread_cleanup, release cctor locks held
11525         by a thread. Added mono_thread_exit() method to be used to safely stop
11526         a thread.
11527
11528 2004-09-28  Raja R Harinath  <rharinath@novell.com>
11529
11530         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
11531         Move null check before dereference.  Avoid indexing beyond the end
11532         of the 'modules' array.
11533
11534 2004-09-28  Raja R Harinath  <rharinath@novell.com>
11535
11536         * metadata-internals.h (MonoImage): Add module_count field.
11537         * image.c (load_modules): Set image->module_count.
11538         (mono_image_load_file_for_image): Use image->module_count.
11539         * reflection.c (mono_image_load_module): Append to image->modules array 
11540         of dynamic assembly.
11541         (mono_module_get_object): Fix loop to actually increment index.
11542         Use image->module_count.
11543         * assembly.c (mono_assembly_load_references): Use image->module_count.
11544         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
11545         Likewise.
11546
11547 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
11548
11549         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
11550         Avoid assert on generic types.
11551
11552 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
11553
11554         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
11555
11556         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
11557
11558         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
11559         function to convert a MarshalSpec structure to its managed counterpart.
11560
11561         * reflection.c: Fix warnings.
11562         
11563         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
11564         field.
11565
11566         * icall.c (mono_create_icall_signature): Fix build.
11567
11568 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
11569
11570         * icall.c: Add MakePointType icall.
11571
11572         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
11573         warnings.
11574
11575 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11576
11577         * threadpool.c: reuse allocated slots in the queue.
11578
11579 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
11580
11581         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
11582
11583         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
11584
11585         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
11586         previous change.
11587
11588         * tabledefs.h: Add constants for pinvoke attributes BestFit and
11589         ThrowOnUnmappableChar.
11590
11591         * icall.c (ves_icall_Type_GetPacking): New icall.
11592
11593 2004-09-24  Martin Baulig  <martin@ximian.com>
11594
11595         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
11596
11597 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11598
11599         * appdomain.c:
11600         (mono_domain_set): allow setting a domain that is being unloaded.
11601         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
11602         being unloaded.
11603
11604 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
11605
11606         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
11607         the GetCustomAttributes icall.
11608
11609 2004-09-23  Martin Baulig  <martin@ximian.com>
11610
11611         * object-internals.h (MonoReflectionGenericParam): Replaced
11612         'has_ctor_constraint', `has_reference_type' and `has_value_type'
11613         with `guint32 attrs'.
11614
11615 2004-09-23  Martin Baulig  <martin@ximian.com>
11616
11617         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
11618
11619 2004-09-23  Martin Baulig  <martin@ximian.com>
11620
11621         * object-internals.h (GenericParameterAttributes): New enum.
11622
11623 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
11624
11625         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
11626         
11627         * class.c (init_events): Fill out event->other field.
11628
11629         * class.c: Fix warnings.
11630
11631         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
11632
11633 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
11634
11635         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
11636         walk which doesn't supply the IL offset.
11637
11638 2004-09-22  Martin Baulig  <martin@ximian.com>
11639
11640         * reflection.c (mono_reflection_setup_internal_class): If we're
11641         System.ValueType, System.Object or System.Enum, set
11642         `klass->instance_size' and create the vtable.
11643         (mono_reflection_create_internal_class): If we're an enum type,
11644         get the base class from our current corlib.
11645
11646 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
11647
11648         * reflection.h (MonoResolveTokenError): New type.
11649
11650         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
11651         icall.
11652
11653         * icall.c: Add an 'error' argument to the ResolveToken icalls.
11654
11655 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
11656
11657         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
11658         Support also calling constructors, but only for already allocated objects.
11659
11660 2004-09-17  Geoff Norton <gnorton@customerdna.com>
11661
11662         * reflection.c (type_get_qualified_name): If the klass is null
11663         return the typename to avoid a NullRefEx.
11664         (encode_cattr_value): Get the qualified name of the boxed type,
11665         not the underlying enumtype.  Fixes #62984.
11666
11667 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
11668
11669         * marshal.c: Fix problems with previous checkin.
11670
11671 2004-09-21    <vargaz@freemail.hu>
11672
11673         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
11674         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
11675
11676         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
11677
11678 2004-09-21  Geoff Norton <gnorton@customerdna.com>
11679
11680         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
11681         should only return a type for pointers, arrays, and passbyref types.
11682         Fixes bug #63841.
11683
11684 2004-09-21  Martin Baulig  <martin@ximian.com>
11685
11686         * domain.c (mono_debugger_check_runtime_version): New public
11687         function.
11688
11689         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
11690
11691 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
11692
11693         * reflection.c: Added missing sort to the declarative security 
11694         attributes table. MS implementation stops seeing the attributes if the
11695         token number regress in the table (as shown by ildasm and permview).
11696
11697 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
11698
11699         * object-internals.h (MonoReflectionModule): Add 'token' field.
11700         
11701         * reflection.c (mono_reflection_get_token): Add support for Module
11702         and Assembly.
11703         (mono_module_get_object): Set 'token' field.
11704         (mono_module_file_get_object): Set 'token' field.
11705
11706         * icall.c: Add new Assembly and Module icalls.
11707
11708         * appdomain.c: Bump corlib version.
11709
11710 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
11711
11712         * loader.h loader.c class.h class.c: Add helper functions for obtaining
11713         tokens of metadata objects.
11714
11715         * reflection.h reflection.c (mono_reflection_get_token): New function
11716         to obtain the token of a metadata object.
11717
11718         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
11719
11720 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
11721
11722         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
11723         
11724         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
11725
11726 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
11727
11728         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
11729         * object-internals.h: Added 3 MonoArray* members to MonoReflection
11730         AssemblyBuilder to access the permissions set in the class lib.
11731         * reflection.c: Added security attributes encoding step in 
11732         mono_image_build_metadata.
11733         * tabledefs.h: Added new security actions defined in 2.0:
11734         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
11735
11736 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
11737
11738         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
11739         macro parameter.
11740
11741 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
11742  
11743         * locales.c: nullify the ICU_collator member of CompareInfo when it is
11744           finalized. There where random SIGSEVs at program termination, when
11745           an object being finalized was trying to do a string comparison and
11746           the current culture was already finalized.
11747  
11748 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11749
11750         * threads.c: call thread_cleanup before finishing the thread if we get
11751         there.
11752
11753 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
11754
11755         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
11756         assemblies from the parent. Fixes #65665.
11757
11758 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
11759
11760         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
11761         modifiers.
11762
11763 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
11764
11765         * reflection.h: add prototype for mono_get_dbnull_object
11766         * reflection.c: add prototypes for get_default_param_value_blobs 
11767         and mono_get_object_from_blob for fussier compilers
11768
11769 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
11770  
11771         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
11772         false deadlock checks in class initialization.
11773  
11774 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
11775
11776         * image.c (mono_image_addref): Fix comment.
11777
11778         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
11779         possible.
11780
11781 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
11782
11783         * reflection.c (mono_param_get_objects): Modified to return
11784         ParameterInfo.DefaultValue object.
11785
11786         (get_default_param_value_blobs):
11787         (mono_get_object_from_blob):
11788         (mono_get_dbnull_object): New helper routines. 
11789
11790         * object.c (mono_get_constant_value_from_blob): New helper routine
11791         carved out from get_default_field_value ()
11792
11793         * object-internals.h (mono_get_constant_value_from_blob): Added
11794         function declaration.
11795
11796 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
11797
11798         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
11799         referenced assemblies. Fixes #62135.
11800
11801         * exception.h exception.c (mono_get_exception_file_not_found2): New
11802         helper function.
11803
11804 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
11805
11806         * class.h class.c: Add mono_type_get_underlying_type ().
11807
11808 2004-09-09  Geoff Norton <gnorton@customerndna.com>
11809
11810         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
11811         Fix GetTypes() to support dynamically created assemblies.
11812
11813 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
11814
11815         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
11816         
11817         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
11818         previous patch.
11819
11820         * reflection.h reflection.c loader.c: Allow dynamic construction of
11821         pinvoke methods. Fixes #65571.
11822         
11823         * reflection.c (mono_reflection_get_type): Revert previous change since
11824         it causes regressions.
11825
11826 2004-09-08  Martin Baulig  <martin@ximian.com>
11827
11828         * class.c (class_compute_field_layout): Don't call
11829         mono_class_layout_fields() for open generic instances.
11830
11831 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
11832         * threads.c appdomain.c: fix typo in GC macro
11833
11834 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11835
11836         * threads.c: don't call mono_thread_detach() in start_wrapper(),
11837         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
11838
11839 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
11840
11841         * image.c (mono_image_close): Applied patch from 
11842         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
11843         assembly is loaded multiple times from data.
11844         
11845         * image.c (mono_image_open): Fix warning.
11846
11847 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11848
11849         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
11850         once. Fixes #58334.
11851         
11852         * reflection.c (mono_reflection_create_runtime_class): Initialize
11853         klass->nested_classes. Fixes #61224.
11854
11855 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
11856
11857         * threads.c: sched_yield() on exit, to allow threads to quit.
11858
11859 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11860
11861         * object.c (mono_unhandled_exception): Remove leftover debug code.
11862
11863 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
11864
11865         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
11866
11867 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11868
11869         * marshal.c (emit_marshal_array): Really null terminate string arrays.
11870         
11871         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
11872
11873 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11874
11875         * marshal.c (emit_marshal_array): Null terminate string arrays.
11876         
11877         * marshal.c (raise_auto_layout_exception): Fix warning.
11878
11879         * reflection.c (mono_param_get_objects): Initialize the default value
11880         with DBNull.Value, not null. Fixes #62123.
11881
11882 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
11883
11884         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
11885         throw an exception with a cute explanation.
11886
11887 2004-09-06  Dick Porter  <dick@ximian.com>
11888
11889         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
11890         Close the new process's thread handle, as we don't use it.  The
11891         handle stays around forever otherwise.
11892
11893 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11894
11895         * object.c (arith_overflow): Fix warning.
11896
11897         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
11898         calling conventions in method refs. Fixes #65352.
11899
11900         * reflection.c: Fix warnings.
11901
11902 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
11903
11904         * icall.c: Add a new icall for Array.Clear
11905
11906 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
11907
11908         * object.c: When allocating an array, we have to throw
11909         an overflow exception if any of the lengths are < 0.
11910
11911 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11912
11913         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
11914         properly. Also move implementation of string array marshalling to 
11915         managed code. Fixes #42316.
11916
11917 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11918
11919         * assembly.c: provide more information when loading an assembly fails.
11920
11921 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11922
11923         * filewatcher.c: don't expect the development fam package to be
11924         installed.
11925
11926 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
11927
11928         * marshal.c: Make a copy of the signature cookie since it will be
11929         freed by the caller.
11930         
11931         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
11932
11933         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
11934
11935         * metadata.c (mono_metadata_free_marshal_spec): New function to free
11936         marshal specs.
11937
11938         * marshal.c: More refactoring.
11939         
11940         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
11941         smaller functions.
11942
11943 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
11944
11945         * object.c: In mono_message_invoke, fill the output parameter array after
11946           calling the managed method (it was done before the call). This fixes
11947           bug #59299.
11948
11949 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
11950
11951         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
11952         as well.
11953
11954 2004-09-02  Martin Baulig  <martin@ximian.com>
11955
11956         * class.c (mono_class_instance_size): Don't allow generic type
11957         definitions or open generic instances.
11958         (mono_class_array_element_size): If we're a value type, call
11959         mono_class_instance_size() on the original class.
11960
11961         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
11962         handle generic instances.
11963
11964         * mono-debug-debugger.c (write_type): Handle generic instances
11965         like classes.
11966
11967 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
11968
11969         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
11970         the allocation request fails. Fixes #65089.
11971
11972         * object.c (mono_runtime_free_method): Do not call mono_free_method.
11973         
11974         * object.c (mono_runtime_free_method): New function to free a dynamic
11975         method.
11976
11977         * marshal.c (mono_delegate_free_ftnptr): New function to free the
11978         delegate trampoline.
11979
11980         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
11981         with hasthis as dynamic,
11982
11983         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
11984
11985         * domain.c (mono_jit_info_table_remove): New function to remove an
11986         entry from the jit info table.
11987
11988         * class-internals.h (MonoMethod): Add 'dynamic' field.
11989
11990         * loader.c: Fix warnings.
11991
11992 2004-09-01  Martin Baulig  <martin@ximian.com>
11993
11994         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
11995         instead of mono_debugger_lock() because the latter one is a no-op
11996         unless running in the debugger.
11997
11998 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
11999
12000         * class.c (class_compute_field_layout): Classes with auto-layout or
12001         reference fields are not blittable.
12002         
12003 2004-09-01  Dick Porter  <dick@ximian.com>
12004
12005         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
12006         mono_image_get_filename() to get the assembly location.
12007
12008         * icall.c:
12009         * metadata.h: Fix compile warnings
12010
12011 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
12012
12013         * class.c (class_compute_field_layout): System.Object is blittable.
12014
12015         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
12016         as in/out. Fixes #59909.
12017
12018 2004-09-01  Martin Baulig  <martin@ximian.com>
12019
12020         * metadata.h (MONO_TYPE_ISREFERENCE): Call
12021         mono_metadata_generic_inst_is_valuetype() if we're a generic
12022         instance to check whether our underlying type is a reference type.
12023
12024 2004-09-01  Martin Baulig  <martin@ximian.com>
12025
12026         * metadata.c (mono_type_size): If we're a generic instance, call
12027         mono_class_value_size() for value types.
12028
12029 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
12030
12031         * marshal.c: Implement more custom marshalling functionality. Fixes
12032         #64915.
12033
12034 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
12035
12036         * mono-debug.c, debug-mono-symfile.c: add some locking love.
12037
12038 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
12039
12040         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
12041
12042         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
12043
12044         * icall.c: Fix some warnings.
12045
12046         * threads.c (abort_appdomain_thread): Fix unref errors.
12047         (mono_thread_current): Fix THREAD_DEBUG define.
12048
12049 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
12050
12051         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
12052
12053         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
12054
12055 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
12056
12057         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
12058         string arrays.
12059
12060 2004-08-28  Martin Baulig  <martin@ximian.com>
12061
12062         * metadata.c
12063         (mono_metadata_generic_inst_is_valuetype): New public function.
12064
12065         * metadata.h (MONO_TYPE_ISSTRUCT): Call
12066         mono_metadata_generic_inst_is_valuetype() if we're a generic
12067         instance to check whether our underlying type is a valuetype.
12068
12069 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
12070
12071         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
12072         #63768.
12073
12074 2004-08-25  Martin Baulig  <martin@ximian.com>
12075
12076         * loader.c (mono_get_method_from_token): Abstract methods can also
12077         be generic and thus have type parameters.
12078
12079         * metadata-internals.h
12080         (MonoDynamicImage): Added `GPtrArray *gen_params'.
12081
12082         * reflection.c (mono_image_get_generic_param_info): Don't create a
12083         metadata row, just add an entry to the `gen_params' array.
12084         (build_compressed_metadata): Sort the `gen_params' array and then
12085         actually create the metadata.
12086
12087 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12088
12089         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
12090
12091 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
12092
12093         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
12094
12095 2004-08-24  Martin Baulig  <martin@ximian.com>
12096
12097         * class.cs (mono_class_is_subclass_of): Like an interface, a
12098         generic instance also derives from System.Object.
12099
12100 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
12101
12102         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
12103         custom modifiers to be in any order. Fixes #61990.
12104
12105 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
12106
12107         * object.c: Register mono_object_new_fast icall.
12108         
12109         * object.c (mono_class_get_allocation_ftn): Return to calling
12110         mono_object_new_fast, since it seems faster to compute the object 
12111         size in unmanaged code than passing it as a parameter.
12112
12113         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
12114
12115         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
12116         this function with Boehm as the oom handler, so we don't have to check
12117         the result of GC_malloc.
12118
12119         * object.c: Remove checks for oom.
12120
12121         * object.h object.c (mono_class_get_allocation_ftn): New function to
12122         return the icall which can be used to allocate an instance of a given
12123         class. 
12124
12125         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
12126
12127         * class-internals.h: Add 'enabled' field.
12128
12129 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
12130
12131         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
12132
12133 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
12134         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
12135         value 0x0010.
12136
12137 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
12138
12139         * appdomain.c: use the Tls function for appdomain too,
12140         at Zoltan's request. Actually return in mono_context_get
12141
12142         * appdomain.c, profiler.c, threads.c: use __thread
12143
12144 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
12145
12146         * appdomain.c threads.c: Call GC_CreateThread on windows.
12147
12148         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
12149         multiple libraries since this don't work on windows.
12150
12151 2004-08-18  Martin Baulig  <martin@ximian.com>
12152
12153         * class-internals.h
12154         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
12155         MonoMethodHeader.
12156
12157         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
12158         MonoMethodNormal since we also need it for abstract and interface
12159         methods.
12160
12161         * reflection.c
12162         (build_compressed_metadata): Sort the GenericParam table.
12163         (mono_image_create_token): Added `gboolean create_methodspec'
12164         argument; this is false when generating a MethodImpl token.
12165         (reflection_methodbuilder_to_mono_method): Abstract and interface
12166         methods may also have generic parameters.
12167
12168 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
12169
12170         * appdomain.c: thread local alloc
12171
12172 2004-08-17  Martin Baulig  <martin@ximian.com>
12173
12174         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
12175
12176         * icall.c
12177         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
12178         argument.
12179
12180         * class.c (mono_type_get_full_name): New public function.
12181         (mono_type_get_name): Don't include the type arguments.
12182
12183 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
12184
12185         * Makefile.am: Build static versions of libmetadata and libmonoruntime
12186         for inclusion into the mono executable.
12187
12188 2004-08-16  Martin Baulig  <martin@ximian.com>
12189
12190         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
12191         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
12192
12193 2004-08-14  Martin Baulig  <martin@ximian.com>
12194
12195         * class.c (dup_type): Also copy the `byref' field.
12196
12197 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
12198
12199         * reflection.c (create_dynamic_mono_image): Revert the last change 
12200         since it breaks bootstrap.
12201
12202 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
12203
12204         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
12205
12206         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
12207         not free them with g_free.
12208
12209 2004-08-11  Martin Baulig  <martin@ximian.com>
12210
12211         * reflection.c (mono_reflection_setup_internal_class): Also call
12212         mono_class_setup_mono_type() if we already have a `tb->type.type'.
12213
12214 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
12215
12216         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
12217         called during default (first) AppDomain creation. Keep track of
12218         Evidence when loading assemblies.
12219
12220 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
12221
12222         * opcodes.c, opcodes.h: reduce runtime relocations.
12223
12224 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
12225
12226         * culture-info.h, locales.c: fixes and chages to sue the new
12227         optimized format of the locale data.
12228         * culture-info-tables.h: regenerated.
12229
12230 2004-08-06  Geoff Norton <gnorton@customerdna.com>
12231         
12232         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
12233
12234 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
12235
12236         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
12237         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
12238         * domain-internals.h: icall declaration.
12239         * icall.c: icall registration.
12240         * object-internals.h: New fields in MonoAssembly for CAS.
12241
12242 2004-08-05  Duncan Mak  <duncan@ximian.com>
12243
12244         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
12245         CEE_LDELEM_ANY.
12246
12247 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
12248
12249         * reflection.c: fix to deal with object[] arrays in custom ctors
12250         (bug #62550).
12251
12252 2004-08-05  Martin Baulig  <martin@ximian.com>
12253
12254         * class.c (mono_class_array_element_size): Added support for
12255         generic instances and correctly handle "recursive" types.
12256
12257 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
12258
12259         * assembly.c: Fix warnings.
12260
12261 2004-08-04  Martin Baulig  <martin@ximian.com>
12262
12263         * class.c
12264         (mono_type_get_name_recurse): Added `gboolean include_arity'
12265         argument specifying whether or not we should include the generic
12266         arity in the type name.
12267         (_mono_type_get_name): New static function.
12268         (mono_class_setup_vtable): If we're a generic instance, don't
12269         include the generic arity in the names of explicit method
12270         implementations.        
12271
12272 2004-08-03  Martin Baulig  <martin@ximian.com>
12273
12274         * class.c (mono_type_get_name_recurse): Enclose the generic type
12275         arguments in `<', '>'.
12276
12277 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
12278
12279         * gc.c: make GC warning messages use the trace API, they are just
12280         noise to most of the users.
12281
12282 2004-08-03  Martin Baulig  <martin@ximian.com>
12283
12284         * debug-mono-symfile.c (read_string): Correctly read the string.
12285
12286 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
12287
12288         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
12289         
12290         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
12291         icalls.
12292         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
12293
12294 2004-07-30  Martin Baulig  <martin@ximian.com>
12295
12296         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
12297         Reflect latest symbol writer changes.   
12298
12299 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
12300
12301         * object.c: always create an object if null is passed
12302         to Invoke() where a valuetype is expected.
12303
12304 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
12305
12306         * marshal.c (mono_marshal_init): make managed
12307         signatures match native ones better for 64bits.
12308
12309 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12310
12311         * appdomain.c: hack to build correctly the private bin path on windows.
12312         Fixes bug #61991.
12313
12314 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
12315
12316         * assembly.c: Load mscorlib from the correct framework directory
12317           (mono/<version>/mscorlib.dll).
12318         * appdomain.h: Added prototypes for new functions.
12319         * internals.h: Added some prototypes.
12320         * domain.c: When initializing the runtime, get from the executable and
12321           the configuration files the runtime version that the app supports.
12322           Added support methods for reading app.exe.config. Added list of versions
12323           supported by the JIT. Added two new methods: mono_init_from_assembly,
12324           which initializes the runtime and determines the required version from
12325           the provided exe file, and mono_init_version, which initializes
12326           the runtime using the provided version.
12327         * icall.c: Get machine.config from version-specific directory.
12328         * reflection.c: When generating an image, embed the version number
12329           of the current runtime.
12330
12331 2004-07-28  Dick Porter  <dick@ximian.com>
12332
12333         * socket-io.c
12334         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
12335         returned sockaddr size before creating the remote address object.
12336         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
12337         61608.
12338
12339 2004-07-28  Dick Porter  <dick@ximian.com>
12340
12341         * locales.c (string_invariant_compare_char): Fix invariant char
12342         compares between upper and lower cases.  Fixes bug 61458.
12343
12344 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
12345         
12346         * marshal.c: actually cache stelem.ref wrappers.
12347         
12348 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
12349
12350         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
12351         sections and remove the mono_cli_rva_map () function.
12352
12353 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
12354
12355         * debug-mono-symfile.c: fix one more endianess issue, from a patch
12356         by Geoff Norton (<gnorton@customerdna.com>).
12357
12358 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
12359
12360         * class.c: fix class loads for pointer types (typeof(int) !=
12361         typeof(int*)).
12362
12363 2004-07-27  Martin Baulig  <martin@ximian.com>
12364
12365         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
12366         reading the debugging information from an external ".mdb" file.
12367
12368 2004-07-24  Martin Baulig  <martin@ximian.com>
12369
12370         * reflection.c (mono_image_get_type_info): Only write a class
12371         layout entry if we actually have a size or a packing size.
12372
12373 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
12374
12375         * reflection.c (type_get_fully_qualified_name): 
12376         insert cast to get type checking of ?: with non-gcc compilers
12377
12378 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
12379
12380         * rand.c: use g_getenv for both lookups of
12381         MONO_EGD_SOCKET
12382
12383 2004-07-17  Martin Baulig  <martin@ximian.com>
12384
12385         * reflection.c (mono_reflection_bind_generic_method_parameters):
12386         Set `gmethod->reflection_info'.
12387
12388 2004-07-17  Martin Baulig  <martin@ximian.com>
12389
12390         * class.c (mono_class_create_from_typedef): Insert the newly
12391         created class into the hash table before computing the interfaces
12392         since we could be called recursively.
12393
12394 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
12395
12396         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
12397         function to implement stelem.ref in managed code
12398         * class-internals.h, debug-helpers.c: a new wrapper type
12399         for the above.
12400
12401 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
12402
12403         * gc.c: allow GC handles to work even when no GC is compiled in.
12404         Fix part of bug #61134 (GetAddrOfPinnedObject).
12405
12406 2004-07-13  Peter Williams  <peter@newton.cx>
12407  
12408         * process.c (complete_path): Make sure we don't attempt to execute
12409         directories.
12410  
12411 2004-07-12  Geoff Norton <gnorton@customerdna.com>
12412
12413         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
12414           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
12415           and will add/subtract the hour if needed
12416
12417 2004-07-12  Martin Baulig  <martin@ximian.com>
12418
12419         * reflection.c (mono_field_get_object): If we have
12420         `field->generic_info', take the attributes from
12421         `field->generic_info->generic_type'.    
12422
12423 2004-07-12  Martin Baulig  <martin@ximian.com>
12424
12425         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
12426         This function must be called before initializing the runtime.
12427         (mono_debug_init_1): New function; call this after initializing
12428         the runtime, but before loading the assembly.  It tells the
12429         debugger to load corlib and the builtin types.
12430
12431         * mono-debug-debugger.c: Did some larger changes in the debugging
12432         code; support recursive class declarations, make sure we actually
12433         add all classes.
12434
12435 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12436
12437         * debug-helpers.c: undo my previous patch and fixed the real issue in
12438         ../mini/exceptions-x86.c
12439
12440 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12441
12442         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
12443         when no HOME env. variable was set and a NullRef was thrown in a .cctor
12444         called from other .cctors.
12445
12446 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
12447
12448         * loader.c: Removed the mono_loader_wine_init hack now that we are
12449         doing a managed version of Windows.Forms.
12450
12451 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
12452
12453         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
12454         threadpool.c, threads.c: remove static data from rootset.
12455
12456 2004-07-09  Dick Porter  <dick@ximian.com>
12457
12458         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
12459         Don't do any more processing if the matched length was 0.  It was
12460         increasing the size of the string before.  Fixes bug 61167.
12461
12462 2004-07-09  Dick Porter  <dick@ximian.com>
12463
12464         * socket-io.h:
12465         * socket-io.c
12466         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
12467         Add support for SO_PEERCRED if its available.
12468
12469 2004-07-09  Peter Bartok <pbartok@novell.com>
12470         * loader.c: winelib.exe.so error message is now only displayed if
12471         MONO_DEBUG is set. To help us avoid questions when people are trying
12472         out the new Managed.Windows.Forms.
12473
12474 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
12475
12476         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
12477         for isinst and castclass wrappers.
12478
12479         * class-internals.h icall.c: Move registration and lookup of JIT icalls
12480         to libmetadata from the JIT, so they could be used by the marshalling
12481         code and the interpreter.
12482
12483         * marshal.c: Register marshalling related JIT icalls here instead of
12484         in mini.c. Use CEE_MONO_ICALL instead of the family of 
12485         CEE_MONO_PROC<x> opcodes to call marshalling functions.
12486
12487         * metadata.h: Remove unneeded marshalling conversions.
12488
12489         * opcodes.c: Update for new opcodes.
12490         
12491 2004-07-08  Martin Baulig  <martin@ximian.com>
12492
12493         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
12494         (mono_debug_get_domain_data): Make this function static.
12495
12496 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
12497
12498         * gc.c, object.h: add nice GC handle API for embedders.
12499
12500 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
12501
12502         * reflection.c: more changes for the new api
12503
12504         * object.c: When we reflect on a field w/ a constant value, it
12505         will not have a memory location, so we must access metadata. Also,
12506         allow easier reading of strings so that we can read them from
12507         the constant data.
12508
12509         * class.c (mono_class_layout_fields): no need for literal fields here.
12510
12511         * class-internals.h: api changes for const fields
12512
12513         * icall.c (ves_icall_get_enum_info): use new apis for const fields
12514
12515 2004-07-06  Martin Baulig  <martin@ximian.com>
12516
12517         * mono-debug.h: Increment version number to 44.
12518
12519         * mono-debug.c (mono_debug_add_wrapper): The second argument is
12520         now a gpointer, rewrote this whole method.
12521
12522         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
12523         function.  Add information about the wrapper in a new "misc table".
12524
12525         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
12526         for the new misc table.
12527
12528 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
12529
12530         * metadata-internals.h image.c: Add a cache for helper signatures.
12531
12532         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
12533
12534 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
12535
12536         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
12537         delegates from a delegate. Fixes #61033.
12538         
12539         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
12540         marshalling of stringbuilder arrays. Fixes #59900.
12541
12542 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
12543
12544         * icall.c: Add EnumBuilder:setup_enum_type icall.
12545
12546 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
12547
12548         * icall.c: Added a new icall for the property version of
12549         OffsetOfStringData.
12550
12551 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
12552
12553         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
12554         it has a constant size across platforms.
12555
12556         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
12557         stack trace.
12558
12559 2004-06-29  Martin Baulig  <martin@ximian.com>
12560
12561         * mono-debug.c (mono_debug_add_method): Protect the whole function
12562         in mono_debugger_lock(), not just parts of it.
12563
12564 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
12565
12566         * reflection.c: make sure padding bytes in heaps are zeroed.
12567
12568 2004-06-24  David Waite  <mass@akuma.org>
12569
12570         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
12571         image.c, loader.c, locales.c, marshal.c, metadata.c,
12572         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
12573         string-icalls.c, threads.c: change to C90-style comments from C99 /
12574         C++ -style
12575
12576 2004-06-24  Dick Porter  <dick@ximian.com>
12577
12578         * threads.c
12579         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
12580         return createdNew.  Fixes bug 60412.
12581
12582         * threads-types.h: 
12583         * icall.c: Add createdNew parameter to CreateMutex icall
12584
12585 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
12586
12587         * reflection.c, object-internals.h: save default value in params.
12588
12589 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12590
12591         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
12592         no need to build a new path combining that with the application base.
12593         Fixes bug #60442.
12594
12595 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
12596
12597         * reflection.c: fixed minor standard compliance issues.
12598
12599 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
12600
12601         * reflection.c: fixed issue with encoding some custom attributes
12602         (arrays in properties and fields, bug #60411).
12603
12604 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12605
12606         * reflection.c: fix start address when copying the public key token.
12607
12608 2004-06-23  Martin Baulig  <martin@ximian.com>
12609
12610         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
12611         the `exc' object in a static object to put it into the GC's root set.
12612
12613 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
12614
12615         * reflection.c: make mono_reflection_setup_internal_class ()
12616         callable a second time to setup a new parent class.
12617
12618 2004-06-23  Dick Porter  <dick@ximian.com>
12619
12620         * threads.c: Check for WAIT_IO_COMPLETION return values.
12621
12622 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
12623
12624         * appdomain.c: Removed the g_free on the public key token. Now copy 
12625         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
12626         * assembly.c: Added public key token string value when loading 
12627         assemblies. Fix bug #60439.
12628         * icall.c: Added missing informations (like public key) in 
12629         GetReferencedAssemblies. Fix #60519.
12630         * image.h: Changed definition for public key token from const char*
12631         public_tok_value to guchar public_key_token [17];
12632         * reflection.c: Updated for changes to public key token.
12633
12634 2004-06-22  Lluis Sanchez Gual
12635
12636         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
12637         for the field in base classes.
12638
12639 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
12640
12641         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
12642         mark headers as not supported, they are installed only for use by the
12643         debugger.
12644
12645 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
12646
12647         * *.c, *.h: avoid namespace pollution in public headers.
12648
12649 2004-06-21  Martin Baulig  <martin@ximian.com>
12650
12651         * exception.c (mono_get_exception_security): It's in
12652         "System.Security", not in "System".
12653
12654         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
12655         the exception classes.
12656
12657 2004-06-21  Martin Baulig  <martin@ximian.com>
12658
12659         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
12660         Protect the exception object from being finalized.
12661
12662 2004-06-21  Martin Baulig  <martin@ximian.com>
12663
12664         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
12665         public function.
12666
12667 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
12668
12669         * reflection.c: Load the assembly in mono_reflection_type_from_name,
12670         if it was not loaded before. Fix parts of #60439.
12671
12672 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
12673
12674         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
12675         code that was broken since Ben's change: wrappers are now
12676         dependent on the method signature only again.
12677
12678 2004-06-21  Martin Baulig  <martin@ximian.com>
12679
12680         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
12681         added interface support.
12682
12683 2004-06-21  Martin Baulig  <martin@ximian.com>
12684
12685         * class.c (mono_vtable_get_static_field_data): New public method.
12686
12687 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
12688
12689         * filewatcher.c : Windows build fix to be compliant with API changes.
12690
12691 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
12692
12693         * class.h, class.c: more accessors.
12694         * metadata.h, metadata.c: prepare for hiding MonoType and
12695         MonoMethodSignature: people should use the accessors from now on
12696         outside of the tree.
12697
12698 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
12699
12700         * *.c, *.h: more API cleanups.
12701
12702 2004-06-18  Jackson Harper  <jackson@ximian.com>
12703
12704         * assembly.c: Trace loading assemblies.
12705         * loader.c: Trace loading native libraries.
12706         * mono-config.c: Trace loading config files.
12707         
12708 2004-06-18  Dick Porter  <dick@ximian.com>
12709
12710         * locales.c: Tell ICU the lengths of strings, it can cope with
12711         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
12712
12713 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
12714
12715         * image.c: swapped name/filename;
12716
12717 2004-06-18  Martin Baulig  <martin@ximian.com>
12718
12719         * mono-debug-debugger.c (write_class): Write the parent class at
12720         the end of the header.
12721
12722 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
12723
12724         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
12725
12726 2004-06-17  Raja R Harinath  <rharinath@novell.com>
12727
12728         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
12729         (bundle_obj): New conditional define.
12730         (BUILT_SOURCES): Remove.
12731         ($(bundle_srcs)): Make parallel-make safe.
12732         (libmonoruntime_la_LIBADD): Make unconditional.
12733         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
12734         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
12735
12736 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
12737
12738         * culture-info-tables.h: It was inconsistent with the latest
12739           supp info files.
12740
12741 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
12742
12743         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
12744         be loaded.
12745
12746         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
12747         with gcc 2.95.
12748
12749 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
12750
12751         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
12752         cleaned up public header threads.h.
12753
12754 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
12755
12756         * Makefile.am, *.c, *.h: more API cleanups.
12757
12758 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
12759
12760         * Makefile.am: removed monosn from compilation.
12761         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
12762         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
12763         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
12764         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
12765         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
12766         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
12767
12768 2004-06-15  Jackson Harper  <jackson@ximian.com>
12769
12770         * assembly.c: Make locales lower case when searching the GAC for
12771         assemblies. gacutil will always make locales lowercase when
12772         installing so this effectively makes them case insensitive.
12773         
12774 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
12775
12776         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
12777         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
12778           parameter which allows to choose whether the wait can be interrupted or 
12779           not. Also added the method mono_monitor_enter(), which locks the monitor
12780           using an infinite wait and without allowing interruption.
12781           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
12782           interrupted.
12783         * object.h: Added new fields in MonoThread. suspend_event holds the event
12784           used to susped/resume the thread. synch_lock is the lock object to use for
12785           modifying the thread state.
12786         * threads.c: Use the new synch_lock object for locking, instead of "this",
12787           which can generate deadlocks.
12788           Moved thread state change in Thread.Sleep and Thread.Join from managed
12789           to unmanaged code. This avoids a deadlock when the thread was suspended
12790           just after acquiring the thread lock.
12791           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
12792           Implemented Thread.Suspend using an event instead of ThreadSuspend,
12793           which is not fully implemented in the io-layer.
12794         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
12795
12796 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
12797
12798         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
12799         threads-types.h: more API cleanups.
12800
12801 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
12802
12803         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
12804         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
12805         threadpool.c, threads.c: first pass at the exported API cleanup.
12806
12807 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
12808
12809         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
12810
12811 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12812
12813         * icall.c: added internalGetHome.
12814
12815 2004-06-14  Dick Porter  <dick@ximian.com>
12816
12817         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
12818         possible to return successfully when '.' or '..' were the only
12819         entries in a directory, but were skipped.  The MonoIOStat was not
12820         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
12821         Fixes bug 59574.
12822
12823 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
12824
12825         * reflection.c: make binaries run on .Net 1.1 by default.
12826
12827 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
12828
12829         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
12830
12831 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
12832
12833         * marshal.c: keep track of struct size with explicit layout
12834         (bug #59979).
12835
12836 2004-06-12  Martin Baulig  <martin@ximian.com>
12837
12838         * mono-debug-debugger.c: Comment out a debugging g_message().
12839
12840 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
12841
12842         * reflection.c, reflection.h: do not free custom attrs that are cached.
12843         * icall.c: use braces to make code clearer.
12844
12845 2004-06-11  Martin Baulig  <martin@ximian.com>
12846
12847         * class.h (MonoInflatedField): New type.
12848         (MonoClassField): Replaced `MonoType *generic_type' with
12849         `MonoInflatedField *generic_info'.
12850
12851         * icall.c
12852         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
12853
12854 2004-06-11  Martin Baulig  <martin@ximian.com>
12855
12856         * reflection.c (mono_image_create_method_token): Correctly encode
12857         varargs methods.
12858
12859 2004-06-11  Martin Baulig  <martin@ximian.com>
12860
12861         * metadata.c (mono_metadata_parse_method_signature): When parsing
12862         a MethodDef which has VarArgs, also set sentinelpos if we don't
12863         have any parameters.
12864
12865 2004-06-11  Martin Baulig  <martin@ximian.com>
12866
12867         * verify.c (mono_method_verify): In CEE_CALL, use
12868         mono_method_get_signature() to get the method's signature, unless
12869         we're a PInvoke method.
12870
12871 2004-06-10  Jackson Harper  <jackson@ximian.com>
12872
12873         * assembly.c: Use <path>/lib/mono/gac for the extra paths
12874         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
12875         logical name as the supplied path is just a prefix to the gac not
12876         the direct path to it.
12877         
12878 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
12879
12880         * reflection.c: make the token for a created method match
12881         the token of the MethodBuilder it was created from
12882         (IKVM requires this behaviour now).
12883
12884 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
12885
12886         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
12887         reflection.c, socket-io.c: leak fixes.
12888
12889 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
12890
12891         * icall.c: handle sentinel pos in vararg methods in position different
12892         from 0.
12893
12894 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12895
12896         * culture-info-tables.h: freshly generated.
12897
12898 2004-06-09  Martin Baulig  <martin@ximian.com>
12899
12900         * loader.c (mono_get_method_constrained): Call `mono_class_init
12901         (constrained_class)'.   
12902
12903 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
12904
12905         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
12906         any methods. Fixes #59629.
12907
12908 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12909
12910         * culture-info-tables.h: reflecting locale-builder updates.
12911
12912 2004-06-08  Dick Porter  <dick@ximian.com>
12913
12914         * object.h:
12915         * locales.c: Fixed compile warnings, including a real bug in
12916         CompareInfo_internal_compare.
12917         
12918 2004-06-08  Dick Porter  <dick@ximian.com>
12919
12920         * locales.c
12921         (ves_icall_System_Globalization_CompareInfo_internal_index):
12922         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
12923         Double-check the resuls of usearches, because ICU currently
12924         ignores most of the collator settings here.  Fixes bug 59720.
12925         
12926 2004-06-08  Dick Porter  <dick@ximian.com>
12927
12928         * locales.c
12929         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
12930         Fix memory leak and segfault-causing typo.  No idea how this one
12931         lasted so long without being noticed.
12932
12933 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
12934
12935         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
12936         any methods. Fixes #59629.
12937
12938 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12939
12940         * assembly.c:
12941         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
12942         own the critical section before). Removed dead code (that's done
12943         in the preload hook).
12944
12945         (mono_assembly_load_with_partial_name): call the preload hook.
12946
12947 2004-06-08  Martin Baulig  <martin@ximian.com>
12948
12949         * metadata.c (mono_metadata_signature_alloc): Default
12950         `sentinelpos' to -1.
12951
12952         * reflection.c (mono_image_get_array_token): Likewise.
12953
12954 2004-06-08  Martin Baulig  <martin@ximian.com>
12955
12956         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
12957
12958         * metadata.c (mono_metadata_parse_method_signature): When parsing
12959         a MethodDef which has VarArgs, set sentinelpos.
12960
12961         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
12962         `gint16' since we're using -1 for non-varargs methods.
12963
12964         * reflection.c
12965         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
12966         (method_encode_signature): Added varargs support.
12967         (method_builder_encode_signature): Likewise.
12968         (mono_image_get_varargs_method_token): New static method.
12969         (mono_image_create_method_token): New public method; this is
12970         called via an icall instead of mono_image_create_token() when
12971         calling a varargs method.       
12972
12973 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
12974
12975         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
12976
12977 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12978
12979         * culture-info-tables.h : Reflecting the latest locale-builder that
12980           fixed empty array representation ({} to {0}).
12981
12982 2004-06-07  Jackson Harper  <jackson@ximian.com>
12983
12984         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
12985         looking up extra gac paths. This allows MONO_GAC_PATH to act
12986         exactly like a prefix.
12987         
12988 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
12989
12990         * reflection.c (mono_reflection_type_from_name): Make a copy of the
12991         type name before modifying it. Fixes #59405.
12992
12993 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12994
12995         * culture-info.h: added fields for "all datetime patterns".
12996         * locales.c: (  ves_icall_System_Globalization_CultureInfo
12997           _construct_datetime_format ()): fill xxx_patterns fields.
12998         * object.h: added fields for "all datetime patterns" to
12999           MonoDateTimeFormatInfo.
13000         * culture-info-tables.h: reflecting locale-builder updates.
13001
13002 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
13003
13004         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
13005         the event has no add and remove methods. Fixes #59629.
13006
13007 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
13008
13009         * object.c: Fixed possible integer overflow when allocating large
13010         strings.
13011
13012 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
13013
13014         * culture-info-tables.h: reflecting locale-builder updates.
13015
13016 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
13017
13018         * culture-info-tables.h: reflecting locale-builder updates.
13019
13020 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
13021
13022         * culture-info-tables.h: reflecting locale-builder updates.
13023
13024 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
13025
13026         * threads.c: Made Thread.Sleep abortable.
13027
13028 2004-06-02  Martin Baulig  <martin@ximian.com>
13029
13030         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
13031
13032         * debug-mono-symfile.h: Bumped symbol file version number to 37.
13033
13034 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
13035
13036         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
13037
13038 2004-05-30  Jackson Harper  <jackson@ximian.com>
13039
13040         * reflection.c: Do not hardcode assembly versions or public key
13041         tokens anymore. All of this except the corlib section was dead
13042         code anyways.
13043         
13044 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
13045
13046         * object.c (mono_runtime_invoke_array): Automatically create boxed
13047         objects for byref valuetypes if needed. Fixes #59300.
13048         
13049         * object.c (mono_method_return_message_restore): Handle 
13050         MONO_TYPE_OBJECT as well.
13051
13052 2004-05-28  Jackson Harper  <jackson@ximian.com>
13053
13054         * reflection.c: The modified type encoding was causing build
13055         problems. Reverted for now.
13056         
13057 2004-05-28  Jackson Harper  <jackson@ximian.com>
13058
13059         * reflection.c/h: Take an assembly ref so that we dont create
13060         fully qualified names when encoding types in the same assembly as
13061         the custom attribute being emitted.
13062         * appdomain.c: Increment version number.
13063         
13064 2004-05-26  Duncan Mak  <duncan@ximian.com>
13065
13066         * icall.c
13067         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
13068         Set the full version number (major, minor, build, revision).
13069
13070 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
13071
13072         * marshal.c (emit_struct_conv): increment src/dst after blit
13073         (mono_marshal_get_managed_wrapper,
13074         mono_marshal_get_native_wrapper): make sure we have marshalling
13075         info before marshalling params (info computation affects
13076         blittable)
13077
13078         * class.c (class_compute_field_layout): correctly deal with
13079         blittable
13080         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
13081         value types (as per what windows dows by default)
13082         (mono_class_setup_mono_type): System.ValueType is blittable
13083         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
13084         blittable
13085
13086         * marshal.c (mono_marshal_load_type_info): flag types  as
13087         non-blittable if the native layout doesn't match the managed
13088         layout
13089
13090 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13091
13092         * appdomain.c: don't add stuff in the private search path that is
13093         above the application base. If application base is not set, there's
13094         no private search path.
13095
13096 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
13097
13098         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
13099         byref struct arguments in native->managed marshalling.
13100
13101 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
13102
13103         * marshal.c (mono_marshal_get_runtime_invoke): correctly
13104         cache methods using signature (special case for methods
13105         that are value type or string class)
13106         
13107         * image.c (mono_image_close): clean up allocated GSList's
13108         in runtime_invoke_cache.
13109
13110 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13111
13112         * mono-config.c: set the correct path for mono_cfg_dir on windows when
13113         there's no MONO_CFG_DIR environment variable defined.
13114
13115 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13116
13117         * threads.c: windows version must be >= 0x0500 to include OpenThread.
13118
13119 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
13120
13121         * threadpool.c: Really wait for 500ms after the async call, even if the wait
13122           is interrumped.
13123         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
13124           before waiting for it, and call CloseHandle after the wait to unref it.
13125           This will make sure that handles are not disposed too early.
13126
13127 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13128
13129         * appdomain.c:
13130         * appdomain.h:
13131         * icall.c: removed
13132         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
13133         needed now.
13134
13135         * object.c: se the application_base only for the domain that runs
13136         Main. Fixes bug #59216,
13137
13138 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13139
13140         * appdomain.c:
13141         * object.c: only the domain in which Main is run have
13142         SetupInformation.ConfigurationFile set, so moved a few lines from
13143         appdomain.c to object.c.
13144
13145 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13146
13147         * appdomain.c: we tried to load [name].(dll|exe), but according
13148         to bug #57710, we must also try [culture]/[name].(dll|exe) and
13149         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
13150         There's a test case attached to bug #58922.
13151
13152 2004-05-27  Dick Porter  <dick@ximian.com>
13153
13154         * icall.c:
13155         * file-io.c: Implemented icalls for locking and unlocking regions
13156         in a file.
13157         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
13158         FALSE on error (fixes both compiler warning and real bug.)
13159
13160 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
13161
13162         * culture-info-tables.h: reflecting locale-builder updates.
13163
13164           (Added missing ChangeLog entry for 05/26)
13165
13166 2004-05-27  Jackson Harper  <jackson@ximian.com>
13167
13168         * locales.c: Fix some cut and paste errors.
13169         
13170 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13171
13172         * mono-config.c: set the correct path for config. directory on windows.
13173
13174 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
13175
13176         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
13177           on win32.
13178
13179 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
13180
13181         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
13182         from pinvoke functions.
13183         
13184         * marshal.c (mono_ftnptr_to_delegate): Implement this.
13185
13186 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
13187
13188         * culture-info-tables.h: reflecting locale-builder updates.
13189
13190 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
13191
13192         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
13193         #59086.
13194
13195 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
13196
13197         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
13198         * icall.c: Modified icalls for RNG.
13199         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
13200         Windows (CryptoAPI).
13201
13202 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
13203
13204         * locales.c: Fix build.
13205
13206 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
13207
13208         * culture-info-tables.h: reflecting locale-builder updates.
13209
13210 2004-05-25  Jackson Harper  <jackson@ximian.com>
13211
13212         * locales.c: When creating the current culture use the $LANGs
13213         specific culture. So DateTimeFormat and NumberFormat entries are created.
13214         
13215 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
13216
13217         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
13218         a char array as parameter.
13219
13220 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
13221
13222         * image.c: In mono_image_open(), always use an absolute path name to
13223           look for already loaded images.
13224
13225 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
13226
13227         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
13228         missing in the windows build (like older cygwin include files).
13229
13230 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
13231
13232         * icall.c: Fixed check for possible integer overflow in Buffer_
13233         BlockCopy icall. Replaced comments style // by /* */.
13234
13235 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
13236
13237         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
13238         
13239         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
13240         check after MONO_VTADDR. Fixes pinvoke2.exe.
13241
13242         * marshal.h marshal.c metadata.h: Add beginnings of support for
13243         ftnptr -> delegate marshalling.
13244
13245 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
13246
13247         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
13248         * threads.c: Fix warnings.
13249
13250 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
13251
13252         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
13253         * icall.c: Registered icalls for Suspend and Resume.
13254         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
13255           Thread.Abort.
13256         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
13257         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
13258         * process.c: Use WaitForSingleObjectEx.
13259         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
13260           checkpoints.
13261         * threads.c, threads.h: Make use of new Ex wait methods. Improved
13262           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
13263           for Suspend and Resume. Added new mono_thread_stop, used for stoping
13264           background threads. Added basic support for Abort in Windows.
13265           Start new threads using a managed delegate invoke wrapper. This wrapper
13266           has an interruption checkpoint that is needed since an interruption
13267           can be requested before the thread leaves the unmanaged code that starts 
13268           the thread.
13269         * marshal.c: Added interruption checkpoint after every native call, and
13270           also before managed calls for wrappers called from unmanaged code to
13271           go into managed code.
13272         * object.h: Added new field in MonoThread to keep track of interruption
13273           requests.
13274
13275 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
13276
13277         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
13278         calls.
13279
13280 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13281
13282         * appdomain.c:
13283         * assembly.c:
13284         * gc.c:
13285         * locales.c:
13286         * mono-config.c:
13287         * rand.c: getenv -> g_getenv (windows!)
13288
13289         * process.c: complete_path is also used on non-windows platforms.
13290
13291 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13292
13293         * icall.c: new signature for Process_Start.
13294
13295         * process.[ch]: new signature for Process_Start. If we're on windows
13296         and UseShellExecute is false, we have to search for the program by
13297         ourselves if we don't get a full path.
13298
13299 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
13300
13301         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
13302         marshalling and call CleanUpNativeData if needed. Fixes #58646.
13303
13304 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13305
13306         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
13307         Fixes bug #58373.
13308
13309 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13310
13311         * process.c: use double quotes to quote program name and arguments on
13312         windows. Fixes bug #58575.
13313
13314 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13315
13316         * file-io.c: don't return "." and ".." when using windows Find*File.
13317
13318 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
13319
13320         * marshal.c: Don't pass wrappers to message init because method 
13321         addressed used to lookup metadata. part of remoting[2|3] fix.
13322
13323 2004-05-15  Jackson Harper  <jackson@ximian.com>
13324
13325         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
13326         path is essentially the same as MONO_PATH except that it points to
13327         GACs instead of lib directories.
13328         * loader.h: The user gac is gone so we dont need function to
13329         enable/disable it.
13330         * mono-config.c: user gac option is now gone.
13331         
13332 2004-05-15  Jackson Harper  <jackson@ximian.com>
13333
13334         * culture-info.h: Make defines more consistent, add calendar data
13335         to the culture info table.
13336         * culture-info-tables.h: Add basic calendar data. Basically
13337         everyone gets default gregorian until all the data is
13338         updated.
13339         * locales.c: Use the new consistent defines. Set calendar data for
13340         culture info objects.
13341         * object.h: add a field for calendar data to CultureInfo
13342         
13343 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
13344
13345         * image.c: image->runtime_invoke_cache is keyed on signatures now.
13346         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
13347         a signature.
13348         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
13349         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
13350         an extra param that is the pointer of the method to invoke. The IL for
13351         the invoke method is no longer specific to the method, but to the
13352         signature of the method. Thus, we can share the same code for multiple
13353         methods. This reduces the number of methods that have to be compiled.
13354
13355 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
13356
13357         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
13358
13359         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
13360
13361         * icall.c: Optimize Buffer.BlockCopy.
13362
13363 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13364
13365         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
13366         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
13367         quote). Changed them to "MMMM yyyy".
13368
13369 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
13370
13371         * rand.c
13372         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
13373
13374 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
13375
13376         * reflection.h: Updated after changes to managed structures.
13377
13378         * appdomain.c: Bump corlib version.
13379
13380 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13381
13382         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
13383         windows.
13384
13385 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13386
13387         * Makefile.am: link to ../os/libmonoos.la on windows.
13388
13389         * assembly.c:
13390                 -If MONO_DEBUG, warn about non-existing directories in
13391                 MONO_PATH.
13392                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
13393                 compile time variable.
13394                 -Removed init_default_path and call mono_set_rootdir from
13395                 libmonoos.a instead (windows only).
13396
13397         * assembly.h: declare mono_assembly_getrootdir().
13398
13399         * domain.c:
13400         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
13401
13402         * loader.c: s/getenv/g_getenv/
13403
13404 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
13405
13406         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
13407
13408         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
13409
13410         * metadata.h: Add new marshalling conversions.
13411
13412         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
13413         function.
13414
13415         * reflection.c (mono_reflection_get_type): Lookup the type in all
13416         modules of a multi-module assembly. Fixes #58291.
13417
13418 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
13419
13420         * threads.c: Before aborting a background, set the StopRequested
13421         state.  This avoids throwing the Abort exception.
13422         In mono_thread_manage, don't continue with the shutdown until all
13423         aborted threads have actually stopped.
13424
13425 2004-05-10  Jackson Harper  <jackson@ximian.com>
13426
13427         * locales.c: Remove the modifier from culture names.
13428         
13429 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13430
13431         * Makefile.am: monosn is not installed any more. It has been deprecated
13432         in favor of sn.
13433
13434 2004-05-07  Jackson Harper  <jackson@ximian.com>
13435
13436         * locales.c
13437         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
13438         Fix array construction, add bailout if the length is 0.
13439
13440 2004-05-07  Dick Porter  <dick@ximian.com>
13441
13442         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
13443         machine doesn't have a DNS entry.  Patch by Urs Muff
13444         (umuff@quark.com), fixes bug 57928.
13445
13446 2004-05-06  Jackson Harper  <jackson@ximian.com>
13447
13448         * reflection.c: Handle null PublicTokens properly. alloc mem for
13449         assembly names culture so we dont crash when freeing it.
13450         
13451 2004-05-06  Jackson Harper  <jackson@ximian.com>
13452
13453         * assembly.c: Check the usergac when loading with partial names.
13454         
13455 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
13456
13457         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
13458         does nothing for now (not required for Linux/Windows) but the class
13459         library can call it (and a newer or modified runtime could need it).
13460         * icall.c: Registred icall.
13461
13462 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13463
13464         * loader.c: prints a message on module loading error we set MONO_DEBUG
13465         environment variable.
13466
13467 2004-05-05  Jackson Harper  <jackson@ximian.com>
13468
13469         * appdomain.c: Handle PublicKeyToken=null properly.
13470         
13471 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
13472
13473         * environment.c|h: Added icall ves_icall_System_Environment_
13474         GetOSVersionString to get the current OS version as a string.
13475         * icall.c: Registred icall.
13476
13477 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
13478
13479         * object.c: in mono_object_get_virtual_method(), take into account that
13480         non-virtual methods don't have a slot in the vtable. Check needed when
13481         the object is a proxy.
13482
13483 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
13484
13485         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
13486         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
13487
13488         * object.c (mono_class_compute_gc_descriptor): Fix warning.
13489
13490         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
13491         passed when a valuetype is expected.
13492
13493         * object.c (mono_unhandled_exception): Only set the exit code if the
13494         exception happens in the main thread. Fixes thread5.exe.
13495
13496         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
13497         invalid names. Fixes #58047.
13498
13499 2004-05-03  Jackson Harper  <jackson@ximian.com>
13500
13501         * assembly.c: This line was committed accidently and is unneeded.
13502         
13503 2004-05-03  Jackson Harper  <jackson@ximian.com>
13504
13505         * icall.c: Add new icall for Assembly::LoadWithPartialName
13506         * assembly.c/.h: new function that probes the GAC to load partial
13507         assembly names by Paolo Molaro.
13508         
13509 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13510
13511         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
13512         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
13513         (type_get_fully_qualified_name): Added PublicKeyToken when building a
13514         full type name.
13515
13516 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13517
13518         * appdomain.c: fixed check for 'neutral' culture and removed warning.
13519         * reflection.c: fix bug when parsing a full type name and Version is not
13520         the last thing in the string.
13521
13522 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
13523
13524         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
13525         crashes when it is freed.
13526
13527 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13528
13529         * assembly.c: print the compat warning to stderr.
13530
13531 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
13532
13533         * assembly.c (mono_assembly_load_references): Add a compatibility
13534         hack to run old applications that might be still referencing the
13535         3300-based assemblies, only do this for System.xxx.
13536
13537 2004-05-01  Jackson Harper  <jackson@ximian.com>
13538
13539         * appdomain.c: If the culture is neutral we set it to "".
13540         
13541 2004-04-29  Jackson Harper  <jackson@ximian.com>
13542
13543         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
13544
13545 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
13546  
13547         * string-icalls.c: added low overhead function for copying chars
13548         * icall.c: added needed icall for the above function
13549  
13550 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13551
13552         * icall.c: fix return value of get_global_assembly_cache.  Implemented
13553         Environment.GetLogicalDrives.
13554
13555 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
13556
13557         * rand.c: try and talk to egd or prngd
13558         for random bytes if opening devices fail.
13559
13560 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
13561
13562         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
13563         alignment for the type using the native alignment of its members 
13564         instead of using klass->min_align.
13565
13566         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
13567
13568 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13569
13570         * file-io.c:
13571         * socket-io.c: added check for sys/aio.h.
13572
13573 2004-04-28  Dick Porter  <dick@ximian.com>
13574
13575         * threads.c: Don't abort a thread thats already aborting, when
13576         terminating everything.
13577
13578 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13579
13580         * icall.c: added 2 new async calls for Socket.
13581
13582         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
13583         IO on *nix systems.
13584
13585         * threadpool.c: removed unused variable.
13586
13587 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
13588
13589         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
13590
13591 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
13592
13593         * locales.c: put back string_invariant_tolower () and
13594         string_invariant_toupper ().
13595
13596 2004-04-26 David Waite <mass@akuma.org>
13597
13598         * file-io.h:
13599         * socket-io.h:
13600         * threads.h:
13601         * unicode.h: remove comma from end of enumeration declarations
13602
13603 2004-04-26 David Waite <mass@akuma.org>
13604
13605         * debug-mono-symfile.h:
13606         * decimal.c:
13607         * mono_debug.h:
13608         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
13609
13610
13611 2004-04-26  Jackson Harper  <jackson@ximian.com>
13612
13613         * appdomain.c: Increment version number.
13614         
13615 2004-04-26  Jackson Harper  <jackson@ximian.com>
13616
13617         * appdomain.c: Set assembly references public token value when
13618         PublicKeyToken is specified, not the hash_value. Free public token
13619         values when free assembly name data. Previously the public key
13620         token was hex decoded, however we are using hex encoded public key
13621         tokens, so this is not neccasary.
13622         * assembly.c: Lookup assemblies in the gac if their public token
13623         value is set. Add function to allow enabling user gac
13624         lookups. Specify whether or not the assembly was loaded from the
13625         GAC. Compare full assembly names when checking the cache for
13626         assemblies (Temporarily disabled see comment in code). Remove
13627         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
13628         specifies trace-loader they get extra info to stdout on the
13629         loading of assemblies.
13630         * image.h: Add a field for an assembly references public token
13631         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
13632         whether an assembly has been loaded from the GAC.
13633         * image.c: Remove a corlib -> mscorlib name mapping.
13634         * loader.h: Add function to enable/disable the user gac.
13635         * mono-config.c: Check if the usergac is enabled in the config
13636         file.
13637         * icall.c: New icall to determine whether or not an assembly has
13638         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
13639         * tabldefs.h: Add constant for assemblyref flag that specifies a
13640         full public key is used instead of a public token.
13641         * reflection.c: Remove mscorlib -> corlib mappings. Set
13642         PublicTokenValue instead of hash value. This value is a hex
13643         string so it does not need to be expanded.
13644
13645 2004-04-26  Martin Baulig  <martin@ximian.com>
13646
13647         * mono-debug-debugger.c (mono_debugger_initialize): Set
13648         `mono_debugger_initialized' before calling mono_debug_lock().
13649
13650 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
13651
13652         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
13653           InternalToUpper/InternalToLower.
13654         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
13655           removed invariant culture shortcut.  This is now done in managed code.
13656         * locales.c: (string_invariant_toupper/tolower) removed.
13657
13658 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13659
13660         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
13661         Added Poll internal call.
13662
13663         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
13664         call for Poll. Select was too heavy for polling a single socket.
13665
13666         * threadpool.[ch]: added mono_threadpool_cleanup.
13667         * threads.c: use it. Don't use Thread_Abort on windows.
13668
13669 2004-04-23  Martin Baulig  <martin@ximian.com>
13670
13671         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
13672
13673 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
13674
13675         * icall.c: Registred new icalls for key pair protection and added an
13676         icall for Environment.GetFolderPath on Windows.
13677         * security.c|h: Added new icalls for key pair protection.
13678
13679 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13680
13681         * socket-io.c: don't display the non-supported family warning for known
13682         families. Now this is not displayed on windows when checking support
13683         for IPv4/IPv6.
13684
13685 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13686
13687         * class.c: don't display the layout warning for static fields.
13688
13689 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
13690
13691         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
13692         * locales.c, locales.h: Added new icalls for culture-specific
13693         Char.ToLower and Char.ToUpper.
13694
13695 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13696
13697         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
13698         by David Waite.
13699
13700 2004-04-20  Martin Baulig  <martin@ximian.com>
13701
13702         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
13703         of the type name before passing it to mono_reflection_type_from_name().
13704
13705 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
13706
13707         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
13708         encodings here. Fixes #56965.
13709
13710 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
13711
13712         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
13713         fix test on strstr result not that I can see anything that
13714         relies on the result.
13715
13716 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
13717
13718         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
13719         Fixes #57081.
13720
13721         * marshal.c (mono_marshal_get_string_encoding): New helper function.
13722
13723         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
13724         function to determine which marshalling to use for strings. Fixes
13725         #56965.
13726
13727         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
13728
13729         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
13730
13731 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
13732
13733         * icall.c: #include mono-config.h
13734
13735 2004-04-15  Jackson Harper  <jackson@ximian.com>
13736
13737         * culture-info-tables.h: Fix date formats for en-US culture.
13738         
13739 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
13740
13741         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
13742         ThreadPool.SetMinThreads.
13743         * threadpool.c: Implemented ThreadPool.GetMinThreads and
13744         ThreadPool.SetMinThreads.
13745
13746 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
13747
13748         * mono-config.c: also load the .config file in the directory
13749         where the assembly was found.
13750
13751 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
13752
13753         * assembly.c: load per-assembly config files.
13754         * icall.c: decrapified code to get the config dir and moved to
13755         mono-config.c.
13756         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
13757         per-assembly config files. When doing a dll map lookup give precedence
13758         to the per-assembly data.
13759
13760 2004-04-14  Martin Baulig  <martin@ximian.com>
13761
13762         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
13763         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
13764         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
13765
13766         * mono-debugger-debugger.c: While the debugger is locked, remember
13767         whether the symbol tables have changes and send one single
13768         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
13769
13770 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
13771
13772         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
13773
13774         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
13775         function.
13776
13777         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
13778         account when marshalling string arrays. Fixes #56965.
13779
13780 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
13781
13782         * icall.c: Add new icalls mapping for security.
13783         * security.c|h: Add internal calls for WindowsIdentity,
13784         WindowsImpersonationContext and WindowsPrincipal.
13785
13786 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
13787
13788         * class.c: Added comment to ensure the System.MonoDummy class
13789         is removed when no longer necessary
13790
13791 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
13792
13793         * appdomain.c: Pass arguments to the bootstraping exceptions to
13794         minimize JITed methods at boot
13795
13796         * metadata.c (mono_exception_from_name_two_strings): Allow for the
13797         second string to be null.
13798
13799         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
13800         Change the protocol to minimize the JIT methods at startup.  Now
13801         it Returns the internal codepage, if the value of "int_code_page"
13802         is 1 at entry, and we can not compute a suitable code page
13803         number, returns the code page as a string.
13804
13805 2004-04-13  Jackson Harper  <jackson@ximian.com>
13806
13807         * culture-info-tables.h: Fix number of decimal digits for all
13808         english locales.
13809
13810 2004-04-13  Jackson Harper  <jackson@ximian.com>
13811
13812         * icall.c: Clairfy out of sync error message. It is not always
13813         your corlib that is out of sync.
13814
13815 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
13816
13817         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
13818         properties when only the set accessor is overriden. Fixes #55874.
13819
13820 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
13821
13822         * assembly.c (mono_assembly_load_references): Make this thread safe.
13823         Fixes #56327.
13824
13825 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
13826
13827         * monosn.c: Add missing initialization calls.
13828
13829 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
13830
13831         * locales.c:
13832         ves_icall_System_Globalization_CultureInfo_construct_number_format
13833         Fix g_assert so it compiles on fussier compilers re int/ptr
13834         mismatch
13835
13836 2004-04-08  Dick Porter  <dick@ximian.com>
13837
13838         * socket-io.h:
13839         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
13840         53992.  Also rearrange the code so that the internal calls return
13841         an error value and exceptions are thrown from managed code.
13842
13843         * icall.c: Add type info to the socket icalls.
13844
13845 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13846
13847         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
13848         owes me a beer.
13849
13850 2004-04-07  Martin Baulig  <martin@ximian.com>
13851
13852         * class.c (mono_class_from_generic_parameter): Don't default
13853         `klass->parent' to `mono_defaults.object_type'.
13854
13855 2004-04-07  Martin Baulig  <martin@ximian.com>
13856
13857         * reflection.c (mono_reflection_initialize_generic_parameter): Set
13858         `param->pklass->reflection_info'.       
13859
13860 2004-04-07  Jackson Harper  <jackson@ximian.com>
13861
13862         * culture-info-tables.h: Fix date separator symbol.
13863         
13864 2004-04-07  Martin Baulig  <martin@ximian.com>
13865
13866         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
13867         from System.Type to System.MonoType.
13868
13869 2004-04-07  Martin Baulig  <martin@ximian.com>
13870
13871         * reflection.h
13872         (MonoReflectionGenericParam): Added `has_reference_type' and
13873         `has_value_type' fields.
13874
13875         * reflection.c (mono_image_get_generic_param_info): Encode the
13876         correct flags if we have the `class' or `struct' constraint.
13877
13878 2004-04-07  Martin Baulig  <martin@ximian.com>
13879
13880         * reflection.h
13881         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
13882
13883 2004-04-07  Jackson Harper  <jackson@ximian.com>
13884
13885         * appdomain.c: Revert extra patches, just wanted to bump the
13886         version number.
13887         
13888 2004-04-07  Jackson Harper  <jackson@ximian.com>
13889
13890         * Makefile.am: Add culture-info private headers.
13891         * icall.c: Add new icalls for contructing locales.
13892         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
13893         * locales.h: Declare new culture info construction methods.
13894         * object.h: Add new fields used to avoid the CultureMap to
13895         MonoCultureInfo.
13896         * culture-info.h: Definition of structs used in the culture info
13897         tables.
13898         * culture-info-tables.h: Autogenerated tables that contain culture
13899         info data. This file was generated with the locale-builder tool.
13900         * appdomain.c: Incement corlib version number.
13901         
13902 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
13903
13904         * appdomain.c: (mono_runtime_init) move mono_thread_init
13905         to before mono_object_new calls so critical sections
13906         are initialized before use.
13907
13908 2004-04-07  Martin Baulig  <martin@ximian.com>
13909
13910         * icall.c
13911         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
13912         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
13913         (ves_icall_MonoGenericParam_initialize): Removed.
13914         (monogenericparam_icalls): Removed.
13915         (generictypeparambuilder_icalls): Added new table for
13916         System.Reflection.Emit.GenericTypeParameterBuilder.
13917
13918         * reflection.c
13919         (mono_reflection_define_generic_parameter): Removed.
13920         (mono_reflection_initialize_generic_parameter): This is now called
13921         from GenericTypeParameterBuilder's .ctor.
13922
13923 2004-04-06  Martin Baulig  <martin@ximian.com>
13924
13925         * class.c (mono_class_init): Don't inflate nested classes in a
13926         generic instance.
13927         (mono_type_get_name_recurse): Include the generic arguments for
13928         generic instances and generic type declarations.
13929         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
13930         (_mono_class_get_instantiation_name): Removed.
13931         (mono_class_create_generic): Always use `gklass->name' as our name.
13932
13933         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
13934
13935         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
13936         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
13937         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
13938         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
13939         closed generic methods here.
13940
13941         * reflection.c
13942         (mono_reflection_generic_inst_get_nested_types): Removed.
13943         (inflate_mono_method): Copy the generic parameters from the
13944         MonoMethodHeader into out MonoGenericMethod.
13945
13946 2004-04-06  Martin Baulig  <martin@ximian.com>
13947
13948         * row-indexes.h
13949         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
13950
13951         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
13952
13953         * reflection.c (build_compressed_metadata): If we have any entries
13954         in the GenericParam, MethodSpec or GenericParamConstraint tables,
13955         set the header version to 1.1.
13956
13957 2004-04-06  Martin Baulig  <martin@ximian.com>
13958
13959         * class.c (mono_class_init): If we're a generic instance,
13960         initialize our nested classes, too.
13961         (_mono_class_get_instantiation_name): Deal with the new `!%d'
13962         suffix. 
13963
13964 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13965
13966         * process.c: quote the argument passed to the shell on windows.
13967
13968 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
13969
13970         * threads.c (mono_alloc_special_static_data): Allow this to be
13971         called during startup.
13972
13973 2004-04-02  Martin Baulig  <martin@ximian.com>
13974
13975         * icall.c
13976         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
13977
13978 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
13979
13980         * icall.c: Fix build.
13981
13982 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
13983
13984         * Makefile.am: Added security.c|h.
13985         * icall.c: Added icall for get_UserName;
13986         * security.c: New file for security related icalls. Added function
13987         get_UserName for System.Environment (fix #56144).
13988         * security.h: New. Header file for security.c
13989
13990 2004-04-02  Dick Porter  <dick@ximian.com>
13991
13992         * icall.c: Deleted the icalls that were obsoleted some time ago
13993         by the ICU string code, and which were mixed into the icall
13994         rearranging.  Fixes bug 55969.
13995
13996         * string-icalls.h: 
13997         * string-icalls.c: Deleted the code that those icalls reference.
13998
13999 2004-04-01  Martin Baulig  <martin@ximian.com>
14000
14001         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
14002
14003         * class.c (mono_class_from_generic_parameter): Don't set 
14004         TYPE_ATTRIBUTE_INTERFACE.
14005         (my_mono_class_from_generic_parameter): Likewise.
14006
14007 2004-04-01  Martin Baulig  <martin@ximian.com>
14008
14009         * loader.c (find_method): Added an optional `MonoClass *ic'
14010         argument to search in a specific interface.
14011         (mono_get_method_constrained): New public function.
14012
14013 2004-04-01  Martin Baulig  <martin@ximian.com>
14014
14015         * reflection.c (mono_image_get_generic_field_token): Use the
14016         `handleref' cache here.
14017
14018 2004-04-01  Martin Baulig  <martin@ximian.com>
14019
14020         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
14021
14022         * reflection.c (create_generic_typespec): Use the `typespec' hash
14023         here, not the `typeref' one.    
14024
14025 2004-04-01  Martin Baulig  <martin@ximian.com>
14026
14027         * class.c (mono_class_inflate_generic_type): Moved the
14028         functionality into a new static inflate_generic_type() which
14029         returns NULL if it didn't do anything.  Only increment the
14030         `mono_stats.inflated_type_count' if we actually inflated
14031         something.
14032         (mono_class_get_full): Check the classes type to see whether we
14033         need to inflate it; also inflate MONO_TYPE_(M)VAR.
14034
14035 2004-04-01  Jackson Harper  <jackson@ximian.com>
14036
14037         * reflection.c: Set culture for assembly references.
14038         
14039 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
14040
14041         * reflection.[ch], icall.[ch], Fix support for pinning variables.
14042
14043 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14044
14045         * assembly.c:
14046         (do_mono_assembly_open): the critical section also covers
14047         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
14048
14049 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14050
14051         * threads.c:
14052         (mono_manage_threads): abort the background threads when finishing.
14053         Fixes bug #47232.
14054
14055 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14056
14057         * gc.c: only close the done_event handle if there was no timeout.
14058         C-ified comments.
14059
14060 2004-03-30  Martin Baulig  <martin@ximian.com>
14061
14062         * icall.c (icall_entries): It's called "System.Activator", not
14063         "System.Activation".    
14064
14065 2004-03-30  Martin Baulig  <martin@ximian.com>
14066
14067         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
14068         (mono_class_create_from_typespec): Likewise.
14069
14070 2004-03-30  Martin Baulig  <martin@ximian.com>
14071
14072         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
14073         `has_ctor_constraint' and `initialized'.
14074
14075 2004-03-30  Martin Baulig  <martin@ximian.com>
14076
14077         * reflection.c (encode_new_constraint): New static function to add
14078         the constructor constraint attribute to a type parameter.
14079         (encode_constraints): Call encode_new_constraint() if necessary.
14080
14081         * reflection.h
14082         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
14083
14084         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
14085         
14086 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
14087
14088         * reflection.c, icall.c: add support for pinning variables. 
14089
14090 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
14091
14092         * marshal.c (mono_marshal_get_managed_wrapper):
14093         init bool local with zero rather than null.
14094
14095 2004-03-29  Martin Baulig  <martin@ximian.com>
14096
14097         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
14098         the "official" behavior here.
14099         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
14100
14101 2004-03-29  Martin Baulig  <martin@ximian.com>
14102
14103         * icall.c: Reflect latest API changes.
14104
14105 2004-03-29  Martin Baulig  <martin@ximian.com>
14106
14107         * loader.c (mono_get_method_from_token): Also call
14108         mono_metadata_load_generic_params () for abstract and interface
14109         methods; replace the type arguments in the method signature with
14110         the ones which are loaded from the metadata.
14111
14112 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
14113
14114         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
14115         of the lock is not the current thread. MS.NET don't do it, in spite of
14116         what the documentation says. See bug #56157.
14117
14118 2004-03-28  Martin Baulig  <martin@ximian.com>
14119
14120         * class.c (mono_class_init): Don't call init_properties() and
14121         init_events() for generic instances; set `prop->parent' when
14122         inflating properties.
14123
14124         * reflection.c (mono_generic_inst_get_object): Call
14125         `mono_class_init (ginst->klass)'.
14126         (mono_type_get_object): Only create a MonoGenericInst if your
14127         generic type is a TypeBuilder.
14128         (do_mono_reflection_bind_generic_parameters): Only set
14129         `ginst->is_dynamic' if our generic type is a TypeBuilder.
14130
14131 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
14132
14133         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
14134         Fixes #56091.
14135
14136 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14137
14138         * icall.c: added Kill_internal icall.
14139         * process.[ch]: added Kill_internal icall.
14140
14141 2004-03-25  Martin Baulig  <martin@ximian.com>
14142
14143         * class.h (MonoStats): Added `generic_instance_count',
14144         `inflated_method_count', `inflated_type_count' and
14145         `generics_metadata_size'.       
14146
14147 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14148
14149         * reflection.c: no warnings now.
14150
14151 2004-03-25  Martin Baulig  <martin@ximian.com>
14152
14153         * class.c (mono_class_get_full): New public function; does a
14154         mono_class_get(), but also takes a `MonoGenericContext *'.
14155
14156         * loader.c (mono_field_from_memberref): Renamed to
14157         `field_from_memberref', made static and added `MonoGenericContext *'
14158         argument.
14159         (mono_field_from_token): Added `MonoGenericInst *' argument.
14160         (method_from_memberef): Likewise.
14161         (mono_get_method_from_token): Likewise.
14162         (mono_get_method_full): New public function; does a
14163         mono_get_method(), but also takes a `MonoGenericContext *'.
14164
14165         * verify.c (mono_method_verify): Get the method's generic context
14166         and pass it to mono_field_from_token(), mono_get_method_full() and
14167         mono_class_get_full().
14168
14169 2004-03-25  Martin Baulig  <martin@ximian.com>
14170
14171         * class.c (mono_class_inflate_generic_type): Take a
14172         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
14173         `MonoGenericMethod *'.
14174
14175 2004-03-25  Martin Baulig  <martin@ximian.com>
14176
14177         * loader.h (MonoMethodInflated): Store the MonoGenericContext
14178         instead of the MonoGenericMethod here.
14179
14180 2004-03-25  Martin Baulig  <martin@ximian.com>
14181
14182         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
14183         each time we create a new MonoGenericInst, we also create a new
14184         context which points back to us.
14185
14186         * class.c (inflate_method): Use `ginst->context' instead of
14187         creating a new context.
14188
14189         * loader.c (method_from_memberref): Use
14190         `klass->generic_inst->context' instead of creating a new context.
14191
14192 2004-03-25  Martin Baulig  <martin@ximian.com>
14193
14194         * class.h (MonoGenericContext): New struct.
14195         (MonoGenericMethod): Removed `generic_inst'.
14196
14197         * class.c (mono_class_inflate_generic_method): Take a
14198         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
14199
14200 2004-03-25  Martin Baulig  <martin@ximian.com>
14201
14202         * loader.h (MonoMethodInflated): New typedef.
14203
14204         * metadata.h (MonoMethodSignature): Removed `gen_method', make
14205         `generic_param_count' consume just 30 bits, added `is_inflated'
14206         and `has_type_parameters' flags (one bit each).
14207
14208         * class.c (mono_class_inflate_generic_method): Create a
14209         MonoMethodInflated instead of a MonoMethodNormal and set
14210         `is_inflated' in the method signature.
14211
14212         * class.h (MonoGenericMethod): Removed `generic_method'.
14213
14214 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
14215
14216         * image.c: Make sure the name of a MonoImage is always an absolute path.
14217           This fixes bug #54415.
14218
14219 2004-03-24  Martin Baulig  <martin@ximian.com>
14220
14221         * class.c (mono_class_setup_vtable): If we're a generic instance,
14222         use our generic type's vtable size.
14223
14224 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
14225
14226         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
14227         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
14228         problems.
14229
14230 2004-03-23  Martin Baulig  <martin@ximian.com>
14231
14232         * class.h (MonoDynamicGenericInst): Added `int count_events' and
14233         `MonoEvent *events'.
14234
14235         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
14236         (typebuilder_icalls): Added "get_event_info"; calls
14237         mono_reflection_event_builder_get_event_info(). 
14238
14239         * reflection.c (mono_reflection_generic_inst_initialize): Added
14240         `MonoArray *events'.
14241         (mono_reflection_event_builder_get_event_info): New function.
14242
14243 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
14244
14245         * object.h: add mono_type_initialization_init
14246
14247         * object.c (mono_runtime_class_init): 
14248         implement class constructor synchronization rules
14249         to cope with threading issues.  
14250         add mono_type_initialization_init
14251
14252         * appdomain.c (mono_runtime_init): call 
14253         mono_type_initialization_init
14254
14255         * class.h: removing initializing field from MonoVTable
14256
14257 2004-03-23  Martin Baulig  <martin@ximian.com>
14258
14259         * class.c (my_mono_class_from_generic_parameter): Use
14260         `param->name' if it's not NULL. 
14261
14262 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
14263
14264         * class.c: do not insert non-virtual methods in the vtable.
14265         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
14266         that means the method is non-virtual. This never would have
14267         happened before.
14268
14269 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
14270
14271         * profiler.c: Added lock for accessing coverage_hash.
14272
14273 2004-03-22  Martin Baulig  <martin@ximian.com>
14274
14275         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
14276         `method->method->signature->generic_param_count != 0' to make it
14277         work for interface methods.
14278
14279 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14280
14281         * process.c: quote the string passed to the shell using g_shell_quote.
14282
14283 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14284
14285         * threads.c:
14286         (mono_threads_manage): don't remove the finalizer thread and self
14287         from the threads hash table so that mono_thread_manage can be called
14288         more than once.
14289
14290 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14291
14292         * process.c: quote the arguments when UseShellExecute is true. Fixes
14293         bug #55790.
14294
14295 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14296
14297         * threads.c: set mono_thread_detach as a cleanup routine for every
14298         thread. This way it's always executed upon thread termination, either
14299         aborted or finished normally. No more xsp hangs!
14300
14301 2004-03-17  Martin Baulig  <martin@ximian.com>
14302
14303         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
14304         `int count_nested' and a `MonoType **nested'.
14305
14306         * reflection.c (mono_reflection_bind_generic_parameters): Moved
14307         most of the functionality into a new static
14308         do_mono_reflection_bind_generic_parameters() and don't take a
14309         `MonoType *nested_in' argument any more.  Don't compute nested
14310         types here.
14311         (mono_reflection_generic_inst_get_nested_types): New public method
14312         to get nested types.
14313
14314         * class.c (mono_class_create_generic): Set `klass->nested_in' if
14315         we're a nested class.
14316
14317         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
14318         mono_reflection_generic_inst_get_nested_types() to compute the
14319         nested types.
14320
14321 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
14322
14323         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
14324         descriptive error message under windows.
14325         
14326 2004-03-17  Martin Baulig  <martin@ximian.com>
14327
14328         * class.c (dup_type): Added `const MonoType *original' argument;
14329         copy the attrs from the original type.
14330
14331 2004-03-17  Martin Baulig  <martin@ximian.com>
14332
14333         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
14334         `m->generic_inst_cache' here.
14335
14336 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
14337
14338         * exception.h exception.c: Add stack_overflow_exception.
14339
14340 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14341
14342         * threadpool.c:
14343         (overlapped_callback): call SetEvent *after* invoking the callback.
14344         No need to call CloseHandle.
14345
14346 2004-03-16  Martin Baulig  <martin@ximian.com>
14347
14348         * reflection.c (mono_image_get_fieldref_token): Take a
14349         `MonoReflectionField *' instead of a `MonoClassField *' and a
14350         `MonoClass *'; store the `MonoReflectionField *' in the hash.
14351
14352 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14353
14354         * appdomain.c: don't add the culture to the filename we're looking for
14355         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
14356
14357 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14358
14359         * locales.c: don't ignore symbols when doing case insensitive compares.
14360         Thanks Dick! Fixes bug #54046.
14361
14362         * threads.c: surround 'threads' usage with enter/leave in
14363         mono_thread_manage.
14364
14365 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
14366
14367         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
14368         implicitly marshalled as [Out]. Fixes #55450.
14369
14370         (mono_marshal_get_runtime_invoke): Zero out the result if there is
14371         an exception.
14372
14373 2004-03-16  Martin Baulig  <martin@ximian.com>
14374
14375         * class.c (mono_class_from_generic_parameter): Use the actual
14376         parameter name. 
14377
14378 2004-03-16  Martin Baulig  <martin@ximian.com>
14379
14380         * reflection.c (type_get_signature_size): New static function.
14381         Compues the size of the type in a method signature.
14382         (method_get_signature_size): New static function; calls
14383         type_get_signature_size() to compute the actual size of the
14384         method's signature.
14385         (method_encode_signature): Use method_get_signature_size() to get
14386         the signature's size rather than using `nparams * 10'.
14387
14388 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14389
14390         * file-io.h: define here WapiOverlapped on windows. I don't want the
14391         regular OVERLAPPED one.
14392
14393         * file-io.c:
14394         * threadpool.c: somehow, BindIoCompletionCallback is not found.
14395         Disabling AIO on windows.
14396
14397 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14398
14399         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
14400         bug #55385.
14401
14402 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14403
14404         * appdomain.c: upgraded corlib version.
14405
14406         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
14407         and BeginWrite. Allow opening files for asynchrnous operations.
14408
14409         * file-io.h: new struct that maps FileStreamAsyncResult.
14410         * icall.c: added new icalls.
14411         * process.[ch]: support setting child process environment variables
14412         and use the SHELL or COMSPEC when UseShellExecute is true.
14413
14414         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
14415         callback for async. IO is here and also BindHandle.
14416
14417         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
14418         from here.
14419
14420 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
14421
14422         * reflection.c (create_custom_attr): Allow len == 0.
14423
14424         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
14425         computation on big-endian machines.
14426
14427 2004-03-13  Martin Baulig  <martin@ximian.com>
14428
14429         * class.h (MonoGenericInst): Added `int count_ifaces'.
14430
14431         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
14432         `ginst->count_ifaces' instead `klass->interface_count' since we
14433         may get called before the vtable is created.
14434
14435         * loader.c (mono_method_get_param_names): If we're a generic
14436         instance, return and don't initialize the class.
14437
14438         * reflection.c (mono_reflection_setup_generic_class): Don't call
14439         ensure_runtime_vtable().
14440         (mono_reflection_bind_generic_parameters): Set
14441         `ginst->count_ifaces'.
14442
14443 2004-03-11  Jackson Harper <jackson@ximian.com>
14444
14445         * icall.c:
14446         * unicode.c:
14447         * unicode.h: Remove unused System.Char icalls.
14448         
14449 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
14450
14451         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
14452         code when we P/Invoke the first library in Windows.Forms, instead
14453         of when we first open the assembly.
14454
14455         * assembly.c: Drop the lookup from here.
14456
14457 2004-03-10  Martin Baulig  <martin@ximian.com>
14458
14459         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
14460         class for properties, fields and events.  Finally fixes #54945.
14461
14462 2004-03-10  Martin Baulig  <martin@ximian.com>
14463
14464         * metadata.c (mono_metadata_class_equal): New static function;
14465         checks whether two generic instances or two generic parameters are
14466         equal.
14467         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
14468         compare classes.        
14469
14470 2004-03-10  Martin Baulig  <martin@ximian.com>
14471
14472         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
14473
14474         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
14475         argument and write it into the `reflection_info' field.
14476
14477         * icall.c
14478         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
14479         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
14480
14481 2004-03-09  Jackson Harper  <jackson@ximian.com>
14482
14483         * char-conversions.h: use 8 bits for numeric data its all we need
14484         * icall.c: numeric data is only 8 bits now.
14485
14486 2004-03-09  Martin Baulig  <martin@ximian.com>
14487
14488         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
14489
14490         * class.c (init_properties, init_events): Initialize the new
14491         `parent' field.
14492
14493         * reflection.c (typebuilder_setup_properties): Likewise.
14494         (typebuilder_setup_events): Likewise.
14495
14496         * reflection.h (MonoEventInfo): Replaced `parent with
14497         `declaring_type' and `reflected_type'.
14498
14499         * icall.c (ves_icall_get_property_info): Distinguish between
14500         declaring and reflected type.
14501         (ves_icall_get_event_info): Likewise.
14502
14503 2004-03-09  Martin Baulig  <martin@ximian.com>
14504
14505         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
14506         (ves_icall_Type_GetField): Correctly set field->klass.
14507
14508 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
14509
14510         * loader.h: Fix warning.
14511
14512 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
14513
14514         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
14515         library routine if present.  Notice that it will still continue
14516         executing even if its missing, for those working on the Gtk#
14517         edition of Windows.Forms.
14518
14519         * assembly.c (do_mono_assembly_open): If loading the
14520         System.Windows.Forms call mono_loader_wini_init.
14521
14522 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
14523
14524         * class.h: Added MonoRemoteClass struct.
14525         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
14526         function for MonoStrings.
14527         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
14528         Added internal call for getting the proxy type.
14529         * marshal.c: Get the type of transparent proxies from its remote_class.
14530         Added methods that generate the IL for type checks and casts:
14531         mono_marshal_get_isinst, mono_marshal_get_castclass, 
14532         mono_marshal_get_proxy_cancast.
14533         * marshal.h: Declaration of the previous new methods.
14534         * object.c: Added new moethods for creating and updating MonoRemoteClass
14535         instances: mono_remote_class, mono_upgrade_remote_class, 
14536         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
14537         * verify.c: FIx transparent_proxy_fields layout.
14538         * appdomain.c: Bump corlib version.
14539
14540 2004-03-04  Jackson Harper  <jackson@ximian.com>
14541
14542         * icall.c: Add icall to access char conversion tables.
14543         * char-conversions.h: Character conversion tables.
14544         * Makefile.am: Add char-conversions.h private header file.
14545         
14546 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
14547
14548         * appdomain.c (unload_thread_main): Increase unloading timeout to
14549         10 sec as a temporary workaround for Nant problems.
14550
14551 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
14552
14553         * gc.c: Add checks for GC_enable and GC_disable.
14554
14555         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
14556         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
14557         (bug #54988).
14558         
14559 2004-02-27  Martin Baulig  <martin@ximian.com>
14560
14561         * reflection.c (mono_reflection_bind_generic_parameters): Take a
14562         `MonoReflectionType *' instead of a `MonoType *'.
14563
14564 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
14565
14566         * gc.c (run_finalize): Avoid finalizing the object representing the
14567         finalizer thread.
14568         (finalizer_thread): Fix warning.
14569
14570 2004-02-25  Martin Baulig  <martin@ximian.com>
14571
14572         * class.c (_mono_class_get_instantiation_name): Added `int offset'
14573         argument for nested types.
14574         (mono_class_create_generic): Added support for nested generictypes.
14575
14576         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
14577         `GList *nested'.
14578
14579         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
14580
14581         * reflection.c (method_encode_signature): Increase the minimum
14582         value of `size' from 10 to 11.
14583         (mono_reflection_bind_generic_parameters): Take `int type_argc'
14584         and `MonoType **types' arguments instead of the `MonoArray
14585         *types'; added `MonoType *nested_in'.  Recursively instantiate
14586         nested classes. 
14587
14588 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
14589
14590         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
14591         stack_overflow_ex members which are used by exception handling.
14592
14593         * appdomain.c (mono_runtime_init): Initialize the new members.
14594
14595         * gc.c (mono_gc_enable): New helper function.
14596         * gc.c (mono_gc_disable): New helper function.
14597
14598 2004-02-23  Martin Baulig  <martin@ximian.com>
14599
14600         * icall.c: I must have been really stupid - make it actually work
14601         this time ;-)
14602
14603 2004-02-23  Martin Baulig  <martin@ximian.com>
14604
14605         * loader.c (method_from_memberref): Only inflate the method if
14606         it's in another klass.
14607
14608 2004-02-23  Martin Baulig  <martin@ximian.com>
14609
14610         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
14611         (mono_class_init): If we're a generic instance and an interface,
14612         compute `class->interface_id'; also create `class->interfaces'
14613         here and inflate them.
14614
14615         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
14616         `ginst->is_open'.
14617         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
14618
14619         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
14620
14621 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
14622
14623         * reflection.c (method_encode_code): Improved the error message
14624         generated by the exception.
14625
14626 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14627
14628         * icall.c: Martin did not do what he said in the ChangeLog for
14629         2004-02-18, but put back the changes for properties and events.
14630         Commenting those changes out again and adding comment to bug #54518.
14631         
14632         * process.c: removed warning.
14633
14634 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
14635
14636         * marshal.c (emit_struct_conv): Print an error message instead of
14637         asserting when a type does not have the StructLayout attribute.
14638
14639 2004-02-20  Martin Baulig  <martin@ximian.com>
14640
14641         * reflection.c (mono_type_get_object): Also use the cache for
14642         generic instances.
14643         (mono_reflection_bind_generic_parameters): Always compute
14644         `ginst->ifaces'.        
14645
14646 2004-02-20  Martin Baulig  <martin@ximian.com>
14647
14648         * class.h (MonoGenericMethod): Removed `klass'.
14649
14650         * class.c (mono_class_inflate_generic_method): Added `MonoClass
14651         *klass' argument.
14652
14653 2004-02-20  Martin Baulig  <martin@ximian.com>
14654
14655         * reflection.c (method_encode_methodspec): Actually use the
14656         uninflated signature for the memberref.
14657
14658 2004-02-20  Martin Baulig  <martin@ximian.com>
14659
14660         * class.h (MonoGenericMethod): Removed `declaring'.
14661
14662         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
14663         is NULL, compute it here.
14664
14665 2004-02-20  Martin Baulig  <martin@ximian.com>
14666
14667         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
14668
14669         * metadata.c (mono_metadata_generic_inst_hash): New method.
14670         (mono_metadata_generic_inst_equal): New method.
14671
14672         * reflection.c (mono_reflection_bind_generic_parameters): Use the
14673         `klass->image->generic_inst_cache' cache to avoid creating
14674         duplicate MonoGenericInst's.
14675
14676         * class.c (mono_class_inflate_generic_type): Use the cache.
14677
14678 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
14679
14680         * object.c: fixed gc descriptor calculation for embedded valuetypes.
14681
14682 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14683
14684         * icall.c: added Socket.WSAIoctl icall.
14685
14686         * socket-io.[ch]: implemented
14687         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
14688
14689 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
14690
14691         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
14692
14693 2004-02-18  Urs C Muff  <umuff@quark.com>
14694
14695         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
14696         this work on PPC and other big-endian architectures.
14697
14698         * debug-mono-symfile.h: Prepended the names of all the `guint32'
14699         fields with an underscore to make sure they're only accessed by
14700         the read32() macro.
14701
14702 2004-02-18  Martin Baulig  <martin@ximian.com>
14703
14704         * icall.c: Put the klass->refclass changes back for methods and
14705         fields, but not for properties and events.  We're currently not
14706         distinguishing between DeclaringType and ReflectedType for
14707         properties and events, that's what caused the regressions.
14708
14709 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14710
14711         * object.c:
14712         (mono_async_result_new): the handle can be NULL.
14713
14714         * threadpool.c: Use an event instead of a semaphore, don't initialize
14715         it until needed. This saves quite a few semaphores from being created
14716         when using the threadpool.
14717
14718 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
14719
14720         * object.c (mono_string_is_interned_lookup): Fix interning of long
14721         strings. Fixes #54473.
14722
14723         * domain.c (ldstr_equal): Optimize if the two strings are equal.
14724
14725         * icall.c: Revert the klass->refclass changes since they introduce
14726         regressions (bug #54518).
14727
14728 2004-02-18  Martin Baulig  <martin@ximian.com>
14729
14730         * class.c (mono_class_init): If we're a generic instance and don't
14731         come from a TypeBuilder, inflate our members here.
14732         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
14733         (mono_class_create_generic): New public method.
14734         (mono_class_initialize_generic): Removed.
14735         (get_instantiation_name): Renamed to
14736         _mono_class_get_instantiation_name() and made it public.
14737
14738 2004-02-18  Martin Baulig  <martin@ximian.com>
14739
14740         * class.c (mono_class_inflate_generic_type): Clear the new
14741         instance's `nginst->klass' when inflating a generic instance.
14742         (mono_class_is_subclass_of): Added (basic) support for generic
14743         instances.
14744
14745 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
14746
14747         * appdomain.h, domain.c: use a MonoCodeManager instead of a
14748         MonoMempool to hold compiled native code.
14749
14750 2004-02-17  Martin Baulig  <martin@ximian.com>
14751
14752         * class.h (MonoDynamicGenericInst): Added `count_properties' and
14753         `properties'.
14754
14755         * reflection.c (mono_reflection_generic_inst_initialize): Added
14756         `MonoArray *properties' argument.
14757
14758         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
14759
14760 2004-02-17  Martin Baulig  <martin@ximian.com>
14761
14762         * icall.c (ves_icall_Type_GetFields): Renamed to
14763         ves_icall_Type_GetFields_internal() and added a
14764         `MonoReflectionType *rtype' argument; pass it to
14765         mono_field_get_object() to set the field's "reflected" type.
14766         (ves_icall_Type_GetConstructors): Likewise.
14767         (ves_icall_Type_GetEvents): Likewise.
14768         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
14769         argument; pass it to mono_method_get_object() to set the method's
14770         "reflected" type.       
14771
14772 2004-02-17  Martin Baulig  <martin@ximian.com>
14773
14774         * class.h (MonoDynamicGenericInst): New type.
14775         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
14776
14777         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
14778         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
14779         (ves_icall_MonoGenericInst_GetFields): New interncall.
14780
14781         * class.c (mono_class_from_generic): Don't call
14782         mono_class_initialize_generic() if this is a dynamic instance;
14783         ie. it's being created from a TypeBuilder.
14784         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
14785         `class->byval_arg.type'.
14786
14787         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
14788         to `inflate_method' and made static.
14789         (mono_reflection_inflate_field): Removed.
14790         (mono_reflection_generic_inst_initialize): New public method.
14791
14792         * reflection.h (MonoReflectionGenericInst): Removed `methods',
14793         `ctors' and `fields'; added `initialized'.
14794
14795 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
14796
14797         * debug-helpers.c (mono_method_full_name): Fix output for empty
14798         namespaces.
14799
14800 2004-02-12  Martin Baulig  <martin@ximian.com>
14801
14802         * class.h (MonoClassField): Added `MonoType *generic_type'.
14803
14804         * reflection.c (mono_image_get_fieldref_token): Added support for
14805         instantiated generic types.
14806         (field_encode_inflated_field): Removed.
14807         (mono_image_get_inflated_field_token): Removed.
14808         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
14809
14810         * reflection.h (MonoReflectionInflatedField): Removed.
14811
14812 2004-02-12  Martin Baulig  <martin@ximian.com>
14813
14814         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
14815         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
14816
14817         * reflection.c (mono_image_get_methodspec_token): Take a
14818         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
14819         (mono_image_create_token): Check whether we have a
14820         `method->signature->gen_method' and call
14821         mono_image_get_methodspec_token() if appropriate.
14822         (inflated_method_get_object): Removed.
14823         (mono_reflection_bind_generic_method_parameters): Return a
14824         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
14825         (mono_reflection_inflate_method_or_ctor): Likewise.
14826
14827         * reflection.h (MonoReflectionInflatedMethod): Removed.
14828
14829 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
14830
14831         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
14832         for custom valuetype marshalling.
14833
14834         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
14835
14836 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14837
14838         * icall.c: fixed WSAGetLastError_internal name.
14839
14840 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
14841
14842         * threads.c (mono_thread_attach): Allow this to be called multiple
14843         times for a thread.
14844         
14845         * threads.c (build_wait_tids): Do not wait for ourselves.
14846
14847         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
14848         appdomain list is empty.
14849
14850         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
14851         memory returned by mono_string_builder_to_utf16, since it points into
14852         managed memory. Thanks to Bernie Solomon for noticing this.
14853
14854         * icall.c: Add AppDomainSetup icalls.
14855
14856         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
14857
14858         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
14859         types.
14860
14861         * reflection.c (reflection_methodbuilder_to_mono_method): Save
14862         custom attributes to the method_aux struct. Also fix array indexes etc.
14863
14864         * loader.c (mono_method_get_param_names): Make dynamic case work again.
14865         
14866 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
14867
14868         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
14869         (both static and runtime) and reduce startup time.
14870
14871 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
14872
14873         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
14874         AsAny marshalling conversion instead of crashing.
14875
14876         * marshal.c: Fix warnings.
14877
14878 2004-02-09  Martin Baulig  <martin@ximian.com>
14879
14880         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
14881
14882         * reflection.h (MonoReflectionInflatedMethod): Removed the
14883         `declaring' field, it's now in the unmanaged MonoGenericMethod.
14884
14885         * reflection.c (method_encode_methodspec): Removed the `method'
14886         argument; we get it from `gmethod->declaring'.
14887         (inflated_method_get_object): Removed the `declaring' argument.
14888
14889 2004-02-09  Martin Baulig  <martin@ximian.com>
14890
14891         * class.h (MonoGenericMethod): New type.
14892         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
14893         `generic_method'.
14894
14895         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
14896         a `MonoGenericMethod *gen_method' one.
14897
14898         * class.c (mono_class_inflate_generic_type): Take an additional
14899         `MonoGenericMethod * argument.  This is only non-NULL if we're
14900         inflating types for a generic method.   
14901         (mono_class_inflate_generic_signature): Renamed to
14902         inflate_generic_signature() and made static; take a
14903         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
14904         (inflate_generic_header): Take a `MonoGenericMethod *' argument
14905         instead of a `MonoGenericInst *' one.
14906         (mono_class_inflate_generic_method): Likewise.
14907
14908         * reflection.c (encode_generic_method_sig): Take a
14909         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
14910         (method_encode_methodspec): Likewise.
14911         (inflated_method_get_object): Likewise. 
14912
14913         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
14914         field with a `MonoGenericMethod *gmethod' one.  
14915
14916 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
14917
14918         * class.h (mono_class_has_parent): add parens to expansion
14919         so you can ! this.
14920
14921 2004-02-08  Martin Baulig  <martin@ximian.com>
14922
14923         * image.h (MonoImage): Removed `generics_cache'.
14924
14925         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
14926         instead of a `MonoType *' argument; removed the `inflate_methods'
14927         argument.  Don't inflate methods here.
14928
14929         * loader.c (find_method): If it's a generic instance, call
14930         mono_class_init() on the `sclass->generic_inst->generic_type'.
14931
14932         * metadata.c (mono_type_size): Make this work on uninitialized
14933         generic instances; call it on the `ginst->generic_type's class.
14934
14935         * reflection.c (mono_reflection_bind_generic_parameters): Call
14936         mono_class_from_generic() to create the `ginst->klass'.
14937
14938 2004-02-08  Martin Baulig  <martin@ximian.com>
14939
14940         * class.h (MonoClass): Changed type of `generic_inst' from
14941         `MonoType *' to `MonoGenericInst *'.
14942
14943 2004-02-08  Martin Baulig  <martin@ximian.com>
14944
14945         * icall.c (ves_icall_Type_BindGenericParameters): Just call
14946         mono_type_get_object(), this is now creating a `MonoGenericInst'
14947         for MONO_TYPE_GENERICINST.
14948         (ves_icall_MonoGenericInst_GetParentType): Likewise.
14949         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
14950
14951         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
14952         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
14953         (inflated_method_get_object): Added `MonoClass *refclass' argument.
14954         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
14955         and reflected type.
14956
14957         * reflection.h (MonoReflectionInflatedMethod): Removed
14958         `declaring_type' and `reflected_type'.
14959
14960 2004-02-08  Martin Baulig  <martin@ximian.com>
14961
14962         * class.h (MonoGenericInst): Added `MonoType *parent' and
14963         `MonoType **ifaces'.
14964
14965         * reflection.h (MonoReflectionGenericInst): Removed `klass',
14966         `parent' and `interfaces'.
14967
14968         * reflection.c (mono_reflection_bind_generic_parameters): Take a
14969         `MonoType *' argument and return a `MonoType *'.
14970
14971         * icall.c
14972         (ves_icall_MonoGenericInst_GetParentType): New interncall.
14973         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
14974
14975 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
14976
14977         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
14978         valuetype marshalling.
14979
14980 2004-02-06  Martin Baulig  <martin@ximian.com>
14981
14982         * class.c
14983         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
14984         (my_mono_class_from_generic_parameter): Likewise.
14985
14986 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
14987
14988         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
14989         contents of the symbol files lazily.
14990
14991         * object.h (MonoThread): Add 'name' and 'name_len' fields.
14992
14993         * threads.h threads.c icall.c: New icalls for getting and setting the
14994         threads name.
14995
14996 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
14997
14998         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
14999         Raise an exception when the domain is not found.
15000
15001 2004-02-03  Martin Baulig  <martin@ximian.com>
15002
15003         * reflection.c (mono_image_get_methodspec_token): Use the
15004         uninflated signature; fixes gen-33.
15005
15006 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
15007
15008         * gc.c threads.c: Make the finalizer thread a normal managed thread so
15009         the finalizer code can use thread functionality.
15010
15011         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
15012         the finalizer thread.
15013
15014         * threads.c: Make some functions more robust.
15015
15016         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
15017
15018         * metadata.h: Add new marshalling conventions.
15019
15020         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
15021         stringbuilder marshalling. Fixes #53700.
15022
15023         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
15024
15025         * reflection.c (mono_image_get_type_info): Save declarative security
15026         info.
15027
15028         * reflection.c (mono_image_get_field_info): Handle uninitialized 
15029         unmanaged fields as well.
15030
15031         * appdomain.c: Bump corlib version.
15032
15033 2004-02-01  Martin Baulig  <martin@ximian.com>
15034
15035         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
15036         method type arguments.  
15037
15038 2004-01-30  Duncan Mak  <duncan@ximian.com>
15039
15040         * marshal.h: Add prototype for
15041         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
15042         and
15043         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
15044         fix the build.
15045
15046 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
15047
15048         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
15049         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
15050
15051 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
15052
15053         * marshal.c (mono_marshal_get_native_wrapper): Add support for
15054         custom marshalling of valuetypes.
15055
15056         * marshal.c: Fix some warnings.
15057
15058 2004-01-29  Martin Baulig  <martin@ximian.com>
15059
15060         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
15061         for generic method parameters.
15062
15063         * reflection.c (method_encode_methodspec): Write the uninflated
15064         signature into the methodspec table.
15065         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
15066         is always the uninflated method.
15067         (reflection_methodbuilder_to_mono_method): Copy the generic
15068         parameters from the MethodBuilder into `header->gen_params'.
15069
15070 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
15071
15072         * class.c (mono_class_from_generic_parameter): Fix warning.
15073
15074 2004-01-27  Martin Baulig  <martin@ximian.com>
15075
15076         * class.c (mono_class_from_generic_parameter): Don't create
15077         `klass->methods' here.  
15078
15079 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
15080
15081         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
15082         extension since it does not work with libraries named lib<FOO>.dll.so.
15083
15084 2004-01-25  Martin Baulig  <martin@ximian.com>
15085
15086         * class.c (mono_class_inflate_generic_type): Added support for
15087         MONO_TYPE_GENERICINST.
15088
15089         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
15090         inflate methods on open constructed types.      
15091
15092 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15093
15094         * object.c: fire ProcessExit event in the root AppDomain after running
15095         Main. Fixes bug #53299.
15096
15097 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
15098
15099         * socket-io.c: include the new socket-wrappers.h header.
15100         Use the wrappers instead of the unix socket functions to make the code
15101         more clear.
15102
15103 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
15104
15105         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
15106
15107         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
15108         Fixes #22532.
15109
15110 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
15111
15112         * reflection.c (mono_image_create_pefile): Handle the case when the
15113         entry point is not a MethodBuilder.
15114
15115         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
15116         field to ReflectionMethod since it is not allways a builder.
15117
15118         * reflection.c (type_get_fully_qualified_name): New helper function to
15119         return the fully qualified name of a type.
15120
15121         * reflection.c (encode_marshal_blob): Always emit the fully qualified
15122         type name for custom marshallers.
15123
15124         * reflection.c (mono_marshal_spec_from_builder): Ditto.
15125
15126         * class.c (mono_class_setup_vtable): If a parent class already 
15127         implements an interface, use the implementing methods from that class.
15128         Fixes #53148.
15129
15130 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15131
15132         * threadpool.c: just return instead of ExitThread to allow for thread
15133         clean up earlier.
15134
15135 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
15136
15137         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
15138         when closing resource modules.
15139
15140         * reflection.c (mono_image_create_pefile): Handle the case when the
15141         entry point is not a MethodBuilder.
15142
15143         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
15144         field to ReflectionMethod since it is not allways a builder.
15145
15146 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
15147
15148         * marshal.c (mono_marshal_get_managed_wrapper): 
15149         mono_marshal_alloc takes native int so CONV_I
15150         the arg for 64bits.
15151
15152 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
15153
15154         * reflection.c (fixup_cattrs): New function to fixup the methoddef
15155         tokens in the cattr table. Fixes #53108.
15156
15157 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15158
15159         * loader.c: don't trim ".dll" before looking up in the config file.
15160         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
15161
15162 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
15163
15164         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
15165         Return the module which contains the resource as well.
15166         (ves_icall_System_Reflection_Module_Close): New icall.
15167
15168         * appdomain.c: Bump corlib version number.
15169
15170         * image.c (mono_image_addref): New public function.
15171
15172         * assembly.c: Call mono_image_addref.
15173
15174         * reflection.c (mono_module_get_object): Increase reference count of 
15175         the image.
15176
15177         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
15178         Fixes #22532.
15179
15180         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
15181         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
15182         proper exceptions on DllImport problems.
15183
15184 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
15185
15186         * class.c, metadata.c: eliminate CSIZE macro.
15187
15188 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
15189
15190         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
15191         * object.h: Added async_callback field in MonoAsyncResult.
15192         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
15193         * verify.c: Added async_callback in MonoAsyncResult layout.
15194
15195 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
15196
15197         * reflection.c (mono_reflection_get_custom_attrs): Add support
15198         for Modules.
15199
15200 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
15201
15202         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
15203         marshalling.
15204         (mono_marshal_method_from_wrapper): Add null pointer check.
15205
15206 2004-01-16  Martin Baulig  <martin@ximian.com>
15207
15208         * debug-mono-symfile.h: Set version number to 36 and reflect
15209         latest symbol writer changes.
15210
15211 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
15212
15213         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
15214         multi-dimensional arrays.
15215         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
15216         (mono_class_from_mono_type): Use bounded_array_class_get.
15217         
15218         * class.c (mono_bounded_array_class_get): New function which takes
15219         a 'bounded' bool argument to distinguish vectors from one dimensional
15220         arrays.
15221
15222         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
15223         bounded_array_class_get if the array has bounds.
15224
15225         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
15226         Search modules loaded using AssemblyBuilder:AddModule as well.
15227
15228 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15229
15230         * appdomain.c: increased corlib version.
15231         * filewatcher.c: removed g_print.
15232         * icall.c:
15233         (get_property_info): only allocate what is actually requested.
15234         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
15235
15236 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15237
15238         * Makefile.am: added filewatcher.[ch]
15239         * filewatcher.[ch]: FileSystemWatcher runtime support.
15240         * icall.c: added new FSW icalls.
15241
15242 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
15243
15244         * string-icalls.c: fix stringbuilder regression as suggested by
15245         Iain McCoy <iain@mccoy.id.au>.
15246
15247 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
15248
15249         * process.c (process_read_stringtable_block): Recognize '007f' as
15250         a language neutral stringtable block.
15251
15252 2004-01-12  Patrik Torstensson
15253
15254         * object.h (MonoStringBuilder) : Changed layout to support our
15255         new stringbuilder class.
15256         * marshal.c: Change marshalling to support the new layout of 
15257         string builder.
15258         * appdomain.c: increased version number because new layout of
15259         string builder.
15260
15261 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
15262
15263         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
15264         assembly name as an string instead of an AssemblyName, since it is
15265         easier to extract info from it.
15266
15267         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
15268         the culture subdirectories too. Fixes #52231.
15269
15270 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15271
15272         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
15273         It takes 2 new parameters with an optional name for the method to look
15274         for and case ignoring info.
15275
15276         * threadpool.c: removed unused variable.
15277
15278 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15279
15280         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
15281         It takes 2 new parameters with an optional name for the property to look
15282         for and case ignoring info.
15283         Fixes bug #52753.
15284
15285 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
15286
15287         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
15288         Fix #52451.
15289
15290 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15291
15292         * appdomain.c:
15293         * assembly.c: escape the uri before passing it to g_filename_from_uri.
15294         Fixes bug #52630.
15295
15296 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
15297
15298         * reflection.c: Add support for more than one unmanaged resource.
15299
15300         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
15301         in field->def_value, as done in all other cases.
15302
15303         * reflection.c (mono_reflection_get_custom_attrs): Add support for
15304         TypeBuilders.
15305
15306         * reflection.c (mono_reflection_create_runtime_class): Remove 
15307         errorneous assignment to klass->element_class, since it is already
15308         done in mono_reflection_setup_internal_class.
15309
15310 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15311
15312         * gc.c: added missing LeaveCriticalSection.
15313         * icall.c: indented a couple of lines.
15314         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
15315         if we call EndInvoke inside a callback. Fixes bug #52601.
15316
15317 2004-01-07  Martin Baulig  <martin@ximian.com>
15318
15319         * mono-debug-debugger.h
15320         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
15321
15322 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
15323
15324         * appdomain.c: Use messages in NotImplementedException.
15325
15326         * exception.c (mono_get_exception_not_implemented): Now this takes
15327         a message argument.
15328
15329         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
15330         exception instead of g_asserting an aborting when something is not
15331         implemented.
15332
15333         Add some inline docs.
15334
15335 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
15336
15337         * reflection.h: Update after changes to object layout.
15338
15339         * reflection.c: Implement saving of unmanaged aka win32 resources.
15340
15341         * appdomain.c: Bump version number.
15342
15343         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
15344         Handle missing domains gracefully.
15345
15346 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
15347
15348         * file-io.c : On Windows, there are much more invalid_path_chars.
15349
15350 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
15351
15352         * class.h, object.c: prepare for GetType () speedup.
15353
15354 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
15355
15356         * profiler.c: workaround for --profile null reference exception on
15357           cygwin. Patch by Patrik Torstensson.
15358
15359 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
15360
15361         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
15362         make work for unaligned access.
15363
15364 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
15365
15366         * class.c: small cleanup (class->fields [i] -> field).
15367         * image.c: check address of metadata is valid.
15368
15369 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
15370
15371         * assembly.h assembly.c (mono_assembly_loaded): New public function to
15372         search the list of loaded assemblies.
15373
15374         * reflection.c (mono_reflection_type_from_name): Use 
15375         mono_assembly_loaded instead of mono_image_loaded.
15376
15377         * reflection.c: Fix warnings.
15378
15379 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
15380
15381         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
15382         is dynamic. This is needed since an assembly can contain both dynamic and
15383         non-dynamic images.
15384
15385         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
15386         assembly->dynamic.
15387
15388         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
15389
15390         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
15391         to store modules loaded using AddModule.
15392
15393         * reflection.c (mono_image_fill_file_table): Generalize this so it works
15394         on Modules.
15395
15396         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
15397
15398         * reflection.c (mono_image_fill_export_table_from_module): New function to
15399         fill out the EXPORTEDTYPES table from a module.
15400
15401         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
15402         into a separate function. Also handle loaded non-dynamic modules.
15403
15404         * reflection.c (mono_image_basic_init): Fix memory allocation.
15405
15406         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
15407
15408         * assembly.c (mono_assembly_load_references): Make this public.
15409
15410 2003-12-19  Martin Baulig  <martin@ximian.com>
15411
15412         * class.c (mono_class_initialize_generic): Made this static, take
15413         a `MonoGenericInst *' instead of a `MonoClass *'.
15414         (mono_class_from_generic): Call mono_class_initialize_generic()
15415         unless we're already initialized or being called from
15416         do_mono_metadata_parse_generic_inst().
15417
15418         * class.h (MonoGenericInst): Added `initialized' and
15419         `init_pending' flags.
15420
15421         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
15422         `mono_class_init (gklass)' or mono_class_initialize_generic()
15423         here; set `generic_inst->init_pending' while parsing the
15424         `type_argv'.
15425
15426 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
15427
15428         * locales.c: include string.h for memxxx prototypes
15429
15430 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
15431
15432         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
15433         constructor when accessing literal fields.
15434
15435 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
15436
15437         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
15438
15439         * reflection.c (assembly_add_resource_manifest): New function to fill
15440         the MANIFESTRESOURCE table.
15441
15442         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
15443
15444         * reflection.h: Update to changes in class layout.
15445
15446         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
15447         Reenable call to mono_runtime_is_shutting_down ().
15448
15449         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
15450         determine if the runtime is shutting down.
15451
15452 2003-12-16  Jackson Harper <jackson@ximian.com>
15453
15454         * icall.c: comment out call to mono_runtime_is_shutting_down to
15455         fix build.
15456         
15457 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
15458
15459         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
15460         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
15461
15462 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
15463
15464         * reflection.c: move definition of swap_with_size
15465         to before its first call
15466
15467 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
15468
15469         * appdomain.c (mono_runtime_is_shutting_down): New public function.
15470
15471         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
15472         icall.
15473
15474         * object.c: Fix warnings.
15475
15476         * icall.c (ves_icall_Type_Get...): Only consider inherited static
15477         members if FlattenHierarchy is set.
15478
15479         * reflection.c (mono_image_add_decl_security): New function to emit
15480         declarative security.
15481
15482         * reflection.h reflection.c: Add support for declarative security.
15483
15484         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
15485         
15486 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
15487
15488         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
15489         
15490         * appdomain.c verify.c: Moved corlib version checking into its own
15491         function in appdomain.c since it needs to create vtables etc.
15492
15493 2003-12-13  Patrik Torstensson <p@rxc.se>
15494
15495         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
15496         instead of unwrapped server.
15497
15498 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
15499
15500         * verify.c (check_corlib): Fix field index.
15501
15502 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
15503
15504         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
15505         GetGacPath icall.
15506
15507 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
15508
15509         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
15510         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
15511         cope with sizeof(size_t) != sizeof(guint32).
15512
15513 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15514
15515         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
15516         in case of failure.
15517
15518 2003-12-10  Mark Crichton <crichton@gimp.org>
15519
15520         * icall.c: removed the GetNonZeroBytes.  We now handle this case
15521         in managed code.
15522
15523         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
15524
15525 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
15526
15527         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
15528         marked as deleted.
15529
15530 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
15531
15532         * verify.c (check_corlib): Handle the case when the version field is 
15533         initialized by a static constructor.
15534
15535 2003-12-08  Patrik Torstensson  <p@rxc.se>
15536
15537     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
15538
15539 2003-12-08  Martin Baulig  <martin@ximian.com>
15540
15541         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
15542         a MonoReflectionGenericParameter, also take the parameter index
15543         and name as arguments.
15544         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
15545         (ves_icall_MonoGenericParam_initialize): New interncall.
15546         (ves_icall_Type_make_byref_type): New interncall.
15547
15548         * reflection.h (MonoReflectionGenericParam): Derive from
15549         MonoReflectionType, not just from MonoObject.  Added `refobj' and
15550         `index' fields.
15551
15552         * reflection.c (mono_reflection_define_generic_parameter): Create
15553         and return a new MonoReflectionGenericParam; don't initialize the
15554         constraints here.
15555         (mono_reflection_initialize_generic_parameter): New public method;
15556         initializes the constraints and creates the `param->pklass'.
15557
15558 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
15559
15560         * reflection.h reflection.c: Use the new fields 'num_types', 
15561         'num_fields' and 'num_methods' to track the number of types etc.
15562
15563         * verify.c (check_corlib): Check corlib version number.
15564
15565 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
15566
15567         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
15568         function works on all methods.
15569
15570 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
15571
15572         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
15573         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
15574         the custom_type_info flag of the transparent proxy.
15575         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
15576         objects that supports IRemotingTypeInfo.
15577         * object.h: Added custom_type_info field in transparent proxy.
15578
15579 2003-12-06  Martin Baulig  <martin@ximian.com>
15580
15581         * class.c (mono_class_create_from_generic): Removed.
15582         (mono_class_from_generic): Check `ginst->klass' before doing
15583         anything else.  This is important to fully support "recursive"
15584         generic types.
15585
15586         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
15587         empty `generic_inst->klass' before doing anything else.
15588
15589 2003-12-06  Dick Porter  <dick@ximian.com>
15590
15591         * verify.c: 
15592         * object.h:
15593         * icall.c:
15594         * locales.c: Use C structs to access class fields.  Don't do a
15595         conversion between MonoString and UChar because both are
15596         platform-endian UTF-16.  Compare now takes startindex and count
15597         parameters.  Add a char overload for IndexOf.  Speed up the
15598         invariant string IndexOf.
15599
15600 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
15601
15602         * Makefile.am (monosn_LDADD): Fix parallel build.
15603
15604 2003-12-04  Martin Baulig  <martin@ximian.com>
15605
15606         * icall.c
15607         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
15608         (ves_icall_Type_make_array_type): New interncall.       
15609
15610 2003-12-04  Martin Baulig  <martin@ximian.com>
15611
15612         * locales.c: also change it in the !HAVE_ICU case.
15613
15614 2003-12-04  Dick Porter  <dick@ximian.com>
15615
15616         * icall.c:
15617         * locales.c: construct_compareinfo is now in CompareInfo, not
15618         CultureInfo.
15619
15620 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
15621
15622         * image.c (mono_image_load_file_for_image): Cache loaded images in the
15623         image->files array.
15624
15625         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
15626         table as well.
15627
15628         * assembly.c (mono_assembly_load_references): Only load references
15629         once.
15630
15631         * class.c (mono_class_from_name): Avoid linear search of the 
15632         EXPORTEDTYPE table.
15633
15634         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
15635
15636 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
15637
15638         * image.h (MonoImage): Add 'field_cache' field.
15639
15640         * loader.c (mono_field_from_token): Cache field lookups.
15641         
15642         * reflection.c (mono_module_get_object): Fix name property.
15643
15644         * icall.c (ves_icall_get_enum_info): Update after changes to 
15645         mono_metadata_get_constant_index ().
15646
15647         * icall.c: Get rid of get_type_info icall, use a separate icall for
15648         each type property to avoid needless memory allocations. Fixes #51514.
15649
15650         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
15651         to avoid needless binary searches.
15652
15653         * class.c (class_compute_field_layout): Move the initialization of
15654         field->def_value to mono_class_vtable ().
15655
15656         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
15657         non-corlib types.
15658
15659         * object.c (mono_object_allocate): Make it inline.
15660
15661         * object.c (mono_object_allocate_spec): Make it inline.
15662         
15663 2003-12-02  Dick Porter  <dick@ximian.com>
15664
15665         * locales.c (create_NumberFormat): NumberFormatInfo construction.
15666         Patch by Mohammad DAMT (mdamt@cdl2000.com).
15667
15668 2003-12-01  Dick Porter  <dick@ximian.com>
15669
15670         * threads.c: Fix signature and call in CreateMutex and
15671         CreateEvent.
15672
15673 2003-12-01  Dick Porter  <dick@ximian.com>
15674
15675         * icall.c: 
15676         * locales.c: Implement string compares and searching
15677
15678         * object.h: Add extra Thread field
15679
15680 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
15681
15682         * reflection.c (fixup_method): Add support for MonoCMethod.
15683
15684 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
15685
15686         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
15687
15688         * reflection.c (assembly_name_to_aname): Allow extra characters in
15689         assembly names. Fixes #51468.
15690
15691 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
15692
15693         * exception.c (mono_exception_from_name_domain): New helper function.
15694
15695         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
15696         exception object in the correct domain.
15697
15698         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
15699         formatting + make a copy a the input data.
15700
15701         * loader.c (mono_get_method_from_token): Methods which contain
15702         native code do not have entries in the ImplMap.
15703
15704         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
15705         Thanks to Gonzalo for spotting this.
15706         
15707         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
15708         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
15709
15710         * assembly.h (mono_assembly_load_from): Split the second part of 
15711         assembly loading into a new public function.
15712
15713         * exception.h (mono_get_exception_bad_image_format): New function.
15714
15715 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
15716
15717         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
15718         Enumerate all modules inside a dynamic assembly. Fixes #51293.
15719         
15720         * icall.c: Add new icall for creating dynamic methods.
15721
15722         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
15723
15724         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
15725
15726         * reflection.c (mono_reflection_create_dynamic_method): New icall to
15727         create a dynamic method.
15728
15729         * reflection.c (resolve_object): New helper function.
15730
15731         * reflection.c: Generalize ReflectionMethodBuilder and the functions
15732         which manipulate it so they can also work on dynamic methods.
15733
15734         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
15735         creating the MonoReflectionMethodAux structure if it is not needed.
15736         
15737         * reflection.h verify.c: Update after changes to object layout.
15738
15739         * reflection.c (method_builder_encode_signature): Fix compilation on
15740         gcc 2.95.x.
15741
15742 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
15743
15744         * appdomain.h: Added support for context static fields. Added static_data
15745           field to MonoAppContext and renamed thread_static_fields to a more
15746           generic special_static_fields in MonoAppDomain, since it can now contain
15747           context static fields.
15748         * domain.c: Updated hashtable name.
15749         * object.c: Replaced field_is_thread_static() for a more generic
15750           field_is_special_static() which also checks for context static attribute.
15751           In mono_class_vtable(), added support for static context fields.
15752         * threads.c: Changed methods that manage thread static fields to more
15753           generic methods so they can be reused both for thread and context static
15754           data.
15755         * threads.h: Declared some new methods.
15756
15757 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
15758
15759         * reflection.h: Update after changes to the managed types.
15760
15761         * reflection.c (encode_custom_modifiers): New helper function.
15762
15763         * reflection.c (method_encode_signature): Emit custom modifiers.
15764
15765         * reflection.c (field_encode_signature): Emit custom modifiers.
15766
15767 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
15768
15769         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
15770
15771         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
15772         implementation.
15773
15774         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
15775         icall.
15776
15777         * object.c (mono_field_get_value_object): New function.
15778
15779         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
15780         specific.
15781
15782 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
15783
15784         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
15785         return a preallocated out-of-memory exception instance.
15786
15787         * object.c (out_of_memory): Use the new function.
15788
15789         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
15790         flag is before the custom modifiers. Fixes #49802.
15791
15792 2003-11-16  Martin Baulig  <martin@ximian.com>
15793
15794         * class.c (mono_class_is_open_constructed_type): Implemented the
15795         MONO_TYPE_GENERICINST case.
15796
15797 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
15798
15799         * assembly.c (mono_assembly_fill_assembly_name): New function to
15800         fill out the MonoAssemblyName structure.
15801         (mono_assembly_open): Use the new function.
15802
15803         * icall.c (fill_reflection_assembly_name): New helper function.
15804
15805         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
15806         new function.
15807
15808         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
15809
15810 2003-11-15  Martin Baulig  <martin@ximian.com>
15811
15812         * class.c (mono_class_is_open_constructed_type): New public
15813         function; checks whether a type is an open constructed type,
15814         ie. whether it still contains type parameters.
15815         (mono_class_inflate_generic_type): If we're a type parameter and
15816         the inflated type is also a MONO_TYPE_(M)VAR, return the original
15817         type.
15818
15819         * class.h (MonoGenericInst): Added `guint32 is_open'.
15820
15821         * loader.c (method_from_methodspec): Check whether we're an open
15822         or closed constructed type and set `ginst->is_open'.
15823
15824         * reflection.c (mono_reflection_bind_generic_parameters): Check
15825         whether we're an open or closed constructed type and set
15826         `ginst->is_open'.
15827         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
15828         from open constructed types.
15829
15830 2003-11-15  Martin Baulig  <martin@ximian.com>
15831
15832         * reflection.c (mono_reflection_bind_generic_parameters): If we're
15833         a generic instance (instead of a generic type declaration) with
15834         unbound generic parameters, bind them to our actual types.
15835
15836 2003-11-14  Martin Baulig  <martin@ximian.com>
15837
15838         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
15839
15840         * reflection.c (mono_reflection_bind_generic_parameters): If we're
15841         an interface type, populate `res->interfaces' with instantiated
15842         versions of all the interfaces we inherit.
15843
15844 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
15845
15846         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
15847         when MONO_PATH is set but doesn't contain the install dir.
15848
15849 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15850
15851         * icall.c:
15852         (ves_icall_Type_GetInterfaces): don't return an interface twice when
15853         it's also implemented in base classes. Fixes bug #50927.
15854
15855 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
15856
15857         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
15858         if this method is called from a finalizer. Fixes #50913.
15859
15860 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
15861
15862         * threads.c: Implement VolatileRead/VolatileWrite
15863
15864         * icall.c: Add new icalls for VolatileRead/VolatileWrite
15865
15866 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15867
15868         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
15869         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
15870         2.95.3.
15871
15872         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
15873         from Peter Ross (pro@missioncriticalit.com).
15874         
15875 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
15876
15877         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
15878
15879 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15880
15881         * assembly.c (mono_assembly_load_references): Disable check because it
15882         triggers on older corlibs which lots of people have.
15883
15884 2003-11-12  Jackson Harper  <jackson@ximian.com>
15885
15886         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
15887         load corlib.dll if mscorlib.dll is not found.
15888         * assembly.h: Remove corlib name define.
15889         * class.c:
15890         * domain.c:
15891         * image.c: Change corlib name to mscorlib.
15892         
15893 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15894
15895         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
15896
15897 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
15898
15899         * appdomain.h: Added loader_optimization here to sync with the C#
15900         code, and add disallow_binding_redirects field.
15901
15902 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
15903
15904         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
15905
15906         * reflection.c (mono_image_build_metadata): Fix crash on modules
15907         with no types.
15908
15909         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
15910
15911         * icall.c (ves_icall_get_method_info): Return callingConvention as
15912         well.
15913
15914         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
15915         namespaces from the EXPORTEDTYPE table as well.
15916
15917         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
15918         from all modules inside the assembly.
15919         
15920 2003-11-11  Martin Baulig  <martin@ximian.com>
15921
15922         * reflection.c (mono_reflection_bind_generic_parameters): Make
15923         this work for interfaces.
15924
15925 2003-11-11  Martin Baulig  <martin@ximian.com>
15926
15927         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
15928
15929 2003-11-11  Martin Baulig  <martin@ximian.com>
15930
15931         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
15932         "MonoInflatedMethod" and "MonoInflatedCtor".
15933
15934 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
15935
15936         * reflection.c (resolution_scope_from_image): Use the assembly table
15937         from the manifest module, since other modules don't have it.
15938
15939         * debug-helpers.c (mono_type_full_name): New helper function.
15940
15941         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
15942
15943         * image.c (mono_image_load_file_for_image): New public function which
15944         is a replacement for the load_file_for_image in class.c.
15945
15946         * assembly.c (mono_assembly_load_module): A wrapper for the function
15947         above which does assembly association and reference loading too.
15948
15949         * class.c (mono_class_from_name): Call mono_assembly_load_module.
15950
15951 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15952
15953         * appdomain.c: not all of the attributes for the full assembly name
15954         are required and the order doesn't matter. Fixes bug #50787.
15955
15956 2003-11-10  Dick Porter  <dick@ximian.com>
15957
15958         * locales.c: Use platform-endian UTF16
15959
15960 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
15961
15962         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
15963         
15964 2003-11-10  Martin Baulig  <martin@ximian.com>
15965
15966         * metadata.c
15967         (mono_metadata_load_generic_params): Make this actually work.
15968
15969         * reflection.c (mono_reflection_bind_generic_parameters): If our
15970         parent is a generic instance, pass all the `types' to it, no
15971         matter whether it has the same number of type parameters or not.
15972
15973 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
15974
15975         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
15976
15977         * assembly.c (mono_assembly_load_references): Move the image<->assembly
15978         assignment code to this function so it gets called recursively for all
15979         modules.
15980
15981         * image.c (load_modules): Remove the assembly assignment since it is
15982         now done by mono_assembly_load_references.
15983         
15984         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
15985         Add 'module' argument.
15986         (mono_module_get_types): New helper function.
15987         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
15988
15989 2003-11-08  Martin Baulig  <martin@ximian.com>
15990
15991         * class.c (mono_class_inflate_generic_method): Interface method
15992         don't have a header.
15993
15994         * reflection.c (mono_image_get_methodspec_token): Take an
15995         additional `MonoGenericInst *' argument instead of reading it from
15996         the header; this is necessary to support interfaces.
15997         (mono_image_create_token): Pass the `MonoGenericInst *' from the
15998         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
15999         (inflated_method_get_object): Take an additional `MonoGenericInst *'
16000         argument.
16001
16002         * reflection.h (MonoReflectionInflatedMethod): Added
16003         `MonoGenericInst *ginst'.
16004
16005 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
16006
16007         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
16008
16009 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
16010
16011         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
16012
16013 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
16014
16015         * reflection.c 
16016         (reflection_methodbuilder_from_method_builder):
16017         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
16018         initialize a ReflectionMethodBuilder structure.
16019         (mono_image_get_methodbuilder_token):
16020         (mono_image_get_ctorbuilder_token): New functions to emit memberref
16021         tokens which point to types in another module inside the same assembly.
16022
16023         * reflection.c: Use the new helper functions.
16024         
16025         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
16026
16027         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
16028         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
16029
16030         * reflection.c (resolution_scope_from_image): Emit a moduleref if
16031         neccesary.
16032
16033         * reflection.c (mono_image_build_metadata): Emit metadata only for the
16034         current module. Emit the manifest only for the main module.
16035
16036         * reflection.c (mono_image_create_token): Add assertion when a 
16037         memberref needs to be created.
16038
16039         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
16040
16041         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
16042         larger buffer for the custom attribute blob. Fixes #50637.
16043         
16044 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16045
16046         * threadpool.c: notify listener on async processing handles after
16047         invoking the async callback. Thanks to Zoltan.
16048
16049 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
16050
16051         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
16052         avoid code duplication.
16053
16054         * reflection.h (MonoDynamicImage): New type which is currently unused,
16055         but will be used through the ref.emit code in place of 
16056         MonoDynamicAssembly.
16057
16058         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
16059         object layout.
16060
16061         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
16062         a MonoDynamicImage instead of just a MonoImage.
16063         
16064         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
16065         icalls to ModuleBuilder but keep their semantics, so they will work
16066         with moduleb->assemblyb. This will change later.
16067         
16068 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
16069
16070         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
16071         object layout.
16072
16073         * reflection.c (mono_image_build_metadata): Avoid creation of a default
16074         main module, since it is now done by the managed code.
16075
16076 2003-11-03  Martin Baulig  <martin@ximian.com>
16077
16078         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
16079         `ginst->klass' here.
16080         (method_encode_methodspec): Don't use the `ginst->generic_method's
16081         klass if it's a generic instance, use `ginst->klass' in this case.
16082
16083 2003-11-03  Martin Baulig  <martin@ximian.com>
16084
16085         * reflection.c (mono_image_get_generic_method_param_info):
16086         Removed, use mono_image_get_generic_param_info() instead.
16087         (mono_image_get_type_info): Write the GenericParam table before
16088         the Method table.  This is neccessary because in the GenericParam
16089         table, type parameters of the class (ie. '!0' etc.) must come
16090         before the ones from its generic methods (ie. '!!0' etc).
16091
16092 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
16093
16094         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
16095
16096 2003-11-02  Martin Baulig  <martin@ximian.com>
16097
16098         * reflection.c (create_generic_typespec): Take a
16099         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
16100         the generic parameters from it.
16101
16102 2003-11-02  Martin Baulig  <martin@ximian.com>
16103
16104         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
16105         instead of a `MonoClassField *' since we just need the type.
16106         (create_generic_typespec): New static function.  Creates a
16107         TypeSpec token for a generic type declaration.
16108         (mono_image_get_generic_field_token): New static function.
16109         (mono_image_create_token): If we're a FieldBuilder in a generic
16110         type declaration, call mono_image_get_generic_field_token() to get
16111         the token.
16112
16113 2003-11-02  Martin Baulig  <martin@ximian.com>
16114
16115         * reflection.h
16116         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
16117         `MonoReflectionGenericInst *declaring_type' and
16118         `MonoReflectionGenericInst *reflected_type' fields.
16119
16120         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
16121         `MonoReflectionGenericInst *declaring_type' and a
16122         `MonoReflectionGenericInst *reflected_type' argument instead of a
16123         single `MonoReflectionGenericInst *type' one.  Set
16124         `res->declaring_type' and `res->reflected_type' from them.
16125         (mono_reflection_inflate_field): Likewise.      
16126
16127 2003-11-02  Martin Baulig  <martin@ximian.com>
16128
16129         * class.c (mono_class_setup_vtable): Don't store generic methods
16130         in the vtable.  
16131
16132 2003-11-02  Martin Baulig  <martin@ximian.com>
16133
16134         * reflection.h (MonoReflectionGenericInst): Added
16135         `MonoReflectionType *declaring_type'.
16136
16137         * reflection.c (mono_reflection_bind_generic_parameters): Use
16138         `if (tb->parent)' instead of `klass->parent'.
16139
16140 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
16141
16142         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
16143         with an empty ASSEMBLY table.
16144
16145         * reflection.c (mono_image_build_metadata): Avoid using the same loop
16146         variable in the inner and outer loops.
16147
16148 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
16149
16150         * metadata.h (mono_metadata_make_token): Put parentheses around macro
16151         argument.
16152
16153         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
16154         
16155         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
16156         icalls. Instead, do everything in managed code. This is needed since
16157         it is hard to restore the original domain etc. in unmanaged code in the
16158         presence of undeniable exceptions.
16159
16160         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
16161         New icalls to push and pop appdomain refs.
16162
16163 2003-10-31  Martin Baulig  <martin@ximian.com>
16164
16165         * class.c (inflate_generic_type): Renamed to
16166         mono_class_inflate_generic_type() and made it public.
16167
16168         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
16169         New interncall.
16170
16171         * loader.c (mono_field_from_memberref): Also set the retklass for
16172         typespecs.
16173
16174         * fielder.c (mono_image_get_inflated_field_token): New static
16175         method; creates a metadata token for an inflated field.
16176         (mono_image_create_token, fixup_method): Added support for
16177         "MonoInflatedField".
16178         (fieldbuilder_to_mono_class_field): New static function.
16179         (mono_reflection_inflate_field): New public function.
16180
16181         * reflection.h
16182         (MonoReflectionGenericInst): Added `MonoArray *fields'.
16183         (MonoReflectionInflatedField): New typedef.     
16184
16185 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
16186
16187         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
16188         for Solaris and other platforms without s6_addr16
16189
16190 2003-10-30  Martin Baulig  <martin@ximian.com>
16191
16192         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
16193         argument instead of two.
16194         (mono_class_inflate_generic_signature): Likewise.
16195         (inflate_generic_header): Likewise.
16196         (mono_class_inflate_generic_method): Likewise.  In addition, if
16197         `ginst->klass' is set, it becomes the new `method->klass'.
16198
16199         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
16200         field.
16201
16202         * reflection.c (encode_generic_method_sig): Write a 0xa as the
16203         first byte. [FIXME]
16204         (method_encode_methodspec): If we have generic parameters, create
16205         a MethodSpec instead of a MethodRef.
16206         (fixup_method): Added support for "MonoInflatedMethod" and
16207         "MonoInflatedCtor".
16208         (mono_image_create_token): Added support for "MonoInflatedMethod"
16209         and "MonoInflatedCtor".
16210         (inflated_method_get_object): New static function; returns a
16211         managed "System.Reflection.MonoInflatedMethod" object.
16212         (mono_reflection_bind_generic_method_parameters): Return a
16213         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
16214         (mono_reflection_inflate_method_or_ctor): Likewise.
16215         (mono_image_get_generic_method_param_info): Initialize unused
16216         fields to zero.
16217         (mono_image_get_generic_param_info): Likewise.
16218
16219         * reflection.h (MonoReflectionInflatedMethod): New public
16220         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
16221         "S.R.MonoInflatedCtor" classes.
16222
16223         * loader.c (method_from_memberref): If we're a TypeSpec and it
16224         resolves to a generic instance, inflate the method.
16225
16226 2003-10-28  Dick Porter  <dick@ximian.com>
16227
16228         * object.c (mono_runtime_run_main): Convert command-line arguments
16229         into utf8, falling back to the user's locale encoding to do so.
16230
16231 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
16232
16233         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
16234         at this time.
16235
16236         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
16237
16238         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
16239         up icalls at method definition time. Partially fixes #33569.
16240
16241 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
16242
16243         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
16244         marshalling of arrays. Fixes #50116.
16245
16246         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
16247
16248         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
16249         points to a vtable in the dying appdomain.
16250
16251         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
16252         listeners into unmanaged code inside the lock.
16253
16254         * object.c (mono_class_vtable): Turn off typed allocation in non-root
16255         domains and add some comments.
16256
16257 2003-10-25  Martin Baulig  <martin@ximian.com>
16258
16259         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
16260
16261         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
16262
16263         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
16264         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
16265         currently parsing.  Create the generic class and store it in
16266         `generic_inst->klass' before parsing the type arguments.  This is
16267         required to support "recursive" definitions; see mcs/tests/gen-23.cs
16268         for an example.
16269         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
16270         to support recursive typespec entries.
16271
16272         * class.c (mono_class_setup_parent): If our parent is a generic
16273         instance, we may get called before it has its name set.
16274         (mono_class_from_generic): Splitted into
16275         mono_class_create_from_generic() and mono_class_initialize_generic().
16276
16277 2003-10-25  Martin Baulig  <martin@ximian.com>
16278
16279         * icall.c (ves_icall_Type_BindGenericParameters): Return a
16280         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
16281         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
16282         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
16283
16284         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
16285         (create_typespec): Likewise.
16286         (mono_reflection_bind_generic_parameters): Return a
16287         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
16288         (mono_reflection_inflate_method_or_ctor): New public function.
16289
16290         * reflection.h (MonoReflectionGenericInst): New typedef.        
16291
16292 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
16293
16294         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
16295         inside the domain lock. Fixes #49993.
16296         
16297         * object.c (mono_class_vtable): When typed allocation is used, 
16298         allocate vtables in the GC heap instead of in the mempool, since the
16299         vtables contain GC descriptors which are used by the collector even
16300         after the domain owning the mempool is unloaded.
16301
16302         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
16303
16304         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
16305         reflect what it does. Also invalidate mempools instead of freeing
16306         them if a define is set.
16307
16308         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
16309         of the appdomain.
16310         
16311         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
16312         hold the finalizable objects in this domain.
16313
16314         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
16315         appdomain.
16316
16317         * appdomain.c (mono_domain_set): New function to set the current
16318         appdomain, but only if it is not being unloaded.
16319
16320         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
16321         appdomain which is being unloaded.
16322         
16323         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
16324         unloading of the root appdomain.
16325
16326         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
16327         icall to execute a method in another appdomain. Intended as a 
16328         replacement for InternalSetDomain, which can confuse the code 
16329         generation in the JIT.
16330
16331         * appdomain.c (mono_domain_is_unloading): New function to determine
16332         whenever an appdomain is unloading.
16333
16334         * appdomain.c (mono_domain_unload): New function to correctly unload
16335         an appdomain.
16336
16337         * assembly.c (mono_assembly_load_references): Check that an assembly
16338         does not references itself.
16339
16340         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
16341         domain manually, it asks the finalizer thread to do it, then waits for
16342         the result. Also added a timeout.
16343
16344         * icall.c: Register the new icalls.
16345
16346         * threads.h threads.c: Export the mono_gc_stop_world and 
16347         mono_gc_start_world functions.
16348         
16349         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
16350         function to fill out the mempool with 0x2a.
16351
16352 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
16353
16354         * reflection.h (MonoReflectionMethodAux): New structure to store
16355         information which is rarely used, thus is not in the MonoMethod
16356         structure.
16357
16358         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
16359         store the aux info.
16360
16361         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
16362         and marshalling info into the aux structure.
16363
16364         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
16365         from the aux structure.
16366
16367         * loader.c (mono_method_get_param_names): Retrieve the param names from
16368         the aux structure.
16369         
16370 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
16371
16372         * exception.h exception.c: Add AppDomainUnloadedException && fix 
16373         warning.
16374
16375 2003-10-21  Dick Porter  <dick@ximian.com>
16376
16377         * socket-io.c
16378         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
16379         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
16380
16381 2003-10-21  Martin Baulig  <martin@ximian.com>
16382
16383         * reflection.c (mono_reflection_bind_generic_parameters):
16384         `klass->parent' is NULL for interfaces.
16385
16386 2003-10-21  Martin Baulig  <martin@ximian.com>
16387
16388         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
16389
16390 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
16391
16392         * exception.c (mono_exception_from_name_msg): New helper function for
16393         creating exceptions and initializing their message field.
16394
16395         * exception.c: Simplify functions using the new helper.
16396
16397         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
16398         New function.
16399
16400         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
16401         mono_raise_exception, since otherwise gcc doesn't generate the function
16402         epilog for raise_exception, confusing the stack unwinding in the JIT.
16403         Fixes #45043.
16404
16405         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
16406         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
16407         Fixes #49499.
16408
16409 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16410
16411         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
16412         utf8.
16413
16414 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
16415
16416         * icall.c: Removed GetUninitializedObject method because
16417           AllocateUninitializedClassInstance does the same.
16418
16419 2003-10-18  Martin Baulig  <martin@ximian.com>
16420
16421         * class.c (inflate_generic_signature): Renamed to
16422         mono_class_inflate_generic_signature() and made it public.
16423         (my_mono_class_from_generic_parameter): New static function; if we
16424         don't already have the generic parameter's MonoClass, create a
16425         very simple one which is just used internally in the runtime and
16426         not passed back to managed code.
16427
16428         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
16429
16430         * metadata.h (MonoMethodSignature): Moved the
16431         `MonoGenericParam *gen_params' to the MonoMethodHeader.
16432         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
16433
16434         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
16435         ves_icall_MonoMethod_GetGenericArguments(); this is now an
16436         interncall on the MonoMethod class, not on MethodInfo.
16437         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
16438         calling mono_reflection_bind_generic_method_parameters() directly.
16439
16440         * loader.c (mono_method_get_signature): If this is a MethodSpec;
16441         return the already computed `method->signature'.
16442         (method_from_methodspec): New static function to load a method
16443         from a MethodSpec entry.
16444         (mono_get_method_from_token): Call the new method_from_methodspec()
16445         for MethodSpec tokens.  
16446         (mono_get_method_from_token): If we're a generic method, load the
16447         type parameters.
16448
16449         * reflection.c (mono_image_get_memberref_token): Allow
16450         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
16451         table.
16452         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
16453         (mono_image_create_token): First check whether it's a generic
16454         method (so we'd need to create a MethodSpec), then do the other
16455         two alternatives.
16456         (mono_reflection_bind_generic_method_parameters): Return a
16457         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
16458         called directly from the interncall.
16459
16460 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
16461
16462         * reflection.c (load_public_key): Move loading of the public key
16463         into managed code.
16464
16465         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
16466
16467         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
16468         fields.
16469
16470         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
16471         culture, hash_alg and public_key. Fixes #49555.
16472
16473 2003-10-17  Martin Baulig  <martin@ximian.com>
16474
16475         * class.h (MonoGenericInst): Moved this declaration here and added
16476         `MonoMethod *generic_method'.
16477
16478         * icall.c
16479         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
16480         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
16481
16482         * metadata.c (mono_metadata_type_equal): Two types of
16483         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
16484         index; ie. don't compare the address of the `MonoGenericParam'
16485         structure.
16486         (mono_metadata_load_generic_params): Removed the `MonoMethod
16487         *method' argument.
16488
16489         * metadata.h (MonoGenericInst): Moved declaration to class.h.
16490         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
16491
16492         * reflection.c (method_encode_signature): Encode the number of
16493         generic parameters.
16494         (encode_generic_method_sig): New static function.
16495         (method_encode_methodspec): New static function; creates an entry
16496         in the MethodSpec table for a generic method.
16497         (mono_image_get_methodspec_token): New static function.
16498         (mono_image_create_token): Call mono_image_get_methodspec_token()
16499         for generic methods.
16500         (mono_reflection_bind_generic_method_parameters): New public
16501         function.  Instantiates a generic method.
16502
16503 2003-10-16  Martin Baulig  <martin@ximian.com>
16504
16505         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
16506         *gen_params' here from MonoMethodHeader.
16507
16508         * metadata.c (mono_metadata_parse_method_signature): If we have
16509         generic parameters, initialize `method->gen_params' and then set
16510         the correct `type->data.generic_param' in all the parameters.
16511
16512 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
16513
16514         * threads.c (mono_threads_get_default_stacksize): New function to 
16515         return the default stacksize.
16516
16517         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
16518         termination of the finalizer thread, since the previous method had
16519         race conditions. Fixes #49628.
16520
16521         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
16522         as for the other managed threads.
16523
16524 2003-10-16  Martin Baulig  <martin@ximian.com>
16525
16526         * class.c (inflate_generic_signature): Copy `generic_param_count'
16527         and `gen_params'.
16528
16529         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
16530         New interncall.
16531
16532         * metadata.c (mono_metadata_parse_method_signature): Actually set
16533         the `method->generic_param_count' here.
16534         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
16535
16536 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
16537
16538         * object.h: Add a new field to TypedRef to simplify the implementation
16539         of the REFANY opcodes in the JIT.
16540
16541         * icall.c: Make use of the new field.
16542
16543         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
16544         dynamically.
16545
16546 2003-10-15  Martin Baulig  <martin@ximian.com>
16547
16548         * class.c (mono_class_from_gen_param): Renamed to
16549         mono_class_from_generic_parameter() and moved most of the
16550         functionality from mono_reflection_define_generic_parameter()
16551         here; ie. we create a "real" class here.
16552         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
16553         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
16554         previously been called.
16555
16556         * class.h (MonoGenericParam): Moved the declaration of this struct
16557         here from metadata.h and added `MonoMethod *method'.
16558
16559         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
16560         interncall.
16561
16562         * loader.c (mono_get_method_from_token): If we have any generic
16563         parameters, call mono_metadata_load_generic_params() to read them
16564         from the MONO_TABLE_GENERICPAR.
16565
16566         * metadata.c (mono_metadata_load_generic_params): Added
16567         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
16568
16569         * metadata.h (MonoMethodSignature): Replaced
16570         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
16571         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
16572
16573         * reflection.c (mono_reflection_define_generic_parameter): Moved
16574         most of the functionality into the new
16575         mono_class_from_generic_parameter(); set the `method' field if
16576         we're a method parameter.       
16577
16578 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
16579
16580         * marshal.c (emit_struct_conv): if native size is 0
16581         emit no code.
16582
16583 2003-10-14  Martin Baulig  <martin@ximian.com>
16584
16585         * icall.c: The generics API has changed in the spec since it was
16586         added to System.Type; these modifications make it match the spec
16587         again.
16588         (ves_icall_Type_GetGenericParameters): Renamed to
16589         `ves_icall_Type_GetGenericArguments'.
16590         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
16591         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
16592         `ves_icall_MonoType_get_HasGenericArguments'.
16593         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
16594         `ves_icall_MonoType_get_IsGenericParameter'.
16595         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
16596         this is no interncall anymore.
16597         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
16598         `ves_icall_TypeBuilder_get_IsGenericParameter'.
16599
16600 2003-10-14  Martin Baulig  <martin@ximian.com>
16601
16602         * reflection.c (mono_reflection_bind_generic_parameters): Also
16603         inflate generic methods if we're reading the class from IL.
16604
16605 2003-10-13  Martin Baulig  <martin@ximian.com>
16606
16607         * reflection.c (mono_reflection_define_generic_parameter): This
16608         method isn't called directly from the icall anymore; take a
16609         `MonoReflectionAssemblyBuilder *' so we can use this for type and
16610         method generic parameters.
16611         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
16612         (method_builder_encode_signature): Encode generic parameters.
16613         (mono_image_get_method_info): Write generic params to the
16614         MONO_TABLE_GENERICPARAM table.
16615
16616         * reflection.h (MonoReflectionMethodBuilder): Added
16617         `MonoArray *generic_params'.
16618
16619         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
16620
16621         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
16622         wrapper for mono_reflection_define_generic_parameter().
16623         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
16624
16625 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
16626
16627         * marshal.h: Add missing function to fix build.
16628
16629         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
16630         the SetLastError pinvoke attribute.
16631
16632         * marshal.c (mono_marshal_set_last_error): New helper function called
16633         by the generated code.
16634         
16635         * marshal.c (mono_mb_emit_branch): New helper function.
16636
16637         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
16638
16639         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
16640         classes as parameters and return values of delegates. Fixes #29256. 
16641
16642 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
16643
16644         * locales.c: use gint32 in non HAVE_ICU case
16645
16646 2003-10-11  Martin Baulig  <martin@ximian.com>
16647
16648         * mono-debug.c (mono_debug_add_method): Added a workaround for
16649         bug #48591.
16650
16651 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
16652
16653         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
16654         delegates passed to native code must use the STDCALL calling 
16655         convention. Fixes #35987.
16656
16657 2003-10-10  Martin Baulig  <martin@ximian.com>
16658
16659         * class.c (inflate_generic_type): If we're inflating for a generic
16660         type instance (and not for a generic method), return
16661         MONO_TYPE_MVAR unchanged.
16662
16663 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16664
16665         * string-icalls.c: Join ignores null strings in the source array.
16666         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
16667         * threads.c: GetAvailableTheads is slightly more accurate.
16668
16669 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
16670
16671         * threads.h threads.c : add mono_threads_set_default_stacksize
16672         and pass default to CreateThread calls.
16673
16674 2003-10-09  Dick Porter  <dick@ximian.com>
16675
16676         * icall.c:
16677         * locales.h:
16678         * locales.c: Internal calls for constructing CultureInfo and
16679         related objects from libicu (if its available.)
16680
16681 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
16682
16683         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
16684
16685 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16686
16687         * threadpool.c: added an argument to async_invoke_thread that is the
16688         item to process, pass the MonoAsyncResult to the thread start function
16689         when creating a new thread. This way we don't need to acquire any lock
16690         when we're creating a new thread. Readded a semaphore for faster
16691         response times (instead of that Sleep i added).
16692
16693 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
16694
16695         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
16696         get daylight change dates better on Windows, fix handling
16697         of platforms without tm_gmtoff.
16698
16699 2003-10-06  Martin Baulig  <martin@ximian.com>
16700
16701         * class.c (inflate_generic_method): Renamed to
16702         mono_class_inflate_generic_method() and made public.
16703         (mono_class_init): Don't inflate the generic methods here.
16704         (mono_class_from_generic): Added `gboolean inflate_methods'
16705         argument.  Inflate the methods here.
16706
16707         * loader.c (mono_method_get_param_names): Ignore instances of
16708         generic types for the moment.
16709
16710         * reflection.c (fixup_method): Added support for inflated methods.
16711         (mono_image_create_token): Use mono_image_get_methodref_token()
16712         for inflated methods.
16713         (mono_custom_attrs_from_param): Ignore instances of generic types
16714         for the moment.
16715         (mono_reflection_bind_generic_parameters): New public function.
16716         Moved all the functionality from
16717         ves_icall_Type_BindGenericParameters() here and added support for
16718         dynamic types.
16719         (mono_reflection_define_generic_parameter): Initialize
16720         `klass->methods' here.
16721
16722         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
16723         functionality into mono_reflection_define_generic_parameter().
16724         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
16725         TypeBuilder, return that TypeBuilder.
16726
16727 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16728
16729         * appdomain.c: removed mono_delegate_semaphore.
16730
16731         * threadpool.c:
16732         (mono_thread_pool_add): moved hash table creation inside and the thread 
16733         creation outside of the critical region.
16734         (mono_thread_pool_finish): removed obsolete code.
16735         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
16736         continue or exit the thread depending on the queue.
16737
16738 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
16739
16740         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
16741         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
16742         handle more bool marshalling options
16743
16744 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
16745
16746         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
16747         arrays of structs. Also add a more descriptive error message when
16748         a structure member is marshalled as LPArray.
16749
16750 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
16751
16752         * marshal.c (mono_marshal_get_native_wrapper): Add support for
16753         marshalling arrays of complex types. Fixes #29098. Also remove an
16754         usused and incomplete function.
16755
16756 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
16757
16758         * gc.c: report heap_size - free_bytes as total memory allocated
16759         (bug#49362).
16760
16761 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
16762
16763         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
16764         fix timezone handling problems on Windows.
16765         
16766         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
16767         asserts when the year is outside the range handled by ms the functions.
16768
16769         * class.c (setup_interface_offsets): If the class is an interface,
16770         fill out its interface_offsets slot.
16771
16772 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16773
16774         * threadpool.c: mark threadpool threads as background.
16775
16776 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
16777
16778         * decimal.c - define DECINLINE to nothing if not using GCC
16779
16780 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
16781
16782         * assembly.c: More refcount fixes.
16783
16784 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16785
16786         * string-icalls.c: if we're not trimming, return the same string.
16787         When not splitting, don't create a new string.
16788
16789 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16790
16791         * image.c:
16792         (mono_image_open): increment the ref_count inside the critical section.
16793
16794 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
16795
16796         * image.c (mono_image_open): Fix reference counting bug.
16797
16798 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
16799
16800         * marshal.c (mono_marshal_type_size) struct alignment changed for 
16801         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
16802         64bits. Avoid leak in mono_marshal_get_native_wrapper when
16803         mono_lookup_pinvoke_call throws.        
16804
16805 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
16806
16807         * reflection.c (mono_reflection_parse_type): Fix #49114.
16808
16809         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
16810         temporary workaround for cygwin header problem.
16811
16812         * object.c (mono_object_isinst): Synchronize this with the code
16813         generated by the JIT for casts.
16814
16815 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
16816
16817         * reflection.c (encode_type): Fix #38332.
16818
16819 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
16820
16821         * marshal.c (mono_marshal_method_from_wrapper): New function to return
16822         the original method from the wrapper method.
16823
16824 2003-09-25  Martin Baulig  <martin@ximian.com>
16825
16826         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
16827         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
16828         (ves_icall_Type_get_IsGenericInstance): New interncall.
16829
16830 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
16831
16832         * object.c: fix cast warning in big endian code.
16833
16834 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
16835
16836         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
16837         
16838 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16839
16840         * assembly.c: don't call check_env from mono_assembly_load. It's
16841         already done once in mono_assemblies_init and may cause headaches when
16842         multiple threads are loading assemblies.
16843
16844 2003-09-19  Martin Baulig  <martin@ximian.com>
16845
16846         * reflection.c (mono_reflection_define_generic_parameter): Don't
16847         allocate `klass->methods', set `klass->flags' to
16848         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
16849
16850 2003-09-18  Martin Baulig  <martin@ximian.com>
16851
16852         * class.c (mono_class_init): Don't create `class->methods' if it's
16853         already initialized.
16854
16855         * metadata.c (mono_metadata_load_generic_params): Make this
16856         actually work.
16857
16858         * reflection.c (mono_reflection_define_generic_parameter): Set
16859         parent class and interfaces from the constraints.
16860
16861         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
16862         to keep this struct in sync with the declaration in TypeBuilder.cs.
16863
16864 2003-09-17  Martin Baulig  <martin@ximian.com>
16865
16866         * metadata.h (MonoType): Replaced the data's `int type_param'
16867         field with `MonoGenericParam *generic_param'.
16868         (MonoGenericParam): Added `MonoClass *klass'.
16869
16870         * class.c (mono_class_from_gen_param): Removed the
16871         `MonoImage *image' and `int type_num' arguments.
16872
16873         * metadata.c (mono_metadata_parse_generic_param): New static
16874         method; creates a MonoGenericParam which just contains the index.
16875         (do_mono_metadata_parse_type): Call
16876         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
16877         MONO_TYPE_MVAR.
16878
16879         * reflection.c (mono_image_typedef_or_ref): Generic type
16880         parameters may be in the same assembly, but never use a typedef
16881         for them.
16882         (mono_reflection_define_generic_parameter): We're now creating a
16883         "real" class for the type parameter; it's now safe to call
16884         mono_class_from_mono_type() on the class'es type, it'll do the
16885         right thing.
16886
16887 2003-09-16  Martin Baulig  <martin@ximian.com>
16888
16889         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
16890         `symfile->range_entry_size' and `symfile->class_entry_size' here;
16891         the `symfile' data structure must be fully initialized before it
16892         gets added to the table.
16893
16894 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
16895
16896         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
16897
16898         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
16899         class init trampolines.
16900
16901 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
16902
16903         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
16904         to the built-in profiler to turn off time and allocation profiling
16905         respectively.
16906
16907 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
16908
16909         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
16910         g_direct_equal.
16911
16912         * debug-helpers.c (mono_method_full_name): Print the wrapper type
16913         in human readable form.
16914
16915 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
16916
16917         * reflection.c icall.c: Fixed warnings.
16918
16919         * image.c (load_class_names): Use a temporary hash table to hold the
16920         namespaces in order to avoid doing many string comparisons.
16921
16922         * image.h: Fix typo.
16923
16924         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
16925         Pass NULL instead of g_direct_equal to the GHashTable constructor 
16926         since the NULL case is short-circuited inside g_hash_table_lookup, 
16927         leading to better performance.  
16928
16929         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
16930         obtain the first custom attribute for a given index. Depends on the
16931         CustomAttribute table being sorted by the parent field.
16932
16933         * reflection.c (mono_custom_attrs_from_index): Use the new function 
16934         for better performance.
16935
16936 2003-09-07  Martin Baulig  <martin@ximian.com>
16937
16938         * class.c (mono_class_init): If we're a generic instance, inflate
16939         all our methods instead of loading them from the image.
16940         (mono_class_from_generic): Set `class->methods = gklass->methods'.
16941
16942 2003-09-07  Martin Baulig  <martin@ximian.com>
16943
16944         * mono-debug-debugger.c: Added support for constructors.
16945
16946 2003-09-06  Martin Baulig  <martin@ximian.com>
16947
16948         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
16949         New interncall.
16950
16951         * reflection.c (mono_reflection_setup_generic_class): Call
16952         ensure_runtime_vtable() to create the vtable.
16953
16954 2003-09-05  Martin Baulig  <martin@ximian.com>
16955
16956         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
16957         MONO_TYPE_MVAR.
16958
16959 2003-09-04  Martin Baulig  <martin@ximian.com>
16960
16961         * reflection.c (mono_reflection_define_generic_parameter): Generic
16962         parameters start with zero.
16963
16964 2003-09-04  Martin Baulig  <martin@ximian.com>
16965
16966         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
16967
16968         * reflection.h (MonoReflectionGenericParam): New typedef.
16969         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
16970         the generic parameters from the managed TypeBuilder.
16971
16972         * reflection.c (mono_reflection_define_generic_parameter): New function.
16973         (mono_reflection_create_runtime_class): Encode generic parameters.
16974         (mono_reflection_setup_generic_class): New function; this is
16975         called after adding adding all generic params to the TypeBuilder.
16976         (encode_type): Added MONO_TYPE_VAR.
16977
16978 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
16979
16980         * class.h class.c (mono_class_needs_cctor_run): Moved this method
16981         here from the JIT.
16982
16983         * assembly.h assembly.c: Moved the AOT loading code into an assembly
16984         load hook.
16985
16986 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
16987
16988         * reflection.h reflection.c class.h class.c: Delete duplicate 
16989         definition of mono_type_get_name () from reflection.c and export the
16990         one in class.c.
16991
16992         * class.c: Class loading fixes from Bernie Solomon 
16993         (bernard@ugsolutions.com).
16994
16995         * reflection.c: Endianness fixes from Bernie Solomon 
16996         (bernard@ugsolutions.com).
16997         
16998 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
16999
17000         * assembly.h assembly.c: Define a file format version for AOT
17001         libraries.
17002         
17003         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
17004
17005         * appdomain.h (MonoJitInfo): New field to determine whenever the
17006         code is domain neutral.
17007         
17008 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
17009
17010         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
17011
17012 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
17013
17014         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
17015         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
17016         Avoid caching the result since strings must be domain specific. Fixes
17017         #48050.
17018
17019 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
17020
17021         * marshal.c (mono_marshal_init): Make this callable multiple times
17022         since it is hard to find a correct place to call it.
17023
17024         * object.c (mono_runtime_class_init): Execute static constructors in
17025         the correct appdomain.
17026
17027         * image.c (build_guid_table): Handle the case when multiple images have
17028         the same GUID.
17029
17030 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17031
17032         * icall.c: added a couple of icalls for System.Web.
17033
17034 2003-08-28  Martin Baulig  <martin@ximian.com>
17035
17036         * icall.c (ves_icall_Type_BindGenericParameters): Use
17037         `klass->generic_inst' instead of `&klass->byval_arg' in the
17038         mono_type_get_object() call.  The returned type must be
17039         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
17040
17041 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
17042
17043         * NOTES: New file.
17044
17045         * object.c (mono_class_proxy_vtable): Make it thread safe.
17046
17047         * pedump.c: Fix warning.
17048
17049         * object.c appdomain.h: Get rid of metadata_section. 
17050         It is no longer needed and it was causing deadlocks with domain->lock.
17051
17052         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
17053
17054 2003-08-26  Martin Baulig  <martin@ximian.com>
17055
17056         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
17057
17058 2003-08-26  Martin Baulig  <martin@ximian.com>
17059
17060         * pedump.c (main): Call mono_metadata_init(),
17061         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
17062         and mono_loader_init().
17063
17064 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
17065
17066         * loader.h: Add missing include to fix build.
17067
17068         * image.h: mono_image_load_references is no more.
17069
17070         * assembly.c: Reworked assembly loading to make it really thread safe.
17071         After these changes, the assembly returned by mono_assembly_open is
17072         fully initialized, i.e. all its references assemblies are loaded.
17073
17074         * assembly.c (mono_image_load_references): Renamed to 
17075         mono_assembly_load_references, and made private, since clients no
17076         longer need to call it.
17077
17078         * class.c: Removed calls to mono_assembly_load_references, since it was
17079         a source of deadlocks.
17080
17081         * loader.h loader.c class.h class.c: Protect data structures using a 
17082         new lock, the loader lock.
17083
17084         * class.c (mono_class_setup_vtable): Create temporary hash tables and
17085         GPtrArrays only when needed.
17086
17087         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
17088         into empty structures by mcs. Fixes pinvoke7.cs.
17089         
17090         * domain.c (mono_init): Call a new initialization function.
17091
17092         * appdomain.c (mono_runtime_init): Call the new initializer function
17093         of the marshal module.
17094
17095         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
17096         inserted into empty structures by mcs. Fixes pinvoke7.cs.
17097
17098         * marshal.h marshal.c: Added locks around the wrapper caches to make
17099         this module thread safe.
17100
17101         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
17102         this argument. Fixes pinvoke1.exe.
17103
17104 2003-08-25  Lluis Sanchez <lluis@ximian.com>
17105
17106         * object.h: Added call_type field to MonoMethodMessage and the corresponding
17107         enumeration of values. Removed fields to store remote call output values in
17108         MonoAsyncResult. Not needed any more.
17109         * object.c: Initialize call_type and async_result fields in mono_message_init.
17110         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
17111         dispatching the message.
17112         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
17113         async call to finish. To do it use a message with EndInvoke call type.
17114
17115 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
17116
17117         * loader.h loader.c (mono_method_hash_marhal_info): New function which
17118         determines whenever a method has marshalling info.
17119
17120 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17121
17122         * assembly.c: fix the build on windows.
17123
17124 2003-08-22 Lluis Sanchez <lluis@ximian.com>
17125
17126         * object.cs: Fixed bug #47785.
17127
17128 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
17129
17130         * string-icalls.c (StringReplace): If their are no occurances of
17131         the old string found return a reference to the supplied
17132         string. This saves some memory and matches MS behavoir.
17133         
17134 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17135
17136         * socket-io.c: fixed compilation for systems that define AF_INET6
17137         and don't define SOL_IP/SOL_IPV6.
17138
17139 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
17140
17141         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
17142         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
17143
17144         * rawbuffer.c rawbuffer.h: Make this module thread safe.
17145
17146         * domain.c: Make this module thread safe.
17147
17148         * domain.c (mono_init): Call new initialization function.
17149
17150         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
17151         reference types too. Fixes #38812.
17152
17153         * image.c (mono_image_init): Fixed warnings.
17154
17155         * class.c (mono_class_from_typeref): Handle assembly load failure
17156         correctly.
17157
17158         * appdomain.c (add_assemblies_to_domain): Handle the case when
17159         the references of an assembly are not yet loaded.
17160
17161         * metadata.c image.c assembly.c: Moved initialization of global
17162         variables to a separate function called at startup since lazy 
17163         initialization of these variables is not thread safe.
17164         
17165         * image.c assembly.c: Made this module thread safe by adding locks in 
17166         the appropriate places.
17167
17168         * domain.c (mono_init): Call the new initialization functions of the
17169         three modules.
17170
17171 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
17172
17173         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
17174           make a direct call. It is proxy's work to make the call asynchronous.
17175           mono_delegate_end_invoke(): If the targe is a proxy, just collect
17176           the return values.
17177         * object.cs: mono_method_call_message_new(): read AsyncResult and
17178           state object from parameters list, if this info is requested.
17179         * object.h: Added fields to store remote call output values in
17180           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
17181
17182 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
17183
17184         * object.h: add needed fields to MonoThread.
17185         * threads.c, threads.h: allow registering a function to cleanup data
17186         allocated per thread by the JIT.
17187
17188 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
17189
17190         * loader.h: portability fix by Bernie Solomon
17191         * <bernard@ugsolutions.com>.
17192
17193 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
17194
17195         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
17196         return a MonoArray. This simplifies the code and also ensures that
17197         the cache allways contains an object reference as a value.
17198
17199         * icall.c (ves_icall_get_parameter_info): Simplified using the new
17200         function.
17201
17202 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17203
17204         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
17205         fixes a problem with byte ordering when getting the address family for
17206         a socket.
17207
17208 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
17209
17210         * .cvsignore: Added monosn.
17211
17212         * reflection.h reflection.c loader.c: Added support for parameter
17213         marshalling to dynamically created types. Fixes #47295.
17214
17215 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
17216
17217         * rand.c: remove useless warnings.
17218
17219 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
17220
17221         * class.c: implemented ldtoken for methods and fieldrefs.
17222
17223 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17224
17225         * threadpool.c: when mono_async_invoke was called, no one took care of
17226         monitoring the queue. So if the method invoked took some time and we
17227         got new async invoke requests after 500 ms (the thread created waited
17228         that long in WaitForSingleObject), the new async invoke was not called
17229         until the previous one finished.
17230
17231         This is fixed now. Thanks to Totte for helping with it.
17232
17233 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17234
17235         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
17236
17237 2003-08-11  Martin Baulig  <martin@ximian.com>
17238
17239         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
17240
17241 2003-08-06  Martin Baulig  <martin@ximian.com>
17242
17243         * mono-debug-debugger.c: Added support for static fields,
17244         properties and methods.
17245
17246 2003-08-06  Martin Baulig  <martin@ximian.com>
17247
17248         * mono-debug-debugger.c: Don't store the MonoString's vtable to
17249         make this work for applications with multiple application domains.
17250
17251 2003-08-04  Martin Baulig  <martin@ximian.com>
17252
17253         * mono-debug-debugger.c: Completely reworked the type support; the
17254         most important thing is that we're now just using one single
17255         `MonoType' instance per type.
17256
17257 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
17258
17259         * mono-endian.h, mono-endian.c, icall.c: Added icall
17260         ves_icall_System_Double_AssertEndianity to assert double word endianity
17261         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
17262
17263 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
17264
17265         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
17266         support, icalls and fixes.
17267
17268 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
17269
17270         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
17271         classes that are a punctuation character in .NET is not the same a
17272         g_unichar_ispunct.
17273
17274 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
17275
17276         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
17277
17278 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
17279
17280         * icall.c: Add new MemCopy internalcall.
17281         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
17282         Simplified code; It is not necessary to handle all the cases here,
17283         as the C# code takes care of it.  Only handle the case of the name
17284         resource embedded into the assembly.
17285
17286         Changed signature to return the data pointer and the size of the
17287         data. 
17288
17289 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
17290
17291         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
17292         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
17293
17294 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
17295
17296         * socket-io.c: ignore EINTR error in select.
17297
17298 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
17299
17300         * class.h, class.c: removed unused subclasses field in MonoClass.
17301
17302 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
17303
17304         * icall.c: improve fix of get_base_definition(). If the parent class
17305           doesn't have the mehod, look at the parent of the parent.
17306         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
17307           to check if a parameter is an in or out parameter
17308           (PARAM_ATTRIBUTE_IN is not set by default).
17309           mono_method_return_message_restore(): Use mono_class_value_size to
17310           get the size of a value type. mono_type_stack_size (parameterType)
17311           does not return the correct value if parameterType is byRef.
17312           mono_load_remote_field(), mono_load_remote_field_new(),
17313           mono_store_remote_field(), mono_store_remote_field_new():
17314           raise exception if the remote call returns an exception.
17315
17316 2003-07-28  Martin Baulig  <martin@ximian.com>
17317
17318         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
17319         method.  This is a wrapper around mono_runtime_invoke() which
17320         boxes the instance object if neccessary.
17321
17322 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
17323
17324         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
17325         metadata.h, row-indexes.h, verify.c: first cut of generics support.
17326
17327 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
17328
17329         * icall.c: disable mcs bug workaround.
17330
17331 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
17332
17333         * object.c (mono_runtime_class_init): Take the metadata_section
17334         mutex before obtaining the domain mutex.
17335
17336         * appdomain.h: Added definition of metadata_section mutex here. 
17337
17338         * object.c: define metadata_mutex here.
17339
17340 2003-07-24  Ravi Pratap  <ravi@ximian.com>
17341
17342         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
17343         fixed.
17344
17345 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
17346
17347         * reflection.c: Fix bug #46669
17348
17349 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17350
17351         * exception.c:
17352         * exception.h:
17353         * icall.c:
17354         * object.h: fill in the type name for TypeLoadException.
17355
17356 2003-07-23  Ravi Pratap  <ravi@ximian.com>
17357
17358         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
17359         relationship between TypeBuilders while compiling corlib) and bug
17360         45993 (Array types returned from the runtime while compiling
17361         corlib were from the loaded corlib).
17362
17363 2003-07-22  Martin Baulig  <martin@ximian.com>
17364
17365         * mono-debug-debugger.c: Reworked the type support a bit more;
17366         distinguish between types and classes.
17367
17368 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
17369
17370         * icall.c: add IsArrayImpl icall.
17371
17372 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
17373
17374         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
17375         initializing real_size only once. Also fix bug #46602.
17376
17377 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
17378
17379         * object.c: Renamed mono_metadata_section to metadata_section.
17380
17381 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
17382
17383         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
17384           empty array if the type is an array. Fixed.
17385           ves_icall_MonoMethod_get_base_definition: if the base method
17386           is abstract, get the MethodInfo from the list of methods of
17387           the class.
17388         * reflection.c: ParameterInfo.PositionImpl should be zero-based
17389           and it was 1-based. Fixed in mono_param_get_objects.
17390
17391 2003-07-20  Martin Baulig  <martin@ximian.com>
17392
17393         * mono-debug.h: Set version number to 31.
17394         (mono_debug_init): Added `MonoDomain *' argument.
17395
17396         * mono-debug-debugger.c: Reworked the type support; explicitly
17397         tell the debugger about builtin types; pass the `klass' address to
17398         the debugger.
17399
17400 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
17401
17402         * image.c: Allow new metadata tables to be loaded without a
17403         warning. Also update the warning message to give the new constant value.
17404                 
17405 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
17406
17407         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
17408         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
17409         array type representation changes.
17410
17411 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
17412
17413         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
17414         on Environment.Exit () call.
17415
17416 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
17417
17418         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
17419         requires a matching corlib.
17420
17421 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
17422
17423         * Changelog: My editor decided to add a CR to each line. Sorry about that.
17424           Committed again without the CRs.
17425         
17426 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
17427
17428         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
17429           getting it from the "this" socket instance. Did not work
17430           if the socket is a subclass of Socket.
17431           Also fixed bug #35371.
17432
17433 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
17434
17435         * metadata.c: fixed size for TypedByRef.
17436         * loader.c: when searching for a method, consider the vararg amrker.
17437         * unicode.c, decimal.c: constify some arrays.
17438
17439 2003-07-15  Dick Porter  <dick@ximian.com>
17440
17441         * socket-io.c: Fixed compilation for gcc < 3.2.
17442
17443         Fixed compilation for machines that don't have AF_INET6 (thanks to
17444         Bernie Solomon <bernard@ugsolutions.com> for that part.)
17445
17446         Fixed compile warnings.
17447         
17448         Fixed formatting and line endings.
17449
17450 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
17451
17452         * socket-io.h:
17453         * socket-io.c: Added IPv6 support.
17454
17455 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
17456
17457         * class.c (mono_class_is_assignable_from): New function to implement
17458         the is_assignable_from logic. Used by mono_object_isinst, 
17459         Type::IsAssignableFrom () and the interpreter.
17460
17461         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
17462         Object, even interfaces.
17463         
17464         * object.c (mono_object_isinst): Implement in terms of 
17465         is_assignable_from.
17466
17467         * icall.c (ves_icall_type_is_assignable_from): New icall.
17468
17469 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
17470
17471         * domain.c (foreach_domain): fix compiler warning.
17472
17473 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
17474
17475         * image.c (load_metadata_ptrs): use g_strndup because strndup is
17476         not available on all plattforms
17477
17478 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
17479
17480         * image.h image.c: Store the metadata version string in MonoImage.
17481         * icall.c: New icall to retrieve the image version.
17482         * reflection.c (create_dynamic_image): Fill in the image version field
17483         * reflection.c (build_compressed_metadata): Use the image version
17484         from the image structure.
17485
17486 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17487
17488         * appdomain.c: modified comment.
17489         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
17490         That will be its last iteration when mono_gc_cleanup is called from
17491         mono_runtime_cleanup and before the domain is unloaded.
17492
17493         Fixes bug #45962.
17494
17495 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
17496
17497         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
17498         attributes.
17499
17500 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
17501
17502         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
17503         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
17504         Bernie Solomon <bernard@ugsolutions.com>.
17505
17506 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
17507
17508         * object.c, object.h: provide mono_object_new_fast() for faster
17509         allocation in some special cases.
17510
17511 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
17512
17513         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
17514         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
17515
17516 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
17517
17518         * threadpool.c: fix leaks.
17519
17520 2003-07-01  Dick Porter  <dick@ximian.com>
17521
17522         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
17523         using MonoGHashTables.  Fixes threadpool bug posted to list.
17524
17525 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
17526
17527         * image.h, image.c: added support to load an assembly from a byte array.
17528         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
17529         assembly bundle support.
17530
17531 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
17532
17533         * threadpool.c (mono_thread_pool_add): keep a reference to the
17534         AsyncResult to prevent GC
17535
17536 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
17537
17538         * class.c: leak fix.
17539
17540 2003-06-25  Dick Porter  <dick@ximian.com>
17541
17542         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
17543         for the async object, the WaitHandle object will close the handle.
17544         Fixes bug 45321.
17545
17546 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
17547
17548         * class.c: in mono_array_class_get (), lookup from the hash with the
17549         same type we insert: this works around a bug in
17550         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
17551         lluis. The real fix will have to wait for after the release.
17552
17553 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
17554
17555         * icall.c: fix memory leak when getting type members.
17556
17557 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
17558
17559         * reflection.c: added more pubtoken special cases.
17560
17561 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
17562
17563         * class.c: handle field offset correctly when class size
17564         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
17565
17566 2003-06-20  Martin Baulig  <martin@ximian.com>
17567
17568         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
17569         *image' field.
17570
17571 2003-06-20  Martin Baulig  <martin@ximian.com>
17572
17573         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
17574
17575 2003-06-20  Martin Baulig  <martin@ximian.com>
17576
17577         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
17578         just distinguish between variables in registers and variables at
17579         an offset relative to a register.
17580
17581 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17582
17583         * icall.c: #ifdef out latest changes until mcs is fixed.
17584
17585 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
17586
17587         * icall.c: return members in metadata order.
17588
17589 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
17590
17591         * icall.c: avoid infinite loop in GetTimeZoneData.
17592
17593 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
17594
17595         * icall.c: added Marshal.Prelink/All icalls.
17596
17597 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
17598
17599         * object.c, object.h: fix warnings and do some overflow checking
17600         when creating arrays.
17601
17602 2003-06-17  Dick Porter  <dick@ximian.com>
17603
17604         * file-io.h:
17605         * file-io.c: File attributes need to be tweaked slightly when
17606         passed from the managed to the w32 world.
17607
17608 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
17609         * profiler.h profiler-private.h profiler.c: Rework last patch
17610         based on suggestion by Paolo.
17611         
17612 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
17613
17614         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
17615         instruction level coverage data collection.
17616         * profiler.h profiler.c (: Added new callback function which can be
17617         used by the profiler to limit which functions should have coverage
17618         instrumentation.
17619         * profiler.c (mono_profiler_load): Call g_module_build_path to
17620         generate the file name of the profiler library.
17621
17622 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
17623
17624         * profiler.c, profiler.h, profiler-private.h: added basic block 
17625         coverage profiling API.
17626
17627 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
17628
17629         * reflection.c (mono_reflection_create_runtime_class): Add support
17630         for events in dynamically generated code.
17631
17632         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
17633         not allocated.
17634
17635 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
17636
17637         * icall.c: when getting timezone info, return reasonable values if we
17638         can't get the actual data.
17639
17640 2003-06-14  Dick Porter  <dick@ximian.com>
17641
17642         * threads.c (start_wrapper): Remove the reference to the thread
17643         object in the TLS data, so the thread object can be finalized.
17644         This won't be reached if the thread threw an uncaught exception,
17645         so those thread handles will stay referenced :-( (This is due to
17646         missing support for scanning thread-specific data in the Boehm GC
17647         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
17648
17649 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
17650
17651         * reflection.c: ensure streams and tables are first allocated with
17652         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
17653
17654 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
17655
17656         * icall.c: fixed GetElementType for byrefs (bug# 44792).
17657
17658 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
17659
17660         * reflection.c (mono_reflection_create_runtime_class): Add support for
17661         properties to dynamically created classes.
17662         * reflection.c: Fix a few places where non-MonoObjects were inserted
17663         into the tokens hashtable.
17664
17665 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
17666
17667         * object.c: some support to handle out of memory exceptions.
17668
17669 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
17670
17671         * marshal.c (mono_marshal_get_native_wrapper): support reference
17672         return types
17673
17674 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
17675
17676         * object.h, object.c: more portability stuff from Bernie Solomon.
17677         Unexport mono_object_allocate(). Added mono_object_unbox ().
17678         Set exitcode when an unhandled exception is thrown.
17679
17680 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
17681
17682         * marshal.c (mono_marshal_get_native_wrapper): use custom
17683         marshaler for return types.
17684
17685 2003-06-10  Dick Porter  <dick@ximian.com>
17686
17687         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
17688         ip_mreq is available
17689
17690 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
17691
17692         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
17693         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
17694         by Bernie Solomon <bernard@ugsolutions.com>.
17695
17696 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
17697
17698         * gc.c (mono_gc_init): Avoid error message on shutdown when
17699         GC_DONT_GC=1 is used.
17700
17701         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
17702         New icall to return the GUID of a module.
17703
17704 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
17705
17706         * class.c: ensure instance size always includes the parent's size
17707         even whem class size is set explicitly (fixes bug#44294).
17708
17709 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
17710
17711         * profiler.h, profiler.c: made the simple profiler thread-safe,
17712         get more accurate timing info. Allow the loading of an
17713         externally-developed profiler module.
17714
17715 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
17716
17717         * marshal.c (mono_marshal_get_native_wrapper): improved
17718         class/byref arguments.
17719         (mono_marshal_get_native_wrapper): better string marshaling support.
17720
17721 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
17722
17723         * class.c: ensure .pack and .size are handled correctly and
17724         simplified layout of static fields.
17725
17726 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
17727
17728         * appdomain.c
17729         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
17730
17731         * loader.c (mono_lookup_pinvoke_call): look for modules in the
17732         current directory (fix bug 44008)
17733
17734 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
17735
17736         * marshal.c (mono_marshal_get_native_wrapper): started support for
17737         custom marshalers.
17738         (mono_delegate_to_ftnptr): consider marshalling specifications
17739
17740 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
17741
17742         * reflection.c, reflection.h: emit custom marshal info.
17743
17744 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17745
17746         * object.c: free the GError.
17747         * icall.c: added CloseEvent_internal.
17748         * threads.[ch]:
17749         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
17750         call.
17751
17752 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
17753
17754         * loader.c (mono_method_get_signature): Add support for dynamic
17755         assemblies.
17756
17757 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
17758
17759         * reflection.c: fixed bug #43905.
17760
17761 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
17762
17763         * class.c, domain.c, icall.c, metadata.h, object.h: support for
17764         handling TypedReference and ArgIterator.
17765         * loader.c, loader.h: added function to get signature at call site.
17766
17767 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
17768
17769         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
17770         data readonly. Buglets and warning fixes. Some MethodSpec support.
17771
17772 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
17773
17774         * class.h, class.c, object.c: remove relative numbering support.
17775
17776 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
17777
17778         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
17779         free the string, until we get a chance to fix Gtk#
17780
17781 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17782
17783         * marshal.c: revert last patch.
17784
17785 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
17786
17787         * icall.c: updates for new mono_class_vtable() not calling
17788         the type constructor anymore.
17789
17790 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
17791
17792         * object.h, object.c: separate vtable creation from type
17793         initialization. Make running the .cctor thread safe.
17794
17795 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
17796
17797         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
17798
17799 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
17800
17801         * loader.c (mono_get_method): consider calling convention
17802
17803 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
17804
17805         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
17806         to return the invisible global type for a module.
17807
17808         * reflection.c (mono_image_build_metadata): Emit global fields too.
17809
17810 2003-05-20  Peter Williams  <peterw@ximian.com>
17811
17812         * loader.c (mono_lookup_internal_call): Add a few newlines.
17813
17814 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
17815
17816         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
17817         literal strings.
17818
17819         * appdomain.c (set_domain_search_path): Recalculate search path when
17820         AppDomainSetup.PrivateBinPath changes.
17821
17822         * object.c (mono_class_compute_gc_descriptor): It turns out some
17823         parts of the class libs (like System.Thread) holds pointers to
17824         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
17825         to treat native int a pointer type here.
17826         
17827 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
17828
17829         * appdomain.h, domain.c: add hashtable for jump target resolution.
17830
17831 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
17832
17833         * reflection.h reflection.c icall.c: Added new icalls 
17834         GetManifestResourceInfoInternal, GetModulesInternal and support
17835         infrastructure.
17836
17837 2003-05-16  Dick Porter  <dick@ximian.com>
17838
17839         * icall.c:
17840         * file-io.h:
17841         * file-io.c: Implement System.IO.MonoIO::GetTempPath
17842
17843 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
17844
17845         * object.c: mono_store_remote_field: little fix to previous patch.
17846
17847 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
17848
17849         * class.c: add constructors to array classes.
17850         * icall.c: special case array construction for InternalInvoke (),
17851
17852 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
17853
17854         * class.h class.c reflection.c object.c: Added support for field
17855         defaults in dynamically generated classes.
17856
17857 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
17858
17859         * reflection.c: properly encode charset for ddlimport.
17860
17861 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
17862
17863         * threads.c: allow compiling without GC.
17864
17865 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
17866
17867         * appdomain.h, object.c, object.h, threads.c, threads.h: added
17868         handling of thread static data.
17869
17870 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
17871
17872         * reflection.h, reflection.c: added mono_custom_attrs_free ().
17873
17874 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
17875
17876         * class.c (mono_array_class_get): always set the serializable flags
17877         (mono_array_class_get): always set the SEALED attribute for array types
17878
17879 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
17880
17881         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
17882         attributes (fix for bug 42021).
17883
17884 2003-05-12  Dick Porter  <dick@ximian.com>
17885
17886         * gc.c: Don't run finalizers when the finalizer thread is
17887         finishing up, because the default domain has already been
17888         destroyed.
17889
17890 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
17891
17892         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
17893         value is null, we should throw an exception.   This is slightly
17894         different than the other conventions used for the constructor.
17895
17896 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17897
17898         * socket-io.c: fixed windows build.
17899
17900 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17901
17902         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
17903
17904 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
17905
17906         * object.c (mono_string_new_wrapper): Compatibility fix for MS
17907         compilers.
17908
17909 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
17910
17911         * class.c (mono_class_layout_fields): Add experimental GC aware
17912         auto layout facility. Requires class library changes to work correctly.
17913
17914         (mono_class_setup_vtable): Avoid overriding explicit interface
17915         method implementations. Fixes iface3.exe test.
17916
17917         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
17918         object reference.
17919         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
17920         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
17921
17922         * metadata.h: Add new type classification macro which determines
17923         whenever the type holds an object reference.
17924
17925 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
17926
17927         * marshal.c (mono_marshal_get_native_wrapper): cleanups
17928
17929 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
17930
17931         * gc.c (finalizer_thread): Work around a GC bug.
17932
17933 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
17934
17935         * marshal.c (emit_struct_conv): allow unions
17936
17937         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
17938
17939 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
17940
17941         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
17942
17943 2003-05-06  Martin Baulig  <martin@ximian.com>
17944
17945         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
17946
17947 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17948
17949         * socket-io.c:
17950         (Select_internal): allow NULLs, don't create arrays if not needed.
17951         Coupled with Socket.cs changes.
17952
17953         * threadpool.c:
17954         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
17955         register a finalizer for it that will close the semaphore handle. This
17956         fixes the leak and make Lupus' test run with > 4080 loops.
17957
17958 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
17959
17960         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
17961         Jerome Laban (bug #42287)
17962
17963 2003-05-02  Martin Baulig  <martin@ximian.com>
17964
17965         * debug-mono-symfile.h
17966         (MonoSymbolFile): Moved declaration into mono-debug.h.
17967         (MonoDebugMethodJitInfo): Likewise.
17968         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
17969         argument.
17970         (_mono_debug_address_from_il_offset): Take a
17971         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
17972
17973         * mono-debug.h
17974         (MonoDebugDomainData): New struct.
17975         (mono_debug_get_domain_data): New function.
17976         (mono_debug_add_method): Take an additional `MonoDomain *'
17977         argument.
17978         (mono_debug_source_location_from_address): Likewise.
17979         (mono_debug_il_offset_from_address): Likewise.
17980         (mono_debug_address_from_il_offset): Likewise.
17981
17982 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
17983
17984         * reflection.c: one more check for null type in custom attrs.
17985
17986 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17987
17988         * reflection.c: avoid warning (comparison is always false due to limited
17989         range of data type).
17990
17991 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17992
17993         * icall.c: throw an exception in Type.GetField if the argument 'name'
17994         is NULL.
17995
17996 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
17997
17998         * reflection.c: fixed handling of enums in named arguments to custom
17999         attributes (bug #42123).
18000
18001 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
18002
18003         * reflection.c: use the right array element type and handle
18004         a null for a Type argument, too.
18005
18006 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
18007
18008         * reflection.c: handle arrays as arguments to custom attributes.
18009
18010 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
18011
18012         * reflection.c: handle a string value in a custom attr
18013         ctor that takes an object.
18014
18015 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
18016
18017         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
18018         (fix bug #42063)
18019
18020 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
18021
18022         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
18023
18024 2003-04-27  Martin Baulig  <martin@ximian.com>
18025
18026         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
18027         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
18028         MONO_DEBUGGER_EVENT_BREAKPOINT.
18029         (mono_breakpoint_trampoline_code): Removed.
18030         (mono_debugger_event_handler): The last argument is now a
18031         `guint32'.
18032         (mono_debugger_insert_breakpoint_full): Removed the
18033         `use_trampoline' argument.
18034         (mono_debugger_method_has_breakpoint): Likewise.
18035         (mono_debugger_trampoline_breakpoint_callback): Renamed to
18036         mono_debugger_breakpoint_callback(); take the method and
18037         breakpoint number as arguments.
18038
18039 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
18040
18041         * metadata.c: fix off by one when loading parameters attributes.
18042
18043 2003-04-24  Martin Baulig  <martin@ximian.com>
18044
18045         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
18046
18047 2003-04-24  Martin Baulig  <martin@ximian.com>
18048
18049         * mono-debug-debugger.c: Moved all code which interacts with the
18050         Mono Debugger here.
18051
18052         * debug-mono-symfile.c: This code now just deals with the symbol
18053         file itself, the debugger code is now in mono-debug-debugger.c.
18054
18055 2003-04-23  Martin Baulig  <martin@ximian.com>
18056
18057         * mono-debug.c (mono_debug_source_location_from_il_offset):
18058         New method; like mono_debug_source_location_from_address(), but
18059         takes an IL offset instead of a machine address.
18060
18061 2003-04-23  Martin Baulig  <martin@ximian.com>
18062
18063         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
18064         `line' field; this is now computed by the debugger.
18065
18066 2003-04-23  Martin Baulig  <martin@ximian.com>
18067
18068         * mono-debug.[ch]: New files.  This is the new debugging interface.
18069
18070         * mono-debug-debugger.[ch]: New files.  Moved all code which
18071         interacts with the Mono Debugger here.
18072
18073 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
18074
18075         * domain.c (mono_init): initialize mono_defaults.monitor_class
18076
18077 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
18078
18079         * reflection.c (method_encode_code): Add a spicy exception to help
18080         future compiler authors.
18081
18082 2003-04-21  Martin Baulig  <martin@ximian.com>
18083
18084         * icall.c
18085         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
18086         Make this work with relative pathnames; g_filename_to_uri() needs
18087         an absolute filename.
18088
18089 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
18090
18091         * icall.c: Track name changes in Object and ValueType.
18092
18093 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
18094
18095         * metadata.c (mono_type_stack_size): size should be a multiple of
18096         sizeof (gpointer)
18097
18098 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18099
18100         * gc.c:
18101         (internal_domain_finalize): moved into mono_domain_finalize. No need
18102         to create another thread because the finalizers will be run in the
18103         finalizer thread.
18104         
18105         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
18106         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
18107         to be run (MS does this too).
18108
18109 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
18110
18111         * object.c (mono_class_compute_gc_descriptor): Update comment.
18112
18113         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
18114
18115         * image.h: Add synchronized wrapper cache.
18116
18117         * image.c (do_mono_image_open): Initialize cache.
18118
18119         * reflection.c (create_dynamic_mono_image): Initialize cache.
18120
18121 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18122
18123         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
18124         ves_icall_System_Buffer_ByteLengthInternal.
18125
18126 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
18127
18128         * reflection.c: setup klass->nested_in earlier. Allow
18129         a dash in the assembly name.
18130
18131 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
18132
18133         * metadata.c (mono_type_to_unmanaged): dont access
18134         type->data.klass for MONO_TYPE_OBJECT
18135         (mono_type_to_unmanaged): consider System.Delegate class
18136
18137 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
18138
18139         * class.c: just setup supertypes in the proper place instead of
18140         initializing the full element class for arrays.
18141
18142 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
18143
18144         * class.c: ensure the element class of arrays is initialized.
18145         Setup the supertype info for array classes, too.
18146
18147 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
18148
18149         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
18150
18151 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18152
18153         * Makefile.am: re-added -m option when running cygpath. This way,
18154         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
18155         separator.
18156         * mono-config.c: same codepath for locating mono config file for WIN32
18157         and the rest.
18158         * assembly.c: if mono_assembly_setrootdir is called, don't override
18159         the value set.
18160
18161 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18162
18163         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
18164         MONO_ASSEMBLIES variable.
18165
18166 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
18167
18168         * icall.c: added Assembly::GetNamespaces() icall.
18169
18170 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18171
18172         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
18173
18174 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
18175
18176         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
18177         * object.c: fixed bug in the construction of vtable for proxies
18178
18179 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
18180
18181         * object.c (mono_array_new): Mark mono_array_new as an icall.
18182
18183 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18184
18185         * class.c: fixed test for public method when overriding interfaces.
18186         Closes bug #40970.
18187
18188 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
18189
18190         * appdomain.h, domain.c: added mono_domain_foreach() to
18191         be able to access the currently loaded appdomains.
18192         * object.c: make string interning work across sppdomains.
18193         Mark some functions for use as icalls.
18194
18195 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
18196
18197         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
18198
18199         * reflection.h reflection.c: Allocate long living data using 
18200         GC_MALLOC_ATOMIC so the collector does not need to scan it.
18201
18202         * reflection.c: Double the allocation size in streams instead of
18203         increasing it, to prevent unneccesary copying on large assemblies.
18204         
18205         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
18206         creation if the assembly does not have the Run flag set.
18207
18208 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
18209
18210         * class.h: avoid the C++ keywords in header files (Jerome Laban
18211         spotted and fixed this).
18212
18213 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18214
18215         * object.c:
18216         (mono_unhandled_exception): fill in the arguments for the
18217         UnhandledException event. Only trigger that event for the default
18218         domain (as MS does).
18219
18220 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
18221
18222         * object.c: Improve typed allocation stuff based on suggestions from
18223         Paolo. Also turn it on if the GC library supports it.
18224
18225 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
18226
18227         * object.c object.h class.h: Added experimental typed allocation
18228         facility using the interfaces in gc_gcj.h.
18229
18230         * os/gc_wrapper.h: Added new include files.
18231         
18232 2003-04-03  Martin Baulig  <martin@ximian.com>
18233
18234         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
18235         which is not yet enabled by default.
18236
18237         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
18238         functions.
18239         (mono_gc_lock, mono_gc_unlock): New static functions.
18240
18241         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
18242         functions; stop/start the world for the garbage collector.  This
18243         is using the windows API; we need to complete the SuspendThread()/
18244         ResumeThread() implementation in the io-layer to make this work on Unix.
18245         (mono_gc_push_all_stacks): New public function; tells the garbage
18246         collector about the stack pointers from all managed threads.
18247
18248 2003-04-03  Martin Baulig  <martin@ximian.com>
18249
18250         * object.h (MonoThread): Added `gpointer stack_ptr'.
18251
18252         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
18253
18254 2003-04-03  Martin Baulig  <martin@ximian.com>
18255
18256         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
18257
18258 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
18259
18260         * reflection.c (typebuilder_setup_fields): Initialize field.first and
18261         field.last.
18262
18263 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
18264
18265         * loader.c (mono_lookup_internal_call): Report the corlib that is
18266         out of sync.
18267
18268 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
18269
18270         * icall.c (ves_icall_type_GetTypeCode): fixed check for
18271         System.DBNull (it's class not valuetype).
18272
18273 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
18274
18275         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
18276         if the array method was already assigned a token (fixes bug#40646).
18277
18278 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
18279
18280         * reflection.c (mono_reflection_get_type): Attempt type resolve even
18281         if no assembly is given.
18282
18283 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
18284
18285         * metadata.h: Added the new tables.
18286
18287         * row-indexes.h: Added definitions for new tables.
18288
18289         * metadata.c: Add schemas for new tables, and add support for
18290         computing the sizes of them.
18291
18292         * class.c: Update for handling the new type cases.
18293
18294 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
18295
18296         * metadata.h (MONO_TYPE_IS_VOID): new macro
18297
18298 2003-03-31  Martin Baulig  <martin@ximian.com>
18299
18300         * threads.h (MonoThreadCallbacks): Added `thread_created'.
18301
18302         * threads.c (mono_thread_new_init): Call `thread_created' in the
18303         mono_thread_callbacks.
18304
18305 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
18306
18307         * loader.h: added marshalbyrefobject_class to mono_defaults
18308         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
18309         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
18310           generation of output parameters.
18311           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
18312         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
18313           contextbound and the target object belongs to the context of the caller.
18314         * object.h: added context and unwrapped_server variables in MonoRealProxy.
18315         * object.c: Implemented support for interfaces and abstract classes
18316           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
18317           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
18318
18319 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
18320
18321         * class.h class.c (mono_class_is_subclass_of): New function.
18322         
18323         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
18324         routines for most common case (calls from ArrayList::ToArray).
18325
18326         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
18327         routine so programs which call Environment::Exit() can be profiled.
18328
18329         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
18330         Added MONO_ARCH_SAVE_REGS.
18331
18332         * icall.c (ves_icall_type_is_subtype_of): Use new function.
18333
18334 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
18335
18336         * blob.h: Add a couple of new MonoType types definitions.
18337
18338         * tabledefs.h: Add a couple of new call convs.
18339
18340 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
18341
18342         * reflection.h (MonoReflectionDynamicAssembly): track changes in
18343         the layout of the class.
18344
18345         * reflection.c (alloc_table): double the size on overflow to avoid
18346         unnecessary copying.
18347
18348         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
18349         avoid filling out metadata tables and blobs. Also set mb->ilgen to
18350         null so it can be garbage collected.
18351         
18352 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
18353
18354         * reflection.c (mono_reflection_get_type): Return the resolved type
18355         only if it is in the assembly we searched.
18356
18357         * reflection.c (ensure_runtime_vtable): Initialize method slots.
18358
18359         * class.c (mono_class_setup_vtable): Set the slot of the overriding
18360         method.
18361
18362 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18363
18364         * appdomain.c:
18365         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
18366         the right one is 'file:///blah', but MS allows it.
18367         * assembly.c:
18368         (mono_assembly_open): allow 'file://blah'
18369
18370         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
18371
18372 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
18373
18374         * socket-io.c: fixes bug #40310.
18375
18376 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
18377
18378         * reflection.c (mono_reflection_parse_type): handle deeply nested
18379         types correctly.
18380
18381         * reflection.c (mono_image_create_token): Use unique token values
18382         since they will be put into a hash table.
18383
18384         * class.c (mono_class_setup_vtable): If a method occurs in more than
18385         one place in the vtable, and it gets overriden, then change the
18386         other occurances too.
18387
18388         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
18389         object as return type.
18390
18391 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
18392
18393         * icall.c: Deleted "ToString" implementation for double and float
18394         because they are full implemented in managed code.
18395
18396 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
18397
18398         * reflection.c, reflection.h: implemented and exported functions
18399         to retrieve info about custom attributes.
18400
18401 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18402
18403         * appdomain.c: moved Uri handling to assembly.c
18404         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
18405         work when using a file Uri in *nix and windows.
18406
18407         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
18408         GetReferencedAssemblies.
18409
18410 2003-03-18  Dick Porter  <dick@ximian.com>
18411
18412         * icall.c: Rename a couple of internal calls
18413
18414         * threads.c: Set the thread state to Stopped when a thread exits.
18415         Fixes bug 39377.
18416
18417 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
18418
18419         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
18420         New icall.
18421
18422         * object.c (mono_class_vtable): fix warning.
18423
18424 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
18425
18426         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
18427
18428         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
18429         memory.
18430         (method_encode_clauses): Create exception info structures in the right
18431         order.
18432         (mono_reflection_setup_internal_class): Initialize supertypes field.
18433
18434         * class.c object.c: Handle interfaces which implement other interfaces 
18435         correctly.
18436
18437         * class.h class.c: Move the supertypes array initialization code into 
18438         a separate function so it can be used for dynamic types too. Also call
18439         it earlier, in mono_class_init(), since it can be used before the
18440         type is initialized.
18441
18442 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18443
18444         * Makefile.am:
18445         * assembly.c:
18446         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
18447
18448         * appdomain.c:
18449         * appdomain.h:
18450         * marshal.c:
18451         * object.c: remove warnings.
18452
18453 2003-03-13  Martin Baulig  <martin@ximian.com>
18454
18455         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
18456         (MonoDebugLexicalBlockEntry): New types.
18457
18458         * debug-mono-symfile.c
18459         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
18460
18461 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18462
18463         * process.c: ret can be any non-zero value accroding to MS doc.
18464
18465 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
18466
18467         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
18468         fixing a warning for a miss-used prototype, would have cause
18469         random memory corruption.
18470
18471 2003-03-07  Martin Baulig  <martin@ximian.com>
18472
18473         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
18474         getting really annoying ....
18475
18476 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
18477
18478         * reflection.c (fixup_method): added support for array methods.
18479
18480 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
18481
18482         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
18483         (pointed out by Michael Adams).
18484
18485 2003-03-04  Dick Porter  <dick@ximian.com>
18486
18487         * icall.c: Temporarily reverted the Double and Single ToString()
18488         change, because it broke nunit.
18489
18490 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
18491
18492         * object.h, threads.h: make include files compatible with C++
18493         (patch by Jerome Laban <jlaban@wanadoo.fr>).
18494
18495 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
18496
18497         * icall.c: Erased ToString helper functions for Double and Single.
18498         Now, that implementations ar all in managed code (Double and Single
18499         Formatters).
18500
18501 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
18502
18503         * appdomain.c: Added method for initializing the default context of
18504         a domain. Added internal call for getting the default context.
18505         * appdomain.h: Added context variable in MonoDomain struct.
18506         * domain.c: mono_domain_set also sets the default context of the domain
18507         * icall.c: Mapped internal method InternalGetDefaultContext.
18508         * object.c: mono_object_get_virtual_method returns always a remoting
18509         wrapper if the object is a transparent proxy.
18510         mono_runtime_invoke_array: when creating an object by calling the
18511         constructor, if the created object is a proxy, then the constructor should
18512         be called using the a remoting wrapper.
18513
18514 2003-03-03  Dick Porter  <dick@ximian.com>
18515
18516         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
18517         variable so it compiles on solaris.  Problem spotted by
18518         Christopher Taylor <ct@cs.clemson.edu>
18519
18520 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18521
18522         * appdomain.c:
18523         (get_info_from_assembly_name): don't leak value.
18524
18525         * icall.c:
18526         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
18527         result.
18528
18529 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
18530
18531         * assembly.c: export mono_image_load_references ().
18532         * class.c: handle function pointers. mono_class_from_name() now
18533         supports nested type names directly.
18534
18535 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
18536
18537         * reflection.h reflection.c: Encode already created dynamic methods 
18538         and fields correctly as a DEF instead of a REF.
18539
18540         * reflection.c: Get rid of the force_ref argument to 
18541         mono_image_typedef_or_ref since it was wrong in the first place.
18542
18543         * string-icalls.c: add error checking to string constructors according
18544         to the MSDN docs.
18545
18546         * reflection.c: Emit types in the order their TypeBuilders were 
18547         created. Previously, a new table index was assigned to each type before
18548         the tables were emitted. This was wrong because the signature blob
18549         might already refer to a type by its original table index.
18550
18551 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
18552
18553         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
18554         change.
18555         
18556 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18557
18558         * Makefile.am: make assemblies dir have \ instead of / on windows.
18559
18560 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
18561
18562         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
18563         iterate over the NESTEDCLASS table using a linear search since the
18564         table is not guaranteed to be sorted by the secondary key.
18565
18566         * class.c (mono_class_create_from_typedef): fixed up call to
18567         mono_metadata_nesting_typedef.
18568         
18569 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
18570
18571         * marshal.c (mono_string_to_byvalstr): clear the memory as
18572         suggested by Jerome Laban <jlaban@wanadoo.fr>
18573
18574 2003-02-26  Dick Porter  <dick@ximian.com>
18575
18576         * process.c: Cope with padding in .rsrc blocks
18577
18578 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
18579
18580         * metadata.h: reverted the filter_len change, it breaks reflection
18581         
18582 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
18583
18584         * metadata.h: added a new field to store the filter_len
18585         
18586
18587 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
18588
18589         * reflection.c: handle custom attributes for types and members
18590         created with Reflection.Emit (bug#38422).
18591
18592 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
18593
18594         * reflection.c: define RTSpecialName automatically for constructors for
18595         compatibility with MS.NET.
18596
18597         * reflection.c (mono_reflection_create_runtime_class): initialize
18598         nested_in field of dynamically created classes.
18599
18600 2003-02-22  Martin Baulig  <martin@ximian.com>
18601
18602         * debug-mono-symfile.h: Incremented version number.
18603
18604 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
18605
18606         * object.h icall.c process.c: fix warnings.
18607
18608 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
18609
18610         * appdomain.h appdomain.c:
18611         (mono_domain_try_type_resolve): split the 
18612         name_or_tb argument into a name and a tb argument.
18613         (mono_domain_has_type_resolve): new function to check whenever the
18614         application has registered a TypeResolve event handler.
18615         
18616         * icall.c reflection.h reflection.c: move the type resolve logic into
18617         mono_reflection_get_type () so it will be invoked when 
18618         Assembly::GetType () is called.
18619
18620         * reflection.c:
18621         (mono_reflection_get_type): renamed to get_type_internal.
18622         (mono_reflection_get_type): fixed type name generation so it works 
18623         for nested types too.
18624         (mono_reflection_get_type): call has_type_resolve () to avoid the 
18625         costly type name generation if there is no resolve event handler.
18626
18627 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
18628
18629         * class.c, image.c: load exported types from file references.
18630
18631 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
18632
18633         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
18634           used to cache the managed methods used to create proxies and make 
18635           remote invocation of methods.
18636         * class.h: Added in MonoVTable a flag to indicate that a class needs 
18637           to be remotely created.
18638         * object.c: Modified the method mono_class_vtable(). It now initializes 
18639           the remote flag of the vtable. Modified mono_object_new_specific(), 
18640           so now it checks the remote flag.
18641         * icall.c: Added a couple of internal methods, one for enabling instance 
18642           creation interception for a type, and one for creating objects bypassing
18643           the remote check.
18644
18645 2003-02-18  Martin Baulig  <martin@ximian.com>
18646
18647         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
18648         New interncall to get a method's metadata token.
18649
18650         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
18651         New interncall for the debugger.
18652
18653 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
18654
18655         * class.c (mono_class_setup_vtable): allocate supertype array
18656
18657 2003-02-18  Martin Baulig  <martin@ximian.com>
18658
18659         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
18660
18661 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18662
18663         * reflection.c:
18664         (assembly_name_to_aname): jump over unknown properties (i've found
18665         something like: 'type, assembly, version=xxx, custom=null, public...',
18666         so now will ignore custom=null and still get the rest of the values).
18667
18668 2003-02-17  Dick Porter  <dick@ximian.com>
18669
18670         * threads.c: Have Thread.Start() wait for a semaphore to signal
18671         that the thread has set up all its local data.  This fixes bug
18672         34323, where Abort() raced the new thread's TLS data.
18673
18674         Also removes the handle_store() call from start_wrapper, because
18675         threads are now always created suspended and there is no longer a
18676         race between the parent and child threads to store the info.
18677
18678 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
18679
18680         * image.c: explain the #- heap issue in a message, hopefully
18681         avoiding FAQs on mono-list.
18682
18683 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18684
18685         * icall.c:
18686         (GetEntryAssembly): if the domain has not invoked
18687         AppDomain.ExecuteAssembly yet, return the assembly of the default
18688         AppDomain.
18689
18690 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
18691
18692         * class.c (mono_ldtoken): make it work in dynamic assemblies.
18693
18694 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
18695
18696         * metadata.c, reflection.c: simple speedup to type hash
18697         and equals code.
18698
18699 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
18700
18701         * image.c, image.h, class.c, assembly.c: move module loading
18702         to MonoImage. When loading metadata, consider alignemnet from
18703         the start of metadata, not from the metadata address in memory.
18704
18705 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
18706
18707         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
18708         AssemblyBuilder objects. Factored out custom attribute creation into
18709         a separate function.
18710         (create_custom_attr): new function to create custom attributes.
18711
18712 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
18713
18714         * Makefile.am: Got tired of typing the full pathname to pedump.
18715         Until there is another option, am installing this.
18716
18717 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
18718
18719         * class.c (class_compute_field_layout): always set field->parent 
18720         (mono_ldtoken): use mono_defaults.fieldhandle_class;
18721
18722 2003-02-11  Dick Porter  <dick@ximian.com>
18723
18724         * threads-types.h:
18725         * monitor.c: Rewrote Monitor, making lock much faster and
18726         Pulse/Wait work as specified.  Also uses much fewer handles, and only
18727         creates them as needed.
18728
18729         * exception.c: Added SynchronizationLockException
18730
18731         * threads.c: Deleted old Monitor implementation.  The new one is
18732         in a new file.
18733
18734 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
18735
18736         * class.c: handled TypedReference type code. Set the correct size for
18737         class data. Setup interface_offsets for interface classes, too.
18738
18739 2003-02-09  Martin Baulig  <martin@ximian.com>
18740
18741         * debug-mono-symfile.h: Reflect latest symbol writer changes.
18742
18743 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
18744
18745         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
18746         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
18747         * object.c: fixed mono_object_get_virtual_method () for interfaces.
18748         * verify.c: check for code that runs after the end of the method.
18749
18750 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
18751
18752         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
18753         "System.Math::Round2".
18754         * sysmath.h: Added Floor, Round and Round2 definitions.
18755         * sysmath.c: Modified certain functions that were not 100% compliant
18756         with MS.NET (math precision) and added the implementation of Floor,
18757         Round and Round2.
18758
18759 2003-02-07  Martin Baulig  <martin@ximian.com>
18760
18761         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
18762
18763 2003-02-07  Martin Baulig  <martin@ximian.com>
18764
18765         * debug-mono-symfile.c: Reflected latest symwriter changes.
18766         (mono_debug_create_mono_symbol_file): Removed.
18767         (mono_debug_open_mono_symbol_file): Take an argument which
18768         specifies whether to create a dynamic symbol file.
18769
18770 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
18771
18772         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
18773
18774 2003-02-05  Martin Baulig  <martin@ximian.com>
18775
18776         * reflection.c (mono_image_build_metadata): Make this public,
18777         protect it against being called multiple times, don't create
18778         resources and don't build the compressed metadata here.
18779         (mono_image_create_pefile): Do this here.
18780
18781         * icall.c
18782         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
18783
18784 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18785
18786         * socket-io.c: fixed bug #36322.
18787
18788 2003-02-06  Piers Haken <piersh@friskit.com>
18789
18790         * appdomain.[ch]:
18791         * class.h:
18792         * debug-mono-symfile.c:
18793         * icall.c:
18794         * loader.c:
18795         * mono-config.c:
18796         * monosn.c:
18797         * reflection.c:
18798         * socket-io.c: warning cleanups
18799
18800 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
18801
18802         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
18803         function. works like remoting invoke, but does a check for the Proxy first.
18804
18805 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
18806
18807         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
18808
18809 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
18810
18811         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
18812         array of pointers.
18813         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
18814         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
18815
18816         * object.c (mono_store_remote_field_new): used by the new jit
18817         instead of mono_store_remote_field
18818         (mono_load_remote_field_new): used by the new jit
18819         instead of mono_load_remote_field
18820
18821 2003-02-05  Patrik Torstensson
18822
18823         * appdomain.c: changed unload to take the domain id instead
18824         of domain
18825         
18826         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
18827
18828
18829 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18830
18831         * appdomain.c: don't look for assemblies in ApplicationBase if
18832         PrivateBinPathProbe is set.
18833
18834 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18835
18836         * object.c: make the first argument in main_args contain the absolute
18837         path to the assembly. Fixes bug #37511.
18838
18839 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18840
18841         * icall.c: get correct UTC offset for countries not using daylight
18842         time saving. Fixes bug #30030.
18843
18844 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18845
18846         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
18847         and 1 are the family).
18848
18849 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
18850
18851         * icall.c (ves_icall_InternalExecute): removed wrong assertion
18852
18853         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
18854
18855 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
18856
18857         * reflection.c: added support for SignatureHelper tokens, which is
18858         needed by the Calli opcode.
18859
18860         * reflection.h: track changes to SignatureHelper class.
18861
18862         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
18863
18864 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18865
18866         * appdomain.c: fixed loading assemblies from PrivateBinPath.
18867
18868 2003-02-03  Patrik Torstensson
18869         * appdomain.[c|h], domain.c : 
18870          - Added support for getting a domain via domain id
18871          - Support for setting and getting domain from System.AppDomain 
18872            (used in cross appdomain channel)
18873          - Added support for get/set for a MonoAppContext on a thread 
18874            (Context class in System.Runtime.Remoting.Contexts),
18875          - Removed hack in Get/SetData and ExecuteAssembly.
18876         
18877         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
18878         the managed world to get control when a proxy is created.
18879
18880         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
18881         
18882 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
18883
18884         * icall.c
18885         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
18886         Populate the codebase field as well.
18887
18888 2003-02-02  Martin Baulig  <martin@ximian.com>
18889
18890         * debug-mono-symfile.c
18891         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
18892         (mono_debug_symfile_add_method): Allow interncalls.
18893
18894 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18895
18896         * icall.c: throw parse exception if strtod fails or the string is empty.
18897
18898 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
18899
18900         * marshal.c: handle object type separately from defined
18901         class types.
18902
18903 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
18904
18905         * marshal.c: handle NATIVE_LPSTR for strings when it's
18906         explicitly specified.
18907
18908 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
18909
18910         * reflection.c, reflection.h, icall.c: setup the reflection
18911         handle cache for ModuleBuilders and AssemblyBuilders.
18912
18913 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
18914
18915         * reflection.c (reflection_methodbuilder_to_mono_method): set
18916         pinvoke flag
18917
18918 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18919
18920         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
18921
18922 2003-01-29  Dick Porter  <dick@ximian.com>
18923
18924         * threads.c: No need for the fake_thread kludge now that Thread
18925         doesn't run a class constructor
18926         
18927 2003-01-29  Dick Porter  <dick@ximian.com>
18928
18929         * threads.c: Use g_direct_hash instead of the rather bogus
18930         g_int_hash
18931
18932 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
18933
18934         * marshal.c (mono_marshal_get_native_wrapper): add check for null
18935         (fix pinvoke12.exe)
18936         (mono_marshal_get_struct_to_ptr): generate valid IL code
18937         (mono_marshal_get_ptr_to_struct): generate valid IL code
18938         (*): correctly set sig->pinvoke, we need to memdup the signature
18939         to do that
18940
18941 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
18942
18943         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
18944         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
18945
18946 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
18947
18948         * profiler.c: provide more callers information.
18949
18950 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
18951
18952         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
18953
18954         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
18955
18956         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
18957
18958 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18959
18960         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
18961         exception instead of going into an infinite loop on dates which it 
18962         can't yet handle.
18963
18964         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
18965         out-of-range exception if needed.
18966
18967         * class.c (mono_class_setup_vtable): allow a virtual method to provide
18968         an implementation for an interface method and to override an inherited
18969         method at the same time. 
18970         Imagine a scenario when a virtual method is used to override a
18971         virtual abstract method in a parent class, and this same method 
18972         provides an implementation for an method inherited from an interface. 
18973         In this case, the interface resolution code will set im->slot, which 
18974         means that the virtual method override pass will skip this method 
18975         which means a pointer to the abstract method inherited from the parent
18976         will remain in the vtable of this non-abstract class.
18977
18978         * class.c: (mono_class_setup_vtable): continue search for a real 
18979         method if only an abstract method is found.     
18980
18981 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
18982
18983         * reflection.c: add size to encoding for ByValStr and ByValArray
18984         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
18985
18986 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18987
18988         * class.c (mono_class_setup_vtable): pass the override info as an
18989         argument.
18990
18991         * class.c (mono_class_setup_vtable): set the slot of overriding methods
18992         correctly.
18993         
18994         * reflection.c (ensure_runtime_vtable); add support for method 
18995         overrides.
18996         
18997 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18998
18999         * reflection.c (resolution_scope_from_image): Hack to work to work with
19000         dynamic assemblies.
19001
19002         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
19003         added a 'force_ref' argument to force this function to allways return 
19004         a TypeRef. This is needed by mono_image_get_memberref_token ().
19005         
19006 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
19007
19008         * reflection.c (mono_image_get_type_info): interfaces really don't have
19009         a parent.
19010
19011         * reflection.c (mono_image_basic_init): fill out missing fields of
19012         image structure.
19013
19014         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
19015         dynamic assemblies. This is required so dynamic assemblies show up in
19016         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
19017         Type::GetType() etc. This is consistent with MS behaviour.
19018
19019         * image.c image.h reflection.c: add newly created classes to the name 
19020         cache so mono_class_get () will find them.      
19021
19022 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
19023
19024         First part of changes to get IKVM.NET running under mono.
19025         
19026         * appdomain.h, appdomain.c: added new function 
19027         mono_domain_try_type_resolve() which will emit TypeResolve events. 
19028         This function will call AppDomain::DoTypeResolve to do the actual work.
19029
19030         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
19031         moved existing code dealing with dynamic tokens to a new function 
19032         called mono_reflection_lookup_dynamic_token (). This function will 
19033         raise TypeResolve events when appropriate. Since reflection.c is not 
19034         part of libmetadata, a new hook function called 
19035         mono_lookup_dynamic_token() is added to class.c which will call this.
19036
19037         * assembly.h assembly.c: make the invoke_load_hook function public,
19038         so it can be called for dynamic assemblies.
19039
19040         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
19041
19042         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
19043         type isn't found.
19044
19045         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
19046         MonoGHashTable, since it contains pointers to objects which the GC 
19047         needs to track.
19048
19049         * assembly.c (search_loaded): remove unused variable.
19050         
19051 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
19052
19053         * object.c: fixed issue exposed by gcc-generated IL programs
19054         that use RVA data for pointers.
19055
19056 2003-01-25  Martin Baulig  <martin@ximian.com>
19057
19058         * threads.c (start_wrapper): Moved the initialization of
19059         `start_func' above the mono_new_thread_init() call to which we
19060         pass it as argument.
19061
19062 2003-01-24  Martin Baulig  <martin@ximian.com>
19063
19064         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
19065         the MonoThread pointer.
19066
19067 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
19068
19069         * icall.c: Rename `PowImpl' to Pow.
19070
19071 2003-01-23  Dick Porter  <dick@ximian.com>
19072
19073         * threads.c (start_wrapper): Create a Thread object if needed, so
19074         the Main() thread can do the class initialisation in a subthread
19075         that has been set up to allow managed code execution.
19076
19077         Pass the thread ID instead of the MonoThread pointer to the thread
19078         start and attach callbacks.  This change is required, because the
19079         jit thread start callback must be called _before_ the Thread
19080         object can be created.
19081         
19082         (mono_thread_init): Removed much object creation code that is no
19083         longer needed.  No managed code is called from here now.
19084
19085         * object.c (mono_runtime_exec_managed_code): Create a subthread
19086         for Main, and call back to the runtime to use it.
19087         Set the exit code when Main exits.
19088
19089         * gc.c: Make sure domain finalisation happens in a subthread.
19090         Re-enable threaded GC, fixing bug 31333 (again).
19091
19092         * environment.c: System.Environment internall calls (so far just
19093         ExitCode is here, the others are still in icall.c)
19094
19095         * appdomain.c (mono_runtime_cleanup): All threads running managed
19096         code should have finished before mono_runtime_cleanup() is
19097         reached, so no need to clean up threads.
19098
19099 2003-01-22  Martin Baulig  <martin@ximian.com>
19100
19101         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
19102         `gpointer func' arguments.      
19103         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
19104         but added `MonoThread *thread' argument.
19105         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
19106
19107         * threads.c (mono_new_thread_init): Added `gpointer func' argument
19108         and pass it to the mono_thread_start_cb callback.
19109         (mono_install_thread_callbacks): New public function to install a
19110         set of callbacks which are set by the debugger.
19111         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
19112
19113 2003-01-22  Martin Baulig  <martin@ximian.com>
19114
19115         * Makefile.am: Install debug-mono-symfile.h.
19116
19117 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
19118
19119         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
19120
19121 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
19122
19123         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
19124         * class.c (mono_ptr_class_get): correctly set access levels of pointers
19125         (mono_array_class_get): correctly set access levels of arrays
19126
19127 2003-01-20      Patrik Torstensson
19128         * image.h (MonoAssemblyName): changed major, minor, build, revision
19129         from signed to unsigned.
19130
19131 2003-01-20  sean kasun <skasun@azstarnet.com>
19132
19133         * reflection.c (load_cattr_value): Now this handles
19134         MONO_TYPE_SZARRAY.  Fixes bug #35629
19135
19136 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
19137
19138         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
19139         integer value
19140
19141 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19142
19143         * decimal.c: fixed bug #26056.
19144
19145 2003-01-17  Martin Baulig  <martin@ximian.com>
19146
19147         * gc.c: Raise an ExecutionEngineException instead of using g_error().
19148
19149 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19150
19151         * exception.[ch]:
19152         (mono_get_exception_type_initialization): new function.
19153
19154         * object.c: throw a TypeInitializationException when an exception is
19155         thrown invoking the class constructor.
19156
19157 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19158
19159         * reflection.c: fixed attribute reading.
19160
19161 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19162
19163         * icall.c:
19164         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
19165         provided, look for the type in the calling assembly and then in
19166         mscorlib; if the assembly name is provided, only try that one.
19167
19168 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
19169
19170         * object.c: register the vtable before there is a chance it's
19171         queried again recursively.
19172
19173 2003-01-13  Duncan Mak  <duncan@ximian.com>
19174
19175         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
19176         gc-internal.h. 
19177         
19178 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
19179
19180         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
19181
19182 2003-01-11  Martin Baulig  <martin@ximian.com>
19183
19184         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
19185         this to 20 for the release.
19186
19187 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
19188
19189         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
19190
19191         * loader.c (mono_method_get_marshal_info): bug fix
19192
19193         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
19194         structures with explicit layout
19195
19196 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
19197
19198         * profiler.c: made the output more readable (and sorted). 
19199         Added caller information for the allocation profiler.
19200
19201 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
19202
19203         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
19204
19205 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19206
19207         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
19208         to get value types.
19209         
19210 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
19211
19212         * object.c, profiler.h, profiler.c, profiler-private.h:
19213         Added object allocation profiler.
19214
19215 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
19216
19217         * reflection.h, reflection.c: handle global methods.
19218         Compress blob entries.
19219
19220 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
19221
19222         * marshal.c: fix compilation.
19223
19224 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
19225
19226         * loader.c (mono_method_get_marshal_info): impl.
19227
19228         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
19229
19230 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19231
19232         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
19233         for reference types.
19234
19235 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
19236
19237         * loader.c: fixed off by one error in loaded parameter names.
19238
19239 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
19240
19241         * marshal.c (mono_marshal_get_icall_wrapper): like
19242         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
19243         instead of a MonoMethod.
19244
19245 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19246
19247         * decimal.c: fixed bug #36537.
19248
19249 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
19250
19251         * marshal.c: throw a missing method exception if a
19252         P/Invoke method is not found.
19253
19254 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
19255
19256         * icall.c: allow a null this for constructors.
19257
19258 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
19259
19260         * icall.c: raise the proper exceptions if the arguments to the
19261         internal Invoke are incorrect.
19262
19263 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
19264
19265         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
19266
19267 2003-01-03  Martin Baulig  <martin@ximian.com>
19268
19269         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
19270
19271 2002-12-31  Martin Baulig  <martin@ximian.com>
19272
19273         * debug-mono-symfile.c: Completely rewrote the type section.
19274         Instead of using individual malloc()ed fields, we use one big
19275         continuous memory area and offsets into this area.
19276         See the comments in the source code for details.
19277
19278 2002-12-30  Martin Baulig  <martin@ximian.com>
19279
19280         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
19281
19282 2002-12-30  Martin Baulig  <martin@ximian.com>
19283
19284         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
19285         line number table in this data blob instead of using an external
19286         pointer.
19287
19288 2002-12-28  Martin Baulig  <martin@ximian.com>
19289
19290         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
19291
19292 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
19293
19294         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
19295         as a boxed return type.
19296
19297 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
19298
19299         * appdomain.c
19300         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
19301         g_build_filename to properly get separators on the filename created.
19302
19303         * object.h: Small change, introduce MonoMarshalByRefObject to
19304         track the layout of that structure in the C# universe as we make
19305         changes there.
19306
19307 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
19308
19309         * object.c: removed assert to allow static fields on interfaces.
19310         * loader.c: a TypeSpec may be used for any type, not just arrays.
19311
19312 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19313
19314         * class.c, class.h: added mono_class_array_element_size ().
19315         Ignore static methods in interfaces.
19316
19317 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19318
19319         * threads.c: fixed the build under cygwin.
19320
19321 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
19322
19323         * reflection.c: handle nullref constants. Allocate keys for
19324         reflection handles with the GC.
19325
19326 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
19327
19328         * threads.c, threads.h: added mono_thread_get_abort_signal()
19329         to get a suitable signal for thread abort.
19330
19331 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
19332
19333         * metadata.c: fix handling of ExportedType table.
19334
19335 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19336
19337         * icall.c: added WriteWindowsDebugString internal call.
19338
19339 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19340
19341         * reflection.h: added fields to match C# implementation.
19342
19343 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19344
19345         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
19346
19347 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
19348
19349         * gc.h, gc-internal.h: Rename header for GC internal calls to
19350         gc-internal.h from gc.h as to not clash with Boehm GC having its
19351         header installed as <gc.h> in outside include paths.
19352         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
19353         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
19354
19355 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19356
19357         * icall.c: assign minor, build and revision in FillName.
19358
19359 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
19360
19361         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
19362         Added support for running code generated by Reflection.Emit.
19363
19364 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19365
19366         * appdomain.c: check for NULL argument in LoadFrom.
19367
19368 2002-12-10  Dick Porter  <dick@ximian.com>
19369
19370         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
19371
19372 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19373
19374         * appdomain.c: fix buglet when building exe file name.  Handle full
19375         assembly name (needed after latest changes to AssemblyName).
19376         * image.c:
19377         (mono_image_close): free some hashtables.
19378
19379 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
19380
19381         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
19382         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
19383         on some systems (redhat 7.3) 
19384
19385 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
19386
19387         * threads.c: delete the critical section of a sync block,
19388         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
19389
19390 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
19391
19392         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
19393
19394 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19395
19396         * appdomain.[ch]: handle the assembly preload event to try loading the
19397         assemblies using the paths we have in the current domain.
19398
19399         * assembly.[ch]: created an assembly preload hook that is called to try
19400         loading the assembly by other means that the ones provided here.
19401
19402         * domain.c: initialize the domain search path.
19403
19404         From now on, assemblies (TODO: except corlib and System) are loaded
19405         according to these rules when using mono_assembly_load ():
19406
19407                 1. It tries to load the assembly from the ApplicationBase
19408                 of the current domain appending .dll and .exe (TODO: have to
19409                 try loading from name/name.dll and name/name.exe).
19410
19411                 2. It tries the search path specified in PrivateBinPath for the
19412                 current domain (if any).
19413
19414                 3. Previous behavior.
19415
19416 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
19417
19418         * icall.c: implemented GetInterfaceMap() related icall.
19419         * domain.c, loader.h: load MethodInfo in mono_defaults.
19420
19421 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
19422
19423         * gc.c: disable the finalizer thread for now, untill all the issues
19424         with it are resolved.
19425
19426 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19427
19428         * string-icalls.c: handle embedded nulls in string ctor when the
19429         length is specified.
19430
19431 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
19432
19433         * class.c: look for explicit interface implementation in parent
19434         classes, too.
19435
19436 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
19437
19438         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
19439
19440 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
19441
19442         * gc.c: protect handles with a critical section.
19443
19444 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19445
19446         * icall.c:
19447         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
19448         parameters. If no assembly specified, try getting the type from all
19449         the assemblies in the current domain, else, load the assembly and get
19450         the type from it.
19451
19452 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19453
19454         * marshal.c: applied patch from Aleksey Demakov that fixes
19455         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
19456
19457 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19458
19459         * icall.c: fixed get_location.
19460
19461 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
19462
19463         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
19464         declarations to make it work with older gcc. 
19465
19466         * loader.c (mono_get_method): set signature->pinvoke for native calls
19467
19468 2002-11-20  Dick Porter  <dick@ximian.com>
19469
19470         * threads.c (mono_thread_init): Set the main thread's handle
19471
19472 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
19473
19474         * gc.c: allow compilation without GC support. Changed to match the
19475         mono coding style.
19476
19477 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19478
19479         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
19480
19481 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
19482
19483         * reflection.c: set a public key token on the core assemblies.
19484
19485 2002-11-18  Dick Porter  <dick@ximian.com>
19486
19487         * threads.c: Split out some thread initialisation so that other
19488         files can set the start callback function.
19489
19490         * gc.c: Run finalisers in a separate thread, to avoid stack
19491         overflow.  Fixes bug 31333.
19492
19493         * appdomain.c: Set up GC finalisation thread.
19494
19495         * reflection.c: 
19496         * object.c: 
19497         * domain.c: Use gc.h macros for GC_malloc
19498         
19499 2002-11-15  Dick Porter  <dick@ximian.com>
19500
19501         * threadpool.c: 
19502         * threads.c:
19503         * appdomain.c: Removed mono_runtime_init_with_attach(),
19504         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
19505         merging the extra parameter with the existing function.  Removed
19506         unneeded code in mono_thread_attach().
19507
19508 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
19509
19510         * image.c (mono_image_loaded_by_guid): a method to get loaded
19511         images by guid. 
19512         (load_metadata_ptrs): we store the guid as string.
19513
19514 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
19515
19516         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
19517
19518         * metadata.c (mono_guid_to_string): imported method form Zoltan
19519         Varga (slightly modified)
19520
19521         * assembly.c (mono_assembly_open): load precompiled code
19522
19523         * loader.h (MonoMethod): we store the method token for use in the
19524         aot compiler. 
19525
19526 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19527
19528         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
19529         the hook function called when an assembly is loaded.
19530         
19531         * domain.c: Modified file.
19532         (mono_domain_assembly_load): removed hash table insertion of assemblies.
19533
19534         Fixes bug #33196.
19535
19536 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
19537
19538         * reflection.c: Map PEFileKind to the value expected by the WinNT
19539         image loader. 
19540
19541 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19542
19543         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
19544         Read until the buffer is filled completely.
19545
19546 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19547
19548         * icall.c: implemented MonoType.InternalGetEvent ().
19549
19550 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19551
19552         * appdomain.c: implemented InitAppDomainSetup. Delayed
19553         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
19554         the entry_assembly.
19555
19556         * assembly.c: base_dir is now an absolute path ending with
19557         G_DIR_SEPARATOR.
19558
19559         * icall.c: modified get_location according to the above changes.
19560
19561         * object.c: init AppDomain.SetupInformation for the default domain after
19562         we have the entry assembly.
19563
19564         * domain.c: when unloading a domain, setup = NULL.
19565
19566 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
19567
19568         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
19569
19570 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
19571
19572         * object.h, object.c: introduced mono_object_get_virtual_method ()
19573         to lookup the method invoked on an object when a callvirt is done on
19574         a method.
19575         * icall.c: make MethodInfo::Invoke() always do a virtual call.
19576
19577 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19578
19579         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
19580         current domain when loaded an assembly and failed to load it.
19581
19582         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
19583
19584 2002-10-31  Dick Porter  <dick@ximian.com>
19585
19586         * icall.c: 
19587         * file-io.h: 
19588         * file-io.c: Return the error status in a parameter, as the
19589         GetLastError() value has long since been blown away if we try and
19590         look it up in a subsequent internal call invocation.  Delete the
19591         GetLastError() internal call, because it's useless.
19592
19593 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
19594
19595         * class.[ch]: added cast_class to fix bug 29517
19596
19597 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
19598
19599         * marshal.c: create valid IL code in the filter clause:
19600         the new JIT is less forgiving:-)
19601
19602 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19603
19604         * icall.c: removed get_property internal call.
19605
19606 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
19607
19608         * appdomain.h domain.c: Added an ID to appdomains.
19609         
19610         * threads.c threads.h icall.c: Implement icall
19611         Thread:GetDomainID(), and remove unused icall 
19612         CurrentThreadDomain_internal.
19613
19614 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19615
19616         * icall.c: Don't recurse through the base types in GetConstructor.
19617         Fixes bug #32063. 
19618
19619 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
19620
19621         * mempool.h, mempool.c: added mono_mempool_empty() and
19622         mono_mempool_stats().
19623
19624 2002-10-23  Dick Porter  <dick@ximian.com>
19625
19626         * file-io.c: 
19627         * file-io.h: 
19628         * icall.c: Added MonoIO.GetFileType internal call
19629
19630 2002-10-17  Dick Porter  <dick@ximian.com>
19631
19632         * appdomain.c (mono_runtime_cleanup): Don't signal the async
19633         delegate semaphore before waiting for all threads to finish,
19634         because new threads can also call async delegates.  Fixes bug
19635         32004.
19636
19637         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
19638         of 3 seconds, in case another async job is queued.  (This part is
19639         needed because the bug fix reintroduced the 3s exit lag.)  This
19640         makes the mono_runtime_shutdown flag superfluous.
19641
19642 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
19643
19644         * reflection.c: include ehader size in method section headers.
19645         Really check for suplicated modules entries.
19646
19647 2002-10-17  Martin Baulig  <martin@gnome.org>
19648
19649         * debug-mono-symfile.c: Added back support for locals.
19650
19651 2002-10-14  Martin Baulig  <martin@gnome.org>
19652
19653         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
19654         MONO_TYPE_VOID.
19655
19656 2002-10-14  Martin Baulig  <martin@gnome.org>
19657
19658         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
19659         mono_class_get() instead of looking in the class cache. 
19660
19661 2002-10-13  Martin Baulig  <martin@gnome.org>
19662
19663         * debug-mono-symfile.c: Set version number to 28, include the
19664         signature in method names.
19665
19666 2002-10-13  Martin Baulig  <martin@gnome.org>
19667
19668         * debug-mono-symfile.h: Set version number to 27.
19669
19670 2002-10-11  Martin Baulig  <martin@gnome.org>
19671
19672         * gc.c: Don't register/unregister NULL pointers as disappearing links.
19673
19674 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19675
19676         * metadata.c, metadata.h: added helper function to allocate signatures.
19677
19678 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19679
19680         * icall.c: added internal call to get the location of machine.config.
19681
19682 2002-10-08  Martin Baulig  <martin@gnome.org>
19683
19684         * debug-mono-symfile.c: Ignore classes with a pending init for the
19685         moment.
19686
19687 2002-10-03  Dick Porter  <dick@ximian.com>
19688
19689         * threads.c: Freebsd pthread_t is a pointer
19690
19691 2002-10-03  Dick Porter  <dick@ximian.com>
19692
19693         * socket-io.c: Implemented GetHostName_internal
19694
19695 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19696
19697         * mono-config.c:
19698         (mono_config_parse_file): don't leak the text.
19699
19700 2002-10-02  Martin Baulig  <martin@gnome.org>
19701
19702         * debug-mono-symfile.c: Added support for methods.
19703
19704 2002-10-01  Martin Baulig  <martin@gnome.org>
19705
19706         * debug-mono-symfile.c: Don't emit methods and line numbers for
19707         the dynamic symbol file, just write the type table.  We can easily
19708         have an external helper program which creates a symbol file for an
19709         IL file.        
19710
19711 2002-10-01  Dick Porter  <dick@ximian.com>
19712
19713         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
19714         Only add the handle to the cleanup array when we're about to
19715         launch the thread.  Bug 31425 deadlocked when the test was run on
19716         mono under w32.
19717
19718 2002-10-01  Martin Baulig  <martin@gnome.org>
19719
19720         * debug-mono-symfile.c: Added support for properties.
19721
19722 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
19723
19724         * reflection.c: unaligned store fix from Mark Crichton
19725         <crichton@gimp.org>.
19726
19727 2002-09-27  Martin Baulig  <martin@gnome.org>
19728
19729         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
19730         New interncall.
19731
19732 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
19733
19734         * assembly.h, assembly.c: use a sane API to hook into the assembly
19735         loading process instead of a useless special-purpouse hack
19736         (ngen needs a hook, too, for example).
19737
19738 2002-09-27  Dick Porter  <dick@ximian.com>
19739
19740         * threads.c (mono_thread_init): Call GetCurrentProcess() so
19741         io-layer can set up some process handle info.  Not needed on w32,
19742         but doesn't hurt either.
19743
19744         * process.c: Pass the program name in the second parameter to
19745         CreateProcess, so the path is searched.  Include the working
19746         directory. Implemented process name, process enumeration, and some
19747         process detail internal calls.
19748         
19749         * icall.c: Added internal calls for process lookup, and some
19750         process details
19751
19752 2002-09-26  Martin Baulig  <martin@gnome.org>
19753
19754         * assembly.c (mono_install_open_assembly_hook): New global
19755         function to install a function to be invoked each time a new
19756         assembly is loaded.
19757         (mono_assembly_open): Run this callback function if set.
19758
19759         * debug-mono-symfile.c: Put back line numbers for the dynamic
19760         symbol file and also record the .il file as source file.  This
19761         allows us to install the temporary symbol file as `file.dbg' just
19762         like a compiler-generated one.
19763
19764 2002-09-26  Nick Zigarovich <nick@chemlab.org>
19765
19766         * Corrected typo in gc.c (BOHEM vs BOEHM).
19767
19768 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19769
19770         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
19771         GetProperties. Also avoid calling g_slist_length in GetProperties and
19772         GetMethods.
19773
19774 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
19775
19776         * reflection.c: avoid unaligned stores (bug spotted by
19777         Mark Crichton  <crichton@gimp.org>).
19778
19779 2002-09-25  Martin Baulig  <martin@gnome.org>
19780
19781         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
19782         instead of guint64 for addresses and added prologue/epilogue info.
19783
19784 2002-09-25  Martin Baulig  <martin@gnome.org>
19785
19786         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
19787         store line number info.  For the dynamic symbol file, we only need
19788         to provide the JIT generated dynamic line number info for the dynamic
19789         symbol file.
19790
19791 2002-09-25  Martin Baulig  <martin@gnome.org>
19792
19793         * debug-mono-symfile.h: Incremented version number.
19794
19795 2002-09-24  Martin Baulig  <martin@gnome.org>
19796
19797         * class.c (mono_debugger_class_init_func): New global function
19798         pointer variable.
19799         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
19800         call it.
19801
19802         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
19803         function.  This is called via the mono_debugger_class_init_func
19804         hook to add all types to the dynamic type table.
19805         (ves_icall_MonoDebugger_GetType): New interncall to get a class
19806         from its metadata token.
19807
19808         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
19809         New interncall for the debugger.
19810
19811 2002-09-24  Nick Drochak <ndrochak@gol.com>
19812
19813         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
19814         before using it in case it is null.
19815         
19816 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19817
19818         * metadata.c: allow custom modifiers in local var signatures
19819         (bug spotted by Zoltan Varga).
19820
19821 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
19822
19823         * class.c: deal with the <Module> class that may have a NULL vtable.
19824         Eliminate warnings.
19825
19826 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19827
19828         * image.c, image.h: more strong name helpers.
19829         * monosn.c: more work: convert pem keys to cryptoapi format.
19830
19831 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
19832
19833         * string-icalls.c: speedup IndexOf.
19834
19835 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19836
19837         * icall.c: updates from Zoltan.2.Varga@nokia.com.
19838
19839 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19840
19841         * icall.c: cleanup: use mono_object_domain ().
19842
19843 2002-09-23  Martin Baulig  <martin@gnome.org>
19844
19845         * debug-mono-symfile.c: Improved type support.
19846
19847 2002-09-22  Martin Baulig  <martin@gnome.org>
19848
19849         * debug-mono-symfile.c: Added support for reference types and strings.
19850
19851 2002-09-22  Martin Baulig  <martin@gnome.org>
19852
19853         * debug-mono-symfile.c: Started to work on the type table.
19854
19855 2002-09-21  Martin Baulig  <martin@gnome.org>
19856
19857         * debug-mono-symfile.c: Largely reworked the symbol table format.
19858         The symbol table is now incrementally updated each time a new
19859         method is added.  We're now also using our own magic and version
19860         so that you don't need to recompile all your classes if the
19861         dynamic table changes.
19862         (mono_debug_update_mono_symbol_file): Removed.
19863         (mono_debug_symfile_add_method): New function to add a method.
19864
19865 2002-09-21  Martin Baulig  <martin@gnome.org>
19866
19867         * icall.c
19868         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
19869         New interncall.
19870
19871         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
19872         New interncall to get a method from its metadata token.
19873
19874 2002-09-21  Martin Baulig  <martin@gnome.org>
19875
19876         * debug-mono-symfile.c: Create type table.
19877
19878 2002-09-20  Martin Baulig  <martin@gnome.org>
19879
19880         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
19881
19882 2002-09-20  Martin Baulig  <martin@gnome.org>
19883
19884         * debug-mono-symfile.c: Provide information about params and locals.
19885
19886 2002-09-20  Martin Baulig  <martin@gnome.org>
19887
19888         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
19889         New interncall.
19890
19891         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
19892         interncall to get a method from its metadata token.
19893
19894 2002-09-20  Martin Baulig  <martin@gnome.org>
19895
19896         * debug-mono-symfile.c: Added a few checks for method->header
19897         being non-NULL.  This should never happen, but for the moment
19898         let's use a g_warning() rather than a g_assert().
19899
19900 2002-09-19  Mark Crichton  <crichton@gimp.org>
19901
19902         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
19903         even if support for it isn't present.  Added an #ifdef to fix this.
19904
19905         * socket-io.c: Added checks back for Solaris support.
19906
19907 2002-09-19  Martin Baulig  <martin@gnome.org>
19908
19909         * debug-mono-symfile.c (read_string, write_string): Reflect latest
19910         changes in the symbol file format.
19911
19912 2002-09-18  Martin Baulig  <martin@gnome.org>
19913
19914         * debug-mono-symfile.c: Set version number to 21.
19915
19916 2002-09-18  Dick Porter  <dick@ximian.com>
19917
19918         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
19919         on netbsd.  Fixes bug 30051.
19920
19921 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19922
19923         * reflection.c:
19924         (set_version_from_string): little fix.
19925
19926 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19927
19928         * monosn.c, Makefile.am: added strong name utility.
19929         * reflection.h, reflection.c: implemented delayed signing,
19930         locale, version and hash id assembly attributes.
19931
19932 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
19933
19934         * loader.c, metadata.c: load param attributes in signatures.
19935
19936 2002-09-16  Martin Baulig  <martin@gnome.org>
19937
19938         * debug-mono-symfile.c: Added string table with all method names.
19939
19940 2002-09-14  Martin Baulig  <martin@gnome.org>
19941
19942         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
19943         fast method lookup.
19944
19945 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
19946
19947         * reflection.c: record the public key token of referenced assemblies.
19948
19949 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19950
19951         * image.c, image.h: added functions to get the strong name and the
19952         public key of an assembly.
19953         * pedump.c: use them.
19954
19955 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
19956
19957         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
19958
19959 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
19960
19961         * marshal.c (mono_marshal_get_managed_wrapper): Added
19962         MONO_TYPE_BOOLEAN 
19963
19964 2002-09-11  Martin Baulig  <martin@gnome.org>
19965
19966         * gc.c: Call GC_unregister_disappearing_link() on all links when
19967         finalizing them, this is necessary to aviod a crash in boehm's
19968         finalize handler.
19969
19970 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19971
19972         * gc.c: handle GetTarget for finalized objects spotted and fixed by
19973         nick@chemlab.org.
19974
19975 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
19976
19977         * icall.c: implemented MonoType::Module.
19978         * reflection.c, reflection.h: mono_module_get_object () from
19979         Tomi Pakarinen <tomi.pakarinen@welho.com>.
19980
19981 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
19982
19983         * icall.c: ignore overridden methods in GetMethods ().
19984         Fix for FieldInfo::SetValue().
19985         * object.c: handle float/double in runtime invoke.
19986
19987 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
19988
19989         * object.c: allow a constructor to be called again on an object.
19990
19991 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19992
19993         * class.h, class.c: move field layout code to it's own function and
19994         export it. Get an interface id earlier. Move fields in MonoClass
19995         so they are more cache friendly and align the bitfields.
19996         * loader.c: temporary handle get_param_names() for a runtime method.
19997         * reflection.c, reflection.h: more code to handle runtime creation of
19998         types.
19999
20000 2002-09-09  Martin Baulig  <martin@gnome.org>
20001
20002         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
20003         signature with the pinvoke field being set for the actual call.
20004
20005 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20006
20007         * icall.c: removed some unused icalls. Start of map of glib charsets
20008         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
20009
20010 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
20011
20012         * debug-helpers.c: break infinite loop (found and fixed by
20013         Holger Arnold <harnold@gmx.de>).
20014
20015 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
20016
20017         * icall.c: target may be null in create_delegate.
20018
20019 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
20020
20021         * marshal.c: handle a boolean return type.
20022
20023 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
20024
20025         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
20026
20027 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
20028
20029         * gc.c: fix weakreferences.
20030
20031 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
20032
20033         * icall.c: added icall to get default codepage.
20034
20035 2002-09-03  Dick Porter  <dick@ximian.com>
20036
20037         * threads.h: 
20038         * threads.c: Use MonoThread instead of MonoObject where
20039         apropriate.
20040
20041         Store running thread objects in a hash table, so that we have all
20042         the info to hand when waiting for them to finish
20043         (means we don't need OpenThread() any more, so mingw builds should
20044         be fully functional again.)
20045
20046         * verify.c:
20047         * object.h: Added thread ID to MonoThread
20048
20049 2002-09-03  Martin Baulig  <martin@gnome.org>
20050
20051         * icall.c (System.Reflection.Assembly::get_location): New interncall.
20052
20053 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20054
20055         * icall.c: fixed leak in get_temp_path. Thanks lupus.
20056
20057 2002-09-03  Martin Baulig  <martin@gnome.org>
20058
20059         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
20060         argument to store the end address of the disassembled instruction.
20061
20062         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
20063         here from debug-symfile.h.
20064         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
20065         JIT into this struct.
20066         (MonoSymbolFile): Added `char *image_file' field.
20067         (MonoDebugGetMethodFunc): Removed.
20068         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
20069         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
20070         (mono_debug_find_method): New method.
20071
20072         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
20073         create a full symbol file.
20074         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
20075         and static symbol files.
20076         (mono_debug_find_method): The symbol file keeps an internal method hash,
20077         call this to get a MonoDebugMethodInfo from a MonoMethod.
20078
20079         * debug-symfile.[ch]: Removed.
20080
20081 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
20082
20083         * image.c (do_mono_image_open): Remove linker version check.
20084
20085 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
20086
20087         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
20088         wrappers for instance methods.
20089         
20090 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20091
20092         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
20093
20094 2002-08-28  Dick Porter  <dick@ximian.com>
20095
20096         * Makefile.am: Export HOST_CC for w32 builds
20097
20098 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20099
20100         * file-io.c process.c: MonoString are null terminated, no
20101         need for mono_string_to_utf16() anymore.
20102
20103 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20104
20105         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
20106
20107 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
20108
20109         * icall.c, reflection.h: speedup System.MonoType.
20110
20111 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20112
20113         * reflection.c: allow null as the value of a string argument in
20114         custom attributes constructors.
20115
20116 2002-08-27  Martin Baulig  <martin@gnome.org>
20117
20118         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
20119         `trampoline_address' field.
20120
20121 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
20122
20123         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
20124         check (fixes bug #29486) 
20125
20126 2002-08-27  Martin Baulig  <martin@gnome.org>
20127
20128         * debug-mono-symfile.c: Changed the file format in a way that allows us
20129         open it read-only and to use a specially malloced area for all the
20130         dynamic data.  We can now also generate a symbol file on-the-fly if we're
20131         debugging IL code and there is no MCS generated symbol file for it.
20132
20133 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
20134
20135         * object.c: added a define for a good string and array
20136         creation speedup (not enabled by default because we need to deal with
20137         the synch stuff).
20138
20139 2002-08-26  Martin Baulig  <martin@gnome.org>
20140
20141         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
20142         function to create a dynamic symbol file.  This is used by the
20143         debugger to create a symbol file for IL code on-the-fly.
20144
20145 2002-08-26  Martin Baulig  <martin@gnome.org>
20146
20147         * loader.c (mono_lookup_pinvoke_call): Include the error message
20148         from g_module_error() in the error message.
20149
20150 2002-08-24  Martin Baulig  <martin@gnome.org>
20151
20152         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
20153         function to update the symbol file.  The symbol file is mmap()ed
20154         writable, but private.  This allows us to install the symbol file
20155         together with the assembly.
20156
20157 2002-08-24  Martin Baulig  <martin@gnome.org>
20158
20159         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
20160         but they can read the new symbol file format which mcs is now creating.
20161
20162         * debug-symfile.c (mono_debug_find_source_location): Moved to
20163         debug-mono-symfile.c; this is now operating on the new symbol file.
20164
20165 2002-08-23  Martin Baulig  <martin@gnome.org>
20166
20167         * debug-helpers.c (mono_method_desc_from_method): New function to get
20168         a MonoMethodDesc from a MonoMethod.
20169
20170 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
20171
20172         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
20173         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
20174
20175 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
20176
20177         * string-icalls.[ch]: make helper methods static.
20178
20179 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20180
20181         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
20182         types to it and to SetValueInternal.
20183
20184         * object.c: Moved handle_enum label to its proper place. This was the
20185         f... bug! ;-)
20186
20187         This time i compiled mcs and gtk-sharp and they both work.
20188
20189 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20190
20191         * icall.c: reverted partially my previous patch until 
20192         object.c:set_value handles enums correcly.
20193
20194 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20195
20196         * icall.c:
20197         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
20198         (ves_icall_System_Environment_get_MachineName): removed warning when
20199         compiling under cygwin.
20200
20201 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20202
20203         * object.c: fixed field_get_value() for reference types.
20204
20205 2002-08-22  Dick Porter  <dick@ximian.com>
20206
20207         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
20208         Don't free a buffer while it's still needed.  Patch from Jonathan
20209         Liger <Jonathan.liger@wanadoo.fr>
20210
20211 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
20212
20213         * icall.c (ves_icall_System_Environment_get_Platform): Add new
20214         internal call.
20215
20216 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
20217
20218         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
20219         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
20220
20221         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
20222         we call unmanaged code which throws exceptions.
20223
20224 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
20225
20226         * appdomain.h: added per-domain entry_assembly.
20227         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
20228         arguments.
20229         * icall.c: Assembly::GetEntryAssembly icall.
20230         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
20231         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
20232
20233 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
20234
20235         * appdomain.h, gc.c: added mono_domain_finalize ().
20236
20237 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20238
20239         * object.c:
20240         (mono_print_unhandled_exception): changed g_warning by g_printerr
20241         because g_log has a 1024 characters limit (yeah, i got a big stack
20242         trace). Don't print exception name, that should be in ToString 
20243         returned string.
20244
20245 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20246
20247         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
20248         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
20249
20250 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20251
20252         * object.c:
20253         (mono_print_unhandled_exception): after previous commit, i realized
20254         that MS calls ToString on the exception. I changed this function to
20255         do that. This way we get stack_trace for free.
20256
20257 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20258
20259         * object.c:
20260         (mono_print_unhandled_exception): invoke Message property instead of
20261         getting 'message' field from Exception. Don't allocate memory for
20262         'trace' and 'message' if not needed.
20263
20264 2002-08-18  Dick Porter  <dick@ximian.com>
20265
20266         * unicode.c: Fix asserts to match Encoder.cs checks
20267
20268 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20269
20270         * marshal.c: fix unaligned store issue and a few wrong
20271         opcode argument types.
20272
20273 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20274
20275         * icall.c: added GetUninitializedObjectInternal internal call.
20276
20277 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
20278
20279         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
20280         to the right domain.
20281
20282 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
20283
20284         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
20285
20286         * class.c (class_compute_field_layout): set blittable to false for Strings
20287
20288         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
20289
20290 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20291
20292         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
20293         first chunk of code to create types at runtime. Code to
20294         handle ReflectedType/DeclaringType. Make reflection handles
20295         domain specific.
20296
20297 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
20298
20299         * class.c: set correct name in arrays.
20300
20301 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
20302
20303         * appdomain.c (mono_domain_transfer_object): make it work with
20304         valuetypes. bug fixes.
20305
20306 2002-08-12  Dick Porter  <dick@ximian.com>
20307
20308         * object.h: Rename some parameters to avoid c++ keywords (Patch
20309         from Joseph Wenninger <kde@jowenn.at>)
20310
20311 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
20312
20313         * icall.c: added icall to implement Assembly.GetFile*.
20314
20315 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
20316
20317         * reflection.h, reflection.c: code to embed managed resources.
20318
20319 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
20320
20321         * class.c: move all the type size stuff into
20322         class_compute_field_layout().
20323
20324 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
20325
20326         * class.c: ensure enums have always the correct instance size.
20327         * unicode.c: remove wrong assert.
20328
20329 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
20330
20331         * assembly.c: fix mem corruption issue.
20332         * image.h, image.c: added mono_image_get_resource () to access
20333         managed resources.
20334         * icall.c: implemented Assembly.EntryPoint property and some
20335         Managed Resources related internalcalls.
20336
20337
20338 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
20339
20340         * image.c, image.h: impemented mono_image_get_entry_point ().
20341         * appdomain.c: use mono_image_get_entry_point.
20342
20343 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
20344
20345         * reflection.c: support the object type argument when loading
20346         custom attributes.
20347
20348 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
20349
20350         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
20351         String as return type.
20352
20353 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
20354
20355         * reflection.c: fix encoding of named args for custom attrs to match
20356         the ms implementation. Read them back when instantiating custom
20357         attributes.
20358
20359 2002-08-02  Radek Doulik  <rodo@ximian.com>
20360
20361         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
20362         by Dietmar as quick fix
20363         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
20364         16 as stack size, used on more places as quick fix before Dietmar
20365         will fix it properly
20366
20367 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
20368
20369         * object.h, object.c: added accessors for fields and properties.
20370
20371 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
20372
20373         * class.c, class.h: made mono_class_get_field_from_name ()
20374         loop on parent types.
20375         Added mono_class_get_property_from_name ().
20376
20377 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20378
20379         * class.c, class.h: move the code to setup the type vtable in its own
20380         function so that it can be reused also for types created at runtime.
20381         Eliminate the "class" identifier from the header file.
20382         * reflection.c: setup the vtable for enums so that we can create
20383         objects for use in SetConstant ().
20384
20385 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
20386
20387         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
20388         instead of the delegate itself as this pointer (bug #28383)
20389
20390 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
20391
20392         * marshal.c (mono_marshal_get_managed_wrapper): added return type
20393         conversions.
20394
20395 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20396
20397         * loader.c: don't set the pinvoke bit on icalls.
20398
20399 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
20400
20401         * debug-helpers.c (mono_method_full_name): only print a number to
20402         indicate wrapper type (so that the output is more readable in traces).
20403
20404 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
20405
20406         * class.c (mono_class_init): include method override patch from Paolo
20407
20408 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
20409
20410         * icall.c: fixed GetTypeCode().
20411
20412 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
20413
20414         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
20415         use real delegate invoke function to make it work with multicast
20416         delegates (fix bug# 28291).
20417
20418 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20419
20420         * object.c: load constant strings.
20421
20422 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20423
20424         * reflection.c: no magic numbers.
20425         * tabledefs.h: security action enum.
20426
20427 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20428
20429         * assembly.c: fix possible memory corruption.
20430
20431 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
20432
20433         * reflection.h, reflection.c: added support for linking resources.
20434         * verify.c: check we have an updated corlib.
20435
20436 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
20437
20438         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
20439         string arrays.
20440         (mono_marshal_string_array): null terminate unmanaged string arrays.
20441         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
20442
20443 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20444
20445         * icall.c: Type.GetType () can now return also types from the
20446         calling assembly.
20447
20448 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
20449
20450         * loader.h, loader.c: stack walking support.
20451         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
20452         GetCallingAssembly.
20453
20454 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
20455
20456         * marshal.c: added optimisations for blittable types 
20457
20458         * class.c (mono_array_class_get): do not set blittable attribute on arrays
20459         (mono_class_setup_mono_type): set blittable attribute for single
20460         and double.
20461
20462         * marshal.c (mono_string_utf8_to_builder): impl.
20463         (mono_string_builder_to_utf8): impl.
20464         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
20465
20466 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
20467
20468         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
20469         (mono_marshal_get_managed_wrapper): impl. byref types
20470
20471 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20472
20473         * icall.c:
20474         (search_method): don't display debug message. 
20475
20476 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
20477
20478         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
20479
20480 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
20481
20482         * appdomain.c: set the missing filename when throwing exception.
20483
20484 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
20485
20486         * metadata.c (mono_type_size): code cleanup
20487         (mono_type_stack_size): removed some test code
20488
20489 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
20490
20491         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
20492         mono_get_exception_file_not_found now.
20493
20494         * exception.c (mono_exception_from_name_two_strings): New version
20495         that will call a constructor with two string arguments. 
20496         (mono_get_exception_file_not_found): New helper routine, used to
20497         report file-not-found errors.
20498
20499 2002-07-20  Dick Porter  <dick@ximian.com>
20500
20501         * process.h:
20502         * process.c: Pass file handles to CreateProcess
20503         
20504         * icall.c:
20505         * file-io.h:
20506         * file-io.c: Implemented CreatePipe
20507
20508 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
20509
20510         * metadata.c (mono_get_param_info): set alignment for value types
20511
20512 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20513
20514         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
20515         Constify mono_domain_assembly_open().
20516         * loader.c: handle null namespace in icalls.
20517
20518 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
20519
20520         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
20521         (emit_str_to_ptr_conv): marshal object as structs
20522
20523         * metadata.c (mono_type_to_unmanaged): marshal object as structs
20524
20525         * marshal.c (mono_marshal_get_runtime_invoke): support value types
20526
20527 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
20528
20529         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
20530         (mono_marshal_get_native_wrapper): we an now return value types
20531
20532 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20533
20534         * verify.c: more checks implemented.
20535
20536 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
20537
20538         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
20539         (fix bug #27695)
20540         (mono_marshal_get_native_wrapper): allow byref arguments
20541         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
20542         impl. PtrToStringXXX methods
20543         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
20544         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
20545         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
20546         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
20547         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
20548
20549 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20550
20551         * reflection.c: fix buglet in parsing an assembly name.
20552
20553 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
20554
20555         * marshal.c (emit_ptr_to_str_conv): first impl.
20556
20557 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
20558
20559         * object.c, class.h: cache the vtable in the class as suggested by
20560         vargaz@freemail.hu (Zoltan Varga).
20561
20562 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20563
20564         * class.h, loader.c: added mono_field_from_token().
20565         * verify.c: first cut of type checking code.
20566
20567 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
20568
20569         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
20570
20571 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
20572
20573         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
20574         (fix bug #27782)
20575         (mono_marshal_get_remoting_invoke): impl.
20576         (mono_delegate_begin_invoke): impl.
20577         (mono_mb_emit_save_args): impl.
20578         (mono_delegate_end_invoke): impl.
20579         (mono_marshal_get_delegate_begin_invoke):
20580         (mono_marshal_get_delegate_end_invoke):
20581         (mono_marshal_get_delegate_invoke): generate a special name for
20582         those methods (including the signature) and associate them whith
20583         the delegate class. 
20584
20585 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
20586
20587         * reflection.[ch]: 
20588         (mono_reflection_type_from_name): now it has a MonoImage parameter
20589         which is used as the default image to search the type in. If the image
20590         is NULL or getting the type from it fails, it defaults to corlib.
20591
20592         * icall.c: changed 1 call to mono_reflection_type_from_name to match
20593         new parameter.
20594
20595 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20596
20597         * reflection.c: update the parameter table index.
20598
20599 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
20600
20601         * domain.c: don't include the mark byte in the string hash.
20602
20603 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
20604
20605         * icall.cs: icall for Type.GetTypeCode ().
20606         * verify: a couple of fixes and disabled local initialization checks.
20607
20608 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
20609
20610         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
20611
20612         * debug-helpers.c (mono_method_full_name): print the type of the
20613         runtime wrapper
20614
20615         * metadata.c (mono_signature_hash): a hash function for signatures
20616         (mono_signature_hash): better hash algorithm
20617
20618         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
20619
20620         * debug-helpers.c (mono_method_full_name): this can now generate
20621         method names with signatures
20622
20623         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
20624         method dont have this pointers.
20625
20626 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
20627
20628         * reflection.c: fixup typebuilder tokens.
20629         * image.c: fix buglet.
20630         * marshal.h: remove whitespace.
20631         * metadata.h, metadata.c: reinstate code that was removed.
20632         * verify.c: handle catch directives and fix another couple of bugs.
20633
20634 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
20635
20636         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
20637         (mono_marshal_get_native_wrapper): make it comp. with the old code
20638         (mono_marshal_get_native_wrapper): support boolean
20639         (mono_marshal_get_managed_wrapper): support more types
20640
20641 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
20642
20643         * class.c (class_compute_field_layout): compute class->blittable attribute.
20644
20645 2002-07-09  Dick Porter  <dick@ximian.com>
20646
20647         * threads.c: Make the thread cleaning up cope with threads that
20648         call ExitThread()
20649
20650 2002-07-08  Radek Doulik  <rodo@ximian.com>
20651
20652         * reflection.c (method_encode_code): use non-translated values to
20653         compute finally_start, this fixes exception handling on ppc, yay!
20654
20655         * decimal.h (struct signscale): fix endianess
20656
20657 2002-07-07  Radek Doulik  <rodo@ximian.com>
20658
20659         * reflection.c: swap box_val and not val
20660
20661 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
20662
20663         * reflection.c, reflection.h: handle full assembly info in type name.
20664         Handle Type arguments when loading custom attributes.
20665         * icall.c: updated to use new mono_reflection_type_from_name () method.
20666
20667 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20668
20669         * loader.c:
20670         (method_from_memberref): also print assembly name when method not found.
20671
20672 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20673
20674         * icall.c:
20675         (ves_icall_TypeGetProperties): fixed bug #27473. 
20676
20677 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20678
20679         * reflection.c: display image name and token when cannot find the
20680         .ctor for an attribute.
20681
20682 2002-07-05  Martin Baulig  <martin@gnome.org>
20683
20684         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
20685
20686 2002-07-04  Dick Porter  <dick@ximian.com>
20687
20688         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
20689         compile on mingw.  This will cause mingw builds to not wait for
20690         subthreads to terminate after the main thread does.  I've lodged a
20691         bug with the mingw developers for them to wrap OpenThread().
20692
20693 2002-07-03  Dick Porter  <dick@ximian.com>
20694
20695         * threads.c: Store thread IDs instead of handles, because
20696         GetCurrentThread() returns a pseudohandle and therefore stores
20697         useless values.  mono_thread_cleanup() continues checking the
20698         array of threads until it is empty, to cope with subthreads
20699         spawning new threads after the main thread has finished.
20700
20701         * profiler.h:
20702         * profiler.c:
20703         * profiler-private.h: Pass the thread ID to thread profiler
20704         functions, instead of a handle
20705
20706 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20707
20708         * verify.c: fixes to make it more usable.
20709         * pedump.c: added --verify code to verify IL code in an assembly.
20710
20711 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20712
20713         * reflection.c: turn errors into warnings to allow compiling corlib.
20714
20715 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
20716
20717         * reflection.c: add special cases to compile corlib.
20718
20719 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20720
20721         * reflection.c: handle properties with only a set method.
20722
20723 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20724
20725         * opcodes.h: add enum with opcodes in opval order.
20726
20727 2002-07-01  Dick Porter  <dick@ximian.com>
20728         
20729         * object.h:
20730         * object.c (mono_runtime_run_main): Removed unneeded argument
20731
20732 2002-06-28  Martin Baulig  <martin@gnome.org>
20733
20734         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
20735
20736 2002-06-27  Dick Porter  <dick@ximian.com>
20737
20738         * threads.c: Store the handle in both the parent thread and in the
20739         subthread, to minimise the time between starting a new thread and
20740         storing its ID.
20741
20742 2002-06-26  Dick Porter  <dick@ximian.com>
20743
20744         * appdomain.c (mono_runtime_cleanup): Close the socket library
20745         after all the threads have finished, not before
20746
20747 2002-06-26  Martin Baulig  <martin@gnome.org>
20748
20749         * debug-symfile.c (mono_debug_find_source_location): Added
20750         `guint32 *line_number' argument.  If it's not NULL, store the line number
20751         there and return the file name without the line number.
20752
20753 2002-06-25  Dick Porter  <dick@ximian.com>
20754
20755         * icall.c:
20756         * process.h:
20757         * process.c: Process forking and other support functions
20758
20759 2002-06-25  Dick Porter  <dick@ximian.com>
20760
20761         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
20762         things dont happen when the image is closed.
20763         (mono_image_lookup_resource): Walk the resource section looking
20764         for a particular entry
20765
20766         * cil-coff.h: PE resource section decoding
20767
20768 2002-06-25  Dick Porter  <dick@ximian.com>
20769         
20770         * assembly.h:
20771         * assembly.c: 
20772         (mono_assembly_foreach): Accessor functions to walk the list of
20773         loaded assemblies
20774         (mono_assembly_set_main):
20775         (mono_assembly_get_main): Process methods need to know which
20776         assembly is the "main" one
20777
20778         * object.c (mono_runtime_run_main): Record the main assembly
20779
20780         * debug-helpers.c: Fix typo
20781
20782 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
20783
20784         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
20785         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
20786
20787 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20788
20789         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
20790
20791 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
20792
20793         * image.c (do_mono_image_open): Initialize reference count,
20794         otherwise we leak the MonoImage.
20795
20796 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
20797
20798         * reflection.c: small tweak to handle self-hosting.
20799
20800 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
20801
20802         * reflection.c: fix type name parse code.
20803
20804 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20805
20806         * reflection.c: break out of the loop.
20807         * image.c: special case corlib.
20808
20809 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20810
20811         * reflection.c: add all the custom attrs at the end to ensure the
20812         ctors have been properly initialized when the attributes are defined
20813         in the current assembly.
20814
20815 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20816
20817         * reflection.c: handle correctly multiple-nested types.
20818
20819 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
20820
20821         * row-indexes.h: fix typos.
20822         * reflection.c: adjust for typos and fix method_def_or_ref
20823         encoding in MethodImpl table.
20824
20825 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20826
20827         * reflection.c: fix entry point patching (thanks Serge!).
20828
20829 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
20830
20831         * verify.c: add check for System.Exception
20832
20833 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
20834
20835         * image.c, class.c: minifix for code just c&p'ed.
20836         * reflection.c: warning fix.
20837         * object.h, loader.h, domain.c: load also StringBuilder.
20838
20839 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20840
20841         * marshal.h, marshal.c: some support code to handle complex marshaling.
20842
20843 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20844
20845         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
20846         Better signatures with vtable error dump.
20847
20848 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
20849
20850         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
20851
20852 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
20853
20854         * icall.c (ves_icall_Type_GetField): impl.
20855
20856 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20857
20858         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
20859         to retrieve a marshal description blob for a field or param.
20860
20861 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
20862
20863         * reflection.h, reflection.c: change order of nested type emission
20864         to avoid table corruption. The NestedTypes table is sorted.
20865         * icall.c: change order of GetConstructor results to workaround mcs bug.
20866
20867 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20868
20869         * reflection.h, reflection.c: handle field and param marshal
20870         information.
20871
20872 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20873
20874         * icall.c, marshal.c marshal.h: more Marshal class implementation.
20875
20876 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20877
20878         * reflection.c: fix call convention.
20879
20880 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20881
20882         * reflection.h, reflection.c: mono_image_get_memberref_token()
20883         takes a type instead of a class, now. Added
20884         mono_image_get_array_token() to create tokens for the special
20885         multi-dim array methods.
20886
20887 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20888
20889         * assembly.c: handle modules (no assembly table). Split
20890         loading references in its own function.
20891         * class.c: handle moduleref resolution scope.
20892         * image.c, image.h: cache module name in image.
20893
20894 2002-06-07  Martin Baulig  <martin@gnome.org>
20895
20896         * reflection.c (mono_image_get_type_info): Only add a class layout entry
20897         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
20898
20899 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20900
20901         * icall.c: more signature fixes that used uint instead of int.
20902
20903 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20904
20905         * reflection.c: fixed signature of field refs.
20906
20907 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20908
20909         * class.c, reflection.c: handle typerefs of nested types
20910         (both on read and when writing files).
20911
20912 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
20913
20914         * icall.c: fix method signatures that tried to workaround the previous
20915         typo, d'oh!
20916
20917 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
20918
20919         * debug-helpers.c: fix typo.
20920
20921 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
20922
20923         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
20924         rewrote the PE/COFF writing code (our programs are understood by the
20925         ms runtime, now).
20926
20927 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
20928
20929         * gc.c, gc.h, icall.c: weakreference support.
20930
20931 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20932
20933         * Makefile.am, mono-config.c: use $(sysconfdir).
20934
20935 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20936
20937         * icall.c: changed default precision of Double.ToString() to 15.
20938         Fixed memory leak. Unified with Single.ToString.
20939
20940 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
20941
20942         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
20943
20944 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
20945
20946         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
20947         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
20948         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
20949         and myself.
20950
20951 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20952
20953         * debug-symfile.c, sysmath.c: yet more compilation fixes.
20954
20955 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20956
20957         * reflection.c, socket-io.c: more compilation fixes.
20958
20959 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20960
20961         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
20962         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
20963         unicode.c: warning and compiler compatibility fixes.
20964
20965 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20966
20967         * class.h, metadata.c: fixed warnings/compilation errors.
20968
20969 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20970
20971         * Makefile.am, mono-config.c, mono-config.h: configuration file
20972         support routines.
20973         * loader.c, loader.h: make Dll mapping configurable at runtime in the
20974         config file. Export methods to insert and lookup mappings.
20975
20976 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
20977
20978         * reflection.c: handle types and boxed objects in custom attr
20979         constructors.
20980
20981 2002-05-30  Martin Baulig  <martin@gnome.org>
20982
20983         * debug-symfile.c
20984         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
20985
20986 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
20987
20988         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
20989         to lookup the implmap row for a P/Invoke method.
20990         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
20991         P/Invoke method from the runtime on an as needed basis.
20992
20993 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
20994
20995         * metadata.c (mono_metadata_parse_signature): impl.
20996
20997 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20998
20999         * class.c: handle .pack directive.
21000
21001 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
21002
21003         * object.c: initialize static fields with RVA data.
21004
21005 2002-05-25  Martin Baulig  <martin@gnome.org>
21006
21007         * debug-symfile.c
21008         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
21009
21010 2002-05-24  Martin Baulig  <martin@gnome.org>
21011
21012         * debug-symfile.c
21013         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
21014         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
21015         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
21016
21017 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
21018
21019         * object.c: special case string ctros in invoke.
21020         * gc.c: silly whitespace changes.
21021
21022 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
21023
21024         * threadpool.[ch]: impl. a threadpool that can
21025         be used by mint and mono.
21026
21027 2002-05-22  Martin Baulig  <martin@gnome.org>
21028
21029         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
21030         The first argument is now a `MonoReflectionModuleBuilder *', the return
21031         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
21032         `methods' field to get the method builder.  The `token' argument is the
21033         unfixed token.
21034
21035         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
21036         invalid characters instead of g_assert_not_reached()ing.  This seems
21037         to be the behaviour of mscorlib.
21038
21039 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
21040
21041         * object.c (mono_runtime_invoke_array): applied patch from Rachel
21042         Hestilow to fix bug #25104
21043
21044 2002-05-21  Martin Baulig  <martin@gnome.org>
21045
21046         * debug-symfile.c (mono_debug_find_source_location): New function.
21047         Looks up an IL offset in the line number table and returns the source
21048         location as a string.
21049
21050 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21051
21052         * icall.c:
21053         (mono_double_ToStringImpl): changed %f by %g until we have something
21054         better.
21055
21056 2002-05-21  Nick Drochak  <ndrochak@gol.com>
21057
21058         * icall.c : Use different name for Math.Pow's icall.  Needed to check
21059         parameters first in C#.
21060
21061 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
21062
21063         * icall.c, reflection.h: added icall to get info about an event.
21064
21065 2002-05-20  Radek Doulik  <rodo@ximian.com>
21066
21067         * object.c (mono_value_box): don't use memcpy for boxing on BIG
21068         endian
21069         (mono_value_box): don't use memcpy for small sizes on
21070         architectures with unaligned access
21071
21072 2002-05-20  Martin Baulig  <martin@gnome.org>
21073
21074         * reflection.c (mono_reflection_setup_internal_class): Don't crash
21075         if `tb->parent == NULL'.
21076         (mono_reflection_create_internal_class): New function.  This is
21077         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
21078         for enum types.
21079
21080         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
21081         New interncall.
21082
21083 2002-05-19  Martin Baulig  <martin@gnome.org>
21084
21085         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
21086         argument to get the length, don't default to the array length.
21087
21088 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
21089
21090         * assembly.c (mono_assembly_setrootdir): New function used to
21091         override the MONO_ASSEMBLIES directory.
21092
21093 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
21094
21095         * icall.c: ValueType_GetHashCode() initialize local var.
21096
21097 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
21098
21099         * reflection.c: sort custom attributes table.
21100
21101 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
21102
21103         * reflection.c: support named args in custom attributes (write support).
21104
21105 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
21106
21107         * reflection.c: fix finally position calculation.
21108
21109 2002-05-15  Radek Doulik  <rodo@ximian.com>
21110
21111         * reflection.c: fixed endianess at many places
21112
21113         * icall.c (ves_icall_InitializeArray): comment out debug msg
21114
21115 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
21116
21117         * object.c (mono_unhandled_exception): new function to handle
21118         unhandled exceptions.
21119         (mono_unhandled_exception): call the UnhandledException event.
21120         (mono_runtime_delegate_invoke): impl.
21121
21122 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
21123
21124         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
21125         returns the RVA, not the direct pointer to the data. Handle the case
21126         when the class size is fixed.
21127
21128 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
21129
21130         * reflection.c: fix some endianess issues.
21131
21132 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
21133
21134         * object.c (mono_runtime_invoke): is now able to catch exceptions.
21135
21136         * threads.c (mono_thread_init): added a callback which is invoked
21137         at thread start.
21138
21139 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
21140         
21141         * icall.c: make GetHashCode return non-negative values.
21142
21143 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
21144
21145         * object.c, icall.c, gc.c: revert to address-based hashcode.
21146
21147 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
21148
21149         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
21150
21151 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
21152
21153         * icall.c, class.c: special case <Module>.
21154
21155 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
21156
21157         * icall.c: fix bug in GetNow().
21158
21159 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
21160
21161         * object.c (mono_runtime_class_init): make sure that we call all
21162         static class constructors.
21163
21164 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
21165
21166         * reflection.c: sort methodsemantics table.
21167
21168 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
21169
21170         * reflection.h, reflection.c: honour init locals setting.
21171
21172 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
21173
21174         * icall.c: copied Double ToStringImpl for Single ToStringImpl
21175
21176 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
21177
21178         * reflection.c: support ContructorBuilders in attribute blob creation.
21179
21180 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
21181
21182         * reflection.c: some changes to build a binary that can be run
21183         directly in windows.
21184
21185 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
21186
21187         * loader.c: print a big message when an icall can't be found.
21188
21189 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21190
21191         * string-icalls.c: fix bug 24248.
21192
21193 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
21194
21195         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
21196         icall.c, reflection.h: separate assembly loading by pathname and by
21197         assembly name. Use the MONO_PATH env var to search for assemblies.
21198
21199 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
21200
21201         * assembly.c, image.h: add some support for assemblies
21202         with multiple modules.
21203         * class.c, class.h: export mono_class_from_typeref().
21204         * loader.c: remove duplicated code and use mono_class_from_typeref(),
21205         instead.
21206
21207 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
21208
21209         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
21210         documentation says (the ECMA one is correct).
21211
21212 2002-05-02  Dick Porter  <dick@ximian.com>
21213
21214         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
21215         Don't name the synchronisation mutex.
21216
21217 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
21218
21219         * rand.c
21220         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
21221         Make the prototypes match.
21222         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
21223         Same.
21224
21225         * icall.c
21226         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
21227         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
21228         all systems have tm.tm_zone, so use strftime() with %Z to print
21229         the timezone abreviation into a temp string.
21230
21231         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
21232         rather than mono_array_addr() on a MonoString on Big Endian
21233         machines.
21234
21235 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
21236
21237         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
21238         fix bug 24041
21239
21240 2002-04-30  Dick Porter  <dick@ximian.com>
21241
21242         * socket-io.c: Cope with SOCKET being an integer rather than a
21243         pointer now.
21244
21245         * threads.c: Added Thread_free_internal, to deal with thread
21246         handle cleanup.  Moved calls to handle_store() and handle_remove()
21247         to start_wrapper(), so each can only be called once.  Allocate
21248         synchronisation blocks with GC_malloc(), and use GC finalisation
21249         to close the handles.
21250
21251         * icall.c: added System.Threading.Thread::Thread_free_internal
21252
21253 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
21254
21255         * icall.c: support Environment.Exit, CommandLineArgs().
21256
21257 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
21258
21259         * object.c, object.h: added mono_runtime_run_main () and
21260         mono_runtime_get_main_args () for use in System.Environment.
21261
21262 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
21263
21264         * gc.c: fix thinko, enable actual finalization since the jit is now
21265         fixed.
21266
21267 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
21268
21269         * gc.c, object.c: take into account that an object may be offset wrt the address
21270         returned by GC_malloc().
21271
21272 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
21273
21274         * image.c: handle files without entries in the assembly table (modules).
21275
21276 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
21277
21278         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
21279         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
21280         allowed to be null when it's System.Object class setup.
21281
21282 2002-04-27  Martin Baulig  <martin@gnome.org>
21283
21284         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
21285         if `tb->parent == NULL' rather than crashing.
21286
21287 2002-04-28  Nick Drochak  <ndrochak@gol.com>
21288
21289         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
21290         calling acos() where asin() should have been called.
21291
21292 2002-04-26  Martin Baulig  <martin@gnome.org>
21293
21294         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
21295         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
21296         there's a subdirectory called `System', but we don't want to read that
21297         subdirectory as an assembly.
21298
21299 2002-04-25  Martin Baulig  <martin@gnome.org>
21300
21301         * debug-symfile.c: Reflect latest MonoString changes.
21302
21303 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
21304
21305         * rand.c, rand.h: instance method icalls need to have an explicit
21306         this pointer as first argument in the C implementation.
21307
21308 2002-04-25  Nick Drochak <ndrochak@gol.com>
21309
21310         * icall.c: Fix typo in map for GetNonZeroBytes
21311
21312 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
21313
21314         * string-icalls.c : String does now passes unit tests without any 
21315         errors, the following changes has been made:
21316         
21317         Implemented replace methods.
21318         Renaming of methods to (try) follow the standard.
21319         Fixed compare ordinal
21320         Made all memory allocated directly to function instead of via icall function.
21321         Small performance fix in is_in_array function
21322                         
21323  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
21324
21325         c (mono_string_Internal_ctor_charp_int_int):
21326         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
21327         sindex < 0, throw ArgumentOutOfRangeException instead of
21328         ArgumentNullException.
21329
21330         Added new check for length == 0, however
21331         I need to make it return String.Empty from the C code.
21332         
21333         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
21334         that calculate the length for us here.
21335         
21336         (mono_string_Internal_ctor_sbytep_int_int): Replaced
21337         mono_string_new_utf16 with mono_string_new, since value is utf8.
21338
21339 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
21340
21341         * object.c: register the object for finalization if needed.
21342         Allocate one more char in the string for the terminating 0 char.
21343
21344 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
21345
21346         * class.c, class.h, image.c: check if a type implemenst a destructor.
21347         Use the proper key for array class lookups.
21348         * icall.c: register the icalls in the System.GC class.
21349         * gc.c, gc.h: GC-related functions and icalls.
21350
21351 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21352
21353         * icall.c:
21354         * socket-io.c:
21355         * unicode.c: free some strings gotten from mono_string_to_utf8 and
21356         changed a couple of free () by g_free ().
21357
21358         * decimal.c: one-liner in the comments for decimal2string ().
21359
21360 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
21361
21362         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
21363
21364 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
21365
21366         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
21367         * object.c (mono_runtime_invoke_array) : handle null in params
21368
21369 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
21370
21371         * string-icalls.c: fixed bug in split (one off bug)
21372
21373 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
21374
21375         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
21376         * icalls.c: added String::Equals as internal method
21377
21378 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
21379
21380         * threads.c: fixed bug in the double interlocked functions
21381
21382 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
21383
21384         * threads.c: implemented all of the new interlocked icalls.
21385         * string-icalls.c: fix a bug in insert.
21386         * icalls.c: added the icalls for interlocked, removed old string functions.
21387         
21388 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
21389
21390         * loader.c: fix off-by-one error when reading argument names.
21391
21392 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
21393
21394         * profiler.c: win32 counter implementation (untested).
21395         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
21396         (the latter needs testing and more complete impl. from win32 folks).
21397
21398 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
21399
21400         * object.c: mono_array_new_full workaround mono_array_class_get
21401         problem.
21402
21403 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
21404
21405         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
21406         * object.h (mono_string_chars): Changed casting type.
21407
21408 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
21409
21410         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
21411                            method signatures to use gunichar2 instead of gint16.
21412
21413 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
21414
21415         * object.h, object.c: domain-specific versions of mono_object_new and
21416         mono_array_new.
21417
21418 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
21419
21420         * object.c: changed String layout
21421
21422         * string-icalls.c (mono_string_Internal_ctor_chara): added
21423         internal string constructors.
21424
21425 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
21426
21427         * threads.c: pass 'this' to the thread start routine.
21428
21429 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21430
21431         * string-icalls.c: fix IndexOf and LastIndexOf. Now
21432         InternalCompareStr don't call twice mono_string_cmp_char for the last
21433         character. Improved performance in mono_string_cmp_char.
21434
21435 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
21436
21437         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
21438         code into its own library: libmonoruntime.
21439
21440 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
21441
21442         * object.h, object.c: changed array format so that szarrays do not
21443         require a bounds structure.
21444         * icall.c, appdomain.c: support for new szarray format.
21445
21446 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
21447
21448         * metadata.c: compare also the retuns type when comparing signatures:
21449         we didn't do this as an optimization since really overloaded methods
21450         must differ also in the arguments, but this doesn't work with
21451         low-level IL code (or when using explicit conversion operators: see
21452         bug#23498 for an example).
21453
21454 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
21455
21456         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
21457
21458 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
21459
21460         * icall.c: make MonoType::GetElementType its own icall.
21461
21462 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
21463
21464         * icall.c: remove MonoMethod_get_Name().
21465         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
21466         object.
21467
21468 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
21469
21470         * string-icalls.c: optimized a few methods.
21471
21472 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
21473
21474         * icall.c: added all new string internal calls
21475         * string-icalls.c: added, new string internal call implementation.
21476         * object.c: added mono_string_new_size for allocating a string a size
21477
21478 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
21479
21480         * object.c (mono_object_isinst): use the same code as in the
21481         optimized x86 version.
21482
21483 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
21484
21485         * profiler.c: TSC-based timer code (faster and more accurate).
21486         Not hooked up in configure, yet (set USE_X86TSC to 1).
21487
21488 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
21489
21490         * profiler.c, profiler.h: track time spent compiling methods.
21491         * threads.c: track thread creation/destruction.
21492
21493 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
21494
21495         * profiler.c, profiler.h, profiler-private.h: profiling interface
21496         and sample implementation. Moved here so that it can be used also by
21497         the jit.
21498
21499 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
21500
21501         * reflection.c, reflection.h: keep types and other handles separate in
21502         the hash tables for referred tokens. Add guid for modules.
21503
21504 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
21505
21506         * assembly.c: fix bugs found with valgrind.
21507         * metadata.h, metadata.c: added mono_metadata_guid_heap().
21508
21509 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
21510
21511         * threads: added icall support for getting current domain for
21512                    the thread.
21513  
21514 2002-04-13  Martin Baulig  <martin@gnome.org>
21515
21516         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
21517         (MonoDebugVarInfo): Added `index' field for register based addresses.
21518         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
21519         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
21520         `MonoDebugVarInfo *params' and `guint32 this_offset' with
21521         `MonoDebugVarInfo *this_var'.
21522
21523         * debug-symfile.c (relocate_variable): New static function to write
21524         a location description for a local variable or method parameter.
21525
21526 2002-04-12  Martin Baulig  <martin@gnome.org>
21527
21528         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
21529         stack offset and begin/end scope address of a local variable.
21530         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
21531         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
21532         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
21533
21534         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
21535         Added new relocation types for start/end scope of a local variable.
21536
21537 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
21538
21539         * object.h: add mono_object_domain() macro.
21540         * reflection.c: handle typespecs.
21541         * icall.c: MonoMethod::get_Name() implementation.
21542
21543 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
21544
21545         * icall.c: String::GetHashCode() icall implementation.
21546
21547 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
21548
21549         * icall.c: String::IndexOfAny icall.
21550         * object.c, object.h: make array->max_length more useful.
21551         Intrduced mono_object_class() and mono_string_length() macros.
21552
21553 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21554
21555         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
21556         instead of g_unichar_isdigit.
21557
21558 2002-04-11  Nick Drochak  <ndrochak@gol.com>
21559
21560         * icall.c: Implement a simple Double.ToString().
21561
21562 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
21563
21564         * appdomain.h: only io-layer.h is supposed to be included.
21565         * icall.c: explicitly import environ. Fix warning.
21566
21567 2002-04-10  Nick Drochak  <ndrochak@gol.com>
21568
21569         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
21570                 return true even if it's not Daylight Savings time.
21571                 Only return false for the case where the function isn't
21572                 implemented for a plaform (read Windows).
21573
21574 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
21575
21576         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
21577         data with a mutex.
21578
21579 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
21580
21581         * mempool.c (mono_mempool_alloc): only use g_malloc when
21582         absolutely necessary.
21583
21584 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
21585
21586         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
21587
21588         * class.c (mono_class_vtable): use domain mempool to allocate vtable
21589         (mono_class_proxy_vtable): use domain mempool
21590
21591 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
21592
21593         * appdomain.h, appdomain.c: split initialization that requires the
21594         execution engine support into mono_runtime_init().
21595
21596 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
21597
21598         * class.c (mono_class_init): don't include vtable inside MonoClass
21599         to save some memory, gather some statistics.
21600         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
21601
21602 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
21603
21604         * icall.c: internalcall implementation for ValueType.Equals().
21605
21606 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
21607
21608         * object.c (mono_message_init): moved 
21609         (mono_runtime_exec_main): new arch. independent impl.
21610         (mono_runtime_invoke_array): new method - like
21611         mono_runtime_invoke, but you can pass an array of objects.
21612         (mono_remoting_invoke): new arch. independent impl.
21613         (mono_message_invoke): new arch. independent impl.
21614         (mono_runtime_class_init): new arch. independent impl.
21615         (mono_runtime_object_init): new arch. independent impl.
21616
21617 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
21618
21619         * metadata.c, object.c, reflection.c: documented the exported
21620         functions.
21621
21622 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
21623
21624         * icall.c: simpler code to pass the assembly builder data to corlib.
21625         Implement GetNestedTypes() internalcall.
21626
21627 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
21628
21629         * class.c: warn if a type can't be loaded.
21630
21631 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
21632
21633         * image.h: typedef MonoImageOpenStatus
21634         * types.h: removed unused file
21635         
21636 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
21637
21638         * icall.c: Enum_ToObject accepts enum value arguments.
21639
21640 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
21641
21642         * class.c: move initialization of properties, events and nested
21643         classes, so that they happen for interfaces, too.
21644
21645 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
21646
21647         * icall.c: cleanup some ugly casts in Array_SetValue*.
21648
21649 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
21650
21651         * icall.c: the values array fro enums is of the correct type, now.
21652         Implement (correctly) getFullName instead of assQualifiedName for
21653         MonoType.
21654         * reflection.h, reflection.c: added mono_type_get_name ().
21655
21656 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
21657
21658         * assembly.c, image.h: for each MonoImage, record from wich assembly
21659         it was loaded.
21660         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
21661         Make Type.Assembly work.
21662
21663 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
21664
21665         * debug-symfile.h: use char* instead of gpointer to avoid
21666         unnecessary casts.
21667
21668         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
21669
21670         * icall.c (ves_icall_InternalExecute): impl. FielSetter
21671         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
21672
21673 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
21674
21675         * icall.c (mono_message_init): impl. (code cleanup)
21676         (ves_icall_InternalExecute): impl. FieldGetter
21677
21678         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
21679         defined we call all (non-static)methods through the vtable. 
21680
21681 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
21682
21683         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
21684         finalizer even though the memory is still referenced (and the chunk of
21685         memory is not freed).
21686
21687 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
21688
21689         * assembly.c: fix brokeness.
21690
21691 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
21692
21693         * class.c: kill some warnings. Check explicit interface method
21694         implementation also without considering the namespace.
21695         Load also literal strings in static class data.
21696
21697 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
21698
21699         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
21700         (default_assembly_name_resolver): Make the resolver take the
21701         "base" directory where the assembly was originally defined, so we
21702         can load DLLs that are in the same directory as the assembly that
21703         is being referenced.
21704
21705 2002-03-28  Dick Porter  <dick@ximian.com>
21706
21707         * file-io.h: 
21708         * file-io.c:
21709         * socket-io.c: 
21710         * unicode.h: 
21711         * unicode.c: Warning cleanups
21712
21713 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
21714
21715         * object.h, reflection.h: use the correct type instead of MonoObject.
21716
21717 2002-03-28  Martin Baulig  <martin@gnome.org>
21718
21719         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
21720         (mono_debug_update_symbol_file): Initialize classes if necessary.
21721
21722 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
21723
21724         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
21725         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
21726
21727 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
21728
21729         * assembly.h: fix function prototype.
21730         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
21731         * mono-endian.h: use const cast.
21732
21733 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
21734
21735         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
21736
21737 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
21738
21739         * loader.c: don't assert when a typeref can't be loaded, give
21740         a chance to the runtime to trow an exception instead.
21741         * loader.h: fix warning.
21742
21743 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
21744
21745         * class.c (mono_class_proxy_vtable): added proxy support
21746
21747 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
21748
21749         * icall.c: removed last of PAL calls, added System.Environment
21750         * file-io.h, file-io.c: MonoIO implementation
21751         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
21752
21753 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
21754
21755         * appdomain.c: do not use the byte marker in ldstr table lookup.
21756         * debug-helpers.c: allow two ':' to separate class and method name.
21757         * object.c: allocate arrays bounds with the GC, too.
21758         * verify: add a few more checks.
21759
21760 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
21761
21762         * reflection.c: output also literal strings. Allocate parameter data
21763         with GC_malloc() (thanks, Martin, for catching this!).
21764
21765 2002-03-26  Martin Baulig  <martin@gnome.org>
21766
21767         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
21768         include the `this' offset in the `param_offsets'.
21769
21770 2002-03-25  Martin Baulig  <martin@gnome.org>
21771
21772         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
21773         mono_debug_get_class() function to get the classes. Added new
21774         relocation types for arrays and strings.
21775         (mono_debug_get_class): New static function to search in all
21776         referenced assemblies for a metadata token.
21777
21778         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
21779
21780 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
21781
21782         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
21783         hold gc-allocated objects. Make the string heap a stream like the
21784         others. Removed duplicated code when writing stream info.
21785         Added asserts to catch possible buffer overflows. Set the sorted map
21786         for tables that need sorting. Added some documentation.
21787
21788 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
21789
21790         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
21791         for interned strings and vtables.
21792
21793 2002-03-24  Martin Baulig  <martin@gnome.org>
21794
21795         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
21796         it in the array since it was created with g_slist_prepend().
21797
21798 2002-03-24  Martin Baulig  <martin@gnome.org>
21799
21800         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
21801         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
21802         (mono_debug_method_from_token): Renamed to
21803         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
21804         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
21805
21806         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
21807         relocation types.
21808
21809         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
21810
21811 2002-03-24  Martin Baulig  <martin@gnome.org>
21812
21813         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
21814         (mono_debug_method_from_token): New func.
21815
21816         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
21817         New interncall, calls mono_debug_local_type_from_signature().
21818         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
21819         calls mono_debug_method_from_token().
21820
21821 2002-03-23  Martin Baulig  <martin@gnome.org>
21822
21823         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
21824         specifies the number of bytes to be converted, not the array size.
21825         Return the number of chars, not the number of bytes.
21826         (ves_icall_iconv_get_chars): The `byteCount' argument
21827         specifies the number of bytes to be converted, not the array size.
21828
21829 2002-03-23  Martin Baulig  <martin@gnome.org>
21830
21831         * reflection.h (MonoReflectionSigHelper): New type.
21832
21833         * reflection.c (mono_reflection_sighelper_get_signature_local),
21834         (mono_reflection_sighelper_get_signature_local): New functions.
21835
21836         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
21837         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
21838         interncalls.
21839
21840 2002-03-23  Martin Baulig  <martin@gnome.org>
21841
21842         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
21843         is_writeable is set.
21844         (mono_raw_buffer_update): New function to write the modified map
21845         back to disk.
21846
21847         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
21848
21849         * debug-symfile.c (mono_debug_update_symbol_file): Call
21850         mono_raw_buffer_update() when done writing.
21851
21852 2002-03-23  Martin Baulig  <martin@gnome.org>
21853
21854         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
21855
21856         * debug-symfile.c: Added support for arguments and local variables.
21857
21858 2002-03-23  Dick Porter  <dick@ximian.com>
21859
21860         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
21861         protected by ifdefs, hence breaking the w32 build.
21862
21863 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21864
21865         * object.c: implement is_interned() the right way.
21866
21867 2002-03-21  Martin Baulig  <martin@gnome.org>
21868
21869         * debug-symfile.[ch]: New files to handle debugging information
21870         files. There's also support to dynamically update these symbol
21871         files to include machine dependent information.
21872
21873 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
21874
21875         * threads.c (mono_thread_create): new function to create thread
21876         from C
21877
21878 2002-03-20  Martin Baulig  <martin@gnome.org>
21879
21880         * icall.c (ves_icall_InternalInvoke): Create a new object if the
21881         method is a constructor.
21882         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
21883         points to ves_icall_InternalInvoke().
21884
21885 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
21886
21887         * file-io.c: Flush shouldn't throw exceptions.
21888
21889 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
21890
21891         * file-io.c: FileStream flush support; FileSetLength now
21892         restores file pointer.
21893
21894 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
21895
21896         * class.c: set image for pointer classes.
21897
21898 2002/03/19  Nick Drochak <ndrochak@gol.com>
21899
21900         * sysmath.c: Forgot one.
21901
21902 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
21903
21904         * sysmath.c: Avoid redefining existing names.
21905
21906 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
21907
21908         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
21909         handled by runtime as icall rather than dllimport from libm.so
21910         * file-io.c, file-io.h: fixed handle argument type.
21911
21912 2002-03-18  Dick Porter  <dick@ximian.com>
21913
21914         * reflection.c (mono_image_get_type_info): rename interface to
21915         iface, because of "#define interface struct" on windows.
21916
21917 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
21918
21919         * class.c, class.h: rename and export mono_ptr_class_get().
21920         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
21921         * reflection.c, reflection.h, icall.c: better/saner type name
21922         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
21923         method signatures.
21924
21925 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
21926
21927         * class.c (mono_class_init): removed hardcoded GHC_SLOT
21928
21929         * icall.c (ves_icall_InternalInvoke): impl.
21930
21931 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21932
21933         * reflection.c: output the interface map table, too.
21934
21935 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
21936
21937         * class.c (class_compute_field_layout): separate computation of 
21938         static field layout
21939
21940 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
21941
21942         * icall.c: added System.Buffer support.
21943         * file-io.c: moved file icalls from PAL to FileStream.
21944
21945 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
21946
21947         * icall.c (ves_icall_System_Object_GetHashCode): impl.
21948
21949 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
21950
21951         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
21952
21953 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21954
21955         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
21956
21957 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
21958
21959         * debug-helpers.{c,h}: moved here from monograph some useful functions
21960         to locate a method by name/signature in a class or image. Included
21961         also a small and flexible IL disassembler.
21962
21963 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21964
21965         * reflection.c: fixup tokens in methods with small header size, too.
21966
21967 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
21968
21969         * object.c (mono_string_to_utf8): remove assert(!error), instead
21970         print a warning. 
21971
21972 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
21973
21974         * icall.c: update to the new mono_Array_class_get interface.
21975
21976 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
21977
21978         * appdomain.c, object.c: Boehm-GC enable.
21979         * icall.c: make get_data_chunk() support split data requests.
21980         Ensure a class is initialized in more cases. Return only the first
21981         property found in GetProperties() or the compiler gets confused. 
21982         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
21983         * reflection.h, reflection.c: add fixup mechanism for field and method
21984         tokens. Initialize assembly->typeref in a single place. Output
21985         properties after events. Support custom attributes for events, too.
21986         Typo fix for paramter custom attrs.
21987
21988 2002-03-07  Martin Baulig  <martin@gnome.org>
21989
21990         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
21991
21992 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
21993
21994         * class.c (mono_array_class_get): fix. for multi. dim. arrays
21995
21996 2002-03-06  Martin Baulig  <martin@gnome.org>
21997
21998         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
21999         non-zero lower bounds. See testcases #F10-#F13.
22000
22001 2002-03-05  Martin Baulig  <martin@gnome.org>
22002
22003         * exception.c (mono_get_exception_argument_out_of_range): New exception.
22004
22005         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
22006         ves_icall_System_Array_GetValue(), only calculate the absolute array position
22007         here.
22008         (ves_icall_System_Array_SetValue): Likewise.
22009         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
22010         as argument and does the actual work. This function is used when copying a
22011         multi-dimensional array.
22012         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
22013         now do all the widening conversions of value types.
22014         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
22015
22016 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
22017
22018         * class.c: remove some magic numbers and use the smbolic names,
22019         instead. Added init_events() to load event info at class init time.
22020         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
22021         and mono_metadata_methods_from_event().
22022         * reflection.h, reflection.c: added support for writing out the evnets
22023         related information.
22024
22025 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
22026
22027         * reflection.h, icall.c: use a different method (GetInterfaces)
22028         to gather interface info and add isbyref, isprimitive and
22029         ispointer to the ves_icall_get_type_info() return value.
22030
22031 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
22032
22033         * class.h: stared adding support for events.
22034         * icall.c: split find_members implementation. Added debug icall to get
22035         the address of an object.
22036         * reflection.c: handle TypeBuilders in mono_type_get_object().
22037
22038 2002-03-01  Martin Baulig  <martin@gnome.org>
22039
22040         * icall.c (ves_icall_System_Array_GetLength): This must throw an
22041         ArgumentOutOfRangeException(), not an ArgumentException().
22042         (ves_icall_System_Array_GetLowerBound): Likewise.
22043         (ves_icall_System_Array_GetValue): Improved argument checking.
22044         (ves_icall_System_Array_SetValue): Improved argument checking.
22045
22046 2002-03-01  Martin Baulig  <martin@gnome.org>
22047
22048         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
22049         called with invalid arguments rather than just dying with g_assert().
22050         (ves_icall_System_Array_SetValue): Likewise.
22051         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
22052         raise a NotImplementedException instead.
22053         (ves_icall_System_Array_GetLength): Added argument checking.
22054         (ves_icall_System_Array_GetLowerBound): Added argument checking.
22055
22056 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
22057
22058         * object.h (mono_assert): new macros mono_assert and
22059         mono_assert_not_reached
22060
22061 2002-02-28  Martin Baulig  <martin@gnome.org>
22062
22063         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
22064         and "System::String::IsInterned" to "System::String::_IsInterned".
22065
22066 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
22067
22068         * icall.c: remove hacks for typebuilder. Added icall to create a
22069         modified type from a tybebuilder.
22070         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
22071         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
22072         to create a backing MonoClass for a TypeBuilder.
22073
22074 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
22075
22076         * class.c, class.h: more refactoring of class init.
22077         Export mono_class_setup_mono_type() and mono_class_setup_parent().
22078
22079 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
22080
22081         * marshal.c, marshal.h: start of marshaling interface.
22082
22083 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
22084
22085         * icall.c: fix order in assembly qualified name icall.
22086
22087 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
22088
22089         * class.c: do not free str, since we store it in the hash table.
22090         * reflection.h: add label field to MonoILExceptionInfo.
22091         * reflection.c: handle references to more than one assembly. Handle
22092         case when there isn't a module created in the assembly.
22093
22094 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
22095
22096         * class.c: Fix typo. Start refactoring of class init code.
22097
22098 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
22099
22100         * appdomain.c: exit with 1 on error.
22101         * class.c: we already have the name in MonoClassField.
22102         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
22103         MonoStreamHeader instead of an offset of image->raw_metadata.
22104
22105 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
22106
22107         * appdomain.c (mono_init): Be even more descriptive about the error.
22108
22109 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
22110
22111         * appdomain.c: give the user an informative message when corlib can't
22112         be loaded.
22113
22114 2002-02-26  Martin Baulig  <martin@gnome.org>
22115
22116         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
22117         New icall to get the time zone data.
22118
22119 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
22120
22121         * reflection.c: set virtual and raw size of section correctly.
22122         * threads.c: transfer domain information to newly created threads.
22123
22124 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
22125
22126         * class.c: when instancing a class in a domain, load the default
22127         vaules for static fields from the constant table. Fix System.Enum to
22128         not be an enum.
22129         * icall.c: implement Object::GetType() internalcall. Implemented
22130         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
22131         Fixed checking of binding flags in find_members().
22132         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
22133         * reflection.c: handle enumerations when writing to the constant
22134         table. Use a different object cache for types.
22135
22136
22137 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
22138
22139         * object.c (mono_object_isinst): fix for arrays
22140
22141         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
22142
22143 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
22144
22145         * object.c: don't use mprotect ()  and fix intern pool hash table
22146         lookup for big endian systems.
22147
22148 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
22149
22150         * icall.c: change type_is_subtype_of () signature.
22151
22152 2002-02-21  Mark Crichton  <crichton@gimp.org>
22153
22154         * rand.c, rand.h: Added random number generator for
22155         System.Security.Cryptography classes.
22156
22157         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
22158
22159         * icall.c: Added System.Security.Cryptography calls.
22160
22161 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
22162
22163         * class.c, icall.c, metadata.c: better support for pointer types.
22164         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
22165         * reflection.c: Add support for getting custom attrs for properties
22166         and simplify some code.
22167
22168 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
22169
22170         * icall.c: change getToken () and add custom attribute GetBlob()helper
22171         method.
22172         * reflection.h: add custom attrs array to the reflection builder structures.
22173         * reflection.c: encode and emit custom attributes for all the relevant
22174         reflection objects. Cache fieldref and methodref tokens. Change
22175         mono_image_create_token() interface to take a MonoDynamicAssembly.
22176         More complete custom attributes decoder. Load custom attributes for
22177         Assembly, Field, Method and Constructor objects, too. Make the
22178         returned array an Attribute[] one, not object[]. Added
22179         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
22180         custom attribute constructor.
22181
22182 2002-02-20  Dick Porter  <dick@ximian.com>
22183
22184         * icall.c:
22185         * rawbuffer.c:
22186         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
22187         problem code out for now).
22188
22189 2002-02-19  Radek Doulik  <rodo@ximian.com>
22190
22191         * object.c (mono_ldstr): use hash table to avoid multiple swapping
22192
22193 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
22194
22195         * icall.c: register the GetCustomAttributes method.
22196         * object.c, object.h: add mono_string_new_len ().
22197         * reflection.h, reflection.c: added mono_runtime_invoke(),
22198         mono_install_runtime_invoke(). Added
22199         mono_reflection_get_custom_attrs () to load custom attributes and
22200         create the attribute objects.
22201
22202 2002-02-19  Dick Porter  <dick@ximian.com>
22203         * threads-dummy-types.c:
22204         * threads-dummy-types.h:
22205         * threads-dummy.c:
22206         * threads-dummy.h:
22207         * threads-pthread-types.c:
22208         * threads-pthread-types.h:
22209         * threads-pthread.c:
22210         * threads-pthread.h:  Deleted obsolete files
22211
22212 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
22213
22214         * class.c (mono_class_vtable): runtime init the class when we
22215         allocate static class data.
22216
22217         * icall.c (ves_icall_System_Array_SetValue): check for null values.
22218
22219         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
22220         and String - but we will need generic marshalling support in the
22221         future. 
22222         (mono_init): set the domain name in a ms compatible way
22223
22224         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
22225         String[].
22226
22227 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
22228
22229         * object.c (mono_array_clone): use alloca() instead of g_malloc  
22230         for sizes
22231
22232         * appdomain.c (mono_domain_unload): impl.
22233
22234 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
22235
22236         * appdomain.c, object.c: fix intern pool implementation.
22237         * class.c: fix alignment code.
22238
22239 2002-02-16  Radek Doulik  <rodo@ximian.com>
22240
22241         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
22242         and s2 > s1, just copy lower bytes to be compatible with little
22243         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
22244         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
22245
22246         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
22247         force big_endian to be 1 for big endian machines 
22248         (ves_icall_iconv_new_decoder): ditto
22249
22250 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
22251
22252         * socket-io.c (convert_sockopt_level_and_name): If the system
22253         doesn't define SOL_IP or SOL_TCP, get them by hand using
22254         getprotobyname() and caching the values (because this could be a
22255         slow operation).
22256         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
22257         Use the appropriate struct when the system does support it. Ie,
22258         not all systems have struct ip_mreqn so use struct ip_mreq when
22259         appropriate.
22260
22261 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
22262
22263         * reflection.c: handle finally clauses.
22264
22265 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
22266
22267         * socket-io.c: use g_snprintf() instead of snprintf.
22268
22269 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
22270
22271         * reflection.c (mono_param_get_objects): Cast second argument to
22272         mono_method_get_param_names to a const char** to silence the
22273         compiler warning.
22274
22275         * appdomain.c (mono_domain_assembly_open): Put parens around the
22276         truth statement in the for-loop.
22277
22278         * unicode.c (iconv_convert): Got rid of a compiler warning about
22279         int i being unused when the system has a new iconv.
22280         (iconv_get_length): Same.
22281
22282         * image.c (load_class_names): Cast the second argument to
22283         g_hash_table_insert() to char* to hush compiler warnings about the
22284         arg being a const.
22285         (mono_image_open): Same here.
22286
22287         * socket-io.c: Don't conditionally include sys/filio.h or
22288         sys/sockio.h here anymore since we now get them from
22289         io-layer/io-layer.h
22290         (inet_pton): If the system doesn't support inet_aton, implement
22291         using inet_addr and also #define INADDR_NONE if it isn't defined
22292         by the system.
22293
22294 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
22295
22296         * metadata.c, metadata.h: added function to get packing and size info
22297         of a typedef.
22298         * reflection.h, reflection.c: handle field RVA data. Save info about
22299         the table layout if needed. Assign typedef indexes to all the types
22300         before dumping the info about them to avoid forward reference problems.
22301
22302 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
22303
22304         * socket-io.c (convert_sockopt_level_and_name): ifdef
22305         SO_ACCEPTCONN because it is not defined on my system (old debian)
22306
22307 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
22308
22309         * opcode.c: use stddef.h to get NULL.
22310
22311 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
22312
22313         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
22314         for FIONBIO, FIONREAD and SIOCATMARK.
22315         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
22316         define INADDR_NONE and besides, inet_addr() is deprecated and
22317         should not be used. Use inet_pton() instead - it also has the
22318         added bonus that it can easily handle IPv6 addresses as well.
22319         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
22320
22321 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
22322
22323         * decimal.c: remove _MSC_VER conditional.
22324
22325 2002-02-13  Dick Porter  <dick@ximian.com>
22326
22327         * socket-io.c: 
22328         * icall.c: Internal calls for Blocking, Select, Shutdown,
22329         GetSocketOption and SetSocketOption
22330
22331 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
22332
22333         * assembly.cs: better resolver: use it instead of some kludgy
22334         code.
22335
22336 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
22337
22338         * reflection.c: the best way to speed-up the compiler is to avoid
22339         infinite loops.
22340
22341 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
22342
22343         * class.c (mono_class_vtable): changed the object layout
22344         (obj->vtable->class). 
22345         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
22346
22347 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
22348
22349         * assembly.c: look for assemblies in the assembly dir, too.
22350
22351 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
22352
22353         * class.c: fix thinko in mono_class_from_type().
22354
22355 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
22356
22357         * exception.h, exception.c: added TypeLoadException.
22358         * object.h, object.c: added mono_array_clone ().
22359         * icall.c: handle throwOnError in AssemblyGetType().
22360         Added Array.Clone().
22361         * opcode.h, opcode.c: use a single value for the opcode val.
22362         Compile fix for non-gcc compilers.
22363
22364 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
22365
22366         * opcodes.c, opcodes.h: export interesting info about opcodes.
22367
22368 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
22369
22370         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
22371         icalls. 
22372
22373         * class.c (class_compute_field_layout): set element_class for enums
22374         (mono_class_create_from_typedef): set element_class for normal classes
22375
22376         * icall.c (ves_icall_System_Enum_get_value): impl.
22377
22378         * class.c (mono_class_create_from_typedef): do not set valuetype
22379         flag for System.ValueType and System.Enum
22380
22381 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
22382
22383         * unicode.c (iconv_convert): fix big endian problem.
22384
22385 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
22386
22387         * class.c: add asserts if we are ever going to scribble over memory.
22388         * socket-io.c: not all systems have AF_IRDA defined.
22389
22390 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
22391
22392         * class.c (class_compute_field_layout): do not consider static
22393         fields to compute alignment
22394
22395 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
22396
22397         * appdomain.c (mono_appdomain_get): impl.
22398         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
22399
22400 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
22401
22402         * icall.c: ignore "file://" prefix when loading an assembly.
22403
22404 2002-01-23  Dick Porter  <dick@ximian.com>
22405
22406         * socket-io.c:
22407         * icall.c:
22408         * Makefile.am: Added socket support
22409
22410 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
22411
22412         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
22413         code back.  This should return the assemblies that are loaded by
22414         the runtime on behalf of an application domain. 
22415
22416         The current implementation is still broken, it just returns every
22417         assembly loaded, but until we get real applications domain this
22418         will do.
22419
22420 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
22421
22422         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
22423         AppDomain object.
22424
22425 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
22426
22427         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
22428         the mono_class_from_name lookup.
22429         (ves_icall_get_parameter_info): ditto.
22430         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
22431         method.
22432         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
22433
22434 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
22435
22436         * class.c: load also nested classes on class init.
22437         System.ValueType instance methods gets passed boxed
22438         values, unless methods in derived classed that get a pointer to the
22439         data.
22440         * icall.c: use better name parsing code in GetType().
22441         * image.c, image.h: add mono_image_loaded ().
22442         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
22443         * reflection.c, reflection.h: added mono_reflection_parse_type().
22444
22445 2002-01-22  Veronica De Santis <veron78@interfree.it>
22446
22447         * icall.c : Added mapping of internal calls for Manual and Auto reset events
22448         * threads.c : Added the implementation of internal calls for events
22449         * threads.h : Added prototypes of internal calls for events
22450         
22451 2002-01-21  Radek Doulik  <rodo@ximian.com>
22452
22453         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
22454
22455 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
22456
22457         * class.c (mono_class_init): set min_align to 1 (instead of 0)
22458         (mono_class_value_size): use min_align
22459
22460 2002-01-20  Dick Porter  <dick@ximian.com>
22461
22462         * threads.h:
22463         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
22464         so it compiles on w32.
22465
22466 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
22467
22468         * metadata.c (mono_type_stack_size): impl.
22469
22470         * class.c (mono_class_get_field): impl. memberref token
22471
22472 2002-01-16 Veronica De Santis <veron78@@interfree.it>
22473
22474         * icall.h : Added the internal calls mapping for CreateMutex_internal
22475                     and ReleaseMutex_internal.
22476         * threads.h : Added the prototype of mutexes internal calls.
22477         * threads.c : Added the implementations of mutexes internal calls.
22478
22479 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
22480
22481         * metaparse.h: removed unused file.
22482         * reflection.c, reflection.h: added stream_data_align () function 
22483         to align data in streams and keep stream aligned. Add support for
22484         exception support in method headers.
22485
22486 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
22487
22488         * unicode.c: make iconv_convert () return the number of bytess written
22489         in the output buffer.
22490
22491 2002-01-15  Dick Porter  <dick@ximian.com>
22492         * threads.c: Make the runtime's idea of infinite timeouts coincide
22493         with the class library's
22494
22495         Fix a particularly egregious bug in mono_thread_cleanup(). That
22496         code was so utterly bogus it must have been written on a Monday.
22497
22498 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
22499
22500         * reflection.h: add subtypes field to TypeBuilder.
22501         * reflection.c: encode constants for literal fields.
22502         Handle subtypes. Fix user string token (and add a zero byte)
22503         at the end.
22504         
22505 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
22506
22507         * class.c (mono_class_init): bug fix: assign slot numbers for
22508         abstract methods.
22509
22510 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
22511
22512         * reflection.c: don't try to output a code RVA for abstract methods.
22513         Small fixes for method header format. Output parameter info to the
22514         ParamDef table. Save method overriding info to MethodImpl table.
22515         Fix property support. Allow typedef.extends to be a type in the
22516         building assembly.
22517         * verify.c: fix off-by-one error.
22518
22519 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
22520
22521         * class.c: fix mono_class_from_mono_type () for szarray types.
22522         Remove unused cache check in mono_class_from_type_spec().
22523         * icall.c: *type_from_name () functions handle simple arrays and byref.
22524         * reflection.c: handle byref and szarray types. Handle methods without
22525         body (gets P/Invoke compilation working). Handle types and fields in
22526         get_token ().
22527         * reflection.h: add rank to MonoTypeInfo.
22528
22529 2002-01-10  Dick Porter  <dick@ximian.com>
22530
22531         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
22532         internal calls
22533
22534 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
22535
22536         * icall.c: initialize class in type_from_handle ().
22537         Loop also in parent classes for get_method ().
22538         * reflection.c: properly encode class and valuetype types.
22539         Start on encoding TypeBuilder types. Handle fieldrefs.
22540         Use correct length when registering a user string.
22541         Handle ConstructorBuilder and MonoMethod in get_token ().
22542         Make mono_type_get_object () aware of cached types.
22543         * object.c: back out change to mono_string_new ().
22544
22545 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
22546         * object.c: mono_string_new should return a NULL when the string 
22547         passed in is NULL -- not try to deference it.
22548         
22549 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
22550
22551         * icall.c: hack to make IsSubType work for TypeBuilders.
22552         * reflection.c: emit constructors before methods.
22553         Retrieve param names in mono_param_get_objects().
22554
22555 2002/01/05  Nick Drochak  <ndrochak@gol.com>
22556
22557         * Makefile.am: fix list of headers and sources so automake 1.5
22558         doesn't complain. Removed \# at end of list.
22559
22560 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
22561
22562         * reflection.c: get token for a method ref. Set return type of
22563         constructor to void.
22564         * loader.c: debug message.
22565         * class.c: typo fix.
22566
22567 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
22568
22569         * icall.c: fix array init with rank > 1. FindMembers
22570         loops in parent class as well.
22571         * image.c: do not insert nested types in name cache.
22572         * reflection.c: warning fix.
22573         * reflection.h: add override method (for interface impl).
22574
22575 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
22576
22577         * metadata.c: fix customattr decoding.
22578
22579 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
22580
22581         * rawbuffer.cs: Added native Win32 implementation, avoids using
22582         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
22583
22584 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
22585
22586         * class.c: make the low-level routines handle the cache.
22587
22588 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
22589
22590         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
22591
22592 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
22593
22594         * class.c: fix mono_array_element_size() for objects.
22595         * class.h, class.c: add properties to MonoClass and load them
22596         at init time.
22597         * icall.c: check with isinst() when assigning a value to an array
22598         instead of requiring the classes to match exactly.
22599         Implemented icall for System.Type::GetType().
22600         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
22601         enums. Handle bindingflags when looking for methods and fields.
22602         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
22603         and mono_metadata_methods_from_property().
22604         * reflection.h, reflection.c: added structures for propreties,
22605         parameters and enums. Implemented mono_property_get_object() and
22606         mono_param_get_objects().
22607
22608 2001-12-18  Dick Porter  <dick@ximian.com>
22609
22610         * file-io.c: Use mono_string_to_utf16() instead of
22611         mono_string_chars()
22612
22613         * object.c: Added mono_string_to_utf16(), which copies the non
22614         NULL-terminated MonoString into a new double-null-terminated
22615         buffer.
22616
22617 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
22618
22619         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
22620
22621 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
22622
22623         * file-io.c: raise exceptions if handle is invalid.
22624
22625 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
22626
22627         * assembly.c: yet another check for mscorlib.
22628         * class.c, class.h: load nesting info for classes.
22629         * icall.c: many new functions to support the Reflection classes.
22630         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
22631         * reflection.h, reflection.c: mono_image_create_token(),
22632         mono_assembly_get_object(), mono_type_get_object(),
22633         mono_method_get_object(), mono_field_get_object(): methods to return
22634         objects that parallel the C representation of assemblies, types,
22635         methods, fields.
22636
22637 2001-12-11  Dick Porter  <dick@ximian.com>
22638
22639         * icall.c:
22640         * file-io.c: Internal calls for file IO.
22641
22642 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
22643
22644         * tabledefs.h: missing FileAttributes.
22645         * verify.h, verify.c: use is_valid_string () to simplify and check for
22646         valid strings more correctly. Fix warnings and speeling.
22647         Check more tables: Filed, File, ModuleRef, StandAloneSig.
22648         Check code: branches, maxstack, method calls.
22649
22650 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
22651
22652         * object.c (mono_object_allocate): removed static, so that the jit
22653         can allocate value types.
22654
22655         * icall.c (ves_icall_System_DateTime_GetNow): impl.
22656
22657 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
22658
22659         * class.c: init enum types right away and register the
22660         token->MonoClass map in mono_class_create_from_typedef ().
22661         * verify.h, verify.c: first cut of the verifier.
22662         * pedump.c: add --verify switch to verify metadata tables.
22663         * tabledefs.h: add some missing enums.
22664
22665 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
22666
22667         * class.c (mono_install_runtime_class_init): impl.
22668         (mono_class_init): renamed mono_class_metadata_init to
22669         mono_class_init, also removed the metadata_inited flag
22670
22671         * object.c (mono_object_isinst): use faster algorithm
22672
22673 2001-11-30  Radek Doulik  <rodo@ximian.com>
22674
22675         * mono-endian.h: reverted last change
22676         added function prototypes
22677
22678         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
22679         add mono-endian.c back
22680
22681         * mono-endian.c: returned back, as Paolo pointed out, it's needed
22682         for unaligned access, I've mistaked it with endianess. I am
22683         sorry.
22684         (mono_read16): fix reverted endianess
22685         (mono_read64): ditto
22686         (mono_read32): ditto
22687
22688 2001-11-30  Dick Porter  <dick@ximian.com>
22689
22690         * exception.c: Implement mono_exception_from_name()
22691
22692 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
22693
22694         * metadata.h, metadata.c: remove params_size and locals_size and their
22695         calculation from the metadata code: they are only usefult to the
22696         interp.
22697
22698 2001-11-29  Radek Doulik  <rodo@ximian.com>
22699
22700         * object.c (mono_ldstr): swap bytes here, it's probably not the
22701         best place, but works for me now, I'll redo it once I know mono
22702         better, also note that I add PROT_WRITE and don't reset back, also
22703         note that it's only affects big endians, so x86 should be OK
22704
22705         * mono-endian.h (read16): use just glib macros for both endians
22706
22707         * mono-endian.c: removed as glib macros are used in in
22708         mono-endian.h so we don't need to care about endianess for read
22709         macros as glib does that for us already
22710
22711 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
22712
22713         * class.h, class.h: take minimum alignment into consideration so
22714         that the fields of a class remain aligned also when in an array.
22715
22716 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
22717
22718         * loader.h, loader.c: add mono_method_get_param_names().
22719         * class.c: 0-init class fields.
22720
22721 2001-11-26  Dick Porter  <dick@ximian.com>
22722
22723         * icall.c:
22724         * threads-types.h:
22725         * threads.c: New file that handles System.Threading on all platforms
22726
22727         * object.c: 
22728         * object.h: Remove the synchronisation struct from MonoObject,
22729         replace it with a pointer that gets initialised on demand
22730
22731         * Makefile.am: Replace all the system-specific threading code with
22732         a single file that uses the new wrapper library
22733
22734 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
22735
22736         * class.c, class.h: add mono_install_trampoline() so that the runtime
22737         can register a function to create a trampoline: removes the ugly
22738         requirement that a runtime needed to export arch_create_jit_trampoline.
22739         * object.h, object.c: added mono_install_handler() so that the runtime
22740         can install an handler for exceptions generated in C code (with
22741         mono_raise_exception()). Added C struct for System.Delegate.
22742         * pedump.c: removed arch_create_jit_trampoline.
22743         * reflection.c: some cleanups to allow registering user strings and
22744         later getting a token for methodrefs and fieldrefs before the assembly
22745         is built.
22746         * row-indexes.h: updates and fixes from the new ECMA specs.
22747
22748 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
22749
22750         * class.h, class.c: add enum_basetype field to MonoClass.
22751         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
22752         to get index in the constant table reated to a field, param or
22753         property.
22754         * reflection.h, reflection.c: handle constructors. Set public-key and
22755         version number of the built assembly to 0.
22756         * row-indexes.h: update from new ECMA spec.
22757
22758 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
22759
22760         * class.h, class.c: add a max_interface_id to MonoClass.
22761         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
22762         since it's used to do that. Added mono_type_type_from_obj().
22763         Make GetType() return NULL instead of segfaulting if the type was not
22764         found. Handle simple arrays in assQualifiedName.
22765         * object.h: add a struct to represent an Exception.
22766         * reflection.c: output call convention in method signature.
22767         Add code to support P/Invoke methods and fixed offsets for fields.
22768
22769 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
22770
22771         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
22772         the value.
22773         * icall.c: use mono_array_addr instead of array->vector: fixes the
22774         reflection image writing.
22775         * reflection.c: init call convention byte to 0 in method signature.
22776         Encode the property signature. Don't output property-related methods
22777         twice. Really process the properties for a type (don't cast a field to
22778         a property, my mom always told me that).
22779         Fix 64 bit issues in pointer alignment in a different and more
22780         readable way.
22781
22782 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
22783
22784         * loader.h: Removed type class from MonoDefaults, added monotype
22785
22786         * loader.c: Loaded MonoType, removed loading of Type
22787
22788         * icall.c (my_mono_new_object): Now returns a System.MonoType,
22789         and fills in System.Type._impl with a RuntimeTypeHandle rather
22790         than the actual MonoClass *
22791
22792         (ves_icall_type_from_handle): change from type_class to
22793         monotype_class
22794
22795         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
22796         implemented
22797
22798         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
22799         implemented
22800
22801         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
22802
22803         (ves_icall_System_Reflection_Assembly_GetType): implemented
22804
22805         (ves_icall_System_MonoType_assQualifiedName): implemented
22806
22807         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
22808
22809 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
22810
22811         * assembly.c (mono_assembly_open): Implement a cache for the
22812         assemblies. 
22813
22814         (mono_assembly_close): only destroy the assembly when the last
22815         reference is gone.
22816         
22817 2001-11-09  Dick Porter  <dick@ximian.com>
22818
22819         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
22820
22821 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
22822
22823         * class.c (mono_class_metadata_init): bug fix: compute the right slot
22824
22825 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
22826
22827         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
22828         from Martin Weindel.
22829         * object.h: add mono_string_chars ().
22830
22831 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
22832
22833         * reflection.c (build_compressed_metadata): Eliminates warnings
22834         and uses 64-bit clean code.
22835
22836         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
22837         (mono_type_equal): Change signature to eliminate warnings.
22838
22839 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
22840
22841         * icall.c, loader.c: remove the internalcall array constructors.
22842         Changes to match the new MonoArray structure.
22843         * object.h, object.c: an array object doesn't allocate an extra
22844         vector. Add mono_array_new_full () to create jagged arrays easily.
22845
22846 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
22847
22848         * metadata.h, metadata.c: add mono_metadata_field_info () to
22849         retreive all the info about a field from vairous tables.
22850         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
22851         * class.h, class.c: augment MonoClassField with more info.
22852         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
22853         policy and load a field's RVA if needed.
22854
22855 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
22856
22857         * class.c (mono_class_metadata_init): create a trampoline for all
22858         virtual functions instead of actually compiling them.
22859
22860 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
22861
22862         * class.h, class.c: include name in MonoClassField.
22863         * class.c: fix fundamental type of System.Object and System.String.
22864         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
22865         tokens in ldtoken.
22866         * icall.c: remove internalcalls for the Reflection stuff that is now
22867         done in C# code.
22868         * loader.c: mono_field_from_memberref () implementation.
22869         * mono-endian.c: thinko (s/struct/union/g).
22870         * object.c, object.h: make the mono_string_* prototypes actually use
22871         MonoString instead of MonoObject.
22872         * reflection.c, reflection.h: updates for changes in the reflection
22873         code in corlib: we use C structures that map to the actual C# classes.
22874         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
22875         fat method header if needed and use the info from the ILGenerator for
22876         methods. Handle fields in types. Misc fixes.
22877
22878 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
22879
22880         * class.c (mono_class_metadata_init): bug fix: always allocate
22881         space for static class data
22882
22883 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
22884
22885         * class.c (mono_compute_relative_numbering): use relative
22886         numbering to support fast runtime type checks.
22887
22888 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
22889
22890         * class.c (mono_class_create_from_typeref): added debugging output
22891         to print class name when MonoDummy is returned instead of real class
22892
22893 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
22894
22895         * class.c (mono_class_metadata_init): interface offset table now
22896         contains pointers into the vtable - this is more efficient for the jit
22897
22898 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
22899
22900         * class.c (mono_class_metadata_init): use a temporary vtable (the
22901         old algorithm only worked for the interpreter, but not for the jit)
22902
22903 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
22904
22905         * loader.c (method_from_memberref): use mono_class_get to get the
22906         class of an array instead of using System.Array directly.
22907         (mono_get_method): also add MEMBERREF methods to the method cache
22908         which usefull for arrays.
22909
22910 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
22911
22912         * pedump.c (arch_compile_method): added to compute vtable entry
22913
22914         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
22915         number of interfaces.
22916         
22917         * class.h: merged MonoArrayClass into MonoClass
22918
22919         * class.c (mono_class_create_from_typedef): compute the vtable size and
22920         allocate space to include the vtable inside MonoClass
22921         (mono_class_metadata_init): initialize the vtable
22922
22923 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
22924
22925         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
22926         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
22927         * image.c: endian fixes by Laurent Rioux.
22928         * object.h, object.c: rename MonoStringObject to MonoString and
22929         MonoArrayObject to MonoArray. Change some function names to conform to
22930         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
22931         guint16* as first argument, so don't use char*.
22932         Provide macros to do the interesting things on arrays in a portable way.
22933         * threads-pthread.c: updates for the API changes and #include <sched.h>
22934         (required for sched_yield()).
22935         * icall.c: updates for the API changes above.
22936         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
22937         platforms that need them.
22938
22939 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
22940
22941         * class.c: set the correct type for all the fundamental
22942         type when loading the class.
22943
22944 2001-10-05  Dick Porter  <dick@ximian.com>
22945
22946         * threads-pthread.c (pthread_mutex_timedlock): Simple
22947         compatibility version for C libraries that lack this call.
22948
22949 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22950
22951         * class.c: MonoTypes stored in MonoClass are stored as
22952         fundamental MonoTypes when the class represents a
22953         fundamental type (System.Int32, ...).
22954         The TypeHandle return by ldtoken is a MonoType*.
22955         * icall.c: ves_icall_get_data_chunk () write out all the
22956         PE/COFF stuff. Implement ves_icall_define_method (),
22957         ves_icall_set_method_body (), ves_icall_type_from_handle ().
22958         * image.c: properly skip unknown streams.
22959         * loader.h, loader.c: add type_class to mono_defaults.
22960         * metadata.c, metadata.h: export compute_size () as
22961         mono_metadata_compute_size () with a better interface.
22962         Typo and C&P fixes.
22963         * pedump.c: don't try to print the entry point RVA if there is no entry point.
22964         * reflection.c, reflection.h: many cleanups, fixes, output method
22965         signatures and headers, typedef and typeref info, compress the metadata
22966         tables, output all the heap streams, cli header etc.
22967         * row-indexes.h: typo fixes.
22968
22969 2001-10-04  Dick Porter  <dick@ximian.com>
22970
22971         * object.h: Add a synchronisation mutex struct to MonoObject
22972
22973         * object.c (mono_new_object): Initialise the object
22974         synchronisation mutexes
22975
22976         * icall.c: System.Threading.Monitor internal calls
22977         
22978         * threads-pthread.h:
22979         * threads-pthread.c: System.Threading.Monitor internal calls
22980
22981         * threads-types.h: New file, includes the system-specific thread
22982         structures
22983         
22984         * threads-pthread-types.h:
22985         * threads-pthread-types.c: New files, handle pthread-specific
22986         synchronisation types
22987
22988         * threads-dummy-types.h: 
22989         * threads-dummy-types.c: New files of dummy support for
22990         thread-specific types
22991
22992         * metadata.c:
22993         * image.c:
22994         * pedump.c: include mono-endian.h not endian.h
22995         
22996         * Makefile.am: More threads files.
22997         Name mono-endian.h not endian.h
22998
22999 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
23000
23001         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
23002         stuff and implement a few more bits.
23003         * icall.c: a field needs to be dereferenced twice. Do not use the same
23004         name for two variables in the same scope.
23005         * image.c, image.h: cleanups.
23006
23007 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
23008
23009         * class.c (mono_class_metadata_init): bug fix: compute the right size
23010
23011 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
23012
23013         * icall.c: implemented some of the Reflection internalcalls.
23014         * image.c, image.h: start writing out the PE/COFF image.
23015         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
23016         that does the reverse than decode_blob_size ().
23017         * object.c: use mono_metadata_encode_value (). Move here
23018         temporary implementation of mono_string_to_utf8 ().
23019         * rawbuffer.c: make malloc_map static.
23020
23021 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
23022
23023         * metadata.c: fix type comparison for arrays.
23024         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
23025         Added a couple of new classes to monodefaults.
23026         * icall.c: added a couple of Reflection-related internalcalls.
23027         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
23028         Added a byval_arg MonoType to MonoClass.
23029
23030 2001-09-28  Dick Porter  <dick@ximian.com>
23031
23032         * icall.c:
23033         * threads-pthread.h: 
23034         * threads-pthread.c: Implemented internal calls for
23035         LocalDataStoreSlot operations.  Applied mutexes around all shared
23036         data.  Reworked the thread creation and Start() operations to
23037         avoid a race condition.
23038         
23039         * threads-dummy.h:
23040         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
23041
23042 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
23043
23044         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
23045
23046 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
23047
23048         * class.c, loader.c: warn and return NULL instead of erroring out.
23049         * icall.c: added System.AppDomain::getCurDomain().
23050         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
23051
23052 2001-09-25  Dick Porter  <dick@ximian.com>
23053
23054         * threads-pthread.h:
23055         * threads-pthread.c: Implemented timed thread joining and added
23056         System.Threading.Thread::Join_internal internal call
23057
23058         * icall.c: Added System.Threading.Thread::Join_internal internal call
23059
23060         * threads-dummy.h:
23061         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
23062
23063 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
23064
23065         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
23066         mono_string_intern () to implement the semantics of the ldstr opcode
23067         and the interning of System.Strings.
23068         * icall.c: provide hooks to make String::IsIntern and String::Intern
23069         internalcalls.
23070
23071 2001-09-23  Dick Porter  <dick@ximian.com>
23072
23073         * threads-dummy.c: 
23074         * threads-dummy.h: New files of dummy threading routines
23075
23076         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
23077         support code based on system specifics
23078
23079         Rename PTHREAD_LIBS to THREAD_LIBS
23080         
23081 2001-09-23  Dick Porter  <dick@ximian.com>
23082
23083         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
23084         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
23085         internal calls.
23086         (mono_thread_init): Set up a Thread object instance to return when
23087         the main thread calls Thread.CurrentThread
23088         (mono_thread_cleanup): Wait for all subthreads to exit
23089
23090         * icall.c: New internal calls for System.Threading.Thread::Sleep
23091         (including Schedule) and CurrentThread
23092
23093         * threads.h: New file, to insulate thread-specific stuff from the
23094         rest of the code
23095
23096 2001-09-21  Dick Porter  <dick@ximian.com>
23097
23098         * threads-pthread.h: 
23099         * threads-pthread.c: New file, for handling pthreads-style
23100         threading support.  Start() now starts a new thread and executes
23101         the ThreadStart delegate instance.
23102
23103         * icall.c: Added the internalcall for
23104         System.Threading.Thread::Start_internal
23105
23106         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
23107
23108 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
23109
23110         * loader.c: work around the different signatures for delegates
23111         constructors csc generates in compiled code vs the ones compiled in mscorlib.
23112
23113 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
23114
23115         * class.h, class.c: add mono_class_get_field_from_name ().
23116         * *: Fix C comments and other ANSI C issues.
23117
23118 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
23119
23120         * endian.h, assembly.c: fix some endianness issues.
23121
23122 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
23123
23124         * loader.h, load.c: add delegate_class to mono_defaults.
23125         Handle runtime provided methods in mono_get_method ().
23126
23127 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
23128
23129         * loader.c (mono_get_method): use pinvoke for internal call
23130
23131         * icall.c: use pinvoke for internal call
23132
23133         * loader.c (method_from_memberref): set the method name
23134
23135 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
23136
23137         * metadata.c: help the compiler generate better code for
23138         mono_class_from_mono_type ().
23139
23140 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
23141
23142         * class.c (mono_class_metadata_init): delayed computing of the
23143         class size to mono_class_metadata_init ()
23144
23145 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
23146
23147         * class.c, class.h: add an interfaces member to MonoClass.
23148         * image.c, image.h: add assembly_name field to MonoImage
23149         from the assembly table.
23150         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
23151
23152 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
23153
23154         * class.c: Handle Array in mono_class_from_mono_type ().
23155         * metadata.c, pedump.c: some endian fixes.
23156
23157 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
23158
23159         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
23160         * metadata.c: fix small problem introduced with the latest commit.
23161
23162 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
23163
23164         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
23165         We don't need a MonoMetadata pointer anymore to compare signatures in
23166         mono_metadata_signature_equal (), update callers.
23167         Reduced memory usage an number of allocations for MonoMethodHeader and
23168         MonoMethodSignature.
23169
23170 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
23171
23172         * metadata.c: added compare for szarray.
23173
23174 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
23175
23176         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
23177         and add a couple more types to it and mono_defaults. Give an hint on
23178         classes that need implementing in our corlib and are referenced
23179         in mscorlib.
23180
23181 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
23182
23183         * class.h, class.c: keep track if a class is also an Enum.
23184         * loader.c: Implement a couple more types for use in libffi
23185         marshalling. Gives better diagnostics when failing to dlopen
23186         a library. Set method->klass for P/Invoke methods, too.
23187
23188 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
23189
23190         * class.c, class.h: add a MonoType this_arg to MonoClass that
23191         represents a pointer to an object of the class' type that
23192         can be used by the interpreter and later the type cache.
23193         Add best guess alignment info for valuetype objects.
23194
23195 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
23196
23197         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
23198         into MonoType: one less level of indirection and allocation and
23199         simplifies quite a bit of code. Added cache for MonoTypes that are
23200         used frequently, so that we don't need to allocate them all the time.
23201
23202 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
23203
23204         * class.c (mono_class_create_from_typedef): System.Enum is also a
23205         value type, although it does not derive from System.ValueType
23206         (maybe a bug in the ms compiler?)
23207
23208         * metadata.c (mono_type_size): return the right size for value types
23209
23210         * loader.c (mono_get_method): only initialize method header if not abstract
23211
23212         * class.c (mono_class_from_mono_type): use mono_default values. 
23213
23214 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
23215
23216         * *: use MonoClass pointers instead of <type_tokens>
23217         
23218         * class.h: new flag: metadata_inited.
23219
23220         * class.c (mono_class_metadata_init): impl.
23221         (mono_class_instance_size): impl.
23222         (mono_class_data_size): impl.
23223
23224 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
23225
23226         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
23227         MonoClass now has the name and name_space fields. 
23228         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
23229         mono_get_method () takes and optional MonoClass as argument.
23230         Removed mono_typedef_from_name() and added mono_class_token_from_name()
23231         instead that takes advantage of a map from class names to typedef
23232         tokens in MonoImage.
23233
23234 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
23235
23236         * metadata.c: zero is not a valid alignment boundary.
23237         Merge MONO_TYPE_VOID in default decoding code.
23238
23239 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
23240
23241         * image.h: merged MonoMetadata into MonoImage
23242
23243         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
23244         identify the type of elements.
23245
23246 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
23247
23248         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
23249         * cil-coff.h: split MonoMSDOSHeader and add size info.
23250         * image.c: add some consistency checks.
23251         * metadata.c: fix row size computation: one programmer
23252         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
23253         add explanation for the locator routine.
23254         Fix decoding of size in method header.
23255         
23256 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
23257
23258         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
23259         (g_concat_dir_and_file): Bring g_concat_dir_and_file
23260         function from gnome-libs.  This uses the right path separator
23261         based on the OS, and also works around a bug in some systems where
23262         a double slash is not allowed. 
23263         (default_assembly_name_resolver): Use g_concat_dir_and_file
23264         (mono_assembly_open): ditto.
23265
23266 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
23267
23268         * metadata.c (mono_metadata_signature_equal): impl.
23269
23270         * *: void is now a realy MonoType (instead of using NULL)
23271         
23272         * metadata.c (do_mono_metadata_parse_type): use
23273         mono_metadata_parse_type to parse void value.
23274
23275 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
23276
23277         * metadata.c, metadata.h: in the signature and method header store
23278         only the space required for holding the loca vars and incoming arguments.
23279
23280 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
23281
23282         * metadata.c (do_mono_metadata_parse_type): treat void like any
23283         other type (instead of assigning NULL);
23284
23285 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
23286
23287         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
23288
23289 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
23290
23291         * image.c (do_mono_image_open): added a cache for arrays.
23292
23293 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
23294
23295         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
23296         decode a single column from a row in a metadata table and changes
23297         to take advantage of it in the typedef locator (gives a nice speed up).
23298         Store offset info for function params.
23299
23300 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
23301
23302         * image.h (MONO_IMAGE_IS_CORLIB): removed 
23303
23304 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
23305
23306         * assembly.c: how could mono_assembly_close () had ever worked?
23307         * metadata.c, metadata.h: provide offset info for local vars.
23308         Implement mono_type_size () to take care of alignment as well
23309         as size (it was mono_field_type_size in cli/class.c before).
23310
23311 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
23312
23313         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
23314
23315         * assembly.h (CORLIB_NAME): set to corlib.dll
23316
23317         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
23318
23319 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
23320
23321         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
23322         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
23323         tokentype.h: massive namespace cleanup.
23324
23325 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
23326
23327         * metadata.h, metadata.c: decode exception clauses when parsing method header.
23328
23329 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
23330
23331         * metadata.c (mono_metadata_free_type): added check for type !=
23332         NULL (void) before calling mono_metadata_free_type()
23333
23334 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
23335
23336         * metadata.h, row_indexes.h: added header with enumerations to use
23337         to index in the columns from tables in metadata and to decode coded
23338         tokens: we should start using this instead of embedding magic numbers
23339         all over the code.
23340
23341 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
23342
23343         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
23344         Move metadata_t info from cli_image_info_t to MonoImage, where
23345         it's easily accessible. Changed all the uses accordingly.
23346         Added the method and class caches to MonoImage.
23347         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
23348         and mono_metadata_decode_value () signature to be more consistent
23349         with the other parse functions (and simplify code). Taken advantage
23350         of zero-length array allocation with GCC. Removed reduntant (and
23351         wrong) MonoFieldType struct and use MonoParam instead. Changed
23352         mono_metadata_parse_field_type () to use common code for parsing.
23353         Added mono_metadata_typedef_from_field () and
23354         mono_metadata_typedef_from_method () to lookup a typedef index from a
23355         field or method token.
23356         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
23357
23358 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
23359
23360         * metadata.c (mono_metadata_parse_field_type): Implement. 
23361         (do_mono_metadata_parse_type): Split engine from
23362         mono_metadata_parse_type, so that we can create smaller structures
23363         for things that just have one pointer to the MonoType (look at
23364         the MonoFieldType)
23365
23366 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
23367
23368         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
23369         as Jan Gray found out, it is incorrect. 
23370
23371 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
23372
23373         * assembly.c: Implement asssembly loading.  This loads an image
23374         and loads all the referenced assemblies.  Come to think of it, we
23375         could always do lazy loading of the assemblies. 
23376
23377         * image.c (mono_image_open): Keep loaded images in a hashtable.
23378
23379         * image.h (MonoImage): Add reference count.
23380
23381 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
23382
23383         * assembly.c (mono_assembly_open): Keep track of the file name in
23384         case the assembly has no ASSEMBLY table.
23385
23386         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
23387         from get.c here.
23388
23389 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
23390
23391         * metadata.c, metadata.h: decode local vars in method header
23392         parse function. Change callers accordingly.
23393
23394 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
23395
23396         * metadata.h, cil-coff.h: protect against multiple inclusion.
23397         Added some new structures to hold information decoded from metadata:
23398         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
23399         and relevant decoding/free functions.
23400         * metadata.c: implement decoding functions. Add warning for out of bounds
23401         index in mono_metadata_locate(). Implement mono_get_method () to retreive
23402         all the info about a method signature and invocation. Remove check on
23403         uninitialized local var in parse_mh() and fix memory leak.
23404
23405 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
23406
23407         * metadata.h: More macros.
23408
23409         * tokentype.h: New file.
23410
23411 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
23412
23413         * assembly.c: added a consistency check and initialize
23414         some structures with g_new0().
23415         * metadata.c: fixed a couple more bugs in table size computation
23416         and add other checks for out-of bound access to metadata.
23417
23418 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
23419
23420         * metatada.c: fix bugs computing table sizes. Spew a
23421         warning when index in string heap is out of bounds.
23422
23423 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
23424
23425         * metadata.h: Add a couple of macros to manipulate tokens. 
23426
23427 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
23428
23429         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
23430         cli_section_tables).
23431
23432 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
23433
23434         * metadata.c (mono_metadata_user_string): New function, provides
23435         access to the UserString heap. 
23436
23437 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
23438
23439         * metadata.c: Add inline documentation.
23440
23441 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
23442
23443         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
23444         files. 
23445
23446 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
23447
23448         * typeattr.h: New file, TypeAttribute flags. 
23449
23450 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
23451
23452         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
23453         mono_assembly_ensure_section): Section loading code.
23454         (load_section_tables): Load the sections.
23455
23456         * mono/metadata/metadata.c (mono_metadata_locate_token,
23457         mono_metadata_locate): Functions to locate the information
23458         definition given a token or a table and an index.
23459         (mono_metadata_compute_table_bases): New.
23460         (compute_size): New function to compute the sizes of the various
23461         tables.
23462
23463         * mono/metadata/metadata.h: Finish listing the different index
23464         types. 
23465
23466         * mono/metadata/pedump.c: Improve to dump new information.
23467
23468 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
23469
23470         * mono/metadata/metadata.c: Entered all the tables matching
23471         Beta2. 
23472
23473         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
23474
23475
23476