Mon Oct 1 14:39:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
[mono.git] / mono / metadata / ChangeLog
1
2 Mon Oct 1 14:39:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
3
4         * object.c, object-internals.h: refactored the IMT code to enable
5         building a single slot at a time and lazily creating the IMT trampolines
6         and thunks.
7
8 2007-09-29  Zoltan Varga  <vargaz@gmail.com>
9
10         * loader.c (inflate_generic_signature): Allocate inflated signatures from the heap.
11
12         * metadata.c (mono_metadata_free_inflated_signature): Free the signature itself too.
13         Fixes #328501.
14         
15 2007-09-29  Raja R Harinath  <harinath@gmail.com>
16
17         * loader.c (method_from_methodspec): Rearrange to avoid
18         un-necessary exposition.  Don't assert out if the method's
19         declaring type is a generic type definition.
20
21 2007-09-28  Martin Baulig  <martin@ximian.com>
22
23         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 61.
24
25 Fri Sep 28 20:15:47 CEST 2007 Paolo Molaro <lupus@ximian.com>
26
27         * class-internals.h: optimize field layout of MonoClass to
28         requires less cachelines at runtime and save a few bytes on 64 bit
29         systems.
30
31 2007-09-28  Jb Evain  <jbevain@novell.com>
32
33         * reflection.c: when encoding type names in custom attributes,
34         if the type is a closed generic type, its generic arguments
35         have to be serialized as AssemblyQualifiedName, so that when
36         they are deserialized, it's possible to re-create them properly.
37         Fixes #329450.
38
39
40 Fri Sep 28 19:19:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
41
42         * object.c, class-internals.h: added delegate-creation counter.
43
44 Fri Sep 28 18:07:53 CEST 2007 Paolo Molaro <lupus@ximian.com>
45
46         * class.c: cleanup of the code that synthetizes interfaces for
47         arrays in 2.0: saves quit a bit of corlib mempool memory.
48         Code to fix bug #325495 ifdeffed out for now until the issues
49         with memory usage and O(n^2) behaviour are fixed.
50
51 Fri Sep 28 17:19:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
52
53         * marshal.c: when possible, do not duplicate the name of the methods
54         in the method builder and in the generated MonoMethod.
55
56 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
57         * verify.c: added support for type checking ldind_* opcodes.
58
59 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
60
61         * class-internals.h (struct _MonoGenericClass): new field is_tb_open
62         which is used to distinguish the fully open instantiation of a TypeBuilder
63         with the rest. This temporary hack is required to restore the property that
64         the fully open instantiation is the same type of the generic type definition.
65
66         * class-internals.h (mono_generic_class_is_generic_type_definition):
67         new function as part of the internal API.
68
69         * class.c (inflate_generic_type): return NULL when the generic inst is
70         fully open. The fully open generic type is now the same as the generic type
71         definition for non TypeBuilder types.
72
73         * class.c (mono_generic_class_get_class): removed assert since it is
74         no longer valid, gklass->cached_class can point to the generic type definition.
75
76         * class.c (mono_generic_class_is_generic_type_definition): new.
77
78         * metadata.c (mono_generic_class_hash): added is_tb_open field
79         to the hash calculation.
80
81         * metadata.c (free_generic_class): if the generic class is associated
82         with the generic type definition, its field will come from the mempool and
83         must not be freed.
84
85         * metadata.c (mono_metadata_is_type_builder_generic_type_definition):
86         new, this function identifies the corner case of a TypeBuilder fully open
87         instantiation.
88
89         * metadata.c (mono_metadata_lookup_generic_class): use is_tb_open
90         for lookup. Set gclass->cached_class to be the container class in case of
91         the fully open instantiation of non TypeBuilder types.
92
93         * metadata.c (_mono_metadata_generic_class_equal): use is_tb_open
94         to compare generic classes.
95
96         * reflection.c (method_encode_methodspec): remove assert that
97         no longer is valid.
98
99         * reflection.c (mono_reflection_generic_class_initialize): add
100         an aditional assert to ensure the proper type is used.
101
102 2007-09-26  Rodrigo Kumpera  <rkumpera@novell.com>
103
104         * verify.c: disabled all debug spew by default, define MONO_VERIFIER_DEBUG
105         to enjoy it.
106
107 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
108
109         * verify.c (push_arg): Fixed support for ldarga
110         * verify.c (set_stack_value): Removed superfluous parameter, fixed the
111         MonoType used as first arg in case of instance calls.
112
113 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
114
115         * verify.c: Support for verifying VAR and MVAR types, 
116
117 2007-09-25  Zoltan Varga  <vargaz@gmail.com>
118
119         * icall.c (ves_icall_get_property_info): Set the reflected type of the
120         accessors correctly.
121
122 Tue Sep 25 14:56:03 CEST 2007 Paolo Molaro <lupus@ximian.com>
123
124         * threads.c: support OSX and other systems in
125         mono_thread_get_stack_bounds (bug #328026).
126
127 2007-09-25  Martin Baulig  <martin@ximian.com>
128
129         * mono-debug.h
130         (MonoDebugVarInfo): Replace `MonoClass *klass' with `MonoType *type'.
131
132 2007-09-24  Martin Baulig  <martin@ximian.com>
133
134         * mono-debug.h
135         (MonoDebugClassEntry): Moved the definition of this struct into
136         mono-debug.c to make it private.
137
138         * mono-debug.c
139         (MonoDebugClassEntry): Removed `symfile_id'; since we now use one
140         type table per symbol file, we don't need to store the symfile id
141         any longer.
142
143 2007-09-24  Martin Baulig  <martin@ximian.com>
144
145         Create one type table per symbol file, since a `MonoClass *' gets
146         invalid when its image is unloaded.
147
148         * mono-debug.h (MonoSymbolTable): Removed `type_table'.
149         (MonoDebugHandle): Added `type_table'.
150
151 Mon Sep 24 17:25:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
152
153         * mempool.c, mempool.h: added mono_mempool_new_size () API
154         to be able to specify a smaller initial size for the pool.
155         Adjusted the code to slowly increase pool size before using
156         the previous default size.
157         * image.c: use a small initial size for image mempools.
158
159 2007-09-23  Zoltan Varga  <vargaz@gmail.com>
160
161         * marshal.c (emit_marshal_array): Generate valid IL for byref array case.
162         Fixes ##320990.
163
164         * icall.c (ves_icall_System_Reflection_Assembly_get_ManifestModuleInternal): 
165         Rename this to ves_icall_System_Reflection_Assembly_GetManifestModuleInternal.
166
167 2007-09-22  Zoltan Varga  <vargaz@gmail.com>
168
169         * metadata.c (mono_type_create_from_typespec): Remove an invalid
170         free. Fixes #327438.
171
172 2007-09-21  Raja R Harinath  <harinath@gmail.com>
173
174         * metadata.c (type_in_image) <MONO_TYPE_SZARRAY>: Handle arrays of
175         generic instantiations, etc.
176         <MONO_TYPE_ARRAY>: Likewise.
177
178 2007-09-21  Martin Baulig  <martin@ximian.com>
179
180         * mono-debug.h (MonoSymbolFilePriv, MonoDebugHandlePriv): Removed;
181         these structs were never defined.
182         (MonoDebugHandle): Removed the `_priv' field, it was never used.
183
184 2007-09-21  Martin Baulig  <martin@ximian.com>
185
186         * mono-debug.h (MonoDebugVarInfo): Add `MonoClass *klass'.
187
188 Fri Sep 21 14:39:45 CEST 2007 Paolo Molaro <lupus@ximian.com>
189
190         * image.c: removed the guid hash tables: we can get the same info
191         without the additional memory usage hit (partially fixes also bug #327052).
192
193 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
194
195         * profiler.h, profiler-private.h, profiler.c: add a new profiler
196         event to handle unloading methods. After the event is called, the
197         corresponding MonoMethod* must be considered invalid.
198         * loader.c (mono_free_method): call the new mono_profiler_method_free
199         event.
200
201 2007-09-20  Mark Probst  <mark.probst@gmail.com>
202
203         * domain-internals.h: New flag in MonoJitInfo which marks shared
204         generic methods.  New hash table (shared_generics_hash) in
205         MonoDomain to keep track of shared generic methods.  Prototypes
206         for functions to register and lookup shared generic methods.
207
208         * domain.c: Support for registering and looking up shared generic
209         methods via a hash table (shared_generics_hash) in MonoDomain.
210
211         * class-internals.h: New exception to signal failure of shared
212         compilation of a generic method.  New counters for generics
213         sharing in MonoStats.
214
215 Thu Sep 20 16:59:36 CEST 2007 Paolo Molaro <lupus@ximian.com>
216
217         * image.c, metadata-internals.h: don't keep a file descriptor open
218         for loaded assemblies (bug#325988).
219
220 2007-09-19  Raja R Harinath  <rharinath@novell.com>
221
222         * metadata.c (signature_in_image): New.  Carve out of type_in_image.
223         (ginst_in_image, gclass_in_image): Simplify.  Change signature to
224         use the corresponding datatypes.
225         (type_in_image): Update to changes.
226         (CleanForImageUserData): Simplify.
227         (steal_gclass_in_image): Carved out of old 'gclass_in_image'.
228         Avoid quadratic behaviour in handling the "stolen" list by
229         separating the filter predicate out, and by prepending the stolen
230         items rather than appending them.
231         (steal_ginst_in_image): Likewise.
232         (mono_metadata_clean_for_image): Update to changes.
233
234 2007-09-19  Martin Baulig  <martin@ximian.com>
235
236         * domain.c (mono_cleanup): Call mono_debug_cleanup() here.
237
238 2007-09-19  Martin Baulig  <martin@ximian.com>
239
240         * mono-debug.c (mono_debug_cleanup): Don't call
241         mono_debugger_cleanup(); this is now called earlier from mini_cleanup().
242
243 2007-09-19  Raja R Harinath  <harinath@gmail.com>
244
245         Fix crash on 'make run-test' in mcs/errors
246         * metadata.c (type_in_image): New.  Carve out of ginst_in_image.
247         Avoid more potential allocations in mono_class_from_mono_type.
248         (ginst_in_image): Update to changes.
249         (gclass_in_image): Rearrange slightly.
250
251 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
252
253         * class.c (mono_class_init): Move the code that sets up class->methods to 
254         mono_class_setup_methods () for inflated generic classes too. Ditto for properties.
255
256         * metadata.c (mono_metadata_get_inflated_signature): New function to return a
257         canonical instance of an inflated generic signature.
258         (mono_type_create_from_typespec): Remove an invalid free.
259
260         * loader.c (mono_method_get_signature_full): Use mono_metadata_get_inflated_signature.  
261
262 2007-09-18  Marek Habersack  <mhabersack@novell.com>
263
264         * domain-internals.h: added a declaration of the
265         mono_assembly_load_full_nosearch internal function.
266
267         * assembly.c (mono_assembly_load_with_partial_name): use
268         mono_try_assembly_resolve return value properly.
269         (mono_assembly_load_full_nosearch): copied the function body from
270         mono_assembly_load_full, without the code to invoke assembly
271         search hooks.
272         (mono_assembly_load_full): calls the above new function and if the
273         assembly is not resolved, invokes the search hooks.
274
275         * appdomain.c (mono_runtime_init): restore the global postload
276         assembly search handlers.
277
278 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
279
280         * class.c (mono_class_init): Make sure class->methods and class->properties
281         are never NULL in the generics case.
282
283         * metadata.c (free_generic_class): Enable this again, skip the dynamic case.
284
285 2007-09-17  Zoltan Varga  <vargaz@gmail.com>
286
287         * metadata.c (free_generic_class): Disable some code to fix the build.
288
289         * domain.c (mono_cleanup): Fix a crash introduced by a previous patch.
290
291         * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data
292         from the image mempool.
293
294         * metadata.c (free_generic_class): Free more data from the inflated class.
295
296         * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool.
297
298         * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
299         mempool.
300         (mono_type_create_from_typespec): Ditto.
301
302         * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
303         MonoImage to the caller.
304         (mono_init_internal): Save the opened image in a global variable.
305         (mono_cleanup): Close the image opened in get_runtimes_from_exe.
306
307         * reflection.c (resolve_object): Fix a leak.
308
309         * metadata.c: Fix the freeing of data in the generics caches.
310         
311         * metadata.c (free_generic_inst): Comment this out to fix the build.
312         (free_generic_class): Ditto.
313
314         * metadata.c: Free cached generic methods, instantinations and classes when
315         they are removed from the caches.
316         (mono_metadata_free_type): Free the type itself.
317
318         * class.c: Free the result of mono_class_inflate_generic_type () in a few
319         places.
320
321 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
322
323         * boehm-gc.c: restrict managed allocs to __thread supporting
324         architectures.
325
326 2007-09-16  Zoltan Varga  <vargaz@gmail.com>
327
328         * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
329         (mono_generic_class_get_class): Fix a leak.
330
331         * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
332         mono_metadata_free_type ().
333         (mono_metadata_inflate_generic_inst): Fix a leak.
334
335 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
336
337         * mono-debug.c (free_header_data): Fix a leak missed earlier.
338
339         * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
340         mempool.
341
342         * mono-debug.c (mono_debug_close_image): Fix call to 
343         g_hash_table_remove ().
344
345 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
346
347         * icall-def.h: redirect all the string ctor to the managed
348         CreateString () methods.
349         * string-icalls.c, string-icalls.h: removed dead code for string
350         ctors and icalls.
351
352 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
353
354         * mono-debug.c: Fix memory leaks.
355
356 2007-09-14  Jonathan Chambers <joncham@gmail.com>
357
358         * threads-types.h: Implement mono_hazard_pointer_set and 
359         mono_hazard_pointer_clear macros using do/while(0) to fix
360         compilation with MSVC.
361         
362         Code is contributed under MIT/X11 license.
363
364 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
365
366         * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
367         -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
368
369 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
370
371         * icall-def.h, string-icalls.c: get rid of old, no longer used, string
372         icalls.
373
374 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
375
376         * boehm-gc.c, gc-internal.h, object.c: allow strings to be
377         managed-code allocated as well.
378
379 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
380
381         * class.c (mono_class_is_assignable_from): Add support for generic variance.
382
383 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
384
385         * boehm-gc.c: fixed the build after the AOT changes.
386
387 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
388
389         * wrapper-types.h: Add an ALLOC wrapper type.
390
391         * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
392         reference managed allocator methods.
393
394 2007-09-12  Marek Safar  <marek.safar@gmail.com>
395
396         * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
397         of Type array and not MonoType, a fix suggested by Hari.
398         
399 2007-09-12  Jonathan Chambers <joncham@gmail.com>
400
401         * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
402         and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
403         
404         Code is contributed under MIT/X11 license.
405
406 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
407
408         * domain.c, object.c, mono-config.c, object-internals.h: Fixed  #82416.
409
410 2007-09-12  Marek Habersack  <mhabersack@novell.com>
411
412         * image.c (do_mono_image_open): if assembly file fails to open and
413         MONO_IOMAP is in effect, try to find the path in a
414         case-insensitive way.
415
416         * appdomain.c (mono_runtime_init): do not install postload hooks -
417         tests show that MS.NET doesn't use anything of that sort to
418         trigger the AppDomain.AssemblyResolve event.
419         (mono_try_assembly_resolve): renamed from try_assembly_resolve and
420         made non-static.
421         (mono_runtime_init): init portability helpers here.
422
423         * assembly.c (mono_assembly_load_with_partial_name): if other   
424         attempts fail, trigger the AppDomain.AssemblyResolve event handler
425         to resolve the assembly.
426
427         * domain-internals.h: added mono_try_assembly_resolve and marked
428         it as internal.
429
430 2007-09-11  Jb Evain  <jbevain@novell.com>
431
432         * object-internals.h (MonoReflectionDynamicMethod): add
433         a `MonoReflectionType *owner` field. The owner is used
434         * reflection.c:
435         (mono_reflection_create_dynamic_method): use the owner of the dynamic
436         method as the class declaring the dynamic method.
437         (reflection_methodbuilder_from_dynamic_method): copy the owner of the
438         dynamic method to the declaring type of the methodbuilder.
439
440 2007-09-11  Mark Probst  <mark.probst@gmail.com>
441
442         * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
443         rules for calling methods via reflection.
444
445 2007-09-11  Zoltan Varga  <vargaz@gmail.com>
446
447         * reflection.c (resolve_object): Add support for MonoGenericClass. 
448         Inflate MonoType's.
449
450 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
451
452         * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
453         provide a managed method that does fast allocations without needing
454         a managed->unmanaged transition. Boehm GC implementation currently
455         enabled for ptrfree objects on sane architectures.
456
457 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
458
459         * marshal.c, marshal.h: exported a couple of useful functions and
460         added mono_mb_get_label () to easily handle backward branches.
461
462 2007-09-10  Zoltan Varga  <vargaz@gmail.com>
463
464         * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
465
466 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
467
468         * loader.c (find_method): Fixed the regression introduced while
469         fixing bug #81466.
470
471 2007-09-09  Zoltan Varga  <vargaz@gmail.com>
472
473         * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
474         well.
475         
476         * class.c loader.c metadata.c object.c class-internals.h object-internals.h
477         icall.c reflection.c: Pass a MonoGenericContext argument to 
478         mono_lookup_dynamic_token ().
479
480         * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
481         #82744.
482         
483 2007-09-09  Robert Jordan  <robertj@gmx.net>
484
485         * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
486         for generic methods.
487
488         * object.c (mono_object_get_virtual_method): Handle generic methods.
489         Fixes bug #78882.
490
491         Code is contributed under MIT/X11 license.
492
493 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
494
495         * image.c: fix locking in mono_image_load_file_for_image ().
496
497 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
498
499         * reflection.c, icall.c, icall-def.h: the methodinfos name field is
500         used only as a cache: added an icall to fill it.
501
502 2007-09-16  Rodrigo Kumpera  <rkumpera@novell.com>
503
504         * reflection.h: exposed mono_reflection_free_type_info
505         * reflection.c (mono_reflection_get_type_internal): type_args is always freed
506         since mono_reflection_bind_generic_parameters makes a copy of it.
507         * reflection.c (free_type_info): subinfos should be freed.
508         * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and 
509         made non static.
510         * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
511         replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
512         this fixes #82695 and #81726.
513    
514
515 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
516
517         * process.h, process.c:  added support for user profile/info in
518           ProcessStartInfo. For now only Windows works.
519
520 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
521
522         * metadata.c: consider the generic arguments when comparing
523         signatures (bug #82614).
524
525 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
526
527         * cil-coff.h, image.c: updated assembly loader to cope with the
528         PE32+ 64 bit file format.
529
530 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
531
532         * assembly.c, class.c, domain.c, loader.c: remove useless
533         inclusion of cil-coff.h.
534
535 2007-08-29  Jonathan Chambers  <joncham@gmail.com>
536
537         * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
538         if interface is marked with CoClassAttribute. 
539    
540         Code is contributed under MIT/X11 license.
541
542 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
543
544         * sgen-gc.c: ensure no object from the to space is copied again or finalized
545         if it's seen twice in major collections.
546
547 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
548
549         * sgen-gc.c: big objects are not copied to the gray area, but they
550         need to be considered for scanning, too, if they are brought alive
551         by an object ready for finalizations or a survived one.
552
553 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
554
555         * sgen-gc.c: properly account the number of disappearing links when
556         they are nullified.
557
558 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
559
560         * sgen-gc.c: share the code to scan the registered roots between the
561         different types of collections.
562
563 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
564
565         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
566
567 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
568
569         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
570         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
571
572 2007-08-28  Mark Probst  <mark.probst@gmail.com>
573
574         * security-manager.c (mono_security_manager_get_methods):
575         LinkDemandSecurityException now has 2 arguments instead of 3.
576
577 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
578
579         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
580         platforms which need it.
581
582 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
583
584         * sgen-gc.c: unregister thread data structures with a pthread_key_t
585         dtor.
586
587 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
588
589         * threads.c: free the thread static data on thread exit.
590
591 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
592
593         * class.c: walk the hierarchy to find the generic definition for
594         a class (fixes runtime part of bug #82498).
595
596 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
597
598         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
599         ...
600
601         * image.c (mono_image_close): Here. Hopefully fixes #82510.
602
603 2007-08-24  Mark Probst  <mark.probst@gmail.com>
604
605         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
606
607 2007-08-24  Robert Jordan  <robertj@gmx.net>
608
609         * appdomain.c: don't perform the ':'->';' substitution on Win32.
610
611 2007-08-24  Jb Evain  <jbevain@novell.com>
612
613         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
614         for byref types.
615
616 2007-08-24  Mark Probst  <mark.probst@gmail.com>
617
618         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
619         #82286.
620
621 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
622
623         * assembly.c: Fix a warning.
624         
625 2007-08-23  Marek Habersack  <mhabersack@novell.com>
626
627         * appdomain.c: parse the <runtime> section looking for the probing
628         element with the 'privatePath' attribute, which sets additional
629         directories in which the runtime should look for assemblies.
630
631 2007-08-23  Robert Jordan  <robertj@gmx.net>
632
633         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
634         Fixes #82499.
635
636 2007-08-23  Martin Baulig  <martin@ximian.com>
637
638         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
639         _mono_debug_init_corlib() and remove it from the header file.
640
641 2007-08-23  Martin Baulig  <martin@ximian.com>
642
643         * mono-debug-debugger.c
644         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
645         don't notify the debugger about it.
646
647         * mono-debug-debugger.h
648         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
649
650 2007-08-23  Robert Jordan  <robertj@gmx.net>
651
652         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
653         Code is contributed under MIT/X11 license.
654
655 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
656
657         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
658
659 2007-08-22  Martin Baulig  <martin@ximian.com>
660
661         * mono-debug.c: Store debugging info on a per-domain basis and
662         free it on domain unload.  Add support for unloading symbol files.
663
664         * mono-debug.h
665         (MonoDebugList): New typedef.
666         (MonoSymbolTable):
667         - add `data_tables and `type_table'.
668         - replace 'symbol_files' and `num_symbol_files' with a
669           `MonoDebugList *'.
670         (mono_debug_data_table): Removed.
671         (mono_debug_list_add): New public function.
672         (mono_debug_list_remove): New public function.
673         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
674         (mono_debug_init_2_memory): Renamed into
675         mono_debug_open_image_from_memory().
676         (mono_debug_close_image): New public function.
677         (mono_debug_domain_create): Likewise.
678         (mono_debug_domain_unload): Likewise.
679         (MONO_DEBUGGER_VERSION): Bump to 60.
680
681         * mono-debug-debugger.h
682         (MonoDebuggerEvent):
683         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
684         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
685         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
686         - rename `THREAD_CREATED' and `THREAD_EXITED' into
687           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
688         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
689           meaning.
690         (mono_debugger_add_symbol_file): Removed.
691         (mono_debugger_add_type): Removed.
692         (mono_debugger_lookup_type): Removed.
693         (mono_debugger_lookup_assembly): Removed.
694
695         * domain.c
696         (mono_domain_create): Call mono_debug_domain_create().
697         (mono_init_internal): Call mono_debug_init_corlib().
698
699         * assembly.c
700         (mono_assembly_close): Call mono_debug_close_image().
701
702 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
703
704         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
705         mmap call.
706
707 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
708
709         * sgen-gc.c: ensure section->pin_queue_end is initialized
710         correctly when non pinning objects in the section have been found.
711
712 2007-08-22  Marek Habersack  <mhabersack@novell.com>
713
714         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
715         containing a list of directories separated by ':'. MSDN docs say
716         the directories should be separated with ';'. Part of a bugfix for
717         bug #81446
718
719 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
720
721         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
722         it should MonoType and not MonoClass.
723
724 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
725
726         * culture-info-table.h : regenerated.
727
728 2007-08-20  William Holmes  <billholmes54@gmail.com>
729
730         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
731          to call ReplaceFile Kernel32 on windows or in io-layer.
732         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
733         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
734          as an internal call.
735
736         Code is contributed under MIT/X11 license.
737
738 2007-08-20  Jb Evain  <jbevain@novell.com>
739
740         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
741         and MONO_EXCEPTION_FIELD_ACCESS.
742
743         * debug-helpers.[c|h]: new mono_field_full_name function.
744
745 2007-08-20  Mark Probst  <mark.probst@gmail.com>
746
747         * class.c: Removed class_security_level() and moved it to
748         security-core-clr.c.
749
750         * security-core-clr.c, security-core-clr.h: class_security_level()
751         is now public and renamed to mono_security_core_clr_class_level().
752         It also looks for security attributes in the classes a class is
753         nested in.
754
755 2007-08-20  Mark Probst  <mark.probst@gmail.com>
756
757         * security-core-clr.c, security-core-clr.h: CoreCLR security
758         utility functions.
759
760         * Makefile.am: Added security-core-clr.[ch].
761
762         * security-manager.c, security-manager.h: Functions and enum for
763         setting and getting the security mode.
764
765         * class.c: CoreCLR security checks.
766
767 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
768
769         * icall-def.h, process.c, process.h: implemented icall to get
770         user/system processor times.
771
772 2007-08-17  Mark Probst  <mark.probst@gmail.com>
773
774         * domain.c, threads.c, class-internals.h, domain-internals.h: New
775         reader-lock-free jit_info_table.
776
777 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
778
779         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
780
781         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
782
783         * object-internals.h (MonoException): Add missing _data member.
784
785 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
786
787         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
788         checking that only methods with matching qname or fqname are picked
789         from implemented interfaces.
790
791 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
792
793         * verify.c (do_newarr):added, do type verification of
794         newarr ops, push the right value on the eval stack.
795         * verify.c (mono_method_verify): use do_newarr
796
797
798 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
799
800         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
801         factored the common code into get_boxable_mono_type, which
802         is now using mono_type_get_full, this fixed byref related tests.
803
804 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
805
806         * class.c: added mono_type_get_full, this function has the same
807         behavior of mono_class_get_full but the returned MonoType has
808         all metadata of the associated token in case of a typespec token.
809         * class.c: added mono_type_retrieve_from_typespec, used by 
810         mono_type_get_full to retrieve the token type.
811         * class.c (mono_class_create_from_typespec): changed to use
812         mono_type_retrieve_from_typespec.
813         * class.c (mono_ldtoken): changed to use mono_type_get_full
814         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
815         * class-internals.h: exported mono_type_get_full for internal use.
816
817 2007-08-16  Jb Evain  <jbevain@novell.com>
818
819         * domain.c (supported_runtimes): add entry for
820         the 'moonlight' runtime version.
821
822 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
823
824         * verify.c (mono_method_verify): small typo sliped in.  
825
826 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
827
828         * verify.c (do_unbox_value): added, do type verification of
829         unboxing ops
830         * verify.c (mono_method_verify): use do_unbox_value
831
832
833 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
834
835         * verify.c (dump_stack_value): fixed typo, was printing string
836         instead of object on stack.
837         * verify.c (do_box_value): moved the byref check up as it leads
838         to invalid code and should be done earlier.
839         * verify.c: improved error messages for and ldobj
840
841 2007-08-15  William Holmes  <billholmes54@gmail.com>
842
843         * marshal.c (emit_marshal_custom): Omit the call to 
844           marshal_native_to_managed when calling native to managed 
845           and the argument is specified as an out argument.
846
847         Code is contributed under MIT/X11 license.
848
849 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
850
851         * verify.c: fixed the type checks for generics, function pointers and vectors.
852         Added type verification for ldobj and ldtoken. The verifier
853         would segfault if header or signature of a method contained references
854         to non-existant types.
855
856 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
857
858         * marshal.c (cominterop_get_ccw): Patch from
859         Bill Holmes to no walk up interface hierarchy. 
860         All parent methods should be present in the interface for COM.
861    
862         Code is contributed under MIT/X11 license.
863
864 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
865
866         * marshal.c (emit_marshal_com_interface): Patch from
867         Bill Holmes to handle COM Interfaces as return values
868         for native->managed calls.
869    
870         Code is contributed under MIT/X11 license.
871
872 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
873
874         * marshal.c (cominterop_get_idispatch_for_object): Implement
875         for runtime callable wrappers.
876    
877         Code is contributed under MIT/X11 license.
878
879 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
880
881         * pedump.c (main): changed from mono_init to mono_init_from_assembly
882         so 2.0 types are accessible
883
884
885 2007-08-13  Miguel de Icaza  <miguel@novell.com>
886
887         * domain.c (mono_init_internal): Call mono_assembly_load_friends
888         once we load mscorlib.   Due to the order in which we initialize,
889         the mono_assembly_load_full routine that loads mscorlib did not
890         load friends.   We now load it once we load the
891         mono_defaults.internals_visible_class class. 
892
893         * assembly.c: Expose the mono_load_friend_assemblies method.
894
895 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
896
897         * verify.c: improved the handling of boxing, better
898         type checking for unary ops and conversion. Fix bug
899         regarding managed pointer compatibility checking
900
901 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
902
903         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
904
905         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
906
907 2007-08-09  Raja R Harinath  <rharinath@novell.com>
908
909         * reflection.c (dup_type): Remove.
910         * class.c (dup_type): Remove.
911         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
912         instead of the dodgy 'dup_type'.
913         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
914         handle the case where 'dup_type' needed the second argument.
915
916 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
917
918         * domain.c: Fix a warning.
919
920 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
921
922         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
923         checking that methods with the same fqname are not overridden
924         with a method from an ancestor.
925
926 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
927
928         * threads.c (free_thread_static_data_helper): Avoid a crash if
929         thread->static_data is not yet set.
930
931 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
932
933         * marshal.c: Use correct image when emitting
934         native wrapper for COM calls.
935    
936         Code is contributed under MIT/X11 license.
937
938 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
939
940         * icall-def.h, security.c, security.h :
941           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
942
943 2007-08-07  Martin Baulig  <martin@ximian.com>
944
945         * mono-debug-debugger.h
946         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
947
948         * domain.c (mono_domain_free): Call
949         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
950
951 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
952
953         * verify.c (check_underflow, check_overflow): error message now returns IL offset
954         * verify.c (in_same_block): code should test if either offset is inside the clauses
955         * verify.c (mono_method_verify): push the exception into the eval stack of exception
956         and filter blocks
957
958 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
959
960         * image.c (mono_image_close): Fix a leak.
961
962         * object.c (mono_runtime_invoke_array): Avoid using alloca.
963
964         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
965
966 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
967
968         * domain.c, threads.c, threads-types.h: fix memory retention issue
969         with thread static variables not being cleared on domain unload.
970         Reuse thread static slots after domain unload.
971
972 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
973
974         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
975         nullable type.
976
977         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
978         now done in mono_runtime_invoke_array.
979
980         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
981         receiver is a nullable type.
982
983         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
984         generic parameter.
985
986 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
987
988         * marshal.c: Implement COM Objects as return type for 
989         managed->unmanaged calls. Added Release calls for COM Object
990         out/return values in managed->unmanaged calls.
991
992         Code is contributed under MIT/X11 license.
993
994 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
995
996         * threads.h, threads-type.h: move the hazard pointer declarations
997         to the private header.
998
999 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
1000
1001         * file-io.c, appdomain.c: memory leak fixes.
1002
1003 2007-08-02  Dick Porter  <dick@ximian.com>
1004
1005         * socket-io.c
1006         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
1007         SO_REUSEADDR setting into io-layer/sockets.c.
1008
1009 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
1010
1011         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
1012         from Object when called on a generic parameter. Fixes #82211.
1013
1014 2007-08-01  Dick Porter  <dick@ximian.com>
1015
1016         * file-io.c (convert_share): Test FileShare values bit-by-bit.
1017         Fixes bug 79250 yet again.
1018
1019 2007-07-30  Martin Baulig  <martin@ximian.com>
1020
1021         Merged the `debugger-dublin' branch.
1022
1023         * mono-debug.h
1024         (MonoDebugDataTable): New typedef.
1025         (MonoDebugMethodAddressList): New typedef.
1026         (MonoDebugWrapperData): Removed.
1027         (MonoDebugSymbolTable): Removed `current_data_table',
1028         `current_data_table_size', `current_data_table_offset'.
1029         (MonoDebugDataItemType): Moved into mono-debug.c.
1030         (MonoDebugMethodJitInfo): Remove `address'.
1031         (mono_debug_data_table): New global variable.
1032         (mono_debug_lookup_method_addresses): New public function.
1033         (mono_debug_find_method): Take a `MonoMethod *', not a
1034         `MonoDebugMethodInfo *'.
1035
1036         * mono-debug.c: Drop support for the old symbol tables.
1037
1038 2007-06-28  Martin Baulig  <martin@ximian.com>
1039
1040         * mono-debug.c (mono_debug_debugger_version): New public variable.
1041
1042 2007-07-31  William Holmes  <billholmes54@gmail.com>
1043
1044         * metadata.c Changed mono_type_create_from_typespec to not insert
1045           the type into the hash map until after
1046           do_mono_metadata_parse_type has completed.
1047         Fixes Bug #82194
1048         Code is contributed under MIT/X11 license.
1049
1050 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
1051
1052         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
1053         generic parameter. Fixes #82211.
1054
1055 2007-07-27  Jb Evain  <jbevain@novell.com>
1056
1057         * pedump.c (dump_metadata, dump_metadata_header): dump
1058         versions contained in the metadata header.
1059
1060 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
1061
1062         * threads.c: register small_id_table with the GC.
1063
1064 2007-07-27  Mark Probst  <mark.probst@gmail.com>
1065
1066         * threads.c, threads.h, class-internals.h, object-internals.h:
1067         Hazard pointers, to be used by lock-free parallel algorithms.
1068
1069 2007-07-26  Dick Porter  <dick@ximian.com>
1070
1071         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
1072         routine on non-windows platforms, as I've not managed to think of
1073         a non-kludgy way of doing this.  Finishes off bug 78739.
1074
1075 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
1076
1077         * object.c: properly setup interface_bitmap in proxy vtables.
1078
1079 2007-07-25  Marek Habersack  <mhabersack@novell.com>
1080
1081         * appdomain.c (get_shadow_assembly_location): do not use TickCount
1082         to create unique shadow copy target directories, use the domain's
1083         serial number instead. Each domain gets a unique target directory
1084         that way.
1085
1086         * domain.c (mono_domain_create): added code to increment domain
1087         shadow copy serial number and cache the value in the current
1088         domain structure.
1089
1090         * domain-internals.h (struct _MonoDomain): added a new field -
1091         shadow_serial to hold the serial number used in generation of
1092         shadow-copy directories. This is to make sure that the directory
1093         name is unique for each and every domain created. We avoid a race
1094         condition with overriding assemblies already in use by other app
1095         domains.
1096
1097 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
1098
1099         * class.c (mono_bounded_array_class_get): fixed memory leak when 
1100         binding generic parameters.
1101
1102 2007-07-24  Raja R Harinath  <rharinath@novell.com>
1103
1104         * metadata.c (do_mono_metadata_parse_generic_class): Use
1105         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
1106         error.
1107
1108 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
1109
1110         * loader.c, class-internals.h, reflection.c: removed the per-method
1111         generics hashtable: we use the global one through the call of
1112         mono_class_inflate_generic_method ().
1113
1114 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
1115
1116         * class.c, metadata.c, class-internals.h: introduce yet another
1117         generics global cache for inflated methods (fixes 98% of the perf
1118         issue in bug #81806).
1119
1120 2007-07-23  Raja R Harinath  <rharinath@novell.com>
1121
1122         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
1123         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
1124         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
1125         return a MonoGenericInst containing (a copy) of those types.
1126         (mono_metadata_inflate_generic_inst): Update to changes.
1127         (mono_metadata_parse_generic_inst): Likewise.
1128         (mono_get_shared_generic_inst): Likewise.
1129         * reflection.c (mono_class_bind_generic_parameters): Likewise.
1130         (mono_reflection_bind_generic_method_parameters): Likewise.
1131         * metadata-internals.h: Likewise.
1132         * icall.c (free_generic_context): Kill.
1133         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
1134
1135         * reflection.c (reflection_methodbuilder_to_mono_method): Use
1136         mono_metadata_type_dup.
1137         * marshal.c (mono_mb_create_method): Likewise.
1138
1139         * metadata.c (mono_metadata_type_dup): Rename from
1140         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
1141         MonoImage.  Handle a few more cases, esp. when no mempool is given.
1142         * marshal.c, metadata-internals.h: Update to changes.
1143
1144 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
1145
1146         * class.c: fixed a small leak for array classes and removed warning.
1147
1148 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
1149
1150         * loader.c (mono_method_get_param_token): Make this work on generic methods.
1151         Return 0x8000000 for return parameters. Fixes #82161.
1152
1153 2007-07-21  Marek Habersack  <grendello@gmail.com>
1154
1155         * appdomain.c (get_shadow_assembly_location): append the current
1156         ticks value to the path. Avoids overwriting the same assemblies by
1157         several threads at the same time.
1158
1159 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
1160         and Raja R Harinath  <rharinath@novell.com>
1161
1162         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
1163         Simplify slightly.
1164         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
1165         property for testing if a method is a generic method definition.
1166
1167 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
1168
1169         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
1170
1171 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1172
1173         * verify.c: used function from private branch, reverted to the one in class.h 
1174
1175 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1176
1177         * verify.c: a typo slipped in and the code wont compile
1178
1179 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1180
1181         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
1182         disabled box instruction as it is doing the wrong thing
1183         improved stack dump messages, now it is easier to debug type related issues
1184
1185
1186 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
1187
1188         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
1189
1190 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1191
1192         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
1193         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
1194         grouped with class and valuetype. This change will simply 
1195         the code as it should be handled just like unmanaged pointers.
1196
1197 2007-07-19  Mark Probst  <mark.probst@gmail.com>
1198
1199         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
1200
1201 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1202
1203         * verify.c: several stack merge issues fixed, reference comparisons now
1204         check the type size. strict type check now works correctly.
1205         added more uses of IS_MANAGED_POINTER macro.
1206         fixed issues pointed by running the test suite against .net.
1207         
1208
1209 2007-07-19  Mark Probst  <mark.probst@gmail.com>
1210
1211         * class.c, loader.c, class-internals.h: Removed the
1212         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
1213         defines.
1214
1215         * icall.c: Better error checking in some internal reflection
1216         methods.
1217
1218 2007-07-18  William Holmes  <billholmes54@gmail.com>
1219
1220         * filewatcher.c : removed unused variable 'filename' in 
1221           ves_icall_System_IO_FSW_SupportsFSW
1222
1223 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
1224
1225         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
1226         obsolete, removed.
1227
1228 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
1229
1230         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
1231         
1232         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
1233
1234 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
1235
1236         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
1237         Implement generics support.
1238         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
1239
1240         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
1241         type_args and method_args arguments.
1242         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
1243         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
1244         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
1245
1246 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
1247
1248         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
1249           It adds a rootimage parameter to mono_reflection_get_type_internal,
1250           adds new function mono_reflection_get_type_with_rootimage and use
1251           the rootimage to resolve the types instead of the current image
1252
1253 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1254
1255         * culture-info-table.h: Forgot to update after r78304.
1256
1257 2007-07-13  Raja R Harinath  <rharinath@novell.com>
1258
1259         * class.c (mono_class_is_open_constructed_type)
1260         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
1261
1262 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
1263
1264         * class.c (mono_bounded_array_class_get):  method fails if used with
1265         an incomplete TypeBuilder enum (no basetype field), fixed it by 
1266         avoiding calculating the size for such array as it cannot be instantiated.
1267         Fix bug #82015
1268
1269 2007-07-12  Raja R Harinath  <rharinath@novell.com>
1270
1271         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
1272         field.
1273         * metadata.c, reflection.c: Update to changes.
1274
1275 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
1276
1277         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
1278         mono_class_is_valid_enum, they are used to valide a enum when loading.
1279         * reflection.c: used new functions to throw TypeLoadException when and
1280         invalid enum is build with TypeBuilder. Fixes #82018
1281   
1282 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
1283
1284         * object.c: forgot commit of mono_class_setup_methods () to access
1285         iface->methods.
1286         * object-internals.h: added a few more handy fields to
1287         MonoIMTCheckItem.
1288
1289 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
1290
1291         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
1292         iface->methods.
1293
1294 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
1295
1296         * class-internals.h, object-internals.h, object.c: IMT-based
1297         interface invocation core from Massimiliano Mantione
1298         (massi@ximian.com) with a reworked arch-specific interface,
1299         bsearch implementation and a few bugfixes and memory savings by me.
1300
1301 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
1302
1303         * class.c (mono_class_create_from_typedef): mono would segfault if 
1304         an enum did not have a __value field. It now throws a TypeLoadException
1305         for such cases. Fix bug #82022
1306
1307 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
1308
1309         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
1310
1311 2007-07-09  Mark Probst  <mark.probst@gmail.com>
1312
1313         * class.c (mono_class_init): If a class is already inited but has
1314         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
1315
1316 2007-07-09  Mark Probst  <mark.probst@gmail.com>
1317
1318         * class.c: Properly handle the case of an unimplemented interface
1319         method.  Fixes: 81673.
1320
1321 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
1322
1323         * class-internals.h, object.c: cleanup patch from massi: use
1324         MonoVTable->interface_bitmap since the vtable interfaces offset array
1325         is going away.
1326
1327 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
1328
1329         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
1330         GetMDStreamVersion icall instead.
1331
1332 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
1333
1334         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
1335         not use mono_dl_build_path() with a full library name: makes
1336         fallbacks to libgaim and libfam work.
1337
1338 2007-07-06  William Holmes  <billholmes54@gmail.com>
1339
1340         * assembly.c: Added a continue statement in probe_for_partial_name when
1341          parse_assembly_directory_name fails.  Fixes : 82002
1342
1343 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
1344
1345         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
1346         and added a verification  for TYPEDBYREF.
1347         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
1348         make native int interchangeable with int32 and some small cleanup and formating.
1349         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
1350         handle byref of byref.
1351         * verify.c (push_local): handle byref of byref.
1352         * verify.c (do_binop): invalid mix of values is unverifiable
1353         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
1354         added visibility checks
1355         * verify.c (field related method): added visibility checks
1356         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
1357
1358 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
1359
1360         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
1361         string.
1362
1363 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
1364
1365         * profiler.c (mono_profiler_load): Fix an off-by-one error.
1366
1367         * marshal.c (emit_marshal_string): When returning a string from managed code,
1368         allways make a copy even for unicode strings. Fixes #81990.
1369
1370 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
1371
1372         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
1373         of byref generic inst types (bug #81997).
1374
1375 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
1376
1377         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
1378         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
1379
1380 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
1381
1382         * marshal.c (emit_marshal_string): Add support for unicode strings in
1383         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
1384
1385 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
1386
1387         * verify.c: field load/store are now verified, missing only access checks now
1388
1389 2007-06-28  Martin Baulig  <martin@ximian.com>
1390
1391         * mono-debug.c (mono_debug_debugger_version): New public variable.
1392
1393 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
1394
1395         * locales.c: When constructing DateTimeFormat or NumberFormat for
1396         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
1397         MonoCultureInfo contructed from the current locale is always
1398         read-only and has UseUserOverride set to true. All MonoCultureInfo
1399         instances returned for GetCultures have both IsReadOnly and
1400         UseUserOverride set to true. Fixes part of bug #81930.
1401
1402 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
1403
1404        * icall-def.h: Update System.__ComObject icalls
1405        * marshal.c: Avoid managed transition (and object creation)
1406        when looking up COM interface in RCW.
1407        * marshal.h: Ditto.
1408        
1409        Code is contributed under MIT/X11 license.
1410
1411 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
1412
1413         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
1414         to avoid crashes during assembly unloading.
1415
1416 2007-06-22  Raja R Harinath  <rharinath@novell.com>
1417
1418         Fix MethodInfo.IsGenericMethodDefinition
1419         * reflection.c (mono_reflection_bind_generic_method_parameters):
1420         Rearrange code to ensure we always uses a generic method definition.
1421         * class.c (mono_class_inflate_generic_method_full): Set
1422         'generic_container' field only for generic method definitions.
1423         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
1424         Use presense of 'generic_container' field as indication of being a
1425         generic method definition.
1426
1427 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
1428
1429         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1430
1431         * object-internals.h: Reflect changes in the layout of the managed Delegate
1432         class.
1433         
1434         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
1435         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
1436         runtime memory used by the dynamic method. Fixes #77146.
1437
1438 2007-06-21  Dick Porter  <dick@ximian.com>
1439
1440         * file-io.h: 
1441         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
1442         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
1443         81767.
1444
1445 2007-06-21  Raja R Harinath  <rharinath@novell.com>
1446
1447         * reflection.c (method_encode_methodspec): Add a tripwire.
1448         * class.c (inflate_generic_type): The fully open generic type is
1449         not the same as the generic type definition.
1450
1451 2007-06-21  Martin Baulig  <martin@ximian.com>
1452
1453         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
1454
1455         * mono-debug-debugger.h
1456         (MonoDebuggerBreakpointInfo): Removed.
1457         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
1458         (mono_debugger_remove_breakpoint): Likewise.
1459         (mono_debugger_breakpoint_callback): Likewise.
1460         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
1461
1462 2007-06-21  Raja R Harinath  <rharinath@novell.com>
1463
1464         * metadata.c (mono_metadata_lookup_generic_class): The fully open
1465         generic type is not the same as the generic type definition.
1466         * class.c (mono_generic_class_get_class): Likewise.
1467
1468 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
1469
1470         * icall.c: The second argument to 
1471         System.Reflection.MethodBase.GetMethodFromHandleInternalType
1472         is a MonoType not a MonoClass.
1473
1474 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
1475
1476         * verify.c: support for function pointers in the verifier
1477
1478 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
1479
1480         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
1481
1482 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
1483
1484         * assembly.c: removed Mono.Data.SqliteClient from the list of
1485         forward-compatible assemblies as it breaks the ABI (bug #81899).
1486
1487 2007-06-19  Raja R Harinath  <rharinath@novell.com>
1488
1489         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
1490         lookup/update with the loader lock.
1491         * reflection.c (mono_class_bind_generic_parameters): No need to
1492         protect mono_metadata_lookup_* with the loader lock.
1493         * class.c (inflate_generic_type): Likewise.
1494         
1495         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
1496         on a generic instantiated type.
1497
1498 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
1499
1500         *verify.c: produce meanfull error messages on verification error
1501         *verify.c: fixed some cases of verification errors reported as validation errors
1502         *pedump.c: fixed the error name array, now it shows validation errors properly
1503         *verify.h: fixed the contant that should be used for verification errors
1504
1505 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
1506
1507         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
1508         for bug #77596, 81858 and 80743 (generics data structures on domain
1509         unload).
1510
1511 2007-06-15  Raja R Harinath  <rharinath@novell.com>
1512
1513         Avoid allocating 'MonoGenericContext' on the heap.
1514         * class-internals (_MonoMethodInflated::context): Make field
1515         inline, not a pointer.
1516         * loader.c (method_from_methodspec): Allocate 'new_context' on the
1517         stack.  Use the context embedded within the inflated method as the
1518         hash key, rather than 'new_context'.
1519         * class.c (inflate_generic_context): Simplify.  Return a struct
1520         rather than allocating on the heap.
1521         (mono_class_inflate_generic_method_full): Update to changes.  Now,
1522         doesn't salt away a copy of the context -- simplifying the
1523         lifetime rules of a 'MonoGenericContext *'.
1524         (mono_method_get_context): Return pointer to embedded context.
1525         (setup_generic_array_ifaces): Allocate temporary context on stack.
1526         * reflection.c (inflate_mono_method): Likewise.
1527         (mono_reflection_bind_generic_method_parameters): Likewise.
1528         Use the context embedded within the inflated method as the hash key.
1529
1530         Avoid a source of allocation of 'MonoGenericContext'.
1531         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
1532         and 'cached_context' fields into embedded 'MonoGenericContext' field.
1533         * class.c: Update to changes.
1534         (mono_generic_class_get_context): Simplify drastically.  Now just
1535         returns a pointer to the field.
1536         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
1537         argument as a const pointer.
1538         (mono_metadata_generic_context_equal): Likewise.
1539         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
1540         Update to changes.
1541
1542 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
1543
1544         * verify.c improved the handling of brtrue/brfalse, factored out common code
1545
1546 2007-06-14  Raja R Harinath  <rharinath@novell.com>
1547
1548         Kill MonoGenericMethod.
1549         * class-internals.h (MonoGenericContext::method_inst): Rename from
1550         'gmethod' and convert to a MonoGenericInst.
1551         (MonoGenericMethod): Remove.
1552         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
1553         * loader.c (method_from_methodspec): Update to changes.  Use a
1554         MonoGenericContext as the key to the hashtable.
1555         * metadata.c (mono_metadata_generic_context_equal): Rename from 
1556         'mono_metadata_generic_method_equal' and take MonoGenericContext.
1557         (mono_metadata_generic_context_hash): Likewise from
1558         'mono_metadata_generic_method_hash'.  Change hash function.
1559         (mono_metadata_load_generic_params): Update to changes.
1560         (mono_get_shared_generic_method): Remove.
1561         * metadata-internals.h (mono_get_shared_generic_method): Remove.
1562         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
1563         (inflate_generic_context): Likewise.
1564         (mono_class_inflate_generic_method_full): Likewise.
1565         (setup_generic_array_ifaces): Likewise.
1566         (mono_class_create_from_typespec): Likewise.
1567         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
1568         (method_encode_methodspec): Update callsite.
1569         (reflection_methodbuilder_to_mono_method): Update to changes.
1570         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
1571         MonoGenericContext as the key to the hashtable.
1572         (inflate_mono_method): Update to changes.
1573
1574         * class-internals.h (MonoGenericMethod::container): Remove.
1575         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
1576
1577 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
1578
1579         * profiler-private.h, profiler.c, profiler.h: added API to profile
1580         exception events.
1581
1582 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
1583
1584         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
1585
1586 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
1587
1588         * verify.c: method invocation is now validated, now we verify parameter types on stack.
1589         Fixed overflow and underflow not aborting the verification process.
1590
1591 2007-06-13  Mark Probst  <mark.probst@gmail.com>
1592
1593         * class-internals.h (MonoStats): Added stats entries for dynamic
1594         code allocations.
1595
1596 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
1597
1598         * loader.c (mono_free_method): Free header->locals and header->clauses.
1599
1600         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
1601         dynamic case.
1602
1603         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
1604
1605         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
1606
1607 2007-06-12  Raja R Harinath  <rharinath@novell.com>
1608
1609         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
1610         the tables.
1611
1612 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1613
1614         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
1615
1616 2007-06-11  Raja R Harinath  <harinath@gmail.com>
1617
1618         MonoGenericMethod on a diet
1619         * class-internals.h (_MonoMethodInflated::reflection_info): Move
1620         here ...
1621         (_MonoGenericMethod::reflection_info): ... from here.
1622         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
1623         Update to changes.
1624         * reflection.c (inflate_mono_method): Likewise.
1625         (mono_reflection_bind_generic_method_parameters): Likewise.
1626
1627 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1628
1629         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
1630         *verify.c: factored long ldarg forms to share code with short forms
1631
1632 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1633
1634         *verify.c: fixed code formating factored some duplicate code
1635         into a new function
1636
1637         *verify.h: fixed binary incompatibility introduced earlier
1638
1639         *pedump.c: fixed formating
1640
1641 2007-06-11  Raja R Harinath  <harinath@gmail.com>
1642
1643         Fix assertion when disassembling Mono.C5.dll
1644         * loader.c (method_from_methodspec): Avoid inflating a method
1645         twice with the same context.  If the methodref is inflated, use
1646         the declaring method instead.
1647
1648         * class.c (mono_class_from_generic_parameter): Fix case similar to
1649         bug #81830 handled below, but for method containers.
1650
1651 2007-06-10  Raja R Harinath  <harinath@gmail.com>
1652
1653         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
1654         get_shared_generic_class.  Directly inflate the instance.
1655         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
1656         (inflate_generic_class): Delete.
1657         (get_shared_generic_class): Delete.  Move setting of
1658         'cached_class' and 'cached_context' ...
1659         * metadata.c (mono_metadata_lookup_generic_class): ... here.
1660
1661         * metadata.c (mono_metadata_lookup_generic_class): Change
1662         signature to take the components of a MonoGenericClass rather than
1663         an allocated MonoGenericClass.  Change semantics to be intern-like.
1664         * reflection.c (mono_class_bind_generic_parameters): Update to
1665         changes.  Make locking region tighter.
1666         * class.c (inflate_generic_class): Update to changes.
1667         (get_shared_generic_class): Likewise.
1668         * metadata-internals.h: Likewise.
1669
1670         * reflection.c (mono_class_bind_generic_parameters): Take and
1671         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
1672         (mono_reflection_bind_generic_parameters): Use
1673         'mono_class_bind_generic_parameters' rather than duplicate the code.
1674         * class.c (mono_bounded_array_class_get): Update to changes.
1675         * object-internals.h: Likewise.
1676
1677         * reflection.c (mono_class_bind_generic_parameters): Only support
1678         parameterizing generic type definitions.  Remove support for other
1679         open types.
1680
1681 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
1682
1683         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
1684
1685         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
1686         in the dynamic case.
1687
1688 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
1689
1690         * threads.c: When cleaning up thread, reset the Background bit.
1691         Fixes bug #81720.
1692
1693 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
1694
1695        * metadata.c: Move variable declarations to top of scope.
1696        * verify.c: Move variable declarations to top of scope.
1697
1698        Code is contributed under MIT/X11 license.
1699
1700 2007-06-08  Raja R Harinath  <rharinath@novell.com>
1701
1702         * reflection.c (mono_class_bind_generic_parameters): Replace
1703         open-coded loop with mono_metadata_inflate_generic_inst.
1704
1705         * class.c (get_shared_generic_class): Don't call
1706         mono_get_shared_generic_inst.  Use the container's own
1707         'class_inst'.
1708
1709         * metadata.c (mono_metadata_load_generic_params): Move
1710         initialization of 'context' field here from ...
1711         * class.c (mono_class_create_from_typedef): ... here, and ...
1712         * loader.c (mono_get_method_from_token): ... here.
1713
1714         * class.c (get_shared_generic_class): Rename from
1715         mono_get_shared_generic_class and make static.
1716         (mono_get_shared_generic_inst): Move to metadata.c.
1717         * loader.c (mono_get_shared_generic_method): Likewise.
1718         * class-internals.h, metadata-internals.h: Update to changes.
1719
1720         Fix #81830
1721         * class.c (mono_class_from_generic_parameter): Don't assume a
1722         generic container owner exists.  Generic containers from monodis
1723         don't have any.
1724
1725 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
1726
1727         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
1728         * verify.h: new typedefs to returns the non-verifiable status
1729         * verify.c: initial implementation of generics, stack merging and object compatibility check
1730
1731 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1732
1733         * class.c, image.c, class-internals.h (MonoImage): class_cache is
1734         a MonoInternalHashTable again (fixed bug in internal hash table
1735         code).
1736
1737 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1738
1739         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
1740         MonoInternalHashTable again (fixed bug in internal hash table
1741         code).
1742
1743 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1744
1745         * class.c, image.c, class-internals.h, domain.c,
1746         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
1747         changes.  Have to figure out what makes them break the SWF
1748         regression.
1749
1750 2007-06-04  Mark Probst  <mark.probst@gmail.com>
1751
1752         * class.c, image.c, class-internals.h (MonoImage): class_cache is
1753         a MonoInternalHashTable now.
1754
1755 2007-06-04  Mark Probst  <mark.probst@gmail.com>
1756
1757         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
1758         MonoInternalHashTable now.
1759
1760 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
1761
1762         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
1763         invoke_impl code.
1764
1765         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
1766
1767         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
1768         dependent trampoline.
1769
1770         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1771
1772         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
1773
1774 2007-05-29  Robert Jordan  <robertj@gmx.net>
1775
1776         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
1777
1778 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
1779
1780         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
1781
1782 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
1783
1784        * marshal.c: Fix interface lookup loops for
1785        cominterop_get_com_slot_for_method and 
1786        cominterop_get_method_interface. Only need to lookup
1787        if type is a class, else use interface type method is on.
1788
1789        Code is contributed under MIT/X11 license.
1790
1791 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
1792
1793         * reflection.c: HasSecurity can be present even if no specially 
1794         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
1795         SecurityAttribute). Fix CAS regression tests on buildbot.
1796
1797 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
1798
1799        * appdomain.c: Add configure checks for header files.
1800        * image.c: Add configure checks for header files.
1801        * file-io.c: Add configure checks for header files.
1802        * debug-mono-symfile.c: Add configure checks for header files.
1803        * threadpool.c: Add configure checks for header files.
1804        * console-io.c: Add configure checks for header files.
1805        * profiler.c: Add configure checks for header files.
1806        * rawbuffer.c: Add configure checks for header files.
1807        * icall.c: Add configure checks for header files.
1808        * rand.c: Add configure checks for header files.
1809        * socket-io.c: Add configure checks for header files.
1810
1811        Code is contributed under MIT/X11 license.
1812
1813 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
1814
1815         * reflection.c (mono_custom_attrs_from_builders): Remove the 
1816         assertion as it breaks the build.
1817         
1818         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
1819
1820         * reflection.c (lookup_custom_attr): Make a copy here too.
1821
1822         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
1823         dynamic images.
1824
1825         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
1826         images.
1827
1828         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
1829         info.
1830
1831 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
1832
1833         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
1834         (load_cattr_value): Ditto.
1835
1836 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
1837
1838         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
1839
1840 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
1841
1842         * threads.c: In "start_wrapper", set apartment_state to MTA if
1843         apartment_state is Unknown and we're running on 2.0 profile or
1844         higher.
1845         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
1846         to main method, then set apartment_state to Unknown on 1.0 profile,
1847         and MTA on 2.0 profile.
1848
1849 2007-05-16  Jb Evain  <jb@nurv.fr>
1850
1851         * class-internals.h (MonoDefaults): Add an attribute_class and
1852           customattribute_data_class.
1853         * domain.c (mono_init_internal): Populate them.
1854         * reflection.c: Use them to remove duplicates. Make a vew
1855         MonoClass variables `static'.
1856
1857 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
1858
1859         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
1860         step in implementing IMT, so that all isinst checks now can go
1861         through the bitmap.
1862         This was needed because vtables for TransparentProxy need to look
1863         like the vtable of the "target" class, so they need to point to
1864         its interface bitmap directly.
1865
1866         * object.c: inside "mono_class_create_runtime_vtable" and
1867         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
1868
1869 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
1870
1871         * object-internals.h
1872           culture-info.h : added territory field in MonoCulture and
1873           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
1874         * locales.c : fill territory field above too.
1875         * culture-info-table.h : regenerated.
1876
1877 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
1878
1879         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
1880         Fixes #81599.
1881
1882 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
1883
1884         * object.c: Always initialize apartment, even if 
1885         there is no custom attributes on entry point.
1886         
1887         Code is contributed under MIT/X11 license.
1888
1889 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
1890
1891         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
1892         * metadata.c: If no encoding is set, check for unicode
1893         on class.
1894         
1895         Code is contributed under MIT/X11 license.
1896
1897 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
1898
1899         * threads.c: Handle if mono_thread_current returns NULL 
1900         
1901         Code is contributed under MIT/X11 license.
1902
1903 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
1904
1905         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
1906         in start_wrapper. Added mono_thread_init_apartment_state and
1907         mono_thread_cleanup_apartment_state.
1908         * object.c: Initialize thread apartment state on main thread
1909         by checking for STAThreadAttribute on entry point.
1910         * object-internals.h: Add apartment_state field to MonoThread.
1911         * threads-types.h: Add unmanaged definition of 
1912         System.Threading.ApartmentState, MonoThreadApartmentState.
1913         
1914         Code is contributed under MIT/X11 license.
1915         
1916 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
1917
1918         * class.c: Fix windows build.
1919         * class-internals.h: Fix windows build.
1920         
1921         Code is contributed under MIT/X11 license.
1922
1923 2007-05-08  Robert Jordan  <robertj@gmx.net>
1924
1925         * process.c (CreateProcess_internal):
1926         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
1927         .CreateNoWindow was specified. Fixes #81496.
1928
1929 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
1930
1931         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
1932         step in implementing IMT, replaced it with two compact arrays
1933         (interfaces_packed and interface_offsets_packed) and a bitmap that
1934         is used for isinst checks (interface_bitmap).
1935
1936         * class.c: (compare_interface_ids): compare function to pass to
1937         bsearch when looking for an interface with a given id.
1938         (mono_class_interface_offset): reimplemented using bsearch on
1939         interfaces_packed, getting the offset from interface_offsets_packed.
1940         (print_implemented_interfaces): utility debugging function.
1941         (setup_interface_offsets): reworked to initialize interfaces_packed,
1942         interface_offsets_packed and interface_bitmap.
1943
1944         * object.c: replaced all accesses to "MonoClass.interface_offsets"
1945         with uses of interfaces_packed and interface_offsets_packed.
1946
1947 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
1948
1949         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
1950         mono_class_interface_offset prototype to wrap all accesses to
1951         "MonoClass.interface_offsets".
1952
1953         * class.c: Implemented mono_class_interface_offset, and wrapped all
1954         accesses to "MonoClass.interface_offsets".
1955
1956         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
1957         "MonoClass.interface_offsets".
1958
1959 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
1960
1961         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
1962         GetMethodFromHandle overloads (bug #78637).
1963
1964 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
1965
1966         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
1967         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
1968
1969 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
1970
1971         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
1972         #81498.
1973
1974         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
1975         gracefully.
1976         (mono_custom_attrs_from_index): Ditto.
1977
1978         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
1979         Fixes #81501.
1980
1981 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
1982
1983         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
1984         is now allocated from a mempool.
1985
1986 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
1987
1988         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
1989         caller holds threads_lock, leading to deadlocks. Fixes #81476.
1990
1991 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
1992
1993         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
1994         mono_loader_clear_error () too late. Fixes #81463.
1995
1996 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
1997
1998         * culture-info-table.h : regenerated.
1999
2000 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
2001
2002         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
2003         is missing.
2004
2005 2007-04-25  Dick Porter  <dick@ximian.com>
2006
2007         * Makefile.am: Put the mingw enforced-optimisation back into the
2008         PLATFORM_WIN32 section.
2009
2010 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
2011
2012         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
2013         patch.
2014
2015         * image.c (mono_image_load_module): New API function to load a module reference.
2016
2017         * image.c (load_modules): Load modules lazily. Fixes #80812.
2018
2019         * class.c (mono_class_from_typeref): Use mono_image_load_module.
2020         
2021         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
2022
2023         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
2024         to mono_image_load_module_dynamic.
2025
2026 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
2027
2028         * marshal.c: Fix calling convention for CCW on non-windows
2029         platforms. STDCALL on windows, CDECL everywhere else to work 
2030         with XPCOM and MainWin COM.
2031         
2032         Code is contributed under MIT/X11 license.
2033
2034 2007-04-23  Martin Baulig  <martin@ximian.com>
2035
2036         Fix #80969.
2037
2038         * loader.c
2039         (method_from_memberref): Added `gboolean *used_context' argument.
2040         (mono_get_method_from_token): Likewise.
2041         (mono_get_method_full): Don't insert the method in the cache when
2042         `used_context' is true.
2043
2044 2007-04-23  Raja R Harinath  <rharinath@novell.com>
2045
2046         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
2047
2048         * reflection.c (mono_reflection_bind_generic_parameters): Don't
2049         create new MonoTypes for returned types.
2050         * class.c (mono_generic_class_get_class): Export mono-internal.
2051         * class-internals.h: Update to changes.
2052
2053 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
2054
2055         * threadpool.c, threadpool.h, icall-def.h: patch from
2056         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
2057
2058 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
2059
2060         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
2061         
2062         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
2063
2064         * threads.c (mono_thread_get_stack_bounds): New helper function.
2065
2066         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
2067         Correctly compute stack bounds when attaching. Fixes #81394.
2068
2069 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
2070
2071         * reflection.c: fix handling of doubles in custom attributes
2072         for the arm-fpa format (bug #81368).
2073
2074 2007-04-18  Raja R Harinath  <rharinath@novell.com>
2075
2076         * reflection.c (assembly_add_win32_resources): Mildly relax an
2077         bounds check to let the end pointer point just past the end of the
2078         allocated buffer.  (may fix #81384)
2079
2080 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
2081
2082         * culture-info-table.h : regenerated.
2083
2084 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
2085
2086         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
2087         the thread is aborted early.
2088
2089 2007-04-05  Dick Porter  <dick@ximian.com>
2090
2091         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
2092         FindFirstFile()/FindNextFile() to find entries.  This lets the
2093         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
2094         81038.
2095
2096         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
2097         the parameters of
2098         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
2099
2100 2007-04-04  Martin Baulig  <martin@ximian.com>
2101
2102         * debug-helpers.c
2103         (mono_method_desc_full_match): Add support for nested classes.
2104
2105 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
2106
2107         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
2108
2109 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
2110
2111         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
2112         waiting for too many threads.
2113
2114 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
2115
2116         * environment.c: Fix return value check on uname so we can get the 
2117         executing version on Solaris operating systems.
2118
2119 2007-03-28  Jb Evain  <jbevain@gmail.com>
2120
2121         * class.c (mono_type_get_name_recurse): Complete the
2122         fix for the creation of assembly qualified names for
2123         pointer types. Fixes #81208.
2124
2125 2007-03-27  Dick Porter  <dick@ximian.com>
2126
2127         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
2128         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
2129         changed.
2130
2131         * threads.c
2132         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
2133         the value of ReleaseMutex().
2134
2135 2007-03-27  Dick Porter  <dick@ximian.com>
2136
2137         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
2138         in little-endian order, not network endian, so must be converted
2139         to host endian here.  Fixes bug 80593.
2140
2141 2007-03-22  Jb Evain  <jbevain@gmail.com>
2142
2143         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
2144         qualified names for pointer types. Fixes #81208.
2145
2146 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
2147
2148         * marshal.c: Add support for PreserveSigAttribute. 
2149         
2150         Code is contributed under MIT/X11 license.
2151
2152 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
2153
2154         * process.c: Fix endianness issues. Fixes #81126.
2155
2156         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
2157         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
2158
2159         * image.c (mono_image_lookup_resource): Make this work on big-endian
2160         machines.Change API contract so the caller needs to free the return value.
2161         
2162         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
2163         API change.
2164         
2165 2007-03-14  Martin Baulig  <martin@ximian.com>
2166
2167         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
2168         mono_type_get_desc() as well.
2169
2170 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
2171
2172         * icall.c:  Fix environ access in VS.  
2173         
2174 2007-03-13  Alp Toker  <alp@atoker.com>
2175
2176         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
2177         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
2178         #63841.
2179
2180 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
2181
2182         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
2183         circular references among dynamic methods. Fixes #81091.
2184
2185         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
2186
2187 2007-03-09  Martin Baulig  <martin@ximian.com>
2188
2189         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
2190
2191 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
2192
2193         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
2194         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
2195         
2196         Code is contributed under MIT/X11 license.
2197         
2198 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
2199
2200         * loader.c: Reapply patch for bug #79424.
2201
2202 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
2203
2204         * metadata.c (mono_type_to_unmanaged): Only convert object to
2205         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
2206
2207 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
2208
2209         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
2210         (and incorrectly set) is_reference field from MonoGenericInst.
2211
2212 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
2213
2214         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
2215         a little earlier.
2216
2217         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
2218
2219         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
2220
2221 2007-03-05  Miguel de Icaza  <miguel@novell.com>
2222
2223         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
2224         FileOptions.1 value to mean "temporary", map that to
2225         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
2226
2227         Fixes 80688
2228
2229 2007-03-03  Marek Habersack  <mhabersack@novell.com>
2230
2231         * appdomain.c: implement MS .Net style shadow copying. Copies of
2232         the assemblies are made in a subdirectory of the dynamic base
2233         directory, the assembly names are preserved.
2234         Copy .mdb and .config files along with the assemblies being shadowed.
2235
2236 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
2237
2238         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
2239         (emit_marshal_handleref): Ditto.
2240
2241         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
2242         on Visual C++. Fixes #80671.
2243
2244 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
2245
2246         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
2247         for clone operations.
2248
2249 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
2250
2251         * marshal.c: Fix warnings.
2252
2253 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
2254
2255         * loader.c: allow case-insensitive matching of the dll name
2256         in dllmap handling when prefixed with "i:".
2257
2258 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
2259
2260         * threads.c: Fix #ifdef for dummy_apc function for VS.
2261
2262 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
2263
2264         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
2265
2266 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
2267         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
2268         giving precedence to the methods with a fully qualified name
2269         (InterfaceName.MethodName) when building the interface sections
2270         of the vtable.
2271
2272 2007-02-16  Dick Porter  <dick@ximian.com>
2273
2274         * threadpool.c (append_job): Fix fast-path array handling, so it's
2275         less likely the array will grow exponentially when the load is
2276         heavy.
2277
2278 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
2279
2280         * metadata-internals.h, loader.c: fix dllmap lookup order
2281         for non-function maps, too, and prepare for fallback code.
2282
2283 2007-02-12  Robert Jordan  <robertj@gmx.net>
2284
2285         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
2286         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
2287         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
2288         GlobalFree. Fixes a part of bug #77075.
2289
2290 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
2291
2292         * loader.c: implemented typedef parent in field memberref.
2293
2294 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
2295
2296         * marshal.c: Fix warnings and remember to call Release on
2297         IUnknown of RCW.
2298         
2299         Code is contributed under MIT/X11 license.
2300
2301 2007-02-10  Miguel de Icaza  <miguel@novell.com>
2302
2303         * class-internals.h: Add MonoHandleRef definition, and
2304         handleref_class to mono_defaults. 
2305
2306         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
2307         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
2308
2309         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
2310         (do nothing on this stage)
2311         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
2312         (emit_marshal_handleref): New method, used for argument handling
2313         of HandleRefs. 
2314
2315 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
2316
2317         * class.c (mono_class_setup_parent): Lazily init com types.
2318         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
2319         init com types.
2320         * object.c (mono_remote_class_vtable): Lazily init com types.
2321         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
2322         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
2323         * domain-internals.h: Expose mono_init_com_types.
2324         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
2325         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
2326         Add support for COM Callable Wrapper marshalling.
2327         * marshal.h: Add icall definitions.
2328         * gc.c: Handle freeing of CCWs in finalizer code.
2329         
2330         Code is contributed under MIT/X11 license.
2331
2332 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
2333
2334         * reflection.c: changed all the signature encoding code to use
2335         a variable-sized buffer.
2336
2337 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
2338
2339         * marshal.c: locking fixes: never take the loader lock
2340         or other runtime locks when holding the marshal lock
2341         (fixes bug#80664).
2342
2343 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
2344
2345         * marshal.c: make the delegate function pointer mapping
2346         work for the moving GC.
2347
2348 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
2349
2350         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
2351         for bug #80618.
2352
2353 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
2354
2355         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
2356         gmodule.
2357
2358 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
2359
2360         * threadpool.c: made the code moving-GC safe.
2361
2362 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
2363
2364         * assembly.c, boehm-gc.c, class-internals.h, class.c,
2365         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
2366         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
2367         warning cleanup.
2368         * reflection.c: warning cleanup, some threading and moving GC fixes.
2369
2370 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
2371
2372         * class.c, loader.c: create the needed Set/Get/Address array methods
2373         as well as the .ctors in mono_class_init (), fixes bug #80567.
2374
2375 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
2376
2377         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
2378         we doesn't decrease its alignment. Should fix the sparc build.
2379
2380 2007-01-24  Dick Porter  <dick@ximian.com>
2381
2382         * socket-io.c
2383         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
2384         Create the returned object if we need to ignore an unsupported
2385         socket option.  Fixes a segfault reported by Atsushi.
2386
2387 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
2388
2389         * class.c, object.c: restrict GC-tracked fields to
2390         UIntPtr fields used inside corlib, so we provide better
2391         type info to the GC and also allow broken packing as in
2392         bug #80580.
2393
2394 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
2395
2396         * sgen-gc.c: removed duplicated function.
2397
2398 2007-01-19  Miguel de Icaza  <miguel@novell.com>
2399
2400         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
2401         value that means that the value is not supported, but that we
2402         should not return a failure, but instead report this as a
2403         successful operation.
2404
2405 2007-01-19  Raja R Harinath  <rharinath@novell.com>
2406
2407         Fix tests/bug79956.2.il
2408         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
2409         (mono_generic_class_get_class): If the generic definition in an
2410         enum, copy over other fields related to it.
2411
2412 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
2413
2414         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
2415         genericinst enums (bug #79215).
2416
2417 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
2418         * class.c: Fix bug 80307.
2419
2420 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
2421
2422         * image.c: if the file table is not present, try to load
2423         all the modules, since we don't have info about them
2424         having or not metadata (bug #80517).
2425         * assembly.c: allow mono_assembly_load_references () to
2426         work for netmodules.
2427
2428 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
2429
2430         * image.c, metadata-internals.h, object.c: execute module
2431         cctors when running on the 2 runtime if present (bug #80487).
2432
2433 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
2434
2435         * icall.c: optimized InitializeArray() on bigendian.
2436
2437 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
2438
2439         * icall.c: fix for the broken ARM FPA double format.
2440
2441 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
2442
2443         * icall.c: handle endian issues for r4 and r8 types, too, in
2444         the InitializeArray() icall.
2445
2446 2007-01-15  Miguel de Icaza  <miguel@novell.com>
2447
2448         * loader.c (mono_loader_error_prepare_exception): Clear the error
2449         once we have extracted the information from it, do this before we
2450         call into the JIT's class loading mechanisms.
2451
2452         * object.c (mono_class_create_runtime_vtable): Do not clear the
2453         loader error before calling mono_class_get_exception_for_failure
2454         as the loader error is needed inside
2455         mono_class_get_exception_for_failure to throw the error (thinko).
2456
2457         Fixes #80521
2458         
2459 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
2460
2461         * reflection.c: align fields rva data so it's faster to load at
2462         runtime.
2463
2464 2007-01-12  Raja R Harinath  <rharinath@novell.com>
2465
2466         Prepare to simplify GenericMethod handling.
2467         * class-internals.h (mono_method_get_context): New accessor function.
2468         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
2469         rather than directly accessing '->context' field.
2470
2471         * class-internals.h (_MonoGenericParam.method): Move ...
2472         (_MonoGenericContainer): ... here.  Add into union with klass field.
2473         * class.c, icall.c, loader.c, metadata.c, reflection.c:
2474         Update to changes.
2475
2476 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
2477
2478         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
2479         the wrapper type enum and reduce relocations.
2480
2481 2007-01-12  Raja R Harinath  <rharinath@novell.com>
2482
2483         * reflection.c (inflate_mono_method): Reuse method instantiation
2484         from the generic method, if available.
2485
2486 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2487
2488         * marshal.c (emit_marshal_variant): Fix conv_arg
2489         type in last commit, based on whether parameter is byref.
2490         
2491 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2492
2493         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
2494         marshalling.
2495         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
2496         MONO_TYPE_OBJECT back for VARIANT support.
2497
2498 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2499
2500         * marshal.c, marshal.h, icall-def.h: Implement 
2501         Marshal.ReAllocCoTaskMem.
2502
2503 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
2504
2505         * marshal.c: memory retention fixes: use the proper
2506         image cache for runtime_invoke method lookups.
2507
2508 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
2509
2510         * mempool.c: added code to help debug mempool allocations.
2511
2512 2007-01-11  Dick Porter  <dick@ximian.com>
2513
2514         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
2515         support (experimenting with faking it with IP_MTU_DISCOVER for
2516         systems that don't have IP_DONTFRAGMENT.)
2517         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
2518         icall.
2519
2520         * icall-def.h: new System.Net.Sockets.Disconnect icall.
2521
2522         * socket-io.h: Add new fields to MonoSocketAsyncResult
2523         corresponding to the new ones in Socket.cs.
2524
2525 2007-01-11  Raja R Harinath  <rharinath@novell.com>
2526
2527         Fix IronPython regression mentioned in #80249
2528         * metadata.c (do_mono_metadata_parse_generic_class): Clear
2529         'cached_context' field, since it may have been initialized as a
2530         side-effect of metadata parsing.
2531
2532         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
2533         (_MonoGenericClass.cached_class): Move here and rename from lone
2534         remaining field of ...
2535         (_MonoInflatedGenericClass): ... this.  Remove.
2536         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
2537         to changes.
2538
2539         Fix mcs/tests/test-128.cs regression.
2540         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
2541         2007-01-10 change below.
2542         [MONO_TYPE_OBJECT]: Recurse into array case.
2543
2544 2007-01-11  Raja R Harinath  <harinath@gmail.com>
2545
2546         * class-internals.h (mono_get_inflated_generic_class): Remove.
2547         * class.c (mono_get_inflated_generic_class): Remove.
2548         (mono_generic_class_get_class): Rename from
2549         mono_class_create_generic.
2550         (mono_class_from_mono_type) [GENERICINST]: Use it.
2551         * reflection.c, metadata.c: Update to changes.  Use
2552         'mono_class_from_mono_type'.
2553
2554 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
2555
2556         * reflection.c: use passed type when encoding an array element
2557         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
2558
2559 2007-01-09  Robert Jordan  <robertj@gmx.net>
2560
2561         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
2562         result arguments (someDelegate.EndInvoke (unrelatedAres)).
2563         Fixes bug #80392.
2564
2565 2007-01-09  Raja R Harinath  <rharinath@novell.com>
2566
2567         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
2568
2569         * object.c (set_value): Avoid aliasing between type->data.klass
2570         and type->data.generic_class.
2571
2572         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
2573
2574 2007-01-08  Raja R Harinath  <rharinath@novell.com>
2575
2576         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
2577         between type->data.klass and type->data.generic_class.
2578
2579 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
2580
2581         * marshal.c: In MS.NET, StringBuilder objects are not copied by
2582         value in out parameters.
2583
2584 2007-01-08  Raja R Harinath  <rharinath@novell.com>
2585
2586         Simplify invariant for MonoGenericClass::klass field.
2587         * class.c (mono_class_create_generic): Verify 'klass' is null.
2588         * metadata.c (do_mono_metadata_parse_generic_class): Don't
2589         initialize 'klass' field.
2590
2591 2007-01-05  Raja R Harinath  <rharinath@novell.com>
2592
2593         Ongoing work to avoid redundant data and simplify invariants.
2594         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
2595         'generic_class', and change type to a GenericInst.
2596         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
2597         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
2598
2599 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
2600
2601         * class.c : skip io-layer under PLATFORM_WIN32.
2602
2603 2007-01-03  Tor Lillqvist  <tml@novell.com>
2604
2605         Fix #80305: In a bundled executable, look in the bundled exe
2606         assembly to determine the runtime version. Add the possibility to
2607         bundle also the machine.config file.
2608         
2609         * assembly.c (mono_assembly_open_from_bundle): Make
2610         non-static. Allow being called even if we have no bundled
2611         assemblies, and return NULL right away in that case.
2612
2613         * domain-internals.h: Declare mono_assembly_open_from_bundle()
2614         here.
2615
2616         * domain.c (app_config_parse): Take an assembly exe file name as
2617         parameter instead of a config file name. Check for a bundled
2618         config file for that assembly by calling
2619         mono_config_string_for_assembly_file() (see below) before looking
2620         for one in the file system.
2621         (get_runtimes_from_exe): Corrsponding change to call of
2622         app_config_parse().
2623         (get_runtimes_from_exe): Check for bundled assembly exe file first
2624         by calling mono_assembly_open_from_bundle(). If no bundled
2625         assembly exe file is found, call mono_image_open() as before to
2626         look it up in the file system.
2627
2628         * mono-config.c: Add variable bundled_machinec_onfig.
2629         (mono_config_string_for_assembly_file): New function.
2630         (mono_config_for_assembly): Move code snippet that looks for a
2631         bundled assembly .config file into the above new function. Call
2632         it.
2633         (mono_register_machine_config, mono_get_machine_config): New
2634         functions to set and retrieve
2635
2636         * assembly.h: Declare mono_register_machine_config().
2637
2638         * mono-config.h: Declare mono_get_machine_config() and
2639         mono_config_string_for_assembly_file().
2640
2641         * icall.c: No declaration of environ necessary on Win32. It is
2642         declared (as a macro expanding to a function call) in stdlib.h.
2643         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
2644         New internal mono function. Returns the value of
2645         mono_get_machine_config() as a Mono string.
2646
2647         * icall-def.h: Add get_bundled_machine_config().
2648
2649 2007-01-04  Raja R Harinath  <rharinath@novell.com>
2650
2651         Remove redundant field
2652         * class-internals.h (_MonoGenericContext.container): Remove field.
2653         * loader.c (mono_method_get_signature_full): Don't parse a
2654         "container" for a signature parse when the signature is inflated
2655         immediately.
2656         (method_from_methodspec): Likewise, for a generic_inst.
2657         * class.c, metadata.c, reflection.c: Update to changes.
2658
2659 2006-01-04  Raja R Harinath  <rharinath@novell.com>
2660
2661         * class-internals.h (_MonoGenericClass): Rename 'context' field to
2662         'cached_context', and change semantics -- it starts off NULL, and
2663         is initialized on demand.
2664         * class.c (mono_generic_class_get_context): New accessor to
2665         replace 'context' field accesses.
2666         (mono_class_get_context): New helper.
2667         (*): Update to changes.
2668         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
2669
2670 2007-01-03  Miguel de Icaza  <miguel@novell.com>
2671
2672         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
2673         before the memcpy.   Fixes Marshal2 regression.
2674
2675 2007-01-02  Jb Evain  <jbevain@gmail.com>
2676
2677         * blob.h: add a MONO_TYPE_ENUM definition
2678         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
2679         fix the encoding of arrays of enums in custom attributes.
2680
2681         Fixes #79666.
2682
2683 2007-01-01  Miguel de Icaza  <miguel@novell.com>
2684
2685         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
2686         string is null terminated, but only cut the string short if it
2687         overflows the buffer.   
2688         
2689         (mono_string_to_byvalstr): Also fix this routine.   The code here
2690         was not properly terminating a string (it was only terminated
2691         because of the previous catch-all memset). 
2692
2693         I left the memset, because I do not know if applications expect
2694         the runtime to clear this region. 
2695
2696         Fixes #79944.
2697
2698         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
2699         Clear the error before returning to unmanaged code to prevent the
2700         runtime from being confused later on (fixes  80420).
2701         (ves_icall_type_from_name): Always call mono_loader_clear_error
2702         after parsing a type that could have failed.
2703         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
2704
2705         * loader.c (mono_loader_clear_error): Fix indentation.
2706
2707 2006-12-28  Martin Baulig  <martin@ximian.com>
2708
2709         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
2710
2711 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
2712
2713         * reflection.c: patch from Rolf Bjarne Kvinge to fix
2714         getting a token for an EnumBuilder.
2715
2716 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
2717
2718         * reflection.c: be more careful in case resource generation
2719         fails to create the data array.
2720
2721 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
2722
2723         * sgen-gc.c: write barrier for clone and fix unregister handles.
2724
2725 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
2726
2727         * reflection.c: some fixes needed in the generics code for the moving GC.
2728
2729 2006-12-22  Robert Jordan  <robertj@gmx.net>
2730
2731         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
2732         account. Fixes bug #80299.
2733
2734 2006-12-21  Raja R Harinath  <rharinath@novell.com>
2735
2736         Fix WaitHandle usage in delegates.
2737         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
2738         * object.c (mono_wait_handle_new): Use the property set method to
2739         initialize the handle.
2740         (mono_wait_handle_get_handle): New.
2741         * threadpool.c (mono_async_invoke): Use it.
2742         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
2743         Likewise.
2744         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
2745
2746 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
2747
2748         * marshal.c (emit_marshal): Call emit_marshal_variant and
2749         emit_marshal_com_interface when applicable.
2750         (emit_marshal_variant, emit_marshal_com_interface): Add
2751         methods for this case and remove if's from emit_marshal_object.
2752         
2753 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
2754
2755         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
2756
2757 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
2758
2759         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
2760         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
2761         and GlobalFree on Windows. Remove FIXME.
2762
2763 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
2764
2765         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
2766         implementation for managed objects.
2767
2768 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
2769
2770         * object.c: implemented code to be used for checking
2771         that no reference field overlaps with non-references.
2772
2773 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2774
2775         * threadpool.c: fix queue code to be compatible with the
2776         moving GC.
2777
2778 2006-12-18  Miguel de Icaza  <miguel@novell.com>
2779
2780         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
2781         in structures by throwing ArgumentNullException.
2782
2783         (emit_marshal_safehandle): Also when they are null parameters.
2784
2785         (emit_marshal_safehandle): Add support for ref
2786         SafeHandles parameters
2787
2788 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
2789
2790         * profiler.c: updated to use the mono-dl API instead of
2791         gmodule.
2792
2793 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2794
2795         * profiler.c: updated to use the mono-dl dynamic loading
2796         API instead of gmodule.
2797
2798 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
2799
2800         * profiler.c: use readlink, older versions of glib don't have
2801         g_file_read_link ().
2802
2803 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2804
2805         * profiler.c: try to detect the path to mono if libc fails to provide
2806         a useful name (bug #80286).
2807
2808 2006-12-16  Raja R Harinath  <rharinath@novell.com>
2809
2810         Fix #80242
2811         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
2812         instance, use the generic type definition instead.
2813         (ves_icall_Type_GetNestedTypes): Likewise.
2814         * class.c (mono_class_create_generic): Always set the
2815         nested_classes of a generic instance to NULL, even if the generic
2816         type definition has nested types.
2817
2818 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
2819
2820         * marshal.c (mono_string_from_bstr): Revert previous Windows change
2821         and fix on Linux.
2822         
2823 2006-12-15  Miguel de Icaza  <miguel@novell.com>
2824
2825         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
2826         my arguments were in the wrong order.   I also fixed the Windows
2827         version which seems to have had the same issue.
2828
2829         (mono_free_bstr): On Unix, this is g_free.
2830         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
2831         conversions (for the tests in corlib to pass).
2832
2833 2006-12-14  Miguel de Icaza  <miguel@novell.com>
2834
2835         * marshal.c (emit_ptr_to_object_conv): For now, ignore
2836         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
2837         exception if a ref SafeHandle in a struct has changed).
2838         
2839         (emit_struct_conv): Do not perform layout checks for classes
2840         derived from SafeHandle, as those are specially handled. 
2841
2842         (emit_object_to_ptr_conv): Add support for
2843         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
2844
2845         (emit_marshal_safehandle): Implement conversion of return values
2846         of safehandles (MARSHAL_ACTION_CONV_RESULT).
2847         
2848         * threads.c: WaitHandle now is compiled with two different handles
2849         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
2850         for 2.0.
2851         
2852         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
2853         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
2854         these routines to cope with both kinds of fields.
2855
2856 2006-12-12  Miguel de Icaza  <miguel@novell.com>
2857
2858         * metadata.c (mono_type_to_unmanaged): Handle the case where
2859         type->data.klass is a SafeHandle, and in that case, return the
2860         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
2861         MONO_MARSHAL_CONV_SAFEHANDLE. 
2862
2863 2006-12-11  Miguel de Icaza  <miguel@novell.com>
2864
2865         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
2866         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
2867         calling emit_marshal_object.
2868
2869         (emit_marshal_safehandle): Implement marshalling of
2870         SafeHandle parameters (no ref support yet).
2871
2872         (MarshalAction): Document the defines as I implement
2873         them for SafeHandle.
2874
2875         (emit_marshal_object): indentation police.
2876
2877         * class-internals.h: Define MonoSafeHandle.
2878         Add safehandle_class to MonoDefaults type.
2879
2880         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
2881         list of classes to check for fields. 
2882
2883         * domain.c (mono_init_internal): Add SafeHandle to the list of
2884         mono_defaults loaded.
2885
2886 2006-12-15  Raja R Harinath  <rharinath@novell.com>
2887
2888         Fix #80253
2889         * reflection.c (mono_reflection_bind_generic_parameters): If the
2890         generic type definition is a type builder, ensure that it is fully
2891         initialized before instantiating it.  Kill some dead code.
2892
2893 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
2894
2895         * object.c: clear the loader_error () before loading
2896         more metadata stuff (bug #80258).
2897
2898 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
2899
2900         * icall.c, icall-defs.h: type modifiers icalls for
2901         parameters and properties.
2902
2903 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
2904
2905         * object.c, icall.c: fixed warnings.
2906
2907 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
2908
2909         * marshal.c: fixed a couple of leaks and coding style in a few places.
2910
2911 2006-12-08  Dick Porter  <dick@ximian.com>
2912
2913         * process.c: Cope with NULL ProcessStartInfo arguments on windows
2914         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
2915         80173.
2916
2917 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
2918
2919         * process.c: ProcessStartInfo may have only filename set and
2920         arguments can be NULL.
2921
2922 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2923
2924         * icall.c: fix leak found by Robert Jordan.
2925
2926 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
2927
2928         * marshal.c, marshal.h: generate managed method to access an element
2929         of a multi-dimensional array.
2930
2931 2006-11-30  Paolo Molaro (lupus@ximian.com)
2932
2933         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
2934
2935 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2936
2937         * icall.c: back out GetFields () fix until the serialization code is
2938         fixed to not depend on the incorrect behaviour.
2939
2940 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
2941
2942         * profiler.c: provide defaults if none are set.
2943
2944 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
2945
2946         * Makefile.am, attrdefs.h: new public header file with
2947         constants for attributes for use by embedders.
2948
2949 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
2950
2951         * icall.c: GetFields () fix for bug #80064.
2952
2953 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
2954
2955         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
2956         removed long unused icalls.
2957
2958 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
2959   
2960         * marshal.c: 
2961                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
2962                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
2963                 can be generated without a delegate class.
2964                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
2965         
2966         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
2967
2968 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2969
2970         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
2971         #80069.
2972
2973 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
2974
2975         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
2976         icall-def.h: added icalls needed by System.GC.
2977
2978 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
2979
2980         * loader.c: ensure the class in catch clauses is handled
2981         correctly for generics methods (fixes bug#79980).
2982
2983 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
2984
2985         * monitor.h, monitor.c: added mono_locks_dump () function
2986         to help debug deadlocks involving managed locks.
2987
2988 2006-11-13  Dick Porter  <dick@ximian.com>
2989
2990         * file-io.c (get_file_attributes): If the file is a symlink try
2991         and get the stat data for the target, but also add the
2992         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
2993         the specs for the windows symlink support, but will probably have
2994         to be reworked when I have test data from a vista machine.  Fixes
2995         bug 79887.
2996
2997 2006-11-13  Dick Porter  <dick@ximian.com>
2998
2999         * gc.c (mono_domain_finalize): 
3000         * marshal.c (mono_delegate_begin_invoke): 
3001         * threadpool.c (socket_io_init, mono_thread_pool_init)
3002         (mono_thread_pool_finish): 
3003         * monitor.c (mono_monitor_try_enter_internal): 
3004         * threads.c (mono_thread_resume, mono_thread_init)
3005         (mono_thread_suspend_all_other_threads)
3006         (mono_thread_execute_interruption): 
3007         * appdomain.c (mono_domain_unload): Check for NULL error returns
3008         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
3009         75733.
3010
3011 2006-11-11  Miguel de Icaza  <miguel@novell.com>
3012
3013         * process.c
3014         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
3015         Only close the handle if the value of the handle is not
3016         INVALID_HANDLE_VALUE.  This just makes the process a bit more
3017         robust.
3018
3019         Improvement for #75733, so that we do not run into this problem. 
3020
3021         
3022         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
3023         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
3024         internal variables.  Fixes #79462 
3025         
3026
3027 2006-11-09  Dick Porter  <dick@ximian.com>
3028
3029         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
3030         Use poll() not select().  Fixes bug 79397.
3031
3032 2006-11-09  Raja R Harinath  <rharinath@novell.com>
3033
3034         Fix #79872
3035         * assembly.c (mono_assembly_load_from_full): Check that the given
3036         image has an assembly manifest.
3037
3038 2006-11-09  Ankit Jain  <jankit@novell.com>
3039
3040         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
3041         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
3042         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
3043
3044 2006-11-07  Dick Porter  <dick@ximian.com>
3045
3046         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
3047         Put the old resolver behaviour back for pre-2.0 profiles.
3048
3049 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
3050
3051         * threadpool.c: precise GC and locking fixes.
3052
3053 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
3054
3055         * class.c: don't load types that have an explicit unaligned
3056         managed reference. Provide better info in the TypeLoad exception.
3057         Part of the fix for bug #79744.
3058         * object.c: use the correct check for class type load issues.
3059
3060 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
3061
3062         * class.c: enforce alignment of fields with managed references
3063         even when Pack=1 is forced by the user (bug #77788).
3064
3065 2006-11-03  Dick Porter  <dick@ximian.com>
3066
3067         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
3068         If the address reverse lookup fails, return it as the hostname
3069         anyway.  Fixes bug 79721.
3070
3071 2006-11-03  Dick Porter  <dick@ximian.com>
3072
3073         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
3074         Fix build on Windows.
3075
3076 2006-11-02  Dick Porter  <dick@ximian.com>
3077
3078         * icall-def.h: 
3079         * object-internals.h: 
3080         * exception.c (mono_get_exception_thread_interrupted): 
3081         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
3082         Fixes bug 74525.
3083
3084         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
3085         Check for pending Thread.Interrupt.
3086
3087 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
3088         * loader.c: Fixed bug 79684.
3089
3090 2006-10-27  Dick Porter  <dick@ximian.com>
3091
3092         * file-io.c (get_file_attributes): Force symlinks to directories
3093         to be returned as a regular file.  Fixes bug 79733.
3094 2006-10-26  Dick Porter  <dick@ximian.com>
3095
3096         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
3097         CreateFile to open a directory then we need to set the
3098         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
3099
3100 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
3101
3102         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
3103         friends.
3104
3105 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
3106
3107         * sgengc.c: small cleanup of timer code.
3108
3109 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
3110
3111         * sgen-gc.c: fix some warnings and start adding support for
3112         complete object removal on domain unload.
3113
3114 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
3115
3116         * assembly.c: build_assembly_name should not consider a version
3117         number without build or revision number invalid. Fixes bug #79715.
3118
3119 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
3120
3121         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
3122         call kernel32 function OutputDebugString directly.
3123         
3124         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
3125         
3126 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
3127
3128         * reflection.c: small cleanup, using a function to insert a MonoString
3129         in the string heap.
3130
3131 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
3132
3133         * reflection.c: moving GC fixes.
3134
3135 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
3136
3137         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
3138         all the objects with finalizers belonging to an unloading appdomain.
3139
3140 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
3141
3142         * sgen-gc.c: added ability to allocate even when the nursery is fully
3143         pinned and fixed a couple of bugs.
3144
3145 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
3146
3147         * threads.h: Revert the last change for now.
3148
3149         * threads.h (mono_thread_get_pending_exception): Rename this to
3150         mono_thread_get_undeniable_exception ().
3151
3152 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
3153
3154         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
3155         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
3156         when fname does not refer to valid assembly. This result in a more
3157         meaningful error message.
3158         * exception.c: added mono_get_exception_bad_image_format2 which 
3159         constructs a BadImageFormatException using the ctor taking a custom
3160         message and the file name. Passing in a NULL msg results in a default
3161         message.
3162         * exception.h: define mono_get_exception_bad_image_format2 function.
3163         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
3164         when file name pointed to an invalid IL image. Use 
3165         mono_get_exception_file_not_found2 to construct FileNotFoundException,
3166         as this results in a more meaningful error message.
3167
3168 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
3169
3170         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
3171         #79465.
3172
3173 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
3174
3175         * metadata.c (mono_type_size): Change the align parameter to guint32 for
3176         consistency with the other _size functions.
3177         (mono_type_stack_size): Ditto.
3178
3179         * class.c object.c icall.c: Fix warnings caused by the above change.
3180
3181         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
3182
3183         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
3184
3185         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
3186
3187 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
3188
3189         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
3190         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
3191         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
3192         threadpool.h, threads-types.h: mark more internal functions.
3193
3194 2006-10-11  Dick Porter  <dick@ximian.com>
3195
3196         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
3197         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
3198         reproduce the bug even before applying the fix.)
3199
3200 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
3201
3202         * reflection.c: allow retrieving attributes for arguments in generic
3203         methods (bug #79241).
3204
3205 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
3206
3207         * debug-mono-symfile.c: properly check fopen () result (found by
3208         coverity).
3209
3210 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
3211
3212         * reflection.c: make error message clearer and fixed two
3213         issuelets found by Coverity.
3214
3215 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
3216
3217         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
3218
3219 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
3220
3221         * object-internals.h, gc-internal.h, profiler-private.h:
3222         mark internal functions.
3223
3224 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
3225
3226         * reflection.c: put data in the text section.
3227         * icall.c: recognize more types in type_from_typename ().
3228         * process.c, marshal.c: added some GC FIXMEs.
3229
3230 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
3231
3232         * loader.c: check for NULL before initializing.
3233
3234 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
3235
3236         * gc.c (finalizer_thread): Use a non-alertable wait here.
3237
3238         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
3239         until the correct solution is found.
3240
3241 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
3242
3243         * reflection.c (mono_module_get_object): Avoid an assert when operating on
3244         modules with no metadata. Fixes #79596.
3245
3246         * image.c (load_metadata_ptrs): Put back the error message when
3247         the #- heap is encountered since the support is not complete yet.
3248
3249 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
3250
3251         * gc.c: do not allow the user to SuppressFinalize () a
3252         delegate because it would leak the trampoline if present.
3253
3254 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
3255
3256         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
3257         PropertyPtr table.
3258
3259 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
3260
3261         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
3262
3263         * metadata.c (mono_metadata_get_param_attrs): Ditto.
3264
3265         * row-indexes.h: Add definitions for *Ptr tables.
3266
3267         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
3268
3269         * metadata.c (mono_metadata_translate_token_index): New helper function to
3270         translate table indexes used in uncompressed metadata.
3271         (mono_metadata_decode_table_row): Ditto.
3272         (mono_metadata_decode_table_row_col): Ditto.
3273
3274         * metadata.c: Add table schema for *Ptr tables.
3275
3276         * class.c loader.c: Use the new helper function to access the affected metadata
3277         tables.
3278         
3279         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
3280         #38532.
3281         
3282 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
3283
3284         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
3285         sequences which can be unbounded in size. Fixes #79583.
3286
3287 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
3288
3289         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
3290         static initialization.
3291
3292         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
3293
3294         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
3295
3296         * domain.c (mono_domain_free): Free up type_init_exception_hash.
3297
3298         * object.c (mono_runtime_class_init): Implement correct semantics when a static
3299         ctor fails, i.e. throw the same exception on subsequent accesses.
3300         
3301 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
3302
3303         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
3304         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
3305         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
3306         Handle marshalling of interfaces and VARIANTs contained in structs.
3307         
3308         Code is contributed under MIT/X11 license.
3309         
3310 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
3311
3312         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
3313         
3314         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
3315         mempool.
3316
3317 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3318
3319         * console-io.c: ignore previous SIGINT handler.
3320
3321 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
3322
3323         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
3324         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
3325         #79460, #79461, #79485.
3326
3327         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
3328
3329         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
3330         #79217.
3331
3332 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
3333
3334         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
3335         could be generated from it.
3336
3337 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
3338
3339         * rand.c: fix read loop to correctly handle EINTR.
3340
3341 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
3342
3343         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
3344         internal calls are defined to keep methods closer to the declaring
3345         type and allow a significant reduction in runtime relocations and
3346         memory usage.
3347
3348 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
3349
3350         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
3351         exception message to have FileNotFoundException use the default
3352         assembly load error message. Fixes bug #79426.
3353         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
3354
3355 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3356
3357         * threadpool.c: (start_thread_or_queue) use the root domain when
3358         creating the thread instead of the async object one.
3359
3360 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
3361
3362         * class.c, object.c, class-internals.h, reflection.c:
3363         for arrays, store element_size inside MonoClass (speedup
3364         for array object creation).
3365
3366 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
3367
3368         * icall.c: fixed CodeBase to use the file name and not the module
3369         name (bug #79365).
3370
3371 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
3372
3373         * mono-debug.c, mono-debug.h: export find_method as
3374         mono_debug_find_method ().
3375
3376 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
3377
3378         * debug-helpers.c, class-internals.h: added a few functions useful
3379         when debugging under gdb.
3380
3381 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3382
3383         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
3384         characters that need special handling.
3385
3386 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
3387
3388         * mono-config.c: make the os/cpu specification more flexible,
3389         allowing lists and negation.
3390
3391 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
3392
3393         * marshal.c: COM Interop fixes. Handle case where method->klass.
3394         is interface. Handle BSTR/MonoString when null. Use CDECL as 
3395         calling convention on non-windows platforms. This is for
3396         compatibility with XPCOM and MainWin COM.
3397         
3398         Code is contributed under MIT/X11 license.
3399         
3400
3401 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
3402
3403         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
3404         correctly. Fixes #79217.
3405
3406         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
3407
3408 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
3409
3410         * mono-config.c: allow both an os and cpu attribute for dllmap
3411         and dllentry elemnets to enable a single config file to be used
3412         for multiple architectures.
3413
3414 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
3415
3416         * loader.c: MonoLoaderError was cleared too soon on load failure.
3417         Fixes bug #79424.
3418
3419 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
3420
3421         * icall.c: use the defining class vtable when accessing a
3422         static field, not a pobblibly derived class.
3423
3424 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
3425
3426         * icall.c string-icalls.c: Remove references to unicode.h.
3427
3428         * unicode.h unicode.c Makefile.am: Remove these unused source files.
3429
3430         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
3431
3432         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
3433         indicating the image where custom marshaller types should be looked up.
3434         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
3435         custom marshallers, instead of corlib. Fixes #79425.
3436
3437 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
3438
3439         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
3440
3441 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
3442
3443         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
3444         Implement Environment.ProcessorCount.
3445         
3446         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
3447         Implement Environment.ProcessorCount.
3448         
3449         * icall.c: 
3450         Add Environment.ProcessorCount icall.
3451         
3452         Patch by Jason McFall.
3453
3454 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3455
3456         * assembly.c: don't append .exe/.dll when the filename already contains
3457         one of those extensions.
3458
3459 2006-09-12  Martin Baulig  <martin@ximian.com>
3460
3461         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
3462         to array interfaces.
3463
3464 2006-09-11  Martin Baulig  <martin@ximian.com>
3465
3466         * reflection.c (mono_image_build_metadata): Create the
3467         MethodImpl's after emitting all types and methods, so we don't
3468         need another fixup pass for them.
3469
3470 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
3471
3472         * class.c (mono_class_from_name_case): Fix regression introduced by the last
3473         change.
3474
3475 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
3476
3477         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
3478         unload.
3479
3480 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
3481
3482         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
3483         args is not set. Fixes #78926.
3484
3485 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
3486
3487         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
3488
3489         * image.c (load_class_names): Move this to class.c, and rename it to 
3490         'mono_image_init_name_cache'.
3491         (load_modules): Fix a warning.
3492
3493         * class.c icall.c image.c: Initialize image->name_cache lazily.
3494
3495         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
3496         on its name using information in the AOT file.
3497
3498         * class.c (mono_class_from_name): Use the new hook function.
3499
3500 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
3501
3502         * reflection.c (mono_param_get_objects): Handle enum default parameter values
3503         correctly.
3504
3505         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
3506         Fixes #79289.
3507         
3508 2006-09-06  Martin Baulig  <martin@ximian.com>
3509
3510         * icall.c (mono_lookup_internal_call): Small fix.
3511
3512 2006-09-05  Raja R Harinath  <rharinath@novell.com>
3513
3514         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
3515         double g_free.
3516
3517 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
3518
3519         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
3520         when --debug is specified.
3521
3522 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
3523
3524         * class.c (setup_generic_array_ifaces): Fix a warning.
3525
3526 2006-09-04  Miguel de Icaza  <miguel@novell.com>
3527
3528         * Temporarily remove the patch to assemly.c that checks the
3529         assembly versions as it breaks our gacutil.
3530
3531 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
3532
3533         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
3534
3535         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
3536         a net 1.0 runtime.
3537
3538         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
3539         created using the default ctor. Fixes #79152.
3540         (mono_string_builder_to_utf16): Ditto.
3541
3542 2006-09-01  Martin Baulig  <martin@ximian.com>
3543
3544         Fix handling of the generic array interfaces.
3545
3546         * class-internals.h
3547         (MonoDefaults): Removed `generic_array_class' and added
3548         `generic_ilist' class.
3549
3550         * class.c
3551         (mono_bounded_array_class_get): Add the new generic array interfaces.
3552         (setup_generic_array_ifaces): New static method; create vtable
3553         entries for each method in the generic array interfaces.
3554
3555         * metadata.c
3556         (select_container): Allow "parent-less" generic methods.
3557
3558         * marshal.c
3559         (mono_marshal_get_generic_array_helper): New public method.
3560
3561         * icall.c
3562         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
3563         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
3564         moved the interncall into System.Array.
3565
3566 2006-09-01  Raja R Harinath  <rharinath@novell.com>
3567
3568         A few more cases of avoiding work on types with ->byref set.
3569         Has the real fix for #79238
3570         * icall.c (is_generic_parameter): New helper.
3571         (ves_icall_Type_GetGenericParameterPosition): Use it.
3572         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
3573         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
3574         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
3575         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
3576         reference types.
3577         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
3578         reference types.
3579         (ves_icall_Type_get_IsGenericInstance): Likewise.
3580         (ves_icall_Type_get_IsGenericType): Likewise.
3581
3582 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
3583
3584         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
3585         class if possible.
3586
3587         * mempool.h (mono_mempool_get_allocated): New helper function.
3588
3589         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
3590         change.
3591
3592         * mempool.c: Fix warnings and the calculation of stats.
3593
3594         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
3595
3596         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
3597
3598         * loader.c (mono_get_method_from_token): Update method_count stat.
3599
3600         * class-internals.h (MonoStats): Add some stats.
3601
3602 2006-08-31 Robert Jordan  <robertj@gmx.net>
3603
3604         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
3605         with managed variants.
3606         All code is contributed under the MIT/X11 license.
3607         
3608 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
3609
3610         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
3611         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
3612
3613         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
3614
3615         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
3616         with cycles in classes.
3617
3618         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
3619
3620         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
3621         missing a [MarshalAs] directive. Fixes #79203.
3622
3623         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
3624         klass->marshal_info. Fixes #79217.
3625
3626 2006-08-30  Martin Baulig  <martin@ximian.com>
3627
3628         Committing a patch from Joachim Ante <joe@otee.dk>:
3629         Add support for binary data symbol stores.
3630
3631         * debug-mono-symfile.c
3632         (mono_debug_open_mono_symbol_file): Renamed into
3633         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
3634         arguments.
3635
3636         * mono-debug.c
3637         (mono_debug_open_image): Added `raw_contents' and `size' args.
3638         (mono_debug_init_2_memory): New public function.
3639
3640 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
3641
3642         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
3643
3644 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3645
3646         * appdomain.c: implement support for ShadowCopyFiles.
3647
3648 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
3649
3650         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
3651         when value is NULL (and should remove CID #51).
3652
3653 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3654
3655         * image.c: moved 2 functions to ../utils.
3656
3657 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
3658
3659         * gc.c: cope with the target object of a GC handle being NULL
3660         (bug #78877).
3661
3662 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
3663
3664         * class.c: recursively check parent's explicit implementations
3665         of interface methods (fixes bug #79125).
3666
3667 2006-08-19  Miguel de Icaza  <miguel@novell.com>
3668
3669         * filewatcher.c: Avoid warnings when building, do not redefine
3670         constants that are defined.
3671
3672         Remove warnings.
3673
3674 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3675
3676         * image.c: don't fail when the link points to an absolute path.
3677
3678 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
3679
3680         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
3681         Fix CID #3.
3682
3683 2006-08-17  Miguel de Icaza  <miguel@novell.com>
3684
3685         * image.c (full_path): A new method used to obtain the actual path
3686         of an assembly even in the presence of symbolic links.  
3687
3688         This is necessary for the case where we are running a binary that
3689         has been GACed, but we are using the "published" path name
3690         ($prefix/mono/1.0/blah.exe) which happens to point to the real
3691         file in the GAC.
3692
3693         This was the source of the failure for the `xsp' command with the
3694         recent AppDomain changes, as far as the runtime was concerned,
3695         there were two different assemblies: $prefix/mono/1.0/blah.exe and
3696         $prefix/mono/gac/blah/version/blah.exe.
3697
3698         (do_mono_image_open): use full path
3699
3700 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3701
3702         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
3703
3704 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
3705
3706         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
3707         domain_id is supplied. Fix CID #241 and corlib's unit tests.
3708
3709 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3710
3711         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
3712         small structures. Fixes #78990.
3713
3714 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3715
3716         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
3717
3718         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
3719
3720 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3721
3722         * appdomain.c:
3723         * marshal.c: don't load all the assemblies from a domain into newly
3724         created ones. The new domains might have different rules and load
3725         assemblies from different locations. Fixes bug #76757.
3726
3727         Patch by Lluis. Conflicts resolved by Brian Crowell.
3728
3729 2006-08-16  Alp Toker  <alp@atoker.com>
3730
3731         * socket-io.c: First half of the fix for #79084.
3732         Set sa_size to the length of the content, not that of the struct.
3733         Don't add NULL suffix to the content, this should be done in
3734         managed code if needed.
3735
3736 2006-08-14  Raja R Harinath  <rharinath@novell.com>
3737
3738         Fix part of #79012
3739         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
3740         mono_metadata_parse_type returns NULL.
3741
3742 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
3743
3744         * normalization-tables.h : new file for string normalization data.
3745         * locales.c, locales.h, icall.c :
3746           added load_normalization_resource() for string normalization,
3747           and icall as well.
3748         * Makefile.am : added normalization-tables.h to the sources.
3749
3750 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
3751
3752         * marshal.c: Add more helper functions to reduce code duplication and use them
3753         everywhere.
3754
3755 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
3756
3757         * marshal.c: Fix non-x86 stdcall warnings.
3758         
3759         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
3760         them everywhere.
3761
3762 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
3763
3764         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
3765         type check on multi-dimensional arrays. Fixes #79000.
3766
3767 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
3768
3769         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
3770         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
3771         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
3772         * class-internals.h: add is_com_object to class structure.
3773         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
3774         null checks to COM object marshalling. Fix .ctor call on RCW.
3775         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
3776         
3777         All code is contributed under the MIT/X11 license.
3778
3779 2006-08-09  Dick Porter  <dick@ximian.com>
3780
3781         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
3782         racing mono_monitor_allocator_lock() somewhere, so don't delete
3783         the critical section for now.  Found by running and exiting
3784         monodevelop.
3785
3786 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
3787
3788         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
3789         (ves_icall_System_ComObject_FindInterface): Ditto.
3790         (ves_icall_System_ComObject_CacheInterface): Ditto.
3791
3792         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
3793         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
3794
3795 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3796
3797         * threadpool.c: treat pipes from process asynchronous reads as sockets
3798         when reading from them, so we get select/poll or epoll to wait for
3799         data.
3800
3801 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
3802
3803         * loader.c: Fix a typo (CID #233) in the null check.
3804
3805 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
3806
3807         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
3808         Hopefully fixes #78949.
3809         
3810         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
3811         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
3812         bytes. Fixes #78972.
3813
3814 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3815
3816         * filewatcher.c: we need to set errno here.
3817
3818 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3819
3820         * filewatcher.c: let Win32Exception get the error value.
3821
3822 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3823
3824         * filewatcher.c: translate errno into win32 errors for Win32Exception
3825         to know what happened.
3826
3827 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
3828
3829         * threadpool.c: Fix more warnings.
3830
3831         * assembly.c (search_loaded): Fix warnings.
3832
3833         * threadpool.c (mono_thread_pool_finish): Fix warnings.
3834         (mono_async_invoke): Ditto.
3835
3836 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
3837
3838         * object.c (mono_remote_class_vtable): Need to create proxy vtable
3839         entries for __ComObject type in addition to ComImport types.
3840         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
3841         about hash table.
3842         
3843         All code is contributed under the MIT/X11 license.
3844
3845 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
3846
3847         * image.c: avoid tentative loading of modulerefs that contain
3848         no metadata (P/Invoke library names).
3849
3850 2006-07-28  Dick Porter  <dick@ximian.com>
3851
3852         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
3853         mono_loader_lock() somewhere, so don't delete the critical section
3854         for now.  Found by running and exiting monodevelop.
3855
3856 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3857
3858         * filewatcher.c: define the inotify syscalls when we're building on
3859         linux and have sys/syscall.h. The build system might not have support
3860         for inotify but the target system might have it.
3861
3862 2006-07-26  Miguel de Icaza  <miguel@novell.com>
3863
3864         * domain.c: Documentation updates.
3865
3866         * loader.c (mono_free_method): Do not release the method
3867         information if we are being profiled, as profilers will use this
3868         information at shut down to present some data to the user.
3869
3870         This is needed so that the profiler does not crash, as the
3871         profiler tends to keep MonoMethods around, and they might become
3872         invalid if we free these.
3873
3874         (mono_get_method_constrained): Return the original CIL stream
3875         method as well, so verification can be performed against it.
3876
3877 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3878
3879         * filewatcher.[ch]: support for inotify file system watcher.
3880         * icall.c: add new internal calls for the inotify file system watcher.
3881
3882 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3883
3884         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
3885         #78888.
3886
3887 2006-07-20  Dick Porter  <dick@ximian.com>
3888
3889         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
3890         warning.
3891
3892 2006-07-20  Dick Porter  <dick@ximian.com>
3893
3894         * threads.c (start_wrapper): Do the thread cleanup while we still
3895         hold a reference to its object.  Fixes bug 78123.
3896
3897 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
3898
3899         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
3900         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
3901           "managed-to-managed".
3902         * icall.c: Redirect string constructors that take sbyte* to
3903           ves_icall_System_String_ctor_RedirectToCreateString.
3904         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
3905           to CreateString () methods with matching signature.
3906         * reflection.c: Use original security informations for
3907           MONO_WRAPPER_MANAGED_TO_MANAGED.
3908         * security-manager.c: Use original security informations for
3909           MONO_WRAPPER_MANAGED_TO_MANAGED.
3910         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
3911           that is a placeholder and only its address should be used.
3912         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
3913           that is a placeholder and only its address should be used.
3914
3915 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
3916
3917         Begin implementing COM Interop.
3918         * appdomain.c: Increment corlib version.
3919         * class.c: Set ComImport classes' parent to __ComObject.
3920         * loader.c: Mark cominterop methods as such.
3921         * domain.c: Add __ComObject class to MonoDefaults structure.
3922         * image.c: Add 2 hashtables to the image for COM Interop related methods
3923         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
3924         using the mempool allocator
3925         
3926         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
3927         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
3928         declaration for mono_metadata_type_dup_mp.
3929         
3930         * debug-helpers.c: Added strings for two additional wrapper types
3931         * object.c: Create proxy objects for ComImport classes
3932         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
3933         and added __ComObject class to MonoDefaults structure.
3934         
3935         * object-internals.h: Finish MonoRealProxy definition, and add definition of
3936         MonoComInteropProxy and MonoComObject.
3937         
3938         * marshal.c: Added support for COM Interop
3939         (signature_cominterop): Converts managed signature to corresponding
3940         unmanaged COM signature.
3941         (cominterop_get_function_pointer): gets unmanaged function pointer via
3942         COM object vtable
3943         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
3944         (cominterop_get_method_interface): returns interface type that method is defined on
3945         (mono_mb_emit_cominterop_call): emits native call to function pointer
3946         gotten from vtable
3947         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
3948         that matches signature of unmanaged function.
3949         (cominterop_get_native_wrapper): wrapper around adjusted method call.
3950         (cominterop_get_invoke): forwards call from proxy to __ComObject
3951         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
3952         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
3953         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
3954         
3955         * marshal.h: Added Marshal icall declarations.
3956         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
3957         so we can access them in finalizer
3958         
3959 2006-07-14  Dick Porter  <dick@ximian.com>
3960
3961         * object.c (mono_type_initialization_cleanup): Fix a race
3962         condition by temporarily commenting out the critical section
3963         deletion.
3964
3965 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
3966
3967         * reflection.c (create_custom_attr): Fix some warnings.
3968         (create_custom_attr_data): Ditto.
3969         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
3970         types. Fixes #78855.
3971
3972 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
3973
3974         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
3975
3976         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
3977
3978 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
3979
3980         * reflection.c (resolve_object): Add support for DynamicMethod.
3981
3982         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
3983         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
3984
3985 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
3986
3987         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
3988         don't leak GPtrArray's pdata has we have no use (nor free) for it.
3989
3990 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
3991
3992         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
3993         Fixes #77888.
3994
3995 2006-06-30  Raja R Harinath  <rharinath@novell.com>
3996
3997         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
3998         slightly: remove a shadow local variable.
3999
4000 2006-06-29  Raja R Harinath  <rharinath@novell.com>
4001
4002         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
4003         definition that introduces the virtual function slot.
4004         Also fix Coverity #105.
4005
4006 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
4007
4008         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
4009         for dynamic assemblies. Fixes #78724.
4010
4011 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
4012
4013         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
4014         Fixes #78722.
4015
4016 2006-06-21  Martin Baulig  <martin@ximian.com>
4017
4018         * reflection.c
4019         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
4020         fixes #76484.
4021
4022 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
4023
4024         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
4025
4026 2006-06-20  Raja R Harinath  <rharinath@novell.com>
4027
4028         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
4029         nor TYPEREFs.
4030         * class.c (mono_class_create_from_typespec): Add 'context' argument.
4031         Inflate result if necessary.
4032         (mono_class_get_full): Remove old version.  Rename from
4033         'mono_class_get' and add 'context' argument.  Pass it to
4034         ..._create_from_typespec.
4035         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
4036         (mono_ldtoken): Revert change below.
4037
4038 2006-06-20  Martin Baulig  <martin@ximian.com>
4039
4040         * class.c (mono_ldtoken): Don't pass the generic context to
4041         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
4042
4043 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
4044
4045         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
4046         and later freeing it. Fixes #78638.
4047
4048 2006-06-15  Miguel de Icaza  <miguel@novell.com>
4049
4050         * icall.c (mono_class_get_throw): Revert over-zealous error
4051         throwing, the caller for mono_class_get_throw will cope with
4052         errors when classes are not properly initialized already.
4053
4054         The code still copes with loader exceptions though.
4055
4056         Fixes the regression in reftype1 and reftype3 from the CAS tests.
4057         
4058 2006-06-14  Miguel de Icaza  <miguel@novell.com>
4059
4060         Fixes the `make run1' version of RuntimeAbort (to be commited,
4061         source is in Bugzilla).
4062         
4063         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
4064         FALSE on class loading failure instead of returning true.
4065
4066         * class.c (mono_class_create_from_typedef): It is possible for
4067         mono_metadata_interfaces_from_typedef_full to fail if a class is
4068         not found, cope with this.
4069         
4070
4071 2006-06-14  Dick Porter  <dick@ximian.com>
4072
4073         * socket-io.c: 
4074         * process.c: Fix a bunch of signed/unsigned warnings from gcc
4075         4.1.1
4076
4077 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
4078
4079         * culture-info-table.h : oops, forgot to make it nsync with r61548.
4080
4081 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
4082
4083         * icall.c: Another fix for building mono in Visual Studio.
4084
4085 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
4086
4087         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
4088         
4089 2006-06-09  Martin Baulig  <martin@ximian.com>
4090
4091         * debug-mono-symfile.c: Put this back and really fix it this
4092         time. Sorry for all the trouble.
4093
4094 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
4095
4096         * icall.c (mono_class_get_throw): Fix a warning.
4097         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
4098         ReflectionTypeLoadException if needed. Fixes #78606.
4099
4100         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
4101         (mono_class_init): Ditto.
4102
4103         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
4104         ref_only exceptions.
4105         (mono_loader_clear_error): Make this work even if there is no error.
4106
4107 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
4108
4109         * object-internals.h marshal.c marshal.h icall.c: Implement method 
4110         Marshal.GetComSlotForMethodInfo using internal call.
4111
4112 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
4113
4114         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
4115         a function for signalling it.
4116
4117         * class.c (mono_class_from_typeref): Use the new kind of loader error when
4118         a referenced assembly is not found.
4119
4120         * loader.c (mono_loader_error_prepare_exception): Add support for 
4121         LOADER_ERROR_ASSEMBLY. Fix formatting.
4122
4123 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
4124
4125         * domain.c appdomain.c class-internals.h marshal.c: Add support 
4126         for VARIANT marshalling on windows and increment corlib version
4127         since Variant struct was added.
4128
4129 2006-06-03  Miguel de Icaza  <miguel@novell.com>
4130
4131         * debug-mono-symfile.c: Revert Martin's previous patch which broke
4132         stack trace line information:
4133
4134         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
4135         (Martin) when looking up B which is between A and C, return A not C.
4136
4137         Bug is #78573.
4138
4139         Thanks to Alexander Olk for tracking this down.
4140
4141 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
4142
4143         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
4144         
4145         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
4146         avoid clobbering its value.
4147         (mono_string_to_lpstr): Fix a warning on windows.
4148
4149 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
4150
4151         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
4152
4153         * reflection.c loader.c: Removed references to 'dummy' flag.
4154
4155         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
4156
4157         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
4158         it gets GC tracking.
4159
4160         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
4161         GC tracking.
4162         
4163         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
4164
4165         * marshal.c threadpool.c: Update callers of mono_async_result_new.
4166
4167         * appdomain.c: Bump corlib version.
4168
4169 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
4170
4171         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
4172         CEE_STIND_REF when working with object references.
4173
4174 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
4175
4176         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
4177         Fixes #78539.
4178
4179 2006-05-30  Miguel de Icaza  <miguel@novell.com>
4180
4181         * loader.c (method_from_memberref): Fix argument value for
4182         mono_loader_set_error_method_load (I was passing the MonoClass
4183         instead of the class name char *).
4184
4185 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
4186
4187         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
4188         CEE_STIND_REF when working with object references.
4189
4190 2006-05-30  Martin Baulig  <martin@ximian.com>
4191
4192         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
4193         mono_method_full_name() change and replace the ':' with a '.'
4194         here.
4195
4196 2006-05-30  Martin Baulig  <martin@ximian.com>
4197
4198         * debug-mono-symfile.c
4199         (mono_debug_symfile_lookup_location): Fix the algorithm:
4200         when looking up B which is between A and C, return A not C.
4201
4202 2006-05-29  Martin Baulig  <martin@ximian.com>
4203
4204         * mono-debug.h
4205         (MonoDebugMethodInfo): Make the typedef public.
4206         (MonoDebugSourceLocation): New public struct.
4207
4208         * mono-debug.c
4209         (mono_debug_source_location_from_address): Removed.
4210         (mono_debug_source_location_from_il_offset): Removed.
4211         (mono_debug_il_offset_from_address): Removed.
4212         (mono_debug_address_from_il_offset): Removed.
4213         (mono_debug_lookup_method): New public function.
4214         (mono_debug_lookup_source_location): New public function; replaces
4215         the old mono_debug_source_location_from_*() functions; see the
4216         inline documentation.
4217         (mono_debug_free_source_location): New public function.
4218         (mono_debug_print_stack_frame): New public function; see the
4219         inline documentation.
4220
4221         * debug-mono-symfile.c
4222         (mono_debug_find_source_location): Renamed into
4223         mono_debug_symfile_lookup_location(); only take a
4224         `MonoDebugMethodInfo *' and an `offset' argument; added inline
4225         documentation.
4226         (mono_debug_find_method): Renamed into
4227         mono_debug_symfile_lookup_method().
4228
4229 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
4230
4231         * assembly.c (mono_assembly_open_full): Dont overwrite the status
4232         returned by mono_image_open_full ().
4233
4234         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
4235         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
4236         #78517.
4237
4238         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
4239         #78518.
4240
4241 2006-05-27  Miguel de Icaza  <miguel@novell.com>
4242
4243         * class.c (mono_class_from_typeref): handle missing images
4244         earlier, deals with bug #78418.   Refactor code; 
4245
4246         Fix a warning introduced in my previous commit (some stale code
4247         from before I revisited my patch).
4248
4249         * class.c (mono_class_create_from_typedef): On failure, remove the
4250         class from the MonoImage->class_cache as the class is not
4251         initialized;   Fixes the leak pointed out by Paolo.
4252
4253 2006-05-25  Dick Porter  <dick@ximian.com>
4254
4255         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
4256         DeleteCriticalSections until I figure out which one may still be
4257         sometimes locked when mono_thread_cleanup is called.
4258
4259 2006-05-24  Dick Porter  <dick@ximian.com>
4260
4261         * threads.c (mono_thread_cleanup): Move the threading cleanup out
4262         of mono_thread_manage and back into its own function, so it can be
4263         called after the finalizer thread has finished.
4264
4265         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
4266
4267 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
4268
4269         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
4270         Fixes #78495.
4271
4272         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
4273         with non-blittable elements.
4274         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
4275
4276 2006-05-24  Martin Baulig  <martin@ximian.com>
4277
4278         * mono-debug-debugger.h (MonoDebuggerEvent): Added
4279         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
4280
4281         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
4282         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
4283         `mono_debugger_event_handler' to NULL.
4284
4285 2006-05-24  Martin Baulig  <martin@ximian.com>
4286
4287         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
4288
4289 2006-05-24  Martin Baulig  <martin@ximian.com>
4290
4291         * mono-debug-debugger.h
4292         (mono_debugger_create_notification_function): Added
4293         `MonoCodeManager *' argument.
4294
4295 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
4296
4297         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
4298
4299 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
4300
4301         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
4302         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
4303         implementation.
4304
4305 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
4306
4307         * icall.c: precise GC support: objects can't be stored in unmanaged
4308         memory anymore, even if they are kept alive by other references: since
4309         they can move the GC needs to be able to always find them.
4310
4311 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
4312
4313         * object.c: precise GC support for static fields. Support
4314         for moving GCs: write barriers and pinned allocation for interned
4315         strings.
4316
4317 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
4318
4319         * domain.c, domain-internals.h: precise GC support for the MonoDomain
4320         structure.
4321
4322 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
4323
4324         * class.c, gc.c: sgen and precise GC updates.
4325
4326 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
4327
4328         * marshal.h, marshal.c: added write barrier wrapper and precise type
4329         fixes.
4330
4331 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
4332
4333         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
4334         support.
4335
4336 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
4337
4338         * reflection.c: precise and sgen GC updates.
4339
4340 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
4341
4342         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
4343
4344 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
4345
4346         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
4347
4348 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
4349
4350         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
4351         MONO_TYPE_OBJECT. Fixes #78462.
4352
4353 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
4354
4355         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
4356         and blittable types.
4357
4358 2006-05-17  Miguel de Icaza  <miguel@novell.com>
4359
4360         * class.c (mono_class_get_exception_for_failure): Implement parts
4361         of a TODO: if the loader error is set (instead of the class
4362         error), we return a Loader exception that can be properly thrown
4363         elsewhere.
4364
4365         This was exposed by some Winforms 2.0 code that I tried to run
4366         (Atsushi pointed me to it).
4367
4368 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
4369
4370         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
4371         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
4372         
4373         * marshal.c (emit_marshal_vtype): Add limited support for 
4374         UnmanagedType.LPStruct. Fixes #78427.
4375
4376         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
4377         Applied a patch from kangaroo to fix #77523.
4378
4379 2006-05-17  Martin Baulig  <martin@ximian.com>
4380
4381         * threads.c
4382         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
4383         (debugger_thread_created): Removed.
4384         (debugger_thread_exited): Removed.
4385
4386 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
4387
4388         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4389
4390         * object-internals.h (MonoReflectionResource): Sync with managed version.
4391
4392 2006-05-12  Wade Berrier <wberrier@novell.com>
4393
4394         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
4395
4396 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
4397
4398         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
4399         functions try to allocate from the image mempool.
4400
4401 2006-05-12  Dick Porter  <dick@ximian.com>
4402
4403         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
4404
4405 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
4406
4407         * object.c: The FieldGetter and FieldSetter methods require the full
4408         name of the class, not only the name. Fixes bug #78277.
4409
4410 2006-05-11  Miguel de Icaza  <miguel@novell.com>
4411
4412         * loader.c (method_from_memberref): Do not pass the NULL klass to
4413         mono_loader_set_error_() methods.  Pass the non-NULL value
4414         (class). 
4415
4416 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
4417
4418         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
4419         (mono_assembly_close): Null out assembly->image->references after freeing it.
4420
4421         * image.c (mono_image_close): Free image->references.
4422         
4423         * reflection.c (mono_image_basic_init): Fix a small memory leak.
4424
4425 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
4426
4427         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
4428         before checking if it's NULL (g_assert).
4429
4430 2006-05-10  Martin Baulig  <martin@ximian.com>
4431
4432         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
4433         I thought I already killed that two months ago, but now it somehow reappeared.
4434
4435 2006-05-10  Martin Baulig  <martin@ximian.com>
4436
4437         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
4438
4439 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
4440
4441         * reflection.c: Allocate memory for dynamically created methods in the image
4442         mempools.
4443
4444 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
4445
4446         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
4447         don't use the ad pointer before checking if it's NULL (g_assert).
4448
4449 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
4450
4451         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
4452         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
4453
4454         * marshal.c: Allocate all signatures from mempools.
4455
4456         * marshal.c: Allocate some more signatures from mempools.
4457
4458 2006-05-09  Miguel de Icaza  <miguel@novell.com>
4459
4460         * object.c (mono_load_remote_field): The code used to provide a
4461         temporary variable for returning results if the user did not
4462         provide a result pointer.  But our temporary variable was allocted
4463         on the satck.
4464
4465         Fix calling code to always pass a result area.   Coverity ID 103.
4466
4467 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
4468
4469         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
4470         value, not the old. Fixes #78312.
4471         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
4472
4473         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
4474         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
4475         per-image cache.
4476
4477         * assembly.c (mono_assembly_close): Free image->references.
4478
4479         * assembly.c (mono_assembly_names_equal): Fix a warning.
4480         (mono_assemblies_cleanup): Cleanup more global data.
4481
4482         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
4483
4484         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
4485         ptr_cache and image->modules.
4486
4487         * image.c (mono_image_init): Allocate array_cache lazily.
4488         
4489 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4490
4491         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
4492         behavior was changed recently and has bad side effects.
4493
4494 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
4495
4496         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
4497         
4498         * assembly.c (mono_assembly_close): Remove a debug printf.
4499
4500         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
4501
4502         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
4503         to also allow for temporary references between mono_image_open ()/close ().
4504
4505         * domain.c (get_runtimes_from_exe): Add a FIXME.        
4506
4507 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
4508
4509         * marshal.c: Fix support for dynamic methods.
4510
4511         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
4512
4513         * marshal.c (mono_marshal_cleanup): New cleanup function.
4514
4515         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
4516         image mempools.
4517
4518         * class.c (mono_class_init): Fix leaking class->nested_classes.
4519
4520         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
4521
4522         * image.c (mono_image_init): Initialize the new cashes.
4523
4524         * image.c (mono_image_close): Destroy the new cashes.
4525
4526         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
4527
4528         * mempool.c (mono_mempool_strdup): New helper function.
4529
4530         * class-internals.h: Add prototype for mono_loader_unlock ().
4531
4532         * domain.c (mono_jit_info_table_find): Fix a warning.
4533         (mono_debugger_check_runtime_version): Ditto.
4534
4535         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
4536         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
4537         functions to these modules.
4538
4539         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
4540         metadata modules.
4541         
4542         * marshal.c (mono_free_bstr): Fix a warning.
4543
4544         * assembly.c (mono_assembly_open_full): Fix another small leak.
4545
4546         * object.c: Fix some unload leaks in the remoting code.
4547
4548         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
4549         function.
4550
4551         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
4552
4553         * reflection.c: Fix some unload leaks in dynamic assemblies.
4554
4555 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
4556
4557         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
4558         * marshal.h: Add BSTR support on Win32
4559         * icall.c: Add BSTR icalls
4560         * metadata.h: Add BSTR enums
4561
4562 2006-04-28  Miguel de Icaza  <miguel@novell.com>
4563
4564         Work to catch the crash from #76795 and turn it into an
4565         exception.   As I stubbed out pieces of the VisualBasic support,
4566         I found a number of places where the code was failing and I added
4567         checks to those places. 
4568         
4569         * metadata.c (do_mono_metadata_parse_generic_class): Make this
4570         function return a status code.  If we fail to parse the signature
4571         from mono_metadata_parse_generic_inst, return FALSE.
4572
4573         * loader.c (mono_get_method_from_token): If we fail to load the
4574         method (mono_class_get) return NULL.   
4575
4576         * (method_from_memberref): Return NULL if we are unable to parse
4577         the method signature
4578
4579         (mono_loader_error_prepare_exception): Since we now use the
4580         loader_error flag internally to stop processing, and obtaining
4581         exceptions that might be thrown will walk this code path the
4582         proper way of going from a MonoLoaderError into a
4583         MonoException was convoluted.   This new routine encapsulates the
4584         process of turning the error into an exception and *clearing* the
4585         error afterwards.
4586         
4587 2006-04-27  Miguel de Icaza  <miguel@novell.com>
4588
4589         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
4590         with missing assemblies), and to cope with:
4591
4592                 * Missing fieldref from a non-existing assembly.
4593                 * Missing methodref from a non-existing assembly.
4594
4595         The first batch of work to address *some* of the issues from 76661.
4596         
4597         * object.c (mono_class_create_runtime_vtable): If we fail to
4598         initialize the class raise the exception here. 
4599
4600         * metadata.c (mono_class_get_overrides_full): If any methods fail
4601         to load return the failure to the caller.
4602
4603         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
4604         flagging assemblies that failed to load.   
4605
4606         Do not crash if we are unable to load the assembly.
4607
4608         (mono_assembly_close): Do nothing with REFERENCE_MISSING
4609         assemblies. 
4610
4611         * loader.c (mono_loader_set_error_type_load): Change the
4612         convention to always pass unallocated strings, so we make our own
4613         copies (I know our own code had duplicated strings before, but
4614         this keeps the normal conventions).
4615         (method_from_memberref): Call mono_loader_set_error_method_load
4616         for all possible failures of loading the class. 
4617         Remove assert, turn into a loader error.
4618
4619         (mono_loader_error_to_exception): Move this routine from mini
4620         (mini_loader_error_to_exception) there was no need to have that in
4621         mini. 
4622
4623         * class.c (mono_class_from_typeref): If we were not able to load
4624         the assembly with mono_assembly_load_reference, call the
4625         mono_loader_set_error_type_load to register the problem.
4626
4627         (mono_class_setup_fields): If we fail to load the type from
4628         mono_metadata_parse_type_full, call mono_class_set_failure and
4629         break from the loop.
4630
4631         If class->exception_type is set, we do not layout the fields as
4632         that might crash the runtime, and instead return (from breaking
4633         from the previous loop).
4634
4635         (mono_class_setup_vtable): This now returns a boolean indicating
4636         whether the table was properly setup.   The decision is driven by
4637         mono_class_get_overrides_full which might run into non-existing
4638         methods. 
4639         
4640         (mono_class_init): Returns TRUE on success or FALSE if there was a
4641         problem in loading the type (incorrect assemblies, missing
4642         assemblies, methods, etc).
4643
4644         When we call mono_class_setup_fields we also check for a potential
4645         error inside this call (either a class exception or a general
4646         loader exception).
4647
4648         (mono_class_create_from_typedef): If the parent fails to load
4649         (calling mono_class_get_full) return NULL.
4650         
4651         ** Important **
4652
4653         calls to mono_metadata_parse_type_full should be checked
4654         everywhere and set the mono_class_set_failure
4655         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
4656
4657         The current patch checks the places where my manually constructed
4658         tests show the errors are showing up, but we should do it
4659         everywhere. 
4660
4661         ** Important2 **
4662
4663         mono_class_init return values should be tested everywhere, like
4664         the previous case this is something that we should audit
4665         everywhere and not only on the cases exposed by the tests I
4666         created. 
4667
4668 2006-04-26  Miguel de Icaza  <miguel@novell.com>
4669
4670         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
4671         boolean parameter and instead pass the information on `options'
4672         parameter (FileOptions).
4673
4674         * icall.c: Register the new signature for MonoIO.Open.
4675
4676         * debug-helpers.c (dis_one): Trying to understand how coverity
4677         works.  Fix Run 5, item 78.
4678
4679 2006-04-26  Dick Porter  <dick@ximian.com>
4680
4681         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
4682         dereference.
4683
4684 2006-04-25  Martin Baulig  <martin@ximian.com>
4685
4686         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
4687
4688         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
4689         debugger_thread_created().
4690         (debugger_gc_push_all_stacks): Don't handle the main thread in any
4691         special way.
4692         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
4693         (mono_debugger_finalize_threads): New function; undo the effects
4694         of mono_debugger_init_threads().
4695         (mono_debugger_create_all_threads): Removed.
4696
4697 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
4698
4699         * image.c (mono_image_close): Tidy up trace messages.
4700
4701         * assembly.c (mono_assembly_close): Ditto.
4702
4703         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
4704         no longer references an already freed assembly. Fixes #78168.
4705
4706 2006-04-21  Dick Porter  <dick@ximian.com>
4707
4708         * threads.c (mono_thread_detach): Fix reference counting when
4709         detaching threads.
4710
4711 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
4712
4713         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
4714         #78155.
4715
4716 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
4717
4718         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
4719         (mono_type_to_stind): Ditto.
4720
4721         * marshal.c: Use the new helper functions to simplify code.
4722
4723         * image.c (mono_image_close): Add some code for help debug assembly unloading
4724         problems.
4725
4726         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
4727         image mempool.
4728
4729         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
4730         assembly was already loaded in another appdomain. Fixes #78083.
4731
4732 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
4733
4734         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
4735         referenced assemblies.
4736         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
4737
4738         * domain.c (mono_domain_free): Add a trace message.
4739
4740         * appdomain.c (add_assemblies_to_domain): Ditto.        
4741
4742         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
4743         field.  
4744
4745 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
4746
4747         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
4748
4749 2006-04-12  Martin Baulig  <martin@ximian.com>
4750
4751         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
4752         `USE_INCLUDED_LIBGC'.   
4753
4754 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
4755
4756         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
4757         the patch contains ../ and a small directory name later. Hopefully fixes
4758         #78035.
4759
4760 2006-04-10  Martin Baulig  <martin@ximian.com>
4761
4762         Clean up the debugger's thread-handling code.
4763
4764         The debugger's thread-handling code has been moved from
4765         ../mini/debug-debugger.c to threads.c.  We now iterate directly
4766         over the `threads' hash, keep track of exiting threads and also
4767         use proper locking.
4768
4769         We can now debug XSP and XSP based applications with the debugger.
4770
4771         * object-internals.h (MonoThread): Added `gpointer end_stack'.
4772
4773         * threads.h
4774         (MonoThreadCallbacks): Removed; this was only used by the debugger.
4775         (mono_install_thread_callbacks): Likewise.      
4776
4777         * threads.c (mono_thread_callbacks): Removed.
4778         (debugger_thread_created, debugger_thread_exited): New static functions.
4779         (start_wrapper): Call debugger_thread_created().
4780         (thread_cleanup): Call debugger_thread_exited().
4781         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
4782         (mono_debugger_init_threads): New public function.
4783         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
4784         iterate directly over the `threads' hash and also use proper locking.
4785
4786         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
4787
4788         * mono-debug-debugger.h
4789         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
4790
4791 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
4792
4793         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
4794         argument type=array. Fixes #78057.
4795
4796 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
4797
4798         * culture-info-table.h : regenerated. Fixed bug #69652.
4799
4800 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
4801
4802         * loader.c metadata.c: Reapply a variant r59116.
4803         
4804         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
4805
4806         * class.c (mono_class_setup_interface_offsets): New internal function.
4807
4808         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
4809         interfaces too. Fixes #77398.
4810
4811         * reflection.c (encode_cattr_value): Add support for 
4812         parameter type=object, argument type=array.
4813         (load_cattr_value): Ditto. Fixes #77916.
4814
4815         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
4816         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
4817
4818         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
4819         a byval char array and CharSet is Ansi.
4820
4821         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
4822
4823 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
4824
4825         * metadata.c: Add some locking comments.
4826         
4827         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
4828         mempool.
4829         (mono_metadata_free_method_signature): Don't free the signature itself.
4830
4831         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
4832
4833         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
4834         reference the same MonoImage.
4835         (mono_assembly_load_from_full): Add an assert.
4836
4837 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
4838
4839         * image.c (mono_image_close): Don't put the image we are about to free into the
4840         loaded_images_guid_hash.
4841
4842         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
4843         to reduce code duplication.
4844
4845         * marshal.c: Register the native functions called by this module as icalls, to
4846         somewhat centralize the creation of MonoMethodSignature's.
4847
4848         * loader.c (mono_method_signature): Add a cache for method signatures.
4849
4850         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
4851         the parameter attributes of a method.
4852         (mono_metadata_parse_method_signature_full): Refactored the computation of
4853         parameter attributes into a separate function. Also avoid one allocation in
4854         most cases.
4855
4856         * assembly.c (mono_assembly_close): Ditto.
4857
4858         * image.c (mono_image_close): Log trace messages with INFO level.
4859
4860         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
4861
4862         * image.c reflection.c: Correct reference counting of image modules.
4863         
4864         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
4865         of this function from the image mempool.
4866         
4867         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
4868         to allow more cached types to be used.
4869
4870         * mono-debug.c (mono_debug_add_method): Appled patch from
4871         David S. Miller  <davem@sunset.davemloft.net>: Access 
4872         minfo->lexical_blocks[] entry elements using read32().
4873
4874 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
4875
4876         * loader.c (mono_free_method): No longer free the method header for non-dynamic
4877         methods as it is allocated from the mempool.
4878
4879         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
4880         image mempool.
4881
4882         * metadata-internals.h: Add comments describing the reference counting scheme
4883         used for MonoImage and MonoAssembly.
4884
4885         * image.c assembly.c reflection.c: Rework reference counting of images and 
4886         assemblies so they are freed when the runtime is shut down. Free some 
4887         additional memory structures when an image is unloaded.
4888         
4889 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
4890
4891         * class.c loader.c reflection.c: Allocate more data structures in
4892         the image mempool.
4893
4894 2006-03-31  Miguel de Icaza  <miguel@novell.com>
4895
4896         * icall.c
4897         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
4898         build on pre glib 2.4 systems.
4899
4900 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
4901
4902         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
4903
4904         * icall.c: Fix some warnings.
4905
4906 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
4907
4908         * culture-info-table.h : regenerated.
4909
4910 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
4911
4912         * threads.c, object-internals.h, verify.c: changed the culture caching
4913         code to use a normal MonoArray for storage so the GC can keep track of
4914         them easily. Fixed bits of the cache logic, too and simplified the
4915         code.
4916
4917 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
4918
4919         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
4920         thread for non-Boehm GCs.
4921
4922 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
4923
4924         * domain.c, object.c, domain-internals.h: reduce the amount of memory
4925         needed to keep track of the data for static fields.
4926
4927 2006-03-29  Raja R Harinath  <rharinath@novell.com>
4928
4929         Fix #75172
4930         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
4931         for interface classes.  Use 'num_methods' instead.
4932         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
4933         before using '->vtable_size' field.
4934
4935 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
4936
4937         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
4938         doesn't contain managed pointers, so use a normal hashtable.
4939
4940 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
4941
4942         * reflection.c, class-internals.h, domain.c: fixed handling of types
4943         used as values for objects in custom attributes (bug #77915):
4944
4945 2006-03-24  Martin Baulig  <martin@ximian.com>
4946
4947         * class.c (mono_class_setup_fields): Added support for generic
4948         instances; fixes #77580.
4949
4950 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4951
4952         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
4953
4954 2006-03-24  Dick Porter  <dick@ximian.com>
4955
4956         * file-io.c (get_file_attributes): More stat macro breakage.
4957         Fixes bug 77759.
4958
4959 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
4960
4961         * profiler.c: added the file=filename option in the default profiler
4962         to output the profile data to filename.
4963
4964 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4965
4966         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
4967         bug #77877.
4968
4969 2006-03-22  Martin Baulig  <martin@ximian.com>
4970
4971         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
4972         allocated `MonoClassField *' in `fb->handle'.
4973
4974 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
4975
4976         * class.c, image.c, metadata-internals.h: implemented new mechanism to
4977         allocate interface ID to save memory and allow better ID reuse on
4978         appdomain unload. setup_generic_vtable () removal from Martin.
4979
4980 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
4981
4982         * object.h, appdomain.c, domain.c, exception.c, icall.c,
4983         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
4984         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
4985         write barriers for reference stores with managed objects accessed with
4986         C structures in the runtime and in embedding programs.
4987
4988 2006-03-20  Raja R Harinath  <rharinath@novell.com>
4989
4990         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
4991         'interface_id' and 'max_interface_id' fields of MonoClasses
4992         representing open generic types.
4993
4994 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
4995
4996         * object.h, object.c, icall.c: added functions to deal with
4997         storing valuetypes that contain references in managed objects.
4998         * reflection.c, string-icalls.c, threads.c, marshal.c: small
4999         fixes and comments around uses of mono_array_addr ().
5000
5001 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
5002
5003         * object.h, icall.c, monitor.c: object.GetHashCode ()
5004         implementation that supports the moving garbage collector.
5005
5006 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
5007
5008         * icall.c, threads-types.h, threads.c: implemented finalizer for
5009         LocalDataStoreSlot.
5010
5011 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
5012
5013         * metadata.c (mono_type_size): Add a fixme.
5014         (mono_type_stack_size): Ditto.
5015
5016         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
5017         'type_forwarders' field.
5018
5019         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
5020         attribute from net 2.0.
5021
5022         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
5023         from class.c.
5024
5025         * class.c (mono_class_setup_fields): Fix a warning.
5026         
5027         * class.c (mono_class_from_name): Add support for assemblyref entries
5028         in the EXPORTEDTYPE table.
5029
5030         * reflection.c: Add support for handling type forwarders under net 2.0.
5031
5032         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
5033         
5034 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
5035
5036         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
5037         overwriting entries in ModuleBuild->types, also clean up the code
5038         a little. Fixes #77774.
5039
5040 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
5041
5042         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
5043         load friend assembly info when present.
5044
5045 2006-03-14  Raja R Harinath  <rharinath@novell.com>
5046
5047         Fix crasher on gtest-158.cs.
5048         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
5049         the return value if the MonoClass we want is yet in an
5050         inconsistent state.
5051         * class.c (mono_class_create_from_typedef): Add an comment
5052         explaining an order dependency between mono_class_setup_parent and
5053         mono_class_setup_mono_type.
5054
5055 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
5056
5057         * class.c: documentation updates and events bug fix.
5058
5059 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
5060
5061         * class.c: some cleanup, locking fixes.
5062
5063 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
5064
5065         * class.c: fix the generics code to setup nested
5066         type info to the instantiated type (bug #77770).
5067
5068 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
5069
5070         * marshal.c: fixed a few type correctness issues.
5071
5072 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
5073
5074         * loader.c: the Set/Get/Addrtess array methods should be public.
5075
5076 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
5077
5078         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
5079         
5080         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
5081         info->wrapper.
5082
5083 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
5084
5085         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
5086
5087         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
5088
5089         * mempool.c (mono_mempool_alloc): Speed this up a bit.
5090         (mono_mempool_alloc0): Ditto.
5091
5092 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5093
5094         * socket-io.c:
5095         (create_object_from_sockaddr): it was allocating 4 extra bytes
5096         for the AF_UNIX data. Fixes bug #77747.
5097
5098 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
5099
5100         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
5101
5102 2006-03-09  Dick Porter  <dick@ximian.com>
5103
5104         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
5105         Fixes bug 76966 again.
5106
5107 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
5108
5109         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
5110         names from r57532
5111         * appdomain.c: Bumped corlib version to 48 (due to r57532)
5112
5113 2006-03-07  Martin Baulig  <martin@ximian.com>
5114
5115         * object.c
5116         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
5117
5118 2006-03-07  Martin Baulig  <martin@ximian.com>
5119
5120         * class.c
5121         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
5122         regression introduced in r56970; see gtest-252.cs.
5123
5124         * loader.c (mono_get_method_constrained): Correctly handle generic
5125         methods; see gtest-253.cs.
5126
5127 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
5128
5129         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
5130
5131 2006-03-04  Martin Baulig  <martin@ximian.com>
5132
5133         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
5134         compute the parent type at runtime, just like we're already doing
5135         it for interfaces.
5136
5137         * reflection.c
5138         (mono_reflection_bind_generic_parameters): Don't compute the
5139         parent type anymore.
5140
5141         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
5142
5143 2006-03-04  Martin Baulig  <martin@ximian.com>
5144
5145         * mono-debug-debugger.h
5146         (mono_debugger_create_notification_function): Allocate memory at
5147         runtime and return a pointer to it.
5148
5149 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
5150
5151         * assembly.c: Fix windows build.
5152         
5153         * assembly.c: Fix build.
5154
5155         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
5156
5157         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
5158         
5159 2006-03-03  Dick Porter  <dick@ximian.com>
5160
5161         * process.c
5162         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
5163         Check parameters before dereferencing them.  Fixes Aaron's part of
5164         bug 77393.
5165
5166 2006-03-03  Raja R Harinath  <rharinath@novell.com>
5167
5168         Fix performance regression.
5169         * loader.c (find_method_in_class): Add 'from_class' argument.
5170         Rename 'klass' argument to 'in_class'.  The signature is compared
5171         against the method in 'in_class', and the corresponding method is
5172         returned from 'from_class'.
5173         (find_method): Walk both 'in_class' and 'from_class' in parallel.
5174         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
5175         type definition and generic instantiation in parallel.
5176         (mono_get_method_constrained): Update to changes.
5177
5178 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
5179
5180         * threads.c: make sure the domain is correct, too when doing
5181         mono_thread_attach ().
5182
5183 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
5184
5185         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
5186         windows. Fixes #77683.
5187
5188 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
5189
5190         * object.h, *: introduced specific way to set elements of an array
5191         of references to be used as write barrier. Still need to audit the
5192         uses of mono_array_addr.
5193
5194 2006-03-01  Miguel de Icaza  <miguel@novell.com>
5195
5196         * object-internals.h: New field to cache the assmebly name, patch
5197         from Tambet Ingo (tambet@ximian.com)
5198
5199 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
5200
5201         * decimal.h, class-internals.h, metadata-internals.h,
5202         file-io.h: mark a few function declarations as internal, to
5203         reduce the number of PLT entries.
5204
5205 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5206
5207         * file-io.c: fix typo in warning message.
5208
5209 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
5210
5211         * loader.c: on unix, lookup the "*A" version of a function
5212         if charset is auto as a second option before failing.
5213
5214 2006-02-28  Raja R Harinath  <rharinath@novell.com>
5215
5216         * class.h (mono_class_inflate_generic_method): Revert to two
5217         argument version.
5218         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
5219         (mono_class_inflate_generic_method_full): Add.
5220         * class.c (mono_class_inflate_generic_method_full): Rename from
5221         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
5222         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
5223         * loader.c, reflection.c: Update to changes.
5224
5225 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
5226
5227         * icall.c: const fixes and small improvements.
5228
5229 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5230
5231         * threadpool.c: for asynchronous connect(), enable the same workaround
5232         for BSD 6 as for the Mac. Fixes bug #77637.
5233
5234 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
5235
5236         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
5237         formatted classes. Fixes #77524.
5238
5239 2006-02-24  Raja R Harinath  <rharinath@novell.com>
5240
5241         * class.c (inflate_generic_type): Add a couple more
5242         micro-optimizations.
5243         (inflate_generic_context): Don't use the 'gmethod' from
5244         'inflate_with'.
5245         (mono_class_inflate_generic_method): If the method has generic
5246         parameters, but the passed-in context doesn't have a 'gmethod',
5247         create one.  Use the possibly simplified generic instantiation
5248         from the declaring class instead of the one passed in.
5249
5250 2006-02-24  Raja R Harinath  <harinath@gmail.com>
5251
5252         Make generic method signature and method header handling lazy.
5253         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
5254         (inflate_generic_header): Likewise.
5255         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
5256         parameter to avoid inflating types.
5257         (mono_get_inflated_method): Empty out.
5258         * class.h (mono_class_inflate_generic_method): Update to changes.
5259         * loader.c (mono_get_method_from_token): Don't parse signature for
5260         generic methods, nor methods of generic classes.
5261         (mono_method_signature): Rename from 'mono_method_signature'.
5262         Inflate signature on demand.
5263         (mono_method_get_header): Inflate method header on demand.
5264         * reflection.c: Update to changes.
5265
5266 2006-02-23  Raja R Harinath  <rharinath@novell.com>
5267
5268         * metadata.c (mono_metadata_inflate_generic_inst): If the
5269         instantiation is closed, don't bother expanding it in the new
5270         context.
5271         * class.c (inflate_generic_class): If the generic instantiation
5272         doesn't change after inflation, return the argument itself.
5273         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
5274         Add bounds checks.
5275         (inflate_generic_context): If neither the generic class nor the
5276         generic method instantiations change, return the original context.
5277         * reflection.c (mono_method_get_object): Do
5278         'mono_get_inflated_method' before accessing the ->klass field.
5279         (inflate_mono_method): Don't create a MonoGenericMethod unless
5280         necessary.
5281         (inflate_method): Don't pass a constructed type as the declaring
5282         type of a methodbuilder.
5283
5284 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
5285
5286         * object.c: fix memory overwrite.
5287
5288 2006-02-22  Dick Porter  <dick@ximian.com>
5289
5290         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
5291         it doesn't work any more.
5292         (mono_threads_request_thread_dump): Fix unused variable warnings.
5293
5294 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
5295
5296         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
5297         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
5298         the public header file.
5299
5300 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
5301
5302         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
5303
5304 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
5305
5306         * class-internals.h, object.c: reduce the size of MonoVTable
5307         and store the interface_offsets array at negative offsets.
5308
5309 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
5310
5311         * metadata.c: tweak table descriptors data structures to reduce
5312         size and runtime relocations.
5313
5314 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
5315
5316         * marshal.c: fix some types and opcodes to be type-safe
5317         in marshaling wrappers.
5318
5319 2006-02-21  Ankit Jain  <jankit@novell.com>
5320
5321         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
5322
5323 2006-02-21  Raja R Harinath  <rharinath@novell.com>
5324
5325         * metadata.c (get_constraints): Relax debugging checks for monodis.
5326
5327 2006-02-21  Ankit Jain  <jankit@novell.com>
5328
5329         * metadata.c (mono_metadata_load_generic_params): Move the code
5330         checking for ambiguous generic params from here to mono/dis/get.c
5331         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
5332
5333 2006-02-21  Raja R Harinath  <harinath@gmail.com>
5334
5335         Fix assertion triggered when compiling nemerle.
5336         * class.c (mono_get_shared_generic_inst): Rename from
5337         get_shared_inst and make non-static.
5338         * loader.c (mono_get_shared_generic_method): New.  Used to create
5339         the MonoGenericContext-equivalent of a MonoGenericContainer.
5340         (mono_get_method_from_token): Initialize the 'context' field of
5341         the created MonoGenericContainer.
5342         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
5343         * metadata.c (get_constraints): Add sanity check.
5344         * class-internals.h: Add new internal methods.
5345
5346         * reflection.c (verify_safe_for_managed_space): New sanity check.
5347         Currently checks that owner-less generic parameters aren't allowed
5348         in managed space.
5349         (mono_type_get_object): Use it.
5350         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
5351         that are now in mono_type_get_object.
5352         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
5353
5354 2006-02-19  Raja R Harinath  <harinath@gmail.com>
5355
5356         * metadata.c (mono_type_create_from_typespec): Rename from
5357         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
5358         argument and caching of types in the generic container.
5359         (unwrap_arrays, find_generic_param): Remove.
5360         * metadata-internals.h: Update.
5361         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
5362
5363 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
5364
5365         * class.c (mono_class_get_exception_for_failure): Fix a warning.
5366
5367         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
5368         return values. Fixes #77581.
5369
5370         * class.c (mono_fnptr_class_get): Switch name and name_space.
5371
5372         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
5373         classes and add support for [In, Out] attributes.
5374         (mono_marshal_free_asany): Ditto. Fixes #77524.
5375
5376 2006-02-18  Raja R Harinath  <harinath@gmail.com>
5377
5378         * class.c (mono_class_from_generic_parameter): Make more robust to
5379         incomplete MonoGenericContainers from monodis.
5380
5381 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
5382
5383         * class-internals.h: added some more exception types.
5384         * class.c, metadata.c: added a few checks to handle missing
5385         types.
5386
5387 2006-02-17  Raja R Harinath  <rharinath@novell.com>
5388
5389         Use owner-less generic-params some more.
5390         * class.c (my_mono_class_from_generic_parameter): Remove.
5391         (mono_class_from_generic_parameter): Handle null image,
5392         param->name and param->owner.
5393         (mono_class_from_mono_type): Update.
5394         (mono_class_create_from_typespec): Remove 'container' parameter.
5395         If that parameter is non-null, the result is always inflated by
5396         'mono_class_get_full' anyway.
5397         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
5398         parameter.
5399         (mono_class_get_full): Update.
5400
5401         * class.c (inflate_generic_type) [GENERICINST]: If the generic
5402         instance is not open, don't bother inflating.
5403         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
5404         parse metadata for inflated classes.
5405         (_mono_class_get): Change GenericContext* parameter to
5406         GenericContainer*.
5407         (mono_class_create_from_typespec): Likewise.  Simplify, and
5408         implement trivially.  All the cases are handled in
5409         mono_class_from_mono_type.  Don't inflate returned class.
5410         (mono_class_get_full): Delegate GENERICINST optimization to
5411         inflate_generic_type.
5412         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
5413
5414 2006-02-16  Dick Porter  <dick@ximian.com>
5415
5416         * socket-io.c (create_object_from_sockaddr): Fix typo.
5417         (create_sockaddr_from_object): Check array lengths before
5418         potentially accessing items off the end.
5419         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
5420         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
5421         (ves_icall_System_Net_Sockets_Socket_Send_internal)
5422         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
5423         length checks to avoid wraparound overflows.
5424         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
5425         contents of the array of sockets
5426         (hostent_to_IPHostEntry2)
5427         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
5428         Check return value of inet_ntop ().
5429         (addrinfo_to_IPHostEntry): Fix typo
5430
5431 2006-02-16  Raja R Harinath  <rharinath@novell.com>
5432
5433         Type metadata parsing doesn't use generic-instantiation information.
5434         * metadata.c (mono_metadata_parse_array_full): Change
5435         MonoGenericContext* parameter to MonoGenericContainer*.
5436         (mono_metadata_parse_type_full): Likewise.
5437         (mono_type_create_from_typespec_full): Likewise.
5438         (mono_metadata_parse_mh_full): Likewise.
5439         (mono_metadata_parse_generic_inst): Likewise.
5440         (do_mono_metadata_parse_generic_class): Likewise.
5441         (do_mono_metadata_parse_type): Likewise.
5442         * metadata-internals.h: Update to changes.
5443         * class.c (mono_class_find_enum_basetype): Likewise.
5444         (mono_class_setup_fields): Likewise.
5445         (mono_class_create_from_typespec): Likewise.
5446         * loader.c (method_from_methodspec): Likewise.
5447         (mono_get_method_from_token): Likewise.
5448         (mono_method_get_header): Likewise.
5449
5450 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
5451
5452         * marshal.c: handle additional GENERICINST case (patch from
5453         Thong Nguyen <tum@veridicus.com>).
5454         Fix a few cases where LDIND_I/STIND_I was used for references.
5455
5456 2006-02-16  Raja R Harinath  <rharinath@novell.com>
5457
5458         * reflection.c (mono_reflection_get_token): Remove unused variable.
5459
5460 2006-02-16  Martin Baulig  <martin@ximian.com>
5461
5462         * reflection.c (mono_reflection_get_token): Add support for fields
5463         in instantiated generic types.
5464
5465         * icall.c
5466         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
5467
5468 2006-02-15  Martin Baulig  <martin@ximian.com>
5469
5470         * icall.c
5471         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
5472         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
5473         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
5474         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
5475
5476 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
5477
5478         * class.c, metadata.c, metadata.h, object.c, icall.c,
5479         marshal.c: changed mono_type_get_underlying_type () to do
5480         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
5481         Fixed handling of instantiated generic valuetypes (bug #75479).
5482
5483 2006-02-15  Raja R Harinath  <rharinath@novell.com>
5484
5485         * metadata.c (mono_metadata_decode_signed_value): Simplify.
5486         Delegate to mono_metadata_decode_value, and work on the returned value.
5487
5488         * icall.c (ves_icall_MonoType_GetGenericArguments):
5489         Add consistency check here too.
5490         
5491 2006-02-15  Ankit Jain  <jankit@novell.com>
5492
5493         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
5494         char/short etc.
5495
5496 2006-02-15  Ankit Jain  <jankit@novell.com>
5497
5498         * metadata.c (mono_metadata_decode_signed_value): New function to decode
5499         signed values, used only for representing lower bounds of arrays.
5500         (mono_metadata_parse_array_full): Use new
5501         mono_metadata_decode_signed_value to decode lower bounds.
5502
5503 2006-02-14  Martin Baulig  <martin@ximian.com>
5504
5505         * reflection.c
5506         (mono_reflection_get_token): Support "MonoGenericMethod" and
5507         "MonoGenericCMethod" and allow generic instances / methods.
5508
5509 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
5510
5511         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
5512         to obtain the terminal size using an ioctl.
5513
5514         * object.c (mono_nullable_init): Revert this as nullable reference
5515         types are not valid.
5516         (mono_nullable_box): Ditto.
5517
5518 2006-02-09  Dick Porter  <dick@ximian.com>
5519
5520         * threads.c (mono_thread_detach): Drop a reference to the thread
5521         we're detaching.
5522
5523 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
5524
5525         * object.c (mono_nullable_init): Handle nullable reference types.
5526         (mono_nullable_box): Ditto. Fixes #77446.
5527
5528 2006-02-07  Martin Baulig  <martin@ximian.com>
5529
5530         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
5531
5532 2006-02-07  Ankit Jain  <jankit@novell.com>
5533
5534         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
5535         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
5536         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
5537         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
5538         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
5539         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
5540
5541 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
5542
5543         * class.c (mono_class_create_generic): Set type_token as well.
5544
5545         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
5546         compatible with MS.
5547
5548 2006-02-02  Martin Baulig  <martin@ximian.com>
5549
5550         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
5551         has never been used so far.
5552
5553 2006-02-02  Martin Baulig  <martin@ximian.com>
5554
5555         * mono-debug-debugger.h: Changed comment at the top of this file;
5556         the header is not installed, but it's safe to #include it from
5557         within the JIT.
5558
5559         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
5560         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
5561
5562 2006-02-02  Martin Baulig  <martin@ximian.com>
5563
5564         * mono-debug.h
5565         (MonoSymbolTable): Removed the `metadata_info' field.
5566
5567         * mono-debug.c
5568         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
5569
5570         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
5571         (mono_debugger_add_builtin_types): Removed.
5572         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
5573         (mono_debugger_create_notification_function): We now operate on a
5574         pre-allocated area; take a `gpointer' and return `void'.
5575
5576         * mono-debug-debugger.c
5577         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
5578         (mono_debugger_add_builtin_types): Removed.
5579
5580 2006-02-02  Martin Baulig  <martin@ximian.com>
5581
5582         * threads.c (mono_debugger_create_all_threads): New public method.
5583
5584 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
5585
5586         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
5587         breaks on several platforms.
5588
5589 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
5590
5591         * assembly.c: the VS.NET build doesn't supply default values for
5592         MONO_ASSEMBLIES and MONO_CFG_DIR.
5593
5594 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
5595
5596         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
5597         helper function.
5598
5599         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
5600
5601         * loader.c (method_from_memberref): Fix a warning.
5602
5603         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
5604
5605         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
5606         with explicit layout. Fixes #77433.
5607
5608 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
5609
5610         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
5611         max_interface_id is initialized before using it. Fixes #77398.
5612         (ves_icall_Type_GetInterfaces): Ditto.
5613
5614 2006-01-30  Raja R Harinath  <rharinath@novell.com>
5615
5616         * metadata.c (mono_metadata_parse_method_signature_full): Don't
5617         allocate memory for parameter attributes when parsing memberref
5618         signatures.
5619         * loader.c (mono_loader_set_error_method_load): Don't warn.
5620         (method_from_memberref): Ensure MissingMethodException gets thrown
5621         if method is not found.  Make warning more informative.
5622
5623 2006-01-29  Raja R Harinath  <harinath@gmail.com>
5624
5625         Fix #77397
5626         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
5627         return true if is byref.
5628         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
5629         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
5630         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
5631
5632 2006-01-27  Raja R Harinath  <rharinath@novell.com>
5633
5634         Fix tests/find-method.2.il
5635         * loader.c (find_method, find_method_in_class): Remove is_inflated
5636         argument.  Revert 2006-01-18 change.
5637         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
5638         is generic, search for method in its generic definition.
5639         * class.c (mono_class_setup_vtable_general): Print generic
5640         arguments of generic types in debugging printf.
5641
5642 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
5643
5644         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
5645
5646         * threads.c (mono_threads_request_thread_dump): New helper function.
5647
5648 2006-01-25  Raja R Harinath  <rharinath@novell.com>
5649
5650         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
5651
5652 2006-01-25  Ankit Jain  <jankit@novell.com>
5653
5654         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
5655         move definition to ..
5656         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
5657         
5658 2006-01-25  Ankit Jain  <jankit@novell.com>
5659             Raja R Harinath  <rharinath@novell.com>
5660
5661         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
5662         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
5663         as necessary.
5664
5665 2006-01-25  Martin Baulig  <martin@ximian.com>
5666
5667         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
5668         `MonoDebuggerThread' into debug-debugger.c.
5669
5670 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
5671
5672         * profiler.c: fix printing of data.
5673
5674 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
5675
5676         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
5677           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
5678
5679 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
5680
5681         * object.c: fix deadlock related to string interning.
5682
5683 2006-01-23  Martin Baulig  <martin@ximian.com>
5684
5685         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
5686
5687         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
5688
5689 2006-01-23  Martin Baulig  <martin@ximian.com>
5690
5691         * mono-debug.h: Moved the prototypes of some functions which are
5692         used by the JIT here from mono-debug-debugger.h.
5693
5694 2006-01-21  Martin Baulig  <martin@ximian.com>
5695
5696         * Makefile.am: Don't install mono-debug-debugger.h.
5697
5698 2006-01-21  Martin Baulig  <martin@ximian.com>
5699
5700         * mono-debug-debugger.h: Enforce the private status of this header
5701         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
5702         Moved some stuff from mono-debugger-jit-wrapper.h here.
5703
5704 2006-01-20  Raja R Harinath  <rharinath@novell.com>
5705
5706         * class.c (mono_class_from_typeref): Add a sanity test to help
5707         catch lack of assembly load/search hooks.
5708
5709 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
5710
5711         * marshal.c (emit_struct_conv): Relax the fields with same offset
5712         check even more. Fixes #77230.
5713
5714 2006-01-18  Martin Baulig  <martin@ximian.com>
5715
5716         * loader.c (find_method_in_class): Added `gboolean is_inflated'
5717         argument; if false, we compare the uninstantiated signatures.
5718         (method_from_memberref): Compare the uninstantiated signatures;
5719         fixes #76417.
5720
5721 2006-01-18  Robert Jordan  <robertj@gmx.net>
5722
5723         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
5724         Clear the weak link. Fixes bug #77170.
5725
5726         * gc.c (mono_gchandle_free):
5727         Reflect *-gc.c changes (tiny optimization).
5728
5729 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
5730
5731         * metadata.c (mono_metadata_signature_dup): Applied patch from
5732         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
5733         Fixes #77288.
5734
5735 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
5736
5737         * marshal.c (emit_struct_conv): Allow fields with the same offset when
5738         marshalling from native to managed code. Fixes #77230.
5739
5740 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5741
5742         * threadpool.c: fix problem (Mac only) when more than one asynchronous
5743         connect. Fixes bug #77020.
5744
5745 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
5746
5747         * class.c: fixed id assignement for nested interfaces (bug #77275).
5748         Added also better info for --print-vtable debugging.
5749
5750 2006-01-12  Martin Baulig  <martin@ximian.com>
5751
5752         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
5753         interfaces on-the-fly; fixes #76625.
5754
5755         * class-internals.h
5756         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
5757         don't need that anymore.
5758
5759 2006-01-12  Miguel de Icaza  <miguel@novell.com>
5760
5761         * socket-io.c
5762         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
5763         To avoid initing the nested_classes when not needed I turned the
5764         PeerCredData as a toplevel internal class, as it has to be shared
5765         anyways. 
5766
5767         Fixes the CASA issue.
5768
5769 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
5770
5771         * domain.c: Accessors for MonoJitInfo
5772
5773         * profiler-private.h: Add jitinfo to the end jit hook
5774
5775         * profiler.[ch]: Define new hooks, called after jitting which give
5776         the MonoJitInfo that was compiled
5777
5778 2006-01-10  Martin Baulig  <martin@ximian.com>
5779
5780         * class.c (mono_class_setup_events): Add support for generic
5781         classes; fixes #76440.
5782
5783 2006-01-06  Raja R Harinath  <rharinath@novell.com>
5784
5785         Fix #77160.
5786         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
5787         on passed-in method.
5788
5789 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
5790
5791         * object.c (mono_runtime_invoke_array): Add Nullable support.
5792
5793         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
5794
5795 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
5796
5797         * file-io.c: Don't consider sockets as directory and avoid an endless
5798         loop. Fix bug #76966.
5799
5800 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
5801
5802         * object.c (mono_nullable_init): New helper function.
5803         (mono_nullable_box): Ditto.
5804
5805         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
5806
5807         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
5808
5809         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
5810         
5811 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
5812
5813         * class.c (mono_class_is_assignable_from): Make T assignable to 
5814         Nullable<T>.
5815
5816 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
5817
5818         * appdomain.c: Bump corlib version to 46.
5819         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
5820         serialization purpose) and changed ves_icall_System_Reflection_
5821         Assembly_get_code_base signature to accept a boolean (to escape, or 
5822         not, the assembly code base).
5823
5824 2005-12-23  Dick Porter  <dick@ximian.com>
5825
5826         * icall.c: 
5827         * threads-types.h: 
5828         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
5829         CreateEvent icall now returns "created" boolean parameter.
5830
5831 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
5832
5833         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
5834         #76967.
5835
5836         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
5837         when attr_klass is an interface. Fixes #77045.
5838
5839 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
5840
5841         * marshal.c (emit_struct_conv): Fix previous patch.
5842         
5843         * marshal.c (emit_struct_conv): Add a check for fields with the same
5844         offset.
5845
5846 2005-12-20  Raja R Harinath  <rharinath@novell.com>
5847
5848         Fix regression in Mono.C5.
5849         * class.c (mono_class_create_generic): If 'klass' is an interface
5850         set up the interface offsets.
5851         (mono_class_is_assignable_from): Don't throw away generic arguments.
5852
5853 2005-12-19  Raja R Harinath  <rharinath@novell.com>
5854
5855         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
5856         type parameters.
5857
5858 2005-12-15  Raja R Harinath  <rharinath@novell.com>
5859
5860         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
5861         dead store.
5862         (do_mono_metadata_parse_generic_class): Don't pass the current
5863         generic context when parsing the type being instantiated: it
5864         cannot use it, anyway.
5865
5866         * loader.c (method_from_memberref): Don't inflate a signature if
5867         it doesn't contain any type parameters.
5868
5869 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
5870
5871         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
5872
5873 2005-12-14  Martin Baulig  <martin@ximian.com>
5874
5875         * class.c
5876         (mono_type_get_name_recurse): Don't return null for type
5877         parameters and open generic classes.
5878         (mono_class_setup_methods): Don't exclude generic instances.
5879         (mono_get_unique_iid): Use different IDs for different
5880         instantiations of the same generic type.
5881         (mono_class_setup_vtable): Only use setup_generic_vtable() for
5882         open generic instances; create a normal vtable for closed generic
5883         instances.
5884         (mono_class_setup_vtable_general): We're now also called for
5885         closed generic instances.
5886
5887         * reflection.c
5888         (mono_reflection_bind_generic_parameters): Correctly use
5889         mono_metadata_lookup_generic_inst() everywhere.
5890
5891 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
5892
5893         * object.c (mono_class_create_runtime_vtable): Call 
5894         mono_class_setup_vtable ().
5895
5896         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
5897         function.
5898         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
5899         #76959.
5900
5901         * loader.c (mono_loader_set_error_type_load): Print the type load
5902         warnings to the console so they are more visible to the user.
5903         (mono_loader_set_error_method_load): Ditto.
5904
5905         * reflection.c (ensure_runtime_vtable): Revert the last change as it
5906         is still broken.
5907         
5908         * reflection.c (ensure_runtime_vtable): Fix build.
5909
5910         * reflection.c (ensure_runtime_vtable): Disable an optimization which
5911         doesn't work in all cases.
5912
5913 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
5914
5915         * object.c (mono_array_new_full): Treat a single dimensional array
5916         with 0 lower bounds as an szarray. Fixes #76973.
5917
5918         * reflection.c (custom_attr_visible): Really fix this.
5919
5920 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
5921
5922         * reflection.c (custom_attr_visible): Allow nested public attributes
5923         as well.
5924
5925         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
5926         interface check.
5927
5928 2005-12-12  Raja R Harinath  <harinath@gmail.com>
5929
5930         * class.c (set_generic_param_owner): Delete.
5931         (mono_class_create_from_typedef): Don't set ->owner field of
5932         generic parameters to "param containers" of enclosing classes.
5933         * reflection.c (mono_reflection_initialize_generic_parameter):
5934         Likewise.
5935
5936 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
5937
5938         * reflection.c (custom_attr_visible): Fix build.
5939
5940 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
5941
5942         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
5943         private attributes.
5944         
5945         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
5946         handling of null parameter defaults.
5947
5948 2005-12-09  Raja R Harinath  <rharinath@novell.com>
5949
5950         * class.c (mono_class_from_generic_parameter): Don't set
5951         klass->generic_container.
5952         (my_mono_class_from_generic_parameter): Likewise.
5953
5954 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
5955
5956         * reflection.c (load_public_key): Fix a warning.
5957         (method_encode_code): Fix unaligned accesses.
5958
5959 2005-12-07  Martin Baulig  <martin@ximian.com>
5960
5961         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
5962
5963         * reflection.c
5964         (write_generic_param_entry): Encode our custom attrs.
5965
5966         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
5967
5968 2005-12-07  Martin Baulig  <martin@ximian.com>
5969
5970         * reflection.c (encode_new_constraint): Removed; we don't use the
5971         `NewConstraintAttribute' anymore.
5972
5973 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
5974
5975         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
5976         not fire a TypeResolve event when Assembly.GetType () is called.
5977
5978 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
5979
5980         Beginning of support for nullable types in the runtime. Parts of
5981         this patch are from Martin.
5982
5983         * appdomain.c (MONO_CORLIB_VERSION): Bump
5984
5985         * domain.c (mono_init_internal): get the nullable type
5986
5987         * class.c (mono_class_is_nullable): New method
5988         (mono_class_get_nullable_param): New mehod
5989         (mono_class_create_generic): In types T? set cast_class to T
5990
5991         * class-internals.h (MonoDefaults): new nullable default class
5992         (mono_class_get_nullable_param, mono_class_get_nullable_param):
5993         new methods.
5994
5995 2005-12-05  Raja R Harinath  <rharinath@novell.com>
5996
5997         * metadata.c (select_container): New.  Refactor code to select the
5998         appropriate GenericContainer given the type of generic parameter
5999         we are looking for.
6000         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
6001         not a MonoGenericContext.  Use select_container.  Update parameters.
6002         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
6003         and MONO_TYPE_MVAR.
6004         (unwrap_arrays): Remove duplicate tests.
6005         (find_generic_param): Rename from 'has_same_context'.  Now walks a
6006         generic instantiated class to find any arguments that are generic
6007         parameters.
6008         (mono_type_create_from_typespec_full): Use find_generic_param to
6009         avoid evicting some generic instantiations from the typespec
6010         cache.
6011
6012 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
6013
6014         * reflection.c: fixed writing of doubles on ARM FPA.
6015
6016 2005-12-02  Robert Jordan  <robertj@gmx.net>
6017
6018         * icall.c: Fixed EventInfo.ReflectedType (#76829).
6019
6020 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6021
6022         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
6023         least on SUSE 10 they are not the same (on debian, they are just the
6024         same thing).
6025
6026 2005-12-01  Raja R Harinath  <rharinath@novell.com>
6027
6028         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
6029         DeclaringType for VARs and MVARs.
6030         * class.c (set_generic_param_owner): Fix initialization of owner
6031         fields.
6032
6033 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
6034
6035         * icall.c: fixed Enum.ToObject() to correctly convert the values.
6036
6037 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6038
6039         * threadpool.c: workaround for a bug that shows up on the Mac:
6040         select()+connect() on a blocking socket is not like it should
6041         be, so we proceed to connect() in that case, wasting the I/O
6042         threadpool thread until connect succeedes. Fixes bug #75436.
6043
6044 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6045
6046         * threadpool.c: fix typo when setting file descriptor states.
6047
6048 2005-11-28  Raja R Harinath  <rharinath@novell.com>
6049
6050         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
6051         * metadata.c (mono_metadata_parse_method_signature_full): Don't
6052         create a temporary signature container.
6053         (mono_metadata_parse_generic_param): Update to changes.
6054         (mono_type_create_from_typespec_full): Update to changes.
6055         * loader.c (method_from_memberref): Don't use a
6056         MonoGenericContainer while parsing a memberref signature.
6057         (method_from_methodspec): Remove dead-store of the 'container'
6058         variable.  It's overwritten before use.
6059
6060         * metadata.c (mono_type_create_from_typespec_full): Make debugging
6061         checks tighter.
6062         (mono_metadata_parse_generic_param): Likewise.
6063         * loader.c (find_method_in_class): Does not need a
6064         MonoGenericContainer.  Use 'mono_method_signature' rather than
6065         'mono_method_signature_full'.
6066         (find_method, mono_get_method_constrained, method_from_memberref):
6067         Update to changes.
6068
6069         * metadata.c (mono_type_create_from_typespec_full): Ensure that
6070         owner-less generic-parameters are never evicted from the typespec
6071         cache.
6072
6073         * loader.c (method_from_memberref): Don't use the current context
6074         when parsing signatures.
6075         (method_from_methodspec, mono_get_method_from_token): Update to changes.
6076
6077         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
6078         side-effects in g_assert.
6079         * loader.c (mono_get_method_from_token): Resolve klass earlier so
6080         that we don't potentially lose information.
6081
6082 2005-11-26  Dick Porter  <dick@ximian.com>
6083
6084         * icall.c:
6085         * threads.c: icalls to implement basic (ie, not named)
6086         System.Threading.Semaphore.
6087
6088 2005-11-24  Dick Porter  <dick@ximian.com>
6089
6090         * process.c
6091         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
6092         Use GetProcessId() if it's available.
6093
6094 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
6095
6096         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
6097
6098 2005-11-23  Raja R Harinath  <rharinath@novell.com>
6099             Ankit Jain  <jankit@novell.com>
6100
6101         * loader.c (mono_get_method_from_token): Initialize 'method' field
6102         of all generic parameters before parsing the signature.  Remove
6103         code that "fixed"-up MVAR references.
6104
6105 2005-11-23  Ankit Jain  <jankit@novell.com>
6106
6107         * metadata.c (mono_metadata_has_generic_params):
6108         (mono_metadata_load_generic_param_constraints):
6109         (mono_metadata_load_generic_params): Move duplicate code ...
6110         (mono_metadata_get_generic_param_row): ... here. Returns the
6111         first row-id in GenericParam table for a given owner (token).
6112         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
6113         prototype.
6114
6115 2005-11-23  Raja R Harinath  <rharinath@novell.com>
6116             Ankit Jain  <jankit@novell.com>
6117
6118         * metadata.c (mono_metadata_class_equal): Pass signature_only when
6119         comparing VARs too.
6120         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
6121         type->data.generic_param only if the type is an MVAR.
6122         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
6123         leak owner-less VARs and MVARs into managed space.
6124
6125 2005-11-21  Martin Baulig  <martin@ximian.com>
6126
6127         * class-internals.h
6128         (MonoMethod): Moved the `generic_container' here from
6129         `MonoMethodNormal' since we now also need it for
6130         `MonoMethodPInvoke';
6131         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
6132         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
6133         an union containing both `MonoMethodNormal' and
6134         `MonoMethodPInvoke'.
6135
6136         * loader.c
6137         (mono_get_method_from_token): Allow implementing generic methods
6138         as interncalls.
6139
6140         * threads.c
6141         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
6142         icall.
6143
6144 2005-11-17  Dick Porter  <dick@ximian.com>
6145
6146         * icall.c: 
6147         * process.h: 
6148         * process.c: Split the Process Start_internal icall into
6149         ShellExecuteEx_internal and CreateProcess_internal, which are
6150         called depending on whether UseShellExecute is true.  Fixes bug
6151         76670.
6152
6153         * appdomain.c (MONO_CORLIB_VERSION): Incremented
6154
6155 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
6156
6157         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
6158         'msize' parameters, use the information in 'mspec' instead.
6159         (emit_object_to_ptr_conv): Ditto.
6160
6161         * marshal.c (emit_struct_conv): Handle explicit layout structs with
6162         fields out of order. Fixes #76733.
6163
6164 2005-11-17  Ankit Jain  <jankit@novell.com>
6165
6166         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
6167
6168 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
6169
6170         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
6171           bug #76575.
6172
6173 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
6174
6175         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
6176         for types with non-auto layout. Fixes #76717.
6177
6178 2005-11-16  Ankit Jain  <jankit@novell.com>
6179
6180         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
6181         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
6182         if generic_context is null.
6183           (mono_metadata_generic_param_equal): param->owner can be null.
6184           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
6185         null.
6186
6187 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
6188
6189         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
6190         the correct value.
6191
6192 2005-11-15  Martin Baulig  <martin@ximian.com>
6193
6194         * object.c (set_value): Use mono_class_from_mono_type() instead of
6195         the hack for generic instances; fixes #76136.
6196
6197 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
6198
6199         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
6200         fields.
6201
6202         * image.c (load_metadata_ptrs): Initialize the new fields.
6203
6204         * reflection.c (create_dynamic_mono_image): Ditto.
6205
6206         * reflection.c (build_compressed_metadata): Use the new fields.
6207
6208         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
6209         icall.
6210
6211         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
6212         icall.
6213         
6214 2005-11-15  Ankit Jain  <jankit@novell.com>
6215             Raja R Harinath  <harinath@gmail.com>
6216
6217         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
6218         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
6219         new per-generic_container cache if the cached MonoType's context matches
6220         the current context.
6221           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
6222         to the expected context.
6223           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
6224
6225 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6226
6227         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
6228         we changed the signature of an icall.
6229         * icall.c: Modify to mono_double_ParseImpl return true/false 
6230         depending on the success, instead of throwing the exception. This will
6231         help us in Double.TryParse methods.
6232         
6233 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
6234
6235         * marshal.c (emit_marshal_object): Throw an exception when
6236         marshalling 'object' instead of crashing. Fixes #76696.
6237
6238 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
6239
6240         * class-internals.h: Add prototype for mono_type_get_full_name ().
6241
6242 2005-11-11  Dick Porter  <dick@ximian.com>
6243
6244         * threads.c (mono_thread_manage): Make sure the main thread has
6245         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
6246
6247 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
6248
6249         * loader.c (mono_loader_set_error_type_load): Log a warning to the
6250         console about the missing type.
6251         (mono_loader_set_error_method_load): Ditto.
6252
6253 2005-11-09  Miguel de Icaza  <miguel@novell.com>
6254
6255         * mono-config.c (mono_get_config_dir): Set the system defaults if
6256         none is specified.
6257
6258         * assembly.c (mono_set_dirs): New API entry point to set the
6259         assembly and the config directory in one call
6260
6261 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
6262
6263         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
6264         the ftnptr was created from a delegate in a domain other than the
6265         current domain. Fixes #75377.
6266
6267         * exception.h exception.c: Add mono_get_exception_not_supported ().
6268
6269 2005-11-08  Martin Baulig  <martin@ximian.com>
6270
6271         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
6272
6273 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
6274
6275         * security-manager.h: Added definitions to deal with strongname key 
6276         pairs bigger (and smaller) than 1024 bits.
6277         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
6278         adjust wrt the public key length being used.
6279
6280 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
6281
6282         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
6283           Windows build (r51396-51397).
6284
6285 2005-11-03  Martin Baulig  <martin@ximian.com>
6286
6287         * class.c (mono_class_setup_vtable_general): Also add generic
6288         methods to the vtable; fixes #76581.
6289
6290 2005-11-01  Miguel de Icaza  <miguel@novell.com>
6291
6292         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
6293         sure that we lookup GetString method from the System.Text.Encoding
6294         class, not the derived class or we get an empty method.
6295
6296         Fixed class #76612.
6297
6298 2005-10-25  Miguel de Icaza  <miguel@novell.com>
6299
6300         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
6301         if it has been previously set (embedders). 
6302
6303         Make mono_set_rootdir available also on Unix.
6304
6305 005-10-24  Robert Jordan  <robertj@gmx.net>
6306
6307         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
6308
6309 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
6310
6311         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
6312         only calls which are made to native code use this flag.
6313
6314         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
6315
6316 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
6317
6318         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
6319         Add support for FieldBuilders.
6320
6321 2005-10-29  Martin Baulig  <martin@ximian.com>
6322
6323         * mono-debug.c
6324         (mono_debug_using_mono_debugger): New public method; returns
6325         whether we're running inside the debugger.
6326
6327 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
6328
6329         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
6330         for Method/Constructor/FieldBuilders.
6331
6332 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
6333
6334         * reflection.c (module_add_cattrs): Save custom attributes for global methods
6335         and fields as well.
6336
6337 2005-10-26  Martin Baulig  <martin@ximian.com>
6338
6339         * mono-debug-debugger.c
6340         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
6341
6342 2005-10-24  Raja R Harinath  <harinath@gmail.com>
6343
6344         * icall.c (base64_to_byte_array): Don't pass an out-of-range
6345         integer to isspace.
6346
6347 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
6348
6349         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
6350         when passing valuetypes byref. Fixes #76502.
6351
6352 2005-10-19  Jackson Harper  <jackson@ximian.com>
6353
6354         * profiler.c: Don't put a . in front of types that are not in a
6355         namespace.
6356
6357 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
6358
6359         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
6360
6361 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
6362
6363         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
6364         #76436.
6365         (mono_marshal_get_ldflda_wrapper): Fix a warning.
6366
6367 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6368
6369         * assembly.c metadata-internals.h icall.c: Define an additional
6370         parameter for mono_assembly_name_parse_full, so we can avoid creating
6371         S.R.AssemblyName.Version when no version info wasn't passed.
6372         
6373 2005-10-09  Miguel de Icaza  <miguel@novell.com>
6374
6375         * class.c (mono_type_get_full_name): Reimplement method that was
6376         removed. 
6377
6378         * image.c: Some docs
6379
6380 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
6381
6382         * profiler.c (output_newobj_profile): Fix printing of Total memory
6383         on x86.
6384
6385 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
6386
6387         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
6388
6389 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
6390
6391         * threads.c: remove debug output.
6392
6393 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
6394
6395         * threads.c (mono_thread_manage): Fix crashes if more than 64
6396         threads need to be aborted. Hopefully fixes #75899.
6397
6398         * assembly.c (mono_stringify_assembly_name): New helper function.
6399
6400         * class.c: Use mono_stringify_assembly_name instead of the similar
6401         static function.
6402
6403         * assembly.h assembly.c: Add support for calling a postload search 
6404         hook if an assembly cannot be loaded.
6405
6406         * appdomain.c: Register new search hooks which call the AssemblyResolve
6407         events in AppDomain. Fixes #75231
6408
6409 2005-10-07  Martin Baulig  <martin@ximian.com>
6410
6411         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
6412         methods without debug info.
6413
6414 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
6415
6416         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
6417         wrappers.
6418
6419 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6420
6421         * file-io.c: now that we return symlinks, use lstat and, when the file
6422         is a symbolic link, stat, to get the file attributes. Also avoid the
6423         conversion to/from utf16/external.
6424
6425 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
6426
6427         * class.c (mono_class_layout_fields): Compute klass->has_references
6428         correctly if an embedded valuetype is not yet initialized. Fixes
6429         #76331.
6430
6431 2005-10-04  Martin Baulig  <martin@ximian.com>
6432
6433         * metadata.c
6434         (mono_metadata_load_generic_param_constraints): New public
6435         function; splitted the constraints loading out from
6436         mono_metadata_load_generic_params().
6437
6438         * class.c (mono_class_create_from_typedef): Call
6439         mono_metadata_load_generic_param_constraints() after setting up
6440         the type and creating our parent; fixes #75329.
6441
6442 2005-10-04  Martin Baulig  <martin@ximian.com>
6443
6444         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
6445         non-dynamic parent classes.
6446
6447 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
6448
6449         * file-io.c : win32 build fix (ETXTBSY seems not found).
6450
6451 2005-10-04  Martin Baulig  <martin@ximian.com>
6452
6453         * reflection.c
6454         (mono_image_get_methodspec_token): Make the cache actually work;
6455         fixes #75974.
6456
6457 2005-10-04  Martin Baulig  <martin@ximian.com>
6458
6459         * class.c (mono_class_name_from_token): Removed the unneccessary
6460         `MonoGenericContext *' argument.
6461
6462 2005-10-04  Martin Baulig  <martin@ximian.com>
6463
6464         * loader.c
6465         (method_from_methodspec): Make the caching work again; fixes the
6466         performance regression from #76262.
6467
6468 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6469
6470         * file-io.c:
6471         * file-io.h:
6472         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
6473         GetFileSystemEntries that performs the same work but without going
6474         into io-layer, locking, etc.
6475
6476 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
6477
6478         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
6479         ThreadState_Stopped as well. Fixes #76047.
6480
6481 2005-09-29  Martin Baulig  <martin@ximian.com>
6482
6483         * class.c
6484         (inflate_generic_context): If the new context has a `gmethod', set
6485         its `container' that that gmethod's `container'.
6486
6487         * metadata.c
6488         (mono_metadata_parse_generic_param): Simplify things;
6489         `generic_container = generic_context->container;' is just fine.
6490
6491         * loader.c (method_from_methodspec): Code cleanups.
6492
6493 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
6494
6495         * decimal.c: fix warning (and let gcc generate correct
6496         code on ARM with optimizations).
6497
6498 2005-09-28  Martin Baulig  <martin@ximian.com>
6499
6500         * loader.c
6501         (method_from_memberref): Added `MonoGenericContext *class_context'
6502         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
6503         (method_from_methodspec): If we're a memberref, use the enclosing
6504         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
6505
6506 2005-09-28  Martin Baulig  <martin@ximian.com>
6507
6508         * object.c (mono_runtime_invoke_array): Added support for
6509         MONO_TYPE_GENERICINST; fixes #75917.
6510
6511 2005-09-27  Martin Baulig  <martin@ximian.com>
6512
6513         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
6514         `k->byval_arg.type' to determine the actual type.
6515
6516         * loader.c (method_from_methodspec): Removed some hacks.
6517
6518 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
6519
6520         * class-internals.h (mono_field_is_deleted): Do the test for
6521         rtspecialname before we check the actual name of the field. This
6522         prevents us from dereferencing a pointer into the string table,
6523         saving us from accessing a few pages
6524
6525         * *.c: Replace the use of {Enter,Leave}CriticalSection with
6526         macros. This will allow a deadlock debugger to easily be plugged
6527         in.
6528
6529 2005-09-27  Martin Baulig  <martin@ximian.com>
6530
6531         * loader.c (method_from_methodspec): Create a "signature"
6532         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
6533
6534 2005-09-27  Martin Baulig  <martin@ximian.com>
6535
6536         * class.c
6537         (inflate_generic_class): Correctly set the new context's
6538         container.
6539
6540         * loader.c
6541         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
6542         instead of a `MonoGenericContext *'.
6543         (mono_method_signature_full): Take a `MonoGenericContainer *'
6544         instead of a `MonoGenericContext *'.
6545
6546         * metadata.c
6547         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
6548         instead of a `MonoGenericContext *'.
6549         (mono_metadata_parse_method_signature_full): Likewise.
6550
6551 2005-09-26  Martin Baulig  <martin@ximian.com>
6552
6553         * class.c
6554         (mono_class_from_generic_parameter): Set `klass->generic_container'
6555         (mono_class_from_generic_parameter): Likewise.
6556         (mono_bounded_array_class_get): We inherit the generic container
6557         from the element class.
6558
6559         * loader.c
6560         (find_method, find_method_in_class): Take a `MonoGenericContext *'
6561         argument rather than computing it here.
6562         (method_from_memberref): Correctly set the generic context before
6563         parsing the signature.  Fixes #75681.
6564
6565 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
6566
6567         * object.c (mono_class_has_special_static_fields): Fix warnings.
6568
6569 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6570
6571         * assembly.c: Add parse_public_key function, to
6572         par the public keys. Also added mono_assembly_name_parse_full,
6573         to define it the parsed key should be freed or not.
6574         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
6575         to parse a long format assembly name.
6576         * metadata-internals.h: Keep mono_assembly_name_parse_full as
6577         private, since calling it to preserve the key requires
6578         freeing it manually.
6579         
6580 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
6581
6582         * locales.c : removed HAVE_ICU part.
6583
6584 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
6585
6586         * object.c (mono_class_create_runtime_vtable): Avoid calling 
6587         field_is_special_static if the klass has no special static fields.
6588
6589         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
6590         (MonoCachedClassInfo): Likewise.
6591
6592         * object.c (mono_class_has_special_static_fields): New helper function.
6593
6594 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6595
6596         * class.c (mono_class_create_from_typedef): Don't call 
6597         interfaces_from_typedef_full for enums.
6598         (mono_class_create_from_typedef): Compute the base types of enums directly
6599         without calling mono_class_setup_fields ().
6600         (mono_class_find_enum_basetype): New helper function.
6601
6602         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
6603         one place inside the string heap.
6604         
6605 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
6606
6607         * class.c: locking fixes, code cleanups, some docs added.
6608         Allocate some data structures in the image mempool.
6609
6610 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6611
6612         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
6613         the example code.
6614         
6615 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
6616
6617         * class-internals.h, class.c, reflection.c: reduce memory taken by
6618         MonoClass.
6619
6620 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
6621
6622         * metadata.c, metadata.h, loader.h: documentation updates, code and
6623         API cleanups.
6624
6625 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6626
6627         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
6628         the example code.
6629
6630         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
6631         page faults caused by the runtime while reading metadata.
6632
6633 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6634
6635         * socket-io.c: the field names were changed 3 months ago and no one
6636         realized until bug #76077 got filed!
6637
6638 2005-09-20  Martin Baulig  <martin@ximian.com>
6639
6640         * icall.c (assembly_icalls): Removed some unused debugger icalls.
6641
6642 2005-09-20  Martin Baulig  <martin@ximian.com>
6643
6644         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
6645         write the rank into the class entry.
6646
6647 2005-09-20  Martin Baulig  <martin@ximian.com>
6648
6649         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
6650
6651 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
6652
6653         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6654
6655         * icall.c (custom_attrs_defined_internal): New icall.
6656
6657         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
6658         function.
6659         (mono_custom_attrs_construct_by_type): New helper function.
6660
6661 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
6662
6663         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
6664         terminate the resulting string. Fixes #76123.
6665
6666 2005-09-16  Martin Baulig  <martin@ximian.com>
6667
6668         * mono-debug.c
6669         (mono_debug_add_method): Ignore inflated methods for the moment.
6670
6671 2005-09-14  Martin Baulig  <martin@ximian.com>
6672
6673         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
6674
6675 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
6676
6677         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
6678         return a success/failure indication.
6679         (mono_metadata_interfaces_from_typedef_full): Ditto.
6680         (get_constraints): Ditto.
6681
6682 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
6683
6684         * marshal.c (emit_marshal_array): Fix handling of null arrays.
6685         
6686         * marshal.c (emit_marshal_array): Add support for returning string
6687         arrays from delegates. Fixes #76063.
6688
6689         * marshal.c: Use the emit_ldloc/stloc macros where possible.
6690
6691 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
6692
6693         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
6694         icall.
6695
6696 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
6697
6698         * reflection.c icall.c: Fix after mono_get_exception_type_load
6699         signature change.
6700
6701         * assembly.c (mono_assembly_get_assemblyref): New helper function.
6702         (mono_assembly_load_reference): Use the new helper.
6703
6704         * class-internals.h (MonoLoaderError): New structure containing 
6705         information about type loading errors.
6706
6707         * class-internals.h loader.c: Add APIs to store per-thread loader
6708         error information.
6709
6710         * loader.c class.c: Set the loader error if needed.
6711
6712         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
6713
6714 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
6715
6716         * decimal.c: fixed to handle the broken ARM fp format.
6717
6718 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
6719
6720         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
6721         broken.
6722
6723 2005-09-06  Martin Baulig  <martin@ximian.com>
6724
6725         * domain.c (supported_runtimes): Added v2.0.50727.
6726
6727 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
6728
6729         * culture-info.h: reduce the size of some structures.
6730
6731 2005-09-05  Martin Baulig  <martin@ximian.com>
6732
6733         Reflect latest API changes in the August CTP.
6734
6735         * icall.c
6736         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
6737         ("MonoType.HasGenericArguments"): Removed.
6738         ("MonoMethod.BindGenericParameters"): Renamed to
6739         "MakeGenericMethod".
6740         ("MethodBuilder.BindGenericParameters"): Renamed to
6741         "MakeGenericMethod".    
6742
6743 2005-09-05  Martin Baulig  <martin@ximian.com>
6744
6745         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
6746
6747 2005-09-05  Martin Baulig  <martin@ximian.com>
6748
6749         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6750
6751         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
6752         generic_container is non-NULL.
6753
6754 2005-09-05  Martin Baulig  <martin@ximian.com>
6755
6756         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6757
6758         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
6759
6760 2005-08-29  Michal Moskal  <malekith@nemerle.org>
6761
6762         * reflection.c (encode_locals,
6763         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
6764         for large generic types.
6765
6766 2005-09-05  Martin Baulig  <martin@ximian.com>
6767
6768         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6769
6770         * class.c (mono_dup_array_type): New public method.
6771         (mono_metadata_signature_deep_dup): New public method.
6772         (dup_type): Correctly duplicate array and function types.
6773
6774 2005-09-05  Martin Baulig  <martin@ximian.com>
6775
6776         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6777
6778         * reflection.c (get_default_param_value_blobs): Handle generic types
6779         and generic methods.
6780
6781 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
6782
6783         * class.c: Fixed error reporting (method/class were inversed) for 
6784         inheritance demands.
6785         * security-manager.c|h: Added the AppDomain when calling the managed
6786         System.Security.SecurityManager.InheritanceDemand method.
6787
6788 2005-09-01  Raja R Harinath  <rharinath@novell.com>
6789
6790         * reflection.c (encode_marshal_blob): 'marshaltype' and
6791         'marshaltyperef' are alternate sources for the custom marshaler
6792         name.
6793
6794 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
6795
6796         * class.c: fix creation of array classes with rank == 1
6797         (patch by Ankit Jain <jankit@novell.com>).
6798
6799 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
6800
6801         * object.c: fix check for creating the bound data for arrays vs
6802         szarrays.
6803
6804 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6805
6806         * object.c: configuration file name is now based on the executable name,
6807         not the image name. Fixes bug #75931.
6808
6809 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
6810
6811         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
6812         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
6813
6814 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
6815
6816         * rand.c: Use wincrypt.h instead of WinCrypt.h.
6817
6818 2005-08-24  Ankit Jain  <jankit@novell.com>
6819             Raja R Harinath  <rharinath@novell.com>
6820
6821         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
6822           called by it recursively.
6823           (mono_class_init): Remove special case in pending_init handling, since it's
6824           superseded by the fix to mono_class_from_typeref.
6825
6826 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
6827
6828         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
6829         BROKEN_THREAD_START stuff.
6830
6831 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
6832
6833         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
6834         trampoline.
6835
6836         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
6837         
6838         * object.c (mono_delegate_ctor): Replace the original function address with
6839         a delegate trampoline.
6840
6841 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
6842
6843         * icall.c: add boolean argument to base64_to_byte_array and 
6844         InternalFromBase64String to control whether a whitespace-only string
6845         is allowed (or should casue a FormatException to be thrown). We need
6846         this as the behavior has changed between MS.NET 1.x and 2.0, and we
6847         to match the MS behaviour in both profiles.
6848         * appdomain.c: Bump corlib version.
6849
6850 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6851
6852         This patch implements a big portion of publisher policy
6853         support, used to bind assembly versions and redirect
6854         one assembly from version A to version B.
6855
6856         * assembly.c:
6857         New GSList loaded_assembly_bindings, for storing the cached
6858         assembly bindings.
6859         (assembly_binding_maps_name): New static function for checking if a 
6860         assembly binding information maps an assembly name.
6861         (mono_assembly_binding_info_free): New function for freeing
6862         assembly binding information resources.
6863         (get_publisher_policy_info): New static function for retrieving 
6864         assembly binding information from a MonoImage.
6865         (compare_versions): New static function for comparing an assembly
6866         binding information data and the version of an assembly name.
6867         (check_policy_versions): New static function for checking if an
6868         assembly binding info mapping an assembly name is valid for it.
6869         (mono_assembly_load_publisher_policy): New static function for
6870         loading the 'policy.major.minor.MyAssembly' image for an assembly
6871         with an assembly name 'aname'.
6872         (mono_assembly_bind_version): New static function for updating
6873         assembly redirection.
6874         (mono_assembly_apply_binding): New static function for applying
6875         assembly binding.
6876         (search_binding_loaded): New static function for searching 
6877         loaded assembly binding infos in the cache domain.
6878         (mono_assembly_load_full): Don't apply assembly binding for
6879         reflection only assemblies.
6880
6881         * metadata-internals.h: Add MonoAssemblyBindingInfo,
6882         which contains information about assembly binding. Also
6883         declare signature for mono_config_parse_publisher_policy ()
6884         function, used to retrieve pub policy info.
6885         
6886         * mono-config.c:
6887         (publisher_policy_start): New static function used to parse publisher 
6888         policy config files.
6889         (publisher_policy_parser): New static MonoParseHandler containing 
6890         the functions used when parsing config files.
6891         (mono_config_parse_publisher_policy): New function for parsing
6892         publisher policy files.
6893         
6894 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
6895
6896         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
6897
6898         * marshal.c (mono_delegate_free_ftnptr): Ditto.
6899
6900         * object.c (mono_get_addr_from_ftnptr): New helper function.
6901
6902         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
6903
6904         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6905
6906 2005-08-19  Dick Porter  <dick@ximian.com>
6907
6908         * threads.c, threads.h, appdomain.c, appdomain.h,
6909         profiler-private.h, monitor.c, object.c, object-internals.h,
6910         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
6911         store the thread ID, so it can hold a 64 bit value if needed.
6912
6913 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
6914
6915         * reflection.c (mono_reflection_create_dynamic_method): Store the
6916         handle class into the method references as well so ldtoken works in
6917         dynamic methods.
6918
6919         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
6920         types.
6921
6922 2005-08-19  Ankit Jain <jankit@novell.com>
6923
6924         Fix #75847.
6925         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
6926           here rather than using the method signature of a arbitrary function
6927           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
6928           two arguments.
6929           Hack done with Harinath.
6930
6931 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6932
6933         * threadpool.c: disable printing stack traces when we get a exception
6934         in a threadpool thread. I need to do more testing to figure out which
6935         cases actually print this. Fixes bug #75828.
6936
6937 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6938
6939         * icall.c: there might be ignored whitespace after the last '='. This
6940         fixes length computation and bug #75840.
6941
6942 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
6943
6944         * assembly.c (mono_assembly_load_full): Consider .exe extension as
6945         well. Fixes #75809.
6946
6947         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
6948         #75784.
6949         
6950         * reflection.c (create_custom_attr_data): Ditto.
6951
6952 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
6953
6954         * locales.c, culture-info.h : removed RegionLCIDMap.
6955         * culture-info-tables.h : regenerated.
6956
6957 2005-08-16  Martin Baulig  <martin@ximian.com>
6958
6959         * class.c (mono_type_get_name_recurse): Small fix.
6960
6961 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
6962
6963         * locales.c : indentation fixie.
6964
6965 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
6966
6967         * object-internals.h,
6968           locales.h,
6969           locales.c,
6970           culture-info.h,
6971           icall.c : added RegionInfo table support.
6972         * culture-info-table.h : regenerated for region support.
6973
6974 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
6975
6976         * reflection.c (resolve_object): handle all kinds of MonoMethod
6977         including generic ones
6978
6979 2005-08-12  Ankit Jain <jankit@novell.com>
6980
6981         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
6982           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
6983
6984 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
6985
6986         * process.c: Don't close a thread handle when it's NULL. This is a
6987         workaround for bug #75733.
6988
6989 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
6990
6991         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
6992
6993 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
6994
6995         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
6996
6997 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6998
6999         * threadpool.c: if a work item in the thread pool has a callback that
7000         catches a exception, don't propagate it after invoking the callback.
7001         Fixes bug #75336.
7002
7003 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
7004
7005         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
7006
7007         * class-internals.h (MonoCachedClassInfo): Add some new fields.
7008
7009         * class.c (mono_class_init): Load field info lazily in the AOT case.    
7010
7011         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
7012
7013 2005-08-03  Ankit Jain  <jankit@novell.com>
7014
7015         Fix #75683.
7016         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
7017           PInvoke calling convention is 0.
7018
7019 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
7020
7021         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
7022         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
7023
7024 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
7025
7026         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
7027         to handle threads not started by the GC (patch by Michael Meeks
7028         <michael.meeks@novell.com>).
7029
7030 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
7031
7032         * reflection.c: Make buffer used in emitting types larger for some
7033         big generic types (patch by Michal Moskal).
7034
7035 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
7036
7037         * mono-debug.c: Fix some (not all) alignment problems.
7038
7039 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7040
7041         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
7042         Invoke mono_image_load_from_data_full passing the refonly
7043         parameter.
7044
7045         * assembly.c
7046         (mono_assembly_open_from_bundle): Add the refonly argument, 
7047         in order to pass it to other methods it calls to.
7048         (do_mono_assembly_open): Add the refonly argument, in order 
7049         to pass it to other methods it calls to.
7050         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
7051         the refonly parameter to it.
7052
7053         * image.c: Add loaded_images_refonly_hash and
7054         loaded_images_refonly_guid_hash to cache the reflection
7055         only loaded images.
7056         (mono_images_init): Initialize the hash tables used for
7057         caching the reflection only images.
7058         (load_modules): Invoke mono_image_open_full passing the refonly
7059         parameter to load the modules the correct way.
7060         (build_guid_table): Add the refonly argument, to re-build the 
7061         correct hash table.
7062         (do_mono_image_open): Added the refonly argument, in order to
7063         define it for the loaded image.
7064         (mono_image_loaded_full): New function, which receives an
7065         additional parameter to look for the image in the refonly or
7066         non-refonly section.
7067         (mono_image_loaded): Updated, using mono_image_loaded_full.
7068         (mono_image_loaded_by_guid_full): The same case that happens
7069         with mono_image_loaded_full.
7070         (mono_image_loaded_by_guid): Likewise.
7071         (register_image): Use the ref_only variable inside MonoImage
7072         to decide in which hash table store the current image.
7073         (mono_image_open_from_data_full): Rename
7074         mono_image_open_from_data to mono_image_open_from_data_full,
7075         adding the refonly argument, to define the ref_only variable 
7076         inside MonoImage.
7077         (mono_image_open_from_data): Return 
7078         mono_image_open_from_data_full.
7079         (mono_image_open_full): Rename mono_image_open to
7080         mono_image_open_full, receiving the new refonly argument,
7081         to pass it to inner methods.
7082         (mono_pe_file_open): Update this function, to open
7083         a MonoImage as a non-refonly image.
7084         (mono_image_close): Use the refonly variable inside
7085         MonoImage to remove the image from the correct caches.
7086
7087         * image.h: Add the signatures of mono_image_open_full,
7088         mono_image_open_from_data_full, mono_image_loaded_full,
7089         mono_image_loaded_by_guid_full.
7090
7091         * metadata-internals.h: Add the ref_only field to 
7092         MonoImage.
7093         
7094 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7095
7096         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
7097         Fix the last behavior, which used to load the assemblies and
7098         extract MonoReflectionAssemblyName information, instead of
7099         extract it from the metadata tables. Needed for Reflection
7100         Only assemblies.
7101         
7102 2005-07-29  Martin Baulig  <martin@ximian.com>
7103
7104         * mono-debug-debugger.c
7105         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
7106         not initialized.
7107
7108         * mono-debug.c
7109         (mono_debug_address_from_il_offset): Check whether we have
7110         debugging support before attempting to take the lock.
7111         (mono_debug_source_location_from_address): Likewise.
7112         (mono_debug_source_location_from_il_offset): Likewise.
7113         (mono_debug_il_offset_from_address): Likewise.
7114         (mono_debug_address_from_il_offset): Likewise.
7115
7116 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
7117
7118         * class.c (mono_class_from_name_case): Add support for dynamic images.
7119         Fixes #75650.
7120
7121         * object.c (mono_class_compute_gc_descriptor): Add a workaround
7122         for #75479.
7123
7124 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
7125         
7126         * reflection.c (mono_method_get_object): Fix warning.
7127
7128 2005-07-28  Martin Baulig  <martin@ximian.com>
7129
7130         * mono-debug.c
7131         (mono_debug_add_wrapper): Also write the wrapper type.
7132
7133 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
7134
7135         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
7136         
7137         * class.c (mono_class_init): Avoid reading nested classes if the AOT
7138         data indicates the class has none.
7139
7140 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
7141
7142         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
7143         loader lock with the debugger lock. Prevents deadlocks for beagle.
7144
7145         Beagle can now run on an smp box for a weekend without any
7146         issues. Woohoo!
7147
7148 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
7149
7150         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
7151         in a module. Fixes #75629.
7152
7153 2005-07-26  Martin Baulig  <martin@ximian.com>
7154
7155         * mono-debug.c (mono_debug_add_wrapper): New static method.
7156         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
7157         interncall or a wrapper.
7158
7159         * mono-debug.h (MonoDebugWrapperData): New public typedef.
7160         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
7161         (MONO_DEBUGGER_VERSION): Bump to 51.
7162
7163         * mono-debug-debugger.c
7164         (mono_debugger_add_type): Removed this empty function.
7165         (mono_debugger_add_method): Likewise.
7166
7167 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
7168
7169         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
7170         before accessing method->slot.
7171
7172 2005-07-21  Jb Evain  <jbevain@gmail.com>
7173
7174         * reflection.c (method_encode_clauses/class): Handle filters clauses.
7175         Fixes #75010.
7176
7177 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
7178
7179         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
7180         #75587.
7181
7182 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
7183
7184         * image.h image.c: Add mono_image_get_guid () API function.
7185
7186 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
7187
7188         There were issues when multiple threads tried to load
7189         assemblies. A deadlock was created between assemblies_mutex and
7190         mono_domain_assemblies_lock. This fixes the issue by making the
7191         assembly ref counting be lock free. See bug 75586.
7192         
7193         * image.c (mono_image_close): The add ref function here was using
7194         Interlocked operations while the unref was using a mutex and a
7195         --. I don't think this was ever a bug that would be exposed in a
7196         non-pendantic way (ie, by an embedder doing a ref on one thread
7197         and an unref on another), but for the sake of correctness, this is
7198         now Interlocked.
7199
7200         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
7201         (mono_assembly_load_reference): Call mono_assembly_addref rather
7202         than touching the refcount ourselves.
7203         (mono_assembly_close): Use InterlockedDecrement to unref the
7204         assembly. Don't acquire the lock unless it is actually needed.
7205
7206 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
7207
7208         * class.c (mono_class_layout_fields): Fix calculation of has_references
7209         for generic types.
7210
7211 2005-07-12  Martin Baulig  <martin@ximian.com>
7212
7213         Applying a patch from Michal Moskal <malekith@nemerle.org>.
7214
7215         * metadata.c
7216         (mono_type_hash): Provide better hashing for generic instances.
7217         (mono_generic_inst_hash): Improve hashing.
7218         (mono_generic_class_hash): Likewise.
7219
7220         * reflection.c (mymono_metadata_type_hash): Improve hashing for
7221         generic instances.
7222
7223 2005-07-12  Martin Baulig  <martin@ximian.com>
7224
7225         * reflection.c (mono_reflection_create_runtime_class): Remove the
7226         hack for generic type definitions and non-`Run' assemblies.
7227         (mono_reflection_bind_generic_parameters): Also use
7228         `klass->wastypebuilder' to check for TypeBuilders.
7229
7230 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
7231
7232         * class.c (mono_class_layout_fields): Fix calculation of has_references
7233         for generic types.
7234
7235         * class.c (inflate_generic_class): Fix a leak.
7236         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
7237         for generic types.
7238
7239 2005-07-11  Martin Baulig  <martin@ximian.com>
7240
7241         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
7242         on error.
7243
7244 2005-07-11  Martin Baulig  <martin@ximian.com>
7245
7246         * loader.c (find_method): Also lookup in
7247         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
7248
7249 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
7250
7251         * appdomain.c (mono_domain_unload): Don't free the error message
7252         before passing it to mono_get_exception_...
7253
7254         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
7255         
7256 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
7257
7258         * threads.c: try to better guess an available RT signal (bug #75387).
7259
7260 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
7261
7262         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
7263         and CACHE_OBJECT.
7264
7265 2005-07-07  Martin Baulig  <martin@ximian.com>
7266
7267         * class.c (mono_type_get_name_full): Return NULL for
7268         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
7269         fixes #75408.
7270
7271 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
7272
7273         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
7274         exit the appdomain as well being aborted.
7275
7276         * threadpool.c: Create all threadpool threads inside the root appdomain, and
7277         change back to the root domain after calling managed code. This enables
7278         appdomains using threadpools to be unloaded.
7279
7280 2005-07-07  Martin Baulig  <martin@ximian.com>
7281
7282         * class-internals.h
7283         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
7284         into `MonoDynamicGenericClass' since we only need it for dynamic
7285         types.
7286
7287         * reflection.c (mono_class_bind_generic_parameters): We don't need
7288         to compute the `parent' here.
7289
7290 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
7291
7292         * culture-info-table.h : regenerated.
7293
7294 2005-07-06  Martin Baulig  <martin@ximian.com>
7295
7296         * icall.c
7297         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
7298
7299         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
7300
7301 2005-07-06  Martin Baulig  <martin@ximian.com>
7302
7303         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
7304         we're doing a signature-only comparision; fixes #74945.
7305
7306 2005-07-06  Martin Baulig  <martin@ximian.com>
7307
7308         * class-internals.h (MonoGenericClass): Moved some things out into
7309         a new `MonoInflatedGenericClass' type.  
7310         (MonoInflatedGenericClass): New type; the `klass' of a
7311         `MonoGenericClass' is now computed lazyly in
7312         mono_get_inflated_generic_class().      
7313
7314         * class.c (mono_get_inflated_generic_class): New public function.
7315         (mono_class_inflate_generic_method): Removed the unused
7316         `MonoClass *' argument.
7317         (setup_generic_vtable): Don't call mono_get_inflated_method() on
7318         all the methods.
7319         (mono_class_create_generic): Make this static and merge it with
7320         mono_class_create_generic_2(); we're now called automatically from
7321         mono_get_inflated_generic_class().
7322
7323         * loader.c (mono_method_signature): Call
7324         mono_get_inflated_method() here.
7325
7326 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
7327
7328         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
7329         type of fields with RVA.
7330
7331         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
7332         for this pseudo class.
7333         (my_mono_class_from_generic_parameter): Likewise.
7334         (mono_class_init): Allow interfaces to have cctors.
7335
7336 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
7337
7338         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
7339         lazily for AOT methods.
7340
7341 2005-07-05  Martin Baulig  <martin@ximian.com>
7342
7343         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
7344         returns FALSE for a successful match, not TRUE.
7345
7346 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
7347
7348         * loader.c (mono_method_get_index): Optimize this a bit.
7349
7350 2005-07-04  Martin Baulig  <martin@ximian.com>
7351
7352         * class.c
7353         (class_compute_field_layout): Move the check for generic type
7354         definitions into mono_class_layout_fields().  Fixes #74684.
7355         (mono_class_from_generic_parameter): Correctly compute
7356         `klass->parent'; fixes #75457.
7357
7358         * reflection.c (register_assembly, register_module): Make sure
7359         `domain->rejobject_hash' is already created.
7360
7361 2005-07-02  Martin Baulig  <martin@ximian.com>
7362
7363         * class-internals.h
7364         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
7365         `MonoDynamicGenericClass'.      
7366
7367 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
7368
7369         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
7370         returned by a field getter is null, since null is a valid value.
7371
7372 2005-07-01  Martin Baulig  <martin@ximian.com>
7373
7374         * reflection.c (mono_reflection_generic_class_initialize): Update
7375         the `dgclass->fields [i].parent' to the correct class.
7376         (mono_image_get_fieldref_token): Use the declaring type, not the
7377         reflected type.
7378
7379 2005-07-01  Martin Baulig  <martin@ximian.com>
7380
7381         * loader.c (find_method): Also look in the interfaces; fixes #75429.
7382
7383 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
7384
7385         * threads.c (thread_cleanup): assert that thread != NULL
7386         (wait_for_tids_or_state_change): We were using the wrong variable
7387         when accessing wait->threads. `i' was always out of the bounds of
7388         the array.
7389
7390 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7391
7392         * loader.c: map user32 and kernel32 to libMonoSupportW
7393
7394 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
7395
7396         * appdomain.c (unload_thread_main): Mark this as WINAPI.
7397
7398 2005-06-28  Martin Baulig  <martin@ximian.com>
7399
7400         * loader.c (method_from_methodspec): Fix #75334.
7401
7402 2005-06-28  Martin Baulig  <martin@ximian.com>
7403
7404         Fix #74953 - Arrays now implement the generic IList<T> interface
7405         on the 2.0 platform.
7406
7407         * class-internals.h (MonoDefaults): Added `generic_array_class'.
7408
7409         * reflection.c (mono_class_bind_generic_parameters): New public
7410         function; similar to mono_reflection_bind_generic_parameters(),
7411         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
7412
7413         * domain.c (mono_init_internal): Try to initialize.
7414         `mono_defaults.generic_array_class' here; this'll only succeed if
7415         we're using the 2.0 corlib.
7416
7417         * icall.c
7418         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
7419         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
7420         (mono_lookup_internal_call): Added support for nested classes.
7421
7422         * loader.c
7423         (mono_get_method_from_token): Set `result->signature->pinvoke' if
7424         we're an interncall and have generic arguments.
7425
7426         * class.c
7427         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
7428         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
7429         instance of System.Array.InternalArray<T> for arrays, so they
7430         implement the generic IList<T> interface.
7431
7432 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
7433
7434         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
7435         (chastamar@yahoo.com). Fixes #75374.    
7436
7437 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
7438
7439         * culture-info-table.h: regenerated.
7440
7441 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7442
7443         * icall.c: handle spaces correctly for base64 strings.
7444
7445 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
7446
7447         * *.c: Kill some warnings.
7448
7449 2005-06-23  Duncan Mak  <duncan@novell.com>
7450
7451         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
7452         that this builds on Solaris 10 (x86).
7453
7454 2005-06-23  Martin Baulig  <martin@ximian.com>
7455
7456         * class.c
7457         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
7458         generic type definitions.
7459
7460 2005-06-23  Martin Baulig  <martin@ximian.com>
7461
7462         Fix #75331.
7463
7464         * metadata.c (mono_class_get_overrides): Renamed to
7465         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
7466         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
7467         pass it to mono_get_method_full().
7468
7469 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
7470
7471         * reflection.c (mono_reflection_create_runtime_class): take the
7472         mono_domain_lock in this method. Prevents deadlocks
7473
7474 2005-06-22  Martin Baulig  <martin@ximian.com>
7475
7476         * loader.c (method_from_methodspec): Fix #75330.
7477
7478 2005-06-22  Martin Baulig  <martin@ximian.com>
7479
7480         * reflection.c (type_get_qualified_name): Use
7481         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
7482         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
7483         argument; use it if we don't have an assembly name.
7484
7485 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
7486
7487         * object.c: In mono_message_init, set "copy out" flag for in
7488         parameters with the [Out] flag.
7489
7490 2005-06-21  Martin Baulig  <martin@ximian.com>
7491
7492         * class.c
7493         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
7494         and MONO_TYPE_PTR.
7495
7496 2005-06-21  Martin Baulig  <martin@ximian.com>
7497
7498         * class.c (mono_class_init): Don't initialize `class->fields' for
7499         generic instances since they're initialized again in
7500         compute_field_layout(). 
7501         (compute_field_layout): Set the field's `generic_info' here; fix
7502         #75320. 
7503
7504 2005-06-21  Martin Baulig  <martin@ximian.com>
7505
7506         * class-internals.h
7507         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
7508
7509         * metadata.c (mono_metadata_generic_method_equal): Also
7510         distinguish the `generic_class'; fixes #75334.
7511
7512 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7513
7514         * domain.c:
7515         * appdomain.c:
7516         * domain-internals.h:
7517         * reflection.c: 'domain_assemblies' field is now protected by its own
7518         lock. Don't call into managed code to run the AssemblyLoad event if we
7519         now there are no registered delegates for it.
7520
7521 2005-06-20  Martin Baulig  <martin@ximian.com>
7522
7523         * class.c (mono_class_is_assignable_from): Use a custom version of
7524         mono_class_has_parent() to make things work for generic instances;
7525         fix #75300.
7526
7527 2005-06-20  Martin Baulig  <martin@ximian.com>
7528
7529         * loader.c (method_from_methodspec): Apply a patch from
7530         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
7531
7532 2005-06-20  Martin Baulig  <martin@ximian.com>
7533
7534         * class.c (mono_class_init): Reverted Zoltan's last change; it
7535         breaks generics.
7536
7537 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
7538
7539         * threads.c (wait_for_tids_or_state_change): Add missing locking.
7540
7541 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7542
7543         * socket-io.c: fix the index in the socket array for writable/error
7544         sockets. Fixes bug #75306.
7545
7546 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
7547
7548         * class.c (mono_class_init): Allow interfaces to have static ctors.
7549
7550 2005-06-17  Martin Baulig  <martin@ximian.com>
7551
7552         * loader.c (method_from_methodspec): Use `context->container' when
7553         parsing the `gmethod->inst'.
7554
7555 2005-06-17  Martin Baulig  <martin@ximian.com>
7556
7557         * class.c (mono_type_get_name_recurse): Don't add the assembly
7558         name for type arguments.
7559
7560 2005-06-15  Martin Baulig  <martin@ximian.com>
7561
7562         * reflection.c (mono_image_get_inflated_method_token): Encode
7563         correct klass; fixes #75260.
7564
7565 2005-06-13 Michal Moskal <malekith@nemerle.org>
7566
7567         * icall.c: Make GetCorrespondingMethod/Constructor take
7568         MonoReflectionMethod method not MonoMethod. Removed
7569         MonoType.GetCorrespondingField, and make
7570         MonoGenericType.GetCorrespondingField take name not
7571         MonoClassField.
7572
7573 2005-06-13  Michal Moskal <malekith@nemerle.org>
7574
7575         * reflection.c (field_encode_signature, encode_locals):
7576          Make sizes of buffers for types larger (for big generic types).
7577          (create_generic_typespec,
7578          mono_reflection_sighelper_get_signature_local,
7579          mono_reflection_sighelper_get_signature_field):
7580          Add asserts for too small buffers.
7581
7582 2005-06-15  Martin Baulig  <martin@ximian.com>
7583
7584         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
7585         if our parent is not a dynamic type.
7586
7587 2005-06-15  Martin Baulig  <martin@ximian.com>
7588
7589         * class-internals.h (MonoTypeNameFormat): New enum.
7590
7591         * class.c
7592         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
7593         (mono_type_get_full_name): Removed.
7594         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
7595         argument instead of the boolean's.
7596
7597         * icall.c (ves_icall_System_MonoType_getFullName):
7598         Added `gboolean assembly_qualified'.    
7599
7600         * reflection.h
7601         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
7602
7603         * reflection.c (mono_reflection_parse_type): Parse the new type
7604         name format.
7605
7606 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7607
7608         * icall.c: no need to convert from utf16 to utf8 and then back again
7609         after the call to GetLogicalDrives.
7610
7611 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7612
7613         * icall.c: frombase64. Fix problems exposed by new tests.
7614
7615 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7616
7617         * icall.c: added internal calls for converting char [] and strings in
7618         base64 into byte [].
7619
7620 2005-06-10  Martin Baulig  <martin@ximian.com>
7621
7622         * class.c (mono_class_create_generic_2): Read the nested classes
7623         from the metadata rather than from `gklass->nested_classes' since
7624         `gklass' might not be initialized yet.
7625
7626 2005-06-09  Duncan Mak  <duncan@novell.com>
7627
7628         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
7629         all public headers. Fixes #74919.
7630
7631 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
7632
7633         * domain.c: The key for proxy_vtable_hash is now a pointer
7634         array. Added new GHashFunc and GCompareFunc functions for this.
7635
7636         * class.h: The list of interfaces in MonoRemoteClass is known in
7637         advance and can't grow (we create a new MonoRemoteClass if needed),
7638         so now the interface array can be allocated together with
7639         MonoRemoteClass.
7640         
7641         * object.c: Added a new method create_remote_class_key.
7642         Fixed mono_remote_class so it does not depend on
7643         mono_upgrade_remote_class.
7644         Removed extend_interface_array.
7645         Added new method clone_remote_class(), which makes a copy of a remote
7646         class and adds a new interface or class to it.
7647         mono_upgrade_remote_class() now creates a new remote class (or gets
7648         it from the cache) if an vtable upgrade is needed. In this way
7649         we make sure that other objects sharing the same remote class
7650         don't get the new vtable with unwanted interfaces.
7651         
7652         * object-internals.h:
7653         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
7654         
7655         * marshal.c: Track changes in mono_upgrade_remote_class().
7656
7657 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
7658         * icall.c: Add runtime methods for obtaining members of inflated
7659         class, which were created from supplied non-inflated members. It
7660         is used in internal Get{Method,Constructor,Field} methods in
7661         System.Type
7662
7663 2005-06-09  Martin Baulig  <martin@ximian.com>
7664
7665         * reflection.c
7666         (mono_reflection_bind_generic_method_parameters): Fix #75169.
7667
7668 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7669         * reflection.c (mono_image_basic_init): Define
7670         Version in MonoDynamicAssembly. 
7671         
7672 2005-06-08  Martin Baulig  <martin@ximian.com>
7673
7674         Fix #75136.
7675
7676         * loader.c
7677         (mono_method_signature_full): New public method; takes a
7678         `MonoGenericContext *'.
7679         (find_method): Use mono_method_signature_full() and pass the
7680         klass'es context to it.
7681
7682         * class.c (mono_class_is_inflated_method): Use
7683         mono_method_signature_full() and pass the context to it.
7684
7685 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
7686
7687         * object.c: add proper locking in mono_remote_class_vtable(),
7688         fixes possible memory corruption.
7689
7690 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
7691
7692         * marshal.c (mono_remoting_marshal_init): set
7693         initialized after initialization.
7694
7695 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
7696
7697         * locales.c : hush.
7698
7699 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
7700
7701         * object.c (extend_interface_array): fix really silly
7702         memory corrupting / comparison bug.
7703
7704 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7705
7706         * reflection.c: Functions added to support the creation
7707         of CustomAttributeData, which includes Attribute data
7708         used by ReflectionOnly methods.
7709
7710         * reflection.h:  mono_reflection_get_custom_attrs_data and
7711          mono_custom_attrs_data_construct added (functions exposed).
7712
7713          * icall.c: Added mono_reflection_get_custom_attrs_data
7714          as icall.
7715         
7716 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
7717
7718         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
7719         lupus's request.
7720
7721 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
7722
7723         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
7724
7725         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
7726         dynamic DllImportAttribute.
7727
7728         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
7729         dynamic DllImportAttribute.
7730
7731         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
7732         Fixes #75162.
7733
7734 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7735
7736         * threads.c: avoid segfault when an unstarted thread is aborted.
7737
7738 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
7739
7740         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
7741         Returns the name and version of the runtime for reporting.
7742
7743 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7744
7745         * appdomain.c: bump corlib version.
7746         * object-internals.h: new field in MonoReflectionAssembly.
7747
7748 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7749
7750         * object-internals.h: Carlos forgot to add this field.
7751
7752 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7753
7754         * icall.c: Added create_version to create instances
7755         of Version of MonoReflectionAssemblyName. This change helps
7756         the AssemblyName tests to keep running fine.
7757         
7758 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
7759   
7760         * object.c (mono_method_return_message_restore): A somehow less
7761         intrusive fix for #75138.
7762
7763 2005-06-03  Raja R Harinath  <rharinath@novell.com>
7764
7765         * object.c (mono_method_return_message_restore): Fix computation
7766         of expected number of out args.
7767
7768 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
7769
7770         * reflection.c (mono_image_get_method_info): Fix the case when the
7771         charset is empty.
7772
7773 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
7774
7775         * object.c: Added missing null check in
7776           mono_method_return_message_restore.
7777
7778 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
7779
7780         * reflection.c (mono_image_get_method_info): Handle the case when
7781         dllentry is empty.
7782
7783 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
7784
7785         * object.c: When creating the vtable for a proxy, take into account
7786         all inherited interfaces, not only the ones registered in
7787         iclass->interfaces. This fixs bug #74996.
7788         Also, in mono_method_return_message_restore, verify that the array
7789         of out args has the expected lengh.
7790
7791 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7792
7793         * socket-io.c: update the timeout in Poll when the call is interrupte.
7794
7795 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7796
7797         * socket-io.c: support abort/suspend in Select_internal after last
7798         change.
7799
7800 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7801
7802         * threadpool.c: remove warning.
7803
7804 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7805
7806         * icall.c:
7807         * socket-io.[ch]: Select_internal uses poll() now when available, thus
7808         removing the 1024 limit from select(). Runtime part of the fix for
7809         bug #71203.
7810
7811 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7812
7813         * socket-io.c: when resolving the addresses for the same
7814         host returned by gethostname(), get the local IPs from the interface
7815         list. Loopback addresses are discarded if the are interfaces up with
7816         non-loopback ones. Fixes bug #63265.
7817
7818 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
7819
7820         * appdomain.c, verify.c, object-internals.h, reflection.c:
7821         bumped corlib number to 36, and added new extra_flags field
7822         to ReflectionMethodBuilder and friends.  Fixes #75060.
7823
7824 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
7825
7826         * gc.c: register a new weak link only if the object is non-null
7827         (fixes bug#75047).
7828
7829 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
7830
7831         * culture-info.h : short time pattern too.
7832
7833 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
7834
7835         * culture-info.h : expand long time pattern string length.
7836
7837 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7838
7839         * culture-info-table.h : update (more French date format; #72788).
7840
7841 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
7842
7843         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
7844         the method is static. Fixes #75029.
7845
7846 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
7847
7848         * reflection.c: Update the table_idx field of method builders after
7849         saving the module, since it can change. This is a workaround for
7850         bug #74914. 
7851
7852 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7853
7854         * culture-info-table.h : update (additional French date format).
7855
7856 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
7857
7858         * icall.c (ves_icall_type_Equals): Revert last change.
7859         
7860         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
7861
7862         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
7863
7864 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
7865
7866         * class-internals.h: Added executioncontext_class field to 
7867         MonoDefaults structure.
7868         * domain.c: Cache System.Threading.ExecutionContext class in 
7869         mono_defaults.
7870         * object.c: Capture the ExecutionContext for asynchroneous calls in
7871          mono_async_result_new.
7872         * object-internals.h: Added execution_context and original_context 
7873         fields to MonoAsyncResult. Added execution_context to MonoThread.
7874         * security-manager.c|.h: Added mono_get_context_capture_method to 
7875         return the capture method (if required by the security manager or by
7876         the framework version used).
7877         * threadpool.c: Apply capture (if present) ExecutionContext in 
7878         mono_async_invoke and revert to original context after it completes.
7879
7880 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
7881
7882         * culture-info-table.h : updated (real hacky solution for zh-CHT).
7883
7884 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
7885
7886         * culture-info-table.h : zh-CHT related workaround.
7887
7888 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
7889
7890         * marshal.c (emit_marshal_custom): Add some error checking and call the
7891         methods in the ICustomMarshaler interface. Fixes #74875.
7892         
7893         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
7894         native->managed wrappers.
7895
7896 2005-05-12  Martin Baulig  <martin@ximian.com>
7897
7898         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
7899         here and use the loader lock.
7900
7901         * mono-debug.c: Properly lock when the debugger is not attached.
7902         (mono_debug_init): Release the initial lock if we're not running
7903         in the debugger.
7904
7905 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
7906
7907         * marshal.c (emit_marshal_custom): Pass through NULL values without
7908         calling the custom marshalling routines.
7909
7910         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
7911         conversion in structures. Fixes #74882.
7912
7913 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
7914
7915         * culture-info-table.h : zh-* cultures were missing.
7916
7917 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
7918
7919         * threads.c: Added a new event background_change_event which is signaled
7920         when a thread changes its background mode.
7921         Moved here several checks previously done in managed code. The checks
7922         require the thread lock, and using the thread lock in managed code
7923         can result in deadlocks.
7924         Merged Start_internal and Thread_internal into a single method. Now 
7925         Thread_internal does all work of creating and starting a thread.
7926         Added icalls for setting and getting the state of the object. Moved from
7927         managed code to avoid locking there.
7928         Added wait_for_tids_or_state_change() which is called instad of
7929         wait_for_tids when waiting for non-backround threads to end. This method
7930         will return if one of the threads ends or the background_change_event
7931         is signaled.
7932         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
7933         the background mode. This method signals the background_change_event
7934         event.
7935         * icall.c:
7936         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
7937         removed Start_internal.
7938         
7939 2005-05-11  Martin Baulig  <martin@ximian.com>
7940
7941         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
7942         to order of some fields to get proper alignment on 64-bit machines.
7943
7944 2005-05-11  Martin Baulig  <martin@ximian.com>
7945
7946         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
7947         changes as they're broken and completely fuck up the debugger.
7948
7949         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
7950
7951 2005-05-10  Martin Baulig  <martin@ximian.com>
7952
7953         * reflection.c (mono_reflection_generic_class_initialize): Don't
7954         call mono_class_setup_parent() here.
7955
7956 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7957
7958         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
7959         send/receive timeout use an integer in milliseconds. We were using a
7960         struct timeval.
7961
7962 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7963
7964         * locales.c:
7965         (internal_get_cultures): reserve the first slot of the array for the
7966         InvariantCulture, which will be filled in managed code.
7967
7968 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
7969
7970         * reflection.c (mono_image_fill_module_table): Initialize the
7971         GENERATION field as well.
7972
7973 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7974
7975         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
7976         Monitor.Enter on the object.
7977
7978 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
7979
7980         * threads.c: Enable the wait for running threads when exiting.
7981         * icall.c: Suspend all threads before exiting.
7982
7983 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
7984
7985         * assembly.c (mono_assembly_load_reference): Fix warning.
7986
7987 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7988
7989         * threadpool.c: changed the default number of threads per cpu. From now
7990         on, the default will be 20 + (5 * number of cpus) instead of 50.
7991
7992 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
7993
7994         * loader.c (mono_method_get_signature_full): Add locking here.
7995
7996 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
7997
7998         * appdomain.c: Moved methods for parsing and freeing assembly
7999         names to assembly.c.
8000         * assembly.c, domain-internals.h: Created public methods for parsing
8001         assembly names. Fixed mono_assembly_load_with_partial_name:
8002         it now finds the best match, taking into account the version,
8003         token and culture specified in the partial name. Also return
8004         the latest version if no version information is specified.
8005
8006 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
8007
8008         * threadpool.c: replace check for SocketAsyncCall class.
8009
8010 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8011
8012         * threadpool-internals.h:
8013         * Makefile.am: added threadpool-internals.h
8014
8015         * threadpool.c: call mono_unhandled_exception on exceptions not handled
8016         that happen in threadpool threads (tested on MS).
8017         (mono_thread_pool_remove_socket): new function that dispatch any pending
8018         AIO call on a socket that is closing. By now only epoll really needs it,
8019         as select/poll wake up when the socket closes.
8020
8021
8022         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
8023
8024 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
8025
8026         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
8027
8028 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
8029
8030         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
8031
8032 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
8033
8034         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
8035         has an abort request, convert it into a suspend request.
8036
8037 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
8038
8039         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
8040         warning for the usage of `UnmanagedFunctionPointerAttribute' which
8041         is not supported yet.
8042
8043 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8044
8045         * image.c: register assemblies loaded from data (bundles) in the loaded
8046         assemblies hash. Fixes bug #74772.
8047
8048 2005-04-29  Martin Baulig  <martin@ximian.com>
8049
8050         * class.c (mono_type_get_name_recurse): Update to the new naming
8051         schema from the latest .NET 2.x beta2.
8052         (mono_class_setup_vtable_general): If we're a generic instance,
8053         copy the vtable from our generic type definition and inflate all
8054         the methods in it.
8055
8056         * loader.c (find_method): Update to the new naming schema from the
8057         latest .NET 2.x beta2.
8058
8059 2005-04-29  Raja R Harinath  <harinath@gmail.com>
8060
8061         * class.c (mono_class_init): Add a mono_loader_unlock to the
8062         #74734 fix.
8063
8064 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
8065
8066         * icall.c (ves_icall_System_Environment_Exit): Remove the 
8067         suspend_all_other_threads () call for the time being, since it can hang.
8068
8069         * threads.c (mono_thread_manage): Similarly, disable the waiting for
8070         the background threads to exit, since it can also hang.
8071
8072         * class.c (mono_class_init): Applied patch from Ankit Jain 
8073         (radical@gmail.com). Avoid pending init errors when a field refers
8074         to a nested class using a typeref. Fixes #74734.
8075
8076         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
8077         this for dynamic modules.
8078
8079 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8080
8081         * threads.c: don't wait for threads that are in the process of aborting
8082         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
8083         and waiting for background threads to finish. This makes xsp and
8084         mod-mono-server exit without random length delays and/or hangs.
8085
8086 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8087
8088         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
8089
8090 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
8091
8092         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
8093         dynamic types to prevent infinite loops. Fixes #74727.
8094
8095         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
8096         ..._is_assignable_to.
8097
8098 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
8099
8100         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
8101
8102 2005-04-25  Martin Baulig  <martin@ximian.com>
8103
8104         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
8105
8106         * domain.c
8107         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
8108
8109         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
8110
8111         * reflection.c (build_compressed_metadata): Set metadata header
8112         version to 2.0.
8113
8114 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
8115
8116         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
8117         number into an integral and a decimal part. Fixes #70473.
8118
8119         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
8120
8121 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
8122
8123         * culture-info-table.h : reflected the latest locale-builder output.
8124
8125 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8126
8127         * threadpool.c: check for SuspendRequested too when deciding if
8128         mono_thread_interruption_checkpoint should be called.
8129
8130 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8131
8132         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
8133         * threads.c: remove interruption_mutex and use Interlocked instead. When
8134         suspending all the threads, wait for all the suspended events at once.
8135         If we're shutting down and get an APC that is going to be queued,
8136         call mono_thread_execute_interruption immediately, as the thread might
8137         be sleeping on a pthread condition or mutex.
8138
8139         * icall.c: call mono_runtime_set_shutting_down before suspending the
8140         threads.
8141
8142         Fixes bug #74693. And now xsp is happier when exiting.
8143
8144 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
8145
8146         * loader.c (mono_stack_walk): Fix #74690.
8147
8148 2005-04-22  Martin Baulig  <martin@ximian.com>
8149
8150         * mono-debug.h (MonoDebugMethodJitInfo): Added
8151         `MonoDebugMethodJitInfo *jit'.
8152
8153         * mono-debug.c (mono_debug_read_method): Cache the
8154         MonoDebugMethodJitInfo in `address->jit'.
8155         (mono_debug_free_method_jit_info): New public method.
8156
8157 2005-04-22  Martin Baulig  <martin@ximian.com>
8158
8159         * class.c (mono_class_is_assignable_from): Disallow
8160         type parameter -> interface.
8161
8162 2005-04-21  Dick Porter  <dick@ximian.com>
8163
8164         * threads.c (mono_thread_create): Turn an assertion into an error.
8165
8166 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
8167
8168         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
8169         
8170         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
8171         Fix some gcc 4.0 warnings.
8172
8173 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
8174
8175         * file-io.c: fix alt dir separator char on unix systems
8176         and cleanup (fixes bug #71214).
8177
8178 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
8179
8180         * marshal.c: Use CALLVIRT instead of CALL when dispatching
8181         a call to a remote domain, since the method may be an
8182         interface method in the client domain. This fixes bug #74192.
8183
8184 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8185
8186         * threadpool.c: recv/send are now performed before going back to managed
8187         code to save one transition.
8188
8189 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8190
8191         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
8192
8193         * metadata/threadpool.c: removed hack to workaround the bug above.
8194
8195         Fixes bug #74618.
8196
8197 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
8198
8199         * reflection.c reflection.h: Fix handling of parameter defaults in
8200         dynamic methods. Also fixes handling of parameter attributes.
8201         Fixes #74609.
8202
8203         * mono-debug.c (mono_debug_close_image): Fix warning.
8204
8205 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8206
8207         * socket-io.h: replaced old unused field with new 'blocking'.
8208         * threadpool.c: restore socket blocking state on windows(tm).
8209
8210 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
8211
8212         * icall.c: don't return the codebase in the AssemblyName[] returned by
8213         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
8214         * object-internals.h: Removed FIXME (fields were presents) and fixed
8215         versioncompat declaration.
8216
8217 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8218
8219         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
8220         not closed, so don't cleanup when it happens.
8221
8222 2005-04-13  Chris Toshok  <toshok@ximian.com>
8223
8224         * mono-debug-debugger.h: change prototype for
8225         mono_debugger_lookup_type.
8226
8227         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
8228         this function, although it should probably be named
8229         mono_debugger_init_type.
8230
8231 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8232
8233         * threadpool.c: fix non-AIO case.
8234
8235 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
8236
8237         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
8238         the built-in profiler to measure just JIT compilation times.
8239
8240 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8241
8242         * threadpool.c: the epollfd might be closed by another thread at
8243         any time, so ignore EBADF at treat it as a "we're closing" sign.
8244
8245 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8246
8247         * threadpool.c: release the semaphores with a count equals to the number
8248         of working threads in both IO and regular pools. Fixed typo that messed
8249         up the count of IO pool threads. Don't initialize the pipe handles if
8250         we're using epoll.
8251
8252 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8253
8254         * threadpool.c: some systems don't like a NULL when deleting the socket
8255         from epoll.
8256
8257 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8258
8259         * threadpool.c: fix semaphore allocation.
8260
8261 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8262
8263         * threadpool.c: added epoll() based implementation for asynchronous IO
8264         that is used instead of the default poll() when available.
8265         It can be disabled by setting MONO_DISABLE_AIO.
8266
8267 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8268
8269         * threadpool.c: windows needs 'closesocket' and instead of returning
8270         0 when the stream is closed while in select, it returns -1. Fixes bug
8271         #74573.
8272
8273 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
8274
8275         * class.c (class_compute_field_layout): Fix the regression caused by
8276         the previous try.
8277
8278 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8279
8280         * threadpool.c: separate pool for socket async. IO.
8281         * threadpool.h: mono_max_worker_threads is not a global any more.
8282
8283 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
8284
8285         * class.c (class_compute_field_layout): Fix #74549.
8286
8287 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8288
8289         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
8290         use 2 connected sockets instead.
8291
8292 2005-04-08  Miguel de Icaza  <miguel@novell.com>
8293
8294         * mono-config.c: Add new entry point for mkbundle
8295         mono_config_parse_memory. 
8296
8297 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8298
8299         * threadpool.c: removed another unused function.
8300
8301 2005-04-08  Ankit Jain  <radical@corewars.org>
8302
8303         * reflection.c (get_default_param_value_blobs): Add 'types'
8304         parameter to get the types encoded in the constant table.
8305         (mono_param_get_objects): Use the type from the constant table,
8306         not the type of the parameter, when creating default values.
8307         Handle null default values correctly.
8308
8309 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8310
8311         * file-io.c:
8312         * file-io.h:
8313         * threadpool.c:
8314         * threadpool.h:
8315         * icall.c:
8316         * socket-io.c: removed dead code for async IO.
8317
8318 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8319
8320         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
8321
8322         * threadpool.c: intercept socket async. calls and pass them to a thread
8323         that is polling and dispatching the job items to the threadpool as
8324         socket become ready. Fixes bugs #71217, #71933.
8325
8326         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
8327         between char and short/ushort arrays.
8328
8329         * socket-io.c: remove dead code.
8330
8331 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
8332
8333         * locales.c,
8334           icall.c : removed InternalToUpper_Comp() and
8335           InternalToLower_Comp().
8336
8337 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
8338
8339         * char-conversions.h : The tables were incorrectly generated. Should
8340           be generated against invariant culture.
8341
8342 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
8343
8344         * object.c (mono_runtime_invoke_array): Fix return value when 
8345         passing pre-created valuetype objects to ctors.
8346
8347         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
8348         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
8349         Fixes #74338.
8350
8351 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
8352
8353         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
8354         only used with --security and hides the wrong corlib version error.
8355
8356 2005-03-30  Joshua Tauberer  <tauberer@for.net>
8357
8358         * class.c: Changed mono_class_name_from_token so that types
8359         outside of a namespace don't have an initial period.  Improved
8360         the g_warning message used in _mono_class_get when loading
8361         fails.
8362         * assembly.c: In mono_assembly_load_reference, when an assembly
8363         can't be found, "No such file or directory" is misleading and
8364         unhelpful because a few paths were checked for the presence of
8365         the assembly.  When that happens (ENOENT), display a nicer
8366         message indicating the directories that were searched.  In all
8367         cases, the warning is made easier to read for non-hackers.
8368
8369 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
8370
8371         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
8372         project/solution.
8373         * appdomain.h|domain.c: Removed inline from functions.
8374         * appdomain.c: Reduced warnings when compiling on windows.
8375         * icall.c: Fixed output_debug declaration to gunichar2*.
8376         * mono-config.c: Reduced warnings when compiling on windows.
8377         * rand.c: Added missing "windows.h". Added missing return value.
8378         * rawbuffer.c: Added missing winsock2.h for windows.
8379         * sysmath.h: Added mono-compiler.h header to allow/ease 
8380         compilation with non-GCC compilers.
8381         * threads.c: Fixed declarations to compile with VS.NET C compiler.
8382         Removed cast warnings.
8383
8384         Adapted from the work of J Lothian (for VC6).
8385
8386 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
8387
8388         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
8389         from default_path.
8390
8391 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
8392
8393         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
8394         the 2.0 profile.
8395
8396 2005-03-27  Raja R Harinath  <harinath@gmail.com>
8397
8398         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
8399         has to be in $(exec_prefix).  $(prefix) is for arch-independent
8400         stuff, and it would probably use $(prefix)/share rather than
8401         $(prefix)/lib.
8402
8403 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8404
8405         * console-io.c: added 2 includes that might be missing.
8406
8407 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
8408
8409         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
8410         profile.
8411
8412         * reflection.c (create_custom_attr): Allocate the params array using
8413         alloca so it gets GC tracking.
8414
8415 2005-03-23  Chris Toshok  <toshok@ximian.com>
8416
8417         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
8418         out some spew.
8419
8420 2005-03-24  Raja R Harinath  <rharinath@novell.com>
8421
8422         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
8423         changes to pick up any changes in prefix, etc.
8424
8425 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
8426
8427         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
8428         
8429         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
8430         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
8431
8432 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
8433
8434         * class-internals.h object-internals.h class.c reflection.c: Extend the
8435         mono_lookup_dynamic_token () function to return the class of the
8436         token as well. 
8437
8438         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
8439         well. Fixes #73848.
8440
8441 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
8442
8443         * security-manager.c: Skip inheritance checks for intra-corlib
8444         class inheritance and method overrides. This skips a lot of checks
8445         and (anyway) permissions cannot work until corlib is loaded.
8446
8447 2005-03-23  Martin Baulig  <martin@ximian.com>
8448
8449         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
8450         MONO_TYPE_GENERICINST.  
8451
8452 2005-03-23  Martin Baulig  <martin@ximian.com>
8453
8454         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
8455
8456 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8457
8458         * class.c: added locking comments to some functions.
8459         Cache the interface offsets arrays (saves about 20 KB
8460         of runtime memory in a typical app).
8461         Reduce the time overhead in mono_class_setup_supertypes ().
8462
8463 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
8464
8465         * icall.c: speedup and fix leaks in GetMethodsByName and
8466         GetPropertiesByName.
8467
8468 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8469
8470         * reflection.c: some locking fixes.
8471
8472 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
8473
8474         * metadata.c: added missing break in case statement.
8475
8476 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
8477
8478         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
8479         typedbyref return values. Fixes #73941.
8480
8481 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
8482
8483         * security-manager.c|h: Added demandunmanaged method and 
8484         suppressunmanagedcodesecurity class to MonoSecurityManager.
8485         Renamed aptc class to allowpartiallytrustedcallers.
8486
8487 2005-03-17  Martin Baulig  <martin@ximian.com>
8488
8489         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
8490
8491 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8492
8493         * file-io.c: disabled file async. IO using aio_*. It uses the
8494         threadpool now. Workaround for bug #73718.
8495
8496 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8497
8498         * assembly.h, mono-config.c: added code to deal with bundled configs
8499         for bundled assemblies.
8500
8501 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
8502
8503         * *.c, private.h: cleanup, removing old private.h header file.
8504
8505 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
8506
8507         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
8508         and throw_on_unmappable_char attributes.
8509
8510 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
8511
8512         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
8513         _ProcessName_internal.
8514
8515 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
8516
8517         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
8518         #73631.
8519
8520         * icall.c threads.c threads-types.h: Remove slothash icalls as they
8521         are no longer used.
8522
8523 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
8524
8525         * object.c (compute_class_bitmap): Add support for generics. Fixes
8526         #73527.
8527
8528 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
8529
8530         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
8531
8532 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8533
8534         * filewatcher.c: commented out the code for windows watcher, as we don't
8535         use it (we use the managed implementation instead).
8536
8537 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
8538
8539         * object-internals.h (MonoThread): Remove 'unused1' field.
8540
8541         * appdomain.c: Bump corlib version.
8542
8543         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
8544
8545         * reflection.c (mono_reflection_create_runtime_class): Remove the
8546         AssemblyBuilder.Save optimization since it causes too many problems.
8547
8548 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
8549
8550         * exception.c|h: Added mono_get_exception_reflection_type_load to
8551         create a ReflectionTypeLoadException object.
8552         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
8553         to return NULL is a InheritanceDemand fails during reflection. Updated
8554         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
8555         ReflectionTypeLoadException if an InheritanceDemand fails during 
8556         reflection. Added icall mapping for GetLinkDemandSecurity.
8557         * security-manager.c|h: Added ves_icall_System_Security_
8558         SecurityManager_GetLinkDemandSecurity internal call to return the
8559         class and methods permissions set for a LinkDemand. Removed unused
8560         fields in MonoSecurityManager.
8561
8562 2005-03-10  Martin Baulig  <martin@ximian.com>
8563
8564         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
8565         it's a generic instance.
8566
8567 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
8568
8569         * reflection.c (mono_get_object_from_blob): Applied patch from
8570         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
8571
8572         * class.c (mono_class_is_assignable_from): Another try at fixing 
8573         #73469 without breaking anything.
8574
8575 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
8576
8577         * class.c: (mono_class_is_assignable_from): Revert the last changes
8578         since they don't work with generics.
8579         
8580         * class.c (mono_class_is_assignable_from): Fix build bustage.
8581
8582         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
8583         the managed IsAssignableFrom method. Fixes #73469.
8584
8585         * reflection.c (mono_reflection_call_is_assignable_from): New helper
8586         function.
8587
8588 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
8589
8590         * object.c (mono_load_remote_field_new): Fix returning uninitialized
8591         memory when the remoting callback does not sets the out arguments.
8592         Fixes #73007.
8593
8594         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
8595         by mistake.
8596
8597         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
8598
8599         * object-internals.h (MonoStackFrame): Sync with managed object layout.
8600
8601         * appdomain.c: Bump corlib version.
8602
8603 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
8604
8605         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
8606         function.
8607
8608         * threads.c (mono_thread_attach): Detect threads which are not started
8609         by the GC pthread wrappers.
8610
8611 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
8612
8613         * icall.c: Added new icall for RNG.
8614         * rand.c|h: Added new icall to open the RNG. This allows to share a 
8615         single handle on Linux to access /dev/urandom and fix #73183.
8616
8617 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
8618
8619         * object.c: setting the new vtable in a transparent proxy object must
8620         not change the GC descriptor.
8621
8622 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8623
8624         * object.c: fixed compilation without GCJ support.
8625         * reflection.c: for runtime-created types ensure klass->has_references
8626         is correct (bug #73215).
8627
8628 2005-03-02  Martin Baulig  <martin@ximian.com>
8629
8630         * class.c (mono_class_is_assignable_from): Make this work if
8631         `oklass' is a generic instance; fixes #72831.
8632
8633 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
8634
8635         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
8636         with hasthis set.
8637         
8638         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
8639
8640         * marshal.c: Reorganize native->managed marshalling code to also use
8641         the emit_marshal_... functions.
8642
8643 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
8644
8645         * object.c: typed allocs have issues with bitmap sizes > 30,
8646         so check for max_set >= 30.
8647
8648 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
8649
8650         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
8651         managed code. Fixes #73012.
8652
8653         * metadata.h (MonoMarshalSpec): Add elem_mult field.
8654
8655         * metadata.c reflection.c: Load/Emit elem_mult as well.
8656         
8657         * metadata.h (MonoMarshalSpec): Add comment.
8658
8659         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
8660
8661         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
8662         num_elem to -1 if not given.
8663
8664         * object-internals.h (MonoReflectionMarshal): Add has_size field.
8665
8666         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
8667         given values.
8668
8669 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
8670
8671         * null-gc.c (mono_gc_free_fixed): Was not compilable.
8672
8673 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
8674
8675         * reflection.c (encode_marshal_blob): Encode param_num field as well.
8676
8677         * object-internals.h (MonoReflectionMarshal): Add param_num field.
8678
8679 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
8680
8681         * object.c: generalized the reference bitmap creation
8682         and added hooks for the new GC.
8683         * class-internals.c: removed the gc_bitmap field from MonoClass.
8684
8685 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8686
8687         * domain.c: help the compiler to produce better code
8688         in mono_jit_info_table_find ().
8689
8690 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
8691
8692         * object.c: make all allocations look typed.
8693
8694 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8695
8696         * socket-io.c: load Mono.Posix if it's not loaded already
8697         (fixes bug#73033).
8698
8699 2005-02-24  Martin Baulig  <martin@ximian.com>
8700
8701         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
8702         * reflection.c (dup_type): Likewise.
8703
8704 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
8705
8706         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
8707         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
8708
8709 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
8710
8711         * domain.c, threads.c, object-internals.h: make the critical thread
8712         local vars use the fast access mode (even when we're compiled in
8713         a lib). Provide accessors to be used by the jit during codegen.
8714
8715 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8716
8717         * appdomain.c: Changed hook functios behavior to include
8718         support for the reflection only assemblies. Some icalls were changed
8719         to support the mentioned assemblies too. Signatures of static methods
8720         try_assembly_resolve and real_load now have an additional parameter:
8721         refonly.
8722
8723         * assembly.c: General changes to mono_assembly_ methods to support
8724         reflection only api. Functions mono_assembly_open, mono_assembly_load,
8725         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
8726         suffix, to support an additional gbool parameter to specify whether
8727         the assembli is reflection only or not. Created some new hook functions 
8728         to add support for reflection only assemblies. Signatures of static 
8729         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
8730         have now an additional parameter: refonly.
8731
8732         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
8733         indicating whether the assembly is reflection only or not.
8734
8735         * exception.c: Add mono_get_exception_invalid_operation.
8736
8737         * icall.c: Throw an InvalidOperationException when trying to invoke
8738         a property/method/event, or trying to set/get the value of a field.
8739         Also add an icall to retrieve the ref_only flag to the
8740         MonoReflectionAssembly.
8741
8742 2005-02-23  Chris Toshok  <toshok@ximian.com>
8743
8744         Part of fix for #72827.
8745         * mono-debug.c (mono_debug_add_method): add lexical block data to
8746         the info we write.  Kind of a hack at the moment - we copy the
8747         lexical block info from the MonoDebugMethodInfo to the
8748         MonoDebugMethodJitInfo here, before writing it.
8749         (mono_debug_read_method): read the lexical block info.
8750
8751         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
8752
8753         * debug-mono-symfile.h: add lexical block support.
8754
8755         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
8756         support.
8757
8758 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
8759
8760         * loader.c (mono_lookup_pinvoke_call): Fix warning.
8761
8762         * object.c (mono_runtime_free_method): Call mono_free_method () and
8763         put the TODOs there.
8764
8765         * loader.c (mono_free_method): Free up most memory allocated for 
8766         dynamic methods.
8767
8768 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
8769
8770         * reflection.c: properly flag a Type argument to a
8771         named custom attr value (bug #72248).
8772
8773 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
8774
8775         * reflection.c: reduce code duplication in named custom
8776         attribute encoding.
8777
8778 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
8779
8780         * reflection.c: properly encode custom attrs of type object
8781         (bug #72649).
8782
8783 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
8784
8785         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
8786
8787 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
8788
8789         * socket-io.c: load System.dll if it's not loaded already
8790         (bug #72850 and #70477).
8791
8792 2005-02-21  Martin Baulig  <martin@ximian.com>
8793
8794         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
8795         generic instances.
8796
8797 2005-02-21  Martin Baulig  <martin@ximian.com>
8798
8799         * reflection.c (mono_image_build_metadata): We also need to
8800         "fixup" the MethodImpl table after we computed the final method
8801         indices.  Call fixup_methodimpl() to do that.
8802         (fixup_methodimpl): New private method.
8803
8804 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
8805
8806         * assembly.c: special case mscorlib.dll (bug#72536),
8807         patch from Carlos Alberto Cortez.
8808
8809 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
8810
8811         * threads-types.h threads.c: Fix build bustage.
8812
8813         * threads.c: Use a union for long<->double conversions.
8814
8815         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
8816         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
8817
8818         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
8819         containing the checkpoint call with NOT_TAKEN.
8820         
8821         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
8822         checkpoint before pushing the arguments, so they won't have to be
8823         spilled to stack.
8824
8825 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8826
8827         * domain.c, assembly.c, domain-internals.h: make some data
8828         const and relocation-free.
8829
8830 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
8831
8832         * object.c, appdomain.c, class-internals.h: introduce the
8833         MonoClassRuntimeInfo structure to hold the info needed to
8834         use a class at runtime. Made mono_class_vtable() lock-free
8835         for all the appdomains.
8836
8837 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
8838
8839         * metadata-internals.h, image.c: introduce a per-image mempool to
8840         be used for memory that has the same lifetime as the image.
8841
8842 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
8843
8844         * domain.c: In mono_init_internal(), instead of selecting the first
8845         runtime version supported by an executable, get a list of all
8846         supported versions and select the one for which an mscorlib exists
8847         (since even if the runtime supports a given version, it doesn't mean
8848         that the framework for that version is installed).
8849         Modified get_runtimes_from_exe to support this behavior.
8850         In supported_runtimes, added information about additional system
8851         assembly versions.
8852         
8853         * assembly.c: Added support for more than one system assembly version
8854         per runtime version. Updated the assembly list.
8855         In mono_assembly_remap_version, removed the initial version check,
8856         since we don't know to which version we need to compare until we
8857         get the version set on which the assembly is based.
8858         Moved the code for loading corlib into the new method
8859         mono_assembly_load_corlib(), so it can be used by the initialization
8860         code.
8861         
8862         * domain-internals.h: Updated data structures and added declaration
8863         for mono_assembly_load_corlib.
8864
8865 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
8866
8867         * reflection.c (resolve_object): Fix the creation of the signature in 
8868         the SignatureHelper case.
8869
8870         * assembly.c (mono_assembly_remap_version): Fix binary search.
8871         
8872 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
8873  
8874         * class.c: Added inheritance check when a method is overloaded (from a
8875         virtual method or when implementing an interface) and when a class is
8876         inherited. Added functions to set a failure for a class and to 
8877         retreive the exception from a failure.
8878         * class-internals.h: Added fields to MonoClass to keep the exception
8879         information status for inheritance (or other exceptions) to be thrown
8880         later (i.e. not at load time).
8881         * object.c: Throw the inheritance SecurityException when a type is to 
8882         be created with either class or method inheritance violations.
8883         * reflection.c|h: Fix when getting declsec from a class. Removed 
8884         unrequired code for class. Improved sanity in parameter naming.
8885         * security-manager.c|h: Added functions to check for class and method
8886         inheritance.
8887
8888 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
8889
8890         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
8891         and has_finalize in dynamic types as well.
8892
8893 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
8894
8895         * culture-info-table.h : fixed currency format for en-GB (and so on).
8896
8897 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
8898
8899         * gc.c: ensure the GC handles never have 0 as a value.
8900
8901 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
8902
8903         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
8904         a pointer to a struct to unmanaged code. Fixes #72625.
8905
8906 2005-02-16  Martin Baulig  <martin@ximian.com>
8907
8908         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
8909
8910 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
8911
8912         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
8913
8914 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
8915
8916         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
8917
8918         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
8919         UnmanagedFunctionPointerAttribute, use it for determining calling convention
8920         etc. Fixes #71471.
8921
8922         * reflection.c (mono_custom_attrs_get_attr): New helper function.
8923
8924         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
8925
8926 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
8927
8928         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
8929         changes to make the current context a field in MonoThread.
8930
8931 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
8932
8933         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
8934         the last change.
8935         
8936         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
8937         extracted from mono_marshal_get_native_wrapper.
8938
8939         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
8940         to create wrappers around native functions.
8941
8942         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
8943         delegates for arbitrary function pointers. Fixes #71472.
8944
8945 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
8946
8947         * threads.c: cleaned up the code a little.
8948
8949 2005-02-15  Martin Baulig  <martin@ximian.com>
8950
8951         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
8952         the data table.
8953
8954         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
8955         allocate larger chunks if needed.
8956
8957 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
8958
8959         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
8960         in by mistake.
8961
8962 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
8963
8964         * domain.c: keep the domains in an array and ensure the domain ids
8965         are kept small, so they can be used as indexes to domain-specific data
8966         with a small memory overhead.
8967
8968 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
8969
8970         * icall.c: Handle byref types in Type icalls. Fixes #72544.
8971
8972 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
8973
8974         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
8975
8976 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
8977
8978         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
8979
8980         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
8981         values.
8982
8983         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
8984         
8985 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
8986
8987         * domain-internals.h: add the hashtable here.
8988
8989         * class-internals.h: Remove `info' from MonoMethod
8990
8991         * domain.c: Add a new hashtable, jit_trampoline_hash
8992
8993 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
8994
8995         * object.c: don't set the value of static fields
8996         (fixes bug#72494).
8997
8998 2005-02-11  Martin Baulig  <martin@ximian.com>
8999
9000         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
9001         (mono_debug_add_method): Silently ignore the method if it's too big.
9002         (mono_debug_add_type): Likewise.
9003
9004 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
9005
9006         * threads.c, appdomain.c: remove #ifdefs from the code.
9007
9008 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
9009
9010         * metadata-internals.h: Added flags to MonoAssembly to cache the most
9011         common security informations. This allows us to stay in unmanaged code
9012         when doing LinkDemand and it's special cases (except for the first 
9013         time for initialization). The flags a very much used with --security.
9014         * reflection.c|h: Added code to get declarative security attributes 
9015         for LinkDemand and InheritanceDemand. This required to refactor the
9016         existing code for Demand.
9017         * security-manager.c|h: Added new method fields for the special cases
9018         of LinkDemand.
9019
9020 2005-02-10  Martin Baulig  <martin@ximian.com>
9021
9022         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
9023         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
9024
9025 2005-02-10  Martin Baulig  <martin@ximian.com>
9026
9027         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
9028         debugging code; this is almost a complete rewrite.
9029
9030         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
9031
9032 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
9033
9034         * domain.c, object.h: expose mono_string_equal () and 
9035         mono_string_hash ().
9036         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
9037         it's implemented in managed code.
9038
9039 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9040
9041         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
9042         lo leak objects between appdomains.
9043
9044 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
9045
9046         * assembly.c: old compilers compilation fix from 
9047         robertj@gmx.net (Robert Jordan).
9048
9049 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
9050
9051         * class-internals.h: Little reminder for the future.
9052
9053         * debug-helpers.c: Fix up wrapper_type_names
9054
9055 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
9056
9057         * image.c, metadata-internals.h: when loading an image from a file,
9058         mmap all of it and use the same codepaths as when using a
9059         in-memory image: the code is simpler and we use less memory
9060         (both writable and readonly).
9061
9062 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
9063
9064         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
9065         API to alloc runtime data structures that need to be tracked by the
9066         GC and contain pointers.
9067         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
9068         make the code more readable and eventually use a different GC.
9069
9070 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
9071
9072         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
9073         for out arguments.
9074         
9075 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
9076
9077         * object.c: In release_type_locks(), don't release the cctor lock
9078         if it has already been released. This fixes a crash in the
9079         thread5 test.
9080
9081 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
9082
9083         * gc.c, marshal.c, icall.c: register a delegate for finalization
9084         only when the native function pointer has been allocated for it.
9085
9086 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
9087
9088         * object.c: cleaned up some code, allocate objects that are
9089         pointer free with the atomic malloc variant. Allocate memory
9090         for static data from the mempool if it's pointer-free.
9091         Allocate the bounds array at the end of the array data, when needed.
9092         * object-internals.h, object.h: move a private function in a private
9093         header.
9094         * class.c: handle missing case in tracking references in fields.
9095
9096 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
9097
9098         * class.c, class-internals.h: keep track if a type has
9099         reference fields in either the instance or static fields.
9100
9101 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
9102
9103         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
9104         and renamed to MonoRuntimeInfo. Added fields to store the expected
9105         framework assembly version. Changed mono_get_framework_version and
9106         mono_get_runtime_version for a single mono_get_runtime_info method.
9107         
9108         * assembly.c: Added method to remap system assembly versions to the
9109         current executing runtime version. Removed old mapping code.
9110         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
9111         
9112         * icall.c, reflection.c: Track api changes.
9113
9114 2005-02-06  Miguel de Icaza  <miguel@novell.com>
9115
9116         * loader.c (method_from_memberref): Improve error reporting,
9117         produce the class name instead of the typeref/typedef index. 
9118
9119 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
9120
9121         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
9122
9123 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
9124
9125         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
9126         stdcall and charset name mangling.  Reorganize the code and add
9127         some tracing stuff.
9128
9129 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
9130
9131         * monodiet.c: More iters!
9132
9133         * marshal.c: Iter usage.
9134
9135         * icall.c: Iter usage.
9136
9137         * object.c: Use iters.
9138
9139         * debug-helpers.c: More iters
9140
9141 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
9142
9143         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
9144         under win32.
9145
9146 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
9147
9148         * mono-debug-debugger.c: use iters
9149
9150         * class.c, class-internals.h: mono_class_setup_events is static
9151         now
9152
9153         * All callers: use iters
9154
9155 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
9156
9157         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
9158         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
9159
9160 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
9161
9162         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
9163
9164         * marshal.h: Add prototypes for ldfld/stfld_remote.
9165
9166         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
9167         this is called during startup.
9168         
9169 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
9170
9171         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
9172         MonoThreadsSync struct private in monitor.c. Changed the way
9173         MonoThreadsSync is allocated so it's faster and there is no
9174         need to keep track of it with a finalizer and it uses less memory.
9175         This also finally allows us to allocate mono objects as ptrfree when
9176         there are no reference fields.
9177
9178 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
9179
9180         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
9181         disappearing link to the GC interface and use them to simplify
9182         the gchandles code.
9183
9184 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
9185
9186         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
9187         stfld_remote which call mono_load/store_field_new. This allows methods
9188         calling ldfld/stfld wrappers to be AOTed.
9189
9190         * console-io.c: Include sys/filio.h under solaris.
9191         
9192         * console-io.c: Include curses.h if needed correctly.
9193
9194 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
9195         
9196         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
9197         method->klass as well.
9198
9199         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
9200
9201         * class.c (mono_class_init): Switch on lazy initialization of 
9202         methods.
9203
9204         * class.c (mono_class_get_finalizer): Handle the case when the 
9205         finalizer is inherited.
9206
9207 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9208
9209         * console-io.c: <curses.h> is needed by term.h on solaris.
9210
9211 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
9212
9213         * icall.c, class-internals.h, monodiet.c, class.c: Remove
9214         mono_class_setup_properties where possible. Remove this ftn from
9215         the header file, and make it static.
9216
9217 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
9218
9219         * loader.c: Add missing setup_... call.
9220
9221         * class.c: Add missing setup_... calls.
9222
9223         * class.c (mono_class_init): Switch on lazy initialization of 
9224         the generic vtable.
9225         
9226         * class.c (mono_class_init): Fix generics broken by the recent changes.
9227
9228         * monodiet.c (handle_type): Add missing setup_... calls.
9229
9230         * class.c: Back out garbage in previous patch.
9231         
9232         * class.c: Add missing setup_... calls.
9233
9234         * class.c (mono_class_get_method_from_name_flags): Avoid calling
9235         mono_class_setup_methods () if possible.
9236
9237         * class-internals.h (MonoClass): Add 'has_cctor' flag.
9238
9239         * class-internals.h (MonoCachedClassInfo): New structure.
9240
9241         * class.c: Initialize properties and events fields of MonoClass lazily.
9242
9243         * class.c: Add infrastructure for lazily initializing the methods and
9244         vtable fields of MonoClass. Not yet used.
9245
9246         * class.c (mono_class_get_finalizer): New helper function.
9247
9248         * class.c: Add infrastructure for loading some class related data from
9249         an AOT file.
9250
9251         * object.c: Add infrastructure for initializing the vtable from data
9252         in the AOT file.
9253
9254         * gc.c (run_finalize): Use mono_class_get_finalizer ().
9255
9256         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
9257         appropriate initialization function before accessing parts of the
9258         MonoClass structure.
9259
9260         * marshal.c: Fix warnings.
9261         
9262         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
9263
9264         * mono-debug-debugger.c (get_exception_message): Use 
9265         mono_class_get_method_from_name_flags ().
9266
9267 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
9268
9269         * reflection.c, appdomain.c: Replace a few manual searches that
9270         Zoltan missed. (Paolo approved this part of my initial patch).
9271
9272 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
9273
9274         * profiler.c: disable recording statistical events at report time.
9275
9276 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
9277
9278         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
9279         to byteswap arrays of enum values, too (bug #72080).
9280
9281 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
9282
9283         * appdomain.c (set_domain_search_path): Allow this to be called if
9284         domain->setup is not yet set.
9285
9286         * loader.c (mono_method_get_index): New helper function.
9287
9288         * loader.c reflection.c: Use mono_method_get_index ().
9289
9290         * class.c (mono_class_get_method_from_name_flags): New helper method.
9291
9292         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
9293         this.
9294
9295         * class.c (mono_class_get_cctor): New helper method.
9296
9297         * string-icalls.c object.c class.c marshal.c reflection.c: Use
9298         mono_class_get_method () to look up methods.
9299
9300 2005-02-01  Miguel de Icaza  <miguel@novell.com>
9301
9302         * console-io.c: Fix the build, this should work on Windows.
9303
9304 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
9305
9306         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
9307         be set to null to keep things valid
9308
9309 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9310
9311         * icall.c: added Console 2.0 icalls.
9312         * Makefile.am: added console-io.[ch]
9313         * console-io.[ch]: internal calls for Console 2.0 API.
9314
9315 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
9316
9317         * class.c: make sure we consider all the interfaces
9318         when calculating max_interface_id (bug found by
9319         Jeroen Frijters running ikvm).
9320
9321 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
9322
9323         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
9324         valuetype fields to null.
9325
9326         * object.c (set_value): Ditto. Fixes #71669.    
9327
9328 2005-01-31  Martin Baulig  <martin@ximian.com>
9329
9330         * metadata.c (mono_metadata_has_generic_params): New public
9331         function; checks whether something is a generic method.
9332
9333 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
9334
9335         * appdomain.c: fix infinite recursion when adding assemblies.
9336
9337 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
9338
9339         * object.c: Fix small typo to return all items for Environment.
9340         GetCommandLineArgs.
9341
9342 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
9343
9344         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
9345         reflection.c: more domain and assembly-unload related fixes
9346         and memory leaks plugs.
9347
9348 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
9349
9350         * 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.
9351
9352 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
9353
9354         * loader.c (mono_method_signature): Make this method lazy
9355         (mono_get_method_from_token): Don't computate the signature here.
9356
9357         Doing this saves quite a bit of memory. I got 90 kb on starting up
9358         monodoc. It should also save some disk reads on startup.
9359
9360         * *: MonoMethod->signature might be NULL now. You *MUST* use
9361         mono_method_signature.
9362
9363 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
9364
9365         * object.c (mono_runtime_get_main_args): Return an array from the
9366         current domain here. Fixes #71938.
9367
9368 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
9369
9370         * monitor.c: formatting changes to comply with the
9371         mono coding style and remove #ifdefs from the code.
9372
9373 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
9374
9375         * metadata.c, private.h: remove some unneeded data
9376         and use a more compact representation for table schemas.
9377
9378 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
9379
9380         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
9381         to get a better distribution in hash tables.
9382         * *.c: use mono_aligned_addr_hash() where appropriate.
9383         * assembly.c: make var static.
9384
9385 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
9386
9387         * domain-internals.h: Put MonoJitInfo on a diet.
9388
9389         * domain.c: Fix a warning.
9390
9391 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9392
9393         * gc.c: rework the gc handles code to reuse handles
9394         when freed.
9395
9396 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
9397
9398         * domain.c: fixed long standing bug in mono_string_equal() which
9399         was brought to light with the ldstr changes.
9400
9401 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
9402
9403         * reflection.c: Remove warning by adding missing include for marshal.h
9404
9405 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
9406
9407         * domain.c, object.c: change the ldstr_table to hold
9408         MonoString* as keys: makes the runtime isinterned lookup
9409         faster and simplifies memory management.
9410
9411 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
9412  
9413         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
9414         possible to add imperative security checks before calling the icall.
9415         * reflection.c: Return security attributes on the original MonoMethod
9416         (and not the wrapped one). This fix permissions on icalls.
9417
9418 2005-01-25  Dick Porter  <dick@ximian.com>
9419
9420         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
9421         the check for mktime() support actually test the mktime() return
9422         value.  "Fixes" bug 71682, though the output is still different to
9423         MS.
9424
9425 2005-01-25  Martin Baulig  <martin@ximian.com>
9426
9427         * class.c (mono_class_is_assignable_from): Make this work for
9428         generic instances.
9429
9430 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
9431
9432         * marshal.c (mono_string_utf8_to_builder)
9433         (mono_string_builder_to_utf16): We might not have ownership of the
9434         string. In thise case, we need to create a new buffer.
9435
9436         * object-internals.h (mono_stringbuilder_capacity): sb->str might
9437         be null, in which case, use the default capacity.
9438
9439 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
9440
9441         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
9442         GC events to the profiler.
9443
9444 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
9445
9446         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
9447         if you don't want the GC to run.
9448
9449 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
9450
9451         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
9452         start providing a GC API and keeping different implementations in
9453         their own file.
9454         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
9455
9456 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
9457
9458         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
9459         mmap rather than allocating a huge buffer.
9460         (mono_debug_close_mono_symbol_file): Free the buffer allocated
9461         above.
9462
9463 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
9464
9465         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
9466         and CheckExecutionRights.
9467         * reflection.c|h: Keep the index of the declarative security to be 
9468         used, instead of the pointer, when AOT compiler is used. Also add 
9469         class initialization when requesting demands.
9470         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
9471         CheckExecutionRights. Both properties are now FALSE by default, and
9472         unmodifiable, unless the --security option is used.
9473
9474 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
9475
9476         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
9477         reflection.c: properly refcount images and assemblies, many leaks fixed.
9478
9479 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9480
9481         * threadpool.c: increase the timeout for threads in the thread pool to
9482         10s.  Fixes bug #67159.
9483
9484 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
9485
9486         * class-internals.h: Sun's compiler insists on explicit
9487         signed on bit fields to handle then correctly.
9488
9489 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
9490
9491         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
9492         Make the size of the array fit only the number of invalid path
9493         chars that we have.
9494
9495         * class.c (_mono_class_get): Improve the error reporting when a
9496         class referenced is not found, to assist debugging. 
9497
9498 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
9499
9500         * threads.c: fix off-by-one error.
9501         * domain.c: free data allocated in the domain.
9502
9503 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
9504
9505         * reflection.c (mono_method_body_get_object): Fill out exception info
9506         as well.
9507
9508         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
9509         structure.
9510         
9511 2005-01-19  Martin Baulig  <martin@ximian.com>
9512
9513         * loader.c (mono_get_method_constrained): Make this work again.
9514
9515 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
9516
9517         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
9518         guint16 to match the managed side.
9519
9520         * reflection.c (mono_reflection_body_get_object): Fill out local
9521         variables array.
9522
9523         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
9524         as well.
9525
9526         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
9527         'local_var_sig_token'.
9528
9529 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
9530
9531         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
9532         System.Drawing.
9533
9534         * reflection.c (mono_method_body_get_object): Handle abstract and
9535         runtime methods.
9536
9537 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
9538
9539         * marshal.c, loader.c, class-internals.h, reflection.c:
9540         store the emthod data for a wrapper in an array instead of a list.
9541
9542 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
9543
9544         * marshal.c: change the code to allocate memory more
9545         conservatively for method wrappers.
9546
9547 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
9548
9549         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
9550         fields from MonoClass to the marshal info structure where they belong.
9551
9552 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9553
9554         * class.c, object.c, class-internals.h, marshal.c: rearrange
9555         some fields and tweak some types to lower memory usage.
9556
9557 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
9558
9559         * threads.c (signal_thread_state_change): Handle the case when the
9560         target thread is the current thread.
9561
9562         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
9563
9564         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
9565         emit_ptr_to_object_conv. 
9566
9567         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
9568         marshalling. Fixes #71352.
9569
9570 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
9571
9572         * metadata.h, blob.h: move table enum to blob.h so it can be included
9573         in any header.
9574         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
9575         cut the size of MonoImage/MonoDynamicImage.
9576
9577 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
9578
9579         * profiler.c (mono_profiler_install_simple): Fix default arguments.
9580
9581 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
9582
9583         * reflection.c, reflection.h, icall.c: add a function to check
9584         if an attribute type is defined for a metadata object.
9585
9586 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
9587
9588         * object-internals.h: Added some needed fields from StringBuilder class.
9589         * marshal.c: Set the maxCapacity when creating a StringBuilder.
9590
9591 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
9592
9593         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
9594         threads before shutting down the runtime.
9595
9596         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
9597
9598 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
9599
9600         * object-internal.h, threads.c: implement stacksize and 
9601         parameterized thread start functionality (requires
9602         matching corlib). Marked broken code for later removal.
9603
9604 2005-01-12  Martin Baulig  <martin@ximian.com>
9605
9606         * class-internals.h (MonoGenericClass): Moved the `initialized'
9607         flag to MonoDynamicGenericClass, removed `init_pending'.
9608         (MonoGenericInst): Added `is_reference' flag.
9609
9610 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
9611
9612         * reflection.c (mono_image_create_pefile): Only set the pe_offset
9613         inside the MSDOS header. Fixes #71201.
9614
9615         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
9616         gc thread.
9617         (mono_domain_finalize): Ditto.
9618
9619 2005-01-12  Martin Baulig  <martin@ximian.com>
9620
9621         * class.c (mono_get_shared_generic_class): Use the cache for
9622         non-dynamic generic classes.
9623
9624         * class-internals.h (mono_class_create_generic_2): Removed
9625         function prototype, this function is now static inside class.c.
9626
9627         * class.c (mono_class_create_generic_2): Made this static, only
9628         call it from mono_class_init() and mono_class_setup_parent().
9629         (collect_implemented_interfaces_aux): Call mono_class_init() on
9630         the interfaces we collect.
9631         (mono_class_setup_vtable): Call mono_class_init (class->parent).
9632
9633 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
9634
9635         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
9636         it a real thread handle.
9637
9638         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
9639         MonoJitExceptionInfo, since each catch clause needs its own variable.
9640         
9641 2005-01-11  Dick Porter  <dick@ximian.com>
9642
9643         * image.c (mono_pe_file_open): New variant on mono_image_open()
9644         that does not set up the CLI metadata; used for FileVersionInfo so
9645         it can get the data for windows binaries too.
9646         
9647         * process.c (process_read_string_block): Don't read off the end of
9648         the StringTable block.
9649
9650         These both fix bug 70766.
9651
9652 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
9653
9654         * gc.c: set some fields to NULL at GC cleanup time.
9655         * threads.c: if we quit the main thread, call exit ().
9656
9657 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
9658
9659         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
9660
9661 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
9662
9663         * threads.h, threads.c, object.c: added accessor and settor for
9664         main_thread. Handle it specially when exiting from it: wait
9665         for other foreground threads to exit.
9666
9667 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
9668
9669         * process.c, verify.c: remove some bloat.
9670
9671 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
9672
9673         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
9674         the calling convention to cdecl under win32.
9675
9676 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
9677
9678         * object.c (mono_object_get_size): New function to get the size of
9679         an object instance.
9680
9681         * profiler.c (simple_allocation): Use above.
9682
9683 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
9684
9685         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
9686         ves_icall_System_AppDomain_getRootDomain (as it's not required to
9687         get an appdomain by it's id and we can't assume the root's id is 0).
9688         * domain-internals.h: Change the function prototype to match.
9689         * icall.c: Change the icall table for AppDomain.
9690
9691 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
9692
9693         * locales.c (string_invariant_compare_char): Only compute
9694         GUnicodeTypes in the case where we need them.  Test for ordinality
9695         first and return if so.
9696
9697         From the commit:
9698
9699                 /*
9700                  * FIXME: here we must use the information from c1type and c2type
9701                  * to find out the proper collation, even on the InvariantCulture, the
9702                  * sorting is not done by computing the unicode values, but their
9703                  * actual sort order.
9704                  */
9705
9706 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
9707
9708         * loader.c: for P/Invoke methods, allow the "Internal" shared
9709         library name to refer to the calling process symbol namespace.
9710
9711 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
9712
9713         * Makefile.am: Add the security manager to the build.
9714         * security-manager.c|h: New. Initialization of the security manager.
9715
9716 2005-01-07  Dick Porter  <dick@ximian.com>
9717
9718         * threads.c: 
9719         * monitor.c: Update thread state during Monitor and WaitHandle
9720         waits.  Fixes bug 71031.
9721
9722 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
9723
9724         * reflection.c (property_encode_signature): Correctly handle when the
9725         property has no methods.
9726
9727 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
9728
9729         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
9730         
9731         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
9732         fields from mb, not rmb. Fixes #71017.
9733
9734         * marshal.c (emit_ptr_to_str_conv): Add support for 
9735         ByValTStr -> string conversion. Fixes #71015.
9736
9737         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
9738
9739         * mempool.c (mono_mempool_contains_addr): New helper function.
9740
9741 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
9742
9743         * metadata.c (mono_metadata_compute_size): Fix size calculation of
9744         HasSematics encoded fields.
9745         
9746         * metadata.c (mono_type_to_unmanaged): Improve error message for 
9747         invalid string marshalling.
9748
9749         * metadata.c: Fix warnings.
9750         
9751 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
9752
9753         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
9754         profiler support.
9755
9756 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
9757
9758         * domain.c object.c domain-internals.h: Revert part of r38077 since the
9759         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
9760         tests.
9761
9762 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
9763
9764         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
9765         so methods containing these can be AOTed.
9766
9767 2005-01-03  Martin Baulig  <martin@ximian.com>
9768
9769         * loader.c (find_method): Removed the hack for generic instances.
9770         (method_from_memberref): If our parent is a generic instance, pass
9771         its generic type definition to find_method() and then inflate the
9772         method.
9773         (mono_get_method_constrained): Pass the generic type definition to
9774         find_method() and inflate the method later.
9775
9776         * class-internals.h (MonoStats): Added `generic_class_count'.
9777
9778         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
9779         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
9780
9781         * reflection.c (mono_custom_attrs_from_params): Don't ignore
9782         generic type definitions.
9783
9784 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
9785
9786         * loader.c icall.c: Fix warnings.
9787
9788 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
9789
9790         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
9791         blittable types. Fixes #70864.
9792
9793 2004-12-29  Martin Baulig  <martin@ximian.com>
9794
9795         * icall.c
9796         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
9797
9798         * reflection.c (mono_method_get_object): Create a
9799         "System.Reflection.MonoGenericMethod" for inflated methods; don't
9800         call mono_get_inflated_method().
9801
9802         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
9803
9804 2004-12-27  Martin Baulig  <martin@ximian.com>
9805
9806         * class-internals.h (MonoMethod): Added `is_inflated' flag.
9807         (MonoMethodInflated): Added `inflated' field.
9808
9809         * class.c (mono_class_inflate_generic_method): Don't really
9810         inflate the method here; just set the `is_inflated' flag in the
9811         MonoMethod.
9812         (mono_class_get_inflated_method): Actually inflate the method here
9813         if it's not already inflated; we use the MonoMethodInflated's new
9814         `inflated' field as a cache.
9815
9816 2004-12-26  Martin Baulig  <martin@ximian.com>
9817
9818         * class.c
9819         (inflate_generic_class): Moved some code out of inflate_generic_type().
9820         (mono_class_inflate_generic_method): If we're already inflated,
9821         inflate the context and use the declaring method; ie. make sure
9822         the declaring method of an inflated method is always the generic
9823         method definition.
9824         (mono_class_create_from_typedef): Create
9825         `class->generic_container->context->gclass'.
9826
9827 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
9828
9829         * metadata-internals.h, marshal.c, reflection.c: More
9830         MonoGHashTable->GHashTable.
9831
9832         * domain-internals.h, class.c: Change MonoGHashTable's into
9833         GHashTables for some cases where no gc stuff is used
9834
9835         All users: update apis
9836
9837 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
9838
9839         * metadata.c (builtin_types): Make this `const'. Makes this get
9840         put into the shareable section.
9841         (mono_metadata_init): Casts to make gcc happy.
9842
9843 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
9844
9845         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
9846
9847 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
9848
9849         * icall.c: Added an internal call to retrieve the position and length
9850         of assembly-level declarative security attributes (RequestMinimum, 
9851         RequestOptional and RequestRefuse). This is used by the Assembly class
9852         to re-create the corresponding permission sets.
9853
9854 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
9855
9856         * marshal.c: fix the stelemref wrapper to be type correct
9857         (and faster).
9858
9859 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
9860
9861         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
9862         to do key & 0x7fffffff. Hashtable already does this. It just
9863         results in longer code.
9864
9865 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
9866
9867         * appdomain.c: Bump corlib version.
9868         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
9869         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
9870         * reflection.c|h: Add functions to get declarative security infos
9871         (blob position and length) for assemblies, classes and methods.
9872
9873 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
9874
9875         * reflection.c: sort the constant table (bug #70693).
9876
9877 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
9878
9879         * object-internals.h, threads.c, domain.c: add accessors for
9880         the MonoThread and MonoDomain tls keys.
9881
9882 2004-12-18  Martin Baulig  <martin@ximian.com>
9883
9884         * class.c (inflate_generic_type): If we're inflating a generic
9885         instance, set `ngclass->context->container = context->container';
9886         ie. the container we inflated into.
9887
9888         * metadata.c (mono_metadata_parse_generic_param): Reflect above
9889         inflate_generic_type() changes.
9890
9891 2004-12-17  Martin Baulig  <martin@ximian.com>
9892
9893         * class-internals.h
9894         (MonoGenericClass): Replaced `MonoType *generic_type' with
9895         `MonoClass *generic_class'.  Removed `dynamic_info'; if
9896         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
9897         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
9898
9899 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
9900
9901         * exception.c (mono_exception_from_token): New helper function.
9902
9903 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
9904
9905         * assembly.c (mono_assembly_load_with_partial_name): Call 
9906         mono_assembly_loaded before invoking the preload hooks. Fixes
9907         #70564.
9908
9909         * object-internals.h (MonoThread): Change culture_info and 
9910         ui_culture_info into an array.
9911
9912         * threads.c: Cache culture info objects from more than one appdomain.
9913
9914         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
9915         current UI culture.
9916
9917 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
9918
9919         * threads.h threads.c appdomain.c: Clear the culture_info field of
9920         all threads during unloading if they point to an object in the dying
9921         appdomain.
9922
9923 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
9924
9925         * culture-info.h (TextInfoEntry): New struct
9926         * object-internals.h: sync with managed
9927         * locales.c: fill the `text_info_data' field
9928         * culture-info-tables.h: update
9929
9930 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
9931
9932         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
9933         collector.
9934
9935 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
9936
9937         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
9938         (ves_icall_ModuleBuilder_getMethodToken): Ditto
9939
9940 2004-12-12  Martin Baulig  <martin@ximian.com>
9941
9942         * mono-debug-debugger.c (write_type): If we're an enum and the
9943         builtin types have already been initialized, call mono_class_init().
9944
9945 2004-12-11  Martin Baulig  <martin@ximian.com>
9946
9947         * metadata.c (mono_metadata_load_generic_params): Added
9948         `MonoGenericContainer *parent_container' argument; automatically
9949         compute `container->is_method'; pass the correct owner to
9950         get_constraints().      
9951
9952         * reflection.c (compare_genericparam): Sort the GenericParam table
9953         according to increasing owners. 
9954
9955 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
9956
9957         * profiler.c: allow disabling the default profiler.
9958
9959 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
9960
9961         * decimal.c, icall.c: allow disabling System.Decimal support.
9962
9963 2004-12-09  Marek Safar <marek.safar@seznam.cz>
9964
9965         * reflection.c: Add support for null attribute arguments.
9966
9967 2004-12-09  Martin Baulig  <martin@ximian.com>
9968
9969         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
9970         names to get rid of compiler warnings.
9971
9972 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
9973
9974         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
9975         mono_marshal_load_type_info (). Fixes #69625.
9976         (mono_marshal_get_ptr_to_struct): Likewise.
9977
9978 2004-12-08  Martin Baulig  <martin@ximian.com>
9979
9980         * mono-debug.h: Bumped version number to 47.
9981
9982         * mono-debug-debugger.c
9983         (mono_debugger_event_handler, mono_debugger_event): Take two
9984         guint64 arguments insteed of a gpointer and a guint32.  
9985
9986 2004-12-08  Martin Baulig  <martin@ximian.com>
9987
9988         * debug-mono-symfile.h
9989         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
9990         `address' to `native_offset'.
9991
9992 2004-12-08  Martin Baulig  <martin@ximian.com>
9993
9994         * class.c (mono_class_create_from_typespec): Only inflate if we
9995         either have `context->gclass' or `context->gmethod'.
9996
9997 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
9998
9999         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
10000
10001         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
10002
10003         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
10004
10005         * reflection.c (mono_assembly_get_object): Remove the workaround put
10006         in for the release.
10007         
10008         * appdomain.c: Use the corlib_internal field from MonoAssembly.
10009
10010         * appdomain.c: Bump corlib version.
10011
10012         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
10013         be visible in other appdomains.
10014
10015 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
10016
10017         * threads.c: Interlocked inc and dec for longs were messed up,
10018         use a KISS based impl for this. Fixes 70234
10019
10020 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
10021
10022         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
10023
10024 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
10025
10026         * icall.c: fix to follow policy not to allow struct
10027         arguments in icalls.
10028
10029 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10030
10031         * process.c: make the patch that handles spaces in file paths work
10032         on mono/windows too.
10033
10034 2004-12-06  Martin Baulig  <martin@ximian.com>
10035
10036         * class.c (mono_class_create_generic): Call
10037         mono_class_setup_supertypes() if we're dynamic.
10038         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
10039
10040 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
10041
10042         * object-internals.h: Add new fields to MonoThread.
10043
10044         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
10045
10046         * icall.c threads-types.h threads.c: Add new icalls.
10047
10048         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
10049
10050         * object-internals.h (MonoReflectionAssembly): Sync object layout with
10051         managed side.
10052
10053         * appdomain.c: Bump corlib version.
10054
10055         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
10056         internal assemblies. Fixes #69181.
10057
10058 2004-12-05  Martin Baulig  <martin@ximian.com>
10059
10060         * class.c (mono_class_inflate_generic_signature): Make this a
10061         no-op if `context' is NULL or we don't have any type parameters;
10062         also copy `sentinelpos'.        
10063
10064 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
10065
10066         * image.c: Add unbox_wrapper_cache.
10067
10068         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
10069
10070         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
10071         function generator.
10072         
10073         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
10074         Fixes #70173.
10075
10076         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
10077         
10078 2004-12-04  Martin Baulig  <martin@ximian.com>
10079
10080         * loader.c (mono_method_get_signature_full): New public function;
10081         like mono_method_get_signature(), but with an additional
10082         `MonoGenericContext *' argument.
10083
10084         * class.c (mono_class_inflate_generic_signature): Formerly known
10085         as inflate_generic_signature(); make this public.
10086
10087 2004-12-04  Martin Baulig  <martin@ximian.com>
10088
10089         * metadata.c
10090         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
10091         instead of a `MonoGenericContainer *'.  
10092         (mono_metadata_parse_array_full): Likewise.
10093         (mono_metadata_parse_signature_full): Likewise.
10094         (mono_metadata_parse_method_signature_full): Likewise.
10095         (mono_metadata_parse_generic_inst): Likewise.
10096         (mono_metadata_parse_generic_param): Likewise.
10097         (mono_metadata_parse_mh_full): Likewise.
10098         (mono_type_create_from_typespec_full): Likewise.
10099
10100 2004-12-03  Martin Baulig  <martin@ximian.com>
10101
10102         * class-internals.h (MonoGenericContainer): Replaced the
10103         `MonoGenericContext * pointer with a `MonoGenericContext'
10104         structure and made it the first element.
10105
10106 2004-12-03  Martin Baulig  <martin@ximian.com>
10107
10108         * class.c
10109         (inflate_generic_type): Set the `context->container' when creating
10110         a new MonoGenericContext.
10111         (mono_class_inflate_generic_method): Likewise.
10112         (mono_class_create_from_typespec): Just use `context->container'
10113         to get the container.
10114
10115         * loader.c (method_from_methodspec): Set `context->parent' from
10116         `context->container' - and if that's a method container, use its
10117         parent.  Also set the `context->container' when creating a new
10118         MonoGenericContext.
10119         (mono_get_method_from_token): Use just `context->container' to get
10120         the container.
10121
10122         * metadata.c (do_mono_metadata_parse_generic_class): Also set
10123         `gclass->context->container'.
10124
10125         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
10126         the `context->container' when creating a new MonoGenericContext.
10127
10128 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
10129
10130         * reflection.c (compare_genericparam): Sort params with identical
10131         owner by their number. Fixes gen-111 on sparc.
10132
10133 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
10134
10135         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
10136         around the domain changes.
10137
10138         * appdomain.c (mono_domain_unload): Handle the case when the thread
10139         calling Unload is itself being aborted during unloading. Fixes #70022.
10140
10141         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
10142
10143         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
10144         checkpoint_func as an icall so it gets a wrapper.
10145         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
10146         in the cross-appdomain wrappers too.
10147
10148         * threads.c (mono_thread_has_appdomain_ref): Make this public.
10149
10150         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
10151
10152         * reflection.c: Fix some memory leaks.
10153         
10154 2004-12-02  Martin Baulig  <martin@ximian.com>
10155
10156         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
10157
10158         * metadata.c (generic_class_cache): New static hashtable.
10159         (mono_metadata_lookup_generic_class): New public method.
10160
10161 2004-12-02  Martin Baulig  <martin@ximian.com>
10162
10163         * class.c (mono_class_create_from_typedef): Call
10164         mono_class_setup_parent() and mono_class_create_mono_type() before
10165         parsing the interfaces.
10166
10167 2004-12-02  Martin Baulig  <martin@ximian.com>
10168
10169         * metadata.c (generic_inst_cache): New static hashtable.
10170         (mono_metadata_lookup_generic_inst): New public function.
10171         (mono_metadata_inflate_generic_inst): New public function.
10172         (mono_metadata_parse_generic_inst): New public function.
10173         (do_mono_metadata_parse_generic_class): Use the new
10174         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
10175         since this'll also use the cache.
10176
10177         * reflection.c (mono_reflection_bind_generic_method_parameters):
10178         Use mono_metadata_lookup_generic_inst() to use the new cache.
10179
10180         * class.c (inflate_mono_type): Use
10181         mono_metadata_inflate_generic_inst() to inflate a generic
10182         instance; this'll also use the new cache.
10183
10184         * loader.c (method_from_methodspec): Use
10185         mono_metadata_parse_generic_inst() and
10186         mono_metadata_inflate_generic_inst() rather than parsing it
10187         manually, so we can use the new cache.
10188
10189 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
10190
10191         * threads.c (wait_for_tids): Do not incorrectly free threads when 
10192         the wait times out.
10193
10194 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
10195
10196         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
10197         iter->args based on whether parameters are passed in registers (i.e.
10198         MONO_ARCH_REGPARMS is defined)
10199
10200 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
10201
10202         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
10203         the exception message. Fixes #70070.
10204         (method_from_methodspec): Fix warnings.
10205
10206 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10207
10208         * process.c: (complete_path) return the path quoted
10209
10210 2004-12-01  Martin Baulig  <martin@ximian.com>
10211
10212         * class-internals.h (MonoGenericInst): New structure.
10213         (MonoGenericClass): Replaced `type_argc', `type_argv' and
10214         `is_open' with `MonoGenericInst *inst'.
10215         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
10216         `is_open' with `MonoGenericInst *inst'.
10217
10218 2004-11-30  Martin Baulig  <martin@ximian.com>
10219
10220         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
10221
10222         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
10223         to `generic_class_cache'.
10224
10225         * metadata.c
10226         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
10227         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
10228         (mono_generic_inst_is_valuetype): Renamed to
10229         mono_generic_class_is_valuetype().
10230
10231         * class-internals.h
10232         (MonoGenericInst): Renamed to MonoGenericClass.
10233         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
10234         (MonoClass): Renamed `generic_inst' to `generic_class'.
10235         (MonoGenericContext): Renamed `ginst' to `gclass'.
10236
10237         * object-internals.h
10238         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
10239
10240         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
10241         mono_reflection_generic_class_initialize().
10242
10243         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
10244         now known as "System.Reflection.MonoGenericClass".
10245         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
10246
10247 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
10248
10249         * class-internals.h: Added a flag field to MonoClass to cache the
10250         declarative security attributes actions associated with the class.
10251         * domain-internals.h: Added booleans to MonoJitInfo to cache the
10252         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
10253         applicable to the JITted method.
10254         * reflection.c|h: Added functions to extract (as flags) which security
10255         actions are available (declaratively) for a method, class or assembly.
10256         * metadata.c|h: Added functions to search the declarative security
10257         table in the metadata.
10258         
10259 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
10260
10261         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
10262         EXPORTEDTYPES are already in the class name cache, so there is no
10263         need to add extra code here to look at them. Just removes a bit of
10264         cruft.
10265
10266         (ves_icall_System_Environment_get_TickCount): No need for #if
10267         WINDOWS. We already have the code in io-layer.
10268
10269 2004-11-28  Martin Baulig  <martin@ximian.com>
10270
10271         * loader.c
10272         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
10273         Fixes gen-112.cs.
10274
10275 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
10276
10277         * assembly.c (do_mono_assembly_open): Instead of having a
10278         conditional WITH_BUNDLE, incorporate support for bundles here, by
10279         having a global `bundles' variable holding a pointer to the actual
10280         bundles. 
10281
10282         (mono_register_bundled_assemblies): New API call used by the
10283         bundle code. 
10284
10285         See mkbundle.1 for details.
10286         
10287 2004-11-27  Martin Baulig  <martin@ximian.com>
10288
10289         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
10290         the vtable for generic methods.
10291
10292 2004-11-26  Martin Baulig  <martin@ximian.com>
10293
10294         * metadata.c
10295         (mono_metadata_generic_method_hash): New public function.
10296         (mono_metadata_generic_method_equal): Likewise.
10297
10298         * class-internals.h
10299         (MonoGenericContainer): Added `GHashTable *method_hash'.
10300
10301         * reflection.c (ReflectionMethodBuilder): Added
10302         `MonoGenericContainer *generic_container'.
10303         (reflection_methodbuilder_to_mono_method): Don't create a new
10304         MonoGenericContainer each time we're called.
10305         (mono_reflection_bind_generic_method_parameters): Use
10306         `container->method_hash' to cache the results so we don't create a
10307         different method if we're called several times with the same
10308         arguments.
10309
10310         * loader.c (method_from_methodspec): Use the new
10311         `container->method_hash' here, too.
10312
10313 2004-11-26  Martin Baulig  <martin@ximian.com>
10314
10315         * class.c (inflate_generic_signature): Correctly compute
10316         `res->has_type_parameters'.
10317         (mono_class_vtable): Use the `has_type_parameters' flag to
10318         determine whether we're a generic method.
10319
10320         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
10321
10322 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
10323
10324         * object.c (mono_runtime_run_main): Fix a small memory leak.
10325
10326 2004-11-25  Martin Baulig  <martin@ximian.com>
10327
10328         * class.c (set_generic_param_owner): Fixed the loop.
10329
10330 2004-11-25  Martin Baulig  <martin@ximian.com>
10331
10332         * object.c (mono_class_vtable): Don't create any JIT wrappers for
10333         generic methods.
10334
10335 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
10336
10337         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
10338         names. Fixes #69787.
10339
10340 2004-11-24  Martin Baulig  <martin@ximian.com>
10341
10342         * class.c (mono_class_create_generic_2): If we don't have a
10343         `ginst->parent', inflate `gklass->parent' to get our parent.
10344
10345 2004-11-24  Martin Baulig  <martin@ximian.com>
10346
10347         * reflection.c (compare_genericparam): Correctly sort the
10348         GenericParam table; fixes #69779.
10349
10350 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
10351
10352         * reflection.c: When writing a PE file, don't create a huge
10353         buffer in memory. Just write the arrays we have to the file.
10354         This reduces memory usage.
10355
10356         * metadata-internals.h: MonoDynamicStream pefile is no longer used
10357         globally.
10358
10359 2004-11-17  Martin Baulig  <martin@ximian.com>
10360
10361         * class.c (mono_class_init): Don't setup `class->parent' for
10362         dynamic instances; moved this to mono_class_generic_2().
10363         (mono_class_create_generic): Also set `klass->inited' for dynamic
10364         generic instances.
10365         (mono_class_create_generic_2): Don't do anything for dynamic
10366         generic instances.  Set `klass->parent' here and also call
10367         mono_class_setup_parent() here. 
10368
10369         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
10370         `MonoType *parent' argument; set `ginst->parent' before calling
10371         mono_class_create_generic_2(), so we set the correct parent.
10372
10373 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
10374
10375         * reflection.c: allow getting attributes from ModuleBuilder
10376         (used by ikvm).
10377
10378 2004-11-17  Martin Baulig  <martin@ximian.com>
10379
10380         * class.c (mono_class_create_from_typedef): If a type parameter is
10381         inherited from an outer class, set its owner to that class.
10382
10383 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
10384
10385         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
10386           for (int*) written size. This fixes bug #69592.
10387
10388 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
10389
10390         * icall.c: Added IsAuthenticodePresnet internal call.
10391         * image.c|h: New function that check a MonoImage for an Authenticode
10392         signature in the certificate PE data directory.
10393         * security.c|h: New internal call to ask the runtime if an 
10394         Authenticode signature seems referenced in the PE header.
10395
10396 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
10397
10398         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
10399
10400         * reflection.c (mono_image_create_pefile): Free the assembly streams
10401         after writing out the assembly file.
10402
10403         * object.c (mono_runtime_run_main): Fix small memory leak.
10404
10405         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
10406         property access modifiers. Fixes #69389.
10407
10408 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
10409
10410         * domain.c, object.c, object-internals.h, domain-internals.h,
10411         object.h, marshal.c: keep dynamic code info per domain.
10412
10413 2004-11-15  Martin Baulig  <martin@ximian.com>
10414
10415         * class.c (mono_type_get_name_recurse): Put type arguments in
10416         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
10417         see bug #68387.
10418
10419 2004-11-15  Martin Baulig  <martin@ximian.com>
10420
10421         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
10422         (mono_class_setup_vtable): When computing `the_cname' for a
10423         generic instance, don't include the namespace since we'd otherwise
10424         add it twice.
10425
10426 2004-11-15  Martin Baulig  <martin@ximian.com>
10427
10428         * class.c (mono_class_create_generic): Changed return type to void.
10429         (mono_class_create_generic_2): New public function; setup
10430         `class->method', `class->field' and `class->interfaces' here
10431         instead of in mono_class_init().
10432
10433         * class.h (mono_class_create_generic): Moved to class-internals.h.
10434
10435 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
10436
10437         * reflection.c (mono_image_create_pefile): take a file HANDLE.
10438         rather than writing to memory, write to this file. Right now,
10439         we are just writting into a buffer, and copying that. However
10440         we can avoid the buffer later.
10441
10442         (mono_dynamic_stream_reset): new function
10443
10444         * icall.c, object-internals.h: update for the above.
10445
10446 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
10447
10448         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
10449         have been using gc'd memory. First it is slower, unlikely
10450         the comment in the source code said, secondly, it increases
10451         our footprint to do it in the gc.
10452
10453         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
10454         the method so that it does not have to copy to managed code.
10455
10456 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
10457
10458         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
10459
10460 2004-11-12  Martin Baulig  <martin@localhost>
10461
10462         * reflection.c (mono_image_create_token): Allow generic method
10463         definitions here, since they may appear in an `.override'; see
10464         gen-98/gen-99 for an example.
10465
10466 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
10467
10468         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
10469         #69365.
10470
10471         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
10472         descriptive.
10473
10474 2004-11-11  Martin Baulig  <martin@ximian.com>
10475
10476         * class.c (mono_class_setup_vtable): In an explicit interface
10477         implementation, the method name now includes the arity.
10478
10479 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
10480
10481         * object.c (mono_array_full_copy): Fix warning.
10482
10483 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
10484
10485         * appdomain.c: Removed look_for_method_by_name(). Use the new method
10486         mono_class_get_method_from_name() instead.
10487         
10488         * class-internals.h: Added two new types of wrappers. 
10489         Added MonoRemotingTarget enum. Added new trampoline function type, which
10490         takes an additional MonoRemotingTarget value as parameter, so it is
10491         possible to request a trampoline for a specific target.
10492         
10493         * class.c: Added new mono_class_get_method_from_name() method.
10494         
10495         * class.h: In MonoRemoteClass, we can have now to vtables, one for
10496         general remoting sinks and one specific for cross domain calls.
10497         
10498         * debug-helpers.c: Added new wrapper names.
10499         
10500         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
10501         of a remote class.
10502         
10503         * image.c: Porperly delete value objects form the remoting invoke hashtable.
10504         
10505         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
10506         with several other methods (mono_marshal_get_xappdomain_dispatch,
10507         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
10508         and others) can generate a fast remoting wrapper for cross domain calls.
10509         More information can be found in docs/remoting.
10510         Other changes: Removed mono_find_method_by_name, and used
10511         mono_class_get_method_from_name instead.
10512         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
10513         is stored in the remoting invoke hashtable.
10514         
10515         * marshal.h: published the new method for getting the xdomain wrapper,
10516         and also added a method for getting the adequate wrapper for a given
10517         method and target.
10518         
10519         * object-internals.h, object.c: Added a couple of methods for capying and
10520         cloning arrays.
10521         Modified mono_install_remoting_trampoline, which takes the new remoting
10522         trampoline that has a remoting target as parameter.
10523         mono_class_proxy_vtable now also takes a remoting target as parameter, and
10524         will return the most suitable vtable for the target.
10525         Added mono_remote_class_vtable, which returns the vtable of a remote class
10526         (which can be the normal remoting vtable or the xdomain vtable).
10527         
10528         * threads.c: the xdomain invoke and dispatch wrappers must also be
10529         protected against interruptions.
10530
10531 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10532
10533         * icall.c: use memmove in BlockCopyInternal when the source and
10534         destination arrays are the same.
10535
10536 2004-11-09  Martin Baulig  <martin@ximian.com>
10537
10538         * class-internals.h (MonoGenericContainer): Removed `method' and
10539         `signature', replaced them with `is_method' and `is_signature'
10540         flags.  Added `context'.
10541
10542         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
10543         instead of a `MonoGenericContainer *'.
10544
10545         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
10546         for dynamic type parameters.
10547         (mono_metadata_load_generic_params): Setup `container->context'.
10548
10549         * reflection.c (mono_reflection_setup_generic_class): Setup
10550         `tb->generic_container->context'.
10551         (do_mono_reflection_bind_generic_parameters): Use
10552         mono_class_inflate_generic_type() to correctly inflate types,
10553         rather than using our own hack just for MONO_TYPE_VAR.
10554
10555 2004-11-09  Martin Baulig  <martin@ximian.com>
10556
10557         * class.c (mono_class_inflate_generic_method): Small fix; don't
10558         crash here.
10559
10560         * icall.c
10561         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
10562         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
10563         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
10564         (ves_icall_Type_BindGenericParameters): Likewise.
10565         (ves_icall_Type_get_IsGenericInstance): Likewise.
10566         (ves_icall_Type_GetGenericParameterPosition): Likewise.
10567         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
10568         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
10569         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
10570
10571 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
10572
10573         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
10574         assembly versions and public key tokens. Fixes #69113.
10575
10576 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
10577
10578         * metadata.c: fix bug introduced with the type cache changes
10579         on 2004-11-06.
10580
10581 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
10582
10583         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
10584         the MonoClass pointer instead of the token in exception clauses.
10585         * reflection.c: updates for the above and make the code not depend
10586         on the structure of MonoExceptionClause.
10587
10588 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
10589
10590         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10591         Add support for dynamic assemblies. Fixes #69114.
10592
10593         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
10594
10595 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
10596
10597         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
10598         since most only those methods use it. the code member of
10599         MonoMethodPInvoke was dead, so that can be removed too. Also,
10600         remove inline_count (again, not used), and move slot so that it
10601         can share bits with some other flags. This saves 8 bytes in the
10602         structure and gives us about 50 kb back for mcs helloworld.cs
10603
10604         * *.[ch]: Do naming changes for the above.
10605
10606         * loader.c (mono_method_get_header): Lazily init the header
10607         on first access.
10608         (mono_get_method_from_token): don't init the header here
10609         (mono_free_method): the header may never be allocated
10610
10611         Overall, this saves 150 kb of unmanaged allocations
10612         for mcs helloworld.cs. That accounts for 10% of the unmanaged
10613         memory at runtime.
10614         
10615         * loader.c, loader.h (mono_method_get_header): new accessor.
10616
10617         * *.[ch]: use the above method. Prepares us to lazily load
10618         the header.
10619
10620         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
10621         three warnings, which are actual bugs (see 69206).
10622
10623         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
10624         unused. Saves a cool 4 bytes / method.
10625
10626 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
10627
10628         * metadata.c (builtin_types): Add types for System.Object here.
10629         (mono_metadata_parse_type_full): Cache MonoType*'s that are
10630         for a class or valuetype from klass->this_arg or klass->byval_arg.
10631
10632         On mcs for a hello world, this gets us down from 21836 MonoType's
10633         to 14560.
10634
10635         (mono_metadata_free_type): Account for the above change.
10636
10637 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
10638
10639         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
10640         exception instead of asserting if name is null.
10641         (ves_icall_System_AppDomain_GetData): Ditto.
10642
10643 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
10644
10645         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
10646         EnumBuilder.
10647
10648         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
10649         Return NULL when the domain does not have entry_assembly set.
10650
10651         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
10652         Add a 'resource_modules' argument.
10653         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
10654
10655         * reflection.c (mono_reflection_create_runtime_class): Move setting
10656         of wastypebuilder here, so mono_get_type_object () returns a MonoType
10657         for enums too.
10658
10659         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
10660         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
10661         Throw an ArgumentNullException if 'ptr' is null.
10662
10663         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
10664         assemblies here. Fixes #69020.
10665
10666 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
10667
10668         * reflection.c (build_compressed_metadata): Fix the previous patch for
10669         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
10670         the stack.
10671
10672 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
10673
10674         * assembly.c (mono_assembly_names_equal): Allow a match if one of
10675         the cultures is false. Fixes #69090.
10676
10677         * reflection.c (build_compressed_metadata): Fix invalid memory read 
10678         detected by valgrind.
10679         
10680         * reflection.c (mono_reflection_get_type): Avoid triggering a 
10681         TypeResolve multiple times for the same type. Fixes #65577.
10682
10683 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
10684
10685         * marshal.c: Avoid using ldftn to call managed functions. It is
10686         much slower than just a call.
10687
10688         * reflection.c (mono_module_get_object): free the basename we
10689         allocate here from glib.
10690         
10691         * reflection.c (ensure_runtime_vtable): make sure to free
10692         overrides.  Also, we were allocating an array of MonoMethod not an
10693         array of MonoMethod*.
10694
10695         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
10696
10697         * image.c (mono_image_close): free image->guid here.
10698
10699 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
10700
10701         * reflection.c: Fix some spec conformance issues with the PE file
10702         structures so mcs compiled apps run on the Net 2.0 beta.
10703
10704 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
10705
10706         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
10707         Implement this. Fixes #67264.
10708
10709         * debug-helpers.h debug-helpers.c marshal.c: Move 
10710         mono_find_method_by_name to debug-helpers.c.
10711
10712 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
10713
10714         * object.c (mono_release_type_locks): type_initialization_hash is
10715         a GHashTable.
10716
10717         * reflection.c object.c object-internals.h: Fix warnings.
10718
10719         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
10720         without accessors. Fixes #61561.
10721
10722         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
10723         application base from the root domain if not set. Fixes #65641.
10724         (mono_runtime_init): Fix warning.
10725
10726 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10727
10728         * appdomain.c: call mono_thread_pool_init.
10729         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
10730         of worker threads based on the number of CPUs and the environment
10731         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
10732         for non-windows (windows) systems.
10733
10734 2004-10-27  Chris Toshok  <toshok@ximian.com>
10735
10736         * mono-debug-debugger.c (write_class): don't call mono_class_init
10737         here, as even with the check for (!klass->init_pending), we get
10738         into a situation where we're hitting cycles in class
10739         initialization.  Fixes #68816.
10740
10741 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
10742
10743         * image.c: Avoid overwriting values in the loaded_images_hash when an
10744         assembly is loaded multiple times. Fixes #61152.
10745
10746         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
10747         so multiple satellite assemblies for the same name can be loaded.
10748         Fixes #68259.
10749
10750         * mono_domain_assembly_preload: Actually return the loaded assembly, 
10751         not NULL.
10752
10753         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
10754         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
10755
10756         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
10757         pending finalizers are not invoked after the appdomain has been 
10758         unloaded. Fixes #67862.
10759
10760 2004-10-22  Martin Baulig  <martin@ximian.com>
10761
10762         * mono-debug-debugger.c
10763         (mono_debugger_runtime_invoke): Don't box valuetypes.
10764
10765 2004-10-22  Chris Toshok  <toshok@ximian.com>
10766
10767         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
10768         don't hide private methods.
10769
10770 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
10771
10772         * icall.c: Allows the runtime to "share" (when known) the public key
10773         token of an assembly. This avoid the need to recalculate the token 
10774         (from the public key) in managed code.
10775
10776 2004-10-21  Chris Toshok  <toshok@ximian.com>
10777
10778         * debug-helpers.c (append_class_name): argh, revert last patch.
10779         
10780 2004-10-21  Chris Toshok  <toshok@ximian.com>
10781
10782         * debug-helpers.c (append_class_name): use '+' as the delimiter,
10783         not '/', so that it matches what the debugger uses to look up
10784         methods.
10785
10786 2004-10-21  Martin Baulig  <martin@ximian.com>
10787
10788         * mono-debug-debugger.c (mono_debugger_throw_exception): New
10789         public method; this is called each time an exception is thrown and
10790         allows the debugger to use exception catch points.
10791
10792 2004-10-21  Martin Baulig  <martin@ximian.com>
10793
10794         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
10795         the stack pointer and the exception object in some struct and pass
10796         that to the debugger.
10797
10798 2004-10-21  Chris Toshok  <toshok@ximian.com>
10799
10800         * mono-debug-debugger.c (do_write_class): add instance/static
10801         event support.  We don't expose "raise" or "other" yet.
10802         (event_is_static): new method.
10803
10804 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
10805
10806         * mono-debug-debugger.c
10807         (mono_debugger_handle_exception): Remove
10808         bogus return value for fussy compilers.
10809
10810 2004-10-20  Martin Baulig  <martin@ximian.com>
10811
10812         * mono-debug-debugger.c
10813         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
10814         (mono_debugger_handled_exception): Likewise.
10815
10816 2004-10-20  Martin Baulig  <martin@ximian.com>
10817
10818         * mono-debug-debugger.h (MonoDebuggerEvent): Added
10819         MONO_DEBUGGER_EVENT_EXCEPTION.
10820
10821         * mono-debug-debugger.c (mono_debugger_handle_exception): New
10822         public function to send the debugger a notification for an
10823         exception and inform it about a catch/finally clause.
10824
10825 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
10826
10827         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
10828         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
10829         fix 2.95 build. 
10830
10831         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
10832
10833 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
10834
10835         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
10836         marshalled as [In,Out]. Fixes #58325.
10837
10838 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
10839
10840         * reflection.c (mono_method_body_get_object): Implement some fields.
10841
10842 2004-10-12  Martin Baulig  <martin@ximian.com>
10843
10844         * reflection.c (mono_reflection_bind_generic_parameters): Small
10845         fix, correctly retrieve our parent from a generic instance.
10846
10847 2004-10-12  Martin Baulig  <martin@ximian.com>
10848
10849         * metadata.c (mono_metadata_generic_param_equal): We always have
10850         an owner.
10851
10852         * class.c
10853         (mono_class_from_generic_parameter): We need to have an owner.
10854         (my_mono_class_from_generic_parameter): Likewise.
10855
10856         * reflection.c (mono_reflection_setup_generic_class): Renamed to
10857         mono_reflection_create_generic_class() and added a new
10858         mono_reflection_setup_generic_class().  
10859         (mono_reflection_initialize_generic_param): If we're a nested
10860         generic type and inherited from the containing class, set our
10861         owner to the outer class.
10862
10863 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
10864
10865         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
10866
10867         * reflection.c (mono_method_body_get_object): New function to create
10868         a MethodBody object.
10869
10870         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
10871
10872 2004-10-11  Martin Baulig  <martin@ximian.com>
10873
10874         * metadata.c (_mono_metadata_type_equal): Renamed to
10875         do_mono_metadata_type_equal() and made static.
10876
10877 2004-10-11  Martin Baulig  <martin@ximian.com>
10878
10879         * appdomain.c: Bump corlib version number to 28.
10880
10881 2004-10-10  Martin Baulig  <martin@ximian.com>
10882
10883         * class-internals.h
10884         (MonoGenericInst): Added `MonoGenericContainer *container'.
10885         (MonoGenericMethod): Likewise.
10886         (MonoGenericContext): Likewise.
10887         (MonoGenericParam): Added `MonoGenericContainer *owner'.
10888
10889         * metadata.c
10890         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
10891         (do_mono_metadata_parse_generic_inst): Likewise.
10892         (mono_metadata_parse_type_full): New public method.  This is the actual
10893         mono_metadata_parse_type() implementation - with an additional
10894         `MonoGenericContainer *' argument.
10895         (mono_metadata_parse_array_full): Likewise.
10896         (mono_metadata_parse_signature_full): Likewise.
10897         (mono_metadata_parse_method_signature_full): Likewise.
10898         (mono_metadata_parse_mh_full): Likewise.
10899         (mono_type_create_from_typespec): Likewise.
10900         (mono_metadata_interfaces_from_typedef_full): New public method;
10901         this is similar to the other _full() methods, but we take a
10902         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
10903         (mono_metadata_parse_generic_param): Take an additional
10904         `MonoGenericContainer *' argument and lookup the MonoGenericParam
10905         from that container.
10906         (mono_metadata_generic_param_equal): New static method to compare
10907         two type parameters.
10908         (_mono_metadata_type_equal): New static method; takes an
10909         additional `gboolean signature_only' argument - if true, we don't
10910         compare the owners of generic parameters.
10911         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
10912         with a TRUE argument - do a signature-only comparision.
10913
10914         * loader.c: Use the new _full() methods and pass the
10915         MonoGenericContainer to them.
10916
10917         * object-internals.h (MonoReflectionTypeBuilder): Added
10918         `MonoGenericContainer *generic_container' field.
10919         (MonoReflectionMethodBuilder): Likewise.
10920
10921 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
10922
10923         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
10924         case initial images of dynamic assemblies.
10925
10926         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
10927
10928         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
10929
10930         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
10931         length of event->other array.
10932         (typebuilder_setup_events): Ditto.
10933
10934         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
10935         'assembly_by_name' and add an 'assemblies' list.
10936
10937         * assembly.h assembly.c: Add a new search hook for determining whenever
10938         an assembly is already loaded. Use this instead of searching in the
10939         loaded_assemblies list.
10940
10941         * domain.c appdomain.c: Implement the new search hook so loaded 
10942         assemblies are now scoped by appdomain. Fixes #67727.
10943
10944 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
10945
10946         * threads.c (mono_thread_attach): Initialize synch_lock field so
10947         mono_thread_detach works again.
10948
10949         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
10950         'lib' too. Fixes #63130.
10951
10952 2004-10-06  Jackson Harper  <jackson@ximian.com>
10953
10954         * culture-info-tables.h: regenerated.
10955
10956 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
10957
10958         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
10959         implemented by other interfaces in the result. Fixes #65764.
10960         
10961         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10962         Handle unloadable modules without crashing.
10963
10964         * image.c (load_modules): Revert the previous patch since modules must
10965         have a fixed index inside the array.
10966         
10967         * image.c (load_modules): Don't include native modules in the modules
10968         array.
10969
10970 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
10971
10972         * reflection.h: Add param_defaults field.
10973
10974         * reflection.c: Add support for parameter defaults in dynamic methods.
10975         Fixes #64595.
10976
10977         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
10978         an empty string when a type has no namespace. Fixes #64230.
10979
10980 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
10981
10982         * tabledefs.h: Added "internal" security actions to support non-CAS
10983         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
10984         Note: they do not seems to be used anymore in 2.0 (new metadata format)
10985
10986 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
10987
10988         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
10989         constructor of abstract class. Fixes #61689.
10990
10991 2004-10-04  Martin Baulig  <martin@ximian.com>
10992
10993         * class-internals.h (MonoGenericContainer): New type.
10994         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
10995         `MonoGenericContainer *generic_container'.
10996         (MonoClass): Replaced `gen_params' and `num_gen_params' with
10997         `MonoGenericContainer *generic_container'.
10998
10999         * metadata.c (mono_metadata_load_generic_params): Return a
11000         `MonoGenericContainer *' instead of a `MonoGenericParam *';
11001         removed the `num' argument.
11002
11003 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
11004
11005         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
11006         for dynamic images.
11007
11008         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
11009         machine fields.
11010
11011         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
11012
11013         * reflection.c: Save pe_kind and machine values into the generated
11014         image file.
11015
11016         * appdomain.c: Bump corlib version number.
11017
11018         * object-internals.h: Reorganize layout of LocalBuilder.
11019
11020         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
11021         New helper function.
11022
11023         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
11024         created MonoType for dynamic types. Fixes #66180.
11025
11026 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
11027
11028         * threadpool.c: the ares hashtable needs a critical section around it.
11029         this prevents some nasty segfaults
11030
11031 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
11032
11033         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
11034         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
11035         bug 67324).
11036         
11037 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
11038
11039         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
11040         
11041 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
11042
11043         * image.c: Always canonicalize image file names, to avoid loading
11044         the same assembly twice when referenced using a relative path.
11045
11046 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
11047
11048         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
11049
11050         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
11051
11052         * marshal.c: Fix warnings.
11053
11054 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
11055
11056         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
11057         attempting to marshal the delegate_trampoline as the method_addr.
11058         This patch has a static hashtable of marshalled delegates so that 
11059         we can map delegate_trampoline addresses back to delegates.  This
11060         allows a delegate passed to managed code to be passed back into native
11061         code.  Fixes #67039
11062
11063 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
11064
11065         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
11066
11067         * reflection.c (method_encode_code): Align method headers properly.
11068         Fixes #66025.
11069
11070 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
11071
11072         * marshal.c: In the runtime invoke wrapper, reset the abort
11073         exception if it is cached. This avoids the automatic rethrowal of 
11074         the exception after the catch of the wrapper. Also check for pending
11075         interruptions before calling the managed method. This is done using
11076         the new method emit_thread_force_interrupt_checkpoint, since the
11077         normal checkpoint method is ignored when running the invoke wrapper.
11078         * object.c: If the abort exception is rethrown, set the abort_exc
11079         field of the thread, so it will be rethrown aftere every catch.
11080         * threadpool.c: Only run an interruption checkpoint if what has been
11081         requested is a stop of the thread (aborts will be ignored).
11082         * threads.c: By default, a thread will now never be interrumped while
11083         running the runtime invoke wrapper (this ensures that runtime_invoke
11084         will always return to the caller if an exception pointer is provided).
11085         There is a new special method mono_thread_force_interruption_checkpoint()
11086         to force an interruption checkpoint even if running a protected
11087         wrapper, which is used by the same runtime invoke wrapper to do a check
11088         at a safe point.
11089
11090 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
11091
11092         * object.c, object-internals.h: Implemented mono_release_type_locks,
11093         which releases the cctor locks held by a thread.
11094         * threads.c, threads.h: In thread_cleanup, release cctor locks held
11095         by a thread. Added mono_thread_exit() method to be used to safely stop
11096         a thread.
11097
11098 2004-09-28  Raja R Harinath  <rharinath@novell.com>
11099
11100         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
11101         Move null check before dereference.  Avoid indexing beyond the end
11102         of the 'modules' array.
11103
11104 2004-09-28  Raja R Harinath  <rharinath@novell.com>
11105
11106         * metadata-internals.h (MonoImage): Add module_count field.
11107         * image.c (load_modules): Set image->module_count.
11108         (mono_image_load_file_for_image): Use image->module_count.
11109         * reflection.c (mono_image_load_module): Append to image->modules array 
11110         of dynamic assembly.
11111         (mono_module_get_object): Fix loop to actually increment index.
11112         Use image->module_count.
11113         * assembly.c (mono_assembly_load_references): Use image->module_count.
11114         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
11115         Likewise.
11116
11117 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
11118
11119         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
11120         Avoid assert on generic types.
11121
11122 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
11123
11124         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
11125
11126         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
11127
11128         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
11129         function to convert a MarshalSpec structure to its managed counterpart.
11130
11131         * reflection.c: Fix warnings.
11132         
11133         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
11134         field.
11135
11136         * icall.c (mono_create_icall_signature): Fix build.
11137
11138 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
11139
11140         * icall.c: Add MakePointType icall.
11141
11142         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
11143         warnings.
11144
11145 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11146
11147         * threadpool.c: reuse allocated slots in the queue.
11148
11149 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
11150
11151         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
11152
11153         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
11154
11155         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
11156         previous change.
11157
11158         * tabledefs.h: Add constants for pinvoke attributes BestFit and
11159         ThrowOnUnmappableChar.
11160
11161         * icall.c (ves_icall_Type_GetPacking): New icall.
11162
11163 2004-09-24  Martin Baulig  <martin@ximian.com>
11164
11165         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
11166
11167 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11168
11169         * appdomain.c:
11170         (mono_domain_set): allow setting a domain that is being unloaded.
11171         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
11172         being unloaded.
11173
11174 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
11175
11176         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
11177         the GetCustomAttributes icall.
11178
11179 2004-09-23  Martin Baulig  <martin@ximian.com>
11180
11181         * object-internals.h (MonoReflectionGenericParam): Replaced
11182         'has_ctor_constraint', `has_reference_type' and `has_value_type'
11183         with `guint32 attrs'.
11184
11185 2004-09-23  Martin Baulig  <martin@ximian.com>
11186
11187         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
11188
11189 2004-09-23  Martin Baulig  <martin@ximian.com>
11190
11191         * object-internals.h (GenericParameterAttributes): New enum.
11192
11193 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
11194
11195         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
11196         
11197         * class.c (init_events): Fill out event->other field.
11198
11199         * class.c: Fix warnings.
11200
11201         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
11202
11203 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
11204
11205         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
11206         walk which doesn't supply the IL offset.
11207
11208 2004-09-22  Martin Baulig  <martin@ximian.com>
11209
11210         * reflection.c (mono_reflection_setup_internal_class): If we're
11211         System.ValueType, System.Object or System.Enum, set
11212         `klass->instance_size' and create the vtable.
11213         (mono_reflection_create_internal_class): If we're an enum type,
11214         get the base class from our current corlib.
11215
11216 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
11217
11218         * reflection.h (MonoResolveTokenError): New type.
11219
11220         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
11221         icall.
11222
11223         * icall.c: Add an 'error' argument to the ResolveToken icalls.
11224
11225 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
11226
11227         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
11228         Support also calling constructors, but only for already allocated objects.
11229
11230 2004-09-17  Geoff Norton <gnorton@customerdna.com>
11231
11232         * reflection.c (type_get_qualified_name): If the klass is null
11233         return the typename to avoid a NullRefEx.
11234         (encode_cattr_value): Get the qualified name of the boxed type,
11235         not the underlying enumtype.  Fixes #62984.
11236
11237 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
11238
11239         * marshal.c: Fix problems with previous checkin.
11240
11241 2004-09-21    <vargaz@freemail.hu>
11242
11243         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
11244         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
11245
11246         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
11247
11248 2004-09-21  Geoff Norton <gnorton@customerdna.com>
11249
11250         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
11251         should only return a type for pointers, arrays, and passbyref types.
11252         Fixes bug #63841.
11253
11254 2004-09-21  Martin Baulig  <martin@ximian.com>
11255
11256         * domain.c (mono_debugger_check_runtime_version): New public
11257         function.
11258
11259         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
11260
11261 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
11262
11263         * reflection.c: Added missing sort to the declarative security 
11264         attributes table. MS implementation stops seeing the attributes if the
11265         token number regress in the table (as shown by ildasm and permview).
11266
11267 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
11268
11269         * object-internals.h (MonoReflectionModule): Add 'token' field.
11270         
11271         * reflection.c (mono_reflection_get_token): Add support for Module
11272         and Assembly.
11273         (mono_module_get_object): Set 'token' field.
11274         (mono_module_file_get_object): Set 'token' field.
11275
11276         * icall.c: Add new Assembly and Module icalls.
11277
11278         * appdomain.c: Bump corlib version.
11279
11280 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
11281
11282         * loader.h loader.c class.h class.c: Add helper functions for obtaining
11283         tokens of metadata objects.
11284
11285         * reflection.h reflection.c (mono_reflection_get_token): New function
11286         to obtain the token of a metadata object.
11287
11288         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
11289
11290 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
11291
11292         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
11293         
11294         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
11295
11296 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
11297
11298         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
11299         * object-internals.h: Added 3 MonoArray* members to MonoReflection
11300         AssemblyBuilder to access the permissions set in the class lib.
11301         * reflection.c: Added security attributes encoding step in 
11302         mono_image_build_metadata.
11303         * tabledefs.h: Added new security actions defined in 2.0:
11304         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
11305
11306 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
11307
11308         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
11309         macro parameter.
11310
11311 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
11312  
11313         * locales.c: nullify the ICU_collator member of CompareInfo when it is
11314           finalized. There where random SIGSEVs at program termination, when
11315           an object being finalized was trying to do a string comparison and
11316           the current culture was already finalized.
11317  
11318 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11319
11320         * threads.c: call thread_cleanup before finishing the thread if we get
11321         there.
11322
11323 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
11324
11325         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
11326         assemblies from the parent. Fixes #65665.
11327
11328 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
11329
11330         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
11331         modifiers.
11332
11333 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
11334
11335         * reflection.h: add prototype for mono_get_dbnull_object
11336         * reflection.c: add prototypes for get_default_param_value_blobs 
11337         and mono_get_object_from_blob for fussier compilers
11338
11339 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
11340  
11341         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
11342         false deadlock checks in class initialization.
11343  
11344 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
11345
11346         * image.c (mono_image_addref): Fix comment.
11347
11348         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
11349         possible.
11350
11351 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
11352
11353         * reflection.c (mono_param_get_objects): Modified to return
11354         ParameterInfo.DefaultValue object.
11355
11356         (get_default_param_value_blobs):
11357         (mono_get_object_from_blob):
11358         (mono_get_dbnull_object): New helper routines. 
11359
11360         * object.c (mono_get_constant_value_from_blob): New helper routine
11361         carved out from get_default_field_value ()
11362
11363         * object-internals.h (mono_get_constant_value_from_blob): Added
11364         function declaration.
11365
11366 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
11367
11368         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
11369         referenced assemblies. Fixes #62135.
11370
11371         * exception.h exception.c (mono_get_exception_file_not_found2): New
11372         helper function.
11373
11374 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
11375
11376         * class.h class.c: Add mono_type_get_underlying_type ().
11377
11378 2004-09-09  Geoff Norton <gnorton@customerndna.com>
11379
11380         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
11381         Fix GetTypes() to support dynamically created assemblies.
11382
11383 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
11384
11385         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
11386         
11387         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
11388         previous patch.
11389
11390         * reflection.h reflection.c loader.c: Allow dynamic construction of
11391         pinvoke methods. Fixes #65571.
11392         
11393         * reflection.c (mono_reflection_get_type): Revert previous change since
11394         it causes regressions.
11395
11396 2004-09-08  Martin Baulig  <martin@ximian.com>
11397
11398         * class.c (class_compute_field_layout): Don't call
11399         mono_class_layout_fields() for open generic instances.
11400
11401 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
11402         * threads.c appdomain.c: fix typo in GC macro
11403
11404 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11405
11406         * threads.c: don't call mono_thread_detach() in start_wrapper(),
11407         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
11408
11409 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
11410
11411         * image.c (mono_image_close): Applied patch from 
11412         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
11413         assembly is loaded multiple times from data.
11414         
11415         * image.c (mono_image_open): Fix warning.
11416
11417 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11418
11419         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
11420         once. Fixes #58334.
11421         
11422         * reflection.c (mono_reflection_create_runtime_class): Initialize
11423         klass->nested_classes. Fixes #61224.
11424
11425 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
11426
11427         * threads.c: sched_yield() on exit, to allow threads to quit.
11428
11429 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11430
11431         * object.c (mono_unhandled_exception): Remove leftover debug code.
11432
11433 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
11434
11435         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
11436
11437 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11438
11439         * marshal.c (emit_marshal_array): Really null terminate string arrays.
11440         
11441         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
11442
11443 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11444
11445         * marshal.c (emit_marshal_array): Null terminate string arrays.
11446         
11447         * marshal.c (raise_auto_layout_exception): Fix warning.
11448
11449         * reflection.c (mono_param_get_objects): Initialize the default value
11450         with DBNull.Value, not null. Fixes #62123.
11451
11452 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
11453
11454         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
11455         throw an exception with a cute explanation.
11456
11457 2004-09-06  Dick Porter  <dick@ximian.com>
11458
11459         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
11460         Close the new process's thread handle, as we don't use it.  The
11461         handle stays around forever otherwise.
11462
11463 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11464
11465         * object.c (arith_overflow): Fix warning.
11466
11467         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
11468         calling conventions in method refs. Fixes #65352.
11469
11470         * reflection.c: Fix warnings.
11471
11472 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
11473
11474         * icall.c: Add a new icall for Array.Clear
11475
11476 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
11477
11478         * object.c: When allocating an array, we have to throw
11479         an overflow exception if any of the lengths are < 0.
11480
11481 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11482
11483         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
11484         properly. Also move implementation of string array marshalling to 
11485         managed code. Fixes #42316.
11486
11487 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11488
11489         * assembly.c: provide more information when loading an assembly fails.
11490
11491 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11492
11493         * filewatcher.c: don't expect the development fam package to be
11494         installed.
11495
11496 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
11497
11498         * marshal.c: Make a copy of the signature cookie since it will be
11499         freed by the caller.
11500         
11501         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
11502
11503         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
11504
11505         * metadata.c (mono_metadata_free_marshal_spec): New function to free
11506         marshal specs.
11507
11508         * marshal.c: More refactoring.
11509         
11510         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
11511         smaller functions.
11512
11513 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
11514
11515         * object.c: In mono_message_invoke, fill the output parameter array after
11516           calling the managed method (it was done before the call). This fixes
11517           bug #59299.
11518
11519 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
11520
11521         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
11522         as well.
11523
11524 2004-09-02  Martin Baulig  <martin@ximian.com>
11525
11526         * class.c (mono_class_instance_size): Don't allow generic type
11527         definitions or open generic instances.
11528         (mono_class_array_element_size): If we're a value type, call
11529         mono_class_instance_size() on the original class.
11530
11531         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
11532         handle generic instances.
11533
11534         * mono-debug-debugger.c (write_type): Handle generic instances
11535         like classes.
11536
11537 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
11538
11539         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
11540         the allocation request fails. Fixes #65089.
11541
11542         * object.c (mono_runtime_free_method): Do not call mono_free_method.
11543         
11544         * object.c (mono_runtime_free_method): New function to free a dynamic
11545         method.
11546
11547         * marshal.c (mono_delegate_free_ftnptr): New function to free the
11548         delegate trampoline.
11549
11550         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
11551         with hasthis as dynamic,
11552
11553         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
11554
11555         * domain.c (mono_jit_info_table_remove): New function to remove an
11556         entry from the jit info table.
11557
11558         * class-internals.h (MonoMethod): Add 'dynamic' field.
11559
11560         * loader.c: Fix warnings.
11561
11562 2004-09-01  Martin Baulig  <martin@ximian.com>
11563
11564         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
11565         instead of mono_debugger_lock() because the latter one is a no-op
11566         unless running in the debugger.
11567
11568 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
11569
11570         * class.c (class_compute_field_layout): Classes with auto-layout or
11571         reference fields are not blittable.
11572         
11573 2004-09-01  Dick Porter  <dick@ximian.com>
11574
11575         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
11576         mono_image_get_filename() to get the assembly location.
11577
11578         * icall.c:
11579         * metadata.h: Fix compile warnings
11580
11581 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
11582
11583         * class.c (class_compute_field_layout): System.Object is blittable.
11584
11585         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
11586         as in/out. Fixes #59909.
11587
11588 2004-09-01  Martin Baulig  <martin@ximian.com>
11589
11590         * metadata.h (MONO_TYPE_ISREFERENCE): Call
11591         mono_metadata_generic_inst_is_valuetype() if we're a generic
11592         instance to check whether our underlying type is a reference type.
11593
11594 2004-09-01  Martin Baulig  <martin@ximian.com>
11595
11596         * metadata.c (mono_type_size): If we're a generic instance, call
11597         mono_class_value_size() for value types.
11598
11599 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
11600
11601         * marshal.c: Implement more custom marshalling functionality. Fixes
11602         #64915.
11603
11604 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
11605
11606         * mono-debug.c, debug-mono-symfile.c: add some locking love.
11607
11608 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
11609
11610         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
11611
11612         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
11613
11614         * icall.c: Fix some warnings.
11615
11616         * threads.c (abort_appdomain_thread): Fix unref errors.
11617         (mono_thread_current): Fix THREAD_DEBUG define.
11618
11619 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
11620
11621         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
11622
11623         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
11624
11625 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
11626
11627         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
11628         string arrays.
11629
11630 2004-08-28  Martin Baulig  <martin@ximian.com>
11631
11632         * metadata.c
11633         (mono_metadata_generic_inst_is_valuetype): New public function.
11634
11635         * metadata.h (MONO_TYPE_ISSTRUCT): Call
11636         mono_metadata_generic_inst_is_valuetype() if we're a generic
11637         instance to check whether our underlying type is a valuetype.
11638
11639 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
11640
11641         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
11642         #63768.
11643
11644 2004-08-25  Martin Baulig  <martin@ximian.com>
11645
11646         * loader.c (mono_get_method_from_token): Abstract methods can also
11647         be generic and thus have type parameters.
11648
11649         * metadata-internals.h
11650         (MonoDynamicImage): Added `GPtrArray *gen_params'.
11651
11652         * reflection.c (mono_image_get_generic_param_info): Don't create a
11653         metadata row, just add an entry to the `gen_params' array.
11654         (build_compressed_metadata): Sort the `gen_params' array and then
11655         actually create the metadata.
11656
11657 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11658
11659         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
11660
11661 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
11662
11663         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
11664
11665 2004-08-24  Martin Baulig  <martin@ximian.com>
11666
11667         * class.cs (mono_class_is_subclass_of): Like an interface, a
11668         generic instance also derives from System.Object.
11669
11670 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
11671
11672         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
11673         custom modifiers to be in any order. Fixes #61990.
11674
11675 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
11676
11677         * object.c: Register mono_object_new_fast icall.
11678         
11679         * object.c (mono_class_get_allocation_ftn): Return to calling
11680         mono_object_new_fast, since it seems faster to compute the object 
11681         size in unmanaged code than passing it as a parameter.
11682
11683         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
11684
11685         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
11686         this function with Boehm as the oom handler, so we don't have to check
11687         the result of GC_malloc.
11688
11689         * object.c: Remove checks for oom.
11690
11691         * object.h object.c (mono_class_get_allocation_ftn): New function to
11692         return the icall which can be used to allocate an instance of a given
11693         class. 
11694
11695         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
11696
11697         * class-internals.h: Add 'enabled' field.
11698
11699 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
11700
11701         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
11702
11703 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
11704         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
11705         value 0x0010.
11706
11707 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
11708
11709         * appdomain.c: use the Tls function for appdomain too,
11710         at Zoltan's request. Actually return in mono_context_get
11711
11712         * appdomain.c, profiler.c, threads.c: use __thread
11713
11714 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
11715
11716         * appdomain.c threads.c: Call GC_CreateThread on windows.
11717
11718         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
11719         multiple libraries since this don't work on windows.
11720
11721 2004-08-18  Martin Baulig  <martin@ximian.com>
11722
11723         * class-internals.h
11724         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
11725         MonoMethodHeader.
11726
11727         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
11728         MonoMethodNormal since we also need it for abstract and interface
11729         methods.
11730
11731         * reflection.c
11732         (build_compressed_metadata): Sort the GenericParam table.
11733         (mono_image_create_token): Added `gboolean create_methodspec'
11734         argument; this is false when generating a MethodImpl token.
11735         (reflection_methodbuilder_to_mono_method): Abstract and interface
11736         methods may also have generic parameters.
11737
11738 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
11739
11740         * appdomain.c: thread local alloc
11741
11742 2004-08-17  Martin Baulig  <martin@ximian.com>
11743
11744         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
11745
11746         * icall.c
11747         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
11748         argument.
11749
11750         * class.c (mono_type_get_full_name): New public function.
11751         (mono_type_get_name): Don't include the type arguments.
11752
11753 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
11754
11755         * Makefile.am: Build static versions of libmetadata and libmonoruntime
11756         for inclusion into the mono executable.
11757
11758 2004-08-16  Martin Baulig  <martin@ximian.com>
11759
11760         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
11761         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
11762
11763 2004-08-14  Martin Baulig  <martin@ximian.com>
11764
11765         * class.c (dup_type): Also copy the `byref' field.
11766
11767 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
11768
11769         * reflection.c (create_dynamic_mono_image): Revert the last change 
11770         since it breaks bootstrap.
11771
11772 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
11773
11774         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
11775
11776         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
11777         not free them with g_free.
11778
11779 2004-08-11  Martin Baulig  <martin@ximian.com>
11780
11781         * reflection.c (mono_reflection_setup_internal_class): Also call
11782         mono_class_setup_mono_type() if we already have a `tb->type.type'.
11783
11784 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
11785
11786         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
11787         called during default (first) AppDomain creation. Keep track of
11788         Evidence when loading assemblies.
11789
11790 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
11791
11792         * opcodes.c, opcodes.h: reduce runtime relocations.
11793
11794 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
11795
11796         * culture-info.h, locales.c: fixes and chages to sue the new
11797         optimized format of the locale data.
11798         * culture-info-tables.h: regenerated.
11799
11800 2004-08-06  Geoff Norton <gnorton@customerdna.com>
11801         
11802         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
11803
11804 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
11805
11806         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
11807         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
11808         * domain-internals.h: icall declaration.
11809         * icall.c: icall registration.
11810         * object-internals.h: New fields in MonoAssembly for CAS.
11811
11812 2004-08-05  Duncan Mak  <duncan@ximian.com>
11813
11814         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
11815         CEE_LDELEM_ANY.
11816
11817 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
11818
11819         * reflection.c: fix to deal with object[] arrays in custom ctors
11820         (bug #62550).
11821
11822 2004-08-05  Martin Baulig  <martin@ximian.com>
11823
11824         * class.c (mono_class_array_element_size): Added support for
11825         generic instances and correctly handle "recursive" types.
11826
11827 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
11828
11829         * assembly.c: Fix warnings.
11830
11831 2004-08-04  Martin Baulig  <martin@ximian.com>
11832
11833         * class.c
11834         (mono_type_get_name_recurse): Added `gboolean include_arity'
11835         argument specifying whether or not we should include the generic
11836         arity in the type name.
11837         (_mono_type_get_name): New static function.
11838         (mono_class_setup_vtable): If we're a generic instance, don't
11839         include the generic arity in the names of explicit method
11840         implementations.        
11841
11842 2004-08-03  Martin Baulig  <martin@ximian.com>
11843
11844         * class.c (mono_type_get_name_recurse): Enclose the generic type
11845         arguments in `<', '>'.
11846
11847 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11848
11849         * gc.c: make GC warning messages use the trace API, they are just
11850         noise to most of the users.
11851
11852 2004-08-03  Martin Baulig  <martin@ximian.com>
11853
11854         * debug-mono-symfile.c (read_string): Correctly read the string.
11855
11856 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
11857
11858         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
11859         
11860         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
11861         icalls.
11862         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
11863
11864 2004-07-30  Martin Baulig  <martin@ximian.com>
11865
11866         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
11867         Reflect latest symbol writer changes.   
11868
11869 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
11870
11871         * object.c: always create an object if null is passed
11872         to Invoke() where a valuetype is expected.
11873
11874 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
11875
11876         * marshal.c (mono_marshal_init): make managed
11877         signatures match native ones better for 64bits.
11878
11879 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11880
11881         * appdomain.c: hack to build correctly the private bin path on windows.
11882         Fixes bug #61991.
11883
11884 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
11885
11886         * assembly.c: Load mscorlib from the correct framework directory
11887           (mono/<version>/mscorlib.dll).
11888         * appdomain.h: Added prototypes for new functions.
11889         * internals.h: Added some prototypes.
11890         * domain.c: When initializing the runtime, get from the executable and
11891           the configuration files the runtime version that the app supports.
11892           Added support methods for reading app.exe.config. Added list of versions
11893           supported by the JIT. Added two new methods: mono_init_from_assembly,
11894           which initializes the runtime and determines the required version from
11895           the provided exe file, and mono_init_version, which initializes
11896           the runtime using the provided version.
11897         * icall.c: Get machine.config from version-specific directory.
11898         * reflection.c: When generating an image, embed the version number
11899           of the current runtime.
11900
11901 2004-07-28  Dick Porter  <dick@ximian.com>
11902
11903         * socket-io.c
11904         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
11905         returned sockaddr size before creating the remote address object.
11906         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
11907         61608.
11908
11909 2004-07-28  Dick Porter  <dick@ximian.com>
11910
11911         * locales.c (string_invariant_compare_char): Fix invariant char
11912         compares between upper and lower cases.  Fixes bug 61458.
11913
11914 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
11915         
11916         * marshal.c: actually cache stelem.ref wrappers.
11917         
11918 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
11919
11920         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
11921         sections and remove the mono_cli_rva_map () function.
11922
11923 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
11924
11925         * debug-mono-symfile.c: fix one more endianess issue, from a patch
11926         by Geoff Norton (<gnorton@customerdna.com>).
11927
11928 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11929
11930         * class.c: fix class loads for pointer types (typeof(int) !=
11931         typeof(int*)).
11932
11933 2004-07-27  Martin Baulig  <martin@ximian.com>
11934
11935         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
11936         reading the debugging information from an external ".mdb" file.
11937
11938 2004-07-24  Martin Baulig  <martin@ximian.com>
11939
11940         * reflection.c (mono_image_get_type_info): Only write a class
11941         layout entry if we actually have a size or a packing size.
11942
11943 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
11944
11945         * reflection.c (type_get_fully_qualified_name): 
11946         insert cast to get type checking of ?: with non-gcc compilers
11947
11948 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
11949
11950         * rand.c: use g_getenv for both lookups of
11951         MONO_EGD_SOCKET
11952
11953 2004-07-17  Martin Baulig  <martin@ximian.com>
11954
11955         * reflection.c (mono_reflection_bind_generic_method_parameters):
11956         Set `gmethod->reflection_info'.
11957
11958 2004-07-17  Martin Baulig  <martin@ximian.com>
11959
11960         * class.c (mono_class_create_from_typedef): Insert the newly
11961         created class into the hash table before computing the interfaces
11962         since we could be called recursively.
11963
11964 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
11965
11966         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
11967         function to implement stelem.ref in managed code
11968         * class-internals.h, debug-helpers.c: a new wrapper type
11969         for the above.
11970
11971 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
11972
11973         * gc.c: allow GC handles to work even when no GC is compiled in.
11974         Fix part of bug #61134 (GetAddrOfPinnedObject).
11975
11976 2004-07-13  Peter Williams  <peter@newton.cx>
11977  
11978         * process.c (complete_path): Make sure we don't attempt to execute
11979         directories.
11980  
11981 2004-07-12  Geoff Norton <gnorton@customerdna.com>
11982
11983         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
11984           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
11985           and will add/subtract the hour if needed
11986
11987 2004-07-12  Martin Baulig  <martin@ximian.com>
11988
11989         * reflection.c (mono_field_get_object): If we have
11990         `field->generic_info', take the attributes from
11991         `field->generic_info->generic_type'.    
11992
11993 2004-07-12  Martin Baulig  <martin@ximian.com>
11994
11995         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
11996         This function must be called before initializing the runtime.
11997         (mono_debug_init_1): New function; call this after initializing
11998         the runtime, but before loading the assembly.  It tells the
11999         debugger to load corlib and the builtin types.
12000
12001         * mono-debug-debugger.c: Did some larger changes in the debugging
12002         code; support recursive class declarations, make sure we actually
12003         add all classes.
12004
12005 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12006
12007         * debug-helpers.c: undo my previous patch and fixed the real issue in
12008         ../mini/exceptions-x86.c
12009
12010 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12011
12012         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
12013         when no HOME env. variable was set and a NullRef was thrown in a .cctor
12014         called from other .cctors.
12015
12016 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
12017
12018         * loader.c: Removed the mono_loader_wine_init hack now that we are
12019         doing a managed version of Windows.Forms.
12020
12021 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
12022
12023         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
12024         threadpool.c, threads.c: remove static data from rootset.
12025
12026 2004-07-09  Dick Porter  <dick@ximian.com>
12027
12028         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
12029         Don't do any more processing if the matched length was 0.  It was
12030         increasing the size of the string before.  Fixes bug 61167.
12031
12032 2004-07-09  Dick Porter  <dick@ximian.com>
12033
12034         * socket-io.h:
12035         * socket-io.c
12036         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
12037         Add support for SO_PEERCRED if its available.
12038
12039 2004-07-09  Peter Bartok <pbartok@novell.com>
12040         * loader.c: winelib.exe.so error message is now only displayed if
12041         MONO_DEBUG is set. To help us avoid questions when people are trying
12042         out the new Managed.Windows.Forms.
12043
12044 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
12045
12046         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
12047         for isinst and castclass wrappers.
12048
12049         * class-internals.h icall.c: Move registration and lookup of JIT icalls
12050         to libmetadata from the JIT, so they could be used by the marshalling
12051         code and the interpreter.
12052
12053         * marshal.c: Register marshalling related JIT icalls here instead of
12054         in mini.c. Use CEE_MONO_ICALL instead of the family of 
12055         CEE_MONO_PROC<x> opcodes to call marshalling functions.
12056
12057         * metadata.h: Remove unneeded marshalling conversions.
12058
12059         * opcodes.c: Update for new opcodes.
12060         
12061 2004-07-08  Martin Baulig  <martin@ximian.com>
12062
12063         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
12064         (mono_debug_get_domain_data): Make this function static.
12065
12066 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
12067
12068         * gc.c, object.h: add nice GC handle API for embedders.
12069
12070 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
12071
12072         * reflection.c: more changes for the new api
12073
12074         * object.c: When we reflect on a field w/ a constant value, it
12075         will not have a memory location, so we must access metadata. Also,
12076         allow easier reading of strings so that we can read them from
12077         the constant data.
12078
12079         * class.c (mono_class_layout_fields): no need for literal fields here.
12080
12081         * class-internals.h: api changes for const fields
12082
12083         * icall.c (ves_icall_get_enum_info): use new apis for const fields
12084
12085 2004-07-06  Martin Baulig  <martin@ximian.com>
12086
12087         * mono-debug.h: Increment version number to 44.
12088
12089         * mono-debug.c (mono_debug_add_wrapper): The second argument is
12090         now a gpointer, rewrote this whole method.
12091
12092         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
12093         function.  Add information about the wrapper in a new "misc table".
12094
12095         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
12096         for the new misc table.
12097
12098 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
12099
12100         * metadata-internals.h image.c: Add a cache for helper signatures.
12101
12102         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
12103
12104 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
12105
12106         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
12107         delegates from a delegate. Fixes #61033.
12108         
12109         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
12110         marshalling of stringbuilder arrays. Fixes #59900.
12111
12112 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
12113
12114         * icall.c: Add EnumBuilder:setup_enum_type icall.
12115
12116 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
12117
12118         * icall.c: Added a new icall for the property version of
12119         OffsetOfStringData.
12120
12121 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
12122
12123         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
12124         it has a constant size across platforms.
12125
12126         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
12127         stack trace.
12128
12129 2004-06-29  Martin Baulig  <martin@ximian.com>
12130
12131         * mono-debug.c (mono_debug_add_method): Protect the whole function
12132         in mono_debugger_lock(), not just parts of it.
12133
12134 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
12135
12136         * reflection.c: make sure padding bytes in heaps are zeroed.
12137
12138 2004-06-24  David Waite  <mass@akuma.org>
12139
12140         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
12141         image.c, loader.c, locales.c, marshal.c, metadata.c,
12142         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
12143         string-icalls.c, threads.c: change to C90-style comments from C99 /
12144         C++ -style
12145
12146 2004-06-24  Dick Porter  <dick@ximian.com>
12147
12148         * threads.c
12149         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
12150         return createdNew.  Fixes bug 60412.
12151
12152         * threads-types.h: 
12153         * icall.c: Add createdNew parameter to CreateMutex icall
12154
12155 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
12156
12157         * reflection.c, object-internals.h: save default value in params.
12158
12159 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12160
12161         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
12162         no need to build a new path combining that with the application base.
12163         Fixes bug #60442.
12164
12165 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
12166
12167         * reflection.c: fixed minor standard compliance issues.
12168
12169 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
12170
12171         * reflection.c: fixed issue with encoding some custom attributes
12172         (arrays in properties and fields, bug #60411).
12173
12174 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12175
12176         * reflection.c: fix start address when copying the public key token.
12177
12178 2004-06-23  Martin Baulig  <martin@ximian.com>
12179
12180         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
12181         the `exc' object in a static object to put it into the GC's root set.
12182
12183 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
12184
12185         * reflection.c: make mono_reflection_setup_internal_class ()
12186         callable a second time to setup a new parent class.
12187
12188 2004-06-23  Dick Porter  <dick@ximian.com>
12189
12190         * threads.c: Check for WAIT_IO_COMPLETION return values.
12191
12192 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
12193
12194         * appdomain.c: Removed the g_free on the public key token. Now copy 
12195         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
12196         * assembly.c: Added public key token string value when loading 
12197         assemblies. Fix bug #60439.
12198         * icall.c: Added missing informations (like public key) in 
12199         GetReferencedAssemblies. Fix #60519.
12200         * image.h: Changed definition for public key token from const char*
12201         public_tok_value to guchar public_key_token [17];
12202         * reflection.c: Updated for changes to public key token.
12203
12204 2004-06-22  Lluis Sanchez Gual
12205
12206         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
12207         for the field in base classes.
12208
12209 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
12210
12211         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
12212         mark headers as not supported, they are installed only for use by the
12213         debugger.
12214
12215 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
12216
12217         * *.c, *.h: avoid namespace pollution in public headers.
12218
12219 2004-06-21  Martin Baulig  <martin@ximian.com>
12220
12221         * exception.c (mono_get_exception_security): It's in
12222         "System.Security", not in "System".
12223
12224         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
12225         the exception classes.
12226
12227 2004-06-21  Martin Baulig  <martin@ximian.com>
12228
12229         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
12230         Protect the exception object from being finalized.
12231
12232 2004-06-21  Martin Baulig  <martin@ximian.com>
12233
12234         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
12235         public function.
12236
12237 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
12238
12239         * reflection.c: Load the assembly in mono_reflection_type_from_name,
12240         if it was not loaded before. Fix parts of #60439.
12241
12242 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
12243
12244         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
12245         code that was broken since Ben's change: wrappers are now
12246         dependent on the method signature only again.
12247
12248 2004-06-21  Martin Baulig  <martin@ximian.com>
12249
12250         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
12251         added interface support.
12252
12253 2004-06-21  Martin Baulig  <martin@ximian.com>
12254
12255         * class.c (mono_vtable_get_static_field_data): New public method.
12256
12257 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
12258
12259         * filewatcher.c : Windows build fix to be compliant with API changes.
12260
12261 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
12262
12263         * class.h, class.c: more accessors.
12264         * metadata.h, metadata.c: prepare for hiding MonoType and
12265         MonoMethodSignature: people should use the accessors from now on
12266         outside of the tree.
12267
12268 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
12269
12270         * *.c, *.h: more API cleanups.
12271
12272 2004-06-18  Jackson Harper  <jackson@ximian.com>
12273
12274         * assembly.c: Trace loading assemblies.
12275         * loader.c: Trace loading native libraries.
12276         * mono-config.c: Trace loading config files.
12277         
12278 2004-06-18  Dick Porter  <dick@ximian.com>
12279
12280         * locales.c: Tell ICU the lengths of strings, it can cope with
12281         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
12282
12283 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
12284
12285         * image.c: swapped name/filename;
12286
12287 2004-06-18  Martin Baulig  <martin@ximian.com>
12288
12289         * mono-debug-debugger.c (write_class): Write the parent class at
12290         the end of the header.
12291
12292 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
12293
12294         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
12295
12296 2004-06-17  Raja R Harinath  <rharinath@novell.com>
12297
12298         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
12299         (bundle_obj): New conditional define.
12300         (BUILT_SOURCES): Remove.
12301         ($(bundle_srcs)): Make parallel-make safe.
12302         (libmonoruntime_la_LIBADD): Make unconditional.
12303         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
12304         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
12305
12306 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
12307
12308         * culture-info-tables.h: It was inconsistent with the latest
12309           supp info files.
12310
12311 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
12312
12313         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
12314         be loaded.
12315
12316         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
12317         with gcc 2.95.
12318
12319 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
12320
12321         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
12322         cleaned up public header threads.h.
12323
12324 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
12325
12326         * Makefile.am, *.c, *.h: more API cleanups.
12327
12328 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
12329
12330         * Makefile.am: removed monosn from compilation.
12331         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
12332         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
12333         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
12334         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
12335         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
12336         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
12337
12338 2004-06-15  Jackson Harper  <jackson@ximian.com>
12339
12340         * assembly.c: Make locales lower case when searching the GAC for
12341         assemblies. gacutil will always make locales lowercase when
12342         installing so this effectively makes them case insensitive.
12343         
12344 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
12345
12346         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
12347         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
12348           parameter which allows to choose whether the wait can be interrupted or 
12349           not. Also added the method mono_monitor_enter(), which locks the monitor
12350           using an infinite wait and without allowing interruption.
12351           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
12352           interrupted.
12353         * object.h: Added new fields in MonoThread. suspend_event holds the event
12354           used to susped/resume the thread. synch_lock is the lock object to use for
12355           modifying the thread state.
12356         * threads.c: Use the new synch_lock object for locking, instead of "this",
12357           which can generate deadlocks.
12358           Moved thread state change in Thread.Sleep and Thread.Join from managed
12359           to unmanaged code. This avoids a deadlock when the thread was suspended
12360           just after acquiring the thread lock.
12361           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
12362           Implemented Thread.Suspend using an event instead of ThreadSuspend,
12363           which is not fully implemented in the io-layer.
12364         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
12365
12366 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
12367
12368         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
12369         threads-types.h: more API cleanups.
12370
12371 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
12372
12373         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
12374         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
12375         threadpool.c, threads.c: first pass at the exported API cleanup.
12376
12377 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
12378
12379         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
12380
12381 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12382
12383         * icall.c: added internalGetHome.
12384
12385 2004-06-14  Dick Porter  <dick@ximian.com>
12386
12387         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
12388         possible to return successfully when '.' or '..' were the only
12389         entries in a directory, but were skipped.  The MonoIOStat was not
12390         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
12391         Fixes bug 59574.
12392
12393 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
12394
12395         * reflection.c: make binaries run on .Net 1.1 by default.
12396
12397 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
12398
12399         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
12400
12401 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
12402
12403         * marshal.c: keep track of struct size with explicit layout
12404         (bug #59979).
12405
12406 2004-06-12  Martin Baulig  <martin@ximian.com>
12407
12408         * mono-debug-debugger.c: Comment out a debugging g_message().
12409
12410 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
12411
12412         * reflection.c, reflection.h: do not free custom attrs that are cached.
12413         * icall.c: use braces to make code clearer.
12414
12415 2004-06-11  Martin Baulig  <martin@ximian.com>
12416
12417         * class.h (MonoInflatedField): New type.
12418         (MonoClassField): Replaced `MonoType *generic_type' with
12419         `MonoInflatedField *generic_info'.
12420
12421         * icall.c
12422         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
12423
12424 2004-06-11  Martin Baulig  <martin@ximian.com>
12425
12426         * reflection.c (mono_image_create_method_token): Correctly encode
12427         varargs methods.
12428
12429 2004-06-11  Martin Baulig  <martin@ximian.com>
12430
12431         * metadata.c (mono_metadata_parse_method_signature): When parsing
12432         a MethodDef which has VarArgs, also set sentinelpos if we don't
12433         have any parameters.
12434
12435 2004-06-11  Martin Baulig  <martin@ximian.com>
12436
12437         * verify.c (mono_method_verify): In CEE_CALL, use
12438         mono_method_get_signature() to get the method's signature, unless
12439         we're a PInvoke method.
12440
12441 2004-06-10  Jackson Harper  <jackson@ximian.com>
12442
12443         * assembly.c: Use <path>/lib/mono/gac for the extra paths
12444         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
12445         logical name as the supplied path is just a prefix to the gac not
12446         the direct path to it.
12447         
12448 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
12449
12450         * reflection.c: make the token for a created method match
12451         the token of the MethodBuilder it was created from
12452         (IKVM requires this behaviour now).
12453
12454 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
12455
12456         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
12457         reflection.c, socket-io.c: leak fixes.
12458
12459 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
12460
12461         * icall.c: handle sentinel pos in vararg methods in position different
12462         from 0.
12463
12464 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12465
12466         * culture-info-tables.h: freshly generated.
12467
12468 2004-06-09  Martin Baulig  <martin@ximian.com>
12469
12470         * loader.c (mono_get_method_constrained): Call `mono_class_init
12471         (constrained_class)'.   
12472
12473 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
12474
12475         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
12476         any methods. Fixes #59629.
12477
12478 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12479
12480         * culture-info-tables.h: reflecting locale-builder updates.
12481
12482 2004-06-08  Dick Porter  <dick@ximian.com>
12483
12484         * object.h:
12485         * locales.c: Fixed compile warnings, including a real bug in
12486         CompareInfo_internal_compare.
12487         
12488 2004-06-08  Dick Porter  <dick@ximian.com>
12489
12490         * locales.c
12491         (ves_icall_System_Globalization_CompareInfo_internal_index):
12492         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
12493         Double-check the resuls of usearches, because ICU currently
12494         ignores most of the collator settings here.  Fixes bug 59720.
12495         
12496 2004-06-08  Dick Porter  <dick@ximian.com>
12497
12498         * locales.c
12499         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
12500         Fix memory leak and segfault-causing typo.  No idea how this one
12501         lasted so long without being noticed.
12502
12503 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
12504
12505         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
12506         any methods. Fixes #59629.
12507
12508 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12509
12510         * assembly.c:
12511         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
12512         own the critical section before). Removed dead code (that's done
12513         in the preload hook).
12514
12515         (mono_assembly_load_with_partial_name): call the preload hook.
12516
12517 2004-06-08  Martin Baulig  <martin@ximian.com>
12518
12519         * metadata.c (mono_metadata_signature_alloc): Default
12520         `sentinelpos' to -1.
12521
12522         * reflection.c (mono_image_get_array_token): Likewise.
12523
12524 2004-06-08  Martin Baulig  <martin@ximian.com>
12525
12526         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
12527
12528         * metadata.c (mono_metadata_parse_method_signature): When parsing
12529         a MethodDef which has VarArgs, set sentinelpos.
12530
12531         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
12532         `gint16' since we're using -1 for non-varargs methods.
12533
12534         * reflection.c
12535         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
12536         (method_encode_signature): Added varargs support.
12537         (method_builder_encode_signature): Likewise.
12538         (mono_image_get_varargs_method_token): New static method.
12539         (mono_image_create_method_token): New public method; this is
12540         called via an icall instead of mono_image_create_token() when
12541         calling a varargs method.       
12542
12543 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
12544
12545         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
12546
12547 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12548
12549         * culture-info-tables.h : Reflecting the latest locale-builder that
12550           fixed empty array representation ({} to {0}).
12551
12552 2004-06-07  Jackson Harper  <jackson@ximian.com>
12553
12554         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
12555         looking up extra gac paths. This allows MONO_GAC_PATH to act
12556         exactly like a prefix.
12557         
12558 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
12559
12560         * reflection.c (mono_reflection_type_from_name): Make a copy of the
12561         type name before modifying it. Fixes #59405.
12562
12563 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12564
12565         * culture-info.h: added fields for "all datetime patterns".
12566         * locales.c: (  ves_icall_System_Globalization_CultureInfo
12567           _construct_datetime_format ()): fill xxx_patterns fields.
12568         * object.h: added fields for "all datetime patterns" to
12569           MonoDateTimeFormatInfo.
12570         * culture-info-tables.h: reflecting locale-builder updates.
12571
12572 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
12573
12574         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
12575         the event has no add and remove methods. Fixes #59629.
12576
12577 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
12578
12579         * object.c: Fixed possible integer overflow when allocating large
12580         strings.
12581
12582 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
12583
12584         * culture-info-tables.h: reflecting locale-builder updates.
12585
12586 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
12587
12588         * culture-info-tables.h: reflecting locale-builder updates.
12589
12590 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
12591
12592         * culture-info-tables.h: reflecting locale-builder updates.
12593
12594 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
12595
12596         * threads.c: Made Thread.Sleep abortable.
12597
12598 2004-06-02  Martin Baulig  <martin@ximian.com>
12599
12600         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
12601
12602         * debug-mono-symfile.h: Bumped symbol file version number to 37.
12603
12604 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
12605
12606         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
12607
12608 2004-05-30  Jackson Harper  <jackson@ximian.com>
12609
12610         * reflection.c: Do not hardcode assembly versions or public key
12611         tokens anymore. All of this except the corlib section was dead
12612         code anyways.
12613         
12614 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
12615
12616         * object.c (mono_runtime_invoke_array): Automatically create boxed
12617         objects for byref valuetypes if needed. Fixes #59300.
12618         
12619         * object.c (mono_method_return_message_restore): Handle 
12620         MONO_TYPE_OBJECT as well.
12621
12622 2004-05-28  Jackson Harper  <jackson@ximian.com>
12623
12624         * reflection.c: The modified type encoding was causing build
12625         problems. Reverted for now.
12626         
12627 2004-05-28  Jackson Harper  <jackson@ximian.com>
12628
12629         * reflection.c/h: Take an assembly ref so that we dont create
12630         fully qualified names when encoding types in the same assembly as
12631         the custom attribute being emitted.
12632         * appdomain.c: Increment version number.
12633         
12634 2004-05-26  Duncan Mak  <duncan@ximian.com>
12635
12636         * icall.c
12637         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
12638         Set the full version number (major, minor, build, revision).
12639
12640 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
12641
12642         * marshal.c (emit_struct_conv): increment src/dst after blit
12643         (mono_marshal_get_managed_wrapper,
12644         mono_marshal_get_native_wrapper): make sure we have marshalling
12645         info before marshalling params (info computation affects
12646         blittable)
12647
12648         * class.c (class_compute_field_layout): correctly deal with
12649         blittable
12650         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
12651         value types (as per what windows dows by default)
12652         (mono_class_setup_mono_type): System.ValueType is blittable
12653         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
12654         blittable
12655
12656         * marshal.c (mono_marshal_load_type_info): flag types  as
12657         non-blittable if the native layout doesn't match the managed
12658         layout
12659
12660 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12661
12662         * appdomain.c: don't add stuff in the private search path that is
12663         above the application base. If application base is not set, there's
12664         no private search path.
12665
12666 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
12667
12668         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
12669         byref struct arguments in native->managed marshalling.
12670
12671 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
12672
12673         * marshal.c (mono_marshal_get_runtime_invoke): correctly
12674         cache methods using signature (special case for methods
12675         that are value type or string class)
12676         
12677         * image.c (mono_image_close): clean up allocated GSList's
12678         in runtime_invoke_cache.
12679
12680 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12681
12682         * mono-config.c: set the correct path for mono_cfg_dir on windows when
12683         there's no MONO_CFG_DIR environment variable defined.
12684
12685 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12686
12687         * threads.c: windows version must be >= 0x0500 to include OpenThread.
12688
12689 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
12690
12691         * threadpool.c: Really wait for 500ms after the async call, even if the wait
12692           is interrumped.
12693         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
12694           before waiting for it, and call CloseHandle after the wait to unref it.
12695           This will make sure that handles are not disposed too early.
12696
12697 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12698
12699         * appdomain.c:
12700         * appdomain.h:
12701         * icall.c: removed
12702         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
12703         needed now.
12704
12705         * object.c: se the application_base only for the domain that runs
12706         Main. Fixes bug #59216,
12707
12708 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12709
12710         * appdomain.c:
12711         * object.c: only the domain in which Main is run have
12712         SetupInformation.ConfigurationFile set, so moved a few lines from
12713         appdomain.c to object.c.
12714
12715 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12716
12717         * appdomain.c: we tried to load [name].(dll|exe), but according
12718         to bug #57710, we must also try [culture]/[name].(dll|exe) and
12719         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
12720         There's a test case attached to bug #58922.
12721
12722 2004-05-27  Dick Porter  <dick@ximian.com>
12723
12724         * icall.c:
12725         * file-io.c: Implemented icalls for locking and unlocking regions
12726         in a file.
12727         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
12728         FALSE on error (fixes both compiler warning and real bug.)
12729
12730 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
12731
12732         * culture-info-tables.h: reflecting locale-builder updates.
12733
12734           (Added missing ChangeLog entry for 05/26)
12735
12736 2004-05-27  Jackson Harper  <jackson@ximian.com>
12737
12738         * locales.c: Fix some cut and paste errors.
12739         
12740 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12741
12742         * mono-config.c: set the correct path for config. directory on windows.
12743
12744 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
12745
12746         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
12747           on win32.
12748
12749 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
12750
12751         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
12752         from pinvoke functions.
12753         
12754         * marshal.c (mono_ftnptr_to_delegate): Implement this.
12755
12756 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
12757
12758         * culture-info-tables.h: reflecting locale-builder updates.
12759
12760 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
12761
12762         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
12763         #59086.
12764
12765 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
12766
12767         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
12768         * icall.c: Modified icalls for RNG.
12769         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
12770         Windows (CryptoAPI).
12771
12772 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
12773
12774         * locales.c: Fix build.
12775
12776 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
12777
12778         * culture-info-tables.h: reflecting locale-builder updates.
12779
12780 2004-05-25  Jackson Harper  <jackson@ximian.com>
12781
12782         * locales.c: When creating the current culture use the $LANGs
12783         specific culture. So DateTimeFormat and NumberFormat entries are created.
12784         
12785 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
12786
12787         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
12788         a char array as parameter.
12789
12790 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
12791
12792         * image.c: In mono_image_open(), always use an absolute path name to
12793           look for already loaded images.
12794
12795 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
12796
12797         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
12798         missing in the windows build (like older cygwin include files).
12799
12800 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
12801
12802         * icall.c: Fixed check for possible integer overflow in Buffer_
12803         BlockCopy icall. Replaced comments style // by /* */.
12804
12805 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
12806
12807         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
12808         
12809         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
12810         check after MONO_VTADDR. Fixes pinvoke2.exe.
12811
12812         * marshal.h marshal.c metadata.h: Add beginnings of support for
12813         ftnptr -> delegate marshalling.
12814
12815 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
12816
12817         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
12818         * threads.c: Fix warnings.
12819
12820 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
12821
12822         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
12823         * icall.c: Registered icalls for Suspend and Resume.
12824         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
12825           Thread.Abort.
12826         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
12827         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
12828         * process.c: Use WaitForSingleObjectEx.
12829         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
12830           checkpoints.
12831         * threads.c, threads.h: Make use of new Ex wait methods. Improved
12832           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
12833           for Suspend and Resume. Added new mono_thread_stop, used for stoping
12834           background threads. Added basic support for Abort in Windows.
12835           Start new threads using a managed delegate invoke wrapper. This wrapper
12836           has an interruption checkpoint that is needed since an interruption
12837           can be requested before the thread leaves the unmanaged code that starts 
12838           the thread.
12839         * marshal.c: Added interruption checkpoint after every native call, and
12840           also before managed calls for wrappers called from unmanaged code to
12841           go into managed code.
12842         * object.h: Added new field in MonoThread to keep track of interruption
12843           requests.
12844
12845 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
12846
12847         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
12848         calls.
12849
12850 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12851
12852         * appdomain.c:
12853         * assembly.c:
12854         * gc.c:
12855         * locales.c:
12856         * mono-config.c:
12857         * rand.c: getenv -> g_getenv (windows!)
12858
12859         * process.c: complete_path is also used on non-windows platforms.
12860
12861 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12862
12863         * icall.c: new signature for Process_Start.
12864
12865         * process.[ch]: new signature for Process_Start. If we're on windows
12866         and UseShellExecute is false, we have to search for the program by
12867         ourselves if we don't get a full path.
12868
12869 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
12870
12871         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
12872         marshalling and call CleanUpNativeData if needed. Fixes #58646.
12873
12874 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12875
12876         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
12877         Fixes bug #58373.
12878
12879 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12880
12881         * process.c: use double quotes to quote program name and arguments on
12882         windows. Fixes bug #58575.
12883
12884 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12885
12886         * file-io.c: don't return "." and ".." when using windows Find*File.
12887
12888 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
12889
12890         * marshal.c: Don't pass wrappers to message init because method 
12891         addressed used to lookup metadata. part of remoting[2|3] fix.
12892
12893 2004-05-15  Jackson Harper  <jackson@ximian.com>
12894
12895         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
12896         path is essentially the same as MONO_PATH except that it points to
12897         GACs instead of lib directories.
12898         * loader.h: The user gac is gone so we dont need function to
12899         enable/disable it.
12900         * mono-config.c: user gac option is now gone.
12901         
12902 2004-05-15  Jackson Harper  <jackson@ximian.com>
12903
12904         * culture-info.h: Make defines more consistent, add calendar data
12905         to the culture info table.
12906         * culture-info-tables.h: Add basic calendar data. Basically
12907         everyone gets default gregorian until all the data is
12908         updated.
12909         * locales.c: Use the new consistent defines. Set calendar data for
12910         culture info objects.
12911         * object.h: add a field for calendar data to CultureInfo
12912         
12913 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
12914
12915         * image.c: image->runtime_invoke_cache is keyed on signatures now.
12916         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
12917         a signature.
12918         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
12919         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
12920         an extra param that is the pointer of the method to invoke. The IL for
12921         the invoke method is no longer specific to the method, but to the
12922         signature of the method. Thus, we can share the same code for multiple
12923         methods. This reduces the number of methods that have to be compiled.
12924
12925 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
12926
12927         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
12928
12929         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12930
12931         * icall.c: Optimize Buffer.BlockCopy.
12932
12933 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12934
12935         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
12936         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
12937         quote). Changed them to "MMMM yyyy".
12938
12939 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
12940
12941         * rand.c
12942         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
12943
12944 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
12945
12946         * reflection.h: Updated after changes to managed structures.
12947
12948         * appdomain.c: Bump corlib version.
12949
12950 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12951
12952         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
12953         windows.
12954
12955 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12956
12957         * Makefile.am: link to ../os/libmonoos.la on windows.
12958
12959         * assembly.c:
12960                 -If MONO_DEBUG, warn about non-existing directories in
12961                 MONO_PATH.
12962                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
12963                 compile time variable.
12964                 -Removed init_default_path and call mono_set_rootdir from
12965                 libmonoos.a instead (windows only).
12966
12967         * assembly.h: declare mono_assembly_getrootdir().
12968
12969         * domain.c:
12970         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
12971
12972         * loader.c: s/getenv/g_getenv/
12973
12974 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
12975
12976         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
12977
12978         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
12979
12980         * metadata.h: Add new marshalling conversions.
12981
12982         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
12983         function.
12984
12985         * reflection.c (mono_reflection_get_type): Lookup the type in all
12986         modules of a multi-module assembly. Fixes #58291.
12987
12988 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
12989
12990         * threads.c: Before aborting a background, set the StopRequested
12991         state.  This avoids throwing the Abort exception.
12992         In mono_thread_manage, don't continue with the shutdown until all
12993         aborted threads have actually stopped.
12994
12995 2004-05-10  Jackson Harper  <jackson@ximian.com>
12996
12997         * locales.c: Remove the modifier from culture names.
12998         
12999 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13000
13001         * Makefile.am: monosn is not installed any more. It has been deprecated
13002         in favor of sn.
13003
13004 2004-05-07  Jackson Harper  <jackson@ximian.com>
13005
13006         * locales.c
13007         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
13008         Fix array construction, add bailout if the length is 0.
13009
13010 2004-05-07  Dick Porter  <dick@ximian.com>
13011
13012         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
13013         machine doesn't have a DNS entry.  Patch by Urs Muff
13014         (umuff@quark.com), fixes bug 57928.
13015
13016 2004-05-06  Jackson Harper  <jackson@ximian.com>
13017
13018         * reflection.c: Handle null PublicTokens properly. alloc mem for
13019         assembly names culture so we dont crash when freeing it.
13020         
13021 2004-05-06  Jackson Harper  <jackson@ximian.com>
13022
13023         * assembly.c: Check the usergac when loading with partial names.
13024         
13025 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
13026
13027         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
13028         does nothing for now (not required for Linux/Windows) but the class
13029         library can call it (and a newer or modified runtime could need it).
13030         * icall.c: Registred icall.
13031
13032 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13033
13034         * loader.c: prints a message on module loading error we set MONO_DEBUG
13035         environment variable.
13036
13037 2004-05-05  Jackson Harper  <jackson@ximian.com>
13038
13039         * appdomain.c: Handle PublicKeyToken=null properly.
13040         
13041 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
13042
13043         * environment.c|h: Added icall ves_icall_System_Environment_
13044         GetOSVersionString to get the current OS version as a string.
13045         * icall.c: Registred icall.
13046
13047 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
13048
13049         * object.c: in mono_object_get_virtual_method(), take into account that
13050         non-virtual methods don't have a slot in the vtable. Check needed when
13051         the object is a proxy.
13052
13053 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
13054
13055         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
13056         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
13057
13058         * object.c (mono_class_compute_gc_descriptor): Fix warning.
13059
13060         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
13061         passed when a valuetype is expected.
13062
13063         * object.c (mono_unhandled_exception): Only set the exit code if the
13064         exception happens in the main thread. Fixes thread5.exe.
13065
13066         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
13067         invalid names. Fixes #58047.
13068
13069 2004-05-03  Jackson Harper  <jackson@ximian.com>
13070
13071         * assembly.c: This line was committed accidently and is unneeded.
13072         
13073 2004-05-03  Jackson Harper  <jackson@ximian.com>
13074
13075         * icall.c: Add new icall for Assembly::LoadWithPartialName
13076         * assembly.c/.h: new function that probes the GAC to load partial
13077         assembly names by Paolo Molaro.
13078         
13079 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13080
13081         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
13082         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
13083         (type_get_fully_qualified_name): Added PublicKeyToken when building a
13084         full type name.
13085
13086 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13087
13088         * appdomain.c: fixed check for 'neutral' culture and removed warning.
13089         * reflection.c: fix bug when parsing a full type name and Version is not
13090         the last thing in the string.
13091
13092 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
13093
13094         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
13095         crashes when it is freed.
13096
13097 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13098
13099         * assembly.c: print the compat warning to stderr.
13100
13101 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
13102
13103         * assembly.c (mono_assembly_load_references): Add a compatibility
13104         hack to run old applications that might be still referencing the
13105         3300-based assemblies, only do this for System.xxx.
13106
13107 2004-05-01  Jackson Harper  <jackson@ximian.com>
13108
13109         * appdomain.c: If the culture is neutral we set it to "".
13110         
13111 2004-04-29  Jackson Harper  <jackson@ximian.com>
13112
13113         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
13114
13115 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
13116  
13117         * string-icalls.c: added low overhead function for copying chars
13118         * icall.c: added needed icall for the above function
13119  
13120 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13121
13122         * icall.c: fix return value of get_global_assembly_cache.  Implemented
13123         Environment.GetLogicalDrives.
13124
13125 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
13126
13127         * rand.c: try and talk to egd or prngd
13128         for random bytes if opening devices fail.
13129
13130 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
13131
13132         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
13133         alignment for the type using the native alignment of its members 
13134         instead of using klass->min_align.
13135
13136         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
13137
13138 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13139
13140         * file-io.c:
13141         * socket-io.c: added check for sys/aio.h.
13142
13143 2004-04-28  Dick Porter  <dick@ximian.com>
13144
13145         * threads.c: Don't abort a thread thats already aborting, when
13146         terminating everything.
13147
13148 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13149
13150         * icall.c: added 2 new async calls for Socket.
13151
13152         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
13153         IO on *nix systems.
13154
13155         * threadpool.c: removed unused variable.
13156
13157 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
13158
13159         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
13160
13161 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
13162
13163         * locales.c: put back string_invariant_tolower () and
13164         string_invariant_toupper ().
13165
13166 2004-04-26 David Waite <mass@akuma.org>
13167
13168         * file-io.h:
13169         * socket-io.h:
13170         * threads.h:
13171         * unicode.h: remove comma from end of enumeration declarations
13172
13173 2004-04-26 David Waite <mass@akuma.org>
13174
13175         * debug-mono-symfile.h:
13176         * decimal.c:
13177         * mono_debug.h:
13178         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
13179
13180
13181 2004-04-26  Jackson Harper  <jackson@ximian.com>
13182
13183         * appdomain.c: Increment version number.
13184         
13185 2004-04-26  Jackson Harper  <jackson@ximian.com>
13186
13187         * appdomain.c: Set assembly references public token value when
13188         PublicKeyToken is specified, not the hash_value. Free public token
13189         values when free assembly name data. Previously the public key
13190         token was hex decoded, however we are using hex encoded public key
13191         tokens, so this is not neccasary.
13192         * assembly.c: Lookup assemblies in the gac if their public token
13193         value is set. Add function to allow enabling user gac
13194         lookups. Specify whether or not the assembly was loaded from the
13195         GAC. Compare full assembly names when checking the cache for
13196         assemblies (Temporarily disabled see comment in code). Remove
13197         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
13198         specifies trace-loader they get extra info to stdout on the
13199         loading of assemblies.
13200         * image.h: Add a field for an assembly references public token
13201         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
13202         whether an assembly has been loaded from the GAC.
13203         * image.c: Remove a corlib -> mscorlib name mapping.
13204         * loader.h: Add function to enable/disable the user gac.
13205         * mono-config.c: Check if the usergac is enabled in the config
13206         file.
13207         * icall.c: New icall to determine whether or not an assembly has
13208         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
13209         * tabldefs.h: Add constant for assemblyref flag that specifies a
13210         full public key is used instead of a public token.
13211         * reflection.c: Remove mscorlib -> corlib mappings. Set
13212         PublicTokenValue instead of hash value. This value is a hex
13213         string so it does not need to be expanded.
13214
13215 2004-04-26  Martin Baulig  <martin@ximian.com>
13216
13217         * mono-debug-debugger.c (mono_debugger_initialize): Set
13218         `mono_debugger_initialized' before calling mono_debug_lock().
13219
13220 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
13221
13222         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
13223           InternalToUpper/InternalToLower.
13224         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
13225           removed invariant culture shortcut.  This is now done in managed code.
13226         * locales.c: (string_invariant_toupper/tolower) removed.
13227
13228 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13229
13230         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
13231         Added Poll internal call.
13232
13233         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
13234         call for Poll. Select was too heavy for polling a single socket.
13235
13236         * threadpool.[ch]: added mono_threadpool_cleanup.
13237         * threads.c: use it. Don't use Thread_Abort on windows.
13238
13239 2004-04-23  Martin Baulig  <martin@ximian.com>
13240
13241         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
13242
13243 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
13244
13245         * icall.c: Registred new icalls for key pair protection and added an
13246         icall for Environment.GetFolderPath on Windows.
13247         * security.c|h: Added new icalls for key pair protection.
13248
13249 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13250
13251         * socket-io.c: don't display the non-supported family warning for known
13252         families. Now this is not displayed on windows when checking support
13253         for IPv4/IPv6.
13254
13255 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13256
13257         * class.c: don't display the layout warning for static fields.
13258
13259 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
13260
13261         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
13262         * locales.c, locales.h: Added new icalls for culture-specific
13263         Char.ToLower and Char.ToUpper.
13264
13265 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13266
13267         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
13268         by David Waite.
13269
13270 2004-04-20  Martin Baulig  <martin@ximian.com>
13271
13272         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
13273         of the type name before passing it to mono_reflection_type_from_name().
13274
13275 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
13276
13277         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
13278         encodings here. Fixes #56965.
13279
13280 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
13281
13282         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
13283         fix test on strstr result not that I can see anything that
13284         relies on the result.
13285
13286 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
13287
13288         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
13289         Fixes #57081.
13290
13291         * marshal.c (mono_marshal_get_string_encoding): New helper function.
13292
13293         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
13294         function to determine which marshalling to use for strings. Fixes
13295         #56965.
13296
13297         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
13298
13299         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
13300
13301 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
13302
13303         * icall.c: #include mono-config.h
13304
13305 2004-04-15  Jackson Harper  <jackson@ximian.com>
13306
13307         * culture-info-tables.h: Fix date formats for en-US culture.
13308         
13309 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
13310
13311         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
13312         ThreadPool.SetMinThreads.
13313         * threadpool.c: Implemented ThreadPool.GetMinThreads and
13314         ThreadPool.SetMinThreads.
13315
13316 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
13317
13318         * mono-config.c: also load the .config file in the directory
13319         where the assembly was found.
13320
13321 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
13322
13323         * assembly.c: load per-assembly config files.
13324         * icall.c: decrapified code to get the config dir and moved to
13325         mono-config.c.
13326         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
13327         per-assembly config files. When doing a dll map lookup give precedence
13328         to the per-assembly data.
13329
13330 2004-04-14  Martin Baulig  <martin@ximian.com>
13331
13332         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
13333         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
13334         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
13335
13336         * mono-debugger-debugger.c: While the debugger is locked, remember
13337         whether the symbol tables have changes and send one single
13338         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
13339
13340 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
13341
13342         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
13343
13344         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
13345         function.
13346
13347         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
13348         account when marshalling string arrays. Fixes #56965.
13349
13350 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
13351
13352         * icall.c: Add new icalls mapping for security.
13353         * security.c|h: Add internal calls for WindowsIdentity,
13354         WindowsImpersonationContext and WindowsPrincipal.
13355
13356 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
13357
13358         * class.c: Added comment to ensure the System.MonoDummy class
13359         is removed when no longer necessary
13360
13361 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
13362
13363         * appdomain.c: Pass arguments to the bootstraping exceptions to
13364         minimize JITed methods at boot
13365
13366         * metadata.c (mono_exception_from_name_two_strings): Allow for the
13367         second string to be null.
13368
13369         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
13370         Change the protocol to minimize the JIT methods at startup.  Now
13371         it Returns the internal codepage, if the value of "int_code_page"
13372         is 1 at entry, and we can not compute a suitable code page
13373         number, returns the code page as a string.
13374
13375 2004-04-13  Jackson Harper  <jackson@ximian.com>
13376
13377         * culture-info-tables.h: Fix number of decimal digits for all
13378         english locales.
13379
13380 2004-04-13  Jackson Harper  <jackson@ximian.com>
13381
13382         * icall.c: Clairfy out of sync error message. It is not always
13383         your corlib that is out of sync.
13384
13385 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
13386
13387         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
13388         properties when only the set accessor is overriden. Fixes #55874.
13389
13390 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
13391
13392         * assembly.c (mono_assembly_load_references): Make this thread safe.
13393         Fixes #56327.
13394
13395 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
13396
13397         * monosn.c: Add missing initialization calls.
13398
13399 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
13400
13401         * locales.c:
13402         ves_icall_System_Globalization_CultureInfo_construct_number_format
13403         Fix g_assert so it compiles on fussier compilers re int/ptr
13404         mismatch
13405
13406 2004-04-08  Dick Porter  <dick@ximian.com>
13407
13408         * socket-io.h:
13409         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
13410         53992.  Also rearrange the code so that the internal calls return
13411         an error value and exceptions are thrown from managed code.
13412
13413         * icall.c: Add type info to the socket icalls.
13414
13415 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13416
13417         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
13418         owes me a beer.
13419
13420 2004-04-07  Martin Baulig  <martin@ximian.com>
13421
13422         * class.c (mono_class_from_generic_parameter): Don't default
13423         `klass->parent' to `mono_defaults.object_type'.
13424
13425 2004-04-07  Martin Baulig  <martin@ximian.com>
13426
13427         * reflection.c (mono_reflection_initialize_generic_parameter): Set
13428         `param->pklass->reflection_info'.       
13429
13430 2004-04-07  Jackson Harper  <jackson@ximian.com>
13431
13432         * culture-info-tables.h: Fix date separator symbol.
13433         
13434 2004-04-07  Martin Baulig  <martin@ximian.com>
13435
13436         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
13437         from System.Type to System.MonoType.
13438
13439 2004-04-07  Martin Baulig  <martin@ximian.com>
13440
13441         * reflection.h
13442         (MonoReflectionGenericParam): Added `has_reference_type' and
13443         `has_value_type' fields.
13444
13445         * reflection.c (mono_image_get_generic_param_info): Encode the
13446         correct flags if we have the `class' or `struct' constraint.
13447
13448 2004-04-07  Martin Baulig  <martin@ximian.com>
13449
13450         * reflection.h
13451         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
13452
13453 2004-04-07  Jackson Harper  <jackson@ximian.com>
13454
13455         * appdomain.c: Revert extra patches, just wanted to bump the
13456         version number.
13457         
13458 2004-04-07  Jackson Harper  <jackson@ximian.com>
13459
13460         * Makefile.am: Add culture-info private headers.
13461         * icall.c: Add new icalls for contructing locales.
13462         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
13463         * locales.h: Declare new culture info construction methods.
13464         * object.h: Add new fields used to avoid the CultureMap to
13465         MonoCultureInfo.
13466         * culture-info.h: Definition of structs used in the culture info
13467         tables.
13468         * culture-info-tables.h: Autogenerated tables that contain culture
13469         info data. This file was generated with the locale-builder tool.
13470         * appdomain.c: Incement corlib version number.
13471         
13472 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
13473
13474         * appdomain.c: (mono_runtime_init) move mono_thread_init
13475         to before mono_object_new calls so critical sections
13476         are initialized before use.
13477
13478 2004-04-07  Martin Baulig  <martin@ximian.com>
13479
13480         * icall.c
13481         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
13482         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
13483         (ves_icall_MonoGenericParam_initialize): Removed.
13484         (monogenericparam_icalls): Removed.
13485         (generictypeparambuilder_icalls): Added new table for
13486         System.Reflection.Emit.GenericTypeParameterBuilder.
13487
13488         * reflection.c
13489         (mono_reflection_define_generic_parameter): Removed.
13490         (mono_reflection_initialize_generic_parameter): This is now called
13491         from GenericTypeParameterBuilder's .ctor.
13492
13493 2004-04-06  Martin Baulig  <martin@ximian.com>
13494
13495         * class.c (mono_class_init): Don't inflate nested classes in a
13496         generic instance.
13497         (mono_type_get_name_recurse): Include the generic arguments for
13498         generic instances and generic type declarations.
13499         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
13500         (_mono_class_get_instantiation_name): Removed.
13501         (mono_class_create_generic): Always use `gklass->name' as our name.
13502
13503         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
13504
13505         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
13506         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
13507         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
13508         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
13509         closed generic methods here.
13510
13511         * reflection.c
13512         (mono_reflection_generic_inst_get_nested_types): Removed.
13513         (inflate_mono_method): Copy the generic parameters from the
13514         MonoMethodHeader into out MonoGenericMethod.
13515
13516 2004-04-06  Martin Baulig  <martin@ximian.com>
13517
13518         * row-indexes.h
13519         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
13520
13521         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
13522
13523         * reflection.c (build_compressed_metadata): If we have any entries
13524         in the GenericParam, MethodSpec or GenericParamConstraint tables,
13525         set the header version to 1.1.
13526
13527 2004-04-06  Martin Baulig  <martin@ximian.com>
13528
13529         * class.c (mono_class_init): If we're a generic instance,
13530         initialize our nested classes, too.
13531         (_mono_class_get_instantiation_name): Deal with the new `!%d'
13532         suffix. 
13533
13534 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13535
13536         * process.c: quote the argument passed to the shell on windows.
13537
13538 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
13539
13540         * threads.c (mono_alloc_special_static_data): Allow this to be
13541         called during startup.
13542
13543 2004-04-02  Martin Baulig  <martin@ximian.com>
13544
13545         * icall.c
13546         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
13547
13548 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
13549
13550         * icall.c: Fix build.
13551
13552 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
13553
13554         * Makefile.am: Added security.c|h.
13555         * icall.c: Added icall for get_UserName;
13556         * security.c: New file for security related icalls. Added function
13557         get_UserName for System.Environment (fix #56144).
13558         * security.h: New. Header file for security.c
13559
13560 2004-04-02  Dick Porter  <dick@ximian.com>
13561
13562         * icall.c: Deleted the icalls that were obsoleted some time ago
13563         by the ICU string code, and which were mixed into the icall
13564         rearranging.  Fixes bug 55969.
13565
13566         * string-icalls.h: 
13567         * string-icalls.c: Deleted the code that those icalls reference.
13568
13569 2004-04-01  Martin Baulig  <martin@ximian.com>
13570
13571         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
13572
13573         * class.c (mono_class_from_generic_parameter): Don't set 
13574         TYPE_ATTRIBUTE_INTERFACE.
13575         (my_mono_class_from_generic_parameter): Likewise.
13576
13577 2004-04-01  Martin Baulig  <martin@ximian.com>
13578
13579         * loader.c (find_method): Added an optional `MonoClass *ic'
13580         argument to search in a specific interface.
13581         (mono_get_method_constrained): New public function.
13582
13583 2004-04-01  Martin Baulig  <martin@ximian.com>
13584
13585         * reflection.c (mono_image_get_generic_field_token): Use the
13586         `handleref' cache here.
13587
13588 2004-04-01  Martin Baulig  <martin@ximian.com>
13589
13590         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
13591
13592         * reflection.c (create_generic_typespec): Use the `typespec' hash
13593         here, not the `typeref' one.    
13594
13595 2004-04-01  Martin Baulig  <martin@ximian.com>
13596
13597         * class.c (mono_class_inflate_generic_type): Moved the
13598         functionality into a new static inflate_generic_type() which
13599         returns NULL if it didn't do anything.  Only increment the
13600         `mono_stats.inflated_type_count' if we actually inflated
13601         something.
13602         (mono_class_get_full): Check the classes type to see whether we
13603         need to inflate it; also inflate MONO_TYPE_(M)VAR.
13604
13605 2004-04-01  Jackson Harper  <jackson@ximian.com>
13606
13607         * reflection.c: Set culture for assembly references.
13608         
13609 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
13610
13611         * reflection.[ch], icall.[ch], Fix support for pinning variables.
13612
13613 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13614
13615         * assembly.c:
13616         (do_mono_assembly_open): the critical section also covers
13617         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
13618
13619 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13620
13621         * threads.c:
13622         (mono_manage_threads): abort the background threads when finishing.
13623         Fixes bug #47232.
13624
13625 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13626
13627         * gc.c: only close the done_event handle if there was no timeout.
13628         C-ified comments.
13629
13630 2004-03-30  Martin Baulig  <martin@ximian.com>
13631
13632         * icall.c (icall_entries): It's called "System.Activator", not
13633         "System.Activation".    
13634
13635 2004-03-30  Martin Baulig  <martin@ximian.com>
13636
13637         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
13638         (mono_class_create_from_typespec): Likewise.
13639
13640 2004-03-30  Martin Baulig  <martin@ximian.com>
13641
13642         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
13643         `has_ctor_constraint' and `initialized'.
13644
13645 2004-03-30  Martin Baulig  <martin@ximian.com>
13646
13647         * reflection.c (encode_new_constraint): New static function to add
13648         the constructor constraint attribute to a type parameter.
13649         (encode_constraints): Call encode_new_constraint() if necessary.
13650
13651         * reflection.h
13652         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
13653
13654         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
13655         
13656 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
13657
13658         * reflection.c, icall.c: add support for pinning variables. 
13659
13660 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
13661
13662         * marshal.c (mono_marshal_get_managed_wrapper):
13663         init bool local with zero rather than null.
13664
13665 2004-03-29  Martin Baulig  <martin@ximian.com>
13666
13667         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
13668         the "official" behavior here.
13669         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
13670
13671 2004-03-29  Martin Baulig  <martin@ximian.com>
13672
13673         * icall.c: Reflect latest API changes.
13674
13675 2004-03-29  Martin Baulig  <martin@ximian.com>
13676
13677         * loader.c (mono_get_method_from_token): Also call
13678         mono_metadata_load_generic_params () for abstract and interface
13679         methods; replace the type arguments in the method signature with
13680         the ones which are loaded from the metadata.
13681
13682 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
13683
13684         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
13685         of the lock is not the current thread. MS.NET don't do it, in spite of
13686         what the documentation says. See bug #56157.
13687
13688 2004-03-28  Martin Baulig  <martin@ximian.com>
13689
13690         * class.c (mono_class_init): Don't call init_properties() and
13691         init_events() for generic instances; set `prop->parent' when
13692         inflating properties.
13693
13694         * reflection.c (mono_generic_inst_get_object): Call
13695         `mono_class_init (ginst->klass)'.
13696         (mono_type_get_object): Only create a MonoGenericInst if your
13697         generic type is a TypeBuilder.
13698         (do_mono_reflection_bind_generic_parameters): Only set
13699         `ginst->is_dynamic' if our generic type is a TypeBuilder.
13700
13701 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
13702
13703         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
13704         Fixes #56091.
13705
13706 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13707
13708         * icall.c: added Kill_internal icall.
13709         * process.[ch]: added Kill_internal icall.
13710
13711 2004-03-25  Martin Baulig  <martin@ximian.com>
13712
13713         * class.h (MonoStats): Added `generic_instance_count',
13714         `inflated_method_count', `inflated_type_count' and
13715         `generics_metadata_size'.       
13716
13717 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13718
13719         * reflection.c: no warnings now.
13720
13721 2004-03-25  Martin Baulig  <martin@ximian.com>
13722
13723         * class.c (mono_class_get_full): New public function; does a
13724         mono_class_get(), but also takes a `MonoGenericContext *'.
13725
13726         * loader.c (mono_field_from_memberref): Renamed to
13727         `field_from_memberref', made static and added `MonoGenericContext *'
13728         argument.
13729         (mono_field_from_token): Added `MonoGenericInst *' argument.
13730         (method_from_memberef): Likewise.
13731         (mono_get_method_from_token): Likewise.
13732         (mono_get_method_full): New public function; does a
13733         mono_get_method(), but also takes a `MonoGenericContext *'.
13734
13735         * verify.c (mono_method_verify): Get the method's generic context
13736         and pass it to mono_field_from_token(), mono_get_method_full() and
13737         mono_class_get_full().
13738
13739 2004-03-25  Martin Baulig  <martin@ximian.com>
13740
13741         * class.c (mono_class_inflate_generic_type): Take a
13742         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
13743         `MonoGenericMethod *'.
13744
13745 2004-03-25  Martin Baulig  <martin@ximian.com>
13746
13747         * loader.h (MonoMethodInflated): Store the MonoGenericContext
13748         instead of the MonoGenericMethod here.
13749
13750 2004-03-25  Martin Baulig  <martin@ximian.com>
13751
13752         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
13753         each time we create a new MonoGenericInst, we also create a new
13754         context which points back to us.
13755
13756         * class.c (inflate_method): Use `ginst->context' instead of
13757         creating a new context.
13758
13759         * loader.c (method_from_memberref): Use
13760         `klass->generic_inst->context' instead of creating a new context.
13761
13762 2004-03-25  Martin Baulig  <martin@ximian.com>
13763
13764         * class.h (MonoGenericContext): New struct.
13765         (MonoGenericMethod): Removed `generic_inst'.
13766
13767         * class.c (mono_class_inflate_generic_method): Take a
13768         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
13769
13770 2004-03-25  Martin Baulig  <martin@ximian.com>
13771
13772         * loader.h (MonoMethodInflated): New typedef.
13773
13774         * metadata.h (MonoMethodSignature): Removed `gen_method', make
13775         `generic_param_count' consume just 30 bits, added `is_inflated'
13776         and `has_type_parameters' flags (one bit each).
13777
13778         * class.c (mono_class_inflate_generic_method): Create a
13779         MonoMethodInflated instead of a MonoMethodNormal and set
13780         `is_inflated' in the method signature.
13781
13782         * class.h (MonoGenericMethod): Removed `generic_method'.
13783
13784 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
13785
13786         * image.c: Make sure the name of a MonoImage is always an absolute path.
13787           This fixes bug #54415.
13788
13789 2004-03-24  Martin Baulig  <martin@ximian.com>
13790
13791         * class.c (mono_class_setup_vtable): If we're a generic instance,
13792         use our generic type's vtable size.
13793
13794 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
13795
13796         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
13797         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
13798         problems.
13799
13800 2004-03-23  Martin Baulig  <martin@ximian.com>
13801
13802         * class.h (MonoDynamicGenericInst): Added `int count_events' and
13803         `MonoEvent *events'.
13804
13805         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
13806         (typebuilder_icalls): Added "get_event_info"; calls
13807         mono_reflection_event_builder_get_event_info(). 
13808
13809         * reflection.c (mono_reflection_generic_inst_initialize): Added
13810         `MonoArray *events'.
13811         (mono_reflection_event_builder_get_event_info): New function.
13812
13813 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
13814
13815         * object.h: add mono_type_initialization_init
13816
13817         * object.c (mono_runtime_class_init): 
13818         implement class constructor synchronization rules
13819         to cope with threading issues.  
13820         add mono_type_initialization_init
13821
13822         * appdomain.c (mono_runtime_init): call 
13823         mono_type_initialization_init
13824
13825         * class.h: removing initializing field from MonoVTable
13826
13827 2004-03-23  Martin Baulig  <martin@ximian.com>
13828
13829         * class.c (my_mono_class_from_generic_parameter): Use
13830         `param->name' if it's not NULL. 
13831
13832 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
13833
13834         * class.c: do not insert non-virtual methods in the vtable.
13835         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
13836         that means the method is non-virtual. This never would have
13837         happened before.
13838
13839 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
13840
13841         * profiler.c: Added lock for accessing coverage_hash.
13842
13843 2004-03-22  Martin Baulig  <martin@ximian.com>
13844
13845         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
13846         `method->method->signature->generic_param_count != 0' to make it
13847         work for interface methods.
13848
13849 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13850
13851         * process.c: quote the string passed to the shell using g_shell_quote.
13852
13853 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13854
13855         * threads.c:
13856         (mono_threads_manage): don't remove the finalizer thread and self
13857         from the threads hash table so that mono_thread_manage can be called
13858         more than once.
13859
13860 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13861
13862         * process.c: quote the arguments when UseShellExecute is true. Fixes
13863         bug #55790.
13864
13865 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13866
13867         * threads.c: set mono_thread_detach as a cleanup routine for every
13868         thread. This way it's always executed upon thread termination, either
13869         aborted or finished normally. No more xsp hangs!
13870
13871 2004-03-17  Martin Baulig  <martin@ximian.com>
13872
13873         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
13874         `int count_nested' and a `MonoType **nested'.
13875
13876         * reflection.c (mono_reflection_bind_generic_parameters): Moved
13877         most of the functionality into a new static
13878         do_mono_reflection_bind_generic_parameters() and don't take a
13879         `MonoType *nested_in' argument any more.  Don't compute nested
13880         types here.
13881         (mono_reflection_generic_inst_get_nested_types): New public method
13882         to get nested types.
13883
13884         * class.c (mono_class_create_generic): Set `klass->nested_in' if
13885         we're a nested class.
13886
13887         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
13888         mono_reflection_generic_inst_get_nested_types() to compute the
13889         nested types.
13890
13891 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
13892
13893         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
13894         descriptive error message under windows.
13895         
13896 2004-03-17  Martin Baulig  <martin@ximian.com>
13897
13898         * class.c (dup_type): Added `const MonoType *original' argument;
13899         copy the attrs from the original type.
13900
13901 2004-03-17  Martin Baulig  <martin@ximian.com>
13902
13903         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
13904         `m->generic_inst_cache' here.
13905
13906 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
13907
13908         * exception.h exception.c: Add stack_overflow_exception.
13909
13910 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13911
13912         * threadpool.c:
13913         (overlapped_callback): call SetEvent *after* invoking the callback.
13914         No need to call CloseHandle.
13915
13916 2004-03-16  Martin Baulig  <martin@ximian.com>
13917
13918         * reflection.c (mono_image_get_fieldref_token): Take a
13919         `MonoReflectionField *' instead of a `MonoClassField *' and a
13920         `MonoClass *'; store the `MonoReflectionField *' in the hash.
13921
13922 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13923
13924         * appdomain.c: don't add the culture to the filename we're looking for
13925         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
13926
13927 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13928
13929         * locales.c: don't ignore symbols when doing case insensitive compares.
13930         Thanks Dick! Fixes bug #54046.
13931
13932         * threads.c: surround 'threads' usage with enter/leave in
13933         mono_thread_manage.
13934
13935 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
13936
13937         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
13938         implicitly marshalled as [Out]. Fixes #55450.
13939
13940         (mono_marshal_get_runtime_invoke): Zero out the result if there is
13941         an exception.
13942
13943 2004-03-16  Martin Baulig  <martin@ximian.com>
13944
13945         * class.c (mono_class_from_generic_parameter): Use the actual
13946         parameter name. 
13947
13948 2004-03-16  Martin Baulig  <martin@ximian.com>
13949
13950         * reflection.c (type_get_signature_size): New static function.
13951         Compues the size of the type in a method signature.
13952         (method_get_signature_size): New static function; calls
13953         type_get_signature_size() to compute the actual size of the
13954         method's signature.
13955         (method_encode_signature): Use method_get_signature_size() to get
13956         the signature's size rather than using `nparams * 10'.
13957
13958 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13959
13960         * file-io.h: define here WapiOverlapped on windows. I don't want the
13961         regular OVERLAPPED one.
13962
13963         * file-io.c:
13964         * threadpool.c: somehow, BindIoCompletionCallback is not found.
13965         Disabling AIO on windows.
13966
13967 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13968
13969         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
13970         bug #55385.
13971
13972 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13973
13974         * appdomain.c: upgraded corlib version.
13975
13976         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
13977         and BeginWrite. Allow opening files for asynchrnous operations.
13978
13979         * file-io.h: new struct that maps FileStreamAsyncResult.
13980         * icall.c: added new icalls.
13981         * process.[ch]: support setting child process environment variables
13982         and use the SHELL or COMSPEC when UseShellExecute is true.
13983
13984         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
13985         callback for async. IO is here and also BindHandle.
13986
13987         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
13988         from here.
13989
13990 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
13991
13992         * reflection.c (create_custom_attr): Allow len == 0.
13993
13994         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
13995         computation on big-endian machines.
13996
13997 2004-03-13  Martin Baulig  <martin@ximian.com>
13998
13999         * class.h (MonoGenericInst): Added `int count_ifaces'.
14000
14001         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
14002         `ginst->count_ifaces' instead `klass->interface_count' since we
14003         may get called before the vtable is created.
14004
14005         * loader.c (mono_method_get_param_names): If we're a generic
14006         instance, return and don't initialize the class.
14007
14008         * reflection.c (mono_reflection_setup_generic_class): Don't call
14009         ensure_runtime_vtable().
14010         (mono_reflection_bind_generic_parameters): Set
14011         `ginst->count_ifaces'.
14012
14013 2004-03-11  Jackson Harper <jackson@ximian.com>
14014
14015         * icall.c:
14016         * unicode.c:
14017         * unicode.h: Remove unused System.Char icalls.
14018         
14019 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
14020
14021         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
14022         code when we P/Invoke the first library in Windows.Forms, instead
14023         of when we first open the assembly.
14024
14025         * assembly.c: Drop the lookup from here.
14026
14027 2004-03-10  Martin Baulig  <martin@ximian.com>
14028
14029         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
14030         class for properties, fields and events.  Finally fixes #54945.
14031
14032 2004-03-10  Martin Baulig  <martin@ximian.com>
14033
14034         * metadata.c (mono_metadata_class_equal): New static function;
14035         checks whether two generic instances or two generic parameters are
14036         equal.
14037         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
14038         compare classes.        
14039
14040 2004-03-10  Martin Baulig  <martin@ximian.com>
14041
14042         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
14043
14044         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
14045         argument and write it into the `reflection_info' field.
14046
14047         * icall.c
14048         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
14049         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
14050
14051 2004-03-09  Jackson Harper  <jackson@ximian.com>
14052
14053         * char-conversions.h: use 8 bits for numeric data its all we need
14054         * icall.c: numeric data is only 8 bits now.
14055
14056 2004-03-09  Martin Baulig  <martin@ximian.com>
14057
14058         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
14059
14060         * class.c (init_properties, init_events): Initialize the new
14061         `parent' field.
14062
14063         * reflection.c (typebuilder_setup_properties): Likewise.
14064         (typebuilder_setup_events): Likewise.
14065
14066         * reflection.h (MonoEventInfo): Replaced `parent with
14067         `declaring_type' and `reflected_type'.
14068
14069         * icall.c (ves_icall_get_property_info): Distinguish between
14070         declaring and reflected type.
14071         (ves_icall_get_event_info): Likewise.
14072
14073 2004-03-09  Martin Baulig  <martin@ximian.com>
14074
14075         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
14076         (ves_icall_Type_GetField): Correctly set field->klass.
14077
14078 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
14079
14080         * loader.h: Fix warning.
14081
14082 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
14083
14084         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
14085         library routine if present.  Notice that it will still continue
14086         executing even if its missing, for those working on the Gtk#
14087         edition of Windows.Forms.
14088
14089         * assembly.c (do_mono_assembly_open): If loading the
14090         System.Windows.Forms call mono_loader_wini_init.
14091
14092 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
14093
14094         * class.h: Added MonoRemoteClass struct.
14095         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
14096         function for MonoStrings.
14097         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
14098         Added internal call for getting the proxy type.
14099         * marshal.c: Get the type of transparent proxies from its remote_class.
14100         Added methods that generate the IL for type checks and casts:
14101         mono_marshal_get_isinst, mono_marshal_get_castclass, 
14102         mono_marshal_get_proxy_cancast.
14103         * marshal.h: Declaration of the previous new methods.
14104         * object.c: Added new moethods for creating and updating MonoRemoteClass
14105         instances: mono_remote_class, mono_upgrade_remote_class, 
14106         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
14107         * verify.c: FIx transparent_proxy_fields layout.
14108         * appdomain.c: Bump corlib version.
14109
14110 2004-03-04  Jackson Harper  <jackson@ximian.com>
14111
14112         * icall.c: Add icall to access char conversion tables.
14113         * char-conversions.h: Character conversion tables.
14114         * Makefile.am: Add char-conversions.h private header file.
14115         
14116 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
14117
14118         * appdomain.c (unload_thread_main): Increase unloading timeout to
14119         10 sec as a temporary workaround for Nant problems.
14120
14121 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
14122
14123         * gc.c: Add checks for GC_enable and GC_disable.
14124
14125         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
14126         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
14127         (bug #54988).
14128         
14129 2004-02-27  Martin Baulig  <martin@ximian.com>
14130
14131         * reflection.c (mono_reflection_bind_generic_parameters): Take a
14132         `MonoReflectionType *' instead of a `MonoType *'.
14133
14134 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
14135
14136         * gc.c (run_finalize): Avoid finalizing the object representing the
14137         finalizer thread.
14138         (finalizer_thread): Fix warning.
14139
14140 2004-02-25  Martin Baulig  <martin@ximian.com>
14141
14142         * class.c (_mono_class_get_instantiation_name): Added `int offset'
14143         argument for nested types.
14144         (mono_class_create_generic): Added support for nested generictypes.
14145
14146         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
14147         `GList *nested'.
14148
14149         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
14150
14151         * reflection.c (method_encode_signature): Increase the minimum
14152         value of `size' from 10 to 11.
14153         (mono_reflection_bind_generic_parameters): Take `int type_argc'
14154         and `MonoType **types' arguments instead of the `MonoArray
14155         *types'; added `MonoType *nested_in'.  Recursively instantiate
14156         nested classes. 
14157
14158 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
14159
14160         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
14161         stack_overflow_ex members which are used by exception handling.
14162
14163         * appdomain.c (mono_runtime_init): Initialize the new members.
14164
14165         * gc.c (mono_gc_enable): New helper function.
14166         * gc.c (mono_gc_disable): New helper function.
14167
14168 2004-02-23  Martin Baulig  <martin@ximian.com>
14169
14170         * icall.c: I must have been really stupid - make it actually work
14171         this time ;-)
14172
14173 2004-02-23  Martin Baulig  <martin@ximian.com>
14174
14175         * loader.c (method_from_memberref): Only inflate the method if
14176         it's in another klass.
14177
14178 2004-02-23  Martin Baulig  <martin@ximian.com>
14179
14180         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
14181         (mono_class_init): If we're a generic instance and an interface,
14182         compute `class->interface_id'; also create `class->interfaces'
14183         here and inflate them.
14184
14185         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
14186         `ginst->is_open'.
14187         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
14188
14189         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
14190
14191 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
14192
14193         * reflection.c (method_encode_code): Improved the error message
14194         generated by the exception.
14195
14196 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14197
14198         * icall.c: Martin did not do what he said in the ChangeLog for
14199         2004-02-18, but put back the changes for properties and events.
14200         Commenting those changes out again and adding comment to bug #54518.
14201         
14202         * process.c: removed warning.
14203
14204 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
14205
14206         * marshal.c (emit_struct_conv): Print an error message instead of
14207         asserting when a type does not have the StructLayout attribute.
14208
14209 2004-02-20  Martin Baulig  <martin@ximian.com>
14210
14211         * reflection.c (mono_type_get_object): Also use the cache for
14212         generic instances.
14213         (mono_reflection_bind_generic_parameters): Always compute
14214         `ginst->ifaces'.        
14215
14216 2004-02-20  Martin Baulig  <martin@ximian.com>
14217
14218         * class.h (MonoGenericMethod): Removed `klass'.
14219
14220         * class.c (mono_class_inflate_generic_method): Added `MonoClass
14221         *klass' argument.
14222
14223 2004-02-20  Martin Baulig  <martin@ximian.com>
14224
14225         * reflection.c (method_encode_methodspec): Actually use the
14226         uninflated signature for the memberref.
14227
14228 2004-02-20  Martin Baulig  <martin@ximian.com>
14229
14230         * class.h (MonoGenericMethod): Removed `declaring'.
14231
14232         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
14233         is NULL, compute it here.
14234
14235 2004-02-20  Martin Baulig  <martin@ximian.com>
14236
14237         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
14238
14239         * metadata.c (mono_metadata_generic_inst_hash): New method.
14240         (mono_metadata_generic_inst_equal): New method.
14241
14242         * reflection.c (mono_reflection_bind_generic_parameters): Use the
14243         `klass->image->generic_inst_cache' cache to avoid creating
14244         duplicate MonoGenericInst's.
14245
14246         * class.c (mono_class_inflate_generic_type): Use the cache.
14247
14248 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
14249
14250         * object.c: fixed gc descriptor calculation for embedded valuetypes.
14251
14252 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14253
14254         * icall.c: added Socket.WSAIoctl icall.
14255
14256         * socket-io.[ch]: implemented
14257         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
14258
14259 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
14260
14261         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
14262
14263 2004-02-18  Urs C Muff  <umuff@quark.com>
14264
14265         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
14266         this work on PPC and other big-endian architectures.
14267
14268         * debug-mono-symfile.h: Prepended the names of all the `guint32'
14269         fields with an underscore to make sure they're only accessed by
14270         the read32() macro.
14271
14272 2004-02-18  Martin Baulig  <martin@ximian.com>
14273
14274         * icall.c: Put the klass->refclass changes back for methods and
14275         fields, but not for properties and events.  We're currently not
14276         distinguishing between DeclaringType and ReflectedType for
14277         properties and events, that's what caused the regressions.
14278
14279 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14280
14281         * object.c:
14282         (mono_async_result_new): the handle can be NULL.
14283
14284         * threadpool.c: Use an event instead of a semaphore, don't initialize
14285         it until needed. This saves quite a few semaphores from being created
14286         when using the threadpool.
14287
14288 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
14289
14290         * object.c (mono_string_is_interned_lookup): Fix interning of long
14291         strings. Fixes #54473.
14292
14293         * domain.c (ldstr_equal): Optimize if the two strings are equal.
14294
14295         * icall.c: Revert the klass->refclass changes since they introduce
14296         regressions (bug #54518).
14297
14298 2004-02-18  Martin Baulig  <martin@ximian.com>
14299
14300         * class.c (mono_class_init): If we're a generic instance and don't
14301         come from a TypeBuilder, inflate our members here.
14302         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
14303         (mono_class_create_generic): New public method.
14304         (mono_class_initialize_generic): Removed.
14305         (get_instantiation_name): Renamed to
14306         _mono_class_get_instantiation_name() and made it public.
14307
14308 2004-02-18  Martin Baulig  <martin@ximian.com>
14309
14310         * class.c (mono_class_inflate_generic_type): Clear the new
14311         instance's `nginst->klass' when inflating a generic instance.
14312         (mono_class_is_subclass_of): Added (basic) support for generic
14313         instances.
14314
14315 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
14316
14317         * appdomain.h, domain.c: use a MonoCodeManager instead of a
14318         MonoMempool to hold compiled native code.
14319
14320 2004-02-17  Martin Baulig  <martin@ximian.com>
14321
14322         * class.h (MonoDynamicGenericInst): Added `count_properties' and
14323         `properties'.
14324
14325         * reflection.c (mono_reflection_generic_inst_initialize): Added
14326         `MonoArray *properties' argument.
14327
14328         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
14329
14330 2004-02-17  Martin Baulig  <martin@ximian.com>
14331
14332         * icall.c (ves_icall_Type_GetFields): Renamed to
14333         ves_icall_Type_GetFields_internal() and added a
14334         `MonoReflectionType *rtype' argument; pass it to
14335         mono_field_get_object() to set the field's "reflected" type.
14336         (ves_icall_Type_GetConstructors): Likewise.
14337         (ves_icall_Type_GetEvents): Likewise.
14338         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
14339         argument; pass it to mono_method_get_object() to set the method's
14340         "reflected" type.       
14341
14342 2004-02-17  Martin Baulig  <martin@ximian.com>
14343
14344         * class.h (MonoDynamicGenericInst): New type.
14345         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
14346
14347         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
14348         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
14349         (ves_icall_MonoGenericInst_GetFields): New interncall.
14350
14351         * class.c (mono_class_from_generic): Don't call
14352         mono_class_initialize_generic() if this is a dynamic instance;
14353         ie. it's being created from a TypeBuilder.
14354         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
14355         `class->byval_arg.type'.
14356
14357         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
14358         to `inflate_method' and made static.
14359         (mono_reflection_inflate_field): Removed.
14360         (mono_reflection_generic_inst_initialize): New public method.
14361
14362         * reflection.h (MonoReflectionGenericInst): Removed `methods',
14363         `ctors' and `fields'; added `initialized'.
14364
14365 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
14366
14367         * debug-helpers.c (mono_method_full_name): Fix output for empty
14368         namespaces.
14369
14370 2004-02-12  Martin Baulig  <martin@ximian.com>
14371
14372         * class.h (MonoClassField): Added `MonoType *generic_type'.
14373
14374         * reflection.c (mono_image_get_fieldref_token): Added support for
14375         instantiated generic types.
14376         (field_encode_inflated_field): Removed.
14377         (mono_image_get_inflated_field_token): Removed.
14378         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
14379
14380         * reflection.h (MonoReflectionInflatedField): Removed.
14381
14382 2004-02-12  Martin Baulig  <martin@ximian.com>
14383
14384         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
14385         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
14386
14387         * reflection.c (mono_image_get_methodspec_token): Take a
14388         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
14389         (mono_image_create_token): Check whether we have a
14390         `method->signature->gen_method' and call
14391         mono_image_get_methodspec_token() if appropriate.
14392         (inflated_method_get_object): Removed.
14393         (mono_reflection_bind_generic_method_parameters): Return a
14394         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
14395         (mono_reflection_inflate_method_or_ctor): Likewise.
14396
14397         * reflection.h (MonoReflectionInflatedMethod): Removed.
14398
14399 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
14400
14401         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
14402         for custom valuetype marshalling.
14403
14404         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
14405
14406 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14407
14408         * icall.c: fixed WSAGetLastError_internal name.
14409
14410 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
14411
14412         * threads.c (mono_thread_attach): Allow this to be called multiple
14413         times for a thread.
14414         
14415         * threads.c (build_wait_tids): Do not wait for ourselves.
14416
14417         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
14418         appdomain list is empty.
14419
14420         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
14421         memory returned by mono_string_builder_to_utf16, since it points into
14422         managed memory. Thanks to Bernie Solomon for noticing this.
14423
14424         * icall.c: Add AppDomainSetup icalls.
14425
14426         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
14427
14428         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
14429         types.
14430
14431         * reflection.c (reflection_methodbuilder_to_mono_method): Save
14432         custom attributes to the method_aux struct. Also fix array indexes etc.
14433
14434         * loader.c (mono_method_get_param_names): Make dynamic case work again.
14435         
14436 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
14437
14438         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
14439         (both static and runtime) and reduce startup time.
14440
14441 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
14442
14443         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
14444         AsAny marshalling conversion instead of crashing.
14445
14446         * marshal.c: Fix warnings.
14447
14448 2004-02-09  Martin Baulig  <martin@ximian.com>
14449
14450         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
14451
14452         * reflection.h (MonoReflectionInflatedMethod): Removed the
14453         `declaring' field, it's now in the unmanaged MonoGenericMethod.
14454
14455         * reflection.c (method_encode_methodspec): Removed the `method'
14456         argument; we get it from `gmethod->declaring'.
14457         (inflated_method_get_object): Removed the `declaring' argument.
14458
14459 2004-02-09  Martin Baulig  <martin@ximian.com>
14460
14461         * class.h (MonoGenericMethod): New type.
14462         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
14463         `generic_method'.
14464
14465         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
14466         a `MonoGenericMethod *gen_method' one.
14467
14468         * class.c (mono_class_inflate_generic_type): Take an additional
14469         `MonoGenericMethod * argument.  This is only non-NULL if we're
14470         inflating types for a generic method.   
14471         (mono_class_inflate_generic_signature): Renamed to
14472         inflate_generic_signature() and made static; take a
14473         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
14474         (inflate_generic_header): Take a `MonoGenericMethod *' argument
14475         instead of a `MonoGenericInst *' one.
14476         (mono_class_inflate_generic_method): Likewise.
14477
14478         * reflection.c (encode_generic_method_sig): Take a
14479         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
14480         (method_encode_methodspec): Likewise.
14481         (inflated_method_get_object): Likewise. 
14482
14483         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
14484         field with a `MonoGenericMethod *gmethod' one.  
14485
14486 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
14487
14488         * class.h (mono_class_has_parent): add parens to expansion
14489         so you can ! this.
14490
14491 2004-02-08  Martin Baulig  <martin@ximian.com>
14492
14493         * image.h (MonoImage): Removed `generics_cache'.
14494
14495         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
14496         instead of a `MonoType *' argument; removed the `inflate_methods'
14497         argument.  Don't inflate methods here.
14498
14499         * loader.c (find_method): If it's a generic instance, call
14500         mono_class_init() on the `sclass->generic_inst->generic_type'.
14501
14502         * metadata.c (mono_type_size): Make this work on uninitialized
14503         generic instances; call it on the `ginst->generic_type's class.
14504
14505         * reflection.c (mono_reflection_bind_generic_parameters): Call
14506         mono_class_from_generic() to create the `ginst->klass'.
14507
14508 2004-02-08  Martin Baulig  <martin@ximian.com>
14509
14510         * class.h (MonoClass): Changed type of `generic_inst' from
14511         `MonoType *' to `MonoGenericInst *'.
14512
14513 2004-02-08  Martin Baulig  <martin@ximian.com>
14514
14515         * icall.c (ves_icall_Type_BindGenericParameters): Just call
14516         mono_type_get_object(), this is now creating a `MonoGenericInst'
14517         for MONO_TYPE_GENERICINST.
14518         (ves_icall_MonoGenericInst_GetParentType): Likewise.
14519         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
14520
14521         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
14522         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
14523         (inflated_method_get_object): Added `MonoClass *refclass' argument.
14524         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
14525         and reflected type.
14526
14527         * reflection.h (MonoReflectionInflatedMethod): Removed
14528         `declaring_type' and `reflected_type'.
14529
14530 2004-02-08  Martin Baulig  <martin@ximian.com>
14531
14532         * class.h (MonoGenericInst): Added `MonoType *parent' and
14533         `MonoType **ifaces'.
14534
14535         * reflection.h (MonoReflectionGenericInst): Removed `klass',
14536         `parent' and `interfaces'.
14537
14538         * reflection.c (mono_reflection_bind_generic_parameters): Take a
14539         `MonoType *' argument and return a `MonoType *'.
14540
14541         * icall.c
14542         (ves_icall_MonoGenericInst_GetParentType): New interncall.
14543         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
14544
14545 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
14546
14547         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
14548         valuetype marshalling.
14549
14550 2004-02-06  Martin Baulig  <martin@ximian.com>
14551
14552         * class.c
14553         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
14554         (my_mono_class_from_generic_parameter): Likewise.
14555
14556 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
14557
14558         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
14559         contents of the symbol files lazily.
14560
14561         * object.h (MonoThread): Add 'name' and 'name_len' fields.
14562
14563         * threads.h threads.c icall.c: New icalls for getting and setting the
14564         threads name.
14565
14566 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
14567
14568         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
14569         Raise an exception when the domain is not found.
14570
14571 2004-02-03  Martin Baulig  <martin@ximian.com>
14572
14573         * reflection.c (mono_image_get_methodspec_token): Use the
14574         uninflated signature; fixes gen-33.
14575
14576 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
14577
14578         * gc.c threads.c: Make the finalizer thread a normal managed thread so
14579         the finalizer code can use thread functionality.
14580
14581         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
14582         the finalizer thread.
14583
14584         * threads.c: Make some functions more robust.
14585
14586         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
14587
14588         * metadata.h: Add new marshalling conventions.
14589
14590         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
14591         stringbuilder marshalling. Fixes #53700.
14592
14593         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
14594
14595         * reflection.c (mono_image_get_type_info): Save declarative security
14596         info.
14597
14598         * reflection.c (mono_image_get_field_info): Handle uninitialized 
14599         unmanaged fields as well.
14600
14601         * appdomain.c: Bump corlib version.
14602
14603 2004-02-01  Martin Baulig  <martin@ximian.com>
14604
14605         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
14606         method type arguments.  
14607
14608 2004-01-30  Duncan Mak  <duncan@ximian.com>
14609
14610         * marshal.h: Add prototype for
14611         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
14612         and
14613         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
14614         fix the build.
14615
14616 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
14617
14618         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
14619         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
14620
14621 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
14622
14623         * marshal.c (mono_marshal_get_native_wrapper): Add support for
14624         custom marshalling of valuetypes.
14625
14626         * marshal.c: Fix some warnings.
14627
14628 2004-01-29  Martin Baulig  <martin@ximian.com>
14629
14630         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
14631         for generic method parameters.
14632
14633         * reflection.c (method_encode_methodspec): Write the uninflated
14634         signature into the methodspec table.
14635         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
14636         is always the uninflated method.
14637         (reflection_methodbuilder_to_mono_method): Copy the generic
14638         parameters from the MethodBuilder into `header->gen_params'.
14639
14640 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
14641
14642         * class.c (mono_class_from_generic_parameter): Fix warning.
14643
14644 2004-01-27  Martin Baulig  <martin@ximian.com>
14645
14646         * class.c (mono_class_from_generic_parameter): Don't create
14647         `klass->methods' here.  
14648
14649 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
14650
14651         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
14652         extension since it does not work with libraries named lib<FOO>.dll.so.
14653
14654 2004-01-25  Martin Baulig  <martin@ximian.com>
14655
14656         * class.c (mono_class_inflate_generic_type): Added support for
14657         MONO_TYPE_GENERICINST.
14658
14659         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
14660         inflate methods on open constructed types.      
14661
14662 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14663
14664         * object.c: fire ProcessExit event in the root AppDomain after running
14665         Main. Fixes bug #53299.
14666
14667 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
14668
14669         * socket-io.c: include the new socket-wrappers.h header.
14670         Use the wrappers instead of the unix socket functions to make the code
14671         more clear.
14672
14673 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
14674
14675         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
14676
14677         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
14678         Fixes #22532.
14679
14680 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
14681
14682         * reflection.c (mono_image_create_pefile): Handle the case when the
14683         entry point is not a MethodBuilder.
14684
14685         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
14686         field to ReflectionMethod since it is not allways a builder.
14687
14688         * reflection.c (type_get_fully_qualified_name): New helper function to
14689         return the fully qualified name of a type.
14690
14691         * reflection.c (encode_marshal_blob): Always emit the fully qualified
14692         type name for custom marshallers.
14693
14694         * reflection.c (mono_marshal_spec_from_builder): Ditto.
14695
14696         * class.c (mono_class_setup_vtable): If a parent class already 
14697         implements an interface, use the implementing methods from that class.
14698         Fixes #53148.
14699
14700 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14701
14702         * threadpool.c: just return instead of ExitThread to allow for thread
14703         clean up earlier.
14704
14705 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
14706
14707         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
14708         when closing resource modules.
14709
14710         * reflection.c (mono_image_create_pefile): Handle the case when the
14711         entry point is not a MethodBuilder.
14712
14713         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
14714         field to ReflectionMethod since it is not allways a builder.
14715
14716 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
14717
14718         * marshal.c (mono_marshal_get_managed_wrapper): 
14719         mono_marshal_alloc takes native int so CONV_I
14720         the arg for 64bits.
14721
14722 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
14723
14724         * reflection.c (fixup_cattrs): New function to fixup the methoddef
14725         tokens in the cattr table. Fixes #53108.
14726
14727 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14728
14729         * loader.c: don't trim ".dll" before looking up in the config file.
14730         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
14731
14732 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
14733
14734         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
14735         Return the module which contains the resource as well.
14736         (ves_icall_System_Reflection_Module_Close): New icall.
14737
14738         * appdomain.c: Bump corlib version number.
14739
14740         * image.c (mono_image_addref): New public function.
14741
14742         * assembly.c: Call mono_image_addref.
14743
14744         * reflection.c (mono_module_get_object): Increase reference count of 
14745         the image.
14746
14747         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
14748         Fixes #22532.
14749
14750         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
14751         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
14752         proper exceptions on DllImport problems.
14753
14754 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
14755
14756         * class.c, metadata.c: eliminate CSIZE macro.
14757
14758 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
14759
14760         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
14761         * object.h: Added async_callback field in MonoAsyncResult.
14762         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
14763         * verify.c: Added async_callback in MonoAsyncResult layout.
14764
14765 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
14766
14767         * reflection.c (mono_reflection_get_custom_attrs): Add support
14768         for Modules.
14769
14770 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
14771
14772         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
14773         marshalling.
14774         (mono_marshal_method_from_wrapper): Add null pointer check.
14775
14776 2004-01-16  Martin Baulig  <martin@ximian.com>
14777
14778         * debug-mono-symfile.h: Set version number to 36 and reflect
14779         latest symbol writer changes.
14780
14781 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
14782
14783         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
14784         multi-dimensional arrays.
14785         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
14786         (mono_class_from_mono_type): Use bounded_array_class_get.
14787         
14788         * class.c (mono_bounded_array_class_get): New function which takes
14789         a 'bounded' bool argument to distinguish vectors from one dimensional
14790         arrays.
14791
14792         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
14793         bounded_array_class_get if the array has bounds.
14794
14795         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
14796         Search modules loaded using AssemblyBuilder:AddModule as well.
14797
14798 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14799
14800         * appdomain.c: increased corlib version.
14801         * filewatcher.c: removed g_print.
14802         * icall.c:
14803         (get_property_info): only allocate what is actually requested.
14804         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
14805
14806 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14807
14808         * Makefile.am: added filewatcher.[ch]
14809         * filewatcher.[ch]: FileSystemWatcher runtime support.
14810         * icall.c: added new FSW icalls.
14811
14812 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
14813
14814         * string-icalls.c: fix stringbuilder regression as suggested by
14815         Iain McCoy <iain@mccoy.id.au>.
14816
14817 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
14818
14819         * process.c (process_read_stringtable_block): Recognize '007f' as
14820         a language neutral stringtable block.
14821
14822 2004-01-12  Patrik Torstensson
14823
14824         * object.h (MonoStringBuilder) : Changed layout to support our
14825         new stringbuilder class.
14826         * marshal.c: Change marshalling to support the new layout of 
14827         string builder.
14828         * appdomain.c: increased version number because new layout of
14829         string builder.
14830
14831 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
14832
14833         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
14834         assembly name as an string instead of an AssemblyName, since it is
14835         easier to extract info from it.
14836
14837         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
14838         the culture subdirectories too. Fixes #52231.
14839
14840 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14841
14842         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
14843         It takes 2 new parameters with an optional name for the method to look
14844         for and case ignoring info.
14845
14846         * threadpool.c: removed unused variable.
14847
14848 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14849
14850         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
14851         It takes 2 new parameters with an optional name for the property to look
14852         for and case ignoring info.
14853         Fixes bug #52753.
14854
14855 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
14856
14857         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
14858         Fix #52451.
14859
14860 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14861
14862         * appdomain.c:
14863         * assembly.c: escape the uri before passing it to g_filename_from_uri.
14864         Fixes bug #52630.
14865
14866 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
14867
14868         * reflection.c: Add support for more than one unmanaged resource.
14869
14870         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
14871         in field->def_value, as done in all other cases.
14872
14873         * reflection.c (mono_reflection_get_custom_attrs): Add support for
14874         TypeBuilders.
14875
14876         * reflection.c (mono_reflection_create_runtime_class): Remove 
14877         errorneous assignment to klass->element_class, since it is already
14878         done in mono_reflection_setup_internal_class.
14879
14880 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14881
14882         * gc.c: added missing LeaveCriticalSection.
14883         * icall.c: indented a couple of lines.
14884         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
14885         if we call EndInvoke inside a callback. Fixes bug #52601.
14886
14887 2004-01-07  Martin Baulig  <martin@ximian.com>
14888
14889         * mono-debug-debugger.h
14890         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
14891
14892 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
14893
14894         * appdomain.c: Use messages in NotImplementedException.
14895
14896         * exception.c (mono_get_exception_not_implemented): Now this takes
14897         a message argument.
14898
14899         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
14900         exception instead of g_asserting an aborting when something is not
14901         implemented.
14902
14903         Add some inline docs.
14904
14905 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
14906
14907         * reflection.h: Update after changes to object layout.
14908
14909         * reflection.c: Implement saving of unmanaged aka win32 resources.
14910
14911         * appdomain.c: Bump version number.
14912
14913         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
14914         Handle missing domains gracefully.
14915
14916 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
14917
14918         * file-io.c : On Windows, there are much more invalid_path_chars.
14919
14920 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
14921
14922         * class.h, object.c: prepare for GetType () speedup.
14923
14924 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
14925
14926         * profiler.c: workaround for --profile null reference exception on
14927           cygwin. Patch by Patrik Torstensson.
14928
14929 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
14930
14931         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
14932         make work for unaligned access.
14933
14934 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
14935
14936         * class.c: small cleanup (class->fields [i] -> field).
14937         * image.c: check address of metadata is valid.
14938
14939 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
14940
14941         * assembly.h assembly.c (mono_assembly_loaded): New public function to
14942         search the list of loaded assemblies.
14943
14944         * reflection.c (mono_reflection_type_from_name): Use 
14945         mono_assembly_loaded instead of mono_image_loaded.
14946
14947         * reflection.c: Fix warnings.
14948
14949 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
14950
14951         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
14952         is dynamic. This is needed since an assembly can contain both dynamic and
14953         non-dynamic images.
14954
14955         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
14956         assembly->dynamic.
14957
14958         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
14959
14960         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
14961         to store modules loaded using AddModule.
14962
14963         * reflection.c (mono_image_fill_file_table): Generalize this so it works
14964         on Modules.
14965
14966         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
14967
14968         * reflection.c (mono_image_fill_export_table_from_module): New function to
14969         fill out the EXPORTEDTYPES table from a module.
14970
14971         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
14972         into a separate function. Also handle loaded non-dynamic modules.
14973
14974         * reflection.c (mono_image_basic_init): Fix memory allocation.
14975
14976         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14977
14978         * assembly.c (mono_assembly_load_references): Make this public.
14979
14980 2003-12-19  Martin Baulig  <martin@ximian.com>
14981
14982         * class.c (mono_class_initialize_generic): Made this static, take
14983         a `MonoGenericInst *' instead of a `MonoClass *'.
14984         (mono_class_from_generic): Call mono_class_initialize_generic()
14985         unless we're already initialized or being called from
14986         do_mono_metadata_parse_generic_inst().
14987
14988         * class.h (MonoGenericInst): Added `initialized' and
14989         `init_pending' flags.
14990
14991         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
14992         `mono_class_init (gklass)' or mono_class_initialize_generic()
14993         here; set `generic_inst->init_pending' while parsing the
14994         `type_argv'.
14995
14996 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
14997
14998         * locales.c: include string.h for memxxx prototypes
14999
15000 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
15001
15002         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
15003         constructor when accessing literal fields.
15004
15005 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
15006
15007         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
15008
15009         * reflection.c (assembly_add_resource_manifest): New function to fill
15010         the MANIFESTRESOURCE table.
15011
15012         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
15013
15014         * reflection.h: Update to changes in class layout.
15015
15016         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
15017         Reenable call to mono_runtime_is_shutting_down ().
15018
15019         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
15020         determine if the runtime is shutting down.
15021
15022 2003-12-16  Jackson Harper <jackson@ximian.com>
15023
15024         * icall.c: comment out call to mono_runtime_is_shutting_down to
15025         fix build.
15026         
15027 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
15028
15029         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
15030         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
15031
15032 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
15033
15034         * reflection.c: move definition of swap_with_size
15035         to before its first call
15036
15037 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
15038
15039         * appdomain.c (mono_runtime_is_shutting_down): New public function.
15040
15041         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
15042         icall.
15043
15044         * object.c: Fix warnings.
15045
15046         * icall.c (ves_icall_Type_Get...): Only consider inherited static
15047         members if FlattenHierarchy is set.
15048
15049         * reflection.c (mono_image_add_decl_security): New function to emit
15050         declarative security.
15051
15052         * reflection.h reflection.c: Add support for declarative security.
15053
15054         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
15055         
15056 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
15057
15058         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
15059         
15060         * appdomain.c verify.c: Moved corlib version checking into its own
15061         function in appdomain.c since it needs to create vtables etc.
15062
15063 2003-12-13  Patrik Torstensson <p@rxc.se>
15064
15065         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
15066         instead of unwrapped server.
15067
15068 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
15069
15070         * verify.c (check_corlib): Fix field index.
15071
15072 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
15073
15074         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
15075         GetGacPath icall.
15076
15077 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
15078
15079         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
15080         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
15081         cope with sizeof(size_t) != sizeof(guint32).
15082
15083 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15084
15085         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
15086         in case of failure.
15087
15088 2003-12-10  Mark Crichton <crichton@gimp.org>
15089
15090         * icall.c: removed the GetNonZeroBytes.  We now handle this case
15091         in managed code.
15092
15093         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
15094
15095 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
15096
15097         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
15098         marked as deleted.
15099
15100 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
15101
15102         * verify.c (check_corlib): Handle the case when the version field is 
15103         initialized by a static constructor.
15104
15105 2003-12-08  Patrik Torstensson  <p@rxc.se>
15106
15107     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
15108
15109 2003-12-08  Martin Baulig  <martin@ximian.com>
15110
15111         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
15112         a MonoReflectionGenericParameter, also take the parameter index
15113         and name as arguments.
15114         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
15115         (ves_icall_MonoGenericParam_initialize): New interncall.
15116         (ves_icall_Type_make_byref_type): New interncall.
15117
15118         * reflection.h (MonoReflectionGenericParam): Derive from
15119         MonoReflectionType, not just from MonoObject.  Added `refobj' and
15120         `index' fields.
15121
15122         * reflection.c (mono_reflection_define_generic_parameter): Create
15123         and return a new MonoReflectionGenericParam; don't initialize the
15124         constraints here.
15125         (mono_reflection_initialize_generic_parameter): New public method;
15126         initializes the constraints and creates the `param->pklass'.
15127
15128 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
15129
15130         * reflection.h reflection.c: Use the new fields 'num_types', 
15131         'num_fields' and 'num_methods' to track the number of types etc.
15132
15133         * verify.c (check_corlib): Check corlib version number.
15134
15135 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
15136
15137         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
15138         function works on all methods.
15139
15140 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
15141
15142         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
15143         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
15144         the custom_type_info flag of the transparent proxy.
15145         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
15146         objects that supports IRemotingTypeInfo.
15147         * object.h: Added custom_type_info field in transparent proxy.
15148
15149 2003-12-06  Martin Baulig  <martin@ximian.com>
15150
15151         * class.c (mono_class_create_from_generic): Removed.
15152         (mono_class_from_generic): Check `ginst->klass' before doing
15153         anything else.  This is important to fully support "recursive"
15154         generic types.
15155
15156         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
15157         empty `generic_inst->klass' before doing anything else.
15158
15159 2003-12-06  Dick Porter  <dick@ximian.com>
15160
15161         * verify.c: 
15162         * object.h:
15163         * icall.c:
15164         * locales.c: Use C structs to access class fields.  Don't do a
15165         conversion between MonoString and UChar because both are
15166         platform-endian UTF-16.  Compare now takes startindex and count
15167         parameters.  Add a char overload for IndexOf.  Speed up the
15168         invariant string IndexOf.
15169
15170 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
15171
15172         * Makefile.am (monosn_LDADD): Fix parallel build.
15173
15174 2003-12-04  Martin Baulig  <martin@ximian.com>
15175
15176         * icall.c
15177         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
15178         (ves_icall_Type_make_array_type): New interncall.       
15179
15180 2003-12-04  Martin Baulig  <martin@ximian.com>
15181
15182         * locales.c: also change it in the !HAVE_ICU case.
15183
15184 2003-12-04  Dick Porter  <dick@ximian.com>
15185
15186         * icall.c:
15187         * locales.c: construct_compareinfo is now in CompareInfo, not
15188         CultureInfo.
15189
15190 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
15191
15192         * image.c (mono_image_load_file_for_image): Cache loaded images in the
15193         image->files array.
15194
15195         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
15196         table as well.
15197
15198         * assembly.c (mono_assembly_load_references): Only load references
15199         once.
15200
15201         * class.c (mono_class_from_name): Avoid linear search of the 
15202         EXPORTEDTYPE table.
15203
15204         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
15205
15206 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
15207
15208         * image.h (MonoImage): Add 'field_cache' field.
15209
15210         * loader.c (mono_field_from_token): Cache field lookups.
15211         
15212         * reflection.c (mono_module_get_object): Fix name property.
15213
15214         * icall.c (ves_icall_get_enum_info): Update after changes to 
15215         mono_metadata_get_constant_index ().
15216
15217         * icall.c: Get rid of get_type_info icall, use a separate icall for
15218         each type property to avoid needless memory allocations. Fixes #51514.
15219
15220         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
15221         to avoid needless binary searches.
15222
15223         * class.c (class_compute_field_layout): Move the initialization of
15224         field->def_value to mono_class_vtable ().
15225
15226         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
15227         non-corlib types.
15228
15229         * object.c (mono_object_allocate): Make it inline.
15230
15231         * object.c (mono_object_allocate_spec): Make it inline.
15232         
15233 2003-12-02  Dick Porter  <dick@ximian.com>
15234
15235         * locales.c (create_NumberFormat): NumberFormatInfo construction.
15236         Patch by Mohammad DAMT (mdamt@cdl2000.com).
15237
15238 2003-12-01  Dick Porter  <dick@ximian.com>
15239
15240         * threads.c: Fix signature and call in CreateMutex and
15241         CreateEvent.
15242
15243 2003-12-01  Dick Porter  <dick@ximian.com>
15244
15245         * icall.c: 
15246         * locales.c: Implement string compares and searching
15247
15248         * object.h: Add extra Thread field
15249
15250 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
15251
15252         * reflection.c (fixup_method): Add support for MonoCMethod.
15253
15254 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
15255
15256         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
15257
15258         * reflection.c (assembly_name_to_aname): Allow extra characters in
15259         assembly names. Fixes #51468.
15260
15261 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
15262
15263         * exception.c (mono_exception_from_name_domain): New helper function.
15264
15265         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
15266         exception object in the correct domain.
15267
15268         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
15269         formatting + make a copy a the input data.
15270
15271         * loader.c (mono_get_method_from_token): Methods which contain
15272         native code do not have entries in the ImplMap.
15273
15274         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
15275         Thanks to Gonzalo for spotting this.
15276         
15277         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
15278         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
15279
15280         * assembly.h (mono_assembly_load_from): Split the second part of 
15281         assembly loading into a new public function.
15282
15283         * exception.h (mono_get_exception_bad_image_format): New function.
15284
15285 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
15286
15287         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
15288         Enumerate all modules inside a dynamic assembly. Fixes #51293.
15289         
15290         * icall.c: Add new icall for creating dynamic methods.
15291
15292         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
15293
15294         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
15295
15296         * reflection.c (mono_reflection_create_dynamic_method): New icall to
15297         create a dynamic method.
15298
15299         * reflection.c (resolve_object): New helper function.
15300
15301         * reflection.c: Generalize ReflectionMethodBuilder and the functions
15302         which manipulate it so they can also work on dynamic methods.
15303
15304         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
15305         creating the MonoReflectionMethodAux structure if it is not needed.
15306         
15307         * reflection.h verify.c: Update after changes to object layout.
15308
15309         * reflection.c (method_builder_encode_signature): Fix compilation on
15310         gcc 2.95.x.
15311
15312 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
15313
15314         * appdomain.h: Added support for context static fields. Added static_data
15315           field to MonoAppContext and renamed thread_static_fields to a more
15316           generic special_static_fields in MonoAppDomain, since it can now contain
15317           context static fields.
15318         * domain.c: Updated hashtable name.
15319         * object.c: Replaced field_is_thread_static() for a more generic
15320           field_is_special_static() which also checks for context static attribute.
15321           In mono_class_vtable(), added support for static context fields.
15322         * threads.c: Changed methods that manage thread static fields to more
15323           generic methods so they can be reused both for thread and context static
15324           data.
15325         * threads.h: Declared some new methods.
15326
15327 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
15328
15329         * reflection.h: Update after changes to the managed types.
15330
15331         * reflection.c (encode_custom_modifiers): New helper function.
15332
15333         * reflection.c (method_encode_signature): Emit custom modifiers.
15334
15335         * reflection.c (field_encode_signature): Emit custom modifiers.
15336
15337 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
15338
15339         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
15340
15341         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
15342         implementation.
15343
15344         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
15345         icall.
15346
15347         * object.c (mono_field_get_value_object): New function.
15348
15349         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
15350         specific.
15351
15352 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
15353
15354         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
15355         return a preallocated out-of-memory exception instance.
15356
15357         * object.c (out_of_memory): Use the new function.
15358
15359         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
15360         flag is before the custom modifiers. Fixes #49802.
15361
15362 2003-11-16  Martin Baulig  <martin@ximian.com>
15363
15364         * class.c (mono_class_is_open_constructed_type): Implemented the
15365         MONO_TYPE_GENERICINST case.
15366
15367 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
15368
15369         * assembly.c (mono_assembly_fill_assembly_name): New function to
15370         fill out the MonoAssemblyName structure.
15371         (mono_assembly_open): Use the new function.
15372
15373         * icall.c (fill_reflection_assembly_name): New helper function.
15374
15375         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
15376         new function.
15377
15378         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
15379
15380 2003-11-15  Martin Baulig  <martin@ximian.com>
15381
15382         * class.c (mono_class_is_open_constructed_type): New public
15383         function; checks whether a type is an open constructed type,
15384         ie. whether it still contains type parameters.
15385         (mono_class_inflate_generic_type): If we're a type parameter and
15386         the inflated type is also a MONO_TYPE_(M)VAR, return the original
15387         type.
15388
15389         * class.h (MonoGenericInst): Added `guint32 is_open'.
15390
15391         * loader.c (method_from_methodspec): Check whether we're an open
15392         or closed constructed type and set `ginst->is_open'.
15393
15394         * reflection.c (mono_reflection_bind_generic_parameters): Check
15395         whether we're an open or closed constructed type and set
15396         `ginst->is_open'.
15397         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
15398         from open constructed types.
15399
15400 2003-11-15  Martin Baulig  <martin@ximian.com>
15401
15402         * reflection.c (mono_reflection_bind_generic_parameters): If we're
15403         a generic instance (instead of a generic type declaration) with
15404         unbound generic parameters, bind them to our actual types.
15405
15406 2003-11-14  Martin Baulig  <martin@ximian.com>
15407
15408         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
15409
15410         * reflection.c (mono_reflection_bind_generic_parameters): If we're
15411         an interface type, populate `res->interfaces' with instantiated
15412         versions of all the interfaces we inherit.
15413
15414 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
15415
15416         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
15417         when MONO_PATH is set but doesn't contain the install dir.
15418
15419 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15420
15421         * icall.c:
15422         (ves_icall_Type_GetInterfaces): don't return an interface twice when
15423         it's also implemented in base classes. Fixes bug #50927.
15424
15425 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
15426
15427         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
15428         if this method is called from a finalizer. Fixes #50913.
15429
15430 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
15431
15432         * threads.c: Implement VolatileRead/VolatileWrite
15433
15434         * icall.c: Add new icalls for VolatileRead/VolatileWrite
15435
15436 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15437
15438         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
15439         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
15440         2.95.3.
15441
15442         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
15443         from Peter Ross (pro@missioncriticalit.com).
15444         
15445 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
15446
15447         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
15448
15449 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15450
15451         * assembly.c (mono_assembly_load_references): Disable check because it
15452         triggers on older corlibs which lots of people have.
15453
15454 2003-11-12  Jackson Harper  <jackson@ximian.com>
15455
15456         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
15457         load corlib.dll if mscorlib.dll is not found.
15458         * assembly.h: Remove corlib name define.
15459         * class.c:
15460         * domain.c:
15461         * image.c: Change corlib name to mscorlib.
15462         
15463 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15464
15465         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
15466
15467 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
15468
15469         * appdomain.h: Added loader_optimization here to sync with the C#
15470         code, and add disallow_binding_redirects field.
15471
15472 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
15473
15474         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
15475
15476         * reflection.c (mono_image_build_metadata): Fix crash on modules
15477         with no types.
15478
15479         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
15480
15481         * icall.c (ves_icall_get_method_info): Return callingConvention as
15482         well.
15483
15484         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
15485         namespaces from the EXPORTEDTYPE table as well.
15486
15487         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
15488         from all modules inside the assembly.
15489         
15490 2003-11-11  Martin Baulig  <martin@ximian.com>
15491
15492         * reflection.c (mono_reflection_bind_generic_parameters): Make
15493         this work for interfaces.
15494
15495 2003-11-11  Martin Baulig  <martin@ximian.com>
15496
15497         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
15498
15499 2003-11-11  Martin Baulig  <martin@ximian.com>
15500
15501         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
15502         "MonoInflatedMethod" and "MonoInflatedCtor".
15503
15504 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
15505
15506         * reflection.c (resolution_scope_from_image): Use the assembly table
15507         from the manifest module, since other modules don't have it.
15508
15509         * debug-helpers.c (mono_type_full_name): New helper function.
15510
15511         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
15512
15513         * image.c (mono_image_load_file_for_image): New public function which
15514         is a replacement for the load_file_for_image in class.c.
15515
15516         * assembly.c (mono_assembly_load_module): A wrapper for the function
15517         above which does assembly association and reference loading too.
15518
15519         * class.c (mono_class_from_name): Call mono_assembly_load_module.
15520
15521 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15522
15523         * appdomain.c: not all of the attributes for the full assembly name
15524         are required and the order doesn't matter. Fixes bug #50787.
15525
15526 2003-11-10  Dick Porter  <dick@ximian.com>
15527
15528         * locales.c: Use platform-endian UTF16
15529
15530 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
15531
15532         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
15533         
15534 2003-11-10  Martin Baulig  <martin@ximian.com>
15535
15536         * metadata.c
15537         (mono_metadata_load_generic_params): Make this actually work.
15538
15539         * reflection.c (mono_reflection_bind_generic_parameters): If our
15540         parent is a generic instance, pass all the `types' to it, no
15541         matter whether it has the same number of type parameters or not.
15542
15543 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
15544
15545         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
15546
15547         * assembly.c (mono_assembly_load_references): Move the image<->assembly
15548         assignment code to this function so it gets called recursively for all
15549         modules.
15550
15551         * image.c (load_modules): Remove the assembly assignment since it is
15552         now done by mono_assembly_load_references.
15553         
15554         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
15555         Add 'module' argument.
15556         (mono_module_get_types): New helper function.
15557         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
15558
15559 2003-11-08  Martin Baulig  <martin@ximian.com>
15560
15561         * class.c (mono_class_inflate_generic_method): Interface method
15562         don't have a header.
15563
15564         * reflection.c (mono_image_get_methodspec_token): Take an
15565         additional `MonoGenericInst *' argument instead of reading it from
15566         the header; this is necessary to support interfaces.
15567         (mono_image_create_token): Pass the `MonoGenericInst *' from the
15568         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
15569         (inflated_method_get_object): Take an additional `MonoGenericInst *'
15570         argument.
15571
15572         * reflection.h (MonoReflectionInflatedMethod): Added
15573         `MonoGenericInst *ginst'.
15574
15575 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
15576
15577         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
15578
15579 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
15580
15581         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
15582
15583 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
15584
15585         * reflection.c 
15586         (reflection_methodbuilder_from_method_builder):
15587         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
15588         initialize a ReflectionMethodBuilder structure.
15589         (mono_image_get_methodbuilder_token):
15590         (mono_image_get_ctorbuilder_token): New functions to emit memberref
15591         tokens which point to types in another module inside the same assembly.
15592
15593         * reflection.c: Use the new helper functions.
15594         
15595         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
15596
15597         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
15598         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
15599
15600         * reflection.c (resolution_scope_from_image): Emit a moduleref if
15601         neccesary.
15602
15603         * reflection.c (mono_image_build_metadata): Emit metadata only for the
15604         current module. Emit the manifest only for the main module.
15605
15606         * reflection.c (mono_image_create_token): Add assertion when a 
15607         memberref needs to be created.
15608
15609         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
15610
15611         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
15612         larger buffer for the custom attribute blob. Fixes #50637.
15613         
15614 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15615
15616         * threadpool.c: notify listener on async processing handles after
15617         invoking the async callback. Thanks to Zoltan.
15618
15619 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15620
15621         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
15622         avoid code duplication.
15623
15624         * reflection.h (MonoDynamicImage): New type which is currently unused,
15625         but will be used through the ref.emit code in place of 
15626         MonoDynamicAssembly.
15627
15628         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
15629         object layout.
15630
15631         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
15632         a MonoDynamicImage instead of just a MonoImage.
15633         
15634         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
15635         icalls to ModuleBuilder but keep their semantics, so they will work
15636         with moduleb->assemblyb. This will change later.
15637         
15638 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15639
15640         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
15641         object layout.
15642
15643         * reflection.c (mono_image_build_metadata): Avoid creation of a default
15644         main module, since it is now done by the managed code.
15645
15646 2003-11-03  Martin Baulig  <martin@ximian.com>
15647
15648         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
15649         `ginst->klass' here.
15650         (method_encode_methodspec): Don't use the `ginst->generic_method's
15651         klass if it's a generic instance, use `ginst->klass' in this case.
15652
15653 2003-11-03  Martin Baulig  <martin@ximian.com>
15654
15655         * reflection.c (mono_image_get_generic_method_param_info):
15656         Removed, use mono_image_get_generic_param_info() instead.
15657         (mono_image_get_type_info): Write the GenericParam table before
15658         the Method table.  This is neccessary because in the GenericParam
15659         table, type parameters of the class (ie. '!0' etc.) must come
15660         before the ones from its generic methods (ie. '!!0' etc).
15661
15662 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15663
15664         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
15665
15666 2003-11-02  Martin Baulig  <martin@ximian.com>
15667
15668         * reflection.c (create_generic_typespec): Take a
15669         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
15670         the generic parameters from it.
15671
15672 2003-11-02  Martin Baulig  <martin@ximian.com>
15673
15674         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
15675         instead of a `MonoClassField *' since we just need the type.
15676         (create_generic_typespec): New static function.  Creates a
15677         TypeSpec token for a generic type declaration.
15678         (mono_image_get_generic_field_token): New static function.
15679         (mono_image_create_token): If we're a FieldBuilder in a generic
15680         type declaration, call mono_image_get_generic_field_token() to get
15681         the token.
15682
15683 2003-11-02  Martin Baulig  <martin@ximian.com>
15684
15685         * reflection.h
15686         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
15687         `MonoReflectionGenericInst *declaring_type' and
15688         `MonoReflectionGenericInst *reflected_type' fields.
15689
15690         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
15691         `MonoReflectionGenericInst *declaring_type' and a
15692         `MonoReflectionGenericInst *reflected_type' argument instead of a
15693         single `MonoReflectionGenericInst *type' one.  Set
15694         `res->declaring_type' and `res->reflected_type' from them.
15695         (mono_reflection_inflate_field): Likewise.      
15696
15697 2003-11-02  Martin Baulig  <martin@ximian.com>
15698
15699         * class.c (mono_class_setup_vtable): Don't store generic methods
15700         in the vtable.  
15701
15702 2003-11-02  Martin Baulig  <martin@ximian.com>
15703
15704         * reflection.h (MonoReflectionGenericInst): Added
15705         `MonoReflectionType *declaring_type'.
15706
15707         * reflection.c (mono_reflection_bind_generic_parameters): Use
15708         `if (tb->parent)' instead of `klass->parent'.
15709
15710 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
15711
15712         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
15713         with an empty ASSEMBLY table.
15714
15715         * reflection.c (mono_image_build_metadata): Avoid using the same loop
15716         variable in the inner and outer loops.
15717
15718 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
15719
15720         * metadata.h (mono_metadata_make_token): Put parentheses around macro
15721         argument.
15722
15723         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
15724         
15725         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
15726         icalls. Instead, do everything in managed code. This is needed since
15727         it is hard to restore the original domain etc. in unmanaged code in the
15728         presence of undeniable exceptions.
15729
15730         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
15731         New icalls to push and pop appdomain refs.
15732
15733 2003-10-31  Martin Baulig  <martin@ximian.com>
15734
15735         * class.c (inflate_generic_type): Renamed to
15736         mono_class_inflate_generic_type() and made it public.
15737
15738         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
15739         New interncall.
15740
15741         * loader.c (mono_field_from_memberref): Also set the retklass for
15742         typespecs.
15743
15744         * fielder.c (mono_image_get_inflated_field_token): New static
15745         method; creates a metadata token for an inflated field.
15746         (mono_image_create_token, fixup_method): Added support for
15747         "MonoInflatedField".
15748         (fieldbuilder_to_mono_class_field): New static function.
15749         (mono_reflection_inflate_field): New public function.
15750
15751         * reflection.h
15752         (MonoReflectionGenericInst): Added `MonoArray *fields'.
15753         (MonoReflectionInflatedField): New typedef.     
15754
15755 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
15756
15757         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
15758         for Solaris and other platforms without s6_addr16
15759
15760 2003-10-30  Martin Baulig  <martin@ximian.com>
15761
15762         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
15763         argument instead of two.
15764         (mono_class_inflate_generic_signature): Likewise.
15765         (inflate_generic_header): Likewise.
15766         (mono_class_inflate_generic_method): Likewise.  In addition, if
15767         `ginst->klass' is set, it becomes the new `method->klass'.
15768
15769         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
15770         field.
15771
15772         * reflection.c (encode_generic_method_sig): Write a 0xa as the
15773         first byte. [FIXME]
15774         (method_encode_methodspec): If we have generic parameters, create
15775         a MethodSpec instead of a MethodRef.
15776         (fixup_method): Added support for "MonoInflatedMethod" and
15777         "MonoInflatedCtor".
15778         (mono_image_create_token): Added support for "MonoInflatedMethod"
15779         and "MonoInflatedCtor".
15780         (inflated_method_get_object): New static function; returns a
15781         managed "System.Reflection.MonoInflatedMethod" object.
15782         (mono_reflection_bind_generic_method_parameters): Return a
15783         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
15784         (mono_reflection_inflate_method_or_ctor): Likewise.
15785         (mono_image_get_generic_method_param_info): Initialize unused
15786         fields to zero.
15787         (mono_image_get_generic_param_info): Likewise.
15788
15789         * reflection.h (MonoReflectionInflatedMethod): New public
15790         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
15791         "S.R.MonoInflatedCtor" classes.
15792
15793         * loader.c (method_from_memberref): If we're a TypeSpec and it
15794         resolves to a generic instance, inflate the method.
15795
15796 2003-10-28  Dick Porter  <dick@ximian.com>
15797
15798         * object.c (mono_runtime_run_main): Convert command-line arguments
15799         into utf8, falling back to the user's locale encoding to do so.
15800
15801 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
15802
15803         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
15804         at this time.
15805
15806         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
15807
15808         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
15809         up icalls at method definition time. Partially fixes #33569.
15810
15811 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
15812
15813         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
15814         marshalling of arrays. Fixes #50116.
15815
15816         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
15817
15818         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
15819         points to a vtable in the dying appdomain.
15820
15821         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
15822         listeners into unmanaged code inside the lock.
15823
15824         * object.c (mono_class_vtable): Turn off typed allocation in non-root
15825         domains and add some comments.
15826
15827 2003-10-25  Martin Baulig  <martin@ximian.com>
15828
15829         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
15830
15831         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
15832
15833         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
15834         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
15835         currently parsing.  Create the generic class and store it in
15836         `generic_inst->klass' before parsing the type arguments.  This is
15837         required to support "recursive" definitions; see mcs/tests/gen-23.cs
15838         for an example.
15839         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
15840         to support recursive typespec entries.
15841
15842         * class.c (mono_class_setup_parent): If our parent is a generic
15843         instance, we may get called before it has its name set.
15844         (mono_class_from_generic): Splitted into
15845         mono_class_create_from_generic() and mono_class_initialize_generic().
15846
15847 2003-10-25  Martin Baulig  <martin@ximian.com>
15848
15849         * icall.c (ves_icall_Type_BindGenericParameters): Return a
15850         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
15851         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
15852         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
15853
15854         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
15855         (create_typespec): Likewise.
15856         (mono_reflection_bind_generic_parameters): Return a
15857         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
15858         (mono_reflection_inflate_method_or_ctor): New public function.
15859
15860         * reflection.h (MonoReflectionGenericInst): New typedef.        
15861
15862 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
15863
15864         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
15865         inside the domain lock. Fixes #49993.
15866         
15867         * object.c (mono_class_vtable): When typed allocation is used, 
15868         allocate vtables in the GC heap instead of in the mempool, since the
15869         vtables contain GC descriptors which are used by the collector even
15870         after the domain owning the mempool is unloaded.
15871
15872         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
15873
15874         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
15875         reflect what it does. Also invalidate mempools instead of freeing
15876         them if a define is set.
15877
15878         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
15879         of the appdomain.
15880         
15881         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
15882         hold the finalizable objects in this domain.
15883
15884         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
15885         appdomain.
15886
15887         * appdomain.c (mono_domain_set): New function to set the current
15888         appdomain, but only if it is not being unloaded.
15889
15890         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
15891         appdomain which is being unloaded.
15892         
15893         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
15894         unloading of the root appdomain.
15895
15896         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
15897         icall to execute a method in another appdomain. Intended as a 
15898         replacement for InternalSetDomain, which can confuse the code 
15899         generation in the JIT.
15900
15901         * appdomain.c (mono_domain_is_unloading): New function to determine
15902         whenever an appdomain is unloading.
15903
15904         * appdomain.c (mono_domain_unload): New function to correctly unload
15905         an appdomain.
15906
15907         * assembly.c (mono_assembly_load_references): Check that an assembly
15908         does not references itself.
15909
15910         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
15911         domain manually, it asks the finalizer thread to do it, then waits for
15912         the result. Also added a timeout.
15913
15914         * icall.c: Register the new icalls.
15915
15916         * threads.h threads.c: Export the mono_gc_stop_world and 
15917         mono_gc_start_world functions.
15918         
15919         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
15920         function to fill out the mempool with 0x2a.
15921
15922 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
15923
15924         * reflection.h (MonoReflectionMethodAux): New structure to store
15925         information which is rarely used, thus is not in the MonoMethod
15926         structure.
15927
15928         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
15929         store the aux info.
15930
15931         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
15932         and marshalling info into the aux structure.
15933
15934         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
15935         from the aux structure.
15936
15937         * loader.c (mono_method_get_param_names): Retrieve the param names from
15938         the aux structure.
15939         
15940 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
15941
15942         * exception.h exception.c: Add AppDomainUnloadedException && fix 
15943         warning.
15944
15945 2003-10-21  Dick Porter  <dick@ximian.com>
15946
15947         * socket-io.c
15948         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
15949         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
15950
15951 2003-10-21  Martin Baulig  <martin@ximian.com>
15952
15953         * reflection.c (mono_reflection_bind_generic_parameters):
15954         `klass->parent' is NULL for interfaces.
15955
15956 2003-10-21  Martin Baulig  <martin@ximian.com>
15957
15958         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
15959
15960 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
15961
15962         * exception.c (mono_exception_from_name_msg): New helper function for
15963         creating exceptions and initializing their message field.
15964
15965         * exception.c: Simplify functions using the new helper.
15966
15967         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
15968         New function.
15969
15970         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
15971         mono_raise_exception, since otherwise gcc doesn't generate the function
15972         epilog for raise_exception, confusing the stack unwinding in the JIT.
15973         Fixes #45043.
15974
15975         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
15976         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
15977         Fixes #49499.
15978
15979 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15980
15981         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
15982         utf8.
15983
15984 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
15985
15986         * icall.c: Removed GetUninitializedObject method because
15987           AllocateUninitializedClassInstance does the same.
15988
15989 2003-10-18  Martin Baulig  <martin@ximian.com>
15990
15991         * class.c (inflate_generic_signature): Renamed to
15992         mono_class_inflate_generic_signature() and made it public.
15993         (my_mono_class_from_generic_parameter): New static function; if we
15994         don't already have the generic parameter's MonoClass, create a
15995         very simple one which is just used internally in the runtime and
15996         not passed back to managed code.
15997
15998         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
15999
16000         * metadata.h (MonoMethodSignature): Moved the
16001         `MonoGenericParam *gen_params' to the MonoMethodHeader.
16002         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
16003
16004         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
16005         ves_icall_MonoMethod_GetGenericArguments(); this is now an
16006         interncall on the MonoMethod class, not on MethodInfo.
16007         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
16008         calling mono_reflection_bind_generic_method_parameters() directly.
16009
16010         * loader.c (mono_method_get_signature): If this is a MethodSpec;
16011         return the already computed `method->signature'.
16012         (method_from_methodspec): New static function to load a method
16013         from a MethodSpec entry.
16014         (mono_get_method_from_token): Call the new method_from_methodspec()
16015         for MethodSpec tokens.  
16016         (mono_get_method_from_token): If we're a generic method, load the
16017         type parameters.
16018
16019         * reflection.c (mono_image_get_memberref_token): Allow
16020         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
16021         table.
16022         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
16023         (mono_image_create_token): First check whether it's a generic
16024         method (so we'd need to create a MethodSpec), then do the other
16025         two alternatives.
16026         (mono_reflection_bind_generic_method_parameters): Return a
16027         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
16028         called directly from the interncall.
16029
16030 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
16031
16032         * reflection.c (load_public_key): Move loading of the public key
16033         into managed code.
16034
16035         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
16036
16037         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
16038         fields.
16039
16040         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
16041         culture, hash_alg and public_key. Fixes #49555.
16042
16043 2003-10-17  Martin Baulig  <martin@ximian.com>
16044
16045         * class.h (MonoGenericInst): Moved this declaration here and added
16046         `MonoMethod *generic_method'.
16047
16048         * icall.c
16049         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
16050         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
16051
16052         * metadata.c (mono_metadata_type_equal): Two types of
16053         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
16054         index; ie. don't compare the address of the `MonoGenericParam'
16055         structure.
16056         (mono_metadata_load_generic_params): Removed the `MonoMethod
16057         *method' argument.
16058
16059         * metadata.h (MonoGenericInst): Moved declaration to class.h.
16060         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
16061
16062         * reflection.c (method_encode_signature): Encode the number of
16063         generic parameters.
16064         (encode_generic_method_sig): New static function.
16065         (method_encode_methodspec): New static function; creates an entry
16066         in the MethodSpec table for a generic method.
16067         (mono_image_get_methodspec_token): New static function.
16068         (mono_image_create_token): Call mono_image_get_methodspec_token()
16069         for generic methods.
16070         (mono_reflection_bind_generic_method_parameters): New public
16071         function.  Instantiates a generic method.
16072
16073 2003-10-16  Martin Baulig  <martin@ximian.com>
16074
16075         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
16076         *gen_params' here from MonoMethodHeader.
16077
16078         * metadata.c (mono_metadata_parse_method_signature): If we have
16079         generic parameters, initialize `method->gen_params' and then set
16080         the correct `type->data.generic_param' in all the parameters.
16081
16082 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
16083
16084         * threads.c (mono_threads_get_default_stacksize): New function to 
16085         return the default stacksize.
16086
16087         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
16088         termination of the finalizer thread, since the previous method had
16089         race conditions. Fixes #49628.
16090
16091         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
16092         as for the other managed threads.
16093
16094 2003-10-16  Martin Baulig  <martin@ximian.com>
16095
16096         * class.c (inflate_generic_signature): Copy `generic_param_count'
16097         and `gen_params'.
16098
16099         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
16100         New interncall.
16101
16102         * metadata.c (mono_metadata_parse_method_signature): Actually set
16103         the `method->generic_param_count' here.
16104         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
16105
16106 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
16107
16108         * object.h: Add a new field to TypedRef to simplify the implementation
16109         of the REFANY opcodes in the JIT.
16110
16111         * icall.c: Make use of the new field.
16112
16113         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
16114         dynamically.
16115
16116 2003-10-15  Martin Baulig  <martin@ximian.com>
16117
16118         * class.c (mono_class_from_gen_param): Renamed to
16119         mono_class_from_generic_parameter() and moved most of the
16120         functionality from mono_reflection_define_generic_parameter()
16121         here; ie. we create a "real" class here.
16122         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
16123         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
16124         previously been called.
16125
16126         * class.h (MonoGenericParam): Moved the declaration of this struct
16127         here from metadata.h and added `MonoMethod *method'.
16128
16129         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
16130         interncall.
16131
16132         * loader.c (mono_get_method_from_token): If we have any generic
16133         parameters, call mono_metadata_load_generic_params() to read them
16134         from the MONO_TABLE_GENERICPAR.
16135
16136         * metadata.c (mono_metadata_load_generic_params): Added
16137         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
16138
16139         * metadata.h (MonoMethodSignature): Replaced
16140         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
16141         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
16142
16143         * reflection.c (mono_reflection_define_generic_parameter): Moved
16144         most of the functionality into the new
16145         mono_class_from_generic_parameter(); set the `method' field if
16146         we're a method parameter.       
16147
16148 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
16149
16150         * marshal.c (emit_struct_conv): if native size is 0
16151         emit no code.
16152
16153 2003-10-14  Martin Baulig  <martin@ximian.com>
16154
16155         * icall.c: The generics API has changed in the spec since it was
16156         added to System.Type; these modifications make it match the spec
16157         again.
16158         (ves_icall_Type_GetGenericParameters): Renamed to
16159         `ves_icall_Type_GetGenericArguments'.
16160         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
16161         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
16162         `ves_icall_MonoType_get_HasGenericArguments'.
16163         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
16164         `ves_icall_MonoType_get_IsGenericParameter'.
16165         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
16166         this is no interncall anymore.
16167         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
16168         `ves_icall_TypeBuilder_get_IsGenericParameter'.
16169
16170 2003-10-14  Martin Baulig  <martin@ximian.com>
16171
16172         * reflection.c (mono_reflection_bind_generic_parameters): Also
16173         inflate generic methods if we're reading the class from IL.
16174
16175 2003-10-13  Martin Baulig  <martin@ximian.com>
16176
16177         * reflection.c (mono_reflection_define_generic_parameter): This
16178         method isn't called directly from the icall anymore; take a
16179         `MonoReflectionAssemblyBuilder *' so we can use this for type and
16180         method generic parameters.
16181         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
16182         (method_builder_encode_signature): Encode generic parameters.
16183         (mono_image_get_method_info): Write generic params to the
16184         MONO_TABLE_GENERICPARAM table.
16185
16186         * reflection.h (MonoReflectionMethodBuilder): Added
16187         `MonoArray *generic_params'.
16188
16189         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
16190
16191         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
16192         wrapper for mono_reflection_define_generic_parameter().
16193         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
16194
16195 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
16196
16197         * marshal.h: Add missing function to fix build.
16198
16199         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
16200         the SetLastError pinvoke attribute.
16201
16202         * marshal.c (mono_marshal_set_last_error): New helper function called
16203         by the generated code.
16204         
16205         * marshal.c (mono_mb_emit_branch): New helper function.
16206
16207         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
16208
16209         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
16210         classes as parameters and return values of delegates. Fixes #29256. 
16211
16212 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
16213
16214         * locales.c: use gint32 in non HAVE_ICU case
16215
16216 2003-10-11  Martin Baulig  <martin@ximian.com>
16217
16218         * mono-debug.c (mono_debug_add_method): Added a workaround for
16219         bug #48591.
16220
16221 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
16222
16223         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
16224         delegates passed to native code must use the STDCALL calling 
16225         convention. Fixes #35987.
16226
16227 2003-10-10  Martin Baulig  <martin@ximian.com>
16228
16229         * class.c (inflate_generic_type): If we're inflating for a generic
16230         type instance (and not for a generic method), return
16231         MONO_TYPE_MVAR unchanged.
16232
16233 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16234
16235         * string-icalls.c: Join ignores null strings in the source array.
16236         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
16237         * threads.c: GetAvailableTheads is slightly more accurate.
16238
16239 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
16240
16241         * threads.h threads.c : add mono_threads_set_default_stacksize
16242         and pass default to CreateThread calls.
16243
16244 2003-10-09  Dick Porter  <dick@ximian.com>
16245
16246         * icall.c:
16247         * locales.h:
16248         * locales.c: Internal calls for constructing CultureInfo and
16249         related objects from libicu (if its available.)
16250
16251 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
16252
16253         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
16254
16255 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16256
16257         * threadpool.c: added an argument to async_invoke_thread that is the
16258         item to process, pass the MonoAsyncResult to the thread start function
16259         when creating a new thread. This way we don't need to acquire any lock
16260         when we're creating a new thread. Readded a semaphore for faster
16261         response times (instead of that Sleep i added).
16262
16263 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
16264
16265         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
16266         get daylight change dates better on Windows, fix handling
16267         of platforms without tm_gmtoff.
16268
16269 2003-10-06  Martin Baulig  <martin@ximian.com>
16270
16271         * class.c (inflate_generic_method): Renamed to
16272         mono_class_inflate_generic_method() and made public.
16273         (mono_class_init): Don't inflate the generic methods here.
16274         (mono_class_from_generic): Added `gboolean inflate_methods'
16275         argument.  Inflate the methods here.
16276
16277         * loader.c (mono_method_get_param_names): Ignore instances of
16278         generic types for the moment.
16279
16280         * reflection.c (fixup_method): Added support for inflated methods.
16281         (mono_image_create_token): Use mono_image_get_methodref_token()
16282         for inflated methods.
16283         (mono_custom_attrs_from_param): Ignore instances of generic types
16284         for the moment.
16285         (mono_reflection_bind_generic_parameters): New public function.
16286         Moved all the functionality from
16287         ves_icall_Type_BindGenericParameters() here and added support for
16288         dynamic types.
16289         (mono_reflection_define_generic_parameter): Initialize
16290         `klass->methods' here.
16291
16292         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
16293         functionality into mono_reflection_define_generic_parameter().
16294         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
16295         TypeBuilder, return that TypeBuilder.
16296
16297 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16298
16299         * appdomain.c: removed mono_delegate_semaphore.
16300
16301         * threadpool.c:
16302         (mono_thread_pool_add): moved hash table creation inside and the thread 
16303         creation outside of the critical region.
16304         (mono_thread_pool_finish): removed obsolete code.
16305         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
16306         continue or exit the thread depending on the queue.
16307
16308 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
16309
16310         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
16311         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
16312         handle more bool marshalling options
16313
16314 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
16315
16316         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
16317         arrays of structs. Also add a more descriptive error message when
16318         a structure member is marshalled as LPArray.
16319
16320 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
16321
16322         * marshal.c (mono_marshal_get_native_wrapper): Add support for
16323         marshalling arrays of complex types. Fixes #29098. Also remove an
16324         usused and incomplete function.
16325
16326 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
16327
16328         * gc.c: report heap_size - free_bytes as total memory allocated
16329         (bug#49362).
16330
16331 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
16332
16333         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
16334         fix timezone handling problems on Windows.
16335         
16336         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
16337         asserts when the year is outside the range handled by ms the functions.
16338
16339         * class.c (setup_interface_offsets): If the class is an interface,
16340         fill out its interface_offsets slot.
16341
16342 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16343
16344         * threadpool.c: mark threadpool threads as background.
16345
16346 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
16347
16348         * decimal.c - define DECINLINE to nothing if not using GCC
16349
16350 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
16351
16352         * assembly.c: More refcount fixes.
16353
16354 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16355
16356         * string-icalls.c: if we're not trimming, return the same string.
16357         When not splitting, don't create a new string.
16358
16359 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16360
16361         * image.c:
16362         (mono_image_open): increment the ref_count inside the critical section.
16363
16364 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
16365
16366         * image.c (mono_image_open): Fix reference counting bug.
16367
16368 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
16369
16370         * marshal.c (mono_marshal_type_size) struct alignment changed for 
16371         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
16372         64bits. Avoid leak in mono_marshal_get_native_wrapper when
16373         mono_lookup_pinvoke_call throws.        
16374
16375 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
16376
16377         * reflection.c (mono_reflection_parse_type): Fix #49114.
16378
16379         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
16380         temporary workaround for cygwin header problem.
16381
16382         * object.c (mono_object_isinst): Synchronize this with the code
16383         generated by the JIT for casts.
16384
16385 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
16386
16387         * reflection.c (encode_type): Fix #38332.
16388
16389 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
16390
16391         * marshal.c (mono_marshal_method_from_wrapper): New function to return
16392         the original method from the wrapper method.
16393
16394 2003-09-25  Martin Baulig  <martin@ximian.com>
16395
16396         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
16397         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
16398         (ves_icall_Type_get_IsGenericInstance): New interncall.
16399
16400 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
16401
16402         * object.c: fix cast warning in big endian code.
16403
16404 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
16405
16406         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
16407         
16408 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16409
16410         * assembly.c: don't call check_env from mono_assembly_load. It's
16411         already done once in mono_assemblies_init and may cause headaches when
16412         multiple threads are loading assemblies.
16413
16414 2003-09-19  Martin Baulig  <martin@ximian.com>
16415
16416         * reflection.c (mono_reflection_define_generic_parameter): Don't
16417         allocate `klass->methods', set `klass->flags' to
16418         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
16419
16420 2003-09-18  Martin Baulig  <martin@ximian.com>
16421
16422         * class.c (mono_class_init): Don't create `class->methods' if it's
16423         already initialized.
16424
16425         * metadata.c (mono_metadata_load_generic_params): Make this
16426         actually work.
16427
16428         * reflection.c (mono_reflection_define_generic_parameter): Set
16429         parent class and interfaces from the constraints.
16430
16431         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
16432         to keep this struct in sync with the declaration in TypeBuilder.cs.
16433
16434 2003-09-17  Martin Baulig  <martin@ximian.com>
16435
16436         * metadata.h (MonoType): Replaced the data's `int type_param'
16437         field with `MonoGenericParam *generic_param'.
16438         (MonoGenericParam): Added `MonoClass *klass'.
16439
16440         * class.c (mono_class_from_gen_param): Removed the
16441         `MonoImage *image' and `int type_num' arguments.
16442
16443         * metadata.c (mono_metadata_parse_generic_param): New static
16444         method; creates a MonoGenericParam which just contains the index.
16445         (do_mono_metadata_parse_type): Call
16446         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
16447         MONO_TYPE_MVAR.
16448
16449         * reflection.c (mono_image_typedef_or_ref): Generic type
16450         parameters may be in the same assembly, but never use a typedef
16451         for them.
16452         (mono_reflection_define_generic_parameter): We're now creating a
16453         "real" class for the type parameter; it's now safe to call
16454         mono_class_from_mono_type() on the class'es type, it'll do the
16455         right thing.
16456
16457 2003-09-16  Martin Baulig  <martin@ximian.com>
16458
16459         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
16460         `symfile->range_entry_size' and `symfile->class_entry_size' here;
16461         the `symfile' data structure must be fully initialized before it
16462         gets added to the table.
16463
16464 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
16465
16466         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
16467
16468         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
16469         class init trampolines.
16470
16471 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
16472
16473         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
16474         to the built-in profiler to turn off time and allocation profiling
16475         respectively.
16476
16477 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
16478
16479         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
16480         g_direct_equal.
16481
16482         * debug-helpers.c (mono_method_full_name): Print the wrapper type
16483         in human readable form.
16484
16485 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
16486
16487         * reflection.c icall.c: Fixed warnings.
16488
16489         * image.c (load_class_names): Use a temporary hash table to hold the
16490         namespaces in order to avoid doing many string comparisons.
16491
16492         * image.h: Fix typo.
16493
16494         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
16495         Pass NULL instead of g_direct_equal to the GHashTable constructor 
16496         since the NULL case is short-circuited inside g_hash_table_lookup, 
16497         leading to better performance.  
16498
16499         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
16500         obtain the first custom attribute for a given index. Depends on the
16501         CustomAttribute table being sorted by the parent field.
16502
16503         * reflection.c (mono_custom_attrs_from_index): Use the new function 
16504         for better performance.
16505
16506 2003-09-07  Martin Baulig  <martin@ximian.com>
16507
16508         * class.c (mono_class_init): If we're a generic instance, inflate
16509         all our methods instead of loading them from the image.
16510         (mono_class_from_generic): Set `class->methods = gklass->methods'.
16511
16512 2003-09-07  Martin Baulig  <martin@ximian.com>
16513
16514         * mono-debug-debugger.c: Added support for constructors.
16515
16516 2003-09-06  Martin Baulig  <martin@ximian.com>
16517
16518         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
16519         New interncall.
16520
16521         * reflection.c (mono_reflection_setup_generic_class): Call
16522         ensure_runtime_vtable() to create the vtable.
16523
16524 2003-09-05  Martin Baulig  <martin@ximian.com>
16525
16526         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
16527         MONO_TYPE_MVAR.
16528
16529 2003-09-04  Martin Baulig  <martin@ximian.com>
16530
16531         * reflection.c (mono_reflection_define_generic_parameter): Generic
16532         parameters start with zero.
16533
16534 2003-09-04  Martin Baulig  <martin@ximian.com>
16535
16536         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
16537
16538         * reflection.h (MonoReflectionGenericParam): New typedef.
16539         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
16540         the generic parameters from the managed TypeBuilder.
16541
16542         * reflection.c (mono_reflection_define_generic_parameter): New function.
16543         (mono_reflection_create_runtime_class): Encode generic parameters.
16544         (mono_reflection_setup_generic_class): New function; this is
16545         called after adding adding all generic params to the TypeBuilder.
16546         (encode_type): Added MONO_TYPE_VAR.
16547
16548 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
16549
16550         * class.h class.c (mono_class_needs_cctor_run): Moved this method
16551         here from the JIT.
16552
16553         * assembly.h assembly.c: Moved the AOT loading code into an assembly
16554         load hook.
16555
16556 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
16557
16558         * reflection.h reflection.c class.h class.c: Delete duplicate 
16559         definition of mono_type_get_name () from reflection.c and export the
16560         one in class.c.
16561
16562         * class.c: Class loading fixes from Bernie Solomon 
16563         (bernard@ugsolutions.com).
16564
16565         * reflection.c: Endianness fixes from Bernie Solomon 
16566         (bernard@ugsolutions.com).
16567         
16568 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
16569
16570         * assembly.h assembly.c: Define a file format version for AOT
16571         libraries.
16572         
16573         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
16574
16575         * appdomain.h (MonoJitInfo): New field to determine whenever the
16576         code is domain neutral.
16577         
16578 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
16579
16580         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
16581
16582 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
16583
16584         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
16585         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
16586         Avoid caching the result since strings must be domain specific. Fixes
16587         #48050.
16588
16589 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
16590
16591         * marshal.c (mono_marshal_init): Make this callable multiple times
16592         since it is hard to find a correct place to call it.
16593
16594         * object.c (mono_runtime_class_init): Execute static constructors in
16595         the correct appdomain.
16596
16597         * image.c (build_guid_table): Handle the case when multiple images have
16598         the same GUID.
16599
16600 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16601
16602         * icall.c: added a couple of icalls for System.Web.
16603
16604 2003-08-28  Martin Baulig  <martin@ximian.com>
16605
16606         * icall.c (ves_icall_Type_BindGenericParameters): Use
16607         `klass->generic_inst' instead of `&klass->byval_arg' in the
16608         mono_type_get_object() call.  The returned type must be
16609         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
16610
16611 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
16612
16613         * NOTES: New file.
16614
16615         * object.c (mono_class_proxy_vtable): Make it thread safe.
16616
16617         * pedump.c: Fix warning.
16618
16619         * object.c appdomain.h: Get rid of metadata_section. 
16620         It is no longer needed and it was causing deadlocks with domain->lock.
16621
16622         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
16623
16624 2003-08-26  Martin Baulig  <martin@ximian.com>
16625
16626         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
16627
16628 2003-08-26  Martin Baulig  <martin@ximian.com>
16629
16630         * pedump.c (main): Call mono_metadata_init(),
16631         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
16632         and mono_loader_init().
16633
16634 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
16635
16636         * loader.h: Add missing include to fix build.
16637
16638         * image.h: mono_image_load_references is no more.
16639
16640         * assembly.c: Reworked assembly loading to make it really thread safe.
16641         After these changes, the assembly returned by mono_assembly_open is
16642         fully initialized, i.e. all its references assemblies are loaded.
16643
16644         * assembly.c (mono_image_load_references): Renamed to 
16645         mono_assembly_load_references, and made private, since clients no
16646         longer need to call it.
16647
16648         * class.c: Removed calls to mono_assembly_load_references, since it was
16649         a source of deadlocks.
16650
16651         * loader.h loader.c class.h class.c: Protect data structures using a 
16652         new lock, the loader lock.
16653
16654         * class.c (mono_class_setup_vtable): Create temporary hash tables and
16655         GPtrArrays only when needed.
16656
16657         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
16658         into empty structures by mcs. Fixes pinvoke7.cs.
16659         
16660         * domain.c (mono_init): Call a new initialization function.
16661
16662         * appdomain.c (mono_runtime_init): Call the new initializer function
16663         of the marshal module.
16664
16665         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
16666         inserted into empty structures by mcs. Fixes pinvoke7.cs.
16667
16668         * marshal.h marshal.c: Added locks around the wrapper caches to make
16669         this module thread safe.
16670
16671         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
16672         this argument. Fixes pinvoke1.exe.
16673
16674 2003-08-25  Lluis Sanchez <lluis@ximian.com>
16675
16676         * object.h: Added call_type field to MonoMethodMessage and the corresponding
16677         enumeration of values. Removed fields to store remote call output values in
16678         MonoAsyncResult. Not needed any more.
16679         * object.c: Initialize call_type and async_result fields in mono_message_init.
16680         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
16681         dispatching the message.
16682         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
16683         async call to finish. To do it use a message with EndInvoke call type.
16684
16685 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
16686
16687         * loader.h loader.c (mono_method_hash_marhal_info): New function which
16688         determines whenever a method has marshalling info.
16689
16690 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16691
16692         * assembly.c: fix the build on windows.
16693
16694 2003-08-22 Lluis Sanchez <lluis@ximian.com>
16695
16696         * object.cs: Fixed bug #47785.
16697
16698 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
16699
16700         * string-icalls.c (StringReplace): If their are no occurances of
16701         the old string found return a reference to the supplied
16702         string. This saves some memory and matches MS behavoir.
16703         
16704 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16705
16706         * socket-io.c: fixed compilation for systems that define AF_INET6
16707         and don't define SOL_IP/SOL_IPV6.
16708
16709 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
16710
16711         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
16712         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
16713
16714         * rawbuffer.c rawbuffer.h: Make this module thread safe.
16715
16716         * domain.c: Make this module thread safe.
16717
16718         * domain.c (mono_init): Call new initialization function.
16719
16720         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
16721         reference types too. Fixes #38812.
16722
16723         * image.c (mono_image_init): Fixed warnings.
16724
16725         * class.c (mono_class_from_typeref): Handle assembly load failure
16726         correctly.
16727
16728         * appdomain.c (add_assemblies_to_domain): Handle the case when
16729         the references of an assembly are not yet loaded.
16730
16731         * metadata.c image.c assembly.c: Moved initialization of global
16732         variables to a separate function called at startup since lazy 
16733         initialization of these variables is not thread safe.
16734         
16735         * image.c assembly.c: Made this module thread safe by adding locks in 
16736         the appropriate places.
16737
16738         * domain.c (mono_init): Call the new initialization functions of the
16739         three modules.
16740
16741 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
16742
16743         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
16744           make a direct call. It is proxy's work to make the call asynchronous.
16745           mono_delegate_end_invoke(): If the targe is a proxy, just collect
16746           the return values.
16747         * object.cs: mono_method_call_message_new(): read AsyncResult and
16748           state object from parameters list, if this info is requested.
16749         * object.h: Added fields to store remote call output values in
16750           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
16751
16752 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16753
16754         * object.h: add needed fields to MonoThread.
16755         * threads.c, threads.h: allow registering a function to cleanup data
16756         allocated per thread by the JIT.
16757
16758 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16759
16760         * loader.h: portability fix by Bernie Solomon
16761         * <bernard@ugsolutions.com>.
16762
16763 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
16764
16765         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
16766         return a MonoArray. This simplifies the code and also ensures that
16767         the cache allways contains an object reference as a value.
16768
16769         * icall.c (ves_icall_get_parameter_info): Simplified using the new
16770         function.
16771
16772 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16773
16774         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
16775         fixes a problem with byte ordering when getting the address family for
16776         a socket.
16777
16778 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
16779
16780         * .cvsignore: Added monosn.
16781
16782         * reflection.h reflection.c loader.c: Added support for parameter
16783         marshalling to dynamically created types. Fixes #47295.
16784
16785 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
16786
16787         * rand.c: remove useless warnings.
16788
16789 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
16790
16791         * class.c: implemented ldtoken for methods and fieldrefs.
16792
16793 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16794
16795         * threadpool.c: when mono_async_invoke was called, no one took care of
16796         monitoring the queue. So if the method invoked took some time and we
16797         got new async invoke requests after 500 ms (the thread created waited
16798         that long in WaitForSingleObject), the new async invoke was not called
16799         until the previous one finished.
16800
16801         This is fixed now. Thanks to Totte for helping with it.
16802
16803 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16804
16805         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
16806
16807 2003-08-11  Martin Baulig  <martin@ximian.com>
16808
16809         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
16810
16811 2003-08-06  Martin Baulig  <martin@ximian.com>
16812
16813         * mono-debug-debugger.c: Added support for static fields,
16814         properties and methods.
16815
16816 2003-08-06  Martin Baulig  <martin@ximian.com>
16817
16818         * mono-debug-debugger.c: Don't store the MonoString's vtable to
16819         make this work for applications with multiple application domains.
16820
16821 2003-08-04  Martin Baulig  <martin@ximian.com>
16822
16823         * mono-debug-debugger.c: Completely reworked the type support; the
16824         most important thing is that we're now just using one single
16825         `MonoType' instance per type.
16826
16827 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
16828
16829         * mono-endian.h, mono-endian.c, icall.c: Added icall
16830         ves_icall_System_Double_AssertEndianity to assert double word endianity
16831         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
16832
16833 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16834
16835         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
16836         support, icalls and fixes.
16837
16838 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
16839
16840         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
16841         classes that are a punctuation character in .NET is not the same a
16842         g_unichar_ispunct.
16843
16844 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16845
16846         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
16847
16848 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
16849
16850         * icall.c: Add new MemCopy internalcall.
16851         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
16852         Simplified code; It is not necessary to handle all the cases here,
16853         as the C# code takes care of it.  Only handle the case of the name
16854         resource embedded into the assembly.
16855
16856         Changed signature to return the data pointer and the size of the
16857         data. 
16858
16859 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
16860
16861         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
16862         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
16863
16864 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
16865
16866         * socket-io.c: ignore EINTR error in select.
16867
16868 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
16869
16870         * class.h, class.c: removed unused subclasses field in MonoClass.
16871
16872 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
16873
16874         * icall.c: improve fix of get_base_definition(). If the parent class
16875           doesn't have the mehod, look at the parent of the parent.
16876         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
16877           to check if a parameter is an in or out parameter
16878           (PARAM_ATTRIBUTE_IN is not set by default).
16879           mono_method_return_message_restore(): Use mono_class_value_size to
16880           get the size of a value type. mono_type_stack_size (parameterType)
16881           does not return the correct value if parameterType is byRef.
16882           mono_load_remote_field(), mono_load_remote_field_new(),
16883           mono_store_remote_field(), mono_store_remote_field_new():
16884           raise exception if the remote call returns an exception.
16885
16886 2003-07-28  Martin Baulig  <martin@ximian.com>
16887
16888         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
16889         method.  This is a wrapper around mono_runtime_invoke() which
16890         boxes the instance object if neccessary.
16891
16892 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16893
16894         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
16895         metadata.h, row-indexes.h, verify.c: first cut of generics support.
16896
16897 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16898
16899         * icall.c: disable mcs bug workaround.
16900
16901 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
16902
16903         * object.c (mono_runtime_class_init): Take the metadata_section
16904         mutex before obtaining the domain mutex.
16905
16906         * appdomain.h: Added definition of metadata_section mutex here. 
16907
16908         * object.c: define metadata_mutex here.
16909
16910 2003-07-24  Ravi Pratap  <ravi@ximian.com>
16911
16912         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
16913         fixed.
16914
16915 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
16916
16917         * reflection.c: Fix bug #46669
16918
16919 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16920
16921         * exception.c:
16922         * exception.h:
16923         * icall.c:
16924         * object.h: fill in the type name for TypeLoadException.
16925
16926 2003-07-23  Ravi Pratap  <ravi@ximian.com>
16927
16928         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
16929         relationship between TypeBuilders while compiling corlib) and bug
16930         45993 (Array types returned from the runtime while compiling
16931         corlib were from the loaded corlib).
16932
16933 2003-07-22  Martin Baulig  <martin@ximian.com>
16934
16935         * mono-debug-debugger.c: Reworked the type support a bit more;
16936         distinguish between types and classes.
16937
16938 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
16939
16940         * icall.c: add IsArrayImpl icall.
16941
16942 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
16943
16944         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
16945         initializing real_size only once. Also fix bug #46602.
16946
16947 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
16948
16949         * object.c: Renamed mono_metadata_section to metadata_section.
16950
16951 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
16952
16953         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
16954           empty array if the type is an array. Fixed.
16955           ves_icall_MonoMethod_get_base_definition: if the base method
16956           is abstract, get the MethodInfo from the list of methods of
16957           the class.
16958         * reflection.c: ParameterInfo.PositionImpl should be zero-based
16959           and it was 1-based. Fixed in mono_param_get_objects.
16960
16961 2003-07-20  Martin Baulig  <martin@ximian.com>
16962
16963         * mono-debug.h: Set version number to 31.
16964         (mono_debug_init): Added `MonoDomain *' argument.
16965
16966         * mono-debug-debugger.c: Reworked the type support; explicitly
16967         tell the debugger about builtin types; pass the `klass' address to
16968         the debugger.
16969
16970 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
16971
16972         * image.c: Allow new metadata tables to be loaded without a
16973         warning. Also update the warning message to give the new constant value.
16974                 
16975 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
16976
16977         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
16978         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
16979         array type representation changes.
16980
16981 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
16982
16983         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
16984         on Environment.Exit () call.
16985
16986 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
16987
16988         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
16989         requires a matching corlib.
16990
16991 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
16992
16993         * Changelog: My editor decided to add a CR to each line. Sorry about that.
16994           Committed again without the CRs.
16995         
16996 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
16997
16998         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
16999           getting it from the "this" socket instance. Did not work
17000           if the socket is a subclass of Socket.
17001           Also fixed bug #35371.
17002
17003 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
17004
17005         * metadata.c: fixed size for TypedByRef.
17006         * loader.c: when searching for a method, consider the vararg amrker.
17007         * unicode.c, decimal.c: constify some arrays.
17008
17009 2003-07-15  Dick Porter  <dick@ximian.com>
17010
17011         * socket-io.c: Fixed compilation for gcc < 3.2.
17012
17013         Fixed compilation for machines that don't have AF_INET6 (thanks to
17014         Bernie Solomon <bernard@ugsolutions.com> for that part.)
17015
17016         Fixed compile warnings.
17017         
17018         Fixed formatting and line endings.
17019
17020 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
17021
17022         * socket-io.h:
17023         * socket-io.c: Added IPv6 support.
17024
17025 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
17026
17027         * class.c (mono_class_is_assignable_from): New function to implement
17028         the is_assignable_from logic. Used by mono_object_isinst, 
17029         Type::IsAssignableFrom () and the interpreter.
17030
17031         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
17032         Object, even interfaces.
17033         
17034         * object.c (mono_object_isinst): Implement in terms of 
17035         is_assignable_from.
17036
17037         * icall.c (ves_icall_type_is_assignable_from): New icall.
17038
17039 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
17040
17041         * domain.c (foreach_domain): fix compiler warning.
17042
17043 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
17044
17045         * image.c (load_metadata_ptrs): use g_strndup because strndup is
17046         not available on all plattforms
17047
17048 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
17049
17050         * image.h image.c: Store the metadata version string in MonoImage.
17051         * icall.c: New icall to retrieve the image version.
17052         * reflection.c (create_dynamic_image): Fill in the image version field
17053         * reflection.c (build_compressed_metadata): Use the image version
17054         from the image structure.
17055
17056 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17057
17058         * appdomain.c: modified comment.
17059         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
17060         That will be its last iteration when mono_gc_cleanup is called from
17061         mono_runtime_cleanup and before the domain is unloaded.
17062
17063         Fixes bug #45962.
17064
17065 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
17066
17067         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
17068         attributes.
17069
17070 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
17071
17072         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
17073         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
17074         Bernie Solomon <bernard@ugsolutions.com>.
17075
17076 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
17077
17078         * object.c, object.h: provide mono_object_new_fast() for faster
17079         allocation in some special cases.
17080
17081 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
17082
17083         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
17084         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
17085
17086 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
17087
17088         * threadpool.c: fix leaks.
17089
17090 2003-07-01  Dick Porter  <dick@ximian.com>
17091
17092         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
17093         using MonoGHashTables.  Fixes threadpool bug posted to list.
17094
17095 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
17096
17097         * image.h, image.c: added support to load an assembly from a byte array.
17098         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
17099         assembly bundle support.
17100
17101 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
17102
17103         * threadpool.c (mono_thread_pool_add): keep a reference to the
17104         AsyncResult to prevent GC
17105
17106 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
17107
17108         * class.c: leak fix.
17109
17110 2003-06-25  Dick Porter  <dick@ximian.com>
17111
17112         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
17113         for the async object, the WaitHandle object will close the handle.
17114         Fixes bug 45321.
17115
17116 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
17117
17118         * class.c: in mono_array_class_get (), lookup from the hash with the
17119         same type we insert: this works around a bug in
17120         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
17121         lluis. The real fix will have to wait for after the release.
17122
17123 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
17124
17125         * icall.c: fix memory leak when getting type members.
17126
17127 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
17128
17129         * reflection.c: added more pubtoken special cases.
17130
17131 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
17132
17133         * class.c: handle field offset correctly when class size
17134         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
17135
17136 2003-06-20  Martin Baulig  <martin@ximian.com>
17137
17138         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
17139         *image' field.
17140
17141 2003-06-20  Martin Baulig  <martin@ximian.com>
17142
17143         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
17144
17145 2003-06-20  Martin Baulig  <martin@ximian.com>
17146
17147         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
17148         just distinguish between variables in registers and variables at
17149         an offset relative to a register.
17150
17151 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17152
17153         * icall.c: #ifdef out latest changes until mcs is fixed.
17154
17155 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
17156
17157         * icall.c: return members in metadata order.
17158
17159 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
17160
17161         * icall.c: avoid infinite loop in GetTimeZoneData.
17162
17163 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
17164
17165         * icall.c: added Marshal.Prelink/All icalls.
17166
17167 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
17168
17169         * object.c, object.h: fix warnings and do some overflow checking
17170         when creating arrays.
17171
17172 2003-06-17  Dick Porter  <dick@ximian.com>
17173
17174         * file-io.h:
17175         * file-io.c: File attributes need to be tweaked slightly when
17176         passed from the managed to the w32 world.
17177
17178 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
17179         * profiler.h profiler-private.h profiler.c: Rework last patch
17180         based on suggestion by Paolo.
17181         
17182 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
17183
17184         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
17185         instruction level coverage data collection.
17186         * profiler.h profiler.c (: Added new callback function which can be
17187         used by the profiler to limit which functions should have coverage
17188         instrumentation.
17189         * profiler.c (mono_profiler_load): Call g_module_build_path to
17190         generate the file name of the profiler library.
17191
17192 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
17193
17194         * profiler.c, profiler.h, profiler-private.h: added basic block 
17195         coverage profiling API.
17196
17197 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
17198
17199         * reflection.c (mono_reflection_create_runtime_class): Add support
17200         for events in dynamically generated code.
17201
17202         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
17203         not allocated.
17204
17205 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
17206
17207         * icall.c: when getting timezone info, return reasonable values if we
17208         can't get the actual data.
17209
17210 2003-06-14  Dick Porter  <dick@ximian.com>
17211
17212         * threads.c (start_wrapper): Remove the reference to the thread
17213         object in the TLS data, so the thread object can be finalized.
17214         This won't be reached if the thread threw an uncaught exception,
17215         so those thread handles will stay referenced :-( (This is due to
17216         missing support for scanning thread-specific data in the Boehm GC
17217         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
17218
17219 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
17220
17221         * reflection.c: ensure streams and tables are first allocated with
17222         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
17223
17224 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
17225
17226         * icall.c: fixed GetElementType for byrefs (bug# 44792).
17227
17228 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
17229
17230         * reflection.c (mono_reflection_create_runtime_class): Add support for
17231         properties to dynamically created classes.
17232         * reflection.c: Fix a few places where non-MonoObjects were inserted
17233         into the tokens hashtable.
17234
17235 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
17236
17237         * object.c: some support to handle out of memory exceptions.
17238
17239 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
17240
17241         * marshal.c (mono_marshal_get_native_wrapper): support reference
17242         return types
17243
17244 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
17245
17246         * object.h, object.c: more portability stuff from Bernie Solomon.
17247         Unexport mono_object_allocate(). Added mono_object_unbox ().
17248         Set exitcode when an unhandled exception is thrown.
17249
17250 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
17251
17252         * marshal.c (mono_marshal_get_native_wrapper): use custom
17253         marshaler for return types.
17254
17255 2003-06-10  Dick Porter  <dick@ximian.com>
17256
17257         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
17258         ip_mreq is available
17259
17260 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
17261
17262         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
17263         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
17264         by Bernie Solomon <bernard@ugsolutions.com>.
17265
17266 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
17267
17268         * gc.c (mono_gc_init): Avoid error message on shutdown when
17269         GC_DONT_GC=1 is used.
17270
17271         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
17272         New icall to return the GUID of a module.
17273
17274 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
17275
17276         * class.c: ensure instance size always includes the parent's size
17277         even whem class size is set explicitly (fixes bug#44294).
17278
17279 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
17280
17281         * profiler.h, profiler.c: made the simple profiler thread-safe,
17282         get more accurate timing info. Allow the loading of an
17283         externally-developed profiler module.
17284
17285 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
17286
17287         * marshal.c (mono_marshal_get_native_wrapper): improved
17288         class/byref arguments.
17289         (mono_marshal_get_native_wrapper): better string marshaling support.
17290
17291 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
17292
17293         * class.c: ensure .pack and .size are handled correctly and
17294         simplified layout of static fields.
17295
17296 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
17297
17298         * appdomain.c
17299         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
17300
17301         * loader.c (mono_lookup_pinvoke_call): look for modules in the
17302         current directory (fix bug 44008)
17303
17304 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
17305
17306         * marshal.c (mono_marshal_get_native_wrapper): started support for
17307         custom marshalers.
17308         (mono_delegate_to_ftnptr): consider marshalling specifications
17309
17310 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
17311
17312         * reflection.c, reflection.h: emit custom marshal info.
17313
17314 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17315
17316         * object.c: free the GError.
17317         * icall.c: added CloseEvent_internal.
17318         * threads.[ch]:
17319         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
17320         call.
17321
17322 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
17323
17324         * loader.c (mono_method_get_signature): Add support for dynamic
17325         assemblies.
17326
17327 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
17328
17329         * reflection.c: fixed bug #43905.
17330
17331 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
17332
17333         * class.c, domain.c, icall.c, metadata.h, object.h: support for
17334         handling TypedReference and ArgIterator.
17335         * loader.c, loader.h: added function to get signature at call site.
17336
17337 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
17338
17339         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
17340         data readonly. Buglets and warning fixes. Some MethodSpec support.
17341
17342 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
17343
17344         * class.h, class.c, object.c: remove relative numbering support.
17345
17346 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
17347
17348         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
17349         free the string, until we get a chance to fix Gtk#
17350
17351 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17352
17353         * marshal.c: revert last patch.
17354
17355 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
17356
17357         * icall.c: updates for new mono_class_vtable() not calling
17358         the type constructor anymore.
17359
17360 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
17361
17362         * object.h, object.c: separate vtable creation from type
17363         initialization. Make running the .cctor thread safe.
17364
17365 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
17366
17367         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
17368
17369 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
17370
17371         * loader.c (mono_get_method): consider calling convention
17372
17373 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
17374
17375         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
17376         to return the invisible global type for a module.
17377
17378         * reflection.c (mono_image_build_metadata): Emit global fields too.
17379
17380 2003-05-20  Peter Williams  <peterw@ximian.com>
17381
17382         * loader.c (mono_lookup_internal_call): Add a few newlines.
17383
17384 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
17385
17386         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
17387         literal strings.
17388
17389         * appdomain.c (set_domain_search_path): Recalculate search path when
17390         AppDomainSetup.PrivateBinPath changes.
17391
17392         * object.c (mono_class_compute_gc_descriptor): It turns out some
17393         parts of the class libs (like System.Thread) holds pointers to
17394         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
17395         to treat native int a pointer type here.
17396         
17397 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
17398
17399         * appdomain.h, domain.c: add hashtable for jump target resolution.
17400
17401 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
17402
17403         * reflection.h reflection.c icall.c: Added new icalls 
17404         GetManifestResourceInfoInternal, GetModulesInternal and support
17405         infrastructure.
17406
17407 2003-05-16  Dick Porter  <dick@ximian.com>
17408
17409         * icall.c:
17410         * file-io.h:
17411         * file-io.c: Implement System.IO.MonoIO::GetTempPath
17412
17413 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
17414
17415         * object.c: mono_store_remote_field: little fix to previous patch.
17416
17417 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
17418
17419         * class.c: add constructors to array classes.
17420         * icall.c: special case array construction for InternalInvoke (),
17421
17422 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
17423
17424         * class.h class.c reflection.c object.c: Added support for field
17425         defaults in dynamically generated classes.
17426
17427 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
17428
17429         * reflection.c: properly encode charset for ddlimport.
17430
17431 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
17432
17433         * threads.c: allow compiling without GC.
17434
17435 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
17436
17437         * appdomain.h, object.c, object.h, threads.c, threads.h: added
17438         handling of thread static data.
17439
17440 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
17441
17442         * reflection.h, reflection.c: added mono_custom_attrs_free ().
17443
17444 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
17445
17446         * class.c (mono_array_class_get): always set the serializable flags
17447         (mono_array_class_get): always set the SEALED attribute for array types
17448
17449 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
17450
17451         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
17452         attributes (fix for bug 42021).
17453
17454 2003-05-12  Dick Porter  <dick@ximian.com>
17455
17456         * gc.c: Don't run finalizers when the finalizer thread is
17457         finishing up, because the default domain has already been
17458         destroyed.
17459
17460 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
17461
17462         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
17463         value is null, we should throw an exception.   This is slightly
17464         different than the other conventions used for the constructor.
17465
17466 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17467
17468         * socket-io.c: fixed windows build.
17469
17470 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17471
17472         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
17473
17474 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
17475
17476         * object.c (mono_string_new_wrapper): Compatibility fix for MS
17477         compilers.
17478
17479 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
17480
17481         * class.c (mono_class_layout_fields): Add experimental GC aware
17482         auto layout facility. Requires class library changes to work correctly.
17483
17484         (mono_class_setup_vtable): Avoid overriding explicit interface
17485         method implementations. Fixes iface3.exe test.
17486
17487         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
17488         object reference.
17489         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
17490         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
17491
17492         * metadata.h: Add new type classification macro which determines
17493         whenever the type holds an object reference.
17494
17495 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
17496
17497         * marshal.c (mono_marshal_get_native_wrapper): cleanups
17498
17499 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
17500
17501         * gc.c (finalizer_thread): Work around a GC bug.
17502
17503 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
17504
17505         * marshal.c (emit_struct_conv): allow unions
17506
17507         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
17508
17509 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
17510
17511         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
17512
17513 2003-05-06  Martin Baulig  <martin@ximian.com>
17514
17515         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
17516
17517 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17518
17519         * socket-io.c:
17520         (Select_internal): allow NULLs, don't create arrays if not needed.
17521         Coupled with Socket.cs changes.
17522
17523         * threadpool.c:
17524         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
17525         register a finalizer for it that will close the semaphore handle. This
17526         fixes the leak and make Lupus' test run with > 4080 loops.
17527
17528 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
17529
17530         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
17531         Jerome Laban (bug #42287)
17532
17533 2003-05-02  Martin Baulig  <martin@ximian.com>
17534
17535         * debug-mono-symfile.h
17536         (MonoSymbolFile): Moved declaration into mono-debug.h.
17537         (MonoDebugMethodJitInfo): Likewise.
17538         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
17539         argument.
17540         (_mono_debug_address_from_il_offset): Take a
17541         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
17542
17543         * mono-debug.h
17544         (MonoDebugDomainData): New struct.
17545         (mono_debug_get_domain_data): New function.
17546         (mono_debug_add_method): Take an additional `MonoDomain *'
17547         argument.
17548         (mono_debug_source_location_from_address): Likewise.
17549         (mono_debug_il_offset_from_address): Likewise.
17550         (mono_debug_address_from_il_offset): Likewise.
17551
17552 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
17553
17554         * reflection.c: one more check for null type in custom attrs.
17555
17556 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17557
17558         * reflection.c: avoid warning (comparison is always false due to limited
17559         range of data type).
17560
17561 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17562
17563         * icall.c: throw an exception in Type.GetField if the argument 'name'
17564         is NULL.
17565
17566 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
17567
17568         * reflection.c: fixed handling of enums in named arguments to custom
17569         attributes (bug #42123).
17570
17571 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
17572
17573         * reflection.c: use the right array element type and handle
17574         a null for a Type argument, too.
17575
17576 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
17577
17578         * reflection.c: handle arrays as arguments to custom attributes.
17579
17580 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
17581
17582         * reflection.c: handle a string value in a custom attr
17583         ctor that takes an object.
17584
17585 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
17586
17587         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
17588         (fix bug #42063)
17589
17590 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
17591
17592         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
17593
17594 2003-04-27  Martin Baulig  <martin@ximian.com>
17595
17596         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
17597         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
17598         MONO_DEBUGGER_EVENT_BREAKPOINT.
17599         (mono_breakpoint_trampoline_code): Removed.
17600         (mono_debugger_event_handler): The last argument is now a
17601         `guint32'.
17602         (mono_debugger_insert_breakpoint_full): Removed the
17603         `use_trampoline' argument.
17604         (mono_debugger_method_has_breakpoint): Likewise.
17605         (mono_debugger_trampoline_breakpoint_callback): Renamed to
17606         mono_debugger_breakpoint_callback(); take the method and
17607         breakpoint number as arguments.
17608
17609 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
17610
17611         * metadata.c: fix off by one when loading parameters attributes.
17612
17613 2003-04-24  Martin Baulig  <martin@ximian.com>
17614
17615         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
17616
17617 2003-04-24  Martin Baulig  <martin@ximian.com>
17618
17619         * mono-debug-debugger.c: Moved all code which interacts with the
17620         Mono Debugger here.
17621
17622         * debug-mono-symfile.c: This code now just deals with the symbol
17623         file itself, the debugger code is now in mono-debug-debugger.c.
17624
17625 2003-04-23  Martin Baulig  <martin@ximian.com>
17626
17627         * mono-debug.c (mono_debug_source_location_from_il_offset):
17628         New method; like mono_debug_source_location_from_address(), but
17629         takes an IL offset instead of a machine address.
17630
17631 2003-04-23  Martin Baulig  <martin@ximian.com>
17632
17633         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
17634         `line' field; this is now computed by the debugger.
17635
17636 2003-04-23  Martin Baulig  <martin@ximian.com>
17637
17638         * mono-debug.[ch]: New files.  This is the new debugging interface.
17639
17640         * mono-debug-debugger.[ch]: New files.  Moved all code which
17641         interacts with the Mono Debugger here.
17642
17643 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
17644
17645         * domain.c (mono_init): initialize mono_defaults.monitor_class
17646
17647 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
17648
17649         * reflection.c (method_encode_code): Add a spicy exception to help
17650         future compiler authors.
17651
17652 2003-04-21  Martin Baulig  <martin@ximian.com>
17653
17654         * icall.c
17655         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
17656         Make this work with relative pathnames; g_filename_to_uri() needs
17657         an absolute filename.
17658
17659 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
17660
17661         * icall.c: Track name changes in Object and ValueType.
17662
17663 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
17664
17665         * metadata.c (mono_type_stack_size): size should be a multiple of
17666         sizeof (gpointer)
17667
17668 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17669
17670         * gc.c:
17671         (internal_domain_finalize): moved into mono_domain_finalize. No need
17672         to create another thread because the finalizers will be run in the
17673         finalizer thread.
17674         
17675         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
17676         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
17677         to be run (MS does this too).
17678
17679 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
17680
17681         * object.c (mono_class_compute_gc_descriptor): Update comment.
17682
17683         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
17684
17685         * image.h: Add synchronized wrapper cache.
17686
17687         * image.c (do_mono_image_open): Initialize cache.
17688
17689         * reflection.c (create_dynamic_mono_image): Initialize cache.
17690
17691 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17692
17693         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
17694         ves_icall_System_Buffer_ByteLengthInternal.
17695
17696 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
17697
17698         * reflection.c: setup klass->nested_in earlier. Allow
17699         a dash in the assembly name.
17700
17701 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
17702
17703         * metadata.c (mono_type_to_unmanaged): dont access
17704         type->data.klass for MONO_TYPE_OBJECT
17705         (mono_type_to_unmanaged): consider System.Delegate class
17706
17707 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
17708
17709         * class.c: just setup supertypes in the proper place instead of
17710         initializing the full element class for arrays.
17711
17712 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
17713
17714         * class.c: ensure the element class of arrays is initialized.
17715         Setup the supertype info for array classes, too.
17716
17717 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
17718
17719         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
17720
17721 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17722
17723         * Makefile.am: re-added -m option when running cygpath. This way,
17724         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
17725         separator.
17726         * mono-config.c: same codepath for locating mono config file for WIN32
17727         and the rest.
17728         * assembly.c: if mono_assembly_setrootdir is called, don't override
17729         the value set.
17730
17731 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17732
17733         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
17734         MONO_ASSEMBLIES variable.
17735
17736 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
17737
17738         * icall.c: added Assembly::GetNamespaces() icall.
17739
17740 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17741
17742         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
17743
17744 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
17745
17746         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
17747         * object.c: fixed bug in the construction of vtable for proxies
17748
17749 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
17750
17751         * object.c (mono_array_new): Mark mono_array_new as an icall.
17752
17753 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17754
17755         * class.c: fixed test for public method when overriding interfaces.
17756         Closes bug #40970.
17757
17758 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
17759
17760         * appdomain.h, domain.c: added mono_domain_foreach() to
17761         be able to access the currently loaded appdomains.
17762         * object.c: make string interning work across sppdomains.
17763         Mark some functions for use as icalls.
17764
17765 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
17766
17767         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
17768
17769         * reflection.h reflection.c: Allocate long living data using 
17770         GC_MALLOC_ATOMIC so the collector does not need to scan it.
17771
17772         * reflection.c: Double the allocation size in streams instead of
17773         increasing it, to prevent unneccesary copying on large assemblies.
17774         
17775         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
17776         creation if the assembly does not have the Run flag set.
17777
17778 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
17779
17780         * class.h: avoid the C++ keywords in header files (Jerome Laban
17781         spotted and fixed this).
17782
17783 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17784
17785         * object.c:
17786         (mono_unhandled_exception): fill in the arguments for the
17787         UnhandledException event. Only trigger that event for the default
17788         domain (as MS does).
17789
17790 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
17791
17792         * object.c: Improve typed allocation stuff based on suggestions from
17793         Paolo. Also turn it on if the GC library supports it.
17794
17795 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
17796
17797         * object.c object.h class.h: Added experimental typed allocation
17798         facility using the interfaces in gc_gcj.h.
17799
17800         * os/gc_wrapper.h: Added new include files.
17801         
17802 2003-04-03  Martin Baulig  <martin@ximian.com>
17803
17804         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
17805         which is not yet enabled by default.
17806
17807         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
17808         functions.
17809         (mono_gc_lock, mono_gc_unlock): New static functions.
17810
17811         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
17812         functions; stop/start the world for the garbage collector.  This
17813         is using the windows API; we need to complete the SuspendThread()/
17814         ResumeThread() implementation in the io-layer to make this work on Unix.
17815         (mono_gc_push_all_stacks): New public function; tells the garbage
17816         collector about the stack pointers from all managed threads.
17817
17818 2003-04-03  Martin Baulig  <martin@ximian.com>
17819
17820         * object.h (MonoThread): Added `gpointer stack_ptr'.
17821
17822         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
17823
17824 2003-04-03  Martin Baulig  <martin@ximian.com>
17825
17826         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
17827
17828 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
17829
17830         * reflection.c (typebuilder_setup_fields): Initialize field.first and
17831         field.last.
17832
17833 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
17834
17835         * loader.c (mono_lookup_internal_call): Report the corlib that is
17836         out of sync.
17837
17838 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
17839
17840         * icall.c (ves_icall_type_GetTypeCode): fixed check for
17841         System.DBNull (it's class not valuetype).
17842
17843 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
17844
17845         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
17846         if the array method was already assigned a token (fixes bug#40646).
17847
17848 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
17849
17850         * reflection.c (mono_reflection_get_type): Attempt type resolve even
17851         if no assembly is given.
17852
17853 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
17854
17855         * metadata.h: Added the new tables.
17856
17857         * row-indexes.h: Added definitions for new tables.
17858
17859         * metadata.c: Add schemas for new tables, and add support for
17860         computing the sizes of them.
17861
17862         * class.c: Update for handling the new type cases.
17863
17864 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
17865
17866         * metadata.h (MONO_TYPE_IS_VOID): new macro
17867
17868 2003-03-31  Martin Baulig  <martin@ximian.com>
17869
17870         * threads.h (MonoThreadCallbacks): Added `thread_created'.
17871
17872         * threads.c (mono_thread_new_init): Call `thread_created' in the
17873         mono_thread_callbacks.
17874
17875 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
17876
17877         * loader.h: added marshalbyrefobject_class to mono_defaults
17878         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
17879         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
17880           generation of output parameters.
17881           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
17882         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
17883           contextbound and the target object belongs to the context of the caller.
17884         * object.h: added context and unwrapped_server variables in MonoRealProxy.
17885         * object.c: Implemented support for interfaces and abstract classes
17886           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
17887           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
17888
17889 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
17890
17891         * class.h class.c (mono_class_is_subclass_of): New function.
17892         
17893         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
17894         routines for most common case (calls from ArrayList::ToArray).
17895
17896         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
17897         routine so programs which call Environment::Exit() can be profiled.
17898
17899         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
17900         Added MONO_ARCH_SAVE_REGS.
17901
17902         * icall.c (ves_icall_type_is_subtype_of): Use new function.
17903
17904 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
17905
17906         * blob.h: Add a couple of new MonoType types definitions.
17907
17908         * tabledefs.h: Add a couple of new call convs.
17909
17910 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
17911
17912         * reflection.h (MonoReflectionDynamicAssembly): track changes in
17913         the layout of the class.
17914
17915         * reflection.c (alloc_table): double the size on overflow to avoid
17916         unnecessary copying.
17917
17918         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
17919         avoid filling out metadata tables and blobs. Also set mb->ilgen to
17920         null so it can be garbage collected.
17921         
17922 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
17923
17924         * reflection.c (mono_reflection_get_type): Return the resolved type
17925         only if it is in the assembly we searched.
17926
17927         * reflection.c (ensure_runtime_vtable): Initialize method slots.
17928
17929         * class.c (mono_class_setup_vtable): Set the slot of the overriding
17930         method.
17931
17932 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17933
17934         * appdomain.c:
17935         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
17936         the right one is 'file:///blah', but MS allows it.
17937         * assembly.c:
17938         (mono_assembly_open): allow 'file://blah'
17939
17940         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
17941
17942 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
17943
17944         * socket-io.c: fixes bug #40310.
17945
17946 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
17947
17948         * reflection.c (mono_reflection_parse_type): handle deeply nested
17949         types correctly.
17950
17951         * reflection.c (mono_image_create_token): Use unique token values
17952         since they will be put into a hash table.
17953
17954         * class.c (mono_class_setup_vtable): If a method occurs in more than
17955         one place in the vtable, and it gets overriden, then change the
17956         other occurances too.
17957
17958         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
17959         object as return type.
17960
17961 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17962
17963         * icall.c: Deleted "ToString" implementation for double and float
17964         because they are full implemented in managed code.
17965
17966 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
17967
17968         * reflection.c, reflection.h: implemented and exported functions
17969         to retrieve info about custom attributes.
17970
17971 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17972
17973         * appdomain.c: moved Uri handling to assembly.c
17974         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
17975         work when using a file Uri in *nix and windows.
17976
17977         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
17978         GetReferencedAssemblies.
17979
17980 2003-03-18  Dick Porter  <dick@ximian.com>
17981
17982         * icall.c: Rename a couple of internal calls
17983
17984         * threads.c: Set the thread state to Stopped when a thread exits.
17985         Fixes bug 39377.
17986
17987 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
17988
17989         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
17990         New icall.
17991
17992         * object.c (mono_class_vtable): fix warning.
17993
17994 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
17995
17996         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
17997
17998         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
17999         memory.
18000         (method_encode_clauses): Create exception info structures in the right
18001         order.
18002         (mono_reflection_setup_internal_class): Initialize supertypes field.
18003
18004         * class.c object.c: Handle interfaces which implement other interfaces 
18005         correctly.
18006
18007         * class.h class.c: Move the supertypes array initialization code into 
18008         a separate function so it can be used for dynamic types too. Also call
18009         it earlier, in mono_class_init(), since it can be used before the
18010         type is initialized.
18011
18012 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18013
18014         * Makefile.am:
18015         * assembly.c:
18016         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
18017
18018         * appdomain.c:
18019         * appdomain.h:
18020         * marshal.c:
18021         * object.c: remove warnings.
18022
18023 2003-03-13  Martin Baulig  <martin@ximian.com>
18024
18025         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
18026         (MonoDebugLexicalBlockEntry): New types.
18027
18028         * debug-mono-symfile.c
18029         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
18030
18031 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18032
18033         * process.c: ret can be any non-zero value accroding to MS doc.
18034
18035 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
18036
18037         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
18038         fixing a warning for a miss-used prototype, would have cause
18039         random memory corruption.
18040
18041 2003-03-07  Martin Baulig  <martin@ximian.com>
18042
18043         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
18044         getting really annoying ....
18045
18046 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
18047
18048         * reflection.c (fixup_method): added support for array methods.
18049
18050 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
18051
18052         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
18053         (pointed out by Michael Adams).
18054
18055 2003-03-04  Dick Porter  <dick@ximian.com>
18056
18057         * icall.c: Temporarily reverted the Double and Single ToString()
18058         change, because it broke nunit.
18059
18060 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
18061
18062         * object.h, threads.h: make include files compatible with C++
18063         (patch by Jerome Laban <jlaban@wanadoo.fr>).
18064
18065 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
18066
18067         * icall.c: Erased ToString helper functions for Double and Single.
18068         Now, that implementations ar all in managed code (Double and Single
18069         Formatters).
18070
18071 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
18072
18073         * appdomain.c: Added method for initializing the default context of
18074         a domain. Added internal call for getting the default context.
18075         * appdomain.h: Added context variable in MonoDomain struct.
18076         * domain.c: mono_domain_set also sets the default context of the domain
18077         * icall.c: Mapped internal method InternalGetDefaultContext.
18078         * object.c: mono_object_get_virtual_method returns always a remoting
18079         wrapper if the object is a transparent proxy.
18080         mono_runtime_invoke_array: when creating an object by calling the
18081         constructor, if the created object is a proxy, then the constructor should
18082         be called using the a remoting wrapper.
18083
18084 2003-03-03  Dick Porter  <dick@ximian.com>
18085
18086         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
18087         variable so it compiles on solaris.  Problem spotted by
18088         Christopher Taylor <ct@cs.clemson.edu>
18089
18090 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18091
18092         * appdomain.c:
18093         (get_info_from_assembly_name): don't leak value.
18094
18095         * icall.c:
18096         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
18097         result.
18098
18099 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
18100
18101         * assembly.c: export mono_image_load_references ().
18102         * class.c: handle function pointers. mono_class_from_name() now
18103         supports nested type names directly.
18104
18105 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
18106
18107         * reflection.h reflection.c: Encode already created dynamic methods 
18108         and fields correctly as a DEF instead of a REF.
18109
18110         * reflection.c: Get rid of the force_ref argument to 
18111         mono_image_typedef_or_ref since it was wrong in the first place.
18112
18113         * string-icalls.c: add error checking to string constructors according
18114         to the MSDN docs.
18115
18116         * reflection.c: Emit types in the order their TypeBuilders were 
18117         created. Previously, a new table index was assigned to each type before
18118         the tables were emitted. This was wrong because the signature blob
18119         might already refer to a type by its original table index.
18120
18121 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
18122
18123         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
18124         change.
18125         
18126 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18127
18128         * Makefile.am: make assemblies dir have \ instead of / on windows.
18129
18130 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
18131
18132         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
18133         iterate over the NESTEDCLASS table using a linear search since the
18134         table is not guaranteed to be sorted by the secondary key.
18135
18136         * class.c (mono_class_create_from_typedef): fixed up call to
18137         mono_metadata_nesting_typedef.
18138         
18139 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
18140
18141         * marshal.c (mono_string_to_byvalstr): clear the memory as
18142         suggested by Jerome Laban <jlaban@wanadoo.fr>
18143
18144 2003-02-26  Dick Porter  <dick@ximian.com>
18145
18146         * process.c: Cope with padding in .rsrc blocks
18147
18148 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
18149
18150         * metadata.h: reverted the filter_len change, it breaks reflection
18151         
18152 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
18153
18154         * metadata.h: added a new field to store the filter_len
18155         
18156
18157 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
18158
18159         * reflection.c: handle custom attributes for types and members
18160         created with Reflection.Emit (bug#38422).
18161
18162 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
18163
18164         * reflection.c: define RTSpecialName automatically for constructors for
18165         compatibility with MS.NET.
18166
18167         * reflection.c (mono_reflection_create_runtime_class): initialize
18168         nested_in field of dynamically created classes.
18169
18170 2003-02-22  Martin Baulig  <martin@ximian.com>
18171
18172         * debug-mono-symfile.h: Incremented version number.
18173
18174 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
18175
18176         * object.h icall.c process.c: fix warnings.
18177
18178 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
18179
18180         * appdomain.h appdomain.c:
18181         (mono_domain_try_type_resolve): split the 
18182         name_or_tb argument into a name and a tb argument.
18183         (mono_domain_has_type_resolve): new function to check whenever the
18184         application has registered a TypeResolve event handler.
18185         
18186         * icall.c reflection.h reflection.c: move the type resolve logic into
18187         mono_reflection_get_type () so it will be invoked when 
18188         Assembly::GetType () is called.
18189
18190         * reflection.c:
18191         (mono_reflection_get_type): renamed to get_type_internal.
18192         (mono_reflection_get_type): fixed type name generation so it works 
18193         for nested types too.
18194         (mono_reflection_get_type): call has_type_resolve () to avoid the 
18195         costly type name generation if there is no resolve event handler.
18196
18197 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
18198
18199         * class.c, image.c: load exported types from file references.
18200
18201 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
18202
18203         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
18204           used to cache the managed methods used to create proxies and make 
18205           remote invocation of methods.
18206         * class.h: Added in MonoVTable a flag to indicate that a class needs 
18207           to be remotely created.
18208         * object.c: Modified the method mono_class_vtable(). It now initializes 
18209           the remote flag of the vtable. Modified mono_object_new_specific(), 
18210           so now it checks the remote flag.
18211         * icall.c: Added a couple of internal methods, one for enabling instance 
18212           creation interception for a type, and one for creating objects bypassing
18213           the remote check.
18214
18215 2003-02-18  Martin Baulig  <martin@ximian.com>
18216
18217         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
18218         New interncall to get a method's metadata token.
18219
18220         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
18221         New interncall for the debugger.
18222
18223 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
18224
18225         * class.c (mono_class_setup_vtable): allocate supertype array
18226
18227 2003-02-18  Martin Baulig  <martin@ximian.com>
18228
18229         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
18230
18231 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18232
18233         * reflection.c:
18234         (assembly_name_to_aname): jump over unknown properties (i've found
18235         something like: 'type, assembly, version=xxx, custom=null, public...',
18236         so now will ignore custom=null and still get the rest of the values).
18237
18238 2003-02-17  Dick Porter  <dick@ximian.com>
18239
18240         * threads.c: Have Thread.Start() wait for a semaphore to signal
18241         that the thread has set up all its local data.  This fixes bug
18242         34323, where Abort() raced the new thread's TLS data.
18243
18244         Also removes the handle_store() call from start_wrapper, because
18245         threads are now always created suspended and there is no longer a
18246         race between the parent and child threads to store the info.
18247
18248 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
18249
18250         * image.c: explain the #- heap issue in a message, hopefully
18251         avoiding FAQs on mono-list.
18252
18253 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18254
18255         * icall.c:
18256         (GetEntryAssembly): if the domain has not invoked
18257         AppDomain.ExecuteAssembly yet, return the assembly of the default
18258         AppDomain.
18259
18260 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
18261
18262         * class.c (mono_ldtoken): make it work in dynamic assemblies.
18263
18264 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
18265
18266         * metadata.c, reflection.c: simple speedup to type hash
18267         and equals code.
18268
18269 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
18270
18271         * image.c, image.h, class.c, assembly.c: move module loading
18272         to MonoImage. When loading metadata, consider alignemnet from
18273         the start of metadata, not from the metadata address in memory.
18274
18275 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
18276
18277         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
18278         AssemblyBuilder objects. Factored out custom attribute creation into
18279         a separate function.
18280         (create_custom_attr): new function to create custom attributes.
18281
18282 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
18283
18284         * Makefile.am: Got tired of typing the full pathname to pedump.
18285         Until there is another option, am installing this.
18286
18287 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
18288
18289         * class.c (class_compute_field_layout): always set field->parent 
18290         (mono_ldtoken): use mono_defaults.fieldhandle_class;
18291
18292 2003-02-11  Dick Porter  <dick@ximian.com>
18293
18294         * threads-types.h:
18295         * monitor.c: Rewrote Monitor, making lock much faster and
18296         Pulse/Wait work as specified.  Also uses much fewer handles, and only
18297         creates them as needed.
18298
18299         * exception.c: Added SynchronizationLockException
18300
18301         * threads.c: Deleted old Monitor implementation.  The new one is
18302         in a new file.
18303
18304 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
18305
18306         * class.c: handled TypedReference type code. Set the correct size for
18307         class data. Setup interface_offsets for interface classes, too.
18308
18309 2003-02-09  Martin Baulig  <martin@ximian.com>
18310
18311         * debug-mono-symfile.h: Reflect latest symbol writer changes.
18312
18313 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
18314
18315         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
18316         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
18317         * object.c: fixed mono_object_get_virtual_method () for interfaces.
18318         * verify.c: check for code that runs after the end of the method.
18319
18320 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
18321
18322         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
18323         "System.Math::Round2".
18324         * sysmath.h: Added Floor, Round and Round2 definitions.
18325         * sysmath.c: Modified certain functions that were not 100% compliant
18326         with MS.NET (math precision) and added the implementation of Floor,
18327         Round and Round2.
18328
18329 2003-02-07  Martin Baulig  <martin@ximian.com>
18330
18331         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
18332
18333 2003-02-07  Martin Baulig  <martin@ximian.com>
18334
18335         * debug-mono-symfile.c: Reflected latest symwriter changes.
18336         (mono_debug_create_mono_symbol_file): Removed.
18337         (mono_debug_open_mono_symbol_file): Take an argument which
18338         specifies whether to create a dynamic symbol file.
18339
18340 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
18341
18342         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
18343
18344 2003-02-05  Martin Baulig  <martin@ximian.com>
18345
18346         * reflection.c (mono_image_build_metadata): Make this public,
18347         protect it against being called multiple times, don't create
18348         resources and don't build the compressed metadata here.
18349         (mono_image_create_pefile): Do this here.
18350
18351         * icall.c
18352         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
18353
18354 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18355
18356         * socket-io.c: fixed bug #36322.
18357
18358 2003-02-06  Piers Haken <piersh@friskit.com>
18359
18360         * appdomain.[ch]:
18361         * class.h:
18362         * debug-mono-symfile.c:
18363         * icall.c:
18364         * loader.c:
18365         * mono-config.c:
18366         * monosn.c:
18367         * reflection.c:
18368         * socket-io.c: warning cleanups
18369
18370 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
18371
18372         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
18373         function. works like remoting invoke, but does a check for the Proxy first.
18374
18375 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
18376
18377         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
18378
18379 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
18380
18381         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
18382         array of pointers.
18383         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
18384         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
18385
18386         * object.c (mono_store_remote_field_new): used by the new jit
18387         instead of mono_store_remote_field
18388         (mono_load_remote_field_new): used by the new jit
18389         instead of mono_load_remote_field
18390
18391 2003-02-05  Patrik Torstensson
18392
18393         * appdomain.c: changed unload to take the domain id instead
18394         of domain
18395         
18396         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
18397
18398
18399 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18400
18401         * appdomain.c: don't look for assemblies in ApplicationBase if
18402         PrivateBinPathProbe is set.
18403
18404 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18405
18406         * object.c: make the first argument in main_args contain the absolute
18407         path to the assembly. Fixes bug #37511.
18408
18409 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18410
18411         * icall.c: get correct UTC offset for countries not using daylight
18412         time saving. Fixes bug #30030.
18413
18414 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18415
18416         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
18417         and 1 are the family).
18418
18419 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
18420
18421         * icall.c (ves_icall_InternalExecute): removed wrong assertion
18422
18423         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
18424
18425 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
18426
18427         * reflection.c: added support for SignatureHelper tokens, which is
18428         needed by the Calli opcode.
18429
18430         * reflection.h: track changes to SignatureHelper class.
18431
18432         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
18433
18434 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18435
18436         * appdomain.c: fixed loading assemblies from PrivateBinPath.
18437
18438 2003-02-03  Patrik Torstensson
18439         * appdomain.[c|h], domain.c : 
18440          - Added support for getting a domain via domain id
18441          - Support for setting and getting domain from System.AppDomain 
18442            (used in cross appdomain channel)
18443          - Added support for get/set for a MonoAppContext on a thread 
18444            (Context class in System.Runtime.Remoting.Contexts),
18445          - Removed hack in Get/SetData and ExecuteAssembly.
18446         
18447         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
18448         the managed world to get control when a proxy is created.
18449
18450         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
18451         
18452 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
18453
18454         * icall.c
18455         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
18456         Populate the codebase field as well.
18457
18458 2003-02-02  Martin Baulig  <martin@ximian.com>
18459
18460         * debug-mono-symfile.c
18461         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
18462         (mono_debug_symfile_add_method): Allow interncalls.
18463
18464 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18465
18466         * icall.c: throw parse exception if strtod fails or the string is empty.
18467
18468 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
18469
18470         * marshal.c: handle object type separately from defined
18471         class types.
18472
18473 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
18474
18475         * marshal.c: handle NATIVE_LPSTR for strings when it's
18476         explicitly specified.
18477
18478 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
18479
18480         * reflection.c, reflection.h, icall.c: setup the reflection
18481         handle cache for ModuleBuilders and AssemblyBuilders.
18482
18483 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
18484
18485         * reflection.c (reflection_methodbuilder_to_mono_method): set
18486         pinvoke flag
18487
18488 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18489
18490         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
18491
18492 2003-01-29  Dick Porter  <dick@ximian.com>
18493
18494         * threads.c: No need for the fake_thread kludge now that Thread
18495         doesn't run a class constructor
18496         
18497 2003-01-29  Dick Porter  <dick@ximian.com>
18498
18499         * threads.c: Use g_direct_hash instead of the rather bogus
18500         g_int_hash
18501
18502 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
18503
18504         * marshal.c (mono_marshal_get_native_wrapper): add check for null
18505         (fix pinvoke12.exe)
18506         (mono_marshal_get_struct_to_ptr): generate valid IL code
18507         (mono_marshal_get_ptr_to_struct): generate valid IL code
18508         (*): correctly set sig->pinvoke, we need to memdup the signature
18509         to do that
18510
18511 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
18512
18513         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
18514         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
18515
18516 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
18517
18518         * profiler.c: provide more callers information.
18519
18520 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
18521
18522         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
18523
18524         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
18525
18526         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
18527
18528 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18529
18530         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
18531         exception instead of going into an infinite loop on dates which it 
18532         can't yet handle.
18533
18534         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
18535         out-of-range exception if needed.
18536
18537         * class.c (mono_class_setup_vtable): allow a virtual method to provide
18538         an implementation for an interface method and to override an inherited
18539         method at the same time. 
18540         Imagine a scenario when a virtual method is used to override a
18541         virtual abstract method in a parent class, and this same method 
18542         provides an implementation for an method inherited from an interface. 
18543         In this case, the interface resolution code will set im->slot, which 
18544         means that the virtual method override pass will skip this method 
18545         which means a pointer to the abstract method inherited from the parent
18546         will remain in the vtable of this non-abstract class.
18547
18548         * class.c: (mono_class_setup_vtable): continue search for a real 
18549         method if only an abstract method is found.     
18550
18551 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
18552
18553         * reflection.c: add size to encoding for ByValStr and ByValArray
18554         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
18555
18556 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18557
18558         * class.c (mono_class_setup_vtable): pass the override info as an
18559         argument.
18560
18561         * class.c (mono_class_setup_vtable): set the slot of overriding methods
18562         correctly.
18563         
18564         * reflection.c (ensure_runtime_vtable); add support for method 
18565         overrides.
18566         
18567 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18568
18569         * reflection.c (resolution_scope_from_image): Hack to work to work with
18570         dynamic assemblies.
18571
18572         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
18573         added a 'force_ref' argument to force this function to allways return 
18574         a TypeRef. This is needed by mono_image_get_memberref_token ().
18575         
18576 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18577
18578         * reflection.c (mono_image_get_type_info): interfaces really don't have
18579         a parent.
18580
18581         * reflection.c (mono_image_basic_init): fill out missing fields of
18582         image structure.
18583
18584         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
18585         dynamic assemblies. This is required so dynamic assemblies show up in
18586         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
18587         Type::GetType() etc. This is consistent with MS behaviour.
18588
18589         * image.c image.h reflection.c: add newly created classes to the name 
18590         cache so mono_class_get () will find them.      
18591
18592 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18593
18594         First part of changes to get IKVM.NET running under mono.
18595         
18596         * appdomain.h, appdomain.c: added new function 
18597         mono_domain_try_type_resolve() which will emit TypeResolve events. 
18598         This function will call AppDomain::DoTypeResolve to do the actual work.
18599
18600         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
18601         moved existing code dealing with dynamic tokens to a new function 
18602         called mono_reflection_lookup_dynamic_token (). This function will 
18603         raise TypeResolve events when appropriate. Since reflection.c is not 
18604         part of libmetadata, a new hook function called 
18605         mono_lookup_dynamic_token() is added to class.c which will call this.
18606
18607         * assembly.h assembly.c: make the invoke_load_hook function public,
18608         so it can be called for dynamic assemblies.
18609
18610         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
18611
18612         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
18613         type isn't found.
18614
18615         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
18616         MonoGHashTable, since it contains pointers to objects which the GC 
18617         needs to track.
18618
18619         * assembly.c (search_loaded): remove unused variable.
18620         
18621 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
18622
18623         * object.c: fixed issue exposed by gcc-generated IL programs
18624         that use RVA data for pointers.
18625
18626 2003-01-25  Martin Baulig  <martin@ximian.com>
18627
18628         * threads.c (start_wrapper): Moved the initialization of
18629         `start_func' above the mono_new_thread_init() call to which we
18630         pass it as argument.
18631
18632 2003-01-24  Martin Baulig  <martin@ximian.com>
18633
18634         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
18635         the MonoThread pointer.
18636
18637 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
18638
18639         * icall.c: Rename `PowImpl' to Pow.
18640
18641 2003-01-23  Dick Porter  <dick@ximian.com>
18642
18643         * threads.c (start_wrapper): Create a Thread object if needed, so
18644         the Main() thread can do the class initialisation in a subthread
18645         that has been set up to allow managed code execution.
18646
18647         Pass the thread ID instead of the MonoThread pointer to the thread
18648         start and attach callbacks.  This change is required, because the
18649         jit thread start callback must be called _before_ the Thread
18650         object can be created.
18651         
18652         (mono_thread_init): Removed much object creation code that is no
18653         longer needed.  No managed code is called from here now.
18654
18655         * object.c (mono_runtime_exec_managed_code): Create a subthread
18656         for Main, and call back to the runtime to use it.
18657         Set the exit code when Main exits.
18658
18659         * gc.c: Make sure domain finalisation happens in a subthread.
18660         Re-enable threaded GC, fixing bug 31333 (again).
18661
18662         * environment.c: System.Environment internall calls (so far just
18663         ExitCode is here, the others are still in icall.c)
18664
18665         * appdomain.c (mono_runtime_cleanup): All threads running managed
18666         code should have finished before mono_runtime_cleanup() is
18667         reached, so no need to clean up threads.
18668
18669 2003-01-22  Martin Baulig  <martin@ximian.com>
18670
18671         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
18672         `gpointer func' arguments.      
18673         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
18674         but added `MonoThread *thread' argument.
18675         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
18676
18677         * threads.c (mono_new_thread_init): Added `gpointer func' argument
18678         and pass it to the mono_thread_start_cb callback.
18679         (mono_install_thread_callbacks): New public function to install a
18680         set of callbacks which are set by the debugger.
18681         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
18682
18683 2003-01-22  Martin Baulig  <martin@ximian.com>
18684
18685         * Makefile.am: Install debug-mono-symfile.h.
18686
18687 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
18688
18689         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
18690
18691 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
18692
18693         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
18694         * class.c (mono_ptr_class_get): correctly set access levels of pointers
18695         (mono_array_class_get): correctly set access levels of arrays
18696
18697 2003-01-20      Patrik Torstensson
18698         * image.h (MonoAssemblyName): changed major, minor, build, revision
18699         from signed to unsigned.
18700
18701 2003-01-20  sean kasun <skasun@azstarnet.com>
18702
18703         * reflection.c (load_cattr_value): Now this handles
18704         MONO_TYPE_SZARRAY.  Fixes bug #35629
18705
18706 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
18707
18708         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
18709         integer value
18710
18711 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18712
18713         * decimal.c: fixed bug #26056.
18714
18715 2003-01-17  Martin Baulig  <martin@ximian.com>
18716
18717         * gc.c: Raise an ExecutionEngineException instead of using g_error().
18718
18719 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18720
18721         * exception.[ch]:
18722         (mono_get_exception_type_initialization): new function.
18723
18724         * object.c: throw a TypeInitializationException when an exception is
18725         thrown invoking the class constructor.
18726
18727 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18728
18729         * reflection.c: fixed attribute reading.
18730
18731 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18732
18733         * icall.c:
18734         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
18735         provided, look for the type in the calling assembly and then in
18736         mscorlib; if the assembly name is provided, only try that one.
18737
18738 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
18739
18740         * object.c: register the vtable before there is a chance it's
18741         queried again recursively.
18742
18743 2003-01-13  Duncan Mak  <duncan@ximian.com>
18744
18745         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
18746         gc-internal.h. 
18747         
18748 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
18749
18750         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
18751
18752 2003-01-11  Martin Baulig  <martin@ximian.com>
18753
18754         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
18755         this to 20 for the release.
18756
18757 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
18758
18759         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
18760
18761         * loader.c (mono_method_get_marshal_info): bug fix
18762
18763         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
18764         structures with explicit layout
18765
18766 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
18767
18768         * profiler.c: made the output more readable (and sorted). 
18769         Added caller information for the allocation profiler.
18770
18771 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
18772
18773         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
18774
18775 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18776
18777         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
18778         to get value types.
18779         
18780 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
18781
18782         * object.c, profiler.h, profiler.c, profiler-private.h:
18783         Added object allocation profiler.
18784
18785 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
18786
18787         * reflection.h, reflection.c: handle global methods.
18788         Compress blob entries.
18789
18790 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
18791
18792         * marshal.c: fix compilation.
18793
18794 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
18795
18796         * loader.c (mono_method_get_marshal_info): impl.
18797
18798         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
18799
18800 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18801
18802         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
18803         for reference types.
18804
18805 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
18806
18807         * loader.c: fixed off by one error in loaded parameter names.
18808
18809 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
18810
18811         * marshal.c (mono_marshal_get_icall_wrapper): like
18812         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
18813         instead of a MonoMethod.
18814
18815 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18816
18817         * decimal.c: fixed bug #36537.
18818
18819 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
18820
18821         * marshal.c: throw a missing method exception if a
18822         P/Invoke method is not found.
18823
18824 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
18825
18826         * icall.c: allow a null this for constructors.
18827
18828 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
18829
18830         * icall.c: raise the proper exceptions if the arguments to the
18831         internal Invoke are incorrect.
18832
18833 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
18834
18835         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
18836
18837 2003-01-03  Martin Baulig  <martin@ximian.com>
18838
18839         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
18840
18841 2002-12-31  Martin Baulig  <martin@ximian.com>
18842
18843         * debug-mono-symfile.c: Completely rewrote the type section.
18844         Instead of using individual malloc()ed fields, we use one big
18845         continuous memory area and offsets into this area.
18846         See the comments in the source code for details.
18847
18848 2002-12-30  Martin Baulig  <martin@ximian.com>
18849
18850         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
18851
18852 2002-12-30  Martin Baulig  <martin@ximian.com>
18853
18854         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
18855         line number table in this data blob instead of using an external
18856         pointer.
18857
18858 2002-12-28  Martin Baulig  <martin@ximian.com>
18859
18860         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
18861
18862 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
18863
18864         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
18865         as a boxed return type.
18866
18867 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
18868
18869         * appdomain.c
18870         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
18871         g_build_filename to properly get separators on the filename created.
18872
18873         * object.h: Small change, introduce MonoMarshalByRefObject to
18874         track the layout of that structure in the C# universe as we make
18875         changes there.
18876
18877 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
18878
18879         * object.c: removed assert to allow static fields on interfaces.
18880         * loader.c: a TypeSpec may be used for any type, not just arrays.
18881
18882 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
18883
18884         * class.c, class.h: added mono_class_array_element_size ().
18885         Ignore static methods in interfaces.
18886
18887 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18888
18889         * threads.c: fixed the build under cygwin.
18890
18891 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
18892
18893         * reflection.c: handle nullref constants. Allocate keys for
18894         reflection handles with the GC.
18895
18896 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
18897
18898         * threads.c, threads.h: added mono_thread_get_abort_signal()
18899         to get a suitable signal for thread abort.
18900
18901 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
18902
18903         * metadata.c: fix handling of ExportedType table.
18904
18905 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18906
18907         * icall.c: added WriteWindowsDebugString internal call.
18908
18909 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18910
18911         * reflection.h: added fields to match C# implementation.
18912
18913 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18914
18915         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
18916
18917 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
18918
18919         * gc.h, gc-internal.h: Rename header for GC internal calls to
18920         gc-internal.h from gc.h as to not clash with Boehm GC having its
18921         header installed as <gc.h> in outside include paths.
18922         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
18923         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
18924
18925 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18926
18927         * icall.c: assign minor, build and revision in FillName.
18928
18929 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
18930
18931         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
18932         Added support for running code generated by Reflection.Emit.
18933
18934 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18935
18936         * appdomain.c: check for NULL argument in LoadFrom.
18937
18938 2002-12-10  Dick Porter  <dick@ximian.com>
18939
18940         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
18941
18942 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18943
18944         * appdomain.c: fix buglet when building exe file name.  Handle full
18945         assembly name (needed after latest changes to AssemblyName).
18946         * image.c:
18947         (mono_image_close): free some hashtables.
18948
18949 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
18950
18951         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
18952         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
18953         on some systems (redhat 7.3) 
18954
18955 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
18956
18957         * threads.c: delete the critical section of a sync block,
18958         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
18959
18960 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
18961
18962         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
18963
18964 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18965
18966         * appdomain.[ch]: handle the assembly preload event to try loading the
18967         assemblies using the paths we have in the current domain.
18968
18969         * assembly.[ch]: created an assembly preload hook that is called to try
18970         loading the assembly by other means that the ones provided here.
18971
18972         * domain.c: initialize the domain search path.
18973
18974         From now on, assemblies (TODO: except corlib and System) are loaded
18975         according to these rules when using mono_assembly_load ():
18976
18977                 1. It tries to load the assembly from the ApplicationBase
18978                 of the current domain appending .dll and .exe (TODO: have to
18979                 try loading from name/name.dll and name/name.exe).
18980
18981                 2. It tries the search path specified in PrivateBinPath for the
18982                 current domain (if any).
18983
18984                 3. Previous behavior.
18985
18986 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
18987
18988         * icall.c: implemented GetInterfaceMap() related icall.
18989         * domain.c, loader.h: load MethodInfo in mono_defaults.
18990
18991 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
18992
18993         * gc.c: disable the finalizer thread for now, untill all the issues
18994         with it are resolved.
18995
18996 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18997
18998         * string-icalls.c: handle embedded nulls in string ctor when the
18999         length is specified.
19000
19001 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
19002
19003         * class.c: look for explicit interface implementation in parent
19004         classes, too.
19005
19006 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
19007
19008         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
19009
19010 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
19011
19012         * gc.c: protect handles with a critical section.
19013
19014 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19015
19016         * icall.c:
19017         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
19018         parameters. If no assembly specified, try getting the type from all
19019         the assemblies in the current domain, else, load the assembly and get
19020         the type from it.
19021
19022 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19023
19024         * marshal.c: applied patch from Aleksey Demakov that fixes
19025         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
19026
19027 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19028
19029         * icall.c: fixed get_location.
19030
19031 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
19032
19033         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
19034         declarations to make it work with older gcc. 
19035
19036         * loader.c (mono_get_method): set signature->pinvoke for native calls
19037
19038 2002-11-20  Dick Porter  <dick@ximian.com>
19039
19040         * threads.c (mono_thread_init): Set the main thread's handle
19041
19042 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
19043
19044         * gc.c: allow compilation without GC support. Changed to match the
19045         mono coding style.
19046
19047 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19048
19049         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
19050
19051 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
19052
19053         * reflection.c: set a public key token on the core assemblies.
19054
19055 2002-11-18  Dick Porter  <dick@ximian.com>
19056
19057         * threads.c: Split out some thread initialisation so that other
19058         files can set the start callback function.
19059
19060         * gc.c: Run finalisers in a separate thread, to avoid stack
19061         overflow.  Fixes bug 31333.
19062
19063         * appdomain.c: Set up GC finalisation thread.
19064
19065         * reflection.c: 
19066         * object.c: 
19067         * domain.c: Use gc.h macros for GC_malloc
19068         
19069 2002-11-15  Dick Porter  <dick@ximian.com>
19070
19071         * threadpool.c: 
19072         * threads.c:
19073         * appdomain.c: Removed mono_runtime_init_with_attach(),
19074         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
19075         merging the extra parameter with the existing function.  Removed
19076         unneeded code in mono_thread_attach().
19077
19078 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
19079
19080         * image.c (mono_image_loaded_by_guid): a method to get loaded
19081         images by guid. 
19082         (load_metadata_ptrs): we store the guid as string.
19083
19084 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
19085
19086         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
19087
19088         * metadata.c (mono_guid_to_string): imported method form Zoltan
19089         Varga (slightly modified)
19090
19091         * assembly.c (mono_assembly_open): load precompiled code
19092
19093         * loader.h (MonoMethod): we store the method token for use in the
19094         aot compiler. 
19095
19096 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19097
19098         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
19099         the hook function called when an assembly is loaded.
19100         
19101         * domain.c: Modified file.
19102         (mono_domain_assembly_load): removed hash table insertion of assemblies.
19103
19104         Fixes bug #33196.
19105
19106 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
19107
19108         * reflection.c: Map PEFileKind to the value expected by the WinNT
19109         image loader. 
19110
19111 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19112
19113         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
19114         Read until the buffer is filled completely.
19115
19116 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19117
19118         * icall.c: implemented MonoType.InternalGetEvent ().
19119
19120 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19121
19122         * appdomain.c: implemented InitAppDomainSetup. Delayed
19123         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
19124         the entry_assembly.
19125
19126         * assembly.c: base_dir is now an absolute path ending with
19127         G_DIR_SEPARATOR.
19128
19129         * icall.c: modified get_location according to the above changes.
19130
19131         * object.c: init AppDomain.SetupInformation for the default domain after
19132         we have the entry assembly.
19133
19134         * domain.c: when unloading a domain, setup = NULL.
19135
19136 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
19137
19138         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
19139
19140 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
19141
19142         * object.h, object.c: introduced mono_object_get_virtual_method ()
19143         to lookup the method invoked on an object when a callvirt is done on
19144         a method.
19145         * icall.c: make MethodInfo::Invoke() always do a virtual call.
19146
19147 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19148
19149         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
19150         current domain when loaded an assembly and failed to load it.
19151
19152         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
19153
19154 2002-10-31  Dick Porter  <dick@ximian.com>
19155
19156         * icall.c: 
19157         * file-io.h: 
19158         * file-io.c: Return the error status in a parameter, as the
19159         GetLastError() value has long since been blown away if we try and
19160         look it up in a subsequent internal call invocation.  Delete the
19161         GetLastError() internal call, because it's useless.
19162
19163 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
19164
19165         * class.[ch]: added cast_class to fix bug 29517
19166
19167 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
19168
19169         * marshal.c: create valid IL code in the filter clause:
19170         the new JIT is less forgiving:-)
19171
19172 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19173
19174         * icall.c: removed get_property internal call.
19175
19176 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
19177
19178         * appdomain.h domain.c: Added an ID to appdomains.
19179         
19180         * threads.c threads.h icall.c: Implement icall
19181         Thread:GetDomainID(), and remove unused icall 
19182         CurrentThreadDomain_internal.
19183
19184 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19185
19186         * icall.c: Don't recurse through the base types in GetConstructor.
19187         Fixes bug #32063. 
19188
19189 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
19190
19191         * mempool.h, mempool.c: added mono_mempool_empty() and
19192         mono_mempool_stats().
19193
19194 2002-10-23  Dick Porter  <dick@ximian.com>
19195
19196         * file-io.c: 
19197         * file-io.h: 
19198         * icall.c: Added MonoIO.GetFileType internal call
19199
19200 2002-10-17  Dick Porter  <dick@ximian.com>
19201
19202         * appdomain.c (mono_runtime_cleanup): Don't signal the async
19203         delegate semaphore before waiting for all threads to finish,
19204         because new threads can also call async delegates.  Fixes bug
19205         32004.
19206
19207         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
19208         of 3 seconds, in case another async job is queued.  (This part is
19209         needed because the bug fix reintroduced the 3s exit lag.)  This
19210         makes the mono_runtime_shutdown flag superfluous.
19211
19212 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
19213
19214         * reflection.c: include ehader size in method section headers.
19215         Really check for suplicated modules entries.
19216
19217 2002-10-17  Martin Baulig  <martin@gnome.org>
19218
19219         * debug-mono-symfile.c: Added back support for locals.
19220
19221 2002-10-14  Martin Baulig  <martin@gnome.org>
19222
19223         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
19224         MONO_TYPE_VOID.
19225
19226 2002-10-14  Martin Baulig  <martin@gnome.org>
19227
19228         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
19229         mono_class_get() instead of looking in the class cache. 
19230
19231 2002-10-13  Martin Baulig  <martin@gnome.org>
19232
19233         * debug-mono-symfile.c: Set version number to 28, include the
19234         signature in method names.
19235
19236 2002-10-13  Martin Baulig  <martin@gnome.org>
19237
19238         * debug-mono-symfile.h: Set version number to 27.
19239
19240 2002-10-11  Martin Baulig  <martin@gnome.org>
19241
19242         * gc.c: Don't register/unregister NULL pointers as disappearing links.
19243
19244 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19245
19246         * metadata.c, metadata.h: added helper function to allocate signatures.
19247
19248 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19249
19250         * icall.c: added internal call to get the location of machine.config.
19251
19252 2002-10-08  Martin Baulig  <martin@gnome.org>
19253
19254         * debug-mono-symfile.c: Ignore classes with a pending init for the
19255         moment.
19256
19257 2002-10-03  Dick Porter  <dick@ximian.com>
19258
19259         * threads.c: Freebsd pthread_t is a pointer
19260
19261 2002-10-03  Dick Porter  <dick@ximian.com>
19262
19263         * socket-io.c: Implemented GetHostName_internal
19264
19265 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19266
19267         * mono-config.c:
19268         (mono_config_parse_file): don't leak the text.
19269
19270 2002-10-02  Martin Baulig  <martin@gnome.org>
19271
19272         * debug-mono-symfile.c: Added support for methods.
19273
19274 2002-10-01  Martin Baulig  <martin@gnome.org>
19275
19276         * debug-mono-symfile.c: Don't emit methods and line numbers for
19277         the dynamic symbol file, just write the type table.  We can easily
19278         have an external helper program which creates a symbol file for an
19279         IL file.        
19280
19281 2002-10-01  Dick Porter  <dick@ximian.com>
19282
19283         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
19284         Only add the handle to the cleanup array when we're about to
19285         launch the thread.  Bug 31425 deadlocked when the test was run on
19286         mono under w32.
19287
19288 2002-10-01  Martin Baulig  <martin@gnome.org>
19289
19290         * debug-mono-symfile.c: Added support for properties.
19291
19292 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
19293
19294         * reflection.c: unaligned store fix from Mark Crichton
19295         <crichton@gimp.org>.
19296
19297 2002-09-27  Martin Baulig  <martin@gnome.org>
19298
19299         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
19300         New interncall.
19301
19302 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
19303
19304         * assembly.h, assembly.c: use a sane API to hook into the assembly
19305         loading process instead of a useless special-purpouse hack
19306         (ngen needs a hook, too, for example).
19307
19308 2002-09-27  Dick Porter  <dick@ximian.com>
19309
19310         * threads.c (mono_thread_init): Call GetCurrentProcess() so
19311         io-layer can set up some process handle info.  Not needed on w32,
19312         but doesn't hurt either.
19313
19314         * process.c: Pass the program name in the second parameter to
19315         CreateProcess, so the path is searched.  Include the working
19316         directory. Implemented process name, process enumeration, and some
19317         process detail internal calls.
19318         
19319         * icall.c: Added internal calls for process lookup, and some
19320         process details
19321
19322 2002-09-26  Martin Baulig  <martin@gnome.org>
19323
19324         * assembly.c (mono_install_open_assembly_hook): New global
19325         function to install a function to be invoked each time a new
19326         assembly is loaded.
19327         (mono_assembly_open): Run this callback function if set.
19328
19329         * debug-mono-symfile.c: Put back line numbers for the dynamic
19330         symbol file and also record the .il file as source file.  This
19331         allows us to install the temporary symbol file as `file.dbg' just
19332         like a compiler-generated one.
19333
19334 2002-09-26  Nick Zigarovich <nick@chemlab.org>
19335
19336         * Corrected typo in gc.c (BOHEM vs BOEHM).
19337
19338 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19339
19340         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
19341         GetProperties. Also avoid calling g_slist_length in GetProperties and
19342         GetMethods.
19343
19344 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
19345
19346         * reflection.c: avoid unaligned stores (bug spotted by
19347         Mark Crichton  <crichton@gimp.org>).
19348
19349 2002-09-25  Martin Baulig  <martin@gnome.org>
19350
19351         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
19352         instead of guint64 for addresses and added prologue/epilogue info.
19353
19354 2002-09-25  Martin Baulig  <martin@gnome.org>
19355
19356         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
19357         store line number info.  For the dynamic symbol file, we only need
19358         to provide the JIT generated dynamic line number info for the dynamic
19359         symbol file.
19360
19361 2002-09-25  Martin Baulig  <martin@gnome.org>
19362
19363         * debug-mono-symfile.h: Incremented version number.
19364
19365 2002-09-24  Martin Baulig  <martin@gnome.org>
19366
19367         * class.c (mono_debugger_class_init_func): New global function
19368         pointer variable.
19369         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
19370         call it.
19371
19372         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
19373         function.  This is called via the mono_debugger_class_init_func
19374         hook to add all types to the dynamic type table.
19375         (ves_icall_MonoDebugger_GetType): New interncall to get a class
19376         from its metadata token.
19377
19378         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
19379         New interncall for the debugger.
19380
19381 2002-09-24  Nick Drochak <ndrochak@gol.com>
19382
19383         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
19384         before using it in case it is null.
19385         
19386 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19387
19388         * metadata.c: allow custom modifiers in local var signatures
19389         (bug spotted by Zoltan Varga).
19390
19391 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
19392
19393         * class.c: deal with the <Module> class that may have a NULL vtable.
19394         Eliminate warnings.
19395
19396 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19397
19398         * image.c, image.h: more strong name helpers.
19399         * monosn.c: more work: convert pem keys to cryptoapi format.
19400
19401 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
19402
19403         * string-icalls.c: speedup IndexOf.
19404
19405 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19406
19407         * icall.c: updates from Zoltan.2.Varga@nokia.com.
19408
19409 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19410
19411         * icall.c: cleanup: use mono_object_domain ().
19412
19413 2002-09-23  Martin Baulig  <martin@gnome.org>
19414
19415         * debug-mono-symfile.c: Improved type support.
19416
19417 2002-09-22  Martin Baulig  <martin@gnome.org>
19418
19419         * debug-mono-symfile.c: Added support for reference types and strings.
19420
19421 2002-09-22  Martin Baulig  <martin@gnome.org>
19422
19423         * debug-mono-symfile.c: Started to work on the type table.
19424
19425 2002-09-21  Martin Baulig  <martin@gnome.org>
19426
19427         * debug-mono-symfile.c: Largely reworked the symbol table format.
19428         The symbol table is now incrementally updated each time a new
19429         method is added.  We're now also using our own magic and version
19430         so that you don't need to recompile all your classes if the
19431         dynamic table changes.
19432         (mono_debug_update_mono_symbol_file): Removed.
19433         (mono_debug_symfile_add_method): New function to add a method.
19434
19435 2002-09-21  Martin Baulig  <martin@gnome.org>
19436
19437         * icall.c
19438         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
19439         New interncall.
19440
19441         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
19442         New interncall to get a method from its metadata token.
19443
19444 2002-09-21  Martin Baulig  <martin@gnome.org>
19445
19446         * debug-mono-symfile.c: Create type table.
19447
19448 2002-09-20  Martin Baulig  <martin@gnome.org>
19449
19450         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
19451
19452 2002-09-20  Martin Baulig  <martin@gnome.org>
19453
19454         * debug-mono-symfile.c: Provide information about params and locals.
19455
19456 2002-09-20  Martin Baulig  <martin@gnome.org>
19457
19458         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
19459         New interncall.
19460
19461         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
19462         interncall to get a method from its metadata token.
19463
19464 2002-09-20  Martin Baulig  <martin@gnome.org>
19465
19466         * debug-mono-symfile.c: Added a few checks for method->header
19467         being non-NULL.  This should never happen, but for the moment
19468         let's use a g_warning() rather than a g_assert().
19469
19470 2002-09-19  Mark Crichton  <crichton@gimp.org>
19471
19472         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
19473         even if support for it isn't present.  Added an #ifdef to fix this.
19474
19475         * socket-io.c: Added checks back for Solaris support.
19476
19477 2002-09-19  Martin Baulig  <martin@gnome.org>
19478
19479         * debug-mono-symfile.c (read_string, write_string): Reflect latest
19480         changes in the symbol file format.
19481
19482 2002-09-18  Martin Baulig  <martin@gnome.org>
19483
19484         * debug-mono-symfile.c: Set version number to 21.
19485
19486 2002-09-18  Dick Porter  <dick@ximian.com>
19487
19488         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
19489         on netbsd.  Fixes bug 30051.
19490
19491 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19492
19493         * reflection.c:
19494         (set_version_from_string): little fix.
19495
19496 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19497
19498         * monosn.c, Makefile.am: added strong name utility.
19499         * reflection.h, reflection.c: implemented delayed signing,
19500         locale, version and hash id assembly attributes.
19501
19502 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
19503
19504         * loader.c, metadata.c: load param attributes in signatures.
19505
19506 2002-09-16  Martin Baulig  <martin@gnome.org>
19507
19508         * debug-mono-symfile.c: Added string table with all method names.
19509
19510 2002-09-14  Martin Baulig  <martin@gnome.org>
19511
19512         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
19513         fast method lookup.
19514
19515 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
19516
19517         * reflection.c: record the public key token of referenced assemblies.
19518
19519 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19520
19521         * image.c, image.h: added functions to get the strong name and the
19522         public key of an assembly.
19523         * pedump.c: use them.
19524
19525 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
19526
19527         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
19528
19529 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
19530
19531         * marshal.c (mono_marshal_get_managed_wrapper): Added
19532         MONO_TYPE_BOOLEAN 
19533
19534 2002-09-11  Martin Baulig  <martin@gnome.org>
19535
19536         * gc.c: Call GC_unregister_disappearing_link() on all links when
19537         finalizing them, this is necessary to aviod a crash in boehm's
19538         finalize handler.
19539
19540 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19541
19542         * gc.c: handle GetTarget for finalized objects spotted and fixed by
19543         nick@chemlab.org.
19544
19545 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
19546
19547         * icall.c: implemented MonoType::Module.
19548         * reflection.c, reflection.h: mono_module_get_object () from
19549         Tomi Pakarinen <tomi.pakarinen@welho.com>.
19550
19551 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
19552
19553         * icall.c: ignore overridden methods in GetMethods ().
19554         Fix for FieldInfo::SetValue().
19555         * object.c: handle float/double in runtime invoke.
19556
19557 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
19558
19559         * object.c: allow a constructor to be called again on an object.
19560
19561 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19562
19563         * class.h, class.c: move field layout code to it's own function and
19564         export it. Get an interface id earlier. Move fields in MonoClass
19565         so they are more cache friendly and align the bitfields.
19566         * loader.c: temporary handle get_param_names() for a runtime method.
19567         * reflection.c, reflection.h: more code to handle runtime creation of
19568         types.
19569
19570 2002-09-09  Martin Baulig  <martin@gnome.org>
19571
19572         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
19573         signature with the pinvoke field being set for the actual call.
19574
19575 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19576
19577         * icall.c: removed some unused icalls. Start of map of glib charsets
19578         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
19579
19580 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
19581
19582         * debug-helpers.c: break infinite loop (found and fixed by
19583         Holger Arnold <harnold@gmx.de>).
19584
19585 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
19586
19587         * icall.c: target may be null in create_delegate.
19588
19589 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19590
19591         * marshal.c: handle a boolean return type.
19592
19593 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19594
19595         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
19596
19597 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
19598
19599         * gc.c: fix weakreferences.
19600
19601 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
19602
19603         * icall.c: added icall to get default codepage.
19604
19605 2002-09-03  Dick Porter  <dick@ximian.com>
19606
19607         * threads.h: 
19608         * threads.c: Use MonoThread instead of MonoObject where
19609         apropriate.
19610
19611         Store running thread objects in a hash table, so that we have all
19612         the info to hand when waiting for them to finish
19613         (means we don't need OpenThread() any more, so mingw builds should
19614         be fully functional again.)
19615
19616         * verify.c:
19617         * object.h: Added thread ID to MonoThread
19618
19619 2002-09-03  Martin Baulig  <martin@gnome.org>
19620
19621         * icall.c (System.Reflection.Assembly::get_location): New interncall.
19622
19623 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19624
19625         * icall.c: fixed leak in get_temp_path. Thanks lupus.
19626
19627 2002-09-03  Martin Baulig  <martin@gnome.org>
19628
19629         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
19630         argument to store the end address of the disassembled instruction.
19631
19632         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
19633         here from debug-symfile.h.
19634         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
19635         JIT into this struct.
19636         (MonoSymbolFile): Added `char *image_file' field.
19637         (MonoDebugGetMethodFunc): Removed.
19638         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
19639         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
19640         (mono_debug_find_method): New method.
19641
19642         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
19643         create a full symbol file.
19644         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
19645         and static symbol files.
19646         (mono_debug_find_method): The symbol file keeps an internal method hash,
19647         call this to get a MonoDebugMethodInfo from a MonoMethod.
19648
19649         * debug-symfile.[ch]: Removed.
19650
19651 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
19652
19653         * image.c (do_mono_image_open): Remove linker version check.
19654
19655 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
19656
19657         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
19658         wrappers for instance methods.
19659         
19660 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19661
19662         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
19663
19664 2002-08-28  Dick Porter  <dick@ximian.com>
19665
19666         * Makefile.am: Export HOST_CC for w32 builds
19667
19668 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19669
19670         * file-io.c process.c: MonoString are null terminated, no
19671         need for mono_string_to_utf16() anymore.
19672
19673 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19674
19675         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
19676
19677 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
19678
19679         * icall.c, reflection.h: speedup System.MonoType.
19680
19681 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
19682
19683         * reflection.c: allow null as the value of a string argument in
19684         custom attributes constructors.
19685
19686 2002-08-27  Martin Baulig  <martin@gnome.org>
19687
19688         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
19689         `trampoline_address' field.
19690
19691 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
19692
19693         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
19694         check (fixes bug #29486) 
19695
19696 2002-08-27  Martin Baulig  <martin@gnome.org>
19697
19698         * debug-mono-symfile.c: Changed the file format in a way that allows us
19699         open it read-only and to use a specially malloced area for all the
19700         dynamic data.  We can now also generate a symbol file on-the-fly if we're
19701         debugging IL code and there is no MCS generated symbol file for it.
19702
19703 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
19704
19705         * object.c: added a define for a good string and array
19706         creation speedup (not enabled by default because we need to deal with
19707         the synch stuff).
19708
19709 2002-08-26  Martin Baulig  <martin@gnome.org>
19710
19711         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
19712         function to create a dynamic symbol file.  This is used by the
19713         debugger to create a symbol file for IL code on-the-fly.
19714
19715 2002-08-26  Martin Baulig  <martin@gnome.org>
19716
19717         * loader.c (mono_lookup_pinvoke_call): Include the error message
19718         from g_module_error() in the error message.
19719
19720 2002-08-24  Martin Baulig  <martin@gnome.org>
19721
19722         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
19723         function to update the symbol file.  The symbol file is mmap()ed
19724         writable, but private.  This allows us to install the symbol file
19725         together with the assembly.
19726
19727 2002-08-24  Martin Baulig  <martin@gnome.org>
19728
19729         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
19730         but they can read the new symbol file format which mcs is now creating.
19731
19732         * debug-symfile.c (mono_debug_find_source_location): Moved to
19733         debug-mono-symfile.c; this is now operating on the new symbol file.
19734
19735 2002-08-23  Martin Baulig  <martin@gnome.org>
19736
19737         * debug-helpers.c (mono_method_desc_from_method): New function to get
19738         a MonoMethodDesc from a MonoMethod.
19739
19740 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
19741
19742         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
19743         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
19744
19745 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
19746
19747         * string-icalls.[ch]: make helper methods static.
19748
19749 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19750
19751         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
19752         types to it and to SetValueInternal.
19753
19754         * object.c: Moved handle_enum label to its proper place. This was the
19755         f... bug! ;-)
19756
19757         This time i compiled mcs and gtk-sharp and they both work.
19758
19759 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19760
19761         * icall.c: reverted partially my previous patch until 
19762         object.c:set_value handles enums correcly.
19763
19764 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19765
19766         * icall.c:
19767         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
19768         (ves_icall_System_Environment_get_MachineName): removed warning when
19769         compiling under cygwin.
19770
19771 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19772
19773         * object.c: fixed field_get_value() for reference types.
19774
19775 2002-08-22  Dick Porter  <dick@ximian.com>
19776
19777         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
19778         Don't free a buffer while it's still needed.  Patch from Jonathan
19779         Liger <Jonathan.liger@wanadoo.fr>
19780
19781 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
19782
19783         * icall.c (ves_icall_System_Environment_get_Platform): Add new
19784         internal call.
19785
19786 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
19787
19788         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
19789         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
19790
19791         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
19792         we call unmanaged code which throws exceptions.
19793
19794 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19795
19796         * appdomain.h: added per-domain entry_assembly.
19797         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
19798         arguments.
19799         * icall.c: Assembly::GetEntryAssembly icall.
19800         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
19801         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
19802
19803 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19804
19805         * appdomain.h, gc.c: added mono_domain_finalize ().
19806
19807 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19808
19809         * object.c:
19810         (mono_print_unhandled_exception): changed g_warning by g_printerr
19811         because g_log has a 1024 characters limit (yeah, i got a big stack
19812         trace). Don't print exception name, that should be in ToString 
19813         returned string.
19814
19815 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19816
19817         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
19818         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
19819
19820 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19821
19822         * object.c:
19823         (mono_print_unhandled_exception): after previous commit, i realized
19824         that MS calls ToString on the exception. I changed this function to
19825         do that. This way we get stack_trace for free.
19826
19827 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19828
19829         * object.c:
19830         (mono_print_unhandled_exception): invoke Message property instead of
19831         getting 'message' field from Exception. Don't allocate memory for
19832         'trace' and 'message' if not needed.
19833
19834 2002-08-18  Dick Porter  <dick@ximian.com>
19835
19836         * unicode.c: Fix asserts to match Encoder.cs checks
19837
19838 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19839
19840         * marshal.c: fix unaligned store issue and a few wrong
19841         opcode argument types.
19842
19843 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19844
19845         * icall.c: added GetUninitializedObjectInternal internal call.
19846
19847 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
19848
19849         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
19850         to the right domain.
19851
19852 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
19853
19854         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
19855
19856         * class.c (class_compute_field_layout): set blittable to false for Strings
19857
19858         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
19859
19860 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19861
19862         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
19863         first chunk of code to create types at runtime. Code to
19864         handle ReflectedType/DeclaringType. Make reflection handles
19865         domain specific.
19866
19867 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
19868
19869         * class.c: set correct name in arrays.
19870
19871 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
19872
19873         * appdomain.c (mono_domain_transfer_object): make it work with
19874         valuetypes. bug fixes.
19875
19876 2002-08-12  Dick Porter  <dick@ximian.com>
19877
19878         * object.h: Rename some parameters to avoid c++ keywords (Patch
19879         from Joseph Wenninger <kde@jowenn.at>)
19880
19881 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
19882
19883         * icall.c: added icall to implement Assembly.GetFile*.
19884
19885 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19886
19887         * reflection.h, reflection.c: code to embed managed resources.
19888
19889 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
19890
19891         * class.c: move all the type size stuff into
19892         class_compute_field_layout().
19893
19894 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19895
19896         * class.c: ensure enums have always the correct instance size.
19897         * unicode.c: remove wrong assert.
19898
19899 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
19900
19901         * assembly.c: fix mem corruption issue.
19902         * image.h, image.c: added mono_image_get_resource () to access
19903         managed resources.
19904         * icall.c: implemented Assembly.EntryPoint property and some
19905         Managed Resources related internalcalls.
19906
19907
19908 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
19909
19910         * image.c, image.h: impemented mono_image_get_entry_point ().
19911         * appdomain.c: use mono_image_get_entry_point.
19912
19913 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19914
19915         * reflection.c: support the object type argument when loading
19916         custom attributes.
19917
19918 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
19919
19920         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
19921         String as return type.
19922
19923 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
19924
19925         * reflection.c: fix encoding of named args for custom attrs to match
19926         the ms implementation. Read them back when instantiating custom
19927         attributes.
19928
19929 2002-08-02  Radek Doulik  <rodo@ximian.com>
19930
19931         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
19932         by Dietmar as quick fix
19933         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
19934         16 as stack size, used on more places as quick fix before Dietmar
19935         will fix it properly
19936
19937 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19938
19939         * object.h, object.c: added accessors for fields and properties.
19940
19941 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19942
19943         * class.c, class.h: made mono_class_get_field_from_name ()
19944         loop on parent types.
19945         Added mono_class_get_property_from_name ().
19946
19947 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19948
19949         * class.c, class.h: move the code to setup the type vtable in its own
19950         function so that it can be reused also for types created at runtime.
19951         Eliminate the "class" identifier from the header file.
19952         * reflection.c: setup the vtable for enums so that we can create
19953         objects for use in SetConstant ().
19954
19955 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
19956
19957         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
19958         instead of the delegate itself as this pointer (bug #28383)
19959
19960 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
19961
19962         * marshal.c (mono_marshal_get_managed_wrapper): added return type
19963         conversions.
19964
19965 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19966
19967         * loader.c: don't set the pinvoke bit on icalls.
19968
19969 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
19970
19971         * debug-helpers.c (mono_method_full_name): only print a number to
19972         indicate wrapper type (so that the output is more readable in traces).
19973
19974 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
19975
19976         * class.c (mono_class_init): include method override patch from Paolo
19977
19978 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
19979
19980         * icall.c: fixed GetTypeCode().
19981
19982 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
19983
19984         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
19985         use real delegate invoke function to make it work with multicast
19986         delegates (fix bug# 28291).
19987
19988 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19989
19990         * object.c: load constant strings.
19991
19992 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19993
19994         * reflection.c: no magic numbers.
19995         * tabledefs.h: security action enum.
19996
19997 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19998
19999         * assembly.c: fix possible memory corruption.
20000
20001 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
20002
20003         * reflection.h, reflection.c: added support for linking resources.
20004         * verify.c: check we have an updated corlib.
20005
20006 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
20007
20008         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
20009         string arrays.
20010         (mono_marshal_string_array): null terminate unmanaged string arrays.
20011         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
20012
20013 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20014
20015         * icall.c: Type.GetType () can now return also types from the
20016         calling assembly.
20017
20018 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
20019
20020         * loader.h, loader.c: stack walking support.
20021         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
20022         GetCallingAssembly.
20023
20024 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
20025
20026         * marshal.c: added optimisations for blittable types 
20027
20028         * class.c (mono_array_class_get): do not set blittable attribute on arrays
20029         (mono_class_setup_mono_type): set blittable attribute for single
20030         and double.
20031
20032         * marshal.c (mono_string_utf8_to_builder): impl.
20033         (mono_string_builder_to_utf8): impl.
20034         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
20035
20036 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
20037
20038         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
20039         (mono_marshal_get_managed_wrapper): impl. byref types
20040
20041 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20042
20043         * icall.c:
20044         (search_method): don't display debug message. 
20045
20046 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
20047
20048         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
20049
20050 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
20051
20052         * appdomain.c: set the missing filename when throwing exception.
20053
20054 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
20055
20056         * metadata.c (mono_type_size): code cleanup
20057         (mono_type_stack_size): removed some test code
20058
20059 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
20060
20061         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
20062         mono_get_exception_file_not_found now.
20063
20064         * exception.c (mono_exception_from_name_two_strings): New version
20065         that will call a constructor with two string arguments. 
20066         (mono_get_exception_file_not_found): New helper routine, used to
20067         report file-not-found errors.
20068
20069 2002-07-20  Dick Porter  <dick@ximian.com>
20070
20071         * process.h:
20072         * process.c: Pass file handles to CreateProcess
20073         
20074         * icall.c:
20075         * file-io.h:
20076         * file-io.c: Implemented CreatePipe
20077
20078 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
20079
20080         * metadata.c (mono_get_param_info): set alignment for value types
20081
20082 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20083
20084         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
20085         Constify mono_domain_assembly_open().
20086         * loader.c: handle null namespace in icalls.
20087
20088 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
20089
20090         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
20091         (emit_str_to_ptr_conv): marshal object as structs
20092
20093         * metadata.c (mono_type_to_unmanaged): marshal object as structs
20094
20095         * marshal.c (mono_marshal_get_runtime_invoke): support value types
20096
20097 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
20098
20099         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
20100         (mono_marshal_get_native_wrapper): we an now return value types
20101
20102 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20103
20104         * verify.c: more checks implemented.
20105
20106 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
20107
20108         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
20109         (fix bug #27695)
20110         (mono_marshal_get_native_wrapper): allow byref arguments
20111         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
20112         impl. PtrToStringXXX methods
20113         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
20114         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
20115         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
20116         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
20117         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
20118
20119 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20120
20121         * reflection.c: fix buglet in parsing an assembly name.
20122
20123 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
20124
20125         * marshal.c (emit_ptr_to_str_conv): first impl.
20126
20127 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
20128
20129         * object.c, class.h: cache the vtable in the class as suggested by
20130         vargaz@freemail.hu (Zoltan Varga).
20131
20132 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20133
20134         * class.h, loader.c: added mono_field_from_token().
20135         * verify.c: first cut of type checking code.
20136
20137 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
20138
20139         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
20140
20141 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
20142
20143         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
20144         (fix bug #27782)
20145         (mono_marshal_get_remoting_invoke): impl.
20146         (mono_delegate_begin_invoke): impl.
20147         (mono_mb_emit_save_args): impl.
20148         (mono_delegate_end_invoke): impl.
20149         (mono_marshal_get_delegate_begin_invoke):
20150         (mono_marshal_get_delegate_end_invoke):
20151         (mono_marshal_get_delegate_invoke): generate a special name for
20152         those methods (including the signature) and associate them whith
20153         the delegate class. 
20154
20155 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
20156
20157         * reflection.[ch]: 
20158         (mono_reflection_type_from_name): now it has a MonoImage parameter
20159         which is used as the default image to search the type in. If the image
20160         is NULL or getting the type from it fails, it defaults to corlib.
20161
20162         * icall.c: changed 1 call to mono_reflection_type_from_name to match
20163         new parameter.
20164
20165 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20166
20167         * reflection.c: update the parameter table index.
20168
20169 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
20170
20171         * domain.c: don't include the mark byte in the string hash.
20172
20173 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
20174
20175         * icall.cs: icall for Type.GetTypeCode ().
20176         * verify: a couple of fixes and disabled local initialization checks.
20177
20178 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
20179
20180         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
20181
20182         * debug-helpers.c (mono_method_full_name): print the type of the
20183         runtime wrapper
20184
20185         * metadata.c (mono_signature_hash): a hash function for signatures
20186         (mono_signature_hash): better hash algorithm
20187
20188         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
20189
20190         * debug-helpers.c (mono_method_full_name): this can now generate
20191         method names with signatures
20192
20193         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
20194         method dont have this pointers.
20195
20196 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
20197
20198         * reflection.c: fixup typebuilder tokens.
20199         * image.c: fix buglet.
20200         * marshal.h: remove whitespace.
20201         * metadata.h, metadata.c: reinstate code that was removed.
20202         * verify.c: handle catch directives and fix another couple of bugs.
20203
20204 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
20205
20206         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
20207         (mono_marshal_get_native_wrapper): make it comp. with the old code
20208         (mono_marshal_get_native_wrapper): support boolean
20209         (mono_marshal_get_managed_wrapper): support more types
20210
20211 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
20212
20213         * class.c (class_compute_field_layout): compute class->blittable attribute.
20214
20215 2002-07-09  Dick Porter  <dick@ximian.com>
20216
20217         * threads.c: Make the thread cleaning up cope with threads that
20218         call ExitThread()
20219
20220 2002-07-08  Radek Doulik  <rodo@ximian.com>
20221
20222         * reflection.c (method_encode_code): use non-translated values to
20223         compute finally_start, this fixes exception handling on ppc, yay!
20224
20225         * decimal.h (struct signscale): fix endianess
20226
20227 2002-07-07  Radek Doulik  <rodo@ximian.com>
20228
20229         * reflection.c: swap box_val and not val
20230
20231 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
20232
20233         * reflection.c, reflection.h: handle full assembly info in type name.
20234         Handle Type arguments when loading custom attributes.
20235         * icall.c: updated to use new mono_reflection_type_from_name () method.
20236
20237 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20238
20239         * loader.c:
20240         (method_from_memberref): also print assembly name when method not found.
20241
20242 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20243
20244         * icall.c:
20245         (ves_icall_TypeGetProperties): fixed bug #27473. 
20246
20247 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20248
20249         * reflection.c: display image name and token when cannot find the
20250         .ctor for an attribute.
20251
20252 2002-07-05  Martin Baulig  <martin@gnome.org>
20253
20254         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
20255
20256 2002-07-04  Dick Porter  <dick@ximian.com>
20257
20258         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
20259         compile on mingw.  This will cause mingw builds to not wait for
20260         subthreads to terminate after the main thread does.  I've lodged a
20261         bug with the mingw developers for them to wrap OpenThread().
20262
20263 2002-07-03  Dick Porter  <dick@ximian.com>
20264
20265         * threads.c: Store thread IDs instead of handles, because
20266         GetCurrentThread() returns a pseudohandle and therefore stores
20267         useless values.  mono_thread_cleanup() continues checking the
20268         array of threads until it is empty, to cope with subthreads
20269         spawning new threads after the main thread has finished.
20270
20271         * profiler.h:
20272         * profiler.c:
20273         * profiler-private.h: Pass the thread ID to thread profiler
20274         functions, instead of a handle
20275
20276 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20277
20278         * verify.c: fixes to make it more usable.
20279         * pedump.c: added --verify code to verify IL code in an assembly.
20280
20281 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20282
20283         * reflection.c: turn errors into warnings to allow compiling corlib.
20284
20285 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
20286
20287         * reflection.c: add special cases to compile corlib.
20288
20289 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20290
20291         * reflection.c: handle properties with only a set method.
20292
20293 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20294
20295         * opcodes.h: add enum with opcodes in opval order.
20296
20297 2002-07-01  Dick Porter  <dick@ximian.com>
20298         
20299         * object.h:
20300         * object.c (mono_runtime_run_main): Removed unneeded argument
20301
20302 2002-06-28  Martin Baulig  <martin@gnome.org>
20303
20304         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
20305
20306 2002-06-27  Dick Porter  <dick@ximian.com>
20307
20308         * threads.c: Store the handle in both the parent thread and in the
20309         subthread, to minimise the time between starting a new thread and
20310         storing its ID.
20311
20312 2002-06-26  Dick Porter  <dick@ximian.com>
20313
20314         * appdomain.c (mono_runtime_cleanup): Close the socket library
20315         after all the threads have finished, not before
20316
20317 2002-06-26  Martin Baulig  <martin@gnome.org>
20318
20319         * debug-symfile.c (mono_debug_find_source_location): Added
20320         `guint32 *line_number' argument.  If it's not NULL, store the line number
20321         there and return the file name without the line number.
20322
20323 2002-06-25  Dick Porter  <dick@ximian.com>
20324
20325         * icall.c:
20326         * process.h:
20327         * process.c: Process forking and other support functions
20328
20329 2002-06-25  Dick Porter  <dick@ximian.com>
20330
20331         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
20332         things dont happen when the image is closed.
20333         (mono_image_lookup_resource): Walk the resource section looking
20334         for a particular entry
20335
20336         * cil-coff.h: PE resource section decoding
20337
20338 2002-06-25  Dick Porter  <dick@ximian.com>
20339         
20340         * assembly.h:
20341         * assembly.c: 
20342         (mono_assembly_foreach): Accessor functions to walk the list of
20343         loaded assemblies
20344         (mono_assembly_set_main):
20345         (mono_assembly_get_main): Process methods need to know which
20346         assembly is the "main" one
20347
20348         * object.c (mono_runtime_run_main): Record the main assembly
20349
20350         * debug-helpers.c: Fix typo
20351
20352 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
20353
20354         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
20355         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
20356
20357 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20358
20359         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
20360
20361 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
20362
20363         * image.c (do_mono_image_open): Initialize reference count,
20364         otherwise we leak the MonoImage.
20365
20366 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
20367
20368         * reflection.c: small tweak to handle self-hosting.
20369
20370 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
20371
20372         * reflection.c: fix type name parse code.
20373
20374 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20375
20376         * reflection.c: break out of the loop.
20377         * image.c: special case corlib.
20378
20379 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20380
20381         * reflection.c: add all the custom attrs at the end to ensure the
20382         ctors have been properly initialized when the attributes are defined
20383         in the current assembly.
20384
20385 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20386
20387         * reflection.c: handle correctly multiple-nested types.
20388
20389 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
20390
20391         * row-indexes.h: fix typos.
20392         * reflection.c: adjust for typos and fix method_def_or_ref
20393         encoding in MethodImpl table.
20394
20395 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20396
20397         * reflection.c: fix entry point patching (thanks Serge!).
20398
20399 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
20400
20401         * verify.c: add check for System.Exception
20402
20403 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
20404
20405         * image.c, class.c: minifix for code just c&p'ed.
20406         * reflection.c: warning fix.
20407         * object.h, loader.h, domain.c: load also StringBuilder.
20408
20409 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20410
20411         * marshal.h, marshal.c: some support code to handle complex marshaling.
20412
20413 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20414
20415         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
20416         Better signatures with vtable error dump.
20417
20418 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
20419
20420         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
20421
20422 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
20423
20424         * icall.c (ves_icall_Type_GetField): impl.
20425
20426 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20427
20428         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
20429         to retrieve a marshal description blob for a field or param.
20430
20431 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
20432
20433         * reflection.h, reflection.c: change order of nested type emission
20434         to avoid table corruption. The NestedTypes table is sorted.
20435         * icall.c: change order of GetConstructor results to workaround mcs bug.
20436
20437 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20438
20439         * reflection.h, reflection.c: handle field and param marshal
20440         information.
20441
20442 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20443
20444         * icall.c, marshal.c marshal.h: more Marshal class implementation.
20445
20446 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20447
20448         * reflection.c: fix call convention.
20449
20450 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20451
20452         * reflection.h, reflection.c: mono_image_get_memberref_token()
20453         takes a type instead of a class, now. Added
20454         mono_image_get_array_token() to create tokens for the special
20455         multi-dim array methods.
20456
20457 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20458
20459         * assembly.c: handle modules (no assembly table). Split
20460         loading references in its own function.
20461         * class.c: handle moduleref resolution scope.
20462         * image.c, image.h: cache module name in image.
20463
20464 2002-06-07  Martin Baulig  <martin@gnome.org>
20465
20466         * reflection.c (mono_image_get_type_info): Only add a class layout entry
20467         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
20468
20469 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20470
20471         * icall.c: more signature fixes that used uint instead of int.
20472
20473 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20474
20475         * reflection.c: fixed signature of field refs.
20476
20477 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20478
20479         * class.c, reflection.c: handle typerefs of nested types
20480         (both on read and when writing files).
20481
20482 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
20483
20484         * icall.c: fix method signatures that tried to workaround the previous
20485         typo, d'oh!
20486
20487 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
20488
20489         * debug-helpers.c: fix typo.
20490
20491 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
20492
20493         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
20494         rewrote the PE/COFF writing code (our programs are understood by the
20495         ms runtime, now).
20496
20497 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
20498
20499         * gc.c, gc.h, icall.c: weakreference support.
20500
20501 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20502
20503         * Makefile.am, mono-config.c: use $(sysconfdir).
20504
20505 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20506
20507         * icall.c: changed default precision of Double.ToString() to 15.
20508         Fixed memory leak. Unified with Single.ToString.
20509
20510 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
20511
20512         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
20513
20514 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
20515
20516         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
20517         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
20518         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
20519         and myself.
20520
20521 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20522
20523         * debug-symfile.c, sysmath.c: yet more compilation fixes.
20524
20525 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20526
20527         * reflection.c, socket-io.c: more compilation fixes.
20528
20529 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20530
20531         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
20532         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
20533         unicode.c: warning and compiler compatibility fixes.
20534
20535 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20536
20537         * class.h, metadata.c: fixed warnings/compilation errors.
20538
20539 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20540
20541         * Makefile.am, mono-config.c, mono-config.h: configuration file
20542         support routines.
20543         * loader.c, loader.h: make Dll mapping configurable at runtime in the
20544         config file. Export methods to insert and lookup mappings.
20545
20546 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
20547
20548         * reflection.c: handle types and boxed objects in custom attr
20549         constructors.
20550
20551 2002-05-30  Martin Baulig  <martin@gnome.org>
20552
20553         * debug-symfile.c
20554         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
20555
20556 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
20557
20558         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
20559         to lookup the implmap row for a P/Invoke method.
20560         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
20561         P/Invoke method from the runtime on an as needed basis.
20562
20563 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
20564
20565         * metadata.c (mono_metadata_parse_signature): impl.
20566
20567 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20568
20569         * class.c: handle .pack directive.
20570
20571 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
20572
20573         * object.c: initialize static fields with RVA data.
20574
20575 2002-05-25  Martin Baulig  <martin@gnome.org>
20576
20577         * debug-symfile.c
20578         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
20579
20580 2002-05-24  Martin Baulig  <martin@gnome.org>
20581
20582         * debug-symfile.c
20583         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
20584         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
20585         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
20586
20587 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
20588
20589         * object.c: special case string ctros in invoke.
20590         * gc.c: silly whitespace changes.
20591
20592 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
20593
20594         * threadpool.[ch]: impl. a threadpool that can
20595         be used by mint and mono.
20596
20597 2002-05-22  Martin Baulig  <martin@gnome.org>
20598
20599         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
20600         The first argument is now a `MonoReflectionModuleBuilder *', the return
20601         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
20602         `methods' field to get the method builder.  The `token' argument is the
20603         unfixed token.
20604
20605         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
20606         invalid characters instead of g_assert_not_reached()ing.  This seems
20607         to be the behaviour of mscorlib.
20608
20609 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
20610
20611         * object.c (mono_runtime_invoke_array): applied patch from Rachel
20612         Hestilow to fix bug #25104
20613
20614 2002-05-21  Martin Baulig  <martin@gnome.org>
20615
20616         * debug-symfile.c (mono_debug_find_source_location): New function.
20617         Looks up an IL offset in the line number table and returns the source
20618         location as a string.
20619
20620 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20621
20622         * icall.c:
20623         (mono_double_ToStringImpl): changed %f by %g until we have something
20624         better.
20625
20626 2002-05-21  Nick Drochak  <ndrochak@gol.com>
20627
20628         * icall.c : Use different name for Math.Pow's icall.  Needed to check
20629         parameters first in C#.
20630
20631 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20632
20633         * icall.c, reflection.h: added icall to get info about an event.
20634
20635 2002-05-20  Radek Doulik  <rodo@ximian.com>
20636
20637         * object.c (mono_value_box): don't use memcpy for boxing on BIG
20638         endian
20639         (mono_value_box): don't use memcpy for small sizes on
20640         architectures with unaligned access
20641
20642 2002-05-20  Martin Baulig  <martin@gnome.org>
20643
20644         * reflection.c (mono_reflection_setup_internal_class): Don't crash
20645         if `tb->parent == NULL'.
20646         (mono_reflection_create_internal_class): New function.  This is
20647         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
20648         for enum types.
20649
20650         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
20651         New interncall.
20652
20653 2002-05-19  Martin Baulig  <martin@gnome.org>
20654
20655         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
20656         argument to get the length, don't default to the array length.
20657
20658 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
20659
20660         * assembly.c (mono_assembly_setrootdir): New function used to
20661         override the MONO_ASSEMBLIES directory.
20662
20663 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20664
20665         * icall.c: ValueType_GetHashCode() initialize local var.
20666
20667 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20668
20669         * reflection.c: sort custom attributes table.
20670
20671 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20672
20673         * reflection.c: support named args in custom attributes (write support).
20674
20675 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
20676
20677         * reflection.c: fix finally position calculation.
20678
20679 2002-05-15  Radek Doulik  <rodo@ximian.com>
20680
20681         * reflection.c: fixed endianess at many places
20682
20683         * icall.c (ves_icall_InitializeArray): comment out debug msg
20684
20685 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
20686
20687         * object.c (mono_unhandled_exception): new function to handle
20688         unhandled exceptions.
20689         (mono_unhandled_exception): call the UnhandledException event.
20690         (mono_runtime_delegate_invoke): impl.
20691
20692 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
20693
20694         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
20695         returns the RVA, not the direct pointer to the data. Handle the case
20696         when the class size is fixed.
20697
20698 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
20699
20700         * reflection.c: fix some endianess issues.
20701
20702 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
20703
20704         * object.c (mono_runtime_invoke): is now able to catch exceptions.
20705
20706         * threads.c (mono_thread_init): added a callback which is invoked
20707         at thread start.
20708
20709 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
20710         
20711         * icall.c: make GetHashCode return non-negative values.
20712
20713 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
20714
20715         * object.c, icall.c, gc.c: revert to address-based hashcode.
20716
20717 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
20718
20719         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
20720
20721 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20722
20723         * icall.c, class.c: special case <Module>.
20724
20725 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
20726
20727         * icall.c: fix bug in GetNow().
20728
20729 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
20730
20731         * object.c (mono_runtime_class_init): make sure that we call all
20732         static class constructors.
20733
20734 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20735
20736         * reflection.c: sort methodsemantics table.
20737
20738 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
20739
20740         * reflection.h, reflection.c: honour init locals setting.
20741
20742 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
20743
20744         * icall.c: copied Double ToStringImpl for Single ToStringImpl
20745
20746 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
20747
20748         * reflection.c: support ContructorBuilders in attribute blob creation.
20749
20750 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20751
20752         * reflection.c: some changes to build a binary that can be run
20753         directly in windows.
20754
20755 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
20756
20757         * loader.c: print a big message when an icall can't be found.
20758
20759 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20760
20761         * string-icalls.c: fix bug 24248.
20762
20763 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
20764
20765         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
20766         icall.c, reflection.h: separate assembly loading by pathname and by
20767         assembly name. Use the MONO_PATH env var to search for assemblies.
20768
20769 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20770
20771         * assembly.c, image.h: add some support for assemblies
20772         with multiple modules.
20773         * class.c, class.h: export mono_class_from_typeref().
20774         * loader.c: remove duplicated code and use mono_class_from_typeref(),
20775         instead.
20776
20777 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20778
20779         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
20780         documentation says (the ECMA one is correct).
20781
20782 2002-05-02  Dick Porter  <dick@ximian.com>
20783
20784         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
20785         Don't name the synchronisation mutex.
20786
20787 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
20788
20789         * rand.c
20790         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
20791         Make the prototypes match.
20792         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
20793         Same.
20794
20795         * icall.c
20796         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
20797         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
20798         all systems have tm.tm_zone, so use strftime() with %Z to print
20799         the timezone abreviation into a temp string.
20800
20801         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
20802         rather than mono_array_addr() on a MonoString on Big Endian
20803         machines.
20804
20805 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
20806
20807         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
20808         fix bug 24041
20809
20810 2002-04-30  Dick Porter  <dick@ximian.com>
20811
20812         * socket-io.c: Cope with SOCKET being an integer rather than a
20813         pointer now.
20814
20815         * threads.c: Added Thread_free_internal, to deal with thread
20816         handle cleanup.  Moved calls to handle_store() and handle_remove()
20817         to start_wrapper(), so each can only be called once.  Allocate
20818         synchronisation blocks with GC_malloc(), and use GC finalisation
20819         to close the handles.
20820
20821         * icall.c: added System.Threading.Thread::Thread_free_internal
20822
20823 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20824
20825         * icall.c: support Environment.Exit, CommandLineArgs().
20826
20827 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20828
20829         * object.c, object.h: added mono_runtime_run_main () and
20830         mono_runtime_get_main_args () for use in System.Environment.
20831
20832 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20833
20834         * gc.c: fix thinko, enable actual finalization since the jit is now
20835         fixed.
20836
20837 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20838
20839         * gc.c, object.c: take into account that an object may be offset wrt the address
20840         returned by GC_malloc().
20841
20842 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
20843
20844         * image.c: handle files without entries in the assembly table (modules).
20845
20846 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
20847
20848         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
20849         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
20850         allowed to be null when it's System.Object class setup.
20851
20852 2002-04-27  Martin Baulig  <martin@gnome.org>
20853
20854         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
20855         if `tb->parent == NULL' rather than crashing.
20856
20857 2002-04-28  Nick Drochak  <ndrochak@gol.com>
20858
20859         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
20860         calling acos() where asin() should have been called.
20861
20862 2002-04-26  Martin Baulig  <martin@gnome.org>
20863
20864         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
20865         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
20866         there's a subdirectory called `System', but we don't want to read that
20867         subdirectory as an assembly.
20868
20869 2002-04-25  Martin Baulig  <martin@gnome.org>
20870
20871         * debug-symfile.c: Reflect latest MonoString changes.
20872
20873 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20874
20875         * rand.c, rand.h: instance method icalls need to have an explicit
20876         this pointer as first argument in the C implementation.
20877
20878 2002-04-25  Nick Drochak <ndrochak@gol.com>
20879
20880         * icall.c: Fix typo in map for GetNonZeroBytes
20881
20882 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20883
20884         * string-icalls.c : String does now passes unit tests without any 
20885         errors, the following changes has been made:
20886         
20887         Implemented replace methods.
20888         Renaming of methods to (try) follow the standard.
20889         Fixed compare ordinal
20890         Made all memory allocated directly to function instead of via icall function.
20891         Small performance fix in is_in_array function
20892                         
20893  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
20894
20895         c (mono_string_Internal_ctor_charp_int_int):
20896         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
20897         sindex < 0, throw ArgumentOutOfRangeException instead of
20898         ArgumentNullException.
20899
20900         Added new check for length == 0, however
20901         I need to make it return String.Empty from the C code.
20902         
20903         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
20904         that calculate the length for us here.
20905         
20906         (mono_string_Internal_ctor_sbytep_int_int): Replaced
20907         mono_string_new_utf16 with mono_string_new, since value is utf8.
20908
20909 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20910
20911         * object.c: register the object for finalization if needed.
20912         Allocate one more char in the string for the terminating 0 char.
20913
20914 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20915
20916         * class.c, class.h, image.c: check if a type implemenst a destructor.
20917         Use the proper key for array class lookups.
20918         * icall.c: register the icalls in the System.GC class.
20919         * gc.c, gc.h: GC-related functions and icalls.
20920
20921 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20922
20923         * icall.c:
20924         * socket-io.c:
20925         * unicode.c: free some strings gotten from mono_string_to_utf8 and
20926         changed a couple of free () by g_free ().
20927
20928         * decimal.c: one-liner in the comments for decimal2string ().
20929
20930 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20931
20932         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
20933
20934 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20935
20936         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
20937         * object.c (mono_runtime_invoke_array) : handle null in params
20938
20939 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20940
20941         * string-icalls.c: fixed bug in split (one off bug)
20942
20943 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20944
20945         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
20946         * icalls.c: added String::Equals as internal method
20947
20948 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20949
20950         * threads.c: fixed bug in the double interlocked functions
20951
20952 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
20953
20954         * threads.c: implemented all of the new interlocked icalls.
20955         * string-icalls.c: fix a bug in insert.
20956         * icalls.c: added the icalls for interlocked, removed old string functions.
20957         
20958 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
20959
20960         * loader.c: fix off-by-one error when reading argument names.
20961
20962 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20963
20964         * profiler.c: win32 counter implementation (untested).
20965         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
20966         (the latter needs testing and more complete impl. from win32 folks).
20967
20968 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
20969
20970         * object.c: mono_array_new_full workaround mono_array_class_get
20971         problem.
20972
20973 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20974
20975         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
20976         * object.h (mono_string_chars): Changed casting type.
20977
20978 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20979
20980         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
20981                            method signatures to use gunichar2 instead of gint16.
20982
20983 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
20984
20985         * object.h, object.c: domain-specific versions of mono_object_new and
20986         mono_array_new.
20987
20988 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
20989
20990         * object.c: changed String layout
20991
20992         * string-icalls.c (mono_string_Internal_ctor_chara): added
20993         internal string constructors.
20994
20995 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
20996
20997         * threads.c: pass 'this' to the thread start routine.
20998
20999 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21000
21001         * string-icalls.c: fix IndexOf and LastIndexOf. Now
21002         InternalCompareStr don't call twice mono_string_cmp_char for the last
21003         character. Improved performance in mono_string_cmp_char.
21004
21005 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
21006
21007         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
21008         code into its own library: libmonoruntime.
21009
21010 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
21011
21012         * object.h, object.c: changed array format so that szarrays do not
21013         require a bounds structure.
21014         * icall.c, appdomain.c: support for new szarray format.
21015
21016 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
21017
21018         * metadata.c: compare also the retuns type when comparing signatures:
21019         we didn't do this as an optimization since really overloaded methods
21020         must differ also in the arguments, but this doesn't work with
21021         low-level IL code (or when using explicit conversion operators: see
21022         bug#23498 for an example).
21023
21024 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
21025
21026         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
21027
21028 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
21029
21030         * icall.c: make MonoType::GetElementType its own icall.
21031
21032 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
21033
21034         * icall.c: remove MonoMethod_get_Name().
21035         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
21036         object.
21037
21038 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
21039
21040         * string-icalls.c: optimized a few methods.
21041
21042 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
21043
21044         * icall.c: added all new string internal calls
21045         * string-icalls.c: added, new string internal call implementation.
21046         * object.c: added mono_string_new_size for allocating a string a size
21047
21048 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
21049
21050         * object.c (mono_object_isinst): use the same code as in the
21051         optimized x86 version.
21052
21053 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
21054
21055         * profiler.c: TSC-based timer code (faster and more accurate).
21056         Not hooked up in configure, yet (set USE_X86TSC to 1).
21057
21058 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
21059
21060         * profiler.c, profiler.h: track time spent compiling methods.
21061         * threads.c: track thread creation/destruction.
21062
21063 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
21064
21065         * profiler.c, profiler.h, profiler-private.h: profiling interface
21066         and sample implementation. Moved here so that it can be used also by
21067         the jit.
21068
21069 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
21070
21071         * reflection.c, reflection.h: keep types and other handles separate in
21072         the hash tables for referred tokens. Add guid for modules.
21073
21074 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
21075
21076         * assembly.c: fix bugs found with valgrind.
21077         * metadata.h, metadata.c: added mono_metadata_guid_heap().
21078
21079 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
21080
21081         * threads: added icall support for getting current domain for
21082                    the thread.
21083  
21084 2002-04-13  Martin Baulig  <martin@gnome.org>
21085
21086         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
21087         (MonoDebugVarInfo): Added `index' field for register based addresses.
21088         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
21089         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
21090         `MonoDebugVarInfo *params' and `guint32 this_offset' with
21091         `MonoDebugVarInfo *this_var'.
21092
21093         * debug-symfile.c (relocate_variable): New static function to write
21094         a location description for a local variable or method parameter.
21095
21096 2002-04-12  Martin Baulig  <martin@gnome.org>
21097
21098         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
21099         stack offset and begin/end scope address of a local variable.
21100         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
21101         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
21102         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
21103
21104         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
21105         Added new relocation types for start/end scope of a local variable.
21106
21107 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
21108
21109         * object.h: add mono_object_domain() macro.
21110         * reflection.c: handle typespecs.
21111         * icall.c: MonoMethod::get_Name() implementation.
21112
21113 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
21114
21115         * icall.c: String::GetHashCode() icall implementation.
21116
21117 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
21118
21119         * icall.c: String::IndexOfAny icall.
21120         * object.c, object.h: make array->max_length more useful.
21121         Intrduced mono_object_class() and mono_string_length() macros.
21122
21123 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21124
21125         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
21126         instead of g_unichar_isdigit.
21127
21128 2002-04-11  Nick Drochak  <ndrochak@gol.com>
21129
21130         * icall.c: Implement a simple Double.ToString().
21131
21132 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
21133
21134         * appdomain.h: only io-layer.h is supposed to be included.
21135         * icall.c: explicitly import environ. Fix warning.
21136
21137 2002-04-10  Nick Drochak  <ndrochak@gol.com>
21138
21139         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
21140                 return true even if it's not Daylight Savings time.
21141                 Only return false for the case where the function isn't
21142                 implemented for a plaform (read Windows).
21143
21144 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
21145
21146         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
21147         data with a mutex.
21148
21149 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
21150
21151         * mempool.c (mono_mempool_alloc): only use g_malloc when
21152         absolutely necessary.
21153
21154 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
21155
21156         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
21157
21158         * class.c (mono_class_vtable): use domain mempool to allocate vtable
21159         (mono_class_proxy_vtable): use domain mempool
21160
21161 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
21162
21163         * appdomain.h, appdomain.c: split initialization that requires the
21164         execution engine support into mono_runtime_init().
21165
21166 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
21167
21168         * class.c (mono_class_init): don't include vtable inside MonoClass
21169         to save some memory, gather some statistics.
21170         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
21171
21172 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
21173
21174         * icall.c: internalcall implementation for ValueType.Equals().
21175
21176 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
21177
21178         * object.c (mono_message_init): moved 
21179         (mono_runtime_exec_main): new arch. independent impl.
21180         (mono_runtime_invoke_array): new method - like
21181         mono_runtime_invoke, but you can pass an array of objects.
21182         (mono_remoting_invoke): new arch. independent impl.
21183         (mono_message_invoke): new arch. independent impl.
21184         (mono_runtime_class_init): new arch. independent impl.
21185         (mono_runtime_object_init): new arch. independent impl.
21186
21187 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
21188
21189         * metadata.c, object.c, reflection.c: documented the exported
21190         functions.
21191
21192 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
21193
21194         * icall.c: simpler code to pass the assembly builder data to corlib.
21195         Implement GetNestedTypes() internalcall.
21196
21197 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
21198
21199         * class.c: warn if a type can't be loaded.
21200
21201 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
21202
21203         * image.h: typedef MonoImageOpenStatus
21204         * types.h: removed unused file
21205         
21206 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
21207
21208         * icall.c: Enum_ToObject accepts enum value arguments.
21209
21210 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
21211
21212         * class.c: move initialization of properties, events and nested
21213         classes, so that they happen for interfaces, too.
21214
21215 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
21216
21217         * icall.c: cleanup some ugly casts in Array_SetValue*.
21218
21219 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
21220
21221         * icall.c: the values array fro enums is of the correct type, now.
21222         Implement (correctly) getFullName instead of assQualifiedName for
21223         MonoType.
21224         * reflection.h, reflection.c: added mono_type_get_name ().
21225
21226 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
21227
21228         * assembly.c, image.h: for each MonoImage, record from wich assembly
21229         it was loaded.
21230         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
21231         Make Type.Assembly work.
21232
21233 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
21234
21235         * debug-symfile.h: use char* instead of gpointer to avoid
21236         unnecessary casts.
21237
21238         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
21239
21240         * icall.c (ves_icall_InternalExecute): impl. FielSetter
21241         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
21242
21243 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
21244
21245         * icall.c (mono_message_init): impl. (code cleanup)
21246         (ves_icall_InternalExecute): impl. FieldGetter
21247
21248         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
21249         defined we call all (non-static)methods through the vtable. 
21250
21251 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
21252
21253         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
21254         finalizer even though the memory is still referenced (and the chunk of
21255         memory is not freed).
21256
21257 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
21258
21259         * assembly.c: fix brokeness.
21260
21261 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
21262
21263         * class.c: kill some warnings. Check explicit interface method
21264         implementation also without considering the namespace.
21265         Load also literal strings in static class data.
21266
21267 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
21268
21269         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
21270         (default_assembly_name_resolver): Make the resolver take the
21271         "base" directory where the assembly was originally defined, so we
21272         can load DLLs that are in the same directory as the assembly that
21273         is being referenced.
21274
21275 2002-03-28  Dick Porter  <dick@ximian.com>
21276
21277         * file-io.h: 
21278         * file-io.c:
21279         * socket-io.c: 
21280         * unicode.h: 
21281         * unicode.c: Warning cleanups
21282
21283 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
21284
21285         * object.h, reflection.h: use the correct type instead of MonoObject.
21286
21287 2002-03-28  Martin Baulig  <martin@gnome.org>
21288
21289         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
21290         (mono_debug_update_symbol_file): Initialize classes if necessary.
21291
21292 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
21293
21294         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
21295         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
21296
21297 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
21298
21299         * assembly.h: fix function prototype.
21300         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
21301         * mono-endian.h: use const cast.
21302
21303 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
21304
21305         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
21306
21307 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
21308
21309         * loader.c: don't assert when a typeref can't be loaded, give
21310         a chance to the runtime to trow an exception instead.
21311         * loader.h: fix warning.
21312
21313 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
21314
21315         * class.c (mono_class_proxy_vtable): added proxy support
21316
21317 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
21318
21319         * icall.c: removed last of PAL calls, added System.Environment
21320         * file-io.h, file-io.c: MonoIO implementation
21321         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
21322
21323 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
21324
21325         * appdomain.c: do not use the byte marker in ldstr table lookup.
21326         * debug-helpers.c: allow two ':' to separate class and method name.
21327         * object.c: allocate arrays bounds with the GC, too.
21328         * verify: add a few more checks.
21329
21330 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
21331
21332         * reflection.c: output also literal strings. Allocate parameter data
21333         with GC_malloc() (thanks, Martin, for catching this!).
21334
21335 2002-03-26  Martin Baulig  <martin@gnome.org>
21336
21337         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
21338         include the `this' offset in the `param_offsets'.
21339
21340 2002-03-25  Martin Baulig  <martin@gnome.org>
21341
21342         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
21343         mono_debug_get_class() function to get the classes. Added new
21344         relocation types for arrays and strings.
21345         (mono_debug_get_class): New static function to search in all
21346         referenced assemblies for a metadata token.
21347
21348         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
21349
21350 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
21351
21352         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
21353         hold gc-allocated objects. Make the string heap a stream like the
21354         others. Removed duplicated code when writing stream info.
21355         Added asserts to catch possible buffer overflows. Set the sorted map
21356         for tables that need sorting. Added some documentation.
21357
21358 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
21359
21360         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
21361         for interned strings and vtables.
21362
21363 2002-03-24  Martin Baulig  <martin@gnome.org>
21364
21365         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
21366         it in the array since it was created with g_slist_prepend().
21367
21368 2002-03-24  Martin Baulig  <martin@gnome.org>
21369
21370         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
21371         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
21372         (mono_debug_method_from_token): Renamed to
21373         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
21374         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
21375
21376         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
21377         relocation types.
21378
21379         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
21380
21381 2002-03-24  Martin Baulig  <martin@gnome.org>
21382
21383         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
21384         (mono_debug_method_from_token): New func.
21385
21386         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
21387         New interncall, calls mono_debug_local_type_from_signature().
21388         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
21389         calls mono_debug_method_from_token().
21390
21391 2002-03-23  Martin Baulig  <martin@gnome.org>
21392
21393         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
21394         specifies the number of bytes to be converted, not the array size.
21395         Return the number of chars, not the number of bytes.
21396         (ves_icall_iconv_get_chars): The `byteCount' argument
21397         specifies the number of bytes to be converted, not the array size.
21398
21399 2002-03-23  Martin Baulig  <martin@gnome.org>
21400
21401         * reflection.h (MonoReflectionSigHelper): New type.
21402
21403         * reflection.c (mono_reflection_sighelper_get_signature_local),
21404         (mono_reflection_sighelper_get_signature_local): New functions.
21405
21406         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
21407         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
21408         interncalls.
21409
21410 2002-03-23  Martin Baulig  <martin@gnome.org>
21411
21412         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
21413         is_writeable is set.
21414         (mono_raw_buffer_update): New function to write the modified map
21415         back to disk.
21416
21417         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
21418
21419         * debug-symfile.c (mono_debug_update_symbol_file): Call
21420         mono_raw_buffer_update() when done writing.
21421
21422 2002-03-23  Martin Baulig  <martin@gnome.org>
21423
21424         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
21425
21426         * debug-symfile.c: Added support for arguments and local variables.
21427
21428 2002-03-23  Dick Porter  <dick@ximian.com>
21429
21430         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
21431         protected by ifdefs, hence breaking the w32 build.
21432
21433 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21434
21435         * object.c: implement is_interned() the right way.
21436
21437 2002-03-21  Martin Baulig  <martin@gnome.org>
21438
21439         * debug-symfile.[ch]: New files to handle debugging information
21440         files. There's also support to dynamically update these symbol
21441         files to include machine dependent information.
21442
21443 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
21444
21445         * threads.c (mono_thread_create): new function to create thread
21446         from C
21447
21448 2002-03-20  Martin Baulig  <martin@gnome.org>
21449
21450         * icall.c (ves_icall_InternalInvoke): Create a new object if the
21451         method is a constructor.
21452         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
21453         points to ves_icall_InternalInvoke().
21454
21455 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
21456
21457         * file-io.c: Flush shouldn't throw exceptions.
21458
21459 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
21460
21461         * file-io.c: FileStream flush support; FileSetLength now
21462         restores file pointer.
21463
21464 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
21465
21466         * class.c: set image for pointer classes.
21467
21468 2002/03/19  Nick Drochak <ndrochak@gol.com>
21469
21470         * sysmath.c: Forgot one.
21471
21472 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
21473
21474         * sysmath.c: Avoid redefining existing names.
21475
21476 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
21477
21478         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
21479         handled by runtime as icall rather than dllimport from libm.so
21480         * file-io.c, file-io.h: fixed handle argument type.
21481
21482 2002-03-18  Dick Porter  <dick@ximian.com>
21483
21484         * reflection.c (mono_image_get_type_info): rename interface to
21485         iface, because of "#define interface struct" on windows.
21486
21487 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
21488
21489         * class.c, class.h: rename and export mono_ptr_class_get().
21490         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
21491         * reflection.c, reflection.h, icall.c: better/saner type name
21492         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
21493         method signatures.
21494
21495 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
21496
21497         * class.c (mono_class_init): removed hardcoded GHC_SLOT
21498
21499         * icall.c (ves_icall_InternalInvoke): impl.
21500
21501 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21502
21503         * reflection.c: output the interface map table, too.
21504
21505 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
21506
21507         * class.c (class_compute_field_layout): separate computation of 
21508         static field layout
21509
21510 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
21511
21512         * icall.c: added System.Buffer support.
21513         * file-io.c: moved file icalls from PAL to FileStream.
21514
21515 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
21516
21517         * icall.c (ves_icall_System_Object_GetHashCode): impl.
21518
21519 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
21520
21521         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
21522
21523 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21524
21525         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
21526
21527 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
21528
21529         * debug-helpers.{c,h}: moved here from monograph some useful functions
21530         to locate a method by name/signature in a class or image. Included
21531         also a small and flexible IL disassembler.
21532
21533 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21534
21535         * reflection.c: fixup tokens in methods with small header size, too.
21536
21537 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
21538
21539         * object.c (mono_string_to_utf8): remove assert(!error), instead
21540         print a warning. 
21541
21542 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
21543
21544         * icall.c: update to the new mono_Array_class_get interface.
21545
21546 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
21547
21548         * appdomain.c, object.c: Boehm-GC enable.
21549         * icall.c: make get_data_chunk() support split data requests.
21550         Ensure a class is initialized in more cases. Return only the first
21551         property found in GetProperties() or the compiler gets confused. 
21552         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
21553         * reflection.h, reflection.c: add fixup mechanism for field and method
21554         tokens. Initialize assembly->typeref in a single place. Output
21555         properties after events. Support custom attributes for events, too.
21556         Typo fix for paramter custom attrs.
21557
21558 2002-03-07  Martin Baulig  <martin@gnome.org>
21559
21560         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
21561
21562 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
21563
21564         * class.c (mono_array_class_get): fix. for multi. dim. arrays
21565
21566 2002-03-06  Martin Baulig  <martin@gnome.org>
21567
21568         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
21569         non-zero lower bounds. See testcases #F10-#F13.
21570
21571 2002-03-05  Martin Baulig  <martin@gnome.org>
21572
21573         * exception.c (mono_get_exception_argument_out_of_range): New exception.
21574
21575         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
21576         ves_icall_System_Array_GetValue(), only calculate the absolute array position
21577         here.
21578         (ves_icall_System_Array_SetValue): Likewise.
21579         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
21580         as argument and does the actual work. This function is used when copying a
21581         multi-dimensional array.
21582         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
21583         now do all the widening conversions of value types.
21584         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
21585
21586 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21587
21588         * class.c: remove some magic numbers and use the smbolic names,
21589         instead. Added init_events() to load event info at class init time.
21590         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
21591         and mono_metadata_methods_from_event().
21592         * reflection.h, reflection.c: added support for writing out the evnets
21593         related information.
21594
21595 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
21596
21597         * reflection.h, icall.c: use a different method (GetInterfaces)
21598         to gather interface info and add isbyref, isprimitive and
21599         ispointer to the ves_icall_get_type_info() return value.
21600
21601 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
21602
21603         * class.h: stared adding support for events.
21604         * icall.c: split find_members implementation. Added debug icall to get
21605         the address of an object.
21606         * reflection.c: handle TypeBuilders in mono_type_get_object().
21607
21608 2002-03-01  Martin Baulig  <martin@gnome.org>
21609
21610         * icall.c (ves_icall_System_Array_GetLength): This must throw an
21611         ArgumentOutOfRangeException(), not an ArgumentException().
21612         (ves_icall_System_Array_GetLowerBound): Likewise.
21613         (ves_icall_System_Array_GetValue): Improved argument checking.
21614         (ves_icall_System_Array_SetValue): Improved argument checking.
21615
21616 2002-03-01  Martin Baulig  <martin@gnome.org>
21617
21618         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
21619         called with invalid arguments rather than just dying with g_assert().
21620         (ves_icall_System_Array_SetValue): Likewise.
21621         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
21622         raise a NotImplementedException instead.
21623         (ves_icall_System_Array_GetLength): Added argument checking.
21624         (ves_icall_System_Array_GetLowerBound): Added argument checking.
21625
21626 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
21627
21628         * object.h (mono_assert): new macros mono_assert and
21629         mono_assert_not_reached
21630
21631 2002-02-28  Martin Baulig  <martin@gnome.org>
21632
21633         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
21634         and "System::String::IsInterned" to "System::String::_IsInterned".
21635
21636 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
21637
21638         * icall.c: remove hacks for typebuilder. Added icall to create a
21639         modified type from a tybebuilder.
21640         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
21641         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
21642         to create a backing MonoClass for a TypeBuilder.
21643
21644 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21645
21646         * class.c, class.h: more refactoring of class init.
21647         Export mono_class_setup_mono_type() and mono_class_setup_parent().
21648
21649 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
21650
21651         * marshal.c, marshal.h: start of marshaling interface.
21652
21653 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
21654
21655         * icall.c: fix order in assembly qualified name icall.
21656
21657 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
21658
21659         * class.c: do not free str, since we store it in the hash table.
21660         * reflection.h: add label field to MonoILExceptionInfo.
21661         * reflection.c: handle references to more than one assembly. Handle
21662         case when there isn't a module created in the assembly.
21663
21664 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
21665
21666         * class.c: Fix typo. Start refactoring of class init code.
21667
21668 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
21669
21670         * appdomain.c: exit with 1 on error.
21671         * class.c: we already have the name in MonoClassField.
21672         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
21673         MonoStreamHeader instead of an offset of image->raw_metadata.
21674
21675 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
21676
21677         * appdomain.c (mono_init): Be even more descriptive about the error.
21678
21679 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
21680
21681         * appdomain.c: give the user an informative message when corlib can't
21682         be loaded.
21683
21684 2002-02-26  Martin Baulig  <martin@gnome.org>
21685
21686         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
21687         New icall to get the time zone data.
21688
21689 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21690
21691         * reflection.c: set virtual and raw size of section correctly.
21692         * threads.c: transfer domain information to newly created threads.
21693
21694 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
21695
21696         * class.c: when instancing a class in a domain, load the default
21697         vaules for static fields from the constant table. Fix System.Enum to
21698         not be an enum.
21699         * icall.c: implement Object::GetType() internalcall. Implemented
21700         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
21701         Fixed checking of binding flags in find_members().
21702         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
21703         * reflection.c: handle enumerations when writing to the constant
21704         table. Use a different object cache for types.
21705
21706
21707 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
21708
21709         * object.c (mono_object_isinst): fix for arrays
21710
21711         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
21712
21713 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
21714
21715         * object.c: don't use mprotect ()  and fix intern pool hash table
21716         lookup for big endian systems.
21717
21718 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21719
21720         * icall.c: change type_is_subtype_of () signature.
21721
21722 2002-02-21  Mark Crichton  <crichton@gimp.org>
21723
21724         * rand.c, rand.h: Added random number generator for
21725         System.Security.Cryptography classes.
21726
21727         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
21728
21729         * icall.c: Added System.Security.Cryptography calls.
21730
21731 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
21732
21733         * class.c, icall.c, metadata.c: better support for pointer types.
21734         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
21735         * reflection.c: Add support for getting custom attrs for properties
21736         and simplify some code.
21737
21738 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21739
21740         * icall.c: change getToken () and add custom attribute GetBlob()helper
21741         method.
21742         * reflection.h: add custom attrs array to the reflection builder structures.
21743         * reflection.c: encode and emit custom attributes for all the relevant
21744         reflection objects. Cache fieldref and methodref tokens. Change
21745         mono_image_create_token() interface to take a MonoDynamicAssembly.
21746         More complete custom attributes decoder. Load custom attributes for
21747         Assembly, Field, Method and Constructor objects, too. Make the
21748         returned array an Attribute[] one, not object[]. Added
21749         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
21750         custom attribute constructor.
21751
21752 2002-02-20  Dick Porter  <dick@ximian.com>
21753
21754         * icall.c:
21755         * rawbuffer.c:
21756         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
21757         problem code out for now).
21758
21759 2002-02-19  Radek Doulik  <rodo@ximian.com>
21760
21761         * object.c (mono_ldstr): use hash table to avoid multiple swapping
21762
21763 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
21764
21765         * icall.c: register the GetCustomAttributes method.
21766         * object.c, object.h: add mono_string_new_len ().
21767         * reflection.h, reflection.c: added mono_runtime_invoke(),
21768         mono_install_runtime_invoke(). Added
21769         mono_reflection_get_custom_attrs () to load custom attributes and
21770         create the attribute objects.
21771
21772 2002-02-19  Dick Porter  <dick@ximian.com>
21773         * threads-dummy-types.c:
21774         * threads-dummy-types.h:
21775         * threads-dummy.c:
21776         * threads-dummy.h:
21777         * threads-pthread-types.c:
21778         * threads-pthread-types.h:
21779         * threads-pthread.c:
21780         * threads-pthread.h:  Deleted obsolete files
21781
21782 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
21783
21784         * class.c (mono_class_vtable): runtime init the class when we
21785         allocate static class data.
21786
21787         * icall.c (ves_icall_System_Array_SetValue): check for null values.
21788
21789         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
21790         and String - but we will need generic marshalling support in the
21791         future. 
21792         (mono_init): set the domain name in a ms compatible way
21793
21794         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
21795         String[].
21796
21797 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
21798
21799         * object.c (mono_array_clone): use alloca() instead of g_malloc  
21800         for sizes
21801
21802         * appdomain.c (mono_domain_unload): impl.
21803
21804 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21805
21806         * appdomain.c, object.c: fix intern pool implementation.
21807         * class.c: fix alignment code.
21808
21809 2002-02-16  Radek Doulik  <rodo@ximian.com>
21810
21811         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
21812         and s2 > s1, just copy lower bytes to be compatible with little
21813         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
21814         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
21815
21816         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
21817         force big_endian to be 1 for big endian machines 
21818         (ves_icall_iconv_new_decoder): ditto
21819
21820 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
21821
21822         * socket-io.c (convert_sockopt_level_and_name): If the system
21823         doesn't define SOL_IP or SOL_TCP, get them by hand using
21824         getprotobyname() and caching the values (because this could be a
21825         slow operation).
21826         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
21827         Use the appropriate struct when the system does support it. Ie,
21828         not all systems have struct ip_mreqn so use struct ip_mreq when
21829         appropriate.
21830
21831 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
21832
21833         * reflection.c: handle finally clauses.
21834
21835 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
21836
21837         * socket-io.c: use g_snprintf() instead of snprintf.
21838
21839 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
21840
21841         * reflection.c (mono_param_get_objects): Cast second argument to
21842         mono_method_get_param_names to a const char** to silence the
21843         compiler warning.
21844
21845         * appdomain.c (mono_domain_assembly_open): Put parens around the
21846         truth statement in the for-loop.
21847
21848         * unicode.c (iconv_convert): Got rid of a compiler warning about
21849         int i being unused when the system has a new iconv.
21850         (iconv_get_length): Same.
21851
21852         * image.c (load_class_names): Cast the second argument to
21853         g_hash_table_insert() to char* to hush compiler warnings about the
21854         arg being a const.
21855         (mono_image_open): Same here.
21856
21857         * socket-io.c: Don't conditionally include sys/filio.h or
21858         sys/sockio.h here anymore since we now get them from
21859         io-layer/io-layer.h
21860         (inet_pton): If the system doesn't support inet_aton, implement
21861         using inet_addr and also #define INADDR_NONE if it isn't defined
21862         by the system.
21863
21864 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
21865
21866         * metadata.c, metadata.h: added function to get packing and size info
21867         of a typedef.
21868         * reflection.h, reflection.c: handle field RVA data. Save info about
21869         the table layout if needed. Assign typedef indexes to all the types
21870         before dumping the info about them to avoid forward reference problems.
21871
21872 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
21873
21874         * socket-io.c (convert_sockopt_level_and_name): ifdef
21875         SO_ACCEPTCONN because it is not defined on my system (old debian)
21876
21877 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21878
21879         * opcode.c: use stddef.h to get NULL.
21880
21881 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
21882
21883         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
21884         for FIONBIO, FIONREAD and SIOCATMARK.
21885         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
21886         define INADDR_NONE and besides, inet_addr() is deprecated and
21887         should not be used. Use inet_pton() instead - it also has the
21888         added bonus that it can easily handle IPv6 addresses as well.
21889         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
21890
21891 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
21892
21893         * decimal.c: remove _MSC_VER conditional.
21894
21895 2002-02-13  Dick Porter  <dick@ximian.com>
21896
21897         * socket-io.c: 
21898         * icall.c: Internal calls for Blocking, Select, Shutdown,
21899         GetSocketOption and SetSocketOption
21900
21901 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21902
21903         * assembly.cs: better resolver: use it instead of some kludgy
21904         code.
21905
21906 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
21907
21908         * reflection.c: the best way to speed-up the compiler is to avoid
21909         infinite loops.
21910
21911 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
21912
21913         * class.c (mono_class_vtable): changed the object layout
21914         (obj->vtable->class). 
21915         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
21916
21917 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21918
21919         * assembly.c: look for assemblies in the assembly dir, too.
21920
21921 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21922
21923         * class.c: fix thinko in mono_class_from_type().
21924
21925 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21926
21927         * exception.h, exception.c: added TypeLoadException.
21928         * object.h, object.c: added mono_array_clone ().
21929         * icall.c: handle throwOnError in AssemblyGetType().
21930         Added Array.Clone().
21931         * opcode.h, opcode.c: use a single value for the opcode val.
21932         Compile fix for non-gcc compilers.
21933
21934 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
21935
21936         * opcodes.c, opcodes.h: export interesting info about opcodes.
21937
21938 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
21939
21940         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
21941         icalls. 
21942
21943         * class.c (class_compute_field_layout): set element_class for enums
21944         (mono_class_create_from_typedef): set element_class for normal classes
21945
21946         * icall.c (ves_icall_System_Enum_get_value): impl.
21947
21948         * class.c (mono_class_create_from_typedef): do not set valuetype
21949         flag for System.ValueType and System.Enum
21950
21951 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
21952
21953         * unicode.c (iconv_convert): fix big endian problem.
21954
21955 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21956
21957         * class.c: add asserts if we are ever going to scribble over memory.
21958         * socket-io.c: not all systems have AF_IRDA defined.
21959
21960 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
21961
21962         * class.c (class_compute_field_layout): do not consider static
21963         fields to compute alignment
21964
21965 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
21966
21967         * appdomain.c (mono_appdomain_get): impl.
21968         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
21969
21970 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
21971
21972         * icall.c: ignore "file://" prefix when loading an assembly.
21973
21974 2002-01-23  Dick Porter  <dick@ximian.com>
21975
21976         * socket-io.c:
21977         * icall.c:
21978         * Makefile.am: Added socket support
21979
21980 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
21981
21982         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
21983         code back.  This should return the assemblies that are loaded by
21984         the runtime on behalf of an application domain. 
21985
21986         The current implementation is still broken, it just returns every
21987         assembly loaded, but until we get real applications domain this
21988         will do.
21989
21990 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
21991
21992         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
21993         AppDomain object.
21994
21995 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
21996
21997         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
21998         the mono_class_from_name lookup.
21999         (ves_icall_get_parameter_info): ditto.
22000         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
22001         method.
22002         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
22003
22004 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
22005
22006         * class.c: load also nested classes on class init.
22007         System.ValueType instance methods gets passed boxed
22008         values, unless methods in derived classed that get a pointer to the
22009         data.
22010         * icall.c: use better name parsing code in GetType().
22011         * image.c, image.h: add mono_image_loaded ().
22012         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
22013         * reflection.c, reflection.h: added mono_reflection_parse_type().
22014
22015 2002-01-22  Veronica De Santis <veron78@interfree.it>
22016
22017         * icall.c : Added mapping of internal calls for Manual and Auto reset events
22018         * threads.c : Added the implementation of internal calls for events
22019         * threads.h : Added prototypes of internal calls for events
22020         
22021 2002-01-21  Radek Doulik  <rodo@ximian.com>
22022
22023         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
22024
22025 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
22026
22027         * class.c (mono_class_init): set min_align to 1 (instead of 0)
22028         (mono_class_value_size): use min_align
22029
22030 2002-01-20  Dick Porter  <dick@ximian.com>
22031
22032         * threads.h:
22033         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
22034         so it compiles on w32.
22035
22036 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
22037
22038         * metadata.c (mono_type_stack_size): impl.
22039
22040         * class.c (mono_class_get_field): impl. memberref token
22041
22042 2002-01-16 Veronica De Santis <veron78@@interfree.it>
22043
22044         * icall.h : Added the internal calls mapping for CreateMutex_internal
22045                     and ReleaseMutex_internal.
22046         * threads.h : Added the prototype of mutexes internal calls.
22047         * threads.c : Added the implementations of mutexes internal calls.
22048
22049 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
22050
22051         * metaparse.h: removed unused file.
22052         * reflection.c, reflection.h: added stream_data_align () function 
22053         to align data in streams and keep stream aligned. Add support for
22054         exception support in method headers.
22055
22056 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
22057
22058         * unicode.c: make iconv_convert () return the number of bytess written
22059         in the output buffer.
22060
22061 2002-01-15  Dick Porter  <dick@ximian.com>
22062         * threads.c: Make the runtime's idea of infinite timeouts coincide
22063         with the class library's
22064
22065         Fix a particularly egregious bug in mono_thread_cleanup(). That
22066         code was so utterly bogus it must have been written on a Monday.
22067
22068 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
22069
22070         * reflection.h: add subtypes field to TypeBuilder.
22071         * reflection.c: encode constants for literal fields.
22072         Handle subtypes. Fix user string token (and add a zero byte)
22073         at the end.
22074         
22075 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
22076
22077         * class.c (mono_class_init): bug fix: assign slot numbers for
22078         abstract methods.
22079
22080 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
22081
22082         * reflection.c: don't try to output a code RVA for abstract methods.
22083         Small fixes for method header format. Output parameter info to the
22084         ParamDef table. Save method overriding info to MethodImpl table.
22085         Fix property support. Allow typedef.extends to be a type in the
22086         building assembly.
22087         * verify.c: fix off-by-one error.
22088
22089 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
22090
22091         * class.c: fix mono_class_from_mono_type () for szarray types.
22092         Remove unused cache check in mono_class_from_type_spec().
22093         * icall.c: *type_from_name () functions handle simple arrays and byref.
22094         * reflection.c: handle byref and szarray types. Handle methods without
22095         body (gets P/Invoke compilation working). Handle types and fields in
22096         get_token ().
22097         * reflection.h: add rank to MonoTypeInfo.
22098
22099 2002-01-10  Dick Porter  <dick@ximian.com>
22100
22101         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
22102         internal calls
22103
22104 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
22105
22106         * icall.c: initialize class in type_from_handle ().
22107         Loop also in parent classes for get_method ().
22108         * reflection.c: properly encode class and valuetype types.
22109         Start on encoding TypeBuilder types. Handle fieldrefs.
22110         Use correct length when registering a user string.
22111         Handle ConstructorBuilder and MonoMethod in get_token ().
22112         Make mono_type_get_object () aware of cached types.
22113         * object.c: back out change to mono_string_new ().
22114
22115 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
22116         * object.c: mono_string_new should return a NULL when the string 
22117         passed in is NULL -- not try to deference it.
22118         
22119 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
22120
22121         * icall.c: hack to make IsSubType work for TypeBuilders.
22122         * reflection.c: emit constructors before methods.
22123         Retrieve param names in mono_param_get_objects().
22124
22125 2002/01/05  Nick Drochak  <ndrochak@gol.com>
22126
22127         * Makefile.am: fix list of headers and sources so automake 1.5
22128         doesn't complain. Removed \# at end of list.
22129
22130 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
22131
22132         * reflection.c: get token for a method ref. Set return type of
22133         constructor to void.
22134         * loader.c: debug message.
22135         * class.c: typo fix.
22136
22137 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
22138
22139         * icall.c: fix array init with rank > 1. FindMembers
22140         loops in parent class as well.
22141         * image.c: do not insert nested types in name cache.
22142         * reflection.c: warning fix.
22143         * reflection.h: add override method (for interface impl).
22144
22145 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
22146
22147         * metadata.c: fix customattr decoding.
22148
22149 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
22150
22151         * rawbuffer.cs: Added native Win32 implementation, avoids using
22152         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
22153
22154 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
22155
22156         * class.c: make the low-level routines handle the cache.
22157
22158 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
22159
22160         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
22161
22162 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
22163
22164         * class.c: fix mono_array_element_size() for objects.
22165         * class.h, class.c: add properties to MonoClass and load them
22166         at init time.
22167         * icall.c: check with isinst() when assigning a value to an array
22168         instead of requiring the classes to match exactly.
22169         Implemented icall for System.Type::GetType().
22170         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
22171         enums. Handle bindingflags when looking for methods and fields.
22172         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
22173         and mono_metadata_methods_from_property().
22174         * reflection.h, reflection.c: added structures for propreties,
22175         parameters and enums. Implemented mono_property_get_object() and
22176         mono_param_get_objects().
22177
22178 2001-12-18  Dick Porter  <dick@ximian.com>
22179
22180         * file-io.c: Use mono_string_to_utf16() instead of
22181         mono_string_chars()
22182
22183         * object.c: Added mono_string_to_utf16(), which copies the non
22184         NULL-terminated MonoString into a new double-null-terminated
22185         buffer.
22186
22187 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
22188
22189         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
22190
22191 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
22192
22193         * file-io.c: raise exceptions if handle is invalid.
22194
22195 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
22196
22197         * assembly.c: yet another check for mscorlib.
22198         * class.c, class.h: load nesting info for classes.
22199         * icall.c: many new functions to support the Reflection classes.
22200         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
22201         * reflection.h, reflection.c: mono_image_create_token(),
22202         mono_assembly_get_object(), mono_type_get_object(),
22203         mono_method_get_object(), mono_field_get_object(): methods to return
22204         objects that parallel the C representation of assemblies, types,
22205         methods, fields.
22206
22207 2001-12-11  Dick Porter  <dick@ximian.com>
22208
22209         * icall.c:
22210         * file-io.c: Internal calls for file IO.
22211
22212 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
22213
22214         * tabledefs.h: missing FileAttributes.
22215         * verify.h, verify.c: use is_valid_string () to simplify and check for
22216         valid strings more correctly. Fix warnings and speeling.
22217         Check more tables: Filed, File, ModuleRef, StandAloneSig.
22218         Check code: branches, maxstack, method calls.
22219
22220 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
22221
22222         * object.c (mono_object_allocate): removed static, so that the jit
22223         can allocate value types.
22224
22225         * icall.c (ves_icall_System_DateTime_GetNow): impl.
22226
22227 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
22228
22229         * class.c: init enum types right away and register the
22230         token->MonoClass map in mono_class_create_from_typedef ().
22231         * verify.h, verify.c: first cut of the verifier.
22232         * pedump.c: add --verify switch to verify metadata tables.
22233         * tabledefs.h: add some missing enums.
22234
22235 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
22236
22237         * class.c (mono_install_runtime_class_init): impl.
22238         (mono_class_init): renamed mono_class_metadata_init to
22239         mono_class_init, also removed the metadata_inited flag
22240
22241         * object.c (mono_object_isinst): use faster algorithm
22242
22243 2001-11-30  Radek Doulik  <rodo@ximian.com>
22244
22245         * mono-endian.h: reverted last change
22246         added function prototypes
22247
22248         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
22249         add mono-endian.c back
22250
22251         * mono-endian.c: returned back, as Paolo pointed out, it's needed
22252         for unaligned access, I've mistaked it with endianess. I am
22253         sorry.
22254         (mono_read16): fix reverted endianess
22255         (mono_read64): ditto
22256         (mono_read32): ditto
22257
22258 2001-11-30  Dick Porter  <dick@ximian.com>
22259
22260         * exception.c: Implement mono_exception_from_name()
22261
22262 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
22263
22264         * metadata.h, metadata.c: remove params_size and locals_size and their
22265         calculation from the metadata code: they are only usefult to the
22266         interp.
22267
22268 2001-11-29  Radek Doulik  <rodo@ximian.com>
22269
22270         * object.c (mono_ldstr): swap bytes here, it's probably not the
22271         best place, but works for me now, I'll redo it once I know mono
22272         better, also note that I add PROT_WRITE and don't reset back, also
22273         note that it's only affects big endians, so x86 should be OK
22274
22275         * mono-endian.h (read16): use just glib macros for both endians
22276
22277         * mono-endian.c: removed as glib macros are used in in
22278         mono-endian.h so we don't need to care about endianess for read
22279         macros as glib does that for us already
22280
22281 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
22282
22283         * class.h, class.h: take minimum alignment into consideration so
22284         that the fields of a class remain aligned also when in an array.
22285
22286 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
22287
22288         * loader.h, loader.c: add mono_method_get_param_names().
22289         * class.c: 0-init class fields.
22290
22291 2001-11-26  Dick Porter  <dick@ximian.com>
22292
22293         * icall.c:
22294         * threads-types.h:
22295         * threads.c: New file that handles System.Threading on all platforms
22296
22297         * object.c: 
22298         * object.h: Remove the synchronisation struct from MonoObject,
22299         replace it with a pointer that gets initialised on demand
22300
22301         * Makefile.am: Replace all the system-specific threading code with
22302         a single file that uses the new wrapper library
22303
22304 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
22305
22306         * class.c, class.h: add mono_install_trampoline() so that the runtime
22307         can register a function to create a trampoline: removes the ugly
22308         requirement that a runtime needed to export arch_create_jit_trampoline.
22309         * object.h, object.c: added mono_install_handler() so that the runtime
22310         can install an handler for exceptions generated in C code (with
22311         mono_raise_exception()). Added C struct for System.Delegate.
22312         * pedump.c: removed arch_create_jit_trampoline.
22313         * reflection.c: some cleanups to allow registering user strings and
22314         later getting a token for methodrefs and fieldrefs before the assembly
22315         is built.
22316         * row-indexes.h: updates and fixes from the new ECMA specs.
22317
22318 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
22319
22320         * class.h, class.c: add enum_basetype field to MonoClass.
22321         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
22322         to get index in the constant table reated to a field, param or
22323         property.
22324         * reflection.h, reflection.c: handle constructors. Set public-key and
22325         version number of the built assembly to 0.
22326         * row-indexes.h: update from new ECMA spec.
22327
22328 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
22329
22330         * class.h, class.c: add a max_interface_id to MonoClass.
22331         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
22332         since it's used to do that. Added mono_type_type_from_obj().
22333         Make GetType() return NULL instead of segfaulting if the type was not
22334         found. Handle simple arrays in assQualifiedName.
22335         * object.h: add a struct to represent an Exception.
22336         * reflection.c: output call convention in method signature.
22337         Add code to support P/Invoke methods and fixed offsets for fields.
22338
22339 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
22340
22341         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
22342         the value.
22343         * icall.c: use mono_array_addr instead of array->vector: fixes the
22344         reflection image writing.
22345         * reflection.c: init call convention byte to 0 in method signature.
22346         Encode the property signature. Don't output property-related methods
22347         twice. Really process the properties for a type (don't cast a field to
22348         a property, my mom always told me that).
22349         Fix 64 bit issues in pointer alignment in a different and more
22350         readable way.
22351
22352 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
22353
22354         * loader.h: Removed type class from MonoDefaults, added monotype
22355
22356         * loader.c: Loaded MonoType, removed loading of Type
22357
22358         * icall.c (my_mono_new_object): Now returns a System.MonoType,
22359         and fills in System.Type._impl with a RuntimeTypeHandle rather
22360         than the actual MonoClass *
22361
22362         (ves_icall_type_from_handle): change from type_class to
22363         monotype_class
22364
22365         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
22366         implemented
22367
22368         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
22369         implemented
22370
22371         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
22372
22373         (ves_icall_System_Reflection_Assembly_GetType): implemented
22374
22375         (ves_icall_System_MonoType_assQualifiedName): implemented
22376
22377         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
22378
22379 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
22380
22381         * assembly.c (mono_assembly_open): Implement a cache for the
22382         assemblies. 
22383
22384         (mono_assembly_close): only destroy the assembly when the last
22385         reference is gone.
22386         
22387 2001-11-09  Dick Porter  <dick@ximian.com>
22388
22389         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
22390
22391 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
22392
22393         * class.c (mono_class_metadata_init): bug fix: compute the right slot
22394
22395 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
22396
22397         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
22398         from Martin Weindel.
22399         * object.h: add mono_string_chars ().
22400
22401 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
22402
22403         * reflection.c (build_compressed_metadata): Eliminates warnings
22404         and uses 64-bit clean code.
22405
22406         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
22407         (mono_type_equal): Change signature to eliminate warnings.
22408
22409 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
22410
22411         * icall.c, loader.c: remove the internalcall array constructors.
22412         Changes to match the new MonoArray structure.
22413         * object.h, object.c: an array object doesn't allocate an extra
22414         vector. Add mono_array_new_full () to create jagged arrays easily.
22415
22416 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
22417
22418         * metadata.h, metadata.c: add mono_metadata_field_info () to
22419         retreive all the info about a field from vairous tables.
22420         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
22421         * class.h, class.c: augment MonoClassField with more info.
22422         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
22423         policy and load a field's RVA if needed.
22424
22425 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
22426
22427         * class.c (mono_class_metadata_init): create a trampoline for all
22428         virtual functions instead of actually compiling them.
22429
22430 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
22431
22432         * class.h, class.c: include name in MonoClassField.
22433         * class.c: fix fundamental type of System.Object and System.String.
22434         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
22435         tokens in ldtoken.
22436         * icall.c: remove internalcalls for the Reflection stuff that is now
22437         done in C# code.
22438         * loader.c: mono_field_from_memberref () implementation.
22439         * mono-endian.c: thinko (s/struct/union/g).
22440         * object.c, object.h: make the mono_string_* prototypes actually use
22441         MonoString instead of MonoObject.
22442         * reflection.c, reflection.h: updates for changes in the reflection
22443         code in corlib: we use C structures that map to the actual C# classes.
22444         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
22445         fat method header if needed and use the info from the ILGenerator for
22446         methods. Handle fields in types. Misc fixes.
22447
22448 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
22449
22450         * class.c (mono_class_metadata_init): bug fix: always allocate
22451         space for static class data
22452
22453 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
22454
22455         * class.c (mono_compute_relative_numbering): use relative
22456         numbering to support fast runtime type checks.
22457
22458 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
22459
22460         * class.c (mono_class_create_from_typeref): added debugging output
22461         to print class name when MonoDummy is returned instead of real class
22462
22463 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
22464
22465         * class.c (mono_class_metadata_init): interface offset table now
22466         contains pointers into the vtable - this is more efficient for the jit
22467
22468 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
22469
22470         * class.c (mono_class_metadata_init): use a temporary vtable (the
22471         old algorithm only worked for the interpreter, but not for the jit)
22472
22473 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
22474
22475         * loader.c (method_from_memberref): use mono_class_get to get the
22476         class of an array instead of using System.Array directly.
22477         (mono_get_method): also add MEMBERREF methods to the method cache
22478         which usefull for arrays.
22479
22480 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
22481
22482         * pedump.c (arch_compile_method): added to compute vtable entry
22483
22484         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
22485         number of interfaces.
22486         
22487         * class.h: merged MonoArrayClass into MonoClass
22488
22489         * class.c (mono_class_create_from_typedef): compute the vtable size and
22490         allocate space to include the vtable inside MonoClass
22491         (mono_class_metadata_init): initialize the vtable
22492
22493 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
22494
22495         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
22496         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
22497         * image.c: endian fixes by Laurent Rioux.
22498         * object.h, object.c: rename MonoStringObject to MonoString and
22499         MonoArrayObject to MonoArray. Change some function names to conform to
22500         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
22501         guint16* as first argument, so don't use char*.
22502         Provide macros to do the interesting things on arrays in a portable way.
22503         * threads-pthread.c: updates for the API changes and #include <sched.h>
22504         (required for sched_yield()).
22505         * icall.c: updates for the API changes above.
22506         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
22507         platforms that need them.
22508
22509 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
22510
22511         * class.c: set the correct type for all the fundamental
22512         type when loading the class.
22513
22514 2001-10-05  Dick Porter  <dick@ximian.com>
22515
22516         * threads-pthread.c (pthread_mutex_timedlock): Simple
22517         compatibility version for C libraries that lack this call.
22518
22519 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22520
22521         * class.c: MonoTypes stored in MonoClass are stored as
22522         fundamental MonoTypes when the class represents a
22523         fundamental type (System.Int32, ...).
22524         The TypeHandle return by ldtoken is a MonoType*.
22525         * icall.c: ves_icall_get_data_chunk () write out all the
22526         PE/COFF stuff. Implement ves_icall_define_method (),
22527         ves_icall_set_method_body (), ves_icall_type_from_handle ().
22528         * image.c: properly skip unknown streams.
22529         * loader.h, loader.c: add type_class to mono_defaults.
22530         * metadata.c, metadata.h: export compute_size () as
22531         mono_metadata_compute_size () with a better interface.
22532         Typo and C&P fixes.
22533         * pedump.c: don't try to print the entry point RVA if there is no entry point.
22534         * reflection.c, reflection.h: many cleanups, fixes, output method
22535         signatures and headers, typedef and typeref info, compress the metadata
22536         tables, output all the heap streams, cli header etc.
22537         * row-indexes.h: typo fixes.
22538
22539 2001-10-04  Dick Porter  <dick@ximian.com>
22540
22541         * object.h: Add a synchronisation mutex struct to MonoObject
22542
22543         * object.c (mono_new_object): Initialise the object
22544         synchronisation mutexes
22545
22546         * icall.c: System.Threading.Monitor internal calls
22547         
22548         * threads-pthread.h:
22549         * threads-pthread.c: System.Threading.Monitor internal calls
22550
22551         * threads-types.h: New file, includes the system-specific thread
22552         structures
22553         
22554         * threads-pthread-types.h:
22555         * threads-pthread-types.c: New files, handle pthread-specific
22556         synchronisation types
22557
22558         * threads-dummy-types.h: 
22559         * threads-dummy-types.c: New files of dummy support for
22560         thread-specific types
22561
22562         * metadata.c:
22563         * image.c:
22564         * pedump.c: include mono-endian.h not endian.h
22565         
22566         * Makefile.am: More threads files.
22567         Name mono-endian.h not endian.h
22568
22569 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
22570
22571         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
22572         stuff and implement a few more bits.
22573         * icall.c: a field needs to be dereferenced twice. Do not use the same
22574         name for two variables in the same scope.
22575         * image.c, image.h: cleanups.
22576
22577 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
22578
22579         * class.c (mono_class_metadata_init): bug fix: compute the right size
22580
22581 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
22582
22583         * icall.c: implemented some of the Reflection internalcalls.
22584         * image.c, image.h: start writing out the PE/COFF image.
22585         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
22586         that does the reverse than decode_blob_size ().
22587         * object.c: use mono_metadata_encode_value (). Move here
22588         temporary implementation of mono_string_to_utf8 ().
22589         * rawbuffer.c: make malloc_map static.
22590
22591 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22592
22593         * metadata.c: fix type comparison for arrays.
22594         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
22595         Added a couple of new classes to monodefaults.
22596         * icall.c: added a couple of Reflection-related internalcalls.
22597         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
22598         Added a byval_arg MonoType to MonoClass.
22599
22600 2001-09-28  Dick Porter  <dick@ximian.com>
22601
22602         * icall.c:
22603         * threads-pthread.h: 
22604         * threads-pthread.c: Implemented internal calls for
22605         LocalDataStoreSlot operations.  Applied mutexes around all shared
22606         data.  Reworked the thread creation and Start() operations to
22607         avoid a race condition.
22608         
22609         * threads-dummy.h:
22610         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
22611
22612 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
22613
22614         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
22615
22616 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
22617
22618         * class.c, loader.c: warn and return NULL instead of erroring out.
22619         * icall.c: added System.AppDomain::getCurDomain().
22620         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
22621
22622 2001-09-25  Dick Porter  <dick@ximian.com>
22623
22624         * threads-pthread.h:
22625         * threads-pthread.c: Implemented timed thread joining and added
22626         System.Threading.Thread::Join_internal internal call
22627
22628         * icall.c: Added System.Threading.Thread::Join_internal internal call
22629
22630         * threads-dummy.h:
22631         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
22632
22633 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
22634
22635         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
22636         mono_string_intern () to implement the semantics of the ldstr opcode
22637         and the interning of System.Strings.
22638         * icall.c: provide hooks to make String::IsIntern and String::Intern
22639         internalcalls.
22640
22641 2001-09-23  Dick Porter  <dick@ximian.com>
22642
22643         * threads-dummy.c: 
22644         * threads-dummy.h: New files of dummy threading routines
22645
22646         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
22647         support code based on system specifics
22648
22649         Rename PTHREAD_LIBS to THREAD_LIBS
22650         
22651 2001-09-23  Dick Porter  <dick@ximian.com>
22652
22653         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
22654         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
22655         internal calls.
22656         (mono_thread_init): Set up a Thread object instance to return when
22657         the main thread calls Thread.CurrentThread
22658         (mono_thread_cleanup): Wait for all subthreads to exit
22659
22660         * icall.c: New internal calls for System.Threading.Thread::Sleep
22661         (including Schedule) and CurrentThread
22662
22663         * threads.h: New file, to insulate thread-specific stuff from the
22664         rest of the code
22665
22666 2001-09-21  Dick Porter  <dick@ximian.com>
22667
22668         * threads-pthread.h: 
22669         * threads-pthread.c: New file, for handling pthreads-style
22670         threading support.  Start() now starts a new thread and executes
22671         the ThreadStart delegate instance.
22672
22673         * icall.c: Added the internalcall for
22674         System.Threading.Thread::Start_internal
22675
22676         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
22677
22678 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
22679
22680         * loader.c: work around the different signatures for delegates
22681         constructors csc generates in compiled code vs the ones compiled in mscorlib.
22682
22683 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
22684
22685         * class.h, class.c: add mono_class_get_field_from_name ().
22686         * *: Fix C comments and other ANSI C issues.
22687
22688 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
22689
22690         * endian.h, assembly.c: fix some endianness issues.
22691
22692 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
22693
22694         * loader.h, load.c: add delegate_class to mono_defaults.
22695         Handle runtime provided methods in mono_get_method ().
22696
22697 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
22698
22699         * loader.c (mono_get_method): use pinvoke for internal call
22700
22701         * icall.c: use pinvoke for internal call
22702
22703         * loader.c (method_from_memberref): set the method name
22704
22705 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
22706
22707         * metadata.c: help the compiler generate better code for
22708         mono_class_from_mono_type ().
22709
22710 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
22711
22712         * class.c (mono_class_metadata_init): delayed computing of the
22713         class size to mono_class_metadata_init ()
22714
22715 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
22716
22717         * class.c, class.h: add an interfaces member to MonoClass.
22718         * image.c, image.h: add assembly_name field to MonoImage
22719         from the assembly table.
22720         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
22721
22722 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
22723
22724         * class.c: Handle Array in mono_class_from_mono_type ().
22725         * metadata.c, pedump.c: some endian fixes.
22726
22727 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
22728
22729         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
22730         * metadata.c: fix small problem introduced with the latest commit.
22731
22732 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
22733
22734         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
22735         We don't need a MonoMetadata pointer anymore to compare signatures in
22736         mono_metadata_signature_equal (), update callers.
22737         Reduced memory usage an number of allocations for MonoMethodHeader and
22738         MonoMethodSignature.
22739
22740 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
22741
22742         * metadata.c: added compare for szarray.
22743
22744 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
22745
22746         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
22747         and add a couple more types to it and mono_defaults. Give an hint on
22748         classes that need implementing in our corlib and are referenced
22749         in mscorlib.
22750
22751 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
22752
22753         * class.h, class.c: keep track if a class is also an Enum.
22754         * loader.c: Implement a couple more types for use in libffi
22755         marshalling. Gives better diagnostics when failing to dlopen
22756         a library. Set method->klass for P/Invoke methods, too.
22757
22758 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
22759
22760         * class.c, class.h: add a MonoType this_arg to MonoClass that
22761         represents a pointer to an object of the class' type that
22762         can be used by the interpreter and later the type cache.
22763         Add best guess alignment info for valuetype objects.
22764
22765 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
22766
22767         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
22768         into MonoType: one less level of indirection and allocation and
22769         simplifies quite a bit of code. Added cache for MonoTypes that are
22770         used frequently, so that we don't need to allocate them all the time.
22771
22772 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
22773
22774         * class.c (mono_class_create_from_typedef): System.Enum is also a
22775         value type, although it does not derive from System.ValueType
22776         (maybe a bug in the ms compiler?)
22777
22778         * metadata.c (mono_type_size): return the right size for value types
22779
22780         * loader.c (mono_get_method): only initialize method header if not abstract
22781
22782         * class.c (mono_class_from_mono_type): use mono_default values. 
22783
22784 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
22785
22786         * *: use MonoClass pointers instead of <type_tokens>
22787         
22788         * class.h: new flag: metadata_inited.
22789
22790         * class.c (mono_class_metadata_init): impl.
22791         (mono_class_instance_size): impl.
22792         (mono_class_data_size): impl.
22793
22794 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22795
22796         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
22797         MonoClass now has the name and name_space fields. 
22798         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
22799         mono_get_method () takes and optional MonoClass as argument.
22800         Removed mono_typedef_from_name() and added mono_class_token_from_name()
22801         instead that takes advantage of a map from class names to typedef
22802         tokens in MonoImage.
22803
22804 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
22805
22806         * metadata.c: zero is not a valid alignment boundary.
22807         Merge MONO_TYPE_VOID in default decoding code.
22808
22809 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
22810
22811         * image.h: merged MonoMetadata into MonoImage
22812
22813         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
22814         identify the type of elements.
22815
22816 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
22817
22818         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
22819         * cil-coff.h: split MonoMSDOSHeader and add size info.
22820         * image.c: add some consistency checks.
22821         * metadata.c: fix row size computation: one programmer
22822         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
22823         add explanation for the locator routine.
22824         Fix decoding of size in method header.
22825         
22826 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
22827
22828         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
22829         (g_concat_dir_and_file): Bring g_concat_dir_and_file
22830         function from gnome-libs.  This uses the right path separator
22831         based on the OS, and also works around a bug in some systems where
22832         a double slash is not allowed. 
22833         (default_assembly_name_resolver): Use g_concat_dir_and_file
22834         (mono_assembly_open): ditto.
22835
22836 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
22837
22838         * metadata.c (mono_metadata_signature_equal): impl.
22839
22840         * *: void is now a realy MonoType (instead of using NULL)
22841         
22842         * metadata.c (do_mono_metadata_parse_type): use
22843         mono_metadata_parse_type to parse void value.
22844
22845 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
22846
22847         * metadata.c, metadata.h: in the signature and method header store
22848         only the space required for holding the loca vars and incoming arguments.
22849
22850 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
22851
22852         * metadata.c (do_mono_metadata_parse_type): treat void like any
22853         other type (instead of assigning NULL);
22854
22855 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
22856
22857         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
22858
22859 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
22860
22861         * image.c (do_mono_image_open): added a cache for arrays.
22862
22863 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
22864
22865         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
22866         decode a single column from a row in a metadata table and changes
22867         to take advantage of it in the typedef locator (gives a nice speed up).
22868         Store offset info for function params.
22869
22870 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
22871
22872         * image.h (MONO_IMAGE_IS_CORLIB): removed 
22873
22874 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
22875
22876         * assembly.c: how could mono_assembly_close () had ever worked?
22877         * metadata.c, metadata.h: provide offset info for local vars.
22878         Implement mono_type_size () to take care of alignment as well
22879         as size (it was mono_field_type_size in cli/class.c before).
22880
22881 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
22882
22883         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
22884
22885         * assembly.h (CORLIB_NAME): set to corlib.dll
22886
22887         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
22888
22889 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
22890
22891         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
22892         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
22893         tokentype.h: massive namespace cleanup.
22894
22895 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
22896
22897         * metadata.h, metadata.c: decode exception clauses when parsing method header.
22898
22899 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
22900
22901         * metadata.c (mono_metadata_free_type): added check for type !=
22902         NULL (void) before calling mono_metadata_free_type()
22903
22904 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
22905
22906         * metadata.h, row_indexes.h: added header with enumerations to use
22907         to index in the columns from tables in metadata and to decode coded
22908         tokens: we should start using this instead of embedding magic numbers
22909         all over the code.
22910
22911 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
22912
22913         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
22914         Move metadata_t info from cli_image_info_t to MonoImage, where
22915         it's easily accessible. Changed all the uses accordingly.
22916         Added the method and class caches to MonoImage.
22917         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
22918         and mono_metadata_decode_value () signature to be more consistent
22919         with the other parse functions (and simplify code). Taken advantage
22920         of zero-length array allocation with GCC. Removed reduntant (and
22921         wrong) MonoFieldType struct and use MonoParam instead. Changed
22922         mono_metadata_parse_field_type () to use common code for parsing.
22923         Added mono_metadata_typedef_from_field () and
22924         mono_metadata_typedef_from_method () to lookup a typedef index from a
22925         field or method token.
22926         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
22927
22928 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
22929
22930         * metadata.c (mono_metadata_parse_field_type): Implement. 
22931         (do_mono_metadata_parse_type): Split engine from
22932         mono_metadata_parse_type, so that we can create smaller structures
22933         for things that just have one pointer to the MonoType (look at
22934         the MonoFieldType)
22935
22936 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
22937
22938         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
22939         as Jan Gray found out, it is incorrect. 
22940
22941 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
22942
22943         * assembly.c: Implement asssembly loading.  This loads an image
22944         and loads all the referenced assemblies.  Come to think of it, we
22945         could always do lazy loading of the assemblies. 
22946
22947         * image.c (mono_image_open): Keep loaded images in a hashtable.
22948
22949         * image.h (MonoImage): Add reference count.
22950
22951 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
22952
22953         * assembly.c (mono_assembly_open): Keep track of the file name in
22954         case the assembly has no ASSEMBLY table.
22955
22956         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
22957         from get.c here.
22958
22959 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
22960
22961         * metadata.c, metadata.h: decode local vars in method header
22962         parse function. Change callers accordingly.
22963
22964 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
22965
22966         * metadata.h, cil-coff.h: protect against multiple inclusion.
22967         Added some new structures to hold information decoded from metadata:
22968         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
22969         and relevant decoding/free functions.
22970         * metadata.c: implement decoding functions. Add warning for out of bounds
22971         index in mono_metadata_locate(). Implement mono_get_method () to retreive
22972         all the info about a method signature and invocation. Remove check on
22973         uninitialized local var in parse_mh() and fix memory leak.
22974
22975 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
22976
22977         * metadata.h: More macros.
22978
22979         * tokentype.h: New file.
22980
22981 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
22982
22983         * assembly.c: added a consistency check and initialize
22984         some structures with g_new0().
22985         * metadata.c: fixed a couple more bugs in table size computation
22986         and add other checks for out-of bound access to metadata.
22987
22988 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
22989
22990         * metatada.c: fix bugs computing table sizes. Spew a
22991         warning when index in string heap is out of bounds.
22992
22993 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
22994
22995         * metadata.h: Add a couple of macros to manipulate tokens. 
22996
22997 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
22998
22999         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
23000         cli_section_tables).
23001
23002 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
23003
23004         * metadata.c (mono_metadata_user_string): New function, provides
23005         access to the UserString heap. 
23006
23007 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
23008
23009         * metadata.c: Add inline documentation.
23010
23011 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
23012
23013         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
23014         files. 
23015
23016 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
23017
23018         * typeattr.h: New file, TypeAttribute flags. 
23019
23020 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
23021
23022         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
23023         mono_assembly_ensure_section): Section loading code.
23024         (load_section_tables): Load the sections.
23025
23026         * mono/metadata/metadata.c (mono_metadata_locate_token,
23027         mono_metadata_locate): Functions to locate the information
23028         definition given a token or a table and an index.
23029         (mono_metadata_compute_table_bases): New.
23030         (compute_size): New function to compute the sizes of the various
23031         tables.
23032
23033         * mono/metadata/metadata.h: Finish listing the different index
23034         types. 
23035
23036         * mono/metadata/pedump.c: Improve to dump new information.
23037
23038 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
23039
23040         * mono/metadata/metadata.c: Entered all the tables matching
23041         Beta2. 
23042
23043         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
23044
23045
23046