2007-09-27 Rodrigo Kumpera <rkumpera@novell.com>
[mono.git] / mono / metadata / ChangeLog
1 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
2         * verify.c: added support for type checking ldind_* opcodes.
3
4 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
5
6         * class-internals.h (struct _MonoGenericClass): new field is_tb_open
7         which is used to distinguish the fully open instantiation of a TypeBuilder
8         with the rest. This temporary hack is required to restore the property that
9         the fully open instantiation is the same type of the generic type definition.
10
11         * class-internals.h (mono_generic_class_is_generic_type_definition):
12         new function as part of the internal API.
13
14         * class.c (inflate_generic_type): return NULL when the generic inst is
15         fully open. The fully open generic type is now the same as the generic type
16         definition for non TypeBuilder types.
17
18         * class.c (mono_generic_class_get_class): removed assert since it is
19         no longer valid, gklass->cached_class can point to the generic type definition.
20
21         * class.c (mono_generic_class_is_generic_type_definition): new.
22
23         * metadata.c (mono_generic_class_hash): added is_tb_open field
24         to the hash calculation.
25
26         * metadata.c (free_generic_class): if the generic class is associated
27         with the generic type definition, its field will come from the mempool and
28         must not be freed.
29
30         * metadata.c (mono_metadata_is_type_builder_generic_type_definition):
31         new, this function identifies the corner case of a TypeBuilder fully open
32         instantiation.
33
34         * metadata.c (mono_metadata_lookup_generic_class): use is_tb_open
35         for lookup. Set gclass->cached_class to be the container class in case of
36         the fully open instantiation of non TypeBuilder types.
37
38         * metadata.c (_mono_metadata_generic_class_equal): use is_tb_open
39         to compare generic classes.
40
41         * reflection.c (method_encode_methodspec): remove assert that
42         no longer is valid.
43
44         * reflection.c (mono_reflection_generic_class_initialize): add
45         an aditional assert to ensure the proper type is used.
46
47 2007-09-26  Rodrigo Kumpera  <rkumpera@novell.com>
48
49         * verify.c: disabled all debug spew by default, define MONO_VERIFIER_DEBUG
50         to enjoy it.
51
52 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
53
54         * verify.c (push_arg): Fixed support for ldarga
55         * verify.c (set_stack_value): Removed superfluous parameter, fixed the
56         MonoType used as first arg in case of instance calls.
57
58 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
59
60         * verify.c: Support for verifying VAR and MVAR types, 
61
62 2007-09-25  Zoltan Varga  <vargaz@gmail.com>
63
64         * icall.c (ves_icall_get_property_info): Set the reflected type of the
65         accessors correctly.
66
67 Tue Sep 25 14:56:03 CEST 2007 Paolo Molaro <lupus@ximian.com>
68
69         * threads.c: support OSX and other systems in
70         mono_thread_get_stack_bounds (bug #328026).
71
72 2007-09-25  Martin Baulig  <martin@ximian.com>
73
74         * mono-debug.h
75         (MonoDebugVarInfo): Replace `MonoClass *klass' with `MonoType *type'.
76
77 2007-09-24  Martin Baulig  <martin@ximian.com>
78
79         * mono-debug.h
80         (MonoDebugClassEntry): Moved the definition of this struct into
81         mono-debug.c to make it private.
82
83         * mono-debug.c
84         (MonoDebugClassEntry): Removed `symfile_id'; since we now use one
85         type table per symbol file, we don't need to store the symfile id
86         any longer.
87
88 2007-09-24  Martin Baulig  <martin@ximian.com>
89
90         Create one type table per symbol file, since a `MonoClass *' gets
91         invalid when its image is unloaded.
92
93         * mono-debug.h (MonoSymbolTable): Removed `type_table'.
94         (MonoDebugHandle): Added `type_table'.
95
96 Mon Sep 24 17:25:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
97
98         * mempool.c, mempool.h: added mono_mempool_new_size () API
99         to be able to specify a smaller initial size for the pool.
100         Adjusted the code to slowly increase pool size before using
101         the previous default size.
102         * image.c: use a small initial size for image mempools.
103
104 2007-09-23  Zoltan Varga  <vargaz@gmail.com>
105
106         * marshal.c (emit_marshal_array): Generate valid IL for byref array case.
107         Fixes ##320990.
108
109         * icall.c (ves_icall_System_Reflection_Assembly_get_ManifestModuleInternal): 
110         Rename this to ves_icall_System_Reflection_Assembly_GetManifestModuleInternal.
111
112 2007-09-22  Zoltan Varga  <vargaz@gmail.com>
113
114         * metadata.c (mono_type_create_from_typespec): Remove an invalid
115         free. Fixes #327438.
116
117 2007-09-21  Raja R Harinath  <harinath@gmail.com>
118
119         * metadata.c (type_in_image) <MONO_TYPE_SZARRAY>: Handle arrays of
120         generic instantiations, etc.
121         <MONO_TYPE_ARRAY>: Likewise.
122
123 2007-09-21  Martin Baulig  <martin@ximian.com>
124
125         * mono-debug.h (MonoSymbolFilePriv, MonoDebugHandlePriv): Removed;
126         these structs were never defined.
127         (MonoDebugHandle): Removed the `_priv' field, it was never used.
128
129 2007-09-21  Martin Baulig  <martin@ximian.com>
130
131         * mono-debug.h (MonoDebugVarInfo): Add `MonoClass *klass'.
132
133 Fri Sep 21 14:39:45 CEST 2007 Paolo Molaro <lupus@ximian.com>
134
135         * image.c: removed the guid hash tables: we can get the same info
136         without the additional memory usage hit (partially fixes also bug #327052).
137
138 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
139
140         * profiler.h, profiler-private.h, profiler.c: add a new profiler
141         event to handle unloading methods. After the event is called, the
142         corresponding MonoMethod* must be considered invalid.
143         * loader.c (mono_free_method): call the new mono_profiler_method_free
144         event.
145
146 2007-09-20  Mark Probst  <mark.probst@gmail.com>
147
148         * domain-internals.h: New flag in MonoJitInfo which marks shared
149         generic methods.  New hash table (shared_generics_hash) in
150         MonoDomain to keep track of shared generic methods.  Prototypes
151         for functions to register and lookup shared generic methods.
152
153         * domain.c: Support for registering and looking up shared generic
154         methods via a hash table (shared_generics_hash) in MonoDomain.
155
156         * class-internals.h: New exception to signal failure of shared
157         compilation of a generic method.  New counters for generics
158         sharing in MonoStats.
159
160 Thu Sep 20 16:59:36 CEST 2007 Paolo Molaro <lupus@ximian.com>
161
162         * image.c, metadata-internals.h: don't keep a file descriptor open
163         for loaded assemblies (bug#325988).
164
165 2007-09-19  Raja R Harinath  <rharinath@novell.com>
166
167         * metadata.c (signature_in_image): New.  Carve out of type_in_image.
168         (ginst_in_image, gclass_in_image): Simplify.  Change signature to
169         use the corresponding datatypes.
170         (type_in_image): Update to changes.
171         (CleanForImageUserData): Simplify.
172         (steal_gclass_in_image): Carved out of old 'gclass_in_image'.
173         Avoid quadratic behaviour in handling the "stolen" list by
174         separating the filter predicate out, and by prepending the stolen
175         items rather than appending them.
176         (steal_ginst_in_image): Likewise.
177         (mono_metadata_clean_for_image): Update to changes.
178
179 2007-09-19  Martin Baulig  <martin@ximian.com>
180
181         * domain.c (mono_cleanup): Call mono_debug_cleanup() here.
182
183 2007-09-19  Martin Baulig  <martin@ximian.com>
184
185         * mono-debug.c (mono_debug_cleanup): Don't call
186         mono_debugger_cleanup(); this is now called earlier from mini_cleanup().
187
188 2007-09-19  Raja R Harinath  <harinath@gmail.com>
189
190         Fix crash on 'make run-test' in mcs/errors
191         * metadata.c (type_in_image): New.  Carve out of ginst_in_image.
192         Avoid more potential allocations in mono_class_from_mono_type.
193         (ginst_in_image): Update to changes.
194         (gclass_in_image): Rearrange slightly.
195
196 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
197
198         * class.c (mono_class_init): Move the code that sets up class->methods to 
199         mono_class_setup_methods () for inflated generic classes too. Ditto for properties.
200
201         * metadata.c (mono_metadata_get_inflated_signature): New function to return a
202         canonical instance of an inflated generic signature.
203         (mono_type_create_from_typespec): Remove an invalid free.
204
205         * loader.c (mono_method_get_signature_full): Use mono_metadata_get_inflated_signature.  
206
207 2007-09-18  Marek Habersack  <mhabersack@novell.com>
208
209         * domain-internals.h: added a declaration of the
210         mono_assembly_load_full_nosearch internal function.
211
212         * assembly.c (mono_assembly_load_with_partial_name): use
213         mono_try_assembly_resolve return value properly.
214         (mono_assembly_load_full_nosearch): copied the function body from
215         mono_assembly_load_full, without the code to invoke assembly
216         search hooks.
217         (mono_assembly_load_full): calls the above new function and if the
218         assembly is not resolved, invokes the search hooks.
219
220         * appdomain.c (mono_runtime_init): restore the global postload
221         assembly search handlers.
222
223 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
224
225         * class.c (mono_class_init): Make sure class->methods and class->properties
226         are never NULL in the generics case.
227
228         * metadata.c (free_generic_class): Enable this again, skip the dynamic case.
229
230 2007-09-17  Zoltan Varga  <vargaz@gmail.com>
231
232         * metadata.c (free_generic_class): Disable some code to fix the build.
233
234         * domain.c (mono_cleanup): Fix a crash introduced by a previous patch.
235
236         * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data
237         from the image mempool.
238
239         * metadata.c (free_generic_class): Free more data from the inflated class.
240
241         * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool.
242
243         * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
244         mempool.
245         (mono_type_create_from_typespec): Ditto.
246
247         * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
248         MonoImage to the caller.
249         (mono_init_internal): Save the opened image in a global variable.
250         (mono_cleanup): Close the image opened in get_runtimes_from_exe.
251
252         * reflection.c (resolve_object): Fix a leak.
253
254         * metadata.c: Fix the freeing of data in the generics caches.
255         
256         * metadata.c (free_generic_inst): Comment this out to fix the build.
257         (free_generic_class): Ditto.
258
259         * metadata.c: Free cached generic methods, instantinations and classes when
260         they are removed from the caches.
261         (mono_metadata_free_type): Free the type itself.
262
263         * class.c: Free the result of mono_class_inflate_generic_type () in a few
264         places.
265
266 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
267
268         * boehm-gc.c: restrict managed allocs to __thread supporting
269         architectures.
270
271 2007-09-16  Zoltan Varga  <vargaz@gmail.com>
272
273         * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
274         (mono_generic_class_get_class): Fix a leak.
275
276         * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
277         mono_metadata_free_type ().
278         (mono_metadata_inflate_generic_inst): Fix a leak.
279
280 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
281
282         * mono-debug.c (free_header_data): Fix a leak missed earlier.
283
284         * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
285         mempool.
286
287         * mono-debug.c (mono_debug_close_image): Fix call to 
288         g_hash_table_remove ().
289
290 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
291
292         * icall-def.h: redirect all the string ctor to the managed
293         CreateString () methods.
294         * string-icalls.c, string-icalls.h: removed dead code for string
295         ctors and icalls.
296
297 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
298
299         * mono-debug.c: Fix memory leaks.
300
301 2007-09-14  Jonathan Chambers <joncham@gmail.com>
302
303         * threads-types.h: Implement mono_hazard_pointer_set and 
304         mono_hazard_pointer_clear macros using do/while(0) to fix
305         compilation with MSVC.
306         
307         Code is contributed under MIT/X11 license.
308
309 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
310
311         * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
312         -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
313
314 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
315
316         * icall-def.h, string-icalls.c: get rid of old, no longer used, string
317         icalls.
318
319 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
320
321         * boehm-gc.c, gc-internal.h, object.c: allow strings to be
322         managed-code allocated as well.
323
324 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
325
326         * class.c (mono_class_is_assignable_from): Add support for generic variance.
327
328 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
329
330         * boehm-gc.c: fixed the build after the AOT changes.
331
332 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
333
334         * wrapper-types.h: Add an ALLOC wrapper type.
335
336         * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
337         reference managed allocator methods.
338
339 2007-09-12  Marek Safar  <marek.safar@gmail.com>
340
341         * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
342         of Type array and not MonoType, a fix suggested by Hari.
343         
344 2007-09-12  Jonathan Chambers <joncham@gmail.com>
345
346         * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
347         and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
348         
349         Code is contributed under MIT/X11 license.
350
351 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
352
353         * domain.c, object.c, mono-config.c, object-internals.h: Fixed  #82416.
354
355 2007-09-12  Marek Habersack  <mhabersack@novell.com>
356
357         * image.c (do_mono_image_open): if assembly file fails to open and
358         MONO_IOMAP is in effect, try to find the path in a
359         case-insensitive way.
360
361         * appdomain.c (mono_runtime_init): do not install postload hooks -
362         tests show that MS.NET doesn't use anything of that sort to
363         trigger the AppDomain.AssemblyResolve event.
364         (mono_try_assembly_resolve): renamed from try_assembly_resolve and
365         made non-static.
366         (mono_runtime_init): init portability helpers here.
367
368         * assembly.c (mono_assembly_load_with_partial_name): if other   
369         attempts fail, trigger the AppDomain.AssemblyResolve event handler
370         to resolve the assembly.
371
372         * domain-internals.h: added mono_try_assembly_resolve and marked
373         it as internal.
374
375 2007-09-11  Jb Evain  <jbevain@novell.com>
376
377         * object-internals.h (MonoReflectionDynamicMethod): add
378         a `MonoReflectionType *owner` field. The owner is used
379         * reflection.c:
380         (mono_reflection_create_dynamic_method): use the owner of the dynamic
381         method as the class declaring the dynamic method.
382         (reflection_methodbuilder_from_dynamic_method): copy the owner of the
383         dynamic method to the declaring type of the methodbuilder.
384
385 2007-09-11  Mark Probst  <mark.probst@gmail.com>
386
387         * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
388         rules for calling methods via reflection.
389
390 2007-09-11  Zoltan Varga  <vargaz@gmail.com>
391
392         * reflection.c (resolve_object): Add support for MonoGenericClass. 
393         Inflate MonoType's.
394
395 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
396
397         * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
398         provide a managed method that does fast allocations without needing
399         a managed->unmanaged transition. Boehm GC implementation currently
400         enabled for ptrfree objects on sane architectures.
401
402 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
403
404         * marshal.c, marshal.h: exported a couple of useful functions and
405         added mono_mb_get_label () to easily handle backward branches.
406
407 2007-09-10  Zoltan Varga  <vargaz@gmail.com>
408
409         * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
410
411 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
412
413         * loader.c (find_method): Fixed the regression introduced while
414         fixing bug #81466.
415
416 2007-09-09  Zoltan Varga  <vargaz@gmail.com>
417
418         * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
419         well.
420         
421         * class.c loader.c metadata.c object.c class-internals.h object-internals.h
422         icall.c reflection.c: Pass a MonoGenericContext argument to 
423         mono_lookup_dynamic_token ().
424
425         * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
426         #82744.
427         
428 2007-09-09  Robert Jordan  <robertj@gmx.net>
429
430         * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
431         for generic methods.
432
433         * object.c (mono_object_get_virtual_method): Handle generic methods.
434         Fixes bug #78882.
435
436         Code is contributed under MIT/X11 license.
437
438 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
439
440         * image.c: fix locking in mono_image_load_file_for_image ().
441
442 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
443
444         * reflection.c, icall.c, icall-def.h: the methodinfos name field is
445         used only as a cache: added an icall to fill it.
446
447 2007-09-16  Rodrigo Kumpera  <rkumpera@novell.com>
448
449         * reflection.h: exposed mono_reflection_free_type_info
450         * reflection.c (mono_reflection_get_type_internal): type_args is always freed
451         since mono_reflection_bind_generic_parameters makes a copy of it.
452         * reflection.c (free_type_info): subinfos should be freed.
453         * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and 
454         made non static.
455         * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
456         replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
457         this fixes #82695 and #81726.
458    
459
460 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
461
462         * process.h, process.c:  added support for user profile/info in
463           ProcessStartInfo. For now only Windows works.
464
465 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
466
467         * metadata.c: consider the generic arguments when comparing
468         signatures (bug #82614).
469
470 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
471
472         * cil-coff.h, image.c: updated assembly loader to cope with the
473         PE32+ 64 bit file format.
474
475 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
476
477         * assembly.c, class.c, domain.c, loader.c: remove useless
478         inclusion of cil-coff.h.
479
480 2007-08-29  Jonathan Chambers  <joncham@gmail.com>
481
482         * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
483         if interface is marked with CoClassAttribute. 
484    
485         Code is contributed under MIT/X11 license.
486
487 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
488
489         * sgen-gc.c: ensure no object from the to space is copied again or finalized
490         if it's seen twice in major collections.
491
492 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
493
494         * sgen-gc.c: big objects are not copied to the gray area, but they
495         need to be considered for scanning, too, if they are brought alive
496         by an object ready for finalizations or a survived one.
497
498 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
499
500         * sgen-gc.c: properly account the number of disappearing links when
501         they are nullified.
502
503 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
504
505         * sgen-gc.c: share the code to scan the registered roots between the
506         different types of collections.
507
508 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
509
510         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
511
512 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
513
514         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
515         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
516
517 2007-08-28  Mark Probst  <mark.probst@gmail.com>
518
519         * security-manager.c (mono_security_manager_get_methods):
520         LinkDemandSecurityException now has 2 arguments instead of 3.
521
522 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
523
524         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
525         platforms which need it.
526
527 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
528
529         * sgen-gc.c: unregister thread data structures with a pthread_key_t
530         dtor.
531
532 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
533
534         * threads.c: free the thread static data on thread exit.
535
536 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
537
538         * class.c: walk the hierarchy to find the generic definition for
539         a class (fixes runtime part of bug #82498).
540
541 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
542
543         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
544         ...
545
546         * image.c (mono_image_close): Here. Hopefully fixes #82510.
547
548 2007-08-24  Mark Probst  <mark.probst@gmail.com>
549
550         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
551
552 2007-08-24  Robert Jordan  <robertj@gmx.net>
553
554         * appdomain.c: don't perform the ':'->';' substitution on Win32.
555
556 2007-08-24  Jb Evain  <jbevain@novell.com>
557
558         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
559         for byref types.
560
561 2007-08-24  Mark Probst  <mark.probst@gmail.com>
562
563         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
564         #82286.
565
566 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
567
568         * assembly.c: Fix a warning.
569         
570 2007-08-23  Marek Habersack  <mhabersack@novell.com>
571
572         * appdomain.c: parse the <runtime> section looking for the probing
573         element with the 'privatePath' attribute, which sets additional
574         directories in which the runtime should look for assemblies.
575
576 2007-08-23  Robert Jordan  <robertj@gmx.net>
577
578         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
579         Fixes #82499.
580
581 2007-08-23  Martin Baulig  <martin@ximian.com>
582
583         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
584         _mono_debug_init_corlib() and remove it from the header file.
585
586 2007-08-23  Martin Baulig  <martin@ximian.com>
587
588         * mono-debug-debugger.c
589         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
590         don't notify the debugger about it.
591
592         * mono-debug-debugger.h
593         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
594
595 2007-08-23  Robert Jordan  <robertj@gmx.net>
596
597         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
598         Code is contributed under MIT/X11 license.
599
600 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
601
602         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
603
604 2007-08-22  Martin Baulig  <martin@ximian.com>
605
606         * mono-debug.c: Store debugging info on a per-domain basis and
607         free it on domain unload.  Add support for unloading symbol files.
608
609         * mono-debug.h
610         (MonoDebugList): New typedef.
611         (MonoSymbolTable):
612         - add `data_tables and `type_table'.
613         - replace 'symbol_files' and `num_symbol_files' with a
614           `MonoDebugList *'.
615         (mono_debug_data_table): Removed.
616         (mono_debug_list_add): New public function.
617         (mono_debug_list_remove): New public function.
618         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
619         (mono_debug_init_2_memory): Renamed into
620         mono_debug_open_image_from_memory().
621         (mono_debug_close_image): New public function.
622         (mono_debug_domain_create): Likewise.
623         (mono_debug_domain_unload): Likewise.
624         (MONO_DEBUGGER_VERSION): Bump to 60.
625
626         * mono-debug-debugger.h
627         (MonoDebuggerEvent):
628         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
629         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
630         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
631         - rename `THREAD_CREATED' and `THREAD_EXITED' into
632           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
633         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
634           meaning.
635         (mono_debugger_add_symbol_file): Removed.
636         (mono_debugger_add_type): Removed.
637         (mono_debugger_lookup_type): Removed.
638         (mono_debugger_lookup_assembly): Removed.
639
640         * domain.c
641         (mono_domain_create): Call mono_debug_domain_create().
642         (mono_init_internal): Call mono_debug_init_corlib().
643
644         * assembly.c
645         (mono_assembly_close): Call mono_debug_close_image().
646
647 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
648
649         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
650         mmap call.
651
652 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
653
654         * sgen-gc.c: ensure section->pin_queue_end is initialized
655         correctly when non pinning objects in the section have been found.
656
657 2007-08-22  Marek Habersack  <mhabersack@novell.com>
658
659         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
660         containing a list of directories separated by ':'. MSDN docs say
661         the directories should be separated with ';'. Part of a bugfix for
662         bug #81446
663
664 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
665
666         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
667         it should MonoType and not MonoClass.
668
669 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
670
671         * culture-info-table.h : regenerated.
672
673 2007-08-20  William Holmes  <billholmes54@gmail.com>
674
675         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
676          to call ReplaceFile Kernel32 on windows or in io-layer.
677         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
678         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
679          as an internal call.
680
681         Code is contributed under MIT/X11 license.
682
683 2007-08-20  Jb Evain  <jbevain@novell.com>
684
685         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
686         and MONO_EXCEPTION_FIELD_ACCESS.
687
688         * debug-helpers.[c|h]: new mono_field_full_name function.
689
690 2007-08-20  Mark Probst  <mark.probst@gmail.com>
691
692         * class.c: Removed class_security_level() and moved it to
693         security-core-clr.c.
694
695         * security-core-clr.c, security-core-clr.h: class_security_level()
696         is now public and renamed to mono_security_core_clr_class_level().
697         It also looks for security attributes in the classes a class is
698         nested in.
699
700 2007-08-20  Mark Probst  <mark.probst@gmail.com>
701
702         * security-core-clr.c, security-core-clr.h: CoreCLR security
703         utility functions.
704
705         * Makefile.am: Added security-core-clr.[ch].
706
707         * security-manager.c, security-manager.h: Functions and enum for
708         setting and getting the security mode.
709
710         * class.c: CoreCLR security checks.
711
712 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
713
714         * icall-def.h, process.c, process.h: implemented icall to get
715         user/system processor times.
716
717 2007-08-17  Mark Probst  <mark.probst@gmail.com>
718
719         * domain.c, threads.c, class-internals.h, domain-internals.h: New
720         reader-lock-free jit_info_table.
721
722 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
723
724         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
725
726         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
727
728         * object-internals.h (MonoException): Add missing _data member.
729
730 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
731
732         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
733         checking that only methods with matching qname or fqname are picked
734         from implemented interfaces.
735
736 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
737
738         * verify.c (do_newarr):added, do type verification of
739         newarr ops, push the right value on the eval stack.
740         * verify.c (mono_method_verify): use do_newarr
741
742
743 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
744
745         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
746         factored the common code into get_boxable_mono_type, which
747         is now using mono_type_get_full, this fixed byref related tests.
748
749 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
750
751         * class.c: added mono_type_get_full, this function has the same
752         behavior of mono_class_get_full but the returned MonoType has
753         all metadata of the associated token in case of a typespec token.
754         * class.c: added mono_type_retrieve_from_typespec, used by 
755         mono_type_get_full to retrieve the token type.
756         * class.c (mono_class_create_from_typespec): changed to use
757         mono_type_retrieve_from_typespec.
758         * class.c (mono_ldtoken): changed to use mono_type_get_full
759         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
760         * class-internals.h: exported mono_type_get_full for internal use.
761
762 2007-08-16  Jb Evain  <jbevain@novell.com>
763
764         * domain.c (supported_runtimes): add entry for
765         the 'moonlight' runtime version.
766
767 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
768
769         * verify.c (mono_method_verify): small typo sliped in.  
770
771 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
772
773         * verify.c (do_unbox_value): added, do type verification of
774         unboxing ops
775         * verify.c (mono_method_verify): use do_unbox_value
776
777
778 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
779
780         * verify.c (dump_stack_value): fixed typo, was printing string
781         instead of object on stack.
782         * verify.c (do_box_value): moved the byref check up as it leads
783         to invalid code and should be done earlier.
784         * verify.c: improved error messages for and ldobj
785
786 2007-08-15  William Holmes  <billholmes54@gmail.com>
787
788         * marshal.c (emit_marshal_custom): Omit the call to 
789           marshal_native_to_managed when calling native to managed 
790           and the argument is specified as an out argument.
791
792         Code is contributed under MIT/X11 license.
793
794 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
795
796         * verify.c: fixed the type checks for generics, function pointers and vectors.
797         Added type verification for ldobj and ldtoken. The verifier
798         would segfault if header or signature of a method contained references
799         to non-existant types.
800
801 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
802
803         * marshal.c (cominterop_get_ccw): Patch from
804         Bill Holmes to no walk up interface hierarchy. 
805         All parent methods should be present in the interface for COM.
806    
807         Code is contributed under MIT/X11 license.
808
809 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
810
811         * marshal.c (emit_marshal_com_interface): Patch from
812         Bill Holmes to handle COM Interfaces as return values
813         for native->managed calls.
814    
815         Code is contributed under MIT/X11 license.
816
817 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
818
819         * marshal.c (cominterop_get_idispatch_for_object): Implement
820         for runtime callable wrappers.
821    
822         Code is contributed under MIT/X11 license.
823
824 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
825
826         * pedump.c (main): changed from mono_init to mono_init_from_assembly
827         so 2.0 types are accessible
828
829
830 2007-08-13  Miguel de Icaza  <miguel@novell.com>
831
832         * domain.c (mono_init_internal): Call mono_assembly_load_friends
833         once we load mscorlib.   Due to the order in which we initialize,
834         the mono_assembly_load_full routine that loads mscorlib did not
835         load friends.   We now load it once we load the
836         mono_defaults.internals_visible_class class. 
837
838         * assembly.c: Expose the mono_load_friend_assemblies method.
839
840 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
841
842         * verify.c: improved the handling of boxing, better
843         type checking for unary ops and conversion. Fix bug
844         regarding managed pointer compatibility checking
845
846 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
847
848         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
849
850         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
851
852 2007-08-09  Raja R Harinath  <rharinath@novell.com>
853
854         * reflection.c (dup_type): Remove.
855         * class.c (dup_type): Remove.
856         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
857         instead of the dodgy 'dup_type'.
858         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
859         handle the case where 'dup_type' needed the second argument.
860
861 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
862
863         * domain.c: Fix a warning.
864
865 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
866
867         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
868         checking that methods with the same fqname are not overridden
869         with a method from an ancestor.
870
871 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
872
873         * threads.c (free_thread_static_data_helper): Avoid a crash if
874         thread->static_data is not yet set.
875
876 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
877
878         * marshal.c: Use correct image when emitting
879         native wrapper for COM calls.
880    
881         Code is contributed under MIT/X11 license.
882
883 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
884
885         * icall-def.h, security.c, security.h :
886           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
887
888 2007-08-07  Martin Baulig  <martin@ximian.com>
889
890         * mono-debug-debugger.h
891         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
892
893         * domain.c (mono_domain_free): Call
894         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
895
896 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
897
898         * verify.c (check_underflow, check_overflow): error message now returns IL offset
899         * verify.c (in_same_block): code should test if either offset is inside the clauses
900         * verify.c (mono_method_verify): push the exception into the eval stack of exception
901         and filter blocks
902
903 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
904
905         * image.c (mono_image_close): Fix a leak.
906
907         * object.c (mono_runtime_invoke_array): Avoid using alloca.
908
909         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
910
911 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
912
913         * domain.c, threads.c, threads-types.h: fix memory retention issue
914         with thread static variables not being cleared on domain unload.
915         Reuse thread static slots after domain unload.
916
917 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
918
919         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
920         nullable type.
921
922         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
923         now done in mono_runtime_invoke_array.
924
925         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
926         receiver is a nullable type.
927
928         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
929         generic parameter.
930
931 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
932
933         * marshal.c: Implement COM Objects as return type for 
934         managed->unmanaged calls. Added Release calls for COM Object
935         out/return values in managed->unmanaged calls.
936
937         Code is contributed under MIT/X11 license.
938
939 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
940
941         * threads.h, threads-type.h: move the hazard pointer declarations
942         to the private header.
943
944 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
945
946         * file-io.c, appdomain.c: memory leak fixes.
947
948 2007-08-02  Dick Porter  <dick@ximian.com>
949
950         * socket-io.c
951         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
952         SO_REUSEADDR setting into io-layer/sockets.c.
953
954 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
955
956         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
957         from Object when called on a generic parameter. Fixes #82211.
958
959 2007-08-01  Dick Porter  <dick@ximian.com>
960
961         * file-io.c (convert_share): Test FileShare values bit-by-bit.
962         Fixes bug 79250 yet again.
963
964 2007-07-30  Martin Baulig  <martin@ximian.com>
965
966         Merged the `debugger-dublin' branch.
967
968         * mono-debug.h
969         (MonoDebugDataTable): New typedef.
970         (MonoDebugMethodAddressList): New typedef.
971         (MonoDebugWrapperData): Removed.
972         (MonoDebugSymbolTable): Removed `current_data_table',
973         `current_data_table_size', `current_data_table_offset'.
974         (MonoDebugDataItemType): Moved into mono-debug.c.
975         (MonoDebugMethodJitInfo): Remove `address'.
976         (mono_debug_data_table): New global variable.
977         (mono_debug_lookup_method_addresses): New public function.
978         (mono_debug_find_method): Take a `MonoMethod *', not a
979         `MonoDebugMethodInfo *'.
980
981         * mono-debug.c: Drop support for the old symbol tables.
982
983 2007-06-28  Martin Baulig  <martin@ximian.com>
984
985         * mono-debug.c (mono_debug_debugger_version): New public variable.
986
987 2007-07-31  William Holmes  <billholmes54@gmail.com>
988
989         * metadata.c Changed mono_type_create_from_typespec to not insert
990           the type into the hash map until after
991           do_mono_metadata_parse_type has completed.
992         Fixes Bug #82194
993         Code is contributed under MIT/X11 license.
994
995 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
996
997         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
998         generic parameter. Fixes #82211.
999
1000 2007-07-27  Jb Evain  <jbevain@novell.com>
1001
1002         * pedump.c (dump_metadata, dump_metadata_header): dump
1003         versions contained in the metadata header.
1004
1005 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
1006
1007         * threads.c: register small_id_table with the GC.
1008
1009 2007-07-27  Mark Probst  <mark.probst@gmail.com>
1010
1011         * threads.c, threads.h, class-internals.h, object-internals.h:
1012         Hazard pointers, to be used by lock-free parallel algorithms.
1013
1014 2007-07-26  Dick Porter  <dick@ximian.com>
1015
1016         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
1017         routine on non-windows platforms, as I've not managed to think of
1018         a non-kludgy way of doing this.  Finishes off bug 78739.
1019
1020 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
1021
1022         * object.c: properly setup interface_bitmap in proxy vtables.
1023
1024 2007-07-25  Marek Habersack  <mhabersack@novell.com>
1025
1026         * appdomain.c (get_shadow_assembly_location): do not use TickCount
1027         to create unique shadow copy target directories, use the domain's
1028         serial number instead. Each domain gets a unique target directory
1029         that way.
1030
1031         * domain.c (mono_domain_create): added code to increment domain
1032         shadow copy serial number and cache the value in the current
1033         domain structure.
1034
1035         * domain-internals.h (struct _MonoDomain): added a new field -
1036         shadow_serial to hold the serial number used in generation of
1037         shadow-copy directories. This is to make sure that the directory
1038         name is unique for each and every domain created. We avoid a race
1039         condition with overriding assemblies already in use by other app
1040         domains.
1041
1042 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
1043
1044         * class.c (mono_bounded_array_class_get): fixed memory leak when 
1045         binding generic parameters.
1046
1047 2007-07-24  Raja R Harinath  <rharinath@novell.com>
1048
1049         * metadata.c (do_mono_metadata_parse_generic_class): Use
1050         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
1051         error.
1052
1053 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
1054
1055         * loader.c, class-internals.h, reflection.c: removed the per-method
1056         generics hashtable: we use the global one through the call of
1057         mono_class_inflate_generic_method ().
1058
1059 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
1060
1061         * class.c, metadata.c, class-internals.h: introduce yet another
1062         generics global cache for inflated methods (fixes 98% of the perf
1063         issue in bug #81806).
1064
1065 2007-07-23  Raja R Harinath  <rharinath@novell.com>
1066
1067         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
1068         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
1069         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
1070         return a MonoGenericInst containing (a copy) of those types.
1071         (mono_metadata_inflate_generic_inst): Update to changes.
1072         (mono_metadata_parse_generic_inst): Likewise.
1073         (mono_get_shared_generic_inst): Likewise.
1074         * reflection.c (mono_class_bind_generic_parameters): Likewise.
1075         (mono_reflection_bind_generic_method_parameters): Likewise.
1076         * metadata-internals.h: Likewise.
1077         * icall.c (free_generic_context): Kill.
1078         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
1079
1080         * reflection.c (reflection_methodbuilder_to_mono_method): Use
1081         mono_metadata_type_dup.
1082         * marshal.c (mono_mb_create_method): Likewise.
1083
1084         * metadata.c (mono_metadata_type_dup): Rename from
1085         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
1086         MonoImage.  Handle a few more cases, esp. when no mempool is given.
1087         * marshal.c, metadata-internals.h: Update to changes.
1088
1089 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
1090
1091         * class.c: fixed a small leak for array classes and removed warning.
1092
1093 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
1094
1095         * loader.c (mono_method_get_param_token): Make this work on generic methods.
1096         Return 0x8000000 for return parameters. Fixes #82161.
1097
1098 2007-07-21  Marek Habersack  <grendello@gmail.com>
1099
1100         * appdomain.c (get_shadow_assembly_location): append the current
1101         ticks value to the path. Avoids overwriting the same assemblies by
1102         several threads at the same time.
1103
1104 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
1105         and Raja R Harinath  <rharinath@novell.com>
1106
1107         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
1108         Simplify slightly.
1109         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
1110         property for testing if a method is a generic method definition.
1111
1112 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
1113
1114         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
1115
1116 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1117
1118         * verify.c: used function from private branch, reverted to the one in class.h 
1119
1120 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1121
1122         * verify.c: a typo slipped in and the code wont compile
1123
1124 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1125
1126         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
1127         disabled box instruction as it is doing the wrong thing
1128         improved stack dump messages, now it is easier to debug type related issues
1129
1130
1131 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
1132
1133         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
1134
1135 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1136
1137         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
1138         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
1139         grouped with class and valuetype. This change will simply 
1140         the code as it should be handled just like unmanaged pointers.
1141
1142 2007-07-19  Mark Probst  <mark.probst@gmail.com>
1143
1144         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
1145
1146 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1147
1148         * verify.c: several stack merge issues fixed, reference comparisons now
1149         check the type size. strict type check now works correctly.
1150         added more uses of IS_MANAGED_POINTER macro.
1151         fixed issues pointed by running the test suite against .net.
1152         
1153
1154 2007-07-19  Mark Probst  <mark.probst@gmail.com>
1155
1156         * class.c, loader.c, class-internals.h: Removed the
1157         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
1158         defines.
1159
1160         * icall.c: Better error checking in some internal reflection
1161         methods.
1162
1163 2007-07-18  William Holmes  <billholmes54@gmail.com>
1164
1165         * filewatcher.c : removed unused variable 'filename' in 
1166           ves_icall_System_IO_FSW_SupportsFSW
1167
1168 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
1169
1170         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
1171         obsolete, removed.
1172
1173 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
1174
1175         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
1176         
1177         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
1178
1179 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
1180
1181         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
1182         Implement generics support.
1183         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
1184
1185         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
1186         type_args and method_args arguments.
1187         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
1188         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
1189         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
1190
1191 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
1192
1193         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
1194           It adds a rootimage parameter to mono_reflection_get_type_internal,
1195           adds new function mono_reflection_get_type_with_rootimage and use
1196           the rootimage to resolve the types instead of the current image
1197
1198 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1199
1200         * culture-info-table.h: Forgot to update after r78304.
1201
1202 2007-07-13  Raja R Harinath  <rharinath@novell.com>
1203
1204         * class.c (mono_class_is_open_constructed_type)
1205         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
1206
1207 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
1208
1209         * class.c (mono_bounded_array_class_get):  method fails if used with
1210         an incomplete TypeBuilder enum (no basetype field), fixed it by 
1211         avoiding calculating the size for such array as it cannot be instantiated.
1212         Fix bug #82015
1213
1214 2007-07-12  Raja R Harinath  <rharinath@novell.com>
1215
1216         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
1217         field.
1218         * metadata.c, reflection.c: Update to changes.
1219
1220 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
1221
1222         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
1223         mono_class_is_valid_enum, they are used to valide a enum when loading.
1224         * reflection.c: used new functions to throw TypeLoadException when and
1225         invalid enum is build with TypeBuilder. Fixes #82018
1226   
1227 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
1228
1229         * object.c: forgot commit of mono_class_setup_methods () to access
1230         iface->methods.
1231         * object-internals.h: added a few more handy fields to
1232         MonoIMTCheckItem.
1233
1234 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
1235
1236         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
1237         iface->methods.
1238
1239 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
1240
1241         * class-internals.h, object-internals.h, object.c: IMT-based
1242         interface invocation core from Massimiliano Mantione
1243         (massi@ximian.com) with a reworked arch-specific interface,
1244         bsearch implementation and a few bugfixes and memory savings by me.
1245
1246 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
1247
1248         * class.c (mono_class_create_from_typedef): mono would segfault if 
1249         an enum did not have a __value field. It now throws a TypeLoadException
1250         for such cases. Fix bug #82022
1251
1252 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
1253
1254         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
1255
1256 2007-07-09  Mark Probst  <mark.probst@gmail.com>
1257
1258         * class.c (mono_class_init): If a class is already inited but has
1259         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
1260
1261 2007-07-09  Mark Probst  <mark.probst@gmail.com>
1262
1263         * class.c: Properly handle the case of an unimplemented interface
1264         method.  Fixes: 81673.
1265
1266 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
1267
1268         * class-internals.h, object.c: cleanup patch from massi: use
1269         MonoVTable->interface_bitmap since the vtable interfaces offset array
1270         is going away.
1271
1272 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
1273
1274         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
1275         GetMDStreamVersion icall instead.
1276
1277 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
1278
1279         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
1280         not use mono_dl_build_path() with a full library name: makes
1281         fallbacks to libgaim and libfam work.
1282
1283 2007-07-06  William Holmes  <billholmes54@gmail.com>
1284
1285         * assembly.c: Added a continue statement in probe_for_partial_name when
1286          parse_assembly_directory_name fails.  Fixes : 82002
1287
1288 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
1289
1290         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
1291         and added a verification  for TYPEDBYREF.
1292         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
1293         make native int interchangeable with int32 and some small cleanup and formating.
1294         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
1295         handle byref of byref.
1296         * verify.c (push_local): handle byref of byref.
1297         * verify.c (do_binop): invalid mix of values is unverifiable
1298         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
1299         added visibility checks
1300         * verify.c (field related method): added visibility checks
1301         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
1302
1303 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
1304
1305         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
1306         string.
1307
1308 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
1309
1310         * profiler.c (mono_profiler_load): Fix an off-by-one error.
1311
1312         * marshal.c (emit_marshal_string): When returning a string from managed code,
1313         allways make a copy even for unicode strings. Fixes #81990.
1314
1315 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
1316
1317         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
1318         of byref generic inst types (bug #81997).
1319
1320 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
1321
1322         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
1323         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
1324
1325 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
1326
1327         * marshal.c (emit_marshal_string): Add support for unicode strings in
1328         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
1329
1330 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
1331
1332         * verify.c: field load/store are now verified, missing only access checks now
1333
1334 2007-06-28  Martin Baulig  <martin@ximian.com>
1335
1336         * mono-debug.c (mono_debug_debugger_version): New public variable.
1337
1338 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
1339
1340         * locales.c: When constructing DateTimeFormat or NumberFormat for
1341         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
1342         MonoCultureInfo contructed from the current locale is always
1343         read-only and has UseUserOverride set to true. All MonoCultureInfo
1344         instances returned for GetCultures have both IsReadOnly and
1345         UseUserOverride set to true. Fixes part of bug #81930.
1346
1347 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
1348
1349        * icall-def.h: Update System.__ComObject icalls
1350        * marshal.c: Avoid managed transition (and object creation)
1351        when looking up COM interface in RCW.
1352        * marshal.h: Ditto.
1353        
1354        Code is contributed under MIT/X11 license.
1355
1356 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
1357
1358         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
1359         to avoid crashes during assembly unloading.
1360
1361 2007-06-22  Raja R Harinath  <rharinath@novell.com>
1362
1363         Fix MethodInfo.IsGenericMethodDefinition
1364         * reflection.c (mono_reflection_bind_generic_method_parameters):
1365         Rearrange code to ensure we always uses a generic method definition.
1366         * class.c (mono_class_inflate_generic_method_full): Set
1367         'generic_container' field only for generic method definitions.
1368         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
1369         Use presense of 'generic_container' field as indication of being a
1370         generic method definition.
1371
1372 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
1373
1374         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1375
1376         * object-internals.h: Reflect changes in the layout of the managed Delegate
1377         class.
1378         
1379         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
1380         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
1381         runtime memory used by the dynamic method. Fixes #77146.
1382
1383 2007-06-21  Dick Porter  <dick@ximian.com>
1384
1385         * file-io.h: 
1386         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
1387         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
1388         81767.
1389
1390 2007-06-21  Raja R Harinath  <rharinath@novell.com>
1391
1392         * reflection.c (method_encode_methodspec): Add a tripwire.
1393         * class.c (inflate_generic_type): The fully open generic type is
1394         not the same as the generic type definition.
1395
1396 2007-06-21  Martin Baulig  <martin@ximian.com>
1397
1398         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
1399
1400         * mono-debug-debugger.h
1401         (MonoDebuggerBreakpointInfo): Removed.
1402         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
1403         (mono_debugger_remove_breakpoint): Likewise.
1404         (mono_debugger_breakpoint_callback): Likewise.
1405         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
1406
1407 2007-06-21  Raja R Harinath  <rharinath@novell.com>
1408
1409         * metadata.c (mono_metadata_lookup_generic_class): The fully open
1410         generic type is not the same as the generic type definition.
1411         * class.c (mono_generic_class_get_class): Likewise.
1412
1413 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
1414
1415         * icall.c: The second argument to 
1416         System.Reflection.MethodBase.GetMethodFromHandleInternalType
1417         is a MonoType not a MonoClass.
1418
1419 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
1420
1421         * verify.c: support for function pointers in the verifier
1422
1423 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
1424
1425         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
1426
1427 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
1428
1429         * assembly.c: removed Mono.Data.SqliteClient from the list of
1430         forward-compatible assemblies as it breaks the ABI (bug #81899).
1431
1432 2007-06-19  Raja R Harinath  <rharinath@novell.com>
1433
1434         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
1435         lookup/update with the loader lock.
1436         * reflection.c (mono_class_bind_generic_parameters): No need to
1437         protect mono_metadata_lookup_* with the loader lock.
1438         * class.c (inflate_generic_type): Likewise.
1439         
1440         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
1441         on a generic instantiated type.
1442
1443 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
1444
1445         *verify.c: produce meanfull error messages on verification error
1446         *verify.c: fixed some cases of verification errors reported as validation errors
1447         *pedump.c: fixed the error name array, now it shows validation errors properly
1448         *verify.h: fixed the contant that should be used for verification errors
1449
1450 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
1451
1452         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
1453         for bug #77596, 81858 and 80743 (generics data structures on domain
1454         unload).
1455
1456 2007-06-15  Raja R Harinath  <rharinath@novell.com>
1457
1458         Avoid allocating 'MonoGenericContext' on the heap.
1459         * class-internals (_MonoMethodInflated::context): Make field
1460         inline, not a pointer.
1461         * loader.c (method_from_methodspec): Allocate 'new_context' on the
1462         stack.  Use the context embedded within the inflated method as the
1463         hash key, rather than 'new_context'.
1464         * class.c (inflate_generic_context): Simplify.  Return a struct
1465         rather than allocating on the heap.
1466         (mono_class_inflate_generic_method_full): Update to changes.  Now,
1467         doesn't salt away a copy of the context -- simplifying the
1468         lifetime rules of a 'MonoGenericContext *'.
1469         (mono_method_get_context): Return pointer to embedded context.
1470         (setup_generic_array_ifaces): Allocate temporary context on stack.
1471         * reflection.c (inflate_mono_method): Likewise.
1472         (mono_reflection_bind_generic_method_parameters): Likewise.
1473         Use the context embedded within the inflated method as the hash key.
1474
1475         Avoid a source of allocation of 'MonoGenericContext'.
1476         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
1477         and 'cached_context' fields into embedded 'MonoGenericContext' field.
1478         * class.c: Update to changes.
1479         (mono_generic_class_get_context): Simplify drastically.  Now just
1480         returns a pointer to the field.
1481         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
1482         argument as a const pointer.
1483         (mono_metadata_generic_context_equal): Likewise.
1484         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
1485         Update to changes.
1486
1487 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
1488
1489         * verify.c improved the handling of brtrue/brfalse, factored out common code
1490
1491 2007-06-14  Raja R Harinath  <rharinath@novell.com>
1492
1493         Kill MonoGenericMethod.
1494         * class-internals.h (MonoGenericContext::method_inst): Rename from
1495         'gmethod' and convert to a MonoGenericInst.
1496         (MonoGenericMethod): Remove.
1497         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
1498         * loader.c (method_from_methodspec): Update to changes.  Use a
1499         MonoGenericContext as the key to the hashtable.
1500         * metadata.c (mono_metadata_generic_context_equal): Rename from 
1501         'mono_metadata_generic_method_equal' and take MonoGenericContext.
1502         (mono_metadata_generic_context_hash): Likewise from
1503         'mono_metadata_generic_method_hash'.  Change hash function.
1504         (mono_metadata_load_generic_params): Update to changes.
1505         (mono_get_shared_generic_method): Remove.
1506         * metadata-internals.h (mono_get_shared_generic_method): Remove.
1507         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
1508         (inflate_generic_context): Likewise.
1509         (mono_class_inflate_generic_method_full): Likewise.
1510         (setup_generic_array_ifaces): Likewise.
1511         (mono_class_create_from_typespec): Likewise.
1512         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
1513         (method_encode_methodspec): Update callsite.
1514         (reflection_methodbuilder_to_mono_method): Update to changes.
1515         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
1516         MonoGenericContext as the key to the hashtable.
1517         (inflate_mono_method): Update to changes.
1518
1519         * class-internals.h (MonoGenericMethod::container): Remove.
1520         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
1521
1522 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
1523
1524         * profiler-private.h, profiler.c, profiler.h: added API to profile
1525         exception events.
1526
1527 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
1528
1529         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
1530
1531 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
1532
1533         * verify.c: method invocation is now validated, now we verify parameter types on stack.
1534         Fixed overflow and underflow not aborting the verification process.
1535
1536 2007-06-13  Mark Probst  <mark.probst@gmail.com>
1537
1538         * class-internals.h (MonoStats): Added stats entries for dynamic
1539         code allocations.
1540
1541 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
1542
1543         * loader.c (mono_free_method): Free header->locals and header->clauses.
1544
1545         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
1546         dynamic case.
1547
1548         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
1549
1550         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
1551
1552 2007-06-12  Raja R Harinath  <rharinath@novell.com>
1553
1554         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
1555         the tables.
1556
1557 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1558
1559         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
1560
1561 2007-06-11  Raja R Harinath  <harinath@gmail.com>
1562
1563         MonoGenericMethod on a diet
1564         * class-internals.h (_MonoMethodInflated::reflection_info): Move
1565         here ...
1566         (_MonoGenericMethod::reflection_info): ... from here.
1567         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
1568         Update to changes.
1569         * reflection.c (inflate_mono_method): Likewise.
1570         (mono_reflection_bind_generic_method_parameters): Likewise.
1571
1572 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1573
1574         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
1575         *verify.c: factored long ldarg forms to share code with short forms
1576
1577 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1578
1579         *verify.c: fixed code formating factored some duplicate code
1580         into a new function
1581
1582         *verify.h: fixed binary incompatibility introduced earlier
1583
1584         *pedump.c: fixed formating
1585
1586 2007-06-11  Raja R Harinath  <harinath@gmail.com>
1587
1588         Fix assertion when disassembling Mono.C5.dll
1589         * loader.c (method_from_methodspec): Avoid inflating a method
1590         twice with the same context.  If the methodref is inflated, use
1591         the declaring method instead.
1592
1593         * class.c (mono_class_from_generic_parameter): Fix case similar to
1594         bug #81830 handled below, but for method containers.
1595
1596 2007-06-10  Raja R Harinath  <harinath@gmail.com>
1597
1598         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
1599         get_shared_generic_class.  Directly inflate the instance.
1600         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
1601         (inflate_generic_class): Delete.
1602         (get_shared_generic_class): Delete.  Move setting of
1603         'cached_class' and 'cached_context' ...
1604         * metadata.c (mono_metadata_lookup_generic_class): ... here.
1605
1606         * metadata.c (mono_metadata_lookup_generic_class): Change
1607         signature to take the components of a MonoGenericClass rather than
1608         an allocated MonoGenericClass.  Change semantics to be intern-like.
1609         * reflection.c (mono_class_bind_generic_parameters): Update to
1610         changes.  Make locking region tighter.
1611         * class.c (inflate_generic_class): Update to changes.
1612         (get_shared_generic_class): Likewise.
1613         * metadata-internals.h: Likewise.
1614
1615         * reflection.c (mono_class_bind_generic_parameters): Take and
1616         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
1617         (mono_reflection_bind_generic_parameters): Use
1618         'mono_class_bind_generic_parameters' rather than duplicate the code.
1619         * class.c (mono_bounded_array_class_get): Update to changes.
1620         * object-internals.h: Likewise.
1621
1622         * reflection.c (mono_class_bind_generic_parameters): Only support
1623         parameterizing generic type definitions.  Remove support for other
1624         open types.
1625
1626 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
1627
1628         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
1629
1630         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
1631         in the dynamic case.
1632
1633 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
1634
1635         * threads.c: When cleaning up thread, reset the Background bit.
1636         Fixes bug #81720.
1637
1638 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
1639
1640        * metadata.c: Move variable declarations to top of scope.
1641        * verify.c: Move variable declarations to top of scope.
1642
1643        Code is contributed under MIT/X11 license.
1644
1645 2007-06-08  Raja R Harinath  <rharinath@novell.com>
1646
1647         * reflection.c (mono_class_bind_generic_parameters): Replace
1648         open-coded loop with mono_metadata_inflate_generic_inst.
1649
1650         * class.c (get_shared_generic_class): Don't call
1651         mono_get_shared_generic_inst.  Use the container's own
1652         'class_inst'.
1653
1654         * metadata.c (mono_metadata_load_generic_params): Move
1655         initialization of 'context' field here from ...
1656         * class.c (mono_class_create_from_typedef): ... here, and ...
1657         * loader.c (mono_get_method_from_token): ... here.
1658
1659         * class.c (get_shared_generic_class): Rename from
1660         mono_get_shared_generic_class and make static.
1661         (mono_get_shared_generic_inst): Move to metadata.c.
1662         * loader.c (mono_get_shared_generic_method): Likewise.
1663         * class-internals.h, metadata-internals.h: Update to changes.
1664
1665         Fix #81830
1666         * class.c (mono_class_from_generic_parameter): Don't assume a
1667         generic container owner exists.  Generic containers from monodis
1668         don't have any.
1669
1670 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
1671
1672         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
1673         * verify.h: new typedefs to returns the non-verifiable status
1674         * verify.c: initial implementation of generics, stack merging and object compatibility check
1675
1676 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1677
1678         * class.c, image.c, class-internals.h (MonoImage): class_cache is
1679         a MonoInternalHashTable again (fixed bug in internal hash table
1680         code).
1681
1682 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1683
1684         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
1685         MonoInternalHashTable again (fixed bug in internal hash table
1686         code).
1687
1688 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1689
1690         * class.c, image.c, class-internals.h, domain.c,
1691         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
1692         changes.  Have to figure out what makes them break the SWF
1693         regression.
1694
1695 2007-06-04  Mark Probst  <mark.probst@gmail.com>
1696
1697         * class.c, image.c, class-internals.h (MonoImage): class_cache is
1698         a MonoInternalHashTable now.
1699
1700 2007-06-04  Mark Probst  <mark.probst@gmail.com>
1701
1702         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
1703         MonoInternalHashTable now.
1704
1705 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
1706
1707         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
1708         invoke_impl code.
1709
1710         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
1711
1712         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
1713         dependent trampoline.
1714
1715         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1716
1717         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
1718
1719 2007-05-29  Robert Jordan  <robertj@gmx.net>
1720
1721         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
1722
1723 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
1724
1725         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
1726
1727 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
1728
1729        * marshal.c: Fix interface lookup loops for
1730        cominterop_get_com_slot_for_method and 
1731        cominterop_get_method_interface. Only need to lookup
1732        if type is a class, else use interface type method is on.
1733
1734        Code is contributed under MIT/X11 license.
1735
1736 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
1737
1738         * reflection.c: HasSecurity can be present even if no specially 
1739         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
1740         SecurityAttribute). Fix CAS regression tests on buildbot.
1741
1742 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
1743
1744        * appdomain.c: Add configure checks for header files.
1745        * image.c: Add configure checks for header files.
1746        * file-io.c: Add configure checks for header files.
1747        * debug-mono-symfile.c: Add configure checks for header files.
1748        * threadpool.c: Add configure checks for header files.
1749        * console-io.c: Add configure checks for header files.
1750        * profiler.c: Add configure checks for header files.
1751        * rawbuffer.c: Add configure checks for header files.
1752        * icall.c: Add configure checks for header files.
1753        * rand.c: Add configure checks for header files.
1754        * socket-io.c: Add configure checks for header files.
1755
1756        Code is contributed under MIT/X11 license.
1757
1758 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
1759
1760         * reflection.c (mono_custom_attrs_from_builders): Remove the 
1761         assertion as it breaks the build.
1762         
1763         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
1764
1765         * reflection.c (lookup_custom_attr): Make a copy here too.
1766
1767         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
1768         dynamic images.
1769
1770         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
1771         images.
1772
1773         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
1774         info.
1775
1776 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
1777
1778         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
1779         (load_cattr_value): Ditto.
1780
1781 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
1782
1783         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
1784
1785 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
1786
1787         * threads.c: In "start_wrapper", set apartment_state to MTA if
1788         apartment_state is Unknown and we're running on 2.0 profile or
1789         higher.
1790         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
1791         to main method, then set apartment_state to Unknown on 1.0 profile,
1792         and MTA on 2.0 profile.
1793
1794 2007-05-16  Jb Evain  <jb@nurv.fr>
1795
1796         * class-internals.h (MonoDefaults): Add an attribute_class and
1797           customattribute_data_class.
1798         * domain.c (mono_init_internal): Populate them.
1799         * reflection.c: Use them to remove duplicates. Make a vew
1800         MonoClass variables `static'.
1801
1802 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
1803
1804         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
1805         step in implementing IMT, so that all isinst checks now can go
1806         through the bitmap.
1807         This was needed because vtables for TransparentProxy need to look
1808         like the vtable of the "target" class, so they need to point to
1809         its interface bitmap directly.
1810
1811         * object.c: inside "mono_class_create_runtime_vtable" and
1812         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
1813
1814 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
1815
1816         * object-internals.h
1817           culture-info.h : added territory field in MonoCulture and
1818           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
1819         * locales.c : fill territory field above too.
1820         * culture-info-table.h : regenerated.
1821
1822 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
1823
1824         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
1825         Fixes #81599.
1826
1827 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
1828
1829         * object.c: Always initialize apartment, even if 
1830         there is no custom attributes on entry point.
1831         
1832         Code is contributed under MIT/X11 license.
1833
1834 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
1835
1836         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
1837         * metadata.c: If no encoding is set, check for unicode
1838         on class.
1839         
1840         Code is contributed under MIT/X11 license.
1841
1842 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
1843
1844         * threads.c: Handle if mono_thread_current returns NULL 
1845         
1846         Code is contributed under MIT/X11 license.
1847
1848 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
1849
1850         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
1851         in start_wrapper. Added mono_thread_init_apartment_state and
1852         mono_thread_cleanup_apartment_state.
1853         * object.c: Initialize thread apartment state on main thread
1854         by checking for STAThreadAttribute on entry point.
1855         * object-internals.h: Add apartment_state field to MonoThread.
1856         * threads-types.h: Add unmanaged definition of 
1857         System.Threading.ApartmentState, MonoThreadApartmentState.
1858         
1859         Code is contributed under MIT/X11 license.
1860         
1861 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
1862
1863         * class.c: Fix windows build.
1864         * class-internals.h: Fix windows build.
1865         
1866         Code is contributed under MIT/X11 license.
1867
1868 2007-05-08  Robert Jordan  <robertj@gmx.net>
1869
1870         * process.c (CreateProcess_internal):
1871         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
1872         .CreateNoWindow was specified. Fixes #81496.
1873
1874 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
1875
1876         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
1877         step in implementing IMT, replaced it with two compact arrays
1878         (interfaces_packed and interface_offsets_packed) and a bitmap that
1879         is used for isinst checks (interface_bitmap).
1880
1881         * class.c: (compare_interface_ids): compare function to pass to
1882         bsearch when looking for an interface with a given id.
1883         (mono_class_interface_offset): reimplemented using bsearch on
1884         interfaces_packed, getting the offset from interface_offsets_packed.
1885         (print_implemented_interfaces): utility debugging function.
1886         (setup_interface_offsets): reworked to initialize interfaces_packed,
1887         interface_offsets_packed and interface_bitmap.
1888
1889         * object.c: replaced all accesses to "MonoClass.interface_offsets"
1890         with uses of interfaces_packed and interface_offsets_packed.
1891
1892 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
1893
1894         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
1895         mono_class_interface_offset prototype to wrap all accesses to
1896         "MonoClass.interface_offsets".
1897
1898         * class.c: Implemented mono_class_interface_offset, and wrapped all
1899         accesses to "MonoClass.interface_offsets".
1900
1901         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
1902         "MonoClass.interface_offsets".
1903
1904 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
1905
1906         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
1907         GetMethodFromHandle overloads (bug #78637).
1908
1909 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
1910
1911         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
1912         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
1913
1914 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
1915
1916         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
1917         #81498.
1918
1919         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
1920         gracefully.
1921         (mono_custom_attrs_from_index): Ditto.
1922
1923         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
1924         Fixes #81501.
1925
1926 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
1927
1928         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
1929         is now allocated from a mempool.
1930
1931 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
1932
1933         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
1934         caller holds threads_lock, leading to deadlocks. Fixes #81476.
1935
1936 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
1937
1938         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
1939         mono_loader_clear_error () too late. Fixes #81463.
1940
1941 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
1942
1943         * culture-info-table.h : regenerated.
1944
1945 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
1946
1947         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
1948         is missing.
1949
1950 2007-04-25  Dick Porter  <dick@ximian.com>
1951
1952         * Makefile.am: Put the mingw enforced-optimisation back into the
1953         PLATFORM_WIN32 section.
1954
1955 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
1956
1957         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
1958         patch.
1959
1960         * image.c (mono_image_load_module): New API function to load a module reference.
1961
1962         * image.c (load_modules): Load modules lazily. Fixes #80812.
1963
1964         * class.c (mono_class_from_typeref): Use mono_image_load_module.
1965         
1966         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
1967
1968         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
1969         to mono_image_load_module_dynamic.
1970
1971 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
1972
1973         * marshal.c: Fix calling convention for CCW on non-windows
1974         platforms. STDCALL on windows, CDECL everywhere else to work 
1975         with XPCOM and MainWin COM.
1976         
1977         Code is contributed under MIT/X11 license.
1978
1979 2007-04-23  Martin Baulig  <martin@ximian.com>
1980
1981         Fix #80969.
1982
1983         * loader.c
1984         (method_from_memberref): Added `gboolean *used_context' argument.
1985         (mono_get_method_from_token): Likewise.
1986         (mono_get_method_full): Don't insert the method in the cache when
1987         `used_context' is true.
1988
1989 2007-04-23  Raja R Harinath  <rharinath@novell.com>
1990
1991         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
1992
1993         * reflection.c (mono_reflection_bind_generic_parameters): Don't
1994         create new MonoTypes for returned types.
1995         * class.c (mono_generic_class_get_class): Export mono-internal.
1996         * class-internals.h: Update to changes.
1997
1998 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
1999
2000         * threadpool.c, threadpool.h, icall-def.h: patch from
2001         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
2002
2003 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
2004
2005         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
2006         
2007         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
2008
2009         * threads.c (mono_thread_get_stack_bounds): New helper function.
2010
2011         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
2012         Correctly compute stack bounds when attaching. Fixes #81394.
2013
2014 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
2015
2016         * reflection.c: fix handling of doubles in custom attributes
2017         for the arm-fpa format (bug #81368).
2018
2019 2007-04-18  Raja R Harinath  <rharinath@novell.com>
2020
2021         * reflection.c (assembly_add_win32_resources): Mildly relax an
2022         bounds check to let the end pointer point just past the end of the
2023         allocated buffer.  (may fix #81384)
2024
2025 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
2026
2027         * culture-info-table.h : regenerated.
2028
2029 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
2030
2031         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
2032         the thread is aborted early.
2033
2034 2007-04-05  Dick Porter  <dick@ximian.com>
2035
2036         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
2037         FindFirstFile()/FindNextFile() to find entries.  This lets the
2038         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
2039         81038.
2040
2041         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
2042         the parameters of
2043         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
2044
2045 2007-04-04  Martin Baulig  <martin@ximian.com>
2046
2047         * debug-helpers.c
2048         (mono_method_desc_full_match): Add support for nested classes.
2049
2050 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
2051
2052         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
2053
2054 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
2055
2056         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
2057         waiting for too many threads.
2058
2059 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
2060
2061         * environment.c: Fix return value check on uname so we can get the 
2062         executing version on Solaris operating systems.
2063
2064 2007-03-28  Jb Evain  <jbevain@gmail.com>
2065
2066         * class.c (mono_type_get_name_recurse): Complete the
2067         fix for the creation of assembly qualified names for
2068         pointer types. Fixes #81208.
2069
2070 2007-03-27  Dick Porter  <dick@ximian.com>
2071
2072         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
2073         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
2074         changed.
2075
2076         * threads.c
2077         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
2078         the value of ReleaseMutex().
2079
2080 2007-03-27  Dick Porter  <dick@ximian.com>
2081
2082         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
2083         in little-endian order, not network endian, so must be converted
2084         to host endian here.  Fixes bug 80593.
2085
2086 2007-03-22  Jb Evain  <jbevain@gmail.com>
2087
2088         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
2089         qualified names for pointer types. Fixes #81208.
2090
2091 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
2092
2093         * marshal.c: Add support for PreserveSigAttribute. 
2094         
2095         Code is contributed under MIT/X11 license.
2096
2097 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
2098
2099         * process.c: Fix endianness issues. Fixes #81126.
2100
2101         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
2102         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
2103
2104         * image.c (mono_image_lookup_resource): Make this work on big-endian
2105         machines.Change API contract so the caller needs to free the return value.
2106         
2107         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
2108         API change.
2109         
2110 2007-03-14  Martin Baulig  <martin@ximian.com>
2111
2112         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
2113         mono_type_get_desc() as well.
2114
2115 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
2116
2117         * icall.c:  Fix environ access in VS.  
2118         
2119 2007-03-13  Alp Toker  <alp@atoker.com>
2120
2121         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
2122         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
2123         #63841.
2124
2125 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
2126
2127         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
2128         circular references among dynamic methods. Fixes #81091.
2129
2130         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
2131
2132 2007-03-09  Martin Baulig  <martin@ximian.com>
2133
2134         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
2135
2136 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
2137
2138         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
2139         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
2140         
2141         Code is contributed under MIT/X11 license.
2142         
2143 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
2144
2145         * loader.c: Reapply patch for bug #79424.
2146
2147 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
2148
2149         * metadata.c (mono_type_to_unmanaged): Only convert object to
2150         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
2151
2152 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
2153
2154         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
2155         (and incorrectly set) is_reference field from MonoGenericInst.
2156
2157 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
2158
2159         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
2160         a little earlier.
2161
2162         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
2163
2164         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
2165
2166 2007-03-05  Miguel de Icaza  <miguel@novell.com>
2167
2168         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
2169         FileOptions.1 value to mean "temporary", map that to
2170         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
2171
2172         Fixes 80688
2173
2174 2007-03-03  Marek Habersack  <mhabersack@novell.com>
2175
2176         * appdomain.c: implement MS .Net style shadow copying. Copies of
2177         the assemblies are made in a subdirectory of the dynamic base
2178         directory, the assembly names are preserved.
2179         Copy .mdb and .config files along with the assemblies being shadowed.
2180
2181 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
2182
2183         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
2184         (emit_marshal_handleref): Ditto.
2185
2186         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
2187         on Visual C++. Fixes #80671.
2188
2189 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
2190
2191         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
2192         for clone operations.
2193
2194 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
2195
2196         * marshal.c: Fix warnings.
2197
2198 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
2199
2200         * loader.c: allow case-insensitive matching of the dll name
2201         in dllmap handling when prefixed with "i:".
2202
2203 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
2204
2205         * threads.c: Fix #ifdef for dummy_apc function for VS.
2206
2207 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
2208
2209         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
2210
2211 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
2212         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
2213         giving precedence to the methods with a fully qualified name
2214         (InterfaceName.MethodName) when building the interface sections
2215         of the vtable.
2216
2217 2007-02-16  Dick Porter  <dick@ximian.com>
2218
2219         * threadpool.c (append_job): Fix fast-path array handling, so it's
2220         less likely the array will grow exponentially when the load is
2221         heavy.
2222
2223 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
2224
2225         * metadata-internals.h, loader.c: fix dllmap lookup order
2226         for non-function maps, too, and prepare for fallback code.
2227
2228 2007-02-12  Robert Jordan  <robertj@gmx.net>
2229
2230         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
2231         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
2232         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
2233         GlobalFree. Fixes a part of bug #77075.
2234
2235 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
2236
2237         * loader.c: implemented typedef parent in field memberref.
2238
2239 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
2240
2241         * marshal.c: Fix warnings and remember to call Release on
2242         IUnknown of RCW.
2243         
2244         Code is contributed under MIT/X11 license.
2245
2246 2007-02-10  Miguel de Icaza  <miguel@novell.com>
2247
2248         * class-internals.h: Add MonoHandleRef definition, and
2249         handleref_class to mono_defaults. 
2250
2251         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
2252         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
2253
2254         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
2255         (do nothing on this stage)
2256         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
2257         (emit_marshal_handleref): New method, used for argument handling
2258         of HandleRefs. 
2259
2260 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
2261
2262         * class.c (mono_class_setup_parent): Lazily init com types.
2263         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
2264         init com types.
2265         * object.c (mono_remote_class_vtable): Lazily init com types.
2266         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
2267         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
2268         * domain-internals.h: Expose mono_init_com_types.
2269         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
2270         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
2271         Add support for COM Callable Wrapper marshalling.
2272         * marshal.h: Add icall definitions.
2273         * gc.c: Handle freeing of CCWs in finalizer code.
2274         
2275         Code is contributed under MIT/X11 license.
2276
2277 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
2278
2279         * reflection.c: changed all the signature encoding code to use
2280         a variable-sized buffer.
2281
2282 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
2283
2284         * marshal.c: locking fixes: never take the loader lock
2285         or other runtime locks when holding the marshal lock
2286         (fixes bug#80664).
2287
2288 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
2289
2290         * marshal.c: make the delegate function pointer mapping
2291         work for the moving GC.
2292
2293 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
2294
2295         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
2296         for bug #80618.
2297
2298 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
2299
2300         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
2301         gmodule.
2302
2303 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
2304
2305         * threadpool.c: made the code moving-GC safe.
2306
2307 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
2308
2309         * assembly.c, boehm-gc.c, class-internals.h, class.c,
2310         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
2311         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
2312         warning cleanup.
2313         * reflection.c: warning cleanup, some threading and moving GC fixes.
2314
2315 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
2316
2317         * class.c, loader.c: create the needed Set/Get/Address array methods
2318         as well as the .ctors in mono_class_init (), fixes bug #80567.
2319
2320 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
2321
2322         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
2323         we doesn't decrease its alignment. Should fix the sparc build.
2324
2325 2007-01-24  Dick Porter  <dick@ximian.com>
2326
2327         * socket-io.c
2328         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
2329         Create the returned object if we need to ignore an unsupported
2330         socket option.  Fixes a segfault reported by Atsushi.
2331
2332 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
2333
2334         * class.c, object.c: restrict GC-tracked fields to
2335         UIntPtr fields used inside corlib, so we provide better
2336         type info to the GC and also allow broken packing as in
2337         bug #80580.
2338
2339 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
2340
2341         * sgen-gc.c: removed duplicated function.
2342
2343 2007-01-19  Miguel de Icaza  <miguel@novell.com>
2344
2345         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
2346         value that means that the value is not supported, but that we
2347         should not return a failure, but instead report this as a
2348         successful operation.
2349
2350 2007-01-19  Raja R Harinath  <rharinath@novell.com>
2351
2352         Fix tests/bug79956.2.il
2353         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
2354         (mono_generic_class_get_class): If the generic definition in an
2355         enum, copy over other fields related to it.
2356
2357 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
2358
2359         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
2360         genericinst enums (bug #79215).
2361
2362 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
2363         * class.c: Fix bug 80307.
2364
2365 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
2366
2367         * image.c: if the file table is not present, try to load
2368         all the modules, since we don't have info about them
2369         having or not metadata (bug #80517).
2370         * assembly.c: allow mono_assembly_load_references () to
2371         work for netmodules.
2372
2373 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
2374
2375         * image.c, metadata-internals.h, object.c: execute module
2376         cctors when running on the 2 runtime if present (bug #80487).
2377
2378 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
2379
2380         * icall.c: optimized InitializeArray() on bigendian.
2381
2382 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
2383
2384         * icall.c: fix for the broken ARM FPA double format.
2385
2386 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
2387
2388         * icall.c: handle endian issues for r4 and r8 types, too, in
2389         the InitializeArray() icall.
2390
2391 2007-01-15  Miguel de Icaza  <miguel@novell.com>
2392
2393         * loader.c (mono_loader_error_prepare_exception): Clear the error
2394         once we have extracted the information from it, do this before we
2395         call into the JIT's class loading mechanisms.
2396
2397         * object.c (mono_class_create_runtime_vtable): Do not clear the
2398         loader error before calling mono_class_get_exception_for_failure
2399         as the loader error is needed inside
2400         mono_class_get_exception_for_failure to throw the error (thinko).
2401
2402         Fixes #80521
2403         
2404 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
2405
2406         * reflection.c: align fields rva data so it's faster to load at
2407         runtime.
2408
2409 2007-01-12  Raja R Harinath  <rharinath@novell.com>
2410
2411         Prepare to simplify GenericMethod handling.
2412         * class-internals.h (mono_method_get_context): New accessor function.
2413         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
2414         rather than directly accessing '->context' field.
2415
2416         * class-internals.h (_MonoGenericParam.method): Move ...
2417         (_MonoGenericContainer): ... here.  Add into union with klass field.
2418         * class.c, icall.c, loader.c, metadata.c, reflection.c:
2419         Update to changes.
2420
2421 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
2422
2423         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
2424         the wrapper type enum and reduce relocations.
2425
2426 2007-01-12  Raja R Harinath  <rharinath@novell.com>
2427
2428         * reflection.c (inflate_mono_method): Reuse method instantiation
2429         from the generic method, if available.
2430
2431 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2432
2433         * marshal.c (emit_marshal_variant): Fix conv_arg
2434         type in last commit, based on whether parameter is byref.
2435         
2436 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2437
2438         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
2439         marshalling.
2440         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
2441         MONO_TYPE_OBJECT back for VARIANT support.
2442
2443 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2444
2445         * marshal.c, marshal.h, icall-def.h: Implement 
2446         Marshal.ReAllocCoTaskMem.
2447
2448 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
2449
2450         * marshal.c: memory retention fixes: use the proper
2451         image cache for runtime_invoke method lookups.
2452
2453 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
2454
2455         * mempool.c: added code to help debug mempool allocations.
2456
2457 2007-01-11  Dick Porter  <dick@ximian.com>
2458
2459         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
2460         support (experimenting with faking it with IP_MTU_DISCOVER for
2461         systems that don't have IP_DONTFRAGMENT.)
2462         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
2463         icall.
2464
2465         * icall-def.h: new System.Net.Sockets.Disconnect icall.
2466
2467         * socket-io.h: Add new fields to MonoSocketAsyncResult
2468         corresponding to the new ones in Socket.cs.
2469
2470 2007-01-11  Raja R Harinath  <rharinath@novell.com>
2471
2472         Fix IronPython regression mentioned in #80249
2473         * metadata.c (do_mono_metadata_parse_generic_class): Clear
2474         'cached_context' field, since it may have been initialized as a
2475         side-effect of metadata parsing.
2476
2477         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
2478         (_MonoGenericClass.cached_class): Move here and rename from lone
2479         remaining field of ...
2480         (_MonoInflatedGenericClass): ... this.  Remove.
2481         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
2482         to changes.
2483
2484         Fix mcs/tests/test-128.cs regression.
2485         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
2486         2007-01-10 change below.
2487         [MONO_TYPE_OBJECT]: Recurse into array case.
2488
2489 2007-01-11  Raja R Harinath  <harinath@gmail.com>
2490
2491         * class-internals.h (mono_get_inflated_generic_class): Remove.
2492         * class.c (mono_get_inflated_generic_class): Remove.
2493         (mono_generic_class_get_class): Rename from
2494         mono_class_create_generic.
2495         (mono_class_from_mono_type) [GENERICINST]: Use it.
2496         * reflection.c, metadata.c: Update to changes.  Use
2497         'mono_class_from_mono_type'.
2498
2499 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
2500
2501         * reflection.c: use passed type when encoding an array element
2502         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
2503
2504 2007-01-09  Robert Jordan  <robertj@gmx.net>
2505
2506         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
2507         result arguments (someDelegate.EndInvoke (unrelatedAres)).
2508         Fixes bug #80392.
2509
2510 2007-01-09  Raja R Harinath  <rharinath@novell.com>
2511
2512         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
2513
2514         * object.c (set_value): Avoid aliasing between type->data.klass
2515         and type->data.generic_class.
2516
2517         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
2518
2519 2007-01-08  Raja R Harinath  <rharinath@novell.com>
2520
2521         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
2522         between type->data.klass and type->data.generic_class.
2523
2524 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
2525
2526         * marshal.c: In MS.NET, StringBuilder objects are not copied by
2527         value in out parameters.
2528
2529 2007-01-08  Raja R Harinath  <rharinath@novell.com>
2530
2531         Simplify invariant for MonoGenericClass::klass field.
2532         * class.c (mono_class_create_generic): Verify 'klass' is null.
2533         * metadata.c (do_mono_metadata_parse_generic_class): Don't
2534         initialize 'klass' field.
2535
2536 2007-01-05  Raja R Harinath  <rharinath@novell.com>
2537
2538         Ongoing work to avoid redundant data and simplify invariants.
2539         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
2540         'generic_class', and change type to a GenericInst.
2541         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
2542         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
2543
2544 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
2545
2546         * class.c : skip io-layer under PLATFORM_WIN32.
2547
2548 2007-01-03  Tor Lillqvist  <tml@novell.com>
2549
2550         Fix #80305: In a bundled executable, look in the bundled exe
2551         assembly to determine the runtime version. Add the possibility to
2552         bundle also the machine.config file.
2553         
2554         * assembly.c (mono_assembly_open_from_bundle): Make
2555         non-static. Allow being called even if we have no bundled
2556         assemblies, and return NULL right away in that case.
2557
2558         * domain-internals.h: Declare mono_assembly_open_from_bundle()
2559         here.
2560
2561         * domain.c (app_config_parse): Take an assembly exe file name as
2562         parameter instead of a config file name. Check for a bundled
2563         config file for that assembly by calling
2564         mono_config_string_for_assembly_file() (see below) before looking
2565         for one in the file system.
2566         (get_runtimes_from_exe): Corrsponding change to call of
2567         app_config_parse().
2568         (get_runtimes_from_exe): Check for bundled assembly exe file first
2569         by calling mono_assembly_open_from_bundle(). If no bundled
2570         assembly exe file is found, call mono_image_open() as before to
2571         look it up in the file system.
2572
2573         * mono-config.c: Add variable bundled_machinec_onfig.
2574         (mono_config_string_for_assembly_file): New function.
2575         (mono_config_for_assembly): Move code snippet that looks for a
2576         bundled assembly .config file into the above new function. Call
2577         it.
2578         (mono_register_machine_config, mono_get_machine_config): New
2579         functions to set and retrieve
2580
2581         * assembly.h: Declare mono_register_machine_config().
2582
2583         * mono-config.h: Declare mono_get_machine_config() and
2584         mono_config_string_for_assembly_file().
2585
2586         * icall.c: No declaration of environ necessary on Win32. It is
2587         declared (as a macro expanding to a function call) in stdlib.h.
2588         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
2589         New internal mono function. Returns the value of
2590         mono_get_machine_config() as a Mono string.
2591
2592         * icall-def.h: Add get_bundled_machine_config().
2593
2594 2007-01-04  Raja R Harinath  <rharinath@novell.com>
2595
2596         Remove redundant field
2597         * class-internals.h (_MonoGenericContext.container): Remove field.
2598         * loader.c (mono_method_get_signature_full): Don't parse a
2599         "container" for a signature parse when the signature is inflated
2600         immediately.
2601         (method_from_methodspec): Likewise, for a generic_inst.
2602         * class.c, metadata.c, reflection.c: Update to changes.
2603
2604 2006-01-04  Raja R Harinath  <rharinath@novell.com>
2605
2606         * class-internals.h (_MonoGenericClass): Rename 'context' field to
2607         'cached_context', and change semantics -- it starts off NULL, and
2608         is initialized on demand.
2609         * class.c (mono_generic_class_get_context): New accessor to
2610         replace 'context' field accesses.
2611         (mono_class_get_context): New helper.
2612         (*): Update to changes.
2613         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
2614
2615 2007-01-03  Miguel de Icaza  <miguel@novell.com>
2616
2617         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
2618         before the memcpy.   Fixes Marshal2 regression.
2619
2620 2007-01-02  Jb Evain  <jbevain@gmail.com>
2621
2622         * blob.h: add a MONO_TYPE_ENUM definition
2623         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
2624         fix the encoding of arrays of enums in custom attributes.
2625
2626         Fixes #79666.
2627
2628 2007-01-01  Miguel de Icaza  <miguel@novell.com>
2629
2630         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
2631         string is null terminated, but only cut the string short if it
2632         overflows the buffer.   
2633         
2634         (mono_string_to_byvalstr): Also fix this routine.   The code here
2635         was not properly terminating a string (it was only terminated
2636         because of the previous catch-all memset). 
2637
2638         I left the memset, because I do not know if applications expect
2639         the runtime to clear this region. 
2640
2641         Fixes #79944.
2642
2643         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
2644         Clear the error before returning to unmanaged code to prevent the
2645         runtime from being confused later on (fixes  80420).
2646         (ves_icall_type_from_name): Always call mono_loader_clear_error
2647         after parsing a type that could have failed.
2648         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
2649
2650         * loader.c (mono_loader_clear_error): Fix indentation.
2651
2652 2006-12-28  Martin Baulig  <martin@ximian.com>
2653
2654         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
2655
2656 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
2657
2658         * reflection.c: patch from Rolf Bjarne Kvinge to fix
2659         getting a token for an EnumBuilder.
2660
2661 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
2662
2663         * reflection.c: be more careful in case resource generation
2664         fails to create the data array.
2665
2666 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
2667
2668         * sgen-gc.c: write barrier for clone and fix unregister handles.
2669
2670 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
2671
2672         * reflection.c: some fixes needed in the generics code for the moving GC.
2673
2674 2006-12-22  Robert Jordan  <robertj@gmx.net>
2675
2676         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
2677         account. Fixes bug #80299.
2678
2679 2006-12-21  Raja R Harinath  <rharinath@novell.com>
2680
2681         Fix WaitHandle usage in delegates.
2682         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
2683         * object.c (mono_wait_handle_new): Use the property set method to
2684         initialize the handle.
2685         (mono_wait_handle_get_handle): New.
2686         * threadpool.c (mono_async_invoke): Use it.
2687         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
2688         Likewise.
2689         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
2690
2691 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
2692
2693         * marshal.c (emit_marshal): Call emit_marshal_variant and
2694         emit_marshal_com_interface when applicable.
2695         (emit_marshal_variant, emit_marshal_com_interface): Add
2696         methods for this case and remove if's from emit_marshal_object.
2697         
2698 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
2699
2700         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
2701
2702 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
2703
2704         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
2705         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
2706         and GlobalFree on Windows. Remove FIXME.
2707
2708 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
2709
2710         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
2711         implementation for managed objects.
2712
2713 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
2714
2715         * object.c: implemented code to be used for checking
2716         that no reference field overlaps with non-references.
2717
2718 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2719
2720         * threadpool.c: fix queue code to be compatible with the
2721         moving GC.
2722
2723 2006-12-18  Miguel de Icaza  <miguel@novell.com>
2724
2725         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
2726         in structures by throwing ArgumentNullException.
2727
2728         (emit_marshal_safehandle): Also when they are null parameters.
2729
2730         (emit_marshal_safehandle): Add support for ref
2731         SafeHandles parameters
2732
2733 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
2734
2735         * profiler.c: updated to use the mono-dl API instead of
2736         gmodule.
2737
2738 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2739
2740         * profiler.c: updated to use the mono-dl dynamic loading
2741         API instead of gmodule.
2742
2743 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
2744
2745         * profiler.c: use readlink, older versions of glib don't have
2746         g_file_read_link ().
2747
2748 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2749
2750         * profiler.c: try to detect the path to mono if libc fails to provide
2751         a useful name (bug #80286).
2752
2753 2006-12-16  Raja R Harinath  <rharinath@novell.com>
2754
2755         Fix #80242
2756         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
2757         instance, use the generic type definition instead.
2758         (ves_icall_Type_GetNestedTypes): Likewise.
2759         * class.c (mono_class_create_generic): Always set the
2760         nested_classes of a generic instance to NULL, even if the generic
2761         type definition has nested types.
2762
2763 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
2764
2765         * marshal.c (mono_string_from_bstr): Revert previous Windows change
2766         and fix on Linux.
2767         
2768 2006-12-15  Miguel de Icaza  <miguel@novell.com>
2769
2770         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
2771         my arguments were in the wrong order.   I also fixed the Windows
2772         version which seems to have had the same issue.
2773
2774         (mono_free_bstr): On Unix, this is g_free.
2775         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
2776         conversions (for the tests in corlib to pass).
2777
2778 2006-12-14  Miguel de Icaza  <miguel@novell.com>
2779
2780         * marshal.c (emit_ptr_to_object_conv): For now, ignore
2781         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
2782         exception if a ref SafeHandle in a struct has changed).
2783         
2784         (emit_struct_conv): Do not perform layout checks for classes
2785         derived from SafeHandle, as those are specially handled. 
2786
2787         (emit_object_to_ptr_conv): Add support for
2788         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
2789
2790         (emit_marshal_safehandle): Implement conversion of return values
2791         of safehandles (MARSHAL_ACTION_CONV_RESULT).
2792         
2793         * threads.c: WaitHandle now is compiled with two different handles
2794         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
2795         for 2.0.
2796         
2797         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
2798         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
2799         these routines to cope with both kinds of fields.
2800
2801 2006-12-12  Miguel de Icaza  <miguel@novell.com>
2802
2803         * metadata.c (mono_type_to_unmanaged): Handle the case where
2804         type->data.klass is a SafeHandle, and in that case, return the
2805         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
2806         MONO_MARSHAL_CONV_SAFEHANDLE. 
2807
2808 2006-12-11  Miguel de Icaza  <miguel@novell.com>
2809
2810         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
2811         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
2812         calling emit_marshal_object.
2813
2814         (emit_marshal_safehandle): Implement marshalling of
2815         SafeHandle parameters (no ref support yet).
2816
2817         (MarshalAction): Document the defines as I implement
2818         them for SafeHandle.
2819
2820         (emit_marshal_object): indentation police.
2821
2822         * class-internals.h: Define MonoSafeHandle.
2823         Add safehandle_class to MonoDefaults type.
2824
2825         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
2826         list of classes to check for fields. 
2827
2828         * domain.c (mono_init_internal): Add SafeHandle to the list of
2829         mono_defaults loaded.
2830
2831 2006-12-15  Raja R Harinath  <rharinath@novell.com>
2832
2833         Fix #80253
2834         * reflection.c (mono_reflection_bind_generic_parameters): If the
2835         generic type definition is a type builder, ensure that it is fully
2836         initialized before instantiating it.  Kill some dead code.
2837
2838 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
2839
2840         * object.c: clear the loader_error () before loading
2841         more metadata stuff (bug #80258).
2842
2843 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
2844
2845         * icall.c, icall-defs.h: type modifiers icalls for
2846         parameters and properties.
2847
2848 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
2849
2850         * object.c, icall.c: fixed warnings.
2851
2852 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
2853
2854         * marshal.c: fixed a couple of leaks and coding style in a few places.
2855
2856 2006-12-08  Dick Porter  <dick@ximian.com>
2857
2858         * process.c: Cope with NULL ProcessStartInfo arguments on windows
2859         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
2860         80173.
2861
2862 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
2863
2864         * process.c: ProcessStartInfo may have only filename set and
2865         arguments can be NULL.
2866
2867 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2868
2869         * icall.c: fix leak found by Robert Jordan.
2870
2871 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
2872
2873         * marshal.c, marshal.h: generate managed method to access an element
2874         of a multi-dimensional array.
2875
2876 2006-11-30  Paolo Molaro (lupus@ximian.com)
2877
2878         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
2879
2880 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2881
2882         * icall.c: back out GetFields () fix until the serialization code is
2883         fixed to not depend on the incorrect behaviour.
2884
2885 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
2886
2887         * profiler.c: provide defaults if none are set.
2888
2889 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
2890
2891         * Makefile.am, attrdefs.h: new public header file with
2892         constants for attributes for use by embedders.
2893
2894 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
2895
2896         * icall.c: GetFields () fix for bug #80064.
2897
2898 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
2899
2900         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
2901         removed long unused icalls.
2902
2903 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
2904   
2905         * marshal.c: 
2906                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
2907                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
2908                 can be generated without a delegate class.
2909                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
2910         
2911         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
2912
2913 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2914
2915         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
2916         #80069.
2917
2918 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
2919
2920         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
2921         icall-def.h: added icalls needed by System.GC.
2922
2923 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
2924
2925         * loader.c: ensure the class in catch clauses is handled
2926         correctly for generics methods (fixes bug#79980).
2927
2928 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
2929
2930         * monitor.h, monitor.c: added mono_locks_dump () function
2931         to help debug deadlocks involving managed locks.
2932
2933 2006-11-13  Dick Porter  <dick@ximian.com>
2934
2935         * file-io.c (get_file_attributes): If the file is a symlink try
2936         and get the stat data for the target, but also add the
2937         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
2938         the specs for the windows symlink support, but will probably have
2939         to be reworked when I have test data from a vista machine.  Fixes
2940         bug 79887.
2941
2942 2006-11-13  Dick Porter  <dick@ximian.com>
2943
2944         * gc.c (mono_domain_finalize): 
2945         * marshal.c (mono_delegate_begin_invoke): 
2946         * threadpool.c (socket_io_init, mono_thread_pool_init)
2947         (mono_thread_pool_finish): 
2948         * monitor.c (mono_monitor_try_enter_internal): 
2949         * threads.c (mono_thread_resume, mono_thread_init)
2950         (mono_thread_suspend_all_other_threads)
2951         (mono_thread_execute_interruption): 
2952         * appdomain.c (mono_domain_unload): Check for NULL error returns
2953         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
2954         75733.
2955
2956 2006-11-11  Miguel de Icaza  <miguel@novell.com>
2957
2958         * process.c
2959         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
2960         Only close the handle if the value of the handle is not
2961         INVALID_HANDLE_VALUE.  This just makes the process a bit more
2962         robust.
2963
2964         Improvement for #75733, so that we do not run into this problem. 
2965
2966         
2967         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
2968         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
2969         internal variables.  Fixes #79462 
2970         
2971
2972 2006-11-09  Dick Porter  <dick@ximian.com>
2973
2974         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
2975         Use poll() not select().  Fixes bug 79397.
2976
2977 2006-11-09  Raja R Harinath  <rharinath@novell.com>
2978
2979         Fix #79872
2980         * assembly.c (mono_assembly_load_from_full): Check that the given
2981         image has an assembly manifest.
2982
2983 2006-11-09  Ankit Jain  <jankit@novell.com>
2984
2985         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
2986         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
2987         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
2988
2989 2006-11-07  Dick Porter  <dick@ximian.com>
2990
2991         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
2992         Put the old resolver behaviour back for pre-2.0 profiles.
2993
2994 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
2995
2996         * threadpool.c: precise GC and locking fixes.
2997
2998 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
2999
3000         * class.c: don't load types that have an explicit unaligned
3001         managed reference. Provide better info in the TypeLoad exception.
3002         Part of the fix for bug #79744.
3003         * object.c: use the correct check for class type load issues.
3004
3005 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
3006
3007         * class.c: enforce alignment of fields with managed references
3008         even when Pack=1 is forced by the user (bug #77788).
3009
3010 2006-11-03  Dick Porter  <dick@ximian.com>
3011
3012         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
3013         If the address reverse lookup fails, return it as the hostname
3014         anyway.  Fixes bug 79721.
3015
3016 2006-11-03  Dick Porter  <dick@ximian.com>
3017
3018         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
3019         Fix build on Windows.
3020
3021 2006-11-02  Dick Porter  <dick@ximian.com>
3022
3023         * icall-def.h: 
3024         * object-internals.h: 
3025         * exception.c (mono_get_exception_thread_interrupted): 
3026         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
3027         Fixes bug 74525.
3028
3029         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
3030         Check for pending Thread.Interrupt.
3031
3032 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
3033         * loader.c: Fixed bug 79684.
3034
3035 2006-10-27  Dick Porter  <dick@ximian.com>
3036
3037         * file-io.c (get_file_attributes): Force symlinks to directories
3038         to be returned as a regular file.  Fixes bug 79733.
3039 2006-10-26  Dick Porter  <dick@ximian.com>
3040
3041         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
3042         CreateFile to open a directory then we need to set the
3043         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
3044
3045 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
3046
3047         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
3048         friends.
3049
3050 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
3051
3052         * sgengc.c: small cleanup of timer code.
3053
3054 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
3055
3056         * sgen-gc.c: fix some warnings and start adding support for
3057         complete object removal on domain unload.
3058
3059 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
3060
3061         * assembly.c: build_assembly_name should not consider a version
3062         number without build or revision number invalid. Fixes bug #79715.
3063
3064 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
3065
3066         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
3067         call kernel32 function OutputDebugString directly.
3068         
3069         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
3070         
3071 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
3072
3073         * reflection.c: small cleanup, using a function to insert a MonoString
3074         in the string heap.
3075
3076 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
3077
3078         * reflection.c: moving GC fixes.
3079
3080 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
3081
3082         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
3083         all the objects with finalizers belonging to an unloading appdomain.
3084
3085 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
3086
3087         * sgen-gc.c: added ability to allocate even when the nursery is fully
3088         pinned and fixed a couple of bugs.
3089
3090 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
3091
3092         * threads.h: Revert the last change for now.
3093
3094         * threads.h (mono_thread_get_pending_exception): Rename this to
3095         mono_thread_get_undeniable_exception ().
3096
3097 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
3098
3099         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
3100         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
3101         when fname does not refer to valid assembly. This result in a more
3102         meaningful error message.
3103         * exception.c: added mono_get_exception_bad_image_format2 which 
3104         constructs a BadImageFormatException using the ctor taking a custom
3105         message and the file name. Passing in a NULL msg results in a default
3106         message.
3107         * exception.h: define mono_get_exception_bad_image_format2 function.
3108         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
3109         when file name pointed to an invalid IL image. Use 
3110         mono_get_exception_file_not_found2 to construct FileNotFoundException,
3111         as this results in a more meaningful error message.
3112
3113 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
3114
3115         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
3116         #79465.
3117
3118 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
3119
3120         * metadata.c (mono_type_size): Change the align parameter to guint32 for
3121         consistency with the other _size functions.
3122         (mono_type_stack_size): Ditto.
3123
3124         * class.c object.c icall.c: Fix warnings caused by the above change.
3125
3126         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
3127
3128         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
3129
3130         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
3131
3132 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
3133
3134         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
3135         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
3136         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
3137         threadpool.h, threads-types.h: mark more internal functions.
3138
3139 2006-10-11  Dick Porter  <dick@ximian.com>
3140
3141         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
3142         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
3143         reproduce the bug even before applying the fix.)
3144
3145 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
3146
3147         * reflection.c: allow retrieving attributes for arguments in generic
3148         methods (bug #79241).
3149
3150 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
3151
3152         * debug-mono-symfile.c: properly check fopen () result (found by
3153         coverity).
3154
3155 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
3156
3157         * reflection.c: make error message clearer and fixed two
3158         issuelets found by Coverity.
3159
3160 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
3161
3162         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
3163
3164 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
3165
3166         * object-internals.h, gc-internal.h, profiler-private.h:
3167         mark internal functions.
3168
3169 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
3170
3171         * reflection.c: put data in the text section.
3172         * icall.c: recognize more types in type_from_typename ().
3173         * process.c, marshal.c: added some GC FIXMEs.
3174
3175 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
3176
3177         * loader.c: check for NULL before initializing.
3178
3179 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
3180
3181         * gc.c (finalizer_thread): Use a non-alertable wait here.
3182
3183         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
3184         until the correct solution is found.
3185
3186 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
3187
3188         * reflection.c (mono_module_get_object): Avoid an assert when operating on
3189         modules with no metadata. Fixes #79596.
3190
3191         * image.c (load_metadata_ptrs): Put back the error message when
3192         the #- heap is encountered since the support is not complete yet.
3193
3194 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
3195
3196         * gc.c: do not allow the user to SuppressFinalize () a
3197         delegate because it would leak the trampoline if present.
3198
3199 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
3200
3201         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
3202         PropertyPtr table.
3203
3204 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
3205
3206         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
3207
3208         * metadata.c (mono_metadata_get_param_attrs): Ditto.
3209
3210         * row-indexes.h: Add definitions for *Ptr tables.
3211
3212         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
3213
3214         * metadata.c (mono_metadata_translate_token_index): New helper function to
3215         translate table indexes used in uncompressed metadata.
3216         (mono_metadata_decode_table_row): Ditto.
3217         (mono_metadata_decode_table_row_col): Ditto.
3218
3219         * metadata.c: Add table schema for *Ptr tables.
3220
3221         * class.c loader.c: Use the new helper function to access the affected metadata
3222         tables.
3223         
3224         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
3225         #38532.
3226         
3227 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
3228
3229         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
3230         sequences which can be unbounded in size. Fixes #79583.
3231
3232 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
3233
3234         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
3235         static initialization.
3236
3237         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
3238
3239         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
3240
3241         * domain.c (mono_domain_free): Free up type_init_exception_hash.
3242
3243         * object.c (mono_runtime_class_init): Implement correct semantics when a static
3244         ctor fails, i.e. throw the same exception on subsequent accesses.
3245         
3246 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
3247
3248         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
3249         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
3250         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
3251         Handle marshalling of interfaces and VARIANTs contained in structs.
3252         
3253         Code is contributed under MIT/X11 license.
3254         
3255 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
3256
3257         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
3258         
3259         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
3260         mempool.
3261
3262 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3263
3264         * console-io.c: ignore previous SIGINT handler.
3265
3266 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
3267
3268         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
3269         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
3270         #79460, #79461, #79485.
3271
3272         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
3273
3274         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
3275         #79217.
3276
3277 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
3278
3279         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
3280         could be generated from it.
3281
3282 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
3283
3284         * rand.c: fix read loop to correctly handle EINTR.
3285
3286 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
3287
3288         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
3289         internal calls are defined to keep methods closer to the declaring
3290         type and allow a significant reduction in runtime relocations and
3291         memory usage.
3292
3293 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
3294
3295         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
3296         exception message to have FileNotFoundException use the default
3297         assembly load error message. Fixes bug #79426.
3298         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
3299
3300 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3301
3302         * threadpool.c: (start_thread_or_queue) use the root domain when
3303         creating the thread instead of the async object one.
3304
3305 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
3306
3307         * class.c, object.c, class-internals.h, reflection.c:
3308         for arrays, store element_size inside MonoClass (speedup
3309         for array object creation).
3310
3311 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
3312
3313         * icall.c: fixed CodeBase to use the file name and not the module
3314         name (bug #79365).
3315
3316 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
3317
3318         * mono-debug.c, mono-debug.h: export find_method as
3319         mono_debug_find_method ().
3320
3321 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
3322
3323         * debug-helpers.c, class-internals.h: added a few functions useful
3324         when debugging under gdb.
3325
3326 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3327
3328         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
3329         characters that need special handling.
3330
3331 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
3332
3333         * mono-config.c: make the os/cpu specification more flexible,
3334         allowing lists and negation.
3335
3336 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
3337
3338         * marshal.c: COM Interop fixes. Handle case where method->klass.
3339         is interface. Handle BSTR/MonoString when null. Use CDECL as 
3340         calling convention on non-windows platforms. This is for
3341         compatibility with XPCOM and MainWin COM.
3342         
3343         Code is contributed under MIT/X11 license.
3344         
3345
3346 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
3347
3348         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
3349         correctly. Fixes #79217.
3350
3351         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
3352
3353 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
3354
3355         * mono-config.c: allow both an os and cpu attribute for dllmap
3356         and dllentry elemnets to enable a single config file to be used
3357         for multiple architectures.
3358
3359 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
3360
3361         * loader.c: MonoLoaderError was cleared too soon on load failure.
3362         Fixes bug #79424.
3363
3364 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
3365
3366         * icall.c: use the defining class vtable when accessing a
3367         static field, not a pobblibly derived class.
3368
3369 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
3370
3371         * icall.c string-icalls.c: Remove references to unicode.h.
3372
3373         * unicode.h unicode.c Makefile.am: Remove these unused source files.
3374
3375         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
3376
3377         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
3378         indicating the image where custom marshaller types should be looked up.
3379         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
3380         custom marshallers, instead of corlib. Fixes #79425.
3381
3382 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
3383
3384         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
3385
3386 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
3387
3388         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
3389         Implement Environment.ProcessorCount.
3390         
3391         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
3392         Implement Environment.ProcessorCount.
3393         
3394         * icall.c: 
3395         Add Environment.ProcessorCount icall.
3396         
3397         Patch by Jason McFall.
3398
3399 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3400
3401         * assembly.c: don't append .exe/.dll when the filename already contains
3402         one of those extensions.
3403
3404 2006-09-12  Martin Baulig  <martin@ximian.com>
3405
3406         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
3407         to array interfaces.
3408
3409 2006-09-11  Martin Baulig  <martin@ximian.com>
3410
3411         * reflection.c (mono_image_build_metadata): Create the
3412         MethodImpl's after emitting all types and methods, so we don't
3413         need another fixup pass for them.
3414
3415 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
3416
3417         * class.c (mono_class_from_name_case): Fix regression introduced by the last
3418         change.
3419
3420 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
3421
3422         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
3423         unload.
3424
3425 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
3426
3427         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
3428         args is not set. Fixes #78926.
3429
3430 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
3431
3432         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
3433
3434         * image.c (load_class_names): Move this to class.c, and rename it to 
3435         'mono_image_init_name_cache'.
3436         (load_modules): Fix a warning.
3437
3438         * class.c icall.c image.c: Initialize image->name_cache lazily.
3439
3440         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
3441         on its name using information in the AOT file.
3442
3443         * class.c (mono_class_from_name): Use the new hook function.
3444
3445 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
3446
3447         * reflection.c (mono_param_get_objects): Handle enum default parameter values
3448         correctly.
3449
3450         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
3451         Fixes #79289.
3452         
3453 2006-09-06  Martin Baulig  <martin@ximian.com>
3454
3455         * icall.c (mono_lookup_internal_call): Small fix.
3456
3457 2006-09-05  Raja R Harinath  <rharinath@novell.com>
3458
3459         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
3460         double g_free.
3461
3462 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
3463
3464         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
3465         when --debug is specified.
3466
3467 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
3468
3469         * class.c (setup_generic_array_ifaces): Fix a warning.
3470
3471 2006-09-04  Miguel de Icaza  <miguel@novell.com>
3472
3473         * Temporarily remove the patch to assemly.c that checks the
3474         assembly versions as it breaks our gacutil.
3475
3476 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
3477
3478         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
3479
3480         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
3481         a net 1.0 runtime.
3482
3483         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
3484         created using the default ctor. Fixes #79152.
3485         (mono_string_builder_to_utf16): Ditto.
3486
3487 2006-09-01  Martin Baulig  <martin@ximian.com>
3488
3489         Fix handling of the generic array interfaces.
3490
3491         * class-internals.h
3492         (MonoDefaults): Removed `generic_array_class' and added
3493         `generic_ilist' class.
3494
3495         * class.c
3496         (mono_bounded_array_class_get): Add the new generic array interfaces.
3497         (setup_generic_array_ifaces): New static method; create vtable
3498         entries for each method in the generic array interfaces.
3499
3500         * metadata.c
3501         (select_container): Allow "parent-less" generic methods.
3502
3503         * marshal.c
3504         (mono_marshal_get_generic_array_helper): New public method.
3505
3506         * icall.c
3507         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
3508         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
3509         moved the interncall into System.Array.
3510
3511 2006-09-01  Raja R Harinath  <rharinath@novell.com>
3512
3513         A few more cases of avoiding work on types with ->byref set.
3514         Has the real fix for #79238
3515         * icall.c (is_generic_parameter): New helper.
3516         (ves_icall_Type_GetGenericParameterPosition): Use it.
3517         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
3518         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
3519         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
3520         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
3521         reference types.
3522         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
3523         reference types.
3524         (ves_icall_Type_get_IsGenericInstance): Likewise.
3525         (ves_icall_Type_get_IsGenericType): Likewise.
3526
3527 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
3528
3529         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
3530         class if possible.
3531
3532         * mempool.h (mono_mempool_get_allocated): New helper function.
3533
3534         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
3535         change.
3536
3537         * mempool.c: Fix warnings and the calculation of stats.
3538
3539         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
3540
3541         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
3542
3543         * loader.c (mono_get_method_from_token): Update method_count stat.
3544
3545         * class-internals.h (MonoStats): Add some stats.
3546
3547 2006-08-31 Robert Jordan  <robertj@gmx.net>
3548
3549         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
3550         with managed variants.
3551         All code is contributed under the MIT/X11 license.
3552         
3553 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
3554
3555         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
3556         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
3557
3558         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
3559
3560         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
3561         with cycles in classes.
3562
3563         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
3564
3565         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
3566         missing a [MarshalAs] directive. Fixes #79203.
3567
3568         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
3569         klass->marshal_info. Fixes #79217.
3570
3571 2006-08-30  Martin Baulig  <martin@ximian.com>
3572
3573         Committing a patch from Joachim Ante <joe@otee.dk>:
3574         Add support for binary data symbol stores.
3575
3576         * debug-mono-symfile.c
3577         (mono_debug_open_mono_symbol_file): Renamed into
3578         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
3579         arguments.
3580
3581         * mono-debug.c
3582         (mono_debug_open_image): Added `raw_contents' and `size' args.
3583         (mono_debug_init_2_memory): New public function.
3584
3585 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
3586
3587         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
3588
3589 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3590
3591         * appdomain.c: implement support for ShadowCopyFiles.
3592
3593 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
3594
3595         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
3596         when value is NULL (and should remove CID #51).
3597
3598 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3599
3600         * image.c: moved 2 functions to ../utils.
3601
3602 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
3603
3604         * gc.c: cope with the target object of a GC handle being NULL
3605         (bug #78877).
3606
3607 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
3608
3609         * class.c: recursively check parent's explicit implementations
3610         of interface methods (fixes bug #79125).
3611
3612 2006-08-19  Miguel de Icaza  <miguel@novell.com>
3613
3614         * filewatcher.c: Avoid warnings when building, do not redefine
3615         constants that are defined.
3616
3617         Remove warnings.
3618
3619 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3620
3621         * image.c: don't fail when the link points to an absolute path.
3622
3623 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
3624
3625         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
3626         Fix CID #3.
3627
3628 2006-08-17  Miguel de Icaza  <miguel@novell.com>
3629
3630         * image.c (full_path): A new method used to obtain the actual path
3631         of an assembly even in the presence of symbolic links.  
3632
3633         This is necessary for the case where we are running a binary that
3634         has been GACed, but we are using the "published" path name
3635         ($prefix/mono/1.0/blah.exe) which happens to point to the real
3636         file in the GAC.
3637
3638         This was the source of the failure for the `xsp' command with the
3639         recent AppDomain changes, as far as the runtime was concerned,
3640         there were two different assemblies: $prefix/mono/1.0/blah.exe and
3641         $prefix/mono/gac/blah/version/blah.exe.
3642
3643         (do_mono_image_open): use full path
3644
3645 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3646
3647         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
3648
3649 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
3650
3651         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
3652         domain_id is supplied. Fix CID #241 and corlib's unit tests.
3653
3654 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3655
3656         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
3657         small structures. Fixes #78990.
3658
3659 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3660
3661         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
3662
3663         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
3664
3665 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3666
3667         * appdomain.c:
3668         * marshal.c: don't load all the assemblies from a domain into newly
3669         created ones. The new domains might have different rules and load
3670         assemblies from different locations. Fixes bug #76757.
3671
3672         Patch by Lluis. Conflicts resolved by Brian Crowell.
3673
3674 2006-08-16  Alp Toker  <alp@atoker.com>
3675
3676         * socket-io.c: First half of the fix for #79084.
3677         Set sa_size to the length of the content, not that of the struct.
3678         Don't add NULL suffix to the content, this should be done in
3679         managed code if needed.
3680
3681 2006-08-14  Raja R Harinath  <rharinath@novell.com>
3682
3683         Fix part of #79012
3684         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
3685         mono_metadata_parse_type returns NULL.
3686
3687 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
3688
3689         * normalization-tables.h : new file for string normalization data.
3690         * locales.c, locales.h, icall.c :
3691           added load_normalization_resource() for string normalization,
3692           and icall as well.
3693         * Makefile.am : added normalization-tables.h to the sources.
3694
3695 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
3696
3697         * marshal.c: Add more helper functions to reduce code duplication and use them
3698         everywhere.
3699
3700 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
3701
3702         * marshal.c: Fix non-x86 stdcall warnings.
3703         
3704         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
3705         them everywhere.
3706
3707 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
3708
3709         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
3710         type check on multi-dimensional arrays. Fixes #79000.
3711
3712 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
3713
3714         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
3715         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
3716         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
3717         * class-internals.h: add is_com_object to class structure.
3718         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
3719         null checks to COM object marshalling. Fix .ctor call on RCW.
3720         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
3721         
3722         All code is contributed under the MIT/X11 license.
3723
3724 2006-08-09  Dick Porter  <dick@ximian.com>
3725
3726         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
3727         racing mono_monitor_allocator_lock() somewhere, so don't delete
3728         the critical section for now.  Found by running and exiting
3729         monodevelop.
3730
3731 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
3732
3733         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
3734         (ves_icall_System_ComObject_FindInterface): Ditto.
3735         (ves_icall_System_ComObject_CacheInterface): Ditto.
3736
3737         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
3738         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
3739
3740 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3741
3742         * threadpool.c: treat pipes from process asynchronous reads as sockets
3743         when reading from them, so we get select/poll or epoll to wait for
3744         data.
3745
3746 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
3747
3748         * loader.c: Fix a typo (CID #233) in the null check.
3749
3750 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
3751
3752         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
3753         Hopefully fixes #78949.
3754         
3755         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
3756         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
3757         bytes. Fixes #78972.
3758
3759 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3760
3761         * filewatcher.c: we need to set errno here.
3762
3763 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3764
3765         * filewatcher.c: let Win32Exception get the error value.
3766
3767 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3768
3769         * filewatcher.c: translate errno into win32 errors for Win32Exception
3770         to know what happened.
3771
3772 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
3773
3774         * threadpool.c: Fix more warnings.
3775
3776         * assembly.c (search_loaded): Fix warnings.
3777
3778         * threadpool.c (mono_thread_pool_finish): Fix warnings.
3779         (mono_async_invoke): Ditto.
3780
3781 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
3782
3783         * object.c (mono_remote_class_vtable): Need to create proxy vtable
3784         entries for __ComObject type in addition to ComImport types.
3785         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
3786         about hash table.
3787         
3788         All code is contributed under the MIT/X11 license.
3789
3790 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
3791
3792         * image.c: avoid tentative loading of modulerefs that contain
3793         no metadata (P/Invoke library names).
3794
3795 2006-07-28  Dick Porter  <dick@ximian.com>
3796
3797         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
3798         mono_loader_lock() somewhere, so don't delete the critical section
3799         for now.  Found by running and exiting monodevelop.
3800
3801 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3802
3803         * filewatcher.c: define the inotify syscalls when we're building on
3804         linux and have sys/syscall.h. The build system might not have support
3805         for inotify but the target system might have it.
3806
3807 2006-07-26  Miguel de Icaza  <miguel@novell.com>
3808
3809         * domain.c: Documentation updates.
3810
3811         * loader.c (mono_free_method): Do not release the method
3812         information if we are being profiled, as profilers will use this
3813         information at shut down to present some data to the user.
3814
3815         This is needed so that the profiler does not crash, as the
3816         profiler tends to keep MonoMethods around, and they might become
3817         invalid if we free these.
3818
3819         (mono_get_method_constrained): Return the original CIL stream
3820         method as well, so verification can be performed against it.
3821
3822 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3823
3824         * filewatcher.[ch]: support for inotify file system watcher.
3825         * icall.c: add new internal calls for the inotify file system watcher.
3826
3827 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3828
3829         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
3830         #78888.
3831
3832 2006-07-20  Dick Porter  <dick@ximian.com>
3833
3834         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
3835         warning.
3836
3837 2006-07-20  Dick Porter  <dick@ximian.com>
3838
3839         * threads.c (start_wrapper): Do the thread cleanup while we still
3840         hold a reference to its object.  Fixes bug 78123.
3841
3842 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
3843
3844         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
3845         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
3846           "managed-to-managed".
3847         * icall.c: Redirect string constructors that take sbyte* to
3848           ves_icall_System_String_ctor_RedirectToCreateString.
3849         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
3850           to CreateString () methods with matching signature.
3851         * reflection.c: Use original security informations for
3852           MONO_WRAPPER_MANAGED_TO_MANAGED.
3853         * security-manager.c: Use original security informations for
3854           MONO_WRAPPER_MANAGED_TO_MANAGED.
3855         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
3856           that is a placeholder and only its address should be used.
3857         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
3858           that is a placeholder and only its address should be used.
3859
3860 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
3861
3862         Begin implementing COM Interop.
3863         * appdomain.c: Increment corlib version.
3864         * class.c: Set ComImport classes' parent to __ComObject.
3865         * loader.c: Mark cominterop methods as such.
3866         * domain.c: Add __ComObject class to MonoDefaults structure.
3867         * image.c: Add 2 hashtables to the image for COM Interop related methods
3868         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
3869         using the mempool allocator
3870         
3871         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
3872         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
3873         declaration for mono_metadata_type_dup_mp.
3874         
3875         * debug-helpers.c: Added strings for two additional wrapper types
3876         * object.c: Create proxy objects for ComImport classes
3877         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
3878         and added __ComObject class to MonoDefaults structure.
3879         
3880         * object-internals.h: Finish MonoRealProxy definition, and add definition of
3881         MonoComInteropProxy and MonoComObject.
3882         
3883         * marshal.c: Added support for COM Interop
3884         (signature_cominterop): Converts managed signature to corresponding
3885         unmanaged COM signature.
3886         (cominterop_get_function_pointer): gets unmanaged function pointer via
3887         COM object vtable
3888         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
3889         (cominterop_get_method_interface): returns interface type that method is defined on
3890         (mono_mb_emit_cominterop_call): emits native call to function pointer
3891         gotten from vtable
3892         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
3893         that matches signature of unmanaged function.
3894         (cominterop_get_native_wrapper): wrapper around adjusted method call.
3895         (cominterop_get_invoke): forwards call from proxy to __ComObject
3896         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
3897         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
3898         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
3899         
3900         * marshal.h: Added Marshal icall declarations.
3901         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
3902         so we can access them in finalizer
3903         
3904 2006-07-14  Dick Porter  <dick@ximian.com>
3905
3906         * object.c (mono_type_initialization_cleanup): Fix a race
3907         condition by temporarily commenting out the critical section
3908         deletion.
3909
3910 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
3911
3912         * reflection.c (create_custom_attr): Fix some warnings.
3913         (create_custom_attr_data): Ditto.
3914         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
3915         types. Fixes #78855.
3916
3917 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
3918
3919         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
3920
3921         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
3922
3923 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
3924
3925         * reflection.c (resolve_object): Add support for DynamicMethod.
3926
3927         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
3928         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
3929
3930 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
3931
3932         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
3933         don't leak GPtrArray's pdata has we have no use (nor free) for it.
3934
3935 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
3936
3937         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
3938         Fixes #77888.
3939
3940 2006-06-30  Raja R Harinath  <rharinath@novell.com>
3941
3942         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
3943         slightly: remove a shadow local variable.
3944
3945 2006-06-29  Raja R Harinath  <rharinath@novell.com>
3946
3947         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
3948         definition that introduces the virtual function slot.
3949         Also fix Coverity #105.
3950
3951 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
3952
3953         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
3954         for dynamic assemblies. Fixes #78724.
3955
3956 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
3957
3958         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
3959         Fixes #78722.
3960
3961 2006-06-21  Martin Baulig  <martin@ximian.com>
3962
3963         * reflection.c
3964         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
3965         fixes #76484.
3966
3967 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
3968
3969         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
3970
3971 2006-06-20  Raja R Harinath  <rharinath@novell.com>
3972
3973         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
3974         nor TYPEREFs.
3975         * class.c (mono_class_create_from_typespec): Add 'context' argument.
3976         Inflate result if necessary.
3977         (mono_class_get_full): Remove old version.  Rename from
3978         'mono_class_get' and add 'context' argument.  Pass it to
3979         ..._create_from_typespec.
3980         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
3981         (mono_ldtoken): Revert change below.
3982
3983 2006-06-20  Martin Baulig  <martin@ximian.com>
3984
3985         * class.c (mono_ldtoken): Don't pass the generic context to
3986         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
3987
3988 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
3989
3990         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
3991         and later freeing it. Fixes #78638.
3992
3993 2006-06-15  Miguel de Icaza  <miguel@novell.com>
3994
3995         * icall.c (mono_class_get_throw): Revert over-zealous error
3996         throwing, the caller for mono_class_get_throw will cope with
3997         errors when classes are not properly initialized already.
3998
3999         The code still copes with loader exceptions though.
4000
4001         Fixes the regression in reftype1 and reftype3 from the CAS tests.
4002         
4003 2006-06-14  Miguel de Icaza  <miguel@novell.com>
4004
4005         Fixes the `make run1' version of RuntimeAbort (to be commited,
4006         source is in Bugzilla).
4007         
4008         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
4009         FALSE on class loading failure instead of returning true.
4010
4011         * class.c (mono_class_create_from_typedef): It is possible for
4012         mono_metadata_interfaces_from_typedef_full to fail if a class is
4013         not found, cope with this.
4014         
4015
4016 2006-06-14  Dick Porter  <dick@ximian.com>
4017
4018         * socket-io.c: 
4019         * process.c: Fix a bunch of signed/unsigned warnings from gcc
4020         4.1.1
4021
4022 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
4023
4024         * culture-info-table.h : oops, forgot to make it nsync with r61548.
4025
4026 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
4027
4028         * icall.c: Another fix for building mono in Visual Studio.
4029
4030 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
4031
4032         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
4033         
4034 2006-06-09  Martin Baulig  <martin@ximian.com>
4035
4036         * debug-mono-symfile.c: Put this back and really fix it this
4037         time. Sorry for all the trouble.
4038
4039 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
4040
4041         * icall.c (mono_class_get_throw): Fix a warning.
4042         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
4043         ReflectionTypeLoadException if needed. Fixes #78606.
4044
4045         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
4046         (mono_class_init): Ditto.
4047
4048         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
4049         ref_only exceptions.
4050         (mono_loader_clear_error): Make this work even if there is no error.
4051
4052 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
4053
4054         * object-internals.h marshal.c marshal.h icall.c: Implement method 
4055         Marshal.GetComSlotForMethodInfo using internal call.
4056
4057 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
4058
4059         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
4060         a function for signalling it.
4061
4062         * class.c (mono_class_from_typeref): Use the new kind of loader error when
4063         a referenced assembly is not found.
4064
4065         * loader.c (mono_loader_error_prepare_exception): Add support for 
4066         LOADER_ERROR_ASSEMBLY. Fix formatting.
4067
4068 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
4069
4070         * domain.c appdomain.c class-internals.h marshal.c: Add support 
4071         for VARIANT marshalling on windows and increment corlib version
4072         since Variant struct was added.
4073
4074 2006-06-03  Miguel de Icaza  <miguel@novell.com>
4075
4076         * debug-mono-symfile.c: Revert Martin's previous patch which broke
4077         stack trace line information:
4078
4079         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
4080         (Martin) when looking up B which is between A and C, return A not C.
4081
4082         Bug is #78573.
4083
4084         Thanks to Alexander Olk for tracking this down.
4085
4086 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
4087
4088         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
4089         
4090         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
4091         avoid clobbering its value.
4092         (mono_string_to_lpstr): Fix a warning on windows.
4093
4094 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
4095
4096         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
4097
4098         * reflection.c loader.c: Removed references to 'dummy' flag.
4099
4100         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
4101
4102         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
4103         it gets GC tracking.
4104
4105         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
4106         GC tracking.
4107         
4108         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
4109
4110         * marshal.c threadpool.c: Update callers of mono_async_result_new.
4111
4112         * appdomain.c: Bump corlib version.
4113
4114 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
4115
4116         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
4117         CEE_STIND_REF when working with object references.
4118
4119 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
4120
4121         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
4122         Fixes #78539.
4123
4124 2006-05-30  Miguel de Icaza  <miguel@novell.com>
4125
4126         * loader.c (method_from_memberref): Fix argument value for
4127         mono_loader_set_error_method_load (I was passing the MonoClass
4128         instead of the class name char *).
4129
4130 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
4131
4132         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
4133         CEE_STIND_REF when working with object references.
4134
4135 2006-05-30  Martin Baulig  <martin@ximian.com>
4136
4137         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
4138         mono_method_full_name() change and replace the ':' with a '.'
4139         here.
4140
4141 2006-05-30  Martin Baulig  <martin@ximian.com>
4142
4143         * debug-mono-symfile.c
4144         (mono_debug_symfile_lookup_location): Fix the algorithm:
4145         when looking up B which is between A and C, return A not C.
4146
4147 2006-05-29  Martin Baulig  <martin@ximian.com>
4148
4149         * mono-debug.h
4150         (MonoDebugMethodInfo): Make the typedef public.
4151         (MonoDebugSourceLocation): New public struct.
4152
4153         * mono-debug.c
4154         (mono_debug_source_location_from_address): Removed.
4155         (mono_debug_source_location_from_il_offset): Removed.
4156         (mono_debug_il_offset_from_address): Removed.
4157         (mono_debug_address_from_il_offset): Removed.
4158         (mono_debug_lookup_method): New public function.
4159         (mono_debug_lookup_source_location): New public function; replaces
4160         the old mono_debug_source_location_from_*() functions; see the
4161         inline documentation.
4162         (mono_debug_free_source_location): New public function.
4163         (mono_debug_print_stack_frame): New public function; see the
4164         inline documentation.
4165
4166         * debug-mono-symfile.c
4167         (mono_debug_find_source_location): Renamed into
4168         mono_debug_symfile_lookup_location(); only take a
4169         `MonoDebugMethodInfo *' and an `offset' argument; added inline
4170         documentation.
4171         (mono_debug_find_method): Renamed into
4172         mono_debug_symfile_lookup_method().
4173
4174 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
4175
4176         * assembly.c (mono_assembly_open_full): Dont overwrite the status
4177         returned by mono_image_open_full ().
4178
4179         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
4180         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
4181         #78517.
4182
4183         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
4184         #78518.
4185
4186 2006-05-27  Miguel de Icaza  <miguel@novell.com>
4187
4188         * class.c (mono_class_from_typeref): handle missing images
4189         earlier, deals with bug #78418.   Refactor code; 
4190
4191         Fix a warning introduced in my previous commit (some stale code
4192         from before I revisited my patch).
4193
4194         * class.c (mono_class_create_from_typedef): On failure, remove the
4195         class from the MonoImage->class_cache as the class is not
4196         initialized;   Fixes the leak pointed out by Paolo.
4197
4198 2006-05-25  Dick Porter  <dick@ximian.com>
4199
4200         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
4201         DeleteCriticalSections until I figure out which one may still be
4202         sometimes locked when mono_thread_cleanup is called.
4203
4204 2006-05-24  Dick Porter  <dick@ximian.com>
4205
4206         * threads.c (mono_thread_cleanup): Move the threading cleanup out
4207         of mono_thread_manage and back into its own function, so it can be
4208         called after the finalizer thread has finished.
4209
4210         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
4211
4212 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
4213
4214         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
4215         Fixes #78495.
4216
4217         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
4218         with non-blittable elements.
4219         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
4220
4221 2006-05-24  Martin Baulig  <martin@ximian.com>
4222
4223         * mono-debug-debugger.h (MonoDebuggerEvent): Added
4224         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
4225
4226         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
4227         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
4228         `mono_debugger_event_handler' to NULL.
4229
4230 2006-05-24  Martin Baulig  <martin@ximian.com>
4231
4232         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
4233
4234 2006-05-24  Martin Baulig  <martin@ximian.com>
4235
4236         * mono-debug-debugger.h
4237         (mono_debugger_create_notification_function): Added
4238         `MonoCodeManager *' argument.
4239
4240 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
4241
4242         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
4243
4244 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
4245
4246         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
4247         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
4248         implementation.
4249
4250 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
4251
4252         * icall.c: precise GC support: objects can't be stored in unmanaged
4253         memory anymore, even if they are kept alive by other references: since
4254         they can move the GC needs to be able to always find them.
4255
4256 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
4257
4258         * object.c: precise GC support for static fields. Support
4259         for moving GCs: write barriers and pinned allocation for interned
4260         strings.
4261
4262 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
4263
4264         * domain.c, domain-internals.h: precise GC support for the MonoDomain
4265         structure.
4266
4267 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
4268
4269         * class.c, gc.c: sgen and precise GC updates.
4270
4271 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
4272
4273         * marshal.h, marshal.c: added write barrier wrapper and precise type
4274         fixes.
4275
4276 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
4277
4278         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
4279         support.
4280
4281 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
4282
4283         * reflection.c: precise and sgen GC updates.
4284
4285 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
4286
4287         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
4288
4289 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
4290
4291         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
4292
4293 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
4294
4295         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
4296         MONO_TYPE_OBJECT. Fixes #78462.
4297
4298 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
4299
4300         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
4301         and blittable types.
4302
4303 2006-05-17  Miguel de Icaza  <miguel@novell.com>
4304
4305         * class.c (mono_class_get_exception_for_failure): Implement parts
4306         of a TODO: if the loader error is set (instead of the class
4307         error), we return a Loader exception that can be properly thrown
4308         elsewhere.
4309
4310         This was exposed by some Winforms 2.0 code that I tried to run
4311         (Atsushi pointed me to it).
4312
4313 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
4314
4315         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
4316         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
4317         
4318         * marshal.c (emit_marshal_vtype): Add limited support for 
4319         UnmanagedType.LPStruct. Fixes #78427.
4320
4321         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
4322         Applied a patch from kangaroo to fix #77523.
4323
4324 2006-05-17  Martin Baulig  <martin@ximian.com>
4325
4326         * threads.c
4327         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
4328         (debugger_thread_created): Removed.
4329         (debugger_thread_exited): Removed.
4330
4331 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
4332
4333         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4334
4335         * object-internals.h (MonoReflectionResource): Sync with managed version.
4336
4337 2006-05-12  Wade Berrier <wberrier@novell.com>
4338
4339         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
4340
4341 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
4342
4343         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
4344         functions try to allocate from the image mempool.
4345
4346 2006-05-12  Dick Porter  <dick@ximian.com>
4347
4348         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
4349
4350 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
4351
4352         * object.c: The FieldGetter and FieldSetter methods require the full
4353         name of the class, not only the name. Fixes bug #78277.
4354
4355 2006-05-11  Miguel de Icaza  <miguel@novell.com>
4356
4357         * loader.c (method_from_memberref): Do not pass the NULL klass to
4358         mono_loader_set_error_() methods.  Pass the non-NULL value
4359         (class). 
4360
4361 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
4362
4363         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
4364         (mono_assembly_close): Null out assembly->image->references after freeing it.
4365
4366         * image.c (mono_image_close): Free image->references.
4367         
4368         * reflection.c (mono_image_basic_init): Fix a small memory leak.
4369
4370 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
4371
4372         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
4373         before checking if it's NULL (g_assert).
4374
4375 2006-05-10  Martin Baulig  <martin@ximian.com>
4376
4377         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
4378         I thought I already killed that two months ago, but now it somehow reappeared.
4379
4380 2006-05-10  Martin Baulig  <martin@ximian.com>
4381
4382         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
4383
4384 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
4385
4386         * reflection.c: Allocate memory for dynamically created methods in the image
4387         mempools.
4388
4389 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
4390
4391         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
4392         don't use the ad pointer before checking if it's NULL (g_assert).
4393
4394 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
4395
4396         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
4397         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
4398
4399         * marshal.c: Allocate all signatures from mempools.
4400
4401         * marshal.c: Allocate some more signatures from mempools.
4402
4403 2006-05-09  Miguel de Icaza  <miguel@novell.com>
4404
4405         * object.c (mono_load_remote_field): The code used to provide a
4406         temporary variable for returning results if the user did not
4407         provide a result pointer.  But our temporary variable was allocted
4408         on the satck.
4409
4410         Fix calling code to always pass a result area.   Coverity ID 103.
4411
4412 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
4413
4414         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
4415         value, not the old. Fixes #78312.
4416         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
4417
4418         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
4419         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
4420         per-image cache.
4421
4422         * assembly.c (mono_assembly_close): Free image->references.
4423
4424         * assembly.c (mono_assembly_names_equal): Fix a warning.
4425         (mono_assemblies_cleanup): Cleanup more global data.
4426
4427         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
4428
4429         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
4430         ptr_cache and image->modules.
4431
4432         * image.c (mono_image_init): Allocate array_cache lazily.
4433         
4434 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4435
4436         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
4437         behavior was changed recently and has bad side effects.
4438
4439 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
4440
4441         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
4442         
4443         * assembly.c (mono_assembly_close): Remove a debug printf.
4444
4445         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
4446
4447         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
4448         to also allow for temporary references between mono_image_open ()/close ().
4449
4450         * domain.c (get_runtimes_from_exe): Add a FIXME.        
4451
4452 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
4453
4454         * marshal.c: Fix support for dynamic methods.
4455
4456         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
4457
4458         * marshal.c (mono_marshal_cleanup): New cleanup function.
4459
4460         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
4461         image mempools.
4462
4463         * class.c (mono_class_init): Fix leaking class->nested_classes.
4464
4465         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
4466
4467         * image.c (mono_image_init): Initialize the new cashes.
4468
4469         * image.c (mono_image_close): Destroy the new cashes.
4470
4471         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
4472
4473         * mempool.c (mono_mempool_strdup): New helper function.
4474
4475         * class-internals.h: Add prototype for mono_loader_unlock ().
4476
4477         * domain.c (mono_jit_info_table_find): Fix a warning.
4478         (mono_debugger_check_runtime_version): Ditto.
4479
4480         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
4481         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
4482         functions to these modules.
4483
4484         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
4485         metadata modules.
4486         
4487         * marshal.c (mono_free_bstr): Fix a warning.
4488
4489         * assembly.c (mono_assembly_open_full): Fix another small leak.
4490
4491         * object.c: Fix some unload leaks in the remoting code.
4492
4493         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
4494         function.
4495
4496         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
4497
4498         * reflection.c: Fix some unload leaks in dynamic assemblies.
4499
4500 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
4501
4502         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
4503         * marshal.h: Add BSTR support on Win32
4504         * icall.c: Add BSTR icalls
4505         * metadata.h: Add BSTR enums
4506
4507 2006-04-28  Miguel de Icaza  <miguel@novell.com>
4508
4509         Work to catch the crash from #76795 and turn it into an
4510         exception.   As I stubbed out pieces of the VisualBasic support,
4511         I found a number of places where the code was failing and I added
4512         checks to those places. 
4513         
4514         * metadata.c (do_mono_metadata_parse_generic_class): Make this
4515         function return a status code.  If we fail to parse the signature
4516         from mono_metadata_parse_generic_inst, return FALSE.
4517
4518         * loader.c (mono_get_method_from_token): If we fail to load the
4519         method (mono_class_get) return NULL.   
4520
4521         * (method_from_memberref): Return NULL if we are unable to parse
4522         the method signature
4523
4524         (mono_loader_error_prepare_exception): Since we now use the
4525         loader_error flag internally to stop processing, and obtaining
4526         exceptions that might be thrown will walk this code path the
4527         proper way of going from a MonoLoaderError into a
4528         MonoException was convoluted.   This new routine encapsulates the
4529         process of turning the error into an exception and *clearing* the
4530         error afterwards.
4531         
4532 2006-04-27  Miguel de Icaza  <miguel@novell.com>
4533
4534         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
4535         with missing assemblies), and to cope with:
4536
4537                 * Missing fieldref from a non-existing assembly.
4538                 * Missing methodref from a non-existing assembly.
4539
4540         The first batch of work to address *some* of the issues from 76661.
4541         
4542         * object.c (mono_class_create_runtime_vtable): If we fail to
4543         initialize the class raise the exception here. 
4544
4545         * metadata.c (mono_class_get_overrides_full): If any methods fail
4546         to load return the failure to the caller.
4547
4548         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
4549         flagging assemblies that failed to load.   
4550
4551         Do not crash if we are unable to load the assembly.
4552
4553         (mono_assembly_close): Do nothing with REFERENCE_MISSING
4554         assemblies. 
4555
4556         * loader.c (mono_loader_set_error_type_load): Change the
4557         convention to always pass unallocated strings, so we make our own
4558         copies (I know our own code had duplicated strings before, but
4559         this keeps the normal conventions).
4560         (method_from_memberref): Call mono_loader_set_error_method_load
4561         for all possible failures of loading the class. 
4562         Remove assert, turn into a loader error.
4563
4564         (mono_loader_error_to_exception): Move this routine from mini
4565         (mini_loader_error_to_exception) there was no need to have that in
4566         mini. 
4567
4568         * class.c (mono_class_from_typeref): If we were not able to load
4569         the assembly with mono_assembly_load_reference, call the
4570         mono_loader_set_error_type_load to register the problem.
4571
4572         (mono_class_setup_fields): If we fail to load the type from
4573         mono_metadata_parse_type_full, call mono_class_set_failure and
4574         break from the loop.
4575
4576         If class->exception_type is set, we do not layout the fields as
4577         that might crash the runtime, and instead return (from breaking
4578         from the previous loop).
4579
4580         (mono_class_setup_vtable): This now returns a boolean indicating
4581         whether the table was properly setup.   The decision is driven by
4582         mono_class_get_overrides_full which might run into non-existing
4583         methods. 
4584         
4585         (mono_class_init): Returns TRUE on success or FALSE if there was a
4586         problem in loading the type (incorrect assemblies, missing
4587         assemblies, methods, etc).
4588
4589         When we call mono_class_setup_fields we also check for a potential
4590         error inside this call (either a class exception or a general
4591         loader exception).
4592
4593         (mono_class_create_from_typedef): If the parent fails to load
4594         (calling mono_class_get_full) return NULL.
4595         
4596         ** Important **
4597
4598         calls to mono_metadata_parse_type_full should be checked
4599         everywhere and set the mono_class_set_failure
4600         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
4601
4602         The current patch checks the places where my manually constructed
4603         tests show the errors are showing up, but we should do it
4604         everywhere. 
4605
4606         ** Important2 **
4607
4608         mono_class_init return values should be tested everywhere, like
4609         the previous case this is something that we should audit
4610         everywhere and not only on the cases exposed by the tests I
4611         created. 
4612
4613 2006-04-26  Miguel de Icaza  <miguel@novell.com>
4614
4615         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
4616         boolean parameter and instead pass the information on `options'
4617         parameter (FileOptions).
4618
4619         * icall.c: Register the new signature for MonoIO.Open.
4620
4621         * debug-helpers.c (dis_one): Trying to understand how coverity
4622         works.  Fix Run 5, item 78.
4623
4624 2006-04-26  Dick Porter  <dick@ximian.com>
4625
4626         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
4627         dereference.
4628
4629 2006-04-25  Martin Baulig  <martin@ximian.com>
4630
4631         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
4632
4633         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
4634         debugger_thread_created().
4635         (debugger_gc_push_all_stacks): Don't handle the main thread in any
4636         special way.
4637         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
4638         (mono_debugger_finalize_threads): New function; undo the effects
4639         of mono_debugger_init_threads().
4640         (mono_debugger_create_all_threads): Removed.
4641
4642 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
4643
4644         * image.c (mono_image_close): Tidy up trace messages.
4645
4646         * assembly.c (mono_assembly_close): Ditto.
4647
4648         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
4649         no longer references an already freed assembly. Fixes #78168.
4650
4651 2006-04-21  Dick Porter  <dick@ximian.com>
4652
4653         * threads.c (mono_thread_detach): Fix reference counting when
4654         detaching threads.
4655
4656 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
4657
4658         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
4659         #78155.
4660
4661 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
4662
4663         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
4664         (mono_type_to_stind): Ditto.
4665
4666         * marshal.c: Use the new helper functions to simplify code.
4667
4668         * image.c (mono_image_close): Add some code for help debug assembly unloading
4669         problems.
4670
4671         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
4672         image mempool.
4673
4674         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
4675         assembly was already loaded in another appdomain. Fixes #78083.
4676
4677 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
4678
4679         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
4680         referenced assemblies.
4681         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
4682
4683         * domain.c (mono_domain_free): Add a trace message.
4684
4685         * appdomain.c (add_assemblies_to_domain): Ditto.        
4686
4687         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
4688         field.  
4689
4690 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
4691
4692         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
4693
4694 2006-04-12  Martin Baulig  <martin@ximian.com>
4695
4696         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
4697         `USE_INCLUDED_LIBGC'.   
4698
4699 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
4700
4701         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
4702         the patch contains ../ and a small directory name later. Hopefully fixes
4703         #78035.
4704
4705 2006-04-10  Martin Baulig  <martin@ximian.com>
4706
4707         Clean up the debugger's thread-handling code.
4708
4709         The debugger's thread-handling code has been moved from
4710         ../mini/debug-debugger.c to threads.c.  We now iterate directly
4711         over the `threads' hash, keep track of exiting threads and also
4712         use proper locking.
4713
4714         We can now debug XSP and XSP based applications with the debugger.
4715
4716         * object-internals.h (MonoThread): Added `gpointer end_stack'.
4717
4718         * threads.h
4719         (MonoThreadCallbacks): Removed; this was only used by the debugger.
4720         (mono_install_thread_callbacks): Likewise.      
4721
4722         * threads.c (mono_thread_callbacks): Removed.
4723         (debugger_thread_created, debugger_thread_exited): New static functions.
4724         (start_wrapper): Call debugger_thread_created().
4725         (thread_cleanup): Call debugger_thread_exited().
4726         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
4727         (mono_debugger_init_threads): New public function.
4728         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
4729         iterate directly over the `threads' hash and also use proper locking.
4730
4731         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
4732
4733         * mono-debug-debugger.h
4734         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
4735
4736 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
4737
4738         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
4739         argument type=array. Fixes #78057.
4740
4741 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
4742
4743         * culture-info-table.h : regenerated. Fixed bug #69652.
4744
4745 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
4746
4747         * loader.c metadata.c: Reapply a variant r59116.
4748         
4749         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
4750
4751         * class.c (mono_class_setup_interface_offsets): New internal function.
4752
4753         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
4754         interfaces too. Fixes #77398.
4755
4756         * reflection.c (encode_cattr_value): Add support for 
4757         parameter type=object, argument type=array.
4758         (load_cattr_value): Ditto. Fixes #77916.
4759
4760         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
4761         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
4762
4763         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
4764         a byval char array and CharSet is Ansi.
4765
4766         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
4767
4768 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
4769
4770         * metadata.c: Add some locking comments.
4771         
4772         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
4773         mempool.
4774         (mono_metadata_free_method_signature): Don't free the signature itself.
4775
4776         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
4777
4778         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
4779         reference the same MonoImage.
4780         (mono_assembly_load_from_full): Add an assert.
4781
4782 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
4783
4784         * image.c (mono_image_close): Don't put the image we are about to free into the
4785         loaded_images_guid_hash.
4786
4787         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
4788         to reduce code duplication.
4789
4790         * marshal.c: Register the native functions called by this module as icalls, to
4791         somewhat centralize the creation of MonoMethodSignature's.
4792
4793         * loader.c (mono_method_signature): Add a cache for method signatures.
4794
4795         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
4796         the parameter attributes of a method.
4797         (mono_metadata_parse_method_signature_full): Refactored the computation of
4798         parameter attributes into a separate function. Also avoid one allocation in
4799         most cases.
4800
4801         * assembly.c (mono_assembly_close): Ditto.
4802
4803         * image.c (mono_image_close): Log trace messages with INFO level.
4804
4805         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
4806
4807         * image.c reflection.c: Correct reference counting of image modules.
4808         
4809         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
4810         of this function from the image mempool.
4811         
4812         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
4813         to allow more cached types to be used.
4814
4815         * mono-debug.c (mono_debug_add_method): Appled patch from
4816         David S. Miller  <davem@sunset.davemloft.net>: Access 
4817         minfo->lexical_blocks[] entry elements using read32().
4818
4819 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
4820
4821         * loader.c (mono_free_method): No longer free the method header for non-dynamic
4822         methods as it is allocated from the mempool.
4823
4824         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
4825         image mempool.
4826
4827         * metadata-internals.h: Add comments describing the reference counting scheme
4828         used for MonoImage and MonoAssembly.
4829
4830         * image.c assembly.c reflection.c: Rework reference counting of images and 
4831         assemblies so they are freed when the runtime is shut down. Free some 
4832         additional memory structures when an image is unloaded.
4833         
4834 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
4835
4836         * class.c loader.c reflection.c: Allocate more data structures in
4837         the image mempool.
4838
4839 2006-03-31  Miguel de Icaza  <miguel@novell.com>
4840
4841         * icall.c
4842         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
4843         build on pre glib 2.4 systems.
4844
4845 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
4846
4847         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
4848
4849         * icall.c: Fix some warnings.
4850
4851 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
4852
4853         * culture-info-table.h : regenerated.
4854
4855 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
4856
4857         * threads.c, object-internals.h, verify.c: changed the culture caching
4858         code to use a normal MonoArray for storage so the GC can keep track of
4859         them easily. Fixed bits of the cache logic, too and simplified the
4860         code.
4861
4862 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
4863
4864         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
4865         thread for non-Boehm GCs.
4866
4867 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
4868
4869         * domain.c, object.c, domain-internals.h: reduce the amount of memory
4870         needed to keep track of the data for static fields.
4871
4872 2006-03-29  Raja R Harinath  <rharinath@novell.com>
4873
4874         Fix #75172
4875         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
4876         for interface classes.  Use 'num_methods' instead.
4877         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
4878         before using '->vtable_size' field.
4879
4880 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
4881
4882         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
4883         doesn't contain managed pointers, so use a normal hashtable.
4884
4885 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
4886
4887         * reflection.c, class-internals.h, domain.c: fixed handling of types
4888         used as values for objects in custom attributes (bug #77915):
4889
4890 2006-03-24  Martin Baulig  <martin@ximian.com>
4891
4892         * class.c (mono_class_setup_fields): Added support for generic
4893         instances; fixes #77580.
4894
4895 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4896
4897         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
4898
4899 2006-03-24  Dick Porter  <dick@ximian.com>
4900
4901         * file-io.c (get_file_attributes): More stat macro breakage.
4902         Fixes bug 77759.
4903
4904 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
4905
4906         * profiler.c: added the file=filename option in the default profiler
4907         to output the profile data to filename.
4908
4909 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4910
4911         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
4912         bug #77877.
4913
4914 2006-03-22  Martin Baulig  <martin@ximian.com>
4915
4916         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
4917         allocated `MonoClassField *' in `fb->handle'.
4918
4919 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
4920
4921         * class.c, image.c, metadata-internals.h: implemented new mechanism to
4922         allocate interface ID to save memory and allow better ID reuse on
4923         appdomain unload. setup_generic_vtable () removal from Martin.
4924
4925 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
4926
4927         * object.h, appdomain.c, domain.c, exception.c, icall.c,
4928         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
4929         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
4930         write barriers for reference stores with managed objects accessed with
4931         C structures in the runtime and in embedding programs.
4932
4933 2006-03-20  Raja R Harinath  <rharinath@novell.com>
4934
4935         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
4936         'interface_id' and 'max_interface_id' fields of MonoClasses
4937         representing open generic types.
4938
4939 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
4940
4941         * object.h, object.c, icall.c: added functions to deal with
4942         storing valuetypes that contain references in managed objects.
4943         * reflection.c, string-icalls.c, threads.c, marshal.c: small
4944         fixes and comments around uses of mono_array_addr ().
4945
4946 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
4947
4948         * object.h, icall.c, monitor.c: object.GetHashCode ()
4949         implementation that supports the moving garbage collector.
4950
4951 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
4952
4953         * icall.c, threads-types.h, threads.c: implemented finalizer for
4954         LocalDataStoreSlot.
4955
4956 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
4957
4958         * metadata.c (mono_type_size): Add a fixme.
4959         (mono_type_stack_size): Ditto.
4960
4961         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
4962         'type_forwarders' field.
4963
4964         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
4965         attribute from net 2.0.
4966
4967         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
4968         from class.c.
4969
4970         * class.c (mono_class_setup_fields): Fix a warning.
4971         
4972         * class.c (mono_class_from_name): Add support for assemblyref entries
4973         in the EXPORTEDTYPE table.
4974
4975         * reflection.c: Add support for handling type forwarders under net 2.0.
4976
4977         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
4978         
4979 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
4980
4981         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
4982         overwriting entries in ModuleBuild->types, also clean up the code
4983         a little. Fixes #77774.
4984
4985 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
4986
4987         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
4988         load friend assembly info when present.
4989
4990 2006-03-14  Raja R Harinath  <rharinath@novell.com>
4991
4992         Fix crasher on gtest-158.cs.
4993         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
4994         the return value if the MonoClass we want is yet in an
4995         inconsistent state.
4996         * class.c (mono_class_create_from_typedef): Add an comment
4997         explaining an order dependency between mono_class_setup_parent and
4998         mono_class_setup_mono_type.
4999
5000 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
5001
5002         * class.c: documentation updates and events bug fix.
5003
5004 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
5005
5006         * class.c: some cleanup, locking fixes.
5007
5008 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
5009
5010         * class.c: fix the generics code to setup nested
5011         type info to the instantiated type (bug #77770).
5012
5013 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
5014
5015         * marshal.c: fixed a few type correctness issues.
5016
5017 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
5018
5019         * loader.c: the Set/Get/Addrtess array methods should be public.
5020
5021 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
5022
5023         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
5024         
5025         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
5026         info->wrapper.
5027
5028 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
5029
5030         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
5031
5032         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
5033
5034         * mempool.c (mono_mempool_alloc): Speed this up a bit.
5035         (mono_mempool_alloc0): Ditto.
5036
5037 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5038
5039         * socket-io.c:
5040         (create_object_from_sockaddr): it was allocating 4 extra bytes
5041         for the AF_UNIX data. Fixes bug #77747.
5042
5043 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
5044
5045         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
5046
5047 2006-03-09  Dick Porter  <dick@ximian.com>
5048
5049         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
5050         Fixes bug 76966 again.
5051
5052 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
5053
5054         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
5055         names from r57532
5056         * appdomain.c: Bumped corlib version to 48 (due to r57532)
5057
5058 2006-03-07  Martin Baulig  <martin@ximian.com>
5059
5060         * object.c
5061         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
5062
5063 2006-03-07  Martin Baulig  <martin@ximian.com>
5064
5065         * class.c
5066         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
5067         regression introduced in r56970; see gtest-252.cs.
5068
5069         * loader.c (mono_get_method_constrained): Correctly handle generic
5070         methods; see gtest-253.cs.
5071
5072 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
5073
5074         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
5075
5076 2006-03-04  Martin Baulig  <martin@ximian.com>
5077
5078         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
5079         compute the parent type at runtime, just like we're already doing
5080         it for interfaces.
5081
5082         * reflection.c
5083         (mono_reflection_bind_generic_parameters): Don't compute the
5084         parent type anymore.
5085
5086         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
5087
5088 2006-03-04  Martin Baulig  <martin@ximian.com>
5089
5090         * mono-debug-debugger.h
5091         (mono_debugger_create_notification_function): Allocate memory at
5092         runtime and return a pointer to it.
5093
5094 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
5095
5096         * assembly.c: Fix windows build.
5097         
5098         * assembly.c: Fix build.
5099
5100         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
5101
5102         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
5103         
5104 2006-03-03  Dick Porter  <dick@ximian.com>
5105
5106         * process.c
5107         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
5108         Check parameters before dereferencing them.  Fixes Aaron's part of
5109         bug 77393.
5110
5111 2006-03-03  Raja R Harinath  <rharinath@novell.com>
5112
5113         Fix performance regression.
5114         * loader.c (find_method_in_class): Add 'from_class' argument.
5115         Rename 'klass' argument to 'in_class'.  The signature is compared
5116         against the method in 'in_class', and the corresponding method is
5117         returned from 'from_class'.
5118         (find_method): Walk both 'in_class' and 'from_class' in parallel.
5119         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
5120         type definition and generic instantiation in parallel.
5121         (mono_get_method_constrained): Update to changes.
5122
5123 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
5124
5125         * threads.c: make sure the domain is correct, too when doing
5126         mono_thread_attach ().
5127
5128 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
5129
5130         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
5131         windows. Fixes #77683.
5132
5133 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
5134
5135         * object.h, *: introduced specific way to set elements of an array
5136         of references to be used as write barrier. Still need to audit the
5137         uses of mono_array_addr.
5138
5139 2006-03-01  Miguel de Icaza  <miguel@novell.com>
5140
5141         * object-internals.h: New field to cache the assmebly name, patch
5142         from Tambet Ingo (tambet@ximian.com)
5143
5144 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
5145
5146         * decimal.h, class-internals.h, metadata-internals.h,
5147         file-io.h: mark a few function declarations as internal, to
5148         reduce the number of PLT entries.
5149
5150 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5151
5152         * file-io.c: fix typo in warning message.
5153
5154 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
5155
5156         * loader.c: on unix, lookup the "*A" version of a function
5157         if charset is auto as a second option before failing.
5158
5159 2006-02-28  Raja R Harinath  <rharinath@novell.com>
5160
5161         * class.h (mono_class_inflate_generic_method): Revert to two
5162         argument version.
5163         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
5164         (mono_class_inflate_generic_method_full): Add.
5165         * class.c (mono_class_inflate_generic_method_full): Rename from
5166         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
5167         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
5168         * loader.c, reflection.c: Update to changes.
5169
5170 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
5171
5172         * icall.c: const fixes and small improvements.
5173
5174 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5175
5176         * threadpool.c: for asynchronous connect(), enable the same workaround
5177         for BSD 6 as for the Mac. Fixes bug #77637.
5178
5179 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
5180
5181         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
5182         formatted classes. Fixes #77524.
5183
5184 2006-02-24  Raja R Harinath  <rharinath@novell.com>
5185
5186         * class.c (inflate_generic_type): Add a couple more
5187         micro-optimizations.
5188         (inflate_generic_context): Don't use the 'gmethod' from
5189         'inflate_with'.
5190         (mono_class_inflate_generic_method): If the method has generic
5191         parameters, but the passed-in context doesn't have a 'gmethod',
5192         create one.  Use the possibly simplified generic instantiation
5193         from the declaring class instead of the one passed in.
5194
5195 2006-02-24  Raja R Harinath  <harinath@gmail.com>
5196
5197         Make generic method signature and method header handling lazy.
5198         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
5199         (inflate_generic_header): Likewise.
5200         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
5201         parameter to avoid inflating types.
5202         (mono_get_inflated_method): Empty out.
5203         * class.h (mono_class_inflate_generic_method): Update to changes.
5204         * loader.c (mono_get_method_from_token): Don't parse signature for
5205         generic methods, nor methods of generic classes.
5206         (mono_method_signature): Rename from 'mono_method_signature'.
5207         Inflate signature on demand.
5208         (mono_method_get_header): Inflate method header on demand.
5209         * reflection.c: Update to changes.
5210
5211 2006-02-23  Raja R Harinath  <rharinath@novell.com>
5212
5213         * metadata.c (mono_metadata_inflate_generic_inst): If the
5214         instantiation is closed, don't bother expanding it in the new
5215         context.
5216         * class.c (inflate_generic_class): If the generic instantiation
5217         doesn't change after inflation, return the argument itself.
5218         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
5219         Add bounds checks.
5220         (inflate_generic_context): If neither the generic class nor the
5221         generic method instantiations change, return the original context.
5222         * reflection.c (mono_method_get_object): Do
5223         'mono_get_inflated_method' before accessing the ->klass field.
5224         (inflate_mono_method): Don't create a MonoGenericMethod unless
5225         necessary.
5226         (inflate_method): Don't pass a constructed type as the declaring
5227         type of a methodbuilder.
5228
5229 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
5230
5231         * object.c: fix memory overwrite.
5232
5233 2006-02-22  Dick Porter  <dick@ximian.com>
5234
5235         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
5236         it doesn't work any more.
5237         (mono_threads_request_thread_dump): Fix unused variable warnings.
5238
5239 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
5240
5241         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
5242         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
5243         the public header file.
5244
5245 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
5246
5247         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
5248
5249 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
5250
5251         * class-internals.h, object.c: reduce the size of MonoVTable
5252         and store the interface_offsets array at negative offsets.
5253
5254 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
5255
5256         * metadata.c: tweak table descriptors data structures to reduce
5257         size and runtime relocations.
5258
5259 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
5260
5261         * marshal.c: fix some types and opcodes to be type-safe
5262         in marshaling wrappers.
5263
5264 2006-02-21  Ankit Jain  <jankit@novell.com>
5265
5266         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
5267
5268 2006-02-21  Raja R Harinath  <rharinath@novell.com>
5269
5270         * metadata.c (get_constraints): Relax debugging checks for monodis.
5271
5272 2006-02-21  Ankit Jain  <jankit@novell.com>
5273
5274         * metadata.c (mono_metadata_load_generic_params): Move the code
5275         checking for ambiguous generic params from here to mono/dis/get.c
5276         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
5277
5278 2006-02-21  Raja R Harinath  <harinath@gmail.com>
5279
5280         Fix assertion triggered when compiling nemerle.
5281         * class.c (mono_get_shared_generic_inst): Rename from
5282         get_shared_inst and make non-static.
5283         * loader.c (mono_get_shared_generic_method): New.  Used to create
5284         the MonoGenericContext-equivalent of a MonoGenericContainer.
5285         (mono_get_method_from_token): Initialize the 'context' field of
5286         the created MonoGenericContainer.
5287         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
5288         * metadata.c (get_constraints): Add sanity check.
5289         * class-internals.h: Add new internal methods.
5290
5291         * reflection.c (verify_safe_for_managed_space): New sanity check.
5292         Currently checks that owner-less generic parameters aren't allowed
5293         in managed space.
5294         (mono_type_get_object): Use it.
5295         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
5296         that are now in mono_type_get_object.
5297         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
5298
5299 2006-02-19  Raja R Harinath  <harinath@gmail.com>
5300
5301         * metadata.c (mono_type_create_from_typespec): Rename from
5302         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
5303         argument and caching of types in the generic container.
5304         (unwrap_arrays, find_generic_param): Remove.
5305         * metadata-internals.h: Update.
5306         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
5307
5308 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
5309
5310         * class.c (mono_class_get_exception_for_failure): Fix a warning.
5311
5312         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
5313         return values. Fixes #77581.
5314
5315         * class.c (mono_fnptr_class_get): Switch name and name_space.
5316
5317         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
5318         classes and add support for [In, Out] attributes.
5319         (mono_marshal_free_asany): Ditto. Fixes #77524.
5320
5321 2006-02-18  Raja R Harinath  <harinath@gmail.com>
5322
5323         * class.c (mono_class_from_generic_parameter): Make more robust to
5324         incomplete MonoGenericContainers from monodis.
5325
5326 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
5327
5328         * class-internals.h: added some more exception types.
5329         * class.c, metadata.c: added a few checks to handle missing
5330         types.
5331
5332 2006-02-17  Raja R Harinath  <rharinath@novell.com>
5333
5334         Use owner-less generic-params some more.
5335         * class.c (my_mono_class_from_generic_parameter): Remove.
5336         (mono_class_from_generic_parameter): Handle null image,
5337         param->name and param->owner.
5338         (mono_class_from_mono_type): Update.
5339         (mono_class_create_from_typespec): Remove 'container' parameter.
5340         If that parameter is non-null, the result is always inflated by
5341         'mono_class_get_full' anyway.
5342         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
5343         parameter.
5344         (mono_class_get_full): Update.
5345
5346         * class.c (inflate_generic_type) [GENERICINST]: If the generic
5347         instance is not open, don't bother inflating.
5348         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
5349         parse metadata for inflated classes.
5350         (_mono_class_get): Change GenericContext* parameter to
5351         GenericContainer*.
5352         (mono_class_create_from_typespec): Likewise.  Simplify, and
5353         implement trivially.  All the cases are handled in
5354         mono_class_from_mono_type.  Don't inflate returned class.
5355         (mono_class_get_full): Delegate GENERICINST optimization to
5356         inflate_generic_type.
5357         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
5358
5359 2006-02-16  Dick Porter  <dick@ximian.com>
5360
5361         * socket-io.c (create_object_from_sockaddr): Fix typo.
5362         (create_sockaddr_from_object): Check array lengths before
5363         potentially accessing items off the end.
5364         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
5365         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
5366         (ves_icall_System_Net_Sockets_Socket_Send_internal)
5367         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
5368         length checks to avoid wraparound overflows.
5369         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
5370         contents of the array of sockets
5371         (hostent_to_IPHostEntry2)
5372         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
5373         Check return value of inet_ntop ().
5374         (addrinfo_to_IPHostEntry): Fix typo
5375
5376 2006-02-16  Raja R Harinath  <rharinath@novell.com>
5377
5378         Type metadata parsing doesn't use generic-instantiation information.
5379         * metadata.c (mono_metadata_parse_array_full): Change
5380         MonoGenericContext* parameter to MonoGenericContainer*.
5381         (mono_metadata_parse_type_full): Likewise.
5382         (mono_type_create_from_typespec_full): Likewise.
5383         (mono_metadata_parse_mh_full): Likewise.
5384         (mono_metadata_parse_generic_inst): Likewise.
5385         (do_mono_metadata_parse_generic_class): Likewise.
5386         (do_mono_metadata_parse_type): Likewise.
5387         * metadata-internals.h: Update to changes.
5388         * class.c (mono_class_find_enum_basetype): Likewise.
5389         (mono_class_setup_fields): Likewise.
5390         (mono_class_create_from_typespec): Likewise.
5391         * loader.c (method_from_methodspec): Likewise.
5392         (mono_get_method_from_token): Likewise.
5393         (mono_method_get_header): Likewise.
5394
5395 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
5396
5397         * marshal.c: handle additional GENERICINST case (patch from
5398         Thong Nguyen <tum@veridicus.com>).
5399         Fix a few cases where LDIND_I/STIND_I was used for references.
5400
5401 2006-02-16  Raja R Harinath  <rharinath@novell.com>
5402
5403         * reflection.c (mono_reflection_get_token): Remove unused variable.
5404
5405 2006-02-16  Martin Baulig  <martin@ximian.com>
5406
5407         * reflection.c (mono_reflection_get_token): Add support for fields
5408         in instantiated generic types.
5409
5410         * icall.c
5411         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
5412
5413 2006-02-15  Martin Baulig  <martin@ximian.com>
5414
5415         * icall.c
5416         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
5417         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
5418         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
5419         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
5420
5421 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
5422
5423         * class.c, metadata.c, metadata.h, object.c, icall.c,
5424         marshal.c: changed mono_type_get_underlying_type () to do
5425         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
5426         Fixed handling of instantiated generic valuetypes (bug #75479).
5427
5428 2006-02-15  Raja R Harinath  <rharinath@novell.com>
5429
5430         * metadata.c (mono_metadata_decode_signed_value): Simplify.
5431         Delegate to mono_metadata_decode_value, and work on the returned value.
5432
5433         * icall.c (ves_icall_MonoType_GetGenericArguments):
5434         Add consistency check here too.
5435         
5436 2006-02-15  Ankit Jain  <jankit@novell.com>
5437
5438         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
5439         char/short etc.
5440
5441 2006-02-15  Ankit Jain  <jankit@novell.com>
5442
5443         * metadata.c (mono_metadata_decode_signed_value): New function to decode
5444         signed values, used only for representing lower bounds of arrays.
5445         (mono_metadata_parse_array_full): Use new
5446         mono_metadata_decode_signed_value to decode lower bounds.
5447
5448 2006-02-14  Martin Baulig  <martin@ximian.com>
5449
5450         * reflection.c
5451         (mono_reflection_get_token): Support "MonoGenericMethod" and
5452         "MonoGenericCMethod" and allow generic instances / methods.
5453
5454 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
5455
5456         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
5457         to obtain the terminal size using an ioctl.
5458
5459         * object.c (mono_nullable_init): Revert this as nullable reference
5460         types are not valid.
5461         (mono_nullable_box): Ditto.
5462
5463 2006-02-09  Dick Porter  <dick@ximian.com>
5464
5465         * threads.c (mono_thread_detach): Drop a reference to the thread
5466         we're detaching.
5467
5468 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
5469
5470         * object.c (mono_nullable_init): Handle nullable reference types.
5471         (mono_nullable_box): Ditto. Fixes #77446.
5472
5473 2006-02-07  Martin Baulig  <martin@ximian.com>
5474
5475         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
5476
5477 2006-02-07  Ankit Jain  <jankit@novell.com>
5478
5479         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
5480         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
5481         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
5482         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
5483         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
5484         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
5485
5486 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
5487
5488         * class.c (mono_class_create_generic): Set type_token as well.
5489
5490         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
5491         compatible with MS.
5492
5493 2006-02-02  Martin Baulig  <martin@ximian.com>
5494
5495         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
5496         has never been used so far.
5497
5498 2006-02-02  Martin Baulig  <martin@ximian.com>
5499
5500         * mono-debug-debugger.h: Changed comment at the top of this file;
5501         the header is not installed, but it's safe to #include it from
5502         within the JIT.
5503
5504         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
5505         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
5506
5507 2006-02-02  Martin Baulig  <martin@ximian.com>
5508
5509         * mono-debug.h
5510         (MonoSymbolTable): Removed the `metadata_info' field.
5511
5512         * mono-debug.c
5513         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
5514
5515         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
5516         (mono_debugger_add_builtin_types): Removed.
5517         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
5518         (mono_debugger_create_notification_function): We now operate on a
5519         pre-allocated area; take a `gpointer' and return `void'.
5520
5521         * mono-debug-debugger.c
5522         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
5523         (mono_debugger_add_builtin_types): Removed.
5524
5525 2006-02-02  Martin Baulig  <martin@ximian.com>
5526
5527         * threads.c (mono_debugger_create_all_threads): New public method.
5528
5529 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
5530
5531         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
5532         breaks on several platforms.
5533
5534 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
5535
5536         * assembly.c: the VS.NET build doesn't supply default values for
5537         MONO_ASSEMBLIES and MONO_CFG_DIR.
5538
5539 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
5540
5541         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
5542         helper function.
5543
5544         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
5545
5546         * loader.c (method_from_memberref): Fix a warning.
5547
5548         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
5549
5550         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
5551         with explicit layout. Fixes #77433.
5552
5553 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
5554
5555         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
5556         max_interface_id is initialized before using it. Fixes #77398.
5557         (ves_icall_Type_GetInterfaces): Ditto.
5558
5559 2006-01-30  Raja R Harinath  <rharinath@novell.com>
5560
5561         * metadata.c (mono_metadata_parse_method_signature_full): Don't
5562         allocate memory for parameter attributes when parsing memberref
5563         signatures.
5564         * loader.c (mono_loader_set_error_method_load): Don't warn.
5565         (method_from_memberref): Ensure MissingMethodException gets thrown
5566         if method is not found.  Make warning more informative.
5567
5568 2006-01-29  Raja R Harinath  <harinath@gmail.com>
5569
5570         Fix #77397
5571         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
5572         return true if is byref.
5573         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
5574         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
5575         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
5576
5577 2006-01-27  Raja R Harinath  <rharinath@novell.com>
5578
5579         Fix tests/find-method.2.il
5580         * loader.c (find_method, find_method_in_class): Remove is_inflated
5581         argument.  Revert 2006-01-18 change.
5582         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
5583         is generic, search for method in its generic definition.
5584         * class.c (mono_class_setup_vtable_general): Print generic
5585         arguments of generic types in debugging printf.
5586
5587 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
5588
5589         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
5590
5591         * threads.c (mono_threads_request_thread_dump): New helper function.
5592
5593 2006-01-25  Raja R Harinath  <rharinath@novell.com>
5594
5595         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
5596
5597 2006-01-25  Ankit Jain  <jankit@novell.com>
5598
5599         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
5600         move definition to ..
5601         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
5602         
5603 2006-01-25  Ankit Jain  <jankit@novell.com>
5604             Raja R Harinath  <rharinath@novell.com>
5605
5606         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
5607         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
5608         as necessary.
5609
5610 2006-01-25  Martin Baulig  <martin@ximian.com>
5611
5612         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
5613         `MonoDebuggerThread' into debug-debugger.c.
5614
5615 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
5616
5617         * profiler.c: fix printing of data.
5618
5619 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
5620
5621         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
5622           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
5623
5624 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
5625
5626         * object.c: fix deadlock related to string interning.
5627
5628 2006-01-23  Martin Baulig  <martin@ximian.com>
5629
5630         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
5631
5632         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
5633
5634 2006-01-23  Martin Baulig  <martin@ximian.com>
5635
5636         * mono-debug.h: Moved the prototypes of some functions which are
5637         used by the JIT here from mono-debug-debugger.h.
5638
5639 2006-01-21  Martin Baulig  <martin@ximian.com>
5640
5641         * Makefile.am: Don't install mono-debug-debugger.h.
5642
5643 2006-01-21  Martin Baulig  <martin@ximian.com>
5644
5645         * mono-debug-debugger.h: Enforce the private status of this header
5646         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
5647         Moved some stuff from mono-debugger-jit-wrapper.h here.
5648
5649 2006-01-20  Raja R Harinath  <rharinath@novell.com>
5650
5651         * class.c (mono_class_from_typeref): Add a sanity test to help
5652         catch lack of assembly load/search hooks.
5653
5654 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
5655
5656         * marshal.c (emit_struct_conv): Relax the fields with same offset
5657         check even more. Fixes #77230.
5658
5659 2006-01-18  Martin Baulig  <martin@ximian.com>
5660
5661         * loader.c (find_method_in_class): Added `gboolean is_inflated'
5662         argument; if false, we compare the uninstantiated signatures.
5663         (method_from_memberref): Compare the uninstantiated signatures;
5664         fixes #76417.
5665
5666 2006-01-18  Robert Jordan  <robertj@gmx.net>
5667
5668         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
5669         Clear the weak link. Fixes bug #77170.
5670
5671         * gc.c (mono_gchandle_free):
5672         Reflect *-gc.c changes (tiny optimization).
5673
5674 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
5675
5676         * metadata.c (mono_metadata_signature_dup): Applied patch from
5677         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
5678         Fixes #77288.
5679
5680 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
5681
5682         * marshal.c (emit_struct_conv): Allow fields with the same offset when
5683         marshalling from native to managed code. Fixes #77230.
5684
5685 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5686
5687         * threadpool.c: fix problem (Mac only) when more than one asynchronous
5688         connect. Fixes bug #77020.
5689
5690 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
5691
5692         * class.c: fixed id assignement for nested interfaces (bug #77275).
5693         Added also better info for --print-vtable debugging.
5694
5695 2006-01-12  Martin Baulig  <martin@ximian.com>
5696
5697         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
5698         interfaces on-the-fly; fixes #76625.
5699
5700         * class-internals.h
5701         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
5702         don't need that anymore.
5703
5704 2006-01-12  Miguel de Icaza  <miguel@novell.com>
5705
5706         * socket-io.c
5707         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
5708         To avoid initing the nested_classes when not needed I turned the
5709         PeerCredData as a toplevel internal class, as it has to be shared
5710         anyways. 
5711
5712         Fixes the CASA issue.
5713
5714 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
5715
5716         * domain.c: Accessors for MonoJitInfo
5717
5718         * profiler-private.h: Add jitinfo to the end jit hook
5719
5720         * profiler.[ch]: Define new hooks, called after jitting which give
5721         the MonoJitInfo that was compiled
5722
5723 2006-01-10  Martin Baulig  <martin@ximian.com>
5724
5725         * class.c (mono_class_setup_events): Add support for generic
5726         classes; fixes #76440.
5727
5728 2006-01-06  Raja R Harinath  <rharinath@novell.com>
5729
5730         Fix #77160.
5731         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
5732         on passed-in method.
5733
5734 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
5735
5736         * object.c (mono_runtime_invoke_array): Add Nullable support.
5737
5738         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
5739
5740 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
5741
5742         * file-io.c: Don't consider sockets as directory and avoid an endless
5743         loop. Fix bug #76966.
5744
5745 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
5746
5747         * object.c (mono_nullable_init): New helper function.
5748         (mono_nullable_box): Ditto.
5749
5750         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
5751
5752         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
5753
5754         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
5755         
5756 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
5757
5758         * class.c (mono_class_is_assignable_from): Make T assignable to 
5759         Nullable<T>.
5760
5761 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
5762
5763         * appdomain.c: Bump corlib version to 46.
5764         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
5765         serialization purpose) and changed ves_icall_System_Reflection_
5766         Assembly_get_code_base signature to accept a boolean (to escape, or 
5767         not, the assembly code base).
5768
5769 2005-12-23  Dick Porter  <dick@ximian.com>
5770
5771         * icall.c: 
5772         * threads-types.h: 
5773         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
5774         CreateEvent icall now returns "created" boolean parameter.
5775
5776 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
5777
5778         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
5779         #76967.
5780
5781         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
5782         when attr_klass is an interface. Fixes #77045.
5783
5784 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
5785
5786         * marshal.c (emit_struct_conv): Fix previous patch.
5787         
5788         * marshal.c (emit_struct_conv): Add a check for fields with the same
5789         offset.
5790
5791 2005-12-20  Raja R Harinath  <rharinath@novell.com>
5792
5793         Fix regression in Mono.C5.
5794         * class.c (mono_class_create_generic): If 'klass' is an interface
5795         set up the interface offsets.
5796         (mono_class_is_assignable_from): Don't throw away generic arguments.
5797
5798 2005-12-19  Raja R Harinath  <rharinath@novell.com>
5799
5800         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
5801         type parameters.
5802
5803 2005-12-15  Raja R Harinath  <rharinath@novell.com>
5804
5805         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
5806         dead store.
5807         (do_mono_metadata_parse_generic_class): Don't pass the current
5808         generic context when parsing the type being instantiated: it
5809         cannot use it, anyway.
5810
5811         * loader.c (method_from_memberref): Don't inflate a signature if
5812         it doesn't contain any type parameters.
5813
5814 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
5815
5816         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
5817
5818 2005-12-14  Martin Baulig  <martin@ximian.com>
5819
5820         * class.c
5821         (mono_type_get_name_recurse): Don't return null for type
5822         parameters and open generic classes.
5823         (mono_class_setup_methods): Don't exclude generic instances.
5824         (mono_get_unique_iid): Use different IDs for different
5825         instantiations of the same generic type.
5826         (mono_class_setup_vtable): Only use setup_generic_vtable() for
5827         open generic instances; create a normal vtable for closed generic
5828         instances.
5829         (mono_class_setup_vtable_general): We're now also called for
5830         closed generic instances.
5831
5832         * reflection.c
5833         (mono_reflection_bind_generic_parameters): Correctly use
5834         mono_metadata_lookup_generic_inst() everywhere.
5835
5836 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
5837
5838         * object.c (mono_class_create_runtime_vtable): Call 
5839         mono_class_setup_vtable ().
5840
5841         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
5842         function.
5843         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
5844         #76959.
5845
5846         * loader.c (mono_loader_set_error_type_load): Print the type load
5847         warnings to the console so they are more visible to the user.
5848         (mono_loader_set_error_method_load): Ditto.
5849
5850         * reflection.c (ensure_runtime_vtable): Revert the last change as it
5851         is still broken.
5852         
5853         * reflection.c (ensure_runtime_vtable): Fix build.
5854
5855         * reflection.c (ensure_runtime_vtable): Disable an optimization which
5856         doesn't work in all cases.
5857
5858 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
5859
5860         * object.c (mono_array_new_full): Treat a single dimensional array
5861         with 0 lower bounds as an szarray. Fixes #76973.
5862
5863         * reflection.c (custom_attr_visible): Really fix this.
5864
5865 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
5866
5867         * reflection.c (custom_attr_visible): Allow nested public attributes
5868         as well.
5869
5870         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
5871         interface check.
5872
5873 2005-12-12  Raja R Harinath  <harinath@gmail.com>
5874
5875         * class.c (set_generic_param_owner): Delete.
5876         (mono_class_create_from_typedef): Don't set ->owner field of
5877         generic parameters to "param containers" of enclosing classes.
5878         * reflection.c (mono_reflection_initialize_generic_parameter):
5879         Likewise.
5880
5881 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
5882
5883         * reflection.c (custom_attr_visible): Fix build.
5884
5885 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
5886
5887         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
5888         private attributes.
5889         
5890         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
5891         handling of null parameter defaults.
5892
5893 2005-12-09  Raja R Harinath  <rharinath@novell.com>
5894
5895         * class.c (mono_class_from_generic_parameter): Don't set
5896         klass->generic_container.
5897         (my_mono_class_from_generic_parameter): Likewise.
5898
5899 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
5900
5901         * reflection.c (load_public_key): Fix a warning.
5902         (method_encode_code): Fix unaligned accesses.
5903
5904 2005-12-07  Martin Baulig  <martin@ximian.com>
5905
5906         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
5907
5908         * reflection.c
5909         (write_generic_param_entry): Encode our custom attrs.
5910
5911         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
5912
5913 2005-12-07  Martin Baulig  <martin@ximian.com>
5914
5915         * reflection.c (encode_new_constraint): Removed; we don't use the
5916         `NewConstraintAttribute' anymore.
5917
5918 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
5919
5920         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
5921         not fire a TypeResolve event when Assembly.GetType () is called.
5922
5923 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
5924
5925         Beginning of support for nullable types in the runtime. Parts of
5926         this patch are from Martin.
5927
5928         * appdomain.c (MONO_CORLIB_VERSION): Bump
5929
5930         * domain.c (mono_init_internal): get the nullable type
5931
5932         * class.c (mono_class_is_nullable): New method
5933         (mono_class_get_nullable_param): New mehod
5934         (mono_class_create_generic): In types T? set cast_class to T
5935
5936         * class-internals.h (MonoDefaults): new nullable default class
5937         (mono_class_get_nullable_param, mono_class_get_nullable_param):
5938         new methods.
5939
5940 2005-12-05  Raja R Harinath  <rharinath@novell.com>
5941
5942         * metadata.c (select_container): New.  Refactor code to select the
5943         appropriate GenericContainer given the type of generic parameter
5944         we are looking for.
5945         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
5946         not a MonoGenericContext.  Use select_container.  Update parameters.
5947         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
5948         and MONO_TYPE_MVAR.
5949         (unwrap_arrays): Remove duplicate tests.
5950         (find_generic_param): Rename from 'has_same_context'.  Now walks a
5951         generic instantiated class to find any arguments that are generic
5952         parameters.
5953         (mono_type_create_from_typespec_full): Use find_generic_param to
5954         avoid evicting some generic instantiations from the typespec
5955         cache.
5956
5957 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
5958
5959         * reflection.c: fixed writing of doubles on ARM FPA.
5960
5961 2005-12-02  Robert Jordan  <robertj@gmx.net>
5962
5963         * icall.c: Fixed EventInfo.ReflectedType (#76829).
5964
5965 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5966
5967         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
5968         least on SUSE 10 they are not the same (on debian, they are just the
5969         same thing).
5970
5971 2005-12-01  Raja R Harinath  <rharinath@novell.com>
5972
5973         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
5974         DeclaringType for VARs and MVARs.
5975         * class.c (set_generic_param_owner): Fix initialization of owner
5976         fields.
5977
5978 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
5979
5980         * icall.c: fixed Enum.ToObject() to correctly convert the values.
5981
5982 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5983
5984         * threadpool.c: workaround for a bug that shows up on the Mac:
5985         select()+connect() on a blocking socket is not like it should
5986         be, so we proceed to connect() in that case, wasting the I/O
5987         threadpool thread until connect succeedes. Fixes bug #75436.
5988
5989 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5990
5991         * threadpool.c: fix typo when setting file descriptor states.
5992
5993 2005-11-28  Raja R Harinath  <rharinath@novell.com>
5994
5995         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
5996         * metadata.c (mono_metadata_parse_method_signature_full): Don't
5997         create a temporary signature container.
5998         (mono_metadata_parse_generic_param): Update to changes.
5999         (mono_type_create_from_typespec_full): Update to changes.
6000         * loader.c (method_from_memberref): Don't use a
6001         MonoGenericContainer while parsing a memberref signature.
6002         (method_from_methodspec): Remove dead-store of the 'container'
6003         variable.  It's overwritten before use.
6004
6005         * metadata.c (mono_type_create_from_typespec_full): Make debugging
6006         checks tighter.
6007         (mono_metadata_parse_generic_param): Likewise.
6008         * loader.c (find_method_in_class): Does not need a
6009         MonoGenericContainer.  Use 'mono_method_signature' rather than
6010         'mono_method_signature_full'.
6011         (find_method, mono_get_method_constrained, method_from_memberref):
6012         Update to changes.
6013
6014         * metadata.c (mono_type_create_from_typespec_full): Ensure that
6015         owner-less generic-parameters are never evicted from the typespec
6016         cache.
6017
6018         * loader.c (method_from_memberref): Don't use the current context
6019         when parsing signatures.
6020         (method_from_methodspec, mono_get_method_from_token): Update to changes.
6021
6022         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
6023         side-effects in g_assert.
6024         * loader.c (mono_get_method_from_token): Resolve klass earlier so
6025         that we don't potentially lose information.
6026
6027 2005-11-26  Dick Porter  <dick@ximian.com>
6028
6029         * icall.c:
6030         * threads.c: icalls to implement basic (ie, not named)
6031         System.Threading.Semaphore.
6032
6033 2005-11-24  Dick Porter  <dick@ximian.com>
6034
6035         * process.c
6036         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
6037         Use GetProcessId() if it's available.
6038
6039 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
6040
6041         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
6042
6043 2005-11-23  Raja R Harinath  <rharinath@novell.com>
6044             Ankit Jain  <jankit@novell.com>
6045
6046         * loader.c (mono_get_method_from_token): Initialize 'method' field
6047         of all generic parameters before parsing the signature.  Remove
6048         code that "fixed"-up MVAR references.
6049
6050 2005-11-23  Ankit Jain  <jankit@novell.com>
6051
6052         * metadata.c (mono_metadata_has_generic_params):
6053         (mono_metadata_load_generic_param_constraints):
6054         (mono_metadata_load_generic_params): Move duplicate code ...
6055         (mono_metadata_get_generic_param_row): ... here. Returns the
6056         first row-id in GenericParam table for a given owner (token).
6057         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
6058         prototype.
6059
6060 2005-11-23  Raja R Harinath  <rharinath@novell.com>
6061             Ankit Jain  <jankit@novell.com>
6062
6063         * metadata.c (mono_metadata_class_equal): Pass signature_only when
6064         comparing VARs too.
6065         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
6066         type->data.generic_param only if the type is an MVAR.
6067         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
6068         leak owner-less VARs and MVARs into managed space.
6069
6070 2005-11-21  Martin Baulig  <martin@ximian.com>
6071
6072         * class-internals.h
6073         (MonoMethod): Moved the `generic_container' here from
6074         `MonoMethodNormal' since we now also need it for
6075         `MonoMethodPInvoke';
6076         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
6077         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
6078         an union containing both `MonoMethodNormal' and
6079         `MonoMethodPInvoke'.
6080
6081         * loader.c
6082         (mono_get_method_from_token): Allow implementing generic methods
6083         as interncalls.
6084
6085         * threads.c
6086         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
6087         icall.
6088
6089 2005-11-17  Dick Porter  <dick@ximian.com>
6090
6091         * icall.c: 
6092         * process.h: 
6093         * process.c: Split the Process Start_internal icall into
6094         ShellExecuteEx_internal and CreateProcess_internal, which are
6095         called depending on whether UseShellExecute is true.  Fixes bug
6096         76670.
6097
6098         * appdomain.c (MONO_CORLIB_VERSION): Incremented
6099
6100 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
6101
6102         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
6103         'msize' parameters, use the information in 'mspec' instead.
6104         (emit_object_to_ptr_conv): Ditto.
6105
6106         * marshal.c (emit_struct_conv): Handle explicit layout structs with
6107         fields out of order. Fixes #76733.
6108
6109 2005-11-17  Ankit Jain  <jankit@novell.com>
6110
6111         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
6112
6113 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
6114
6115         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
6116           bug #76575.
6117
6118 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
6119
6120         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
6121         for types with non-auto layout. Fixes #76717.
6122
6123 2005-11-16  Ankit Jain  <jankit@novell.com>
6124
6125         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
6126         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
6127         if generic_context is null.
6128           (mono_metadata_generic_param_equal): param->owner can be null.
6129           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
6130         null.
6131
6132 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
6133
6134         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
6135         the correct value.
6136
6137 2005-11-15  Martin Baulig  <martin@ximian.com>
6138
6139         * object.c (set_value): Use mono_class_from_mono_type() instead of
6140         the hack for generic instances; fixes #76136.
6141
6142 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
6143
6144         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
6145         fields.
6146
6147         * image.c (load_metadata_ptrs): Initialize the new fields.
6148
6149         * reflection.c (create_dynamic_mono_image): Ditto.
6150
6151         * reflection.c (build_compressed_metadata): Use the new fields.
6152
6153         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
6154         icall.
6155
6156         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
6157         icall.
6158         
6159 2005-11-15  Ankit Jain  <jankit@novell.com>
6160             Raja R Harinath  <harinath@gmail.com>
6161
6162         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
6163         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
6164         new per-generic_container cache if the cached MonoType's context matches
6165         the current context.
6166           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
6167         to the expected context.
6168           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
6169
6170 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6171
6172         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
6173         we changed the signature of an icall.
6174         * icall.c: Modify to mono_double_ParseImpl return true/false 
6175         depending on the success, instead of throwing the exception. This will
6176         help us in Double.TryParse methods.
6177         
6178 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
6179
6180         * marshal.c (emit_marshal_object): Throw an exception when
6181         marshalling 'object' instead of crashing. Fixes #76696.
6182
6183 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
6184
6185         * class-internals.h: Add prototype for mono_type_get_full_name ().
6186
6187 2005-11-11  Dick Porter  <dick@ximian.com>
6188
6189         * threads.c (mono_thread_manage): Make sure the main thread has
6190         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
6191
6192 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
6193
6194         * loader.c (mono_loader_set_error_type_load): Log a warning to the
6195         console about the missing type.
6196         (mono_loader_set_error_method_load): Ditto.
6197
6198 2005-11-09  Miguel de Icaza  <miguel@novell.com>
6199
6200         * mono-config.c (mono_get_config_dir): Set the system defaults if
6201         none is specified.
6202
6203         * assembly.c (mono_set_dirs): New API entry point to set the
6204         assembly and the config directory in one call
6205
6206 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
6207
6208         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
6209         the ftnptr was created from a delegate in a domain other than the
6210         current domain. Fixes #75377.
6211
6212         * exception.h exception.c: Add mono_get_exception_not_supported ().
6213
6214 2005-11-08  Martin Baulig  <martin@ximian.com>
6215
6216         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
6217
6218 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
6219
6220         * security-manager.h: Added definitions to deal with strongname key 
6221         pairs bigger (and smaller) than 1024 bits.
6222         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
6223         adjust wrt the public key length being used.
6224
6225 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
6226
6227         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
6228           Windows build (r51396-51397).
6229
6230 2005-11-03  Martin Baulig  <martin@ximian.com>
6231
6232         * class.c (mono_class_setup_vtable_general): Also add generic
6233         methods to the vtable; fixes #76581.
6234
6235 2005-11-01  Miguel de Icaza  <miguel@novell.com>
6236
6237         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
6238         sure that we lookup GetString method from the System.Text.Encoding
6239         class, not the derived class or we get an empty method.
6240
6241         Fixed class #76612.
6242
6243 2005-10-25  Miguel de Icaza  <miguel@novell.com>
6244
6245         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
6246         if it has been previously set (embedders). 
6247
6248         Make mono_set_rootdir available also on Unix.
6249
6250 005-10-24  Robert Jordan  <robertj@gmx.net>
6251
6252         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
6253
6254 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
6255
6256         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
6257         only calls which are made to native code use this flag.
6258
6259         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
6260
6261 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
6262
6263         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
6264         Add support for FieldBuilders.
6265
6266 2005-10-29  Martin Baulig  <martin@ximian.com>
6267
6268         * mono-debug.c
6269         (mono_debug_using_mono_debugger): New public method; returns
6270         whether we're running inside the debugger.
6271
6272 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
6273
6274         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
6275         for Method/Constructor/FieldBuilders.
6276
6277 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
6278
6279         * reflection.c (module_add_cattrs): Save custom attributes for global methods
6280         and fields as well.
6281
6282 2005-10-26  Martin Baulig  <martin@ximian.com>
6283
6284         * mono-debug-debugger.c
6285         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
6286
6287 2005-10-24  Raja R Harinath  <harinath@gmail.com>
6288
6289         * icall.c (base64_to_byte_array): Don't pass an out-of-range
6290         integer to isspace.
6291
6292 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
6293
6294         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
6295         when passing valuetypes byref. Fixes #76502.
6296
6297 2005-10-19  Jackson Harper  <jackson@ximian.com>
6298
6299         * profiler.c: Don't put a . in front of types that are not in a
6300         namespace.
6301
6302 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
6303
6304         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
6305
6306 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
6307
6308         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
6309         #76436.
6310         (mono_marshal_get_ldflda_wrapper): Fix a warning.
6311
6312 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6313
6314         * assembly.c metadata-internals.h icall.c: Define an additional
6315         parameter for mono_assembly_name_parse_full, so we can avoid creating
6316         S.R.AssemblyName.Version when no version info wasn't passed.
6317         
6318 2005-10-09  Miguel de Icaza  <miguel@novell.com>
6319
6320         * class.c (mono_type_get_full_name): Reimplement method that was
6321         removed. 
6322
6323         * image.c: Some docs
6324
6325 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
6326
6327         * profiler.c (output_newobj_profile): Fix printing of Total memory
6328         on x86.
6329
6330 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
6331
6332         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
6333
6334 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
6335
6336         * threads.c: remove debug output.
6337
6338 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
6339
6340         * threads.c (mono_thread_manage): Fix crashes if more than 64
6341         threads need to be aborted. Hopefully fixes #75899.
6342
6343         * assembly.c (mono_stringify_assembly_name): New helper function.
6344
6345         * class.c: Use mono_stringify_assembly_name instead of the similar
6346         static function.
6347
6348         * assembly.h assembly.c: Add support for calling a postload search 
6349         hook if an assembly cannot be loaded.
6350
6351         * appdomain.c: Register new search hooks which call the AssemblyResolve
6352         events in AppDomain. Fixes #75231
6353
6354 2005-10-07  Martin Baulig  <martin@ximian.com>
6355
6356         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
6357         methods without debug info.
6358
6359 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
6360
6361         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
6362         wrappers.
6363
6364 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6365
6366         * file-io.c: now that we return symlinks, use lstat and, when the file
6367         is a symbolic link, stat, to get the file attributes. Also avoid the
6368         conversion to/from utf16/external.
6369
6370 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
6371
6372         * class.c (mono_class_layout_fields): Compute klass->has_references
6373         correctly if an embedded valuetype is not yet initialized. Fixes
6374         #76331.
6375
6376 2005-10-04  Martin Baulig  <martin@ximian.com>
6377
6378         * metadata.c
6379         (mono_metadata_load_generic_param_constraints): New public
6380         function; splitted the constraints loading out from
6381         mono_metadata_load_generic_params().
6382
6383         * class.c (mono_class_create_from_typedef): Call
6384         mono_metadata_load_generic_param_constraints() after setting up
6385         the type and creating our parent; fixes #75329.
6386
6387 2005-10-04  Martin Baulig  <martin@ximian.com>
6388
6389         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
6390         non-dynamic parent classes.
6391
6392 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
6393
6394         * file-io.c : win32 build fix (ETXTBSY seems not found).
6395
6396 2005-10-04  Martin Baulig  <martin@ximian.com>
6397
6398         * reflection.c
6399         (mono_image_get_methodspec_token): Make the cache actually work;
6400         fixes #75974.
6401
6402 2005-10-04  Martin Baulig  <martin@ximian.com>
6403
6404         * class.c (mono_class_name_from_token): Removed the unneccessary
6405         `MonoGenericContext *' argument.
6406
6407 2005-10-04  Martin Baulig  <martin@ximian.com>
6408
6409         * loader.c
6410         (method_from_methodspec): Make the caching work again; fixes the
6411         performance regression from #76262.
6412
6413 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6414
6415         * file-io.c:
6416         * file-io.h:
6417         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
6418         GetFileSystemEntries that performs the same work but without going
6419         into io-layer, locking, etc.
6420
6421 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
6422
6423         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
6424         ThreadState_Stopped as well. Fixes #76047.
6425
6426 2005-09-29  Martin Baulig  <martin@ximian.com>
6427
6428         * class.c
6429         (inflate_generic_context): If the new context has a `gmethod', set
6430         its `container' that that gmethod's `container'.
6431
6432         * metadata.c
6433         (mono_metadata_parse_generic_param): Simplify things;
6434         `generic_container = generic_context->container;' is just fine.
6435
6436         * loader.c (method_from_methodspec): Code cleanups.
6437
6438 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
6439
6440         * decimal.c: fix warning (and let gcc generate correct
6441         code on ARM with optimizations).
6442
6443 2005-09-28  Martin Baulig  <martin@ximian.com>
6444
6445         * loader.c
6446         (method_from_memberref): Added `MonoGenericContext *class_context'
6447         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
6448         (method_from_methodspec): If we're a memberref, use the enclosing
6449         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
6450
6451 2005-09-28  Martin Baulig  <martin@ximian.com>
6452
6453         * object.c (mono_runtime_invoke_array): Added support for
6454         MONO_TYPE_GENERICINST; fixes #75917.
6455
6456 2005-09-27  Martin Baulig  <martin@ximian.com>
6457
6458         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
6459         `k->byval_arg.type' to determine the actual type.
6460
6461         * loader.c (method_from_methodspec): Removed some hacks.
6462
6463 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
6464
6465         * class-internals.h (mono_field_is_deleted): Do the test for
6466         rtspecialname before we check the actual name of the field. This
6467         prevents us from dereferencing a pointer into the string table,
6468         saving us from accessing a few pages
6469
6470         * *.c: Replace the use of {Enter,Leave}CriticalSection with
6471         macros. This will allow a deadlock debugger to easily be plugged
6472         in.
6473
6474 2005-09-27  Martin Baulig  <martin@ximian.com>
6475
6476         * loader.c (method_from_methodspec): Create a "signature"
6477         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
6478
6479 2005-09-27  Martin Baulig  <martin@ximian.com>
6480
6481         * class.c
6482         (inflate_generic_class): Correctly set the new context's
6483         container.
6484
6485         * loader.c
6486         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
6487         instead of a `MonoGenericContext *'.
6488         (mono_method_signature_full): Take a `MonoGenericContainer *'
6489         instead of a `MonoGenericContext *'.
6490
6491         * metadata.c
6492         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
6493         instead of a `MonoGenericContext *'.
6494         (mono_metadata_parse_method_signature_full): Likewise.
6495
6496 2005-09-26  Martin Baulig  <martin@ximian.com>
6497
6498         * class.c
6499         (mono_class_from_generic_parameter): Set `klass->generic_container'
6500         (mono_class_from_generic_parameter): Likewise.
6501         (mono_bounded_array_class_get): We inherit the generic container
6502         from the element class.
6503
6504         * loader.c
6505         (find_method, find_method_in_class): Take a `MonoGenericContext *'
6506         argument rather than computing it here.
6507         (method_from_memberref): Correctly set the generic context before
6508         parsing the signature.  Fixes #75681.
6509
6510 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
6511
6512         * object.c (mono_class_has_special_static_fields): Fix warnings.
6513
6514 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6515
6516         * assembly.c: Add parse_public_key function, to
6517         par the public keys. Also added mono_assembly_name_parse_full,
6518         to define it the parsed key should be freed or not.
6519         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
6520         to parse a long format assembly name.
6521         * metadata-internals.h: Keep mono_assembly_name_parse_full as
6522         private, since calling it to preserve the key requires
6523         freeing it manually.
6524         
6525 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
6526
6527         * locales.c : removed HAVE_ICU part.
6528
6529 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
6530
6531         * object.c (mono_class_create_runtime_vtable): Avoid calling 
6532         field_is_special_static if the klass has no special static fields.
6533
6534         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
6535         (MonoCachedClassInfo): Likewise.
6536
6537         * object.c (mono_class_has_special_static_fields): New helper function.
6538
6539 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6540
6541         * class.c (mono_class_create_from_typedef): Don't call 
6542         interfaces_from_typedef_full for enums.
6543         (mono_class_create_from_typedef): Compute the base types of enums directly
6544         without calling mono_class_setup_fields ().
6545         (mono_class_find_enum_basetype): New helper function.
6546
6547         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
6548         one place inside the string heap.
6549         
6550 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
6551
6552         * class.c: locking fixes, code cleanups, some docs added.
6553         Allocate some data structures in the image mempool.
6554
6555 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6556
6557         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
6558         the example code.
6559         
6560 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
6561
6562         * class-internals.h, class.c, reflection.c: reduce memory taken by
6563         MonoClass.
6564
6565 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
6566
6567         * metadata.c, metadata.h, loader.h: documentation updates, code and
6568         API cleanups.
6569
6570 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6571
6572         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
6573         the example code.
6574
6575         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
6576         page faults caused by the runtime while reading metadata.
6577
6578 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6579
6580         * socket-io.c: the field names were changed 3 months ago and no one
6581         realized until bug #76077 got filed!
6582
6583 2005-09-20  Martin Baulig  <martin@ximian.com>
6584
6585         * icall.c (assembly_icalls): Removed some unused debugger icalls.
6586
6587 2005-09-20  Martin Baulig  <martin@ximian.com>
6588
6589         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
6590         write the rank into the class entry.
6591
6592 2005-09-20  Martin Baulig  <martin@ximian.com>
6593
6594         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
6595
6596 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
6597
6598         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6599
6600         * icall.c (custom_attrs_defined_internal): New icall.
6601
6602         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
6603         function.
6604         (mono_custom_attrs_construct_by_type): New helper function.
6605
6606 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
6607
6608         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
6609         terminate the resulting string. Fixes #76123.
6610
6611 2005-09-16  Martin Baulig  <martin@ximian.com>
6612
6613         * mono-debug.c
6614         (mono_debug_add_method): Ignore inflated methods for the moment.
6615
6616 2005-09-14  Martin Baulig  <martin@ximian.com>
6617
6618         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
6619
6620 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
6621
6622         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
6623         return a success/failure indication.
6624         (mono_metadata_interfaces_from_typedef_full): Ditto.
6625         (get_constraints): Ditto.
6626
6627 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
6628
6629         * marshal.c (emit_marshal_array): Fix handling of null arrays.
6630         
6631         * marshal.c (emit_marshal_array): Add support for returning string
6632         arrays from delegates. Fixes #76063.
6633
6634         * marshal.c: Use the emit_ldloc/stloc macros where possible.
6635
6636 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
6637
6638         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
6639         icall.
6640
6641 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
6642
6643         * reflection.c icall.c: Fix after mono_get_exception_type_load
6644         signature change.
6645
6646         * assembly.c (mono_assembly_get_assemblyref): New helper function.
6647         (mono_assembly_load_reference): Use the new helper.
6648
6649         * class-internals.h (MonoLoaderError): New structure containing 
6650         information about type loading errors.
6651
6652         * class-internals.h loader.c: Add APIs to store per-thread loader
6653         error information.
6654
6655         * loader.c class.c: Set the loader error if needed.
6656
6657         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
6658
6659 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
6660
6661         * decimal.c: fixed to handle the broken ARM fp format.
6662
6663 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
6664
6665         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
6666         broken.
6667
6668 2005-09-06  Martin Baulig  <martin@ximian.com>
6669
6670         * domain.c (supported_runtimes): Added v2.0.50727.
6671
6672 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
6673
6674         * culture-info.h: reduce the size of some structures.
6675
6676 2005-09-05  Martin Baulig  <martin@ximian.com>
6677
6678         Reflect latest API changes in the August CTP.
6679
6680         * icall.c
6681         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
6682         ("MonoType.HasGenericArguments"): Removed.
6683         ("MonoMethod.BindGenericParameters"): Renamed to
6684         "MakeGenericMethod".
6685         ("MethodBuilder.BindGenericParameters"): Renamed to
6686         "MakeGenericMethod".    
6687
6688 2005-09-05  Martin Baulig  <martin@ximian.com>
6689
6690         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
6691
6692 2005-09-05  Martin Baulig  <martin@ximian.com>
6693
6694         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6695
6696         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
6697         generic_container is non-NULL.
6698
6699 2005-09-05  Martin Baulig  <martin@ximian.com>
6700
6701         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6702
6703         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
6704
6705 2005-08-29  Michal Moskal  <malekith@nemerle.org>
6706
6707         * reflection.c (encode_locals,
6708         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
6709         for large generic types.
6710
6711 2005-09-05  Martin Baulig  <martin@ximian.com>
6712
6713         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6714
6715         * class.c (mono_dup_array_type): New public method.
6716         (mono_metadata_signature_deep_dup): New public method.
6717         (dup_type): Correctly duplicate array and function types.
6718
6719 2005-09-05  Martin Baulig  <martin@ximian.com>
6720
6721         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6722
6723         * reflection.c (get_default_param_value_blobs): Handle generic types
6724         and generic methods.
6725
6726 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
6727
6728         * class.c: Fixed error reporting (method/class were inversed) for 
6729         inheritance demands.
6730         * security-manager.c|h: Added the AppDomain when calling the managed
6731         System.Security.SecurityManager.InheritanceDemand method.
6732
6733 2005-09-01  Raja R Harinath  <rharinath@novell.com>
6734
6735         * reflection.c (encode_marshal_blob): 'marshaltype' and
6736         'marshaltyperef' are alternate sources for the custom marshaler
6737         name.
6738
6739 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
6740
6741         * class.c: fix creation of array classes with rank == 1
6742         (patch by Ankit Jain <jankit@novell.com>).
6743
6744 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
6745
6746         * object.c: fix check for creating the bound data for arrays vs
6747         szarrays.
6748
6749 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6750
6751         * object.c: configuration file name is now based on the executable name,
6752         not the image name. Fixes bug #75931.
6753
6754 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
6755
6756         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
6757         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
6758
6759 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
6760
6761         * rand.c: Use wincrypt.h instead of WinCrypt.h.
6762
6763 2005-08-24  Ankit Jain  <jankit@novell.com>
6764             Raja R Harinath  <rharinath@novell.com>
6765
6766         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
6767           called by it recursively.
6768           (mono_class_init): Remove special case in pending_init handling, since it's
6769           superseded by the fix to mono_class_from_typeref.
6770
6771 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
6772
6773         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
6774         BROKEN_THREAD_START stuff.
6775
6776 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
6777
6778         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
6779         trampoline.
6780
6781         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
6782         
6783         * object.c (mono_delegate_ctor): Replace the original function address with
6784         a delegate trampoline.
6785
6786 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
6787
6788         * icall.c: add boolean argument to base64_to_byte_array and 
6789         InternalFromBase64String to control whether a whitespace-only string
6790         is allowed (or should casue a FormatException to be thrown). We need
6791         this as the behavior has changed between MS.NET 1.x and 2.0, and we
6792         to match the MS behaviour in both profiles.
6793         * appdomain.c: Bump corlib version.
6794
6795 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6796
6797         This patch implements a big portion of publisher policy
6798         support, used to bind assembly versions and redirect
6799         one assembly from version A to version B.
6800
6801         * assembly.c:
6802         New GSList loaded_assembly_bindings, for storing the cached
6803         assembly bindings.
6804         (assembly_binding_maps_name): New static function for checking if a 
6805         assembly binding information maps an assembly name.
6806         (mono_assembly_binding_info_free): New function for freeing
6807         assembly binding information resources.
6808         (get_publisher_policy_info): New static function for retrieving 
6809         assembly binding information from a MonoImage.
6810         (compare_versions): New static function for comparing an assembly
6811         binding information data and the version of an assembly name.
6812         (check_policy_versions): New static function for checking if an
6813         assembly binding info mapping an assembly name is valid for it.
6814         (mono_assembly_load_publisher_policy): New static function for
6815         loading the 'policy.major.minor.MyAssembly' image for an assembly
6816         with an assembly name 'aname'.
6817         (mono_assembly_bind_version): New static function for updating
6818         assembly redirection.
6819         (mono_assembly_apply_binding): New static function for applying
6820         assembly binding.
6821         (search_binding_loaded): New static function for searching 
6822         loaded assembly binding infos in the cache domain.
6823         (mono_assembly_load_full): Don't apply assembly binding for
6824         reflection only assemblies.
6825
6826         * metadata-internals.h: Add MonoAssemblyBindingInfo,
6827         which contains information about assembly binding. Also
6828         declare signature for mono_config_parse_publisher_policy ()
6829         function, used to retrieve pub policy info.
6830         
6831         * mono-config.c:
6832         (publisher_policy_start): New static function used to parse publisher 
6833         policy config files.
6834         (publisher_policy_parser): New static MonoParseHandler containing 
6835         the functions used when parsing config files.
6836         (mono_config_parse_publisher_policy): New function for parsing
6837         publisher policy files.
6838         
6839 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
6840
6841         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
6842
6843         * marshal.c (mono_delegate_free_ftnptr): Ditto.
6844
6845         * object.c (mono_get_addr_from_ftnptr): New helper function.
6846
6847         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
6848
6849         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6850
6851 2005-08-19  Dick Porter  <dick@ximian.com>
6852
6853         * threads.c, threads.h, appdomain.c, appdomain.h,
6854         profiler-private.h, monitor.c, object.c, object-internals.h,
6855         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
6856         store the thread ID, so it can hold a 64 bit value if needed.
6857
6858 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
6859
6860         * reflection.c (mono_reflection_create_dynamic_method): Store the
6861         handle class into the method references as well so ldtoken works in
6862         dynamic methods.
6863
6864         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
6865         types.
6866
6867 2005-08-19  Ankit Jain <jankit@novell.com>
6868
6869         Fix #75847.
6870         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
6871           here rather than using the method signature of a arbitrary function
6872           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
6873           two arguments.
6874           Hack done with Harinath.
6875
6876 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6877
6878         * threadpool.c: disable printing stack traces when we get a exception
6879         in a threadpool thread. I need to do more testing to figure out which
6880         cases actually print this. Fixes bug #75828.
6881
6882 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6883
6884         * icall.c: there might be ignored whitespace after the last '='. This
6885         fixes length computation and bug #75840.
6886
6887 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
6888
6889         * assembly.c (mono_assembly_load_full): Consider .exe extension as
6890         well. Fixes #75809.
6891
6892         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
6893         #75784.
6894         
6895         * reflection.c (create_custom_attr_data): Ditto.
6896
6897 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
6898
6899         * locales.c, culture-info.h : removed RegionLCIDMap.
6900         * culture-info-tables.h : regenerated.
6901
6902 2005-08-16  Martin Baulig  <martin@ximian.com>
6903
6904         * class.c (mono_type_get_name_recurse): Small fix.
6905
6906 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
6907
6908         * locales.c : indentation fixie.
6909
6910 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
6911
6912         * object-internals.h,
6913           locales.h,
6914           locales.c,
6915           culture-info.h,
6916           icall.c : added RegionInfo table support.
6917         * culture-info-table.h : regenerated for region support.
6918
6919 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
6920
6921         * reflection.c (resolve_object): handle all kinds of MonoMethod
6922         including generic ones
6923
6924 2005-08-12  Ankit Jain <jankit@novell.com>
6925
6926         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
6927           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
6928
6929 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
6930
6931         * process.c: Don't close a thread handle when it's NULL. This is a
6932         workaround for bug #75733.
6933
6934 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
6935
6936         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
6937
6938 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
6939
6940         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
6941
6942 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6943
6944         * threadpool.c: if a work item in the thread pool has a callback that
6945         catches a exception, don't propagate it after invoking the callback.
6946         Fixes bug #75336.
6947
6948 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
6949
6950         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
6951
6952         * class-internals.h (MonoCachedClassInfo): Add some new fields.
6953
6954         * class.c (mono_class_init): Load field info lazily in the AOT case.    
6955
6956         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
6957
6958 2005-08-03  Ankit Jain  <jankit@novell.com>
6959
6960         Fix #75683.
6961         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
6962           PInvoke calling convention is 0.
6963
6964 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
6965
6966         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
6967         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
6968
6969 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
6970
6971         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
6972         to handle threads not started by the GC (patch by Michael Meeks
6973         <michael.meeks@novell.com>).
6974
6975 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
6976
6977         * reflection.c: Make buffer used in emitting types larger for some
6978         big generic types (patch by Michal Moskal).
6979
6980 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
6981
6982         * mono-debug.c: Fix some (not all) alignment problems.
6983
6984 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6985
6986         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
6987         Invoke mono_image_load_from_data_full passing the refonly
6988         parameter.
6989
6990         * assembly.c
6991         (mono_assembly_open_from_bundle): Add the refonly argument, 
6992         in order to pass it to other methods it calls to.
6993         (do_mono_assembly_open): Add the refonly argument, in order 
6994         to pass it to other methods it calls to.
6995         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
6996         the refonly parameter to it.
6997
6998         * image.c: Add loaded_images_refonly_hash and
6999         loaded_images_refonly_guid_hash to cache the reflection
7000         only loaded images.
7001         (mono_images_init): Initialize the hash tables used for
7002         caching the reflection only images.
7003         (load_modules): Invoke mono_image_open_full passing the refonly
7004         parameter to load the modules the correct way.
7005         (build_guid_table): Add the refonly argument, to re-build the 
7006         correct hash table.
7007         (do_mono_image_open): Added the refonly argument, in order to
7008         define it for the loaded image.
7009         (mono_image_loaded_full): New function, which receives an
7010         additional parameter to look for the image in the refonly or
7011         non-refonly section.
7012         (mono_image_loaded): Updated, using mono_image_loaded_full.
7013         (mono_image_loaded_by_guid_full): The same case that happens
7014         with mono_image_loaded_full.
7015         (mono_image_loaded_by_guid): Likewise.
7016         (register_image): Use the ref_only variable inside MonoImage
7017         to decide in which hash table store the current image.
7018         (mono_image_open_from_data_full): Rename
7019         mono_image_open_from_data to mono_image_open_from_data_full,
7020         adding the refonly argument, to define the ref_only variable 
7021         inside MonoImage.
7022         (mono_image_open_from_data): Return 
7023         mono_image_open_from_data_full.
7024         (mono_image_open_full): Rename mono_image_open to
7025         mono_image_open_full, receiving the new refonly argument,
7026         to pass it to inner methods.
7027         (mono_pe_file_open): Update this function, to open
7028         a MonoImage as a non-refonly image.
7029         (mono_image_close): Use the refonly variable inside
7030         MonoImage to remove the image from the correct caches.
7031
7032         * image.h: Add the signatures of mono_image_open_full,
7033         mono_image_open_from_data_full, mono_image_loaded_full,
7034         mono_image_loaded_by_guid_full.
7035
7036         * metadata-internals.h: Add the ref_only field to 
7037         MonoImage.
7038         
7039 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7040
7041         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
7042         Fix the last behavior, which used to load the assemblies and
7043         extract MonoReflectionAssemblyName information, instead of
7044         extract it from the metadata tables. Needed for Reflection
7045         Only assemblies.
7046         
7047 2005-07-29  Martin Baulig  <martin@ximian.com>
7048
7049         * mono-debug-debugger.c
7050         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
7051         not initialized.
7052
7053         * mono-debug.c
7054         (mono_debug_address_from_il_offset): Check whether we have
7055         debugging support before attempting to take the lock.
7056         (mono_debug_source_location_from_address): Likewise.
7057         (mono_debug_source_location_from_il_offset): Likewise.
7058         (mono_debug_il_offset_from_address): Likewise.
7059         (mono_debug_address_from_il_offset): Likewise.
7060
7061 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
7062
7063         * class.c (mono_class_from_name_case): Add support for dynamic images.
7064         Fixes #75650.
7065
7066         * object.c (mono_class_compute_gc_descriptor): Add a workaround
7067         for #75479.
7068
7069 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
7070         
7071         * reflection.c (mono_method_get_object): Fix warning.
7072
7073 2005-07-28  Martin Baulig  <martin@ximian.com>
7074
7075         * mono-debug.c
7076         (mono_debug_add_wrapper): Also write the wrapper type.
7077
7078 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
7079
7080         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
7081         
7082         * class.c (mono_class_init): Avoid reading nested classes if the AOT
7083         data indicates the class has none.
7084
7085 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
7086
7087         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
7088         loader lock with the debugger lock. Prevents deadlocks for beagle.
7089
7090         Beagle can now run on an smp box for a weekend without any
7091         issues. Woohoo!
7092
7093 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
7094
7095         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
7096         in a module. Fixes #75629.
7097
7098 2005-07-26  Martin Baulig  <martin@ximian.com>
7099
7100         * mono-debug.c (mono_debug_add_wrapper): New static method.
7101         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
7102         interncall or a wrapper.
7103
7104         * mono-debug.h (MonoDebugWrapperData): New public typedef.
7105         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
7106         (MONO_DEBUGGER_VERSION): Bump to 51.
7107
7108         * mono-debug-debugger.c
7109         (mono_debugger_add_type): Removed this empty function.
7110         (mono_debugger_add_method): Likewise.
7111
7112 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
7113
7114         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
7115         before accessing method->slot.
7116
7117 2005-07-21  Jb Evain  <jbevain@gmail.com>
7118
7119         * reflection.c (method_encode_clauses/class): Handle filters clauses.
7120         Fixes #75010.
7121
7122 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
7123
7124         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
7125         #75587.
7126
7127 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
7128
7129         * image.h image.c: Add mono_image_get_guid () API function.
7130
7131 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
7132
7133         There were issues when multiple threads tried to load
7134         assemblies. A deadlock was created between assemblies_mutex and
7135         mono_domain_assemblies_lock. This fixes the issue by making the
7136         assembly ref counting be lock free. See bug 75586.
7137         
7138         * image.c (mono_image_close): The add ref function here was using
7139         Interlocked operations while the unref was using a mutex and a
7140         --. I don't think this was ever a bug that would be exposed in a
7141         non-pendantic way (ie, by an embedder doing a ref on one thread
7142         and an unref on another), but for the sake of correctness, this is
7143         now Interlocked.
7144
7145         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
7146         (mono_assembly_load_reference): Call mono_assembly_addref rather
7147         than touching the refcount ourselves.
7148         (mono_assembly_close): Use InterlockedDecrement to unref the
7149         assembly. Don't acquire the lock unless it is actually needed.
7150
7151 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
7152
7153         * class.c (mono_class_layout_fields): Fix calculation of has_references
7154         for generic types.
7155
7156 2005-07-12  Martin Baulig  <martin@ximian.com>
7157
7158         Applying a patch from Michal Moskal <malekith@nemerle.org>.
7159
7160         * metadata.c
7161         (mono_type_hash): Provide better hashing for generic instances.
7162         (mono_generic_inst_hash): Improve hashing.
7163         (mono_generic_class_hash): Likewise.
7164
7165         * reflection.c (mymono_metadata_type_hash): Improve hashing for
7166         generic instances.
7167
7168 2005-07-12  Martin Baulig  <martin@ximian.com>
7169
7170         * reflection.c (mono_reflection_create_runtime_class): Remove the
7171         hack for generic type definitions and non-`Run' assemblies.
7172         (mono_reflection_bind_generic_parameters): Also use
7173         `klass->wastypebuilder' to check for TypeBuilders.
7174
7175 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
7176
7177         * class.c (mono_class_layout_fields): Fix calculation of has_references
7178         for generic types.
7179
7180         * class.c (inflate_generic_class): Fix a leak.
7181         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
7182         for generic types.
7183
7184 2005-07-11  Martin Baulig  <martin@ximian.com>
7185
7186         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
7187         on error.
7188
7189 2005-07-11  Martin Baulig  <martin@ximian.com>
7190
7191         * loader.c (find_method): Also lookup in
7192         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
7193
7194 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
7195
7196         * appdomain.c (mono_domain_unload): Don't free the error message
7197         before passing it to mono_get_exception_...
7198
7199         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
7200         
7201 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
7202
7203         * threads.c: try to better guess an available RT signal (bug #75387).
7204
7205 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
7206
7207         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
7208         and CACHE_OBJECT.
7209
7210 2005-07-07  Martin Baulig  <martin@ximian.com>
7211
7212         * class.c (mono_type_get_name_full): Return NULL for
7213         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
7214         fixes #75408.
7215
7216 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
7217
7218         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
7219         exit the appdomain as well being aborted.
7220
7221         * threadpool.c: Create all threadpool threads inside the root appdomain, and
7222         change back to the root domain after calling managed code. This enables
7223         appdomains using threadpools to be unloaded.
7224
7225 2005-07-07  Martin Baulig  <martin@ximian.com>
7226
7227         * class-internals.h
7228         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
7229         into `MonoDynamicGenericClass' since we only need it for dynamic
7230         types.
7231
7232         * reflection.c (mono_class_bind_generic_parameters): We don't need
7233         to compute the `parent' here.
7234
7235 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
7236
7237         * culture-info-table.h : regenerated.
7238
7239 2005-07-06  Martin Baulig  <martin@ximian.com>
7240
7241         * icall.c
7242         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
7243
7244         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
7245
7246 2005-07-06  Martin Baulig  <martin@ximian.com>
7247
7248         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
7249         we're doing a signature-only comparision; fixes #74945.
7250
7251 2005-07-06  Martin Baulig  <martin@ximian.com>
7252
7253         * class-internals.h (MonoGenericClass): Moved some things out into
7254         a new `MonoInflatedGenericClass' type.  
7255         (MonoInflatedGenericClass): New type; the `klass' of a
7256         `MonoGenericClass' is now computed lazyly in
7257         mono_get_inflated_generic_class().      
7258
7259         * class.c (mono_get_inflated_generic_class): New public function.
7260         (mono_class_inflate_generic_method): Removed the unused
7261         `MonoClass *' argument.
7262         (setup_generic_vtable): Don't call mono_get_inflated_method() on
7263         all the methods.
7264         (mono_class_create_generic): Make this static and merge it with
7265         mono_class_create_generic_2(); we're now called automatically from
7266         mono_get_inflated_generic_class().
7267
7268         * loader.c (mono_method_signature): Call
7269         mono_get_inflated_method() here.
7270
7271 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
7272
7273         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
7274         type of fields with RVA.
7275
7276         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
7277         for this pseudo class.
7278         (my_mono_class_from_generic_parameter): Likewise.
7279         (mono_class_init): Allow interfaces to have cctors.
7280
7281 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
7282
7283         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
7284         lazily for AOT methods.
7285
7286 2005-07-05  Martin Baulig  <martin@ximian.com>
7287
7288         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
7289         returns FALSE for a successful match, not TRUE.
7290
7291 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
7292
7293         * loader.c (mono_method_get_index): Optimize this a bit.
7294
7295 2005-07-04  Martin Baulig  <martin@ximian.com>
7296
7297         * class.c
7298         (class_compute_field_layout): Move the check for generic type
7299         definitions into mono_class_layout_fields().  Fixes #74684.
7300         (mono_class_from_generic_parameter): Correctly compute
7301         `klass->parent'; fixes #75457.
7302
7303         * reflection.c (register_assembly, register_module): Make sure
7304         `domain->rejobject_hash' is already created.
7305
7306 2005-07-02  Martin Baulig  <martin@ximian.com>
7307
7308         * class-internals.h
7309         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
7310         `MonoDynamicGenericClass'.      
7311
7312 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
7313
7314         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
7315         returned by a field getter is null, since null is a valid value.
7316
7317 2005-07-01  Martin Baulig  <martin@ximian.com>
7318
7319         * reflection.c (mono_reflection_generic_class_initialize): Update
7320         the `dgclass->fields [i].parent' to the correct class.
7321         (mono_image_get_fieldref_token): Use the declaring type, not the
7322         reflected type.
7323
7324 2005-07-01  Martin Baulig  <martin@ximian.com>
7325
7326         * loader.c (find_method): Also look in the interfaces; fixes #75429.
7327
7328 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
7329
7330         * threads.c (thread_cleanup): assert that thread != NULL
7331         (wait_for_tids_or_state_change): We were using the wrong variable
7332         when accessing wait->threads. `i' was always out of the bounds of
7333         the array.
7334
7335 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7336
7337         * loader.c: map user32 and kernel32 to libMonoSupportW
7338
7339 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
7340
7341         * appdomain.c (unload_thread_main): Mark this as WINAPI.
7342
7343 2005-06-28  Martin Baulig  <martin@ximian.com>
7344
7345         * loader.c (method_from_methodspec): Fix #75334.
7346
7347 2005-06-28  Martin Baulig  <martin@ximian.com>
7348
7349         Fix #74953 - Arrays now implement the generic IList<T> interface
7350         on the 2.0 platform.
7351
7352         * class-internals.h (MonoDefaults): Added `generic_array_class'.
7353
7354         * reflection.c (mono_class_bind_generic_parameters): New public
7355         function; similar to mono_reflection_bind_generic_parameters(),
7356         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
7357
7358         * domain.c (mono_init_internal): Try to initialize.
7359         `mono_defaults.generic_array_class' here; this'll only succeed if
7360         we're using the 2.0 corlib.
7361
7362         * icall.c
7363         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
7364         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
7365         (mono_lookup_internal_call): Added support for nested classes.
7366
7367         * loader.c
7368         (mono_get_method_from_token): Set `result->signature->pinvoke' if
7369         we're an interncall and have generic arguments.
7370
7371         * class.c
7372         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
7373         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
7374         instance of System.Array.InternalArray<T> for arrays, so they
7375         implement the generic IList<T> interface.
7376
7377 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
7378
7379         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
7380         (chastamar@yahoo.com). Fixes #75374.    
7381
7382 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
7383
7384         * culture-info-table.h: regenerated.
7385
7386 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7387
7388         * icall.c: handle spaces correctly for base64 strings.
7389
7390 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
7391
7392         * *.c: Kill some warnings.
7393
7394 2005-06-23  Duncan Mak  <duncan@novell.com>
7395
7396         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
7397         that this builds on Solaris 10 (x86).
7398
7399 2005-06-23  Martin Baulig  <martin@ximian.com>
7400
7401         * class.c
7402         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
7403         generic type definitions.
7404
7405 2005-06-23  Martin Baulig  <martin@ximian.com>
7406
7407         Fix #75331.
7408
7409         * metadata.c (mono_class_get_overrides): Renamed to
7410         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
7411         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
7412         pass it to mono_get_method_full().
7413
7414 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
7415
7416         * reflection.c (mono_reflection_create_runtime_class): take the
7417         mono_domain_lock in this method. Prevents deadlocks
7418
7419 2005-06-22  Martin Baulig  <martin@ximian.com>
7420
7421         * loader.c (method_from_methodspec): Fix #75330.
7422
7423 2005-06-22  Martin Baulig  <martin@ximian.com>
7424
7425         * reflection.c (type_get_qualified_name): Use
7426         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
7427         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
7428         argument; use it if we don't have an assembly name.
7429
7430 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
7431
7432         * object.c: In mono_message_init, set "copy out" flag for in
7433         parameters with the [Out] flag.
7434
7435 2005-06-21  Martin Baulig  <martin@ximian.com>
7436
7437         * class.c
7438         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
7439         and MONO_TYPE_PTR.
7440
7441 2005-06-21  Martin Baulig  <martin@ximian.com>
7442
7443         * class.c (mono_class_init): Don't initialize `class->fields' for
7444         generic instances since they're initialized again in
7445         compute_field_layout(). 
7446         (compute_field_layout): Set the field's `generic_info' here; fix
7447         #75320. 
7448
7449 2005-06-21  Martin Baulig  <martin@ximian.com>
7450
7451         * class-internals.h
7452         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
7453
7454         * metadata.c (mono_metadata_generic_method_equal): Also
7455         distinguish the `generic_class'; fixes #75334.
7456
7457 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7458
7459         * domain.c:
7460         * appdomain.c:
7461         * domain-internals.h:
7462         * reflection.c: 'domain_assemblies' field is now protected by its own
7463         lock. Don't call into managed code to run the AssemblyLoad event if we
7464         now there are no registered delegates for it.
7465
7466 2005-06-20  Martin Baulig  <martin@ximian.com>
7467
7468         * class.c (mono_class_is_assignable_from): Use a custom version of
7469         mono_class_has_parent() to make things work for generic instances;
7470         fix #75300.
7471
7472 2005-06-20  Martin Baulig  <martin@ximian.com>
7473
7474         * loader.c (method_from_methodspec): Apply a patch from
7475         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
7476
7477 2005-06-20  Martin Baulig  <martin@ximian.com>
7478
7479         * class.c (mono_class_init): Reverted Zoltan's last change; it
7480         breaks generics.
7481
7482 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
7483
7484         * threads.c (wait_for_tids_or_state_change): Add missing locking.
7485
7486 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7487
7488         * socket-io.c: fix the index in the socket array for writable/error
7489         sockets. Fixes bug #75306.
7490
7491 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
7492
7493         * class.c (mono_class_init): Allow interfaces to have static ctors.
7494
7495 2005-06-17  Martin Baulig  <martin@ximian.com>
7496
7497         * loader.c (method_from_methodspec): Use `context->container' when
7498         parsing the `gmethod->inst'.
7499
7500 2005-06-17  Martin Baulig  <martin@ximian.com>
7501
7502         * class.c (mono_type_get_name_recurse): Don't add the assembly
7503         name for type arguments.
7504
7505 2005-06-15  Martin Baulig  <martin@ximian.com>
7506
7507         * reflection.c (mono_image_get_inflated_method_token): Encode
7508         correct klass; fixes #75260.
7509
7510 2005-06-13 Michal Moskal <malekith@nemerle.org>
7511
7512         * icall.c: Make GetCorrespondingMethod/Constructor take
7513         MonoReflectionMethod method not MonoMethod. Removed
7514         MonoType.GetCorrespondingField, and make
7515         MonoGenericType.GetCorrespondingField take name not
7516         MonoClassField.
7517
7518 2005-06-13  Michal Moskal <malekith@nemerle.org>
7519
7520         * reflection.c (field_encode_signature, encode_locals):
7521          Make sizes of buffers for types larger (for big generic types).
7522          (create_generic_typespec,
7523          mono_reflection_sighelper_get_signature_local,
7524          mono_reflection_sighelper_get_signature_field):
7525          Add asserts for too small buffers.
7526
7527 2005-06-15  Martin Baulig  <martin@ximian.com>
7528
7529         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
7530         if our parent is not a dynamic type.
7531
7532 2005-06-15  Martin Baulig  <martin@ximian.com>
7533
7534         * class-internals.h (MonoTypeNameFormat): New enum.
7535
7536         * class.c
7537         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
7538         (mono_type_get_full_name): Removed.
7539         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
7540         argument instead of the boolean's.
7541
7542         * icall.c (ves_icall_System_MonoType_getFullName):
7543         Added `gboolean assembly_qualified'.    
7544
7545         * reflection.h
7546         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
7547
7548         * reflection.c (mono_reflection_parse_type): Parse the new type
7549         name format.
7550
7551 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7552
7553         * icall.c: no need to convert from utf16 to utf8 and then back again
7554         after the call to GetLogicalDrives.
7555
7556 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7557
7558         * icall.c: frombase64. Fix problems exposed by new tests.
7559
7560 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7561
7562         * icall.c: added internal calls for converting char [] and strings in
7563         base64 into byte [].
7564
7565 2005-06-10  Martin Baulig  <martin@ximian.com>
7566
7567         * class.c (mono_class_create_generic_2): Read the nested classes
7568         from the metadata rather than from `gklass->nested_classes' since
7569         `gklass' might not be initialized yet.
7570
7571 2005-06-09  Duncan Mak  <duncan@novell.com>
7572
7573         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
7574         all public headers. Fixes #74919.
7575
7576 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
7577
7578         * domain.c: The key for proxy_vtable_hash is now a pointer
7579         array. Added new GHashFunc and GCompareFunc functions for this.
7580
7581         * class.h: The list of interfaces in MonoRemoteClass is known in
7582         advance and can't grow (we create a new MonoRemoteClass if needed),
7583         so now the interface array can be allocated together with
7584         MonoRemoteClass.
7585         
7586         * object.c: Added a new method create_remote_class_key.
7587         Fixed mono_remote_class so it does not depend on
7588         mono_upgrade_remote_class.
7589         Removed extend_interface_array.
7590         Added new method clone_remote_class(), which makes a copy of a remote
7591         class and adds a new interface or class to it.
7592         mono_upgrade_remote_class() now creates a new remote class (or gets
7593         it from the cache) if an vtable upgrade is needed. In this way
7594         we make sure that other objects sharing the same remote class
7595         don't get the new vtable with unwanted interfaces.
7596         
7597         * object-internals.h:
7598         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
7599         
7600         * marshal.c: Track changes in mono_upgrade_remote_class().
7601
7602 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
7603         * icall.c: Add runtime methods for obtaining members of inflated
7604         class, which were created from supplied non-inflated members. It
7605         is used in internal Get{Method,Constructor,Field} methods in
7606         System.Type
7607
7608 2005-06-09  Martin Baulig  <martin@ximian.com>
7609
7610         * reflection.c
7611         (mono_reflection_bind_generic_method_parameters): Fix #75169.
7612
7613 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7614         * reflection.c (mono_image_basic_init): Define
7615         Version in MonoDynamicAssembly. 
7616         
7617 2005-06-08  Martin Baulig  <martin@ximian.com>
7618
7619         Fix #75136.
7620
7621         * loader.c
7622         (mono_method_signature_full): New public method; takes a
7623         `MonoGenericContext *'.
7624         (find_method): Use mono_method_signature_full() and pass the
7625         klass'es context to it.
7626
7627         * class.c (mono_class_is_inflated_method): Use
7628         mono_method_signature_full() and pass the context to it.
7629
7630 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
7631
7632         * object.c: add proper locking in mono_remote_class_vtable(),
7633         fixes possible memory corruption.
7634
7635 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
7636
7637         * marshal.c (mono_remoting_marshal_init): set
7638         initialized after initialization.
7639
7640 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
7641
7642         * locales.c : hush.
7643
7644 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
7645
7646         * object.c (extend_interface_array): fix really silly
7647         memory corrupting / comparison bug.
7648
7649 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7650
7651         * reflection.c: Functions added to support the creation
7652         of CustomAttributeData, which includes Attribute data
7653         used by ReflectionOnly methods.
7654
7655         * reflection.h:  mono_reflection_get_custom_attrs_data and
7656          mono_custom_attrs_data_construct added (functions exposed).
7657
7658          * icall.c: Added mono_reflection_get_custom_attrs_data
7659          as icall.
7660         
7661 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
7662
7663         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
7664         lupus's request.
7665
7666 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
7667
7668         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
7669
7670         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
7671         dynamic DllImportAttribute.
7672
7673         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
7674         dynamic DllImportAttribute.
7675
7676         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
7677         Fixes #75162.
7678
7679 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7680
7681         * threads.c: avoid segfault when an unstarted thread is aborted.
7682
7683 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
7684
7685         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
7686         Returns the name and version of the runtime for reporting.
7687
7688 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7689
7690         * appdomain.c: bump corlib version.
7691         * object-internals.h: new field in MonoReflectionAssembly.
7692
7693 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7694
7695         * object-internals.h: Carlos forgot to add this field.
7696
7697 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7698
7699         * icall.c: Added create_version to create instances
7700         of Version of MonoReflectionAssemblyName. This change helps
7701         the AssemblyName tests to keep running fine.
7702         
7703 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
7704   
7705         * object.c (mono_method_return_message_restore): A somehow less
7706         intrusive fix for #75138.
7707
7708 2005-06-03  Raja R Harinath  <rharinath@novell.com>
7709
7710         * object.c (mono_method_return_message_restore): Fix computation
7711         of expected number of out args.
7712
7713 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
7714
7715         * reflection.c (mono_image_get_method_info): Fix the case when the
7716         charset is empty.
7717
7718 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
7719
7720         * object.c: Added missing null check in
7721           mono_method_return_message_restore.
7722
7723 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
7724
7725         * reflection.c (mono_image_get_method_info): Handle the case when
7726         dllentry is empty.
7727
7728 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
7729
7730         * object.c: When creating the vtable for a proxy, take into account
7731         all inherited interfaces, not only the ones registered in
7732         iclass->interfaces. This fixs bug #74996.
7733         Also, in mono_method_return_message_restore, verify that the array
7734         of out args has the expected lengh.
7735
7736 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7737
7738         * socket-io.c: update the timeout in Poll when the call is interrupte.
7739
7740 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7741
7742         * socket-io.c: support abort/suspend in Select_internal after last
7743         change.
7744
7745 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7746
7747         * threadpool.c: remove warning.
7748
7749 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7750
7751         * icall.c:
7752         * socket-io.[ch]: Select_internal uses poll() now when available, thus
7753         removing the 1024 limit from select(). Runtime part of the fix for
7754         bug #71203.
7755
7756 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7757
7758         * socket-io.c: when resolving the addresses for the same
7759         host returned by gethostname(), get the local IPs from the interface
7760         list. Loopback addresses are discarded if the are interfaces up with
7761         non-loopback ones. Fixes bug #63265.
7762
7763 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
7764
7765         * appdomain.c, verify.c, object-internals.h, reflection.c:
7766         bumped corlib number to 36, and added new extra_flags field
7767         to ReflectionMethodBuilder and friends.  Fixes #75060.
7768
7769 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
7770
7771         * gc.c: register a new weak link only if the object is non-null
7772         (fixes bug#75047).
7773
7774 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
7775
7776         * culture-info.h : short time pattern too.
7777
7778 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
7779
7780         * culture-info.h : expand long time pattern string length.
7781
7782 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7783
7784         * culture-info-table.h : update (more French date format; #72788).
7785
7786 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
7787
7788         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
7789         the method is static. Fixes #75029.
7790
7791 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
7792
7793         * reflection.c: Update the table_idx field of method builders after
7794         saving the module, since it can change. This is a workaround for
7795         bug #74914. 
7796
7797 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7798
7799         * culture-info-table.h : update (additional French date format).
7800
7801 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
7802
7803         * icall.c (ves_icall_type_Equals): Revert last change.
7804         
7805         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
7806
7807         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
7808
7809 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
7810
7811         * class-internals.h: Added executioncontext_class field to 
7812         MonoDefaults structure.
7813         * domain.c: Cache System.Threading.ExecutionContext class in 
7814         mono_defaults.
7815         * object.c: Capture the ExecutionContext for asynchroneous calls in
7816          mono_async_result_new.
7817         * object-internals.h: Added execution_context and original_context 
7818         fields to MonoAsyncResult. Added execution_context to MonoThread.
7819         * security-manager.c|.h: Added mono_get_context_capture_method to 
7820         return the capture method (if required by the security manager or by
7821         the framework version used).
7822         * threadpool.c: Apply capture (if present) ExecutionContext in 
7823         mono_async_invoke and revert to original context after it completes.
7824
7825 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
7826
7827         * culture-info-table.h : updated (real hacky solution for zh-CHT).
7828
7829 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
7830
7831         * culture-info-table.h : zh-CHT related workaround.
7832
7833 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
7834
7835         * marshal.c (emit_marshal_custom): Add some error checking and call the
7836         methods in the ICustomMarshaler interface. Fixes #74875.
7837         
7838         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
7839         native->managed wrappers.
7840
7841 2005-05-12  Martin Baulig  <martin@ximian.com>
7842
7843         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
7844         here and use the loader lock.
7845
7846         * mono-debug.c: Properly lock when the debugger is not attached.
7847         (mono_debug_init): Release the initial lock if we're not running
7848         in the debugger.
7849
7850 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
7851
7852         * marshal.c (emit_marshal_custom): Pass through NULL values without
7853         calling the custom marshalling routines.
7854
7855         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
7856         conversion in structures. Fixes #74882.
7857
7858 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
7859
7860         * culture-info-table.h : zh-* cultures were missing.
7861
7862 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
7863
7864         * threads.c: Added a new event background_change_event which is signaled
7865         when a thread changes its background mode.
7866         Moved here several checks previously done in managed code. The checks
7867         require the thread lock, and using the thread lock in managed code
7868         can result in deadlocks.
7869         Merged Start_internal and Thread_internal into a single method. Now 
7870         Thread_internal does all work of creating and starting a thread.
7871         Added icalls for setting and getting the state of the object. Moved from
7872         managed code to avoid locking there.
7873         Added wait_for_tids_or_state_change() which is called instad of
7874         wait_for_tids when waiting for non-backround threads to end. This method
7875         will return if one of the threads ends or the background_change_event
7876         is signaled.
7877         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
7878         the background mode. This method signals the background_change_event
7879         event.
7880         * icall.c:
7881         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
7882         removed Start_internal.
7883         
7884 2005-05-11  Martin Baulig  <martin@ximian.com>
7885
7886         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
7887         to order of some fields to get proper alignment on 64-bit machines.
7888
7889 2005-05-11  Martin Baulig  <martin@ximian.com>
7890
7891         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
7892         changes as they're broken and completely fuck up the debugger.
7893
7894         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
7895
7896 2005-05-10  Martin Baulig  <martin@ximian.com>
7897
7898         * reflection.c (mono_reflection_generic_class_initialize): Don't
7899         call mono_class_setup_parent() here.
7900
7901 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7902
7903         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
7904         send/receive timeout use an integer in milliseconds. We were using a
7905         struct timeval.
7906
7907 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7908
7909         * locales.c:
7910         (internal_get_cultures): reserve the first slot of the array for the
7911         InvariantCulture, which will be filled in managed code.
7912
7913 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
7914
7915         * reflection.c (mono_image_fill_module_table): Initialize the
7916         GENERATION field as well.
7917
7918 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7919
7920         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
7921         Monitor.Enter on the object.
7922
7923 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
7924
7925         * threads.c: Enable the wait for running threads when exiting.
7926         * icall.c: Suspend all threads before exiting.
7927
7928 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
7929
7930         * assembly.c (mono_assembly_load_reference): Fix warning.
7931
7932 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7933
7934         * threadpool.c: changed the default number of threads per cpu. From now
7935         on, the default will be 20 + (5 * number of cpus) instead of 50.
7936
7937 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
7938
7939         * loader.c (mono_method_get_signature_full): Add locking here.
7940
7941 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
7942
7943         * appdomain.c: Moved methods for parsing and freeing assembly
7944         names to assembly.c.
7945         * assembly.c, domain-internals.h: Created public methods for parsing
7946         assembly names. Fixed mono_assembly_load_with_partial_name:
7947         it now finds the best match, taking into account the version,
7948         token and culture specified in the partial name. Also return
7949         the latest version if no version information is specified.
7950
7951 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
7952
7953         * threadpool.c: replace check for SocketAsyncCall class.
7954
7955 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7956
7957         * threadpool-internals.h:
7958         * Makefile.am: added threadpool-internals.h
7959
7960         * threadpool.c: call mono_unhandled_exception on exceptions not handled
7961         that happen in threadpool threads (tested on MS).
7962         (mono_thread_pool_remove_socket): new function that dispatch any pending
7963         AIO call on a socket that is closing. By now only epoll really needs it,
7964         as select/poll wake up when the socket closes.
7965
7966
7967         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
7968
7969 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
7970
7971         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
7972
7973 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
7974
7975         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
7976
7977 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
7978
7979         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
7980         has an abort request, convert it into a suspend request.
7981
7982 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
7983
7984         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
7985         warning for the usage of `UnmanagedFunctionPointerAttribute' which
7986         is not supported yet.
7987
7988 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7989
7990         * image.c: register assemblies loaded from data (bundles) in the loaded
7991         assemblies hash. Fixes bug #74772.
7992
7993 2005-04-29  Martin Baulig  <martin@ximian.com>
7994
7995         * class.c (mono_type_get_name_recurse): Update to the new naming
7996         schema from the latest .NET 2.x beta2.
7997         (mono_class_setup_vtable_general): If we're a generic instance,
7998         copy the vtable from our generic type definition and inflate all
7999         the methods in it.
8000
8001         * loader.c (find_method): Update to the new naming schema from the
8002         latest .NET 2.x beta2.
8003
8004 2005-04-29  Raja R Harinath  <harinath@gmail.com>
8005
8006         * class.c (mono_class_init): Add a mono_loader_unlock to the
8007         #74734 fix.
8008
8009 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
8010
8011         * icall.c (ves_icall_System_Environment_Exit): Remove the 
8012         suspend_all_other_threads () call for the time being, since it can hang.
8013
8014         * threads.c (mono_thread_manage): Similarly, disable the waiting for
8015         the background threads to exit, since it can also hang.
8016
8017         * class.c (mono_class_init): Applied patch from Ankit Jain 
8018         (radical@gmail.com). Avoid pending init errors when a field refers
8019         to a nested class using a typeref. Fixes #74734.
8020
8021         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
8022         this for dynamic modules.
8023
8024 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8025
8026         * threads.c: don't wait for threads that are in the process of aborting
8027         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
8028         and waiting for background threads to finish. This makes xsp and
8029         mod-mono-server exit without random length delays and/or hangs.
8030
8031 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8032
8033         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
8034
8035 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
8036
8037         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
8038         dynamic types to prevent infinite loops. Fixes #74727.
8039
8040         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
8041         ..._is_assignable_to.
8042
8043 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
8044
8045         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
8046
8047 2005-04-25  Martin Baulig  <martin@ximian.com>
8048
8049         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
8050
8051         * domain.c
8052         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
8053
8054         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
8055
8056         * reflection.c (build_compressed_metadata): Set metadata header
8057         version to 2.0.
8058
8059 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
8060
8061         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
8062         number into an integral and a decimal part. Fixes #70473.
8063
8064         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
8065
8066 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
8067
8068         * culture-info-table.h : reflected the latest locale-builder output.
8069
8070 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8071
8072         * threadpool.c: check for SuspendRequested too when deciding if
8073         mono_thread_interruption_checkpoint should be called.
8074
8075 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8076
8077         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
8078         * threads.c: remove interruption_mutex and use Interlocked instead. When
8079         suspending all the threads, wait for all the suspended events at once.
8080         If we're shutting down and get an APC that is going to be queued,
8081         call mono_thread_execute_interruption immediately, as the thread might
8082         be sleeping on a pthread condition or mutex.
8083
8084         * icall.c: call mono_runtime_set_shutting_down before suspending the
8085         threads.
8086
8087         Fixes bug #74693. And now xsp is happier when exiting.
8088
8089 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
8090
8091         * loader.c (mono_stack_walk): Fix #74690.
8092
8093 2005-04-22  Martin Baulig  <martin@ximian.com>
8094
8095         * mono-debug.h (MonoDebugMethodJitInfo): Added
8096         `MonoDebugMethodJitInfo *jit'.
8097
8098         * mono-debug.c (mono_debug_read_method): Cache the
8099         MonoDebugMethodJitInfo in `address->jit'.
8100         (mono_debug_free_method_jit_info): New public method.
8101
8102 2005-04-22  Martin Baulig  <martin@ximian.com>
8103
8104         * class.c (mono_class_is_assignable_from): Disallow
8105         type parameter -> interface.
8106
8107 2005-04-21  Dick Porter  <dick@ximian.com>
8108
8109         * threads.c (mono_thread_create): Turn an assertion into an error.
8110
8111 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
8112
8113         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
8114         
8115         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
8116         Fix some gcc 4.0 warnings.
8117
8118 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
8119
8120         * file-io.c: fix alt dir separator char on unix systems
8121         and cleanup (fixes bug #71214).
8122
8123 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
8124
8125         * marshal.c: Use CALLVIRT instead of CALL when dispatching
8126         a call to a remote domain, since the method may be an
8127         interface method in the client domain. This fixes bug #74192.
8128
8129 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8130
8131         * threadpool.c: recv/send are now performed before going back to managed
8132         code to save one transition.
8133
8134 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8135
8136         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
8137
8138         * metadata/threadpool.c: removed hack to workaround the bug above.
8139
8140         Fixes bug #74618.
8141
8142 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
8143
8144         * reflection.c reflection.h: Fix handling of parameter defaults in
8145         dynamic methods. Also fixes handling of parameter attributes.
8146         Fixes #74609.
8147
8148         * mono-debug.c (mono_debug_close_image): Fix warning.
8149
8150 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8151
8152         * socket-io.h: replaced old unused field with new 'blocking'.
8153         * threadpool.c: restore socket blocking state on windows(tm).
8154
8155 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
8156
8157         * icall.c: don't return the codebase in the AssemblyName[] returned by
8158         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
8159         * object-internals.h: Removed FIXME (fields were presents) and fixed
8160         versioncompat declaration.
8161
8162 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8163
8164         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
8165         not closed, so don't cleanup when it happens.
8166
8167 2005-04-13  Chris Toshok  <toshok@ximian.com>
8168
8169         * mono-debug-debugger.h: change prototype for
8170         mono_debugger_lookup_type.
8171
8172         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
8173         this function, although it should probably be named
8174         mono_debugger_init_type.
8175
8176 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8177
8178         * threadpool.c: fix non-AIO case.
8179
8180 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
8181
8182         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
8183         the built-in profiler to measure just JIT compilation times.
8184
8185 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8186
8187         * threadpool.c: the epollfd might be closed by another thread at
8188         any time, so ignore EBADF at treat it as a "we're closing" sign.
8189
8190 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8191
8192         * threadpool.c: release the semaphores with a count equals to the number
8193         of working threads in both IO and regular pools. Fixed typo that messed
8194         up the count of IO pool threads. Don't initialize the pipe handles if
8195         we're using epoll.
8196
8197 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8198
8199         * threadpool.c: some systems don't like a NULL when deleting the socket
8200         from epoll.
8201
8202 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8203
8204         * threadpool.c: fix semaphore allocation.
8205
8206 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8207
8208         * threadpool.c: added epoll() based implementation for asynchronous IO
8209         that is used instead of the default poll() when available.
8210         It can be disabled by setting MONO_DISABLE_AIO.
8211
8212 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8213
8214         * threadpool.c: windows needs 'closesocket' and instead of returning
8215         0 when the stream is closed while in select, it returns -1. Fixes bug
8216         #74573.
8217
8218 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
8219
8220         * class.c (class_compute_field_layout): Fix the regression caused by
8221         the previous try.
8222
8223 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8224
8225         * threadpool.c: separate pool for socket async. IO.
8226         * threadpool.h: mono_max_worker_threads is not a global any more.
8227
8228 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
8229
8230         * class.c (class_compute_field_layout): Fix #74549.
8231
8232 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8233
8234         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
8235         use 2 connected sockets instead.
8236
8237 2005-04-08  Miguel de Icaza  <miguel@novell.com>
8238
8239         * mono-config.c: Add new entry point for mkbundle
8240         mono_config_parse_memory. 
8241
8242 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8243
8244         * threadpool.c: removed another unused function.
8245
8246 2005-04-08  Ankit Jain  <radical@corewars.org>
8247
8248         * reflection.c (get_default_param_value_blobs): Add 'types'
8249         parameter to get the types encoded in the constant table.
8250         (mono_param_get_objects): Use the type from the constant table,
8251         not the type of the parameter, when creating default values.
8252         Handle null default values correctly.
8253
8254 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8255
8256         * file-io.c:
8257         * file-io.h:
8258         * threadpool.c:
8259         * threadpool.h:
8260         * icall.c:
8261         * socket-io.c: removed dead code for async IO.
8262
8263 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8264
8265         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
8266
8267         * threadpool.c: intercept socket async. calls and pass them to a thread
8268         that is polling and dispatching the job items to the threadpool as
8269         socket become ready. Fixes bugs #71217, #71933.
8270
8271         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
8272         between char and short/ushort arrays.
8273
8274         * socket-io.c: remove dead code.
8275
8276 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
8277
8278         * locales.c,
8279           icall.c : removed InternalToUpper_Comp() and
8280           InternalToLower_Comp().
8281
8282 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
8283
8284         * char-conversions.h : The tables were incorrectly generated. Should
8285           be generated against invariant culture.
8286
8287 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
8288
8289         * object.c (mono_runtime_invoke_array): Fix return value when 
8290         passing pre-created valuetype objects to ctors.
8291
8292         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
8293         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
8294         Fixes #74338.
8295
8296 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
8297
8298         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
8299         only used with --security and hides the wrong corlib version error.
8300
8301 2005-03-30  Joshua Tauberer  <tauberer@for.net>
8302
8303         * class.c: Changed mono_class_name_from_token so that types
8304         outside of a namespace don't have an initial period.  Improved
8305         the g_warning message used in _mono_class_get when loading
8306         fails.
8307         * assembly.c: In mono_assembly_load_reference, when an assembly
8308         can't be found, "No such file or directory" is misleading and
8309         unhelpful because a few paths were checked for the presence of
8310         the assembly.  When that happens (ENOENT), display a nicer
8311         message indicating the directories that were searched.  In all
8312         cases, the warning is made easier to read for non-hackers.
8313
8314 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
8315
8316         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
8317         project/solution.
8318         * appdomain.h|domain.c: Removed inline from functions.
8319         * appdomain.c: Reduced warnings when compiling on windows.
8320         * icall.c: Fixed output_debug declaration to gunichar2*.
8321         * mono-config.c: Reduced warnings when compiling on windows.
8322         * rand.c: Added missing "windows.h". Added missing return value.
8323         * rawbuffer.c: Added missing winsock2.h for windows.
8324         * sysmath.h: Added mono-compiler.h header to allow/ease 
8325         compilation with non-GCC compilers.
8326         * threads.c: Fixed declarations to compile with VS.NET C compiler.
8327         Removed cast warnings.
8328
8329         Adapted from the work of J Lothian (for VC6).
8330
8331 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
8332
8333         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
8334         from default_path.
8335
8336 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
8337
8338         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
8339         the 2.0 profile.
8340
8341 2005-03-27  Raja R Harinath  <harinath@gmail.com>
8342
8343         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
8344         has to be in $(exec_prefix).  $(prefix) is for arch-independent
8345         stuff, and it would probably use $(prefix)/share rather than
8346         $(prefix)/lib.
8347
8348 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8349
8350         * console-io.c: added 2 includes that might be missing.
8351
8352 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
8353
8354         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
8355         profile.
8356
8357         * reflection.c (create_custom_attr): Allocate the params array using
8358         alloca so it gets GC tracking.
8359
8360 2005-03-23  Chris Toshok  <toshok@ximian.com>
8361
8362         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
8363         out some spew.
8364
8365 2005-03-24  Raja R Harinath  <rharinath@novell.com>
8366
8367         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
8368         changes to pick up any changes in prefix, etc.
8369
8370 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
8371
8372         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
8373         
8374         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
8375         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
8376
8377 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
8378
8379         * class-internals.h object-internals.h class.c reflection.c: Extend the
8380         mono_lookup_dynamic_token () function to return the class of the
8381         token as well. 
8382
8383         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
8384         well. Fixes #73848.
8385
8386 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
8387
8388         * security-manager.c: Skip inheritance checks for intra-corlib
8389         class inheritance and method overrides. This skips a lot of checks
8390         and (anyway) permissions cannot work until corlib is loaded.
8391
8392 2005-03-23  Martin Baulig  <martin@ximian.com>
8393
8394         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
8395         MONO_TYPE_GENERICINST.  
8396
8397 2005-03-23  Martin Baulig  <martin@ximian.com>
8398
8399         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
8400
8401 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8402
8403         * class.c: added locking comments to some functions.
8404         Cache the interface offsets arrays (saves about 20 KB
8405         of runtime memory in a typical app).
8406         Reduce the time overhead in mono_class_setup_supertypes ().
8407
8408 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
8409
8410         * icall.c: speedup and fix leaks in GetMethodsByName and
8411         GetPropertiesByName.
8412
8413 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8414
8415         * reflection.c: some locking fixes.
8416
8417 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
8418
8419         * metadata.c: added missing break in case statement.
8420
8421 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
8422
8423         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
8424         typedbyref return values. Fixes #73941.
8425
8426 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
8427
8428         * security-manager.c|h: Added demandunmanaged method and 
8429         suppressunmanagedcodesecurity class to MonoSecurityManager.
8430         Renamed aptc class to allowpartiallytrustedcallers.
8431
8432 2005-03-17  Martin Baulig  <martin@ximian.com>
8433
8434         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
8435
8436 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8437
8438         * file-io.c: disabled file async. IO using aio_*. It uses the
8439         threadpool now. Workaround for bug #73718.
8440
8441 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8442
8443         * assembly.h, mono-config.c: added code to deal with bundled configs
8444         for bundled assemblies.
8445
8446 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
8447
8448         * *.c, private.h: cleanup, removing old private.h header file.
8449
8450 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
8451
8452         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
8453         and throw_on_unmappable_char attributes.
8454
8455 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
8456
8457         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
8458         _ProcessName_internal.
8459
8460 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
8461
8462         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
8463         #73631.
8464
8465         * icall.c threads.c threads-types.h: Remove slothash icalls as they
8466         are no longer used.
8467
8468 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
8469
8470         * object.c (compute_class_bitmap): Add support for generics. Fixes
8471         #73527.
8472
8473 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
8474
8475         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
8476
8477 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8478
8479         * filewatcher.c: commented out the code for windows watcher, as we don't
8480         use it (we use the managed implementation instead).
8481
8482 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
8483
8484         * object-internals.h (MonoThread): Remove 'unused1' field.
8485
8486         * appdomain.c: Bump corlib version.
8487
8488         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
8489
8490         * reflection.c (mono_reflection_create_runtime_class): Remove the
8491         AssemblyBuilder.Save optimization since it causes too many problems.
8492
8493 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
8494
8495         * exception.c|h: Added mono_get_exception_reflection_type_load to
8496         create a ReflectionTypeLoadException object.
8497         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
8498         to return NULL is a InheritanceDemand fails during reflection. Updated
8499         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
8500         ReflectionTypeLoadException if an InheritanceDemand fails during 
8501         reflection. Added icall mapping for GetLinkDemandSecurity.
8502         * security-manager.c|h: Added ves_icall_System_Security_
8503         SecurityManager_GetLinkDemandSecurity internal call to return the
8504         class and methods permissions set for a LinkDemand. Removed unused
8505         fields in MonoSecurityManager.
8506
8507 2005-03-10  Martin Baulig  <martin@ximian.com>
8508
8509         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
8510         it's a generic instance.
8511
8512 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
8513
8514         * reflection.c (mono_get_object_from_blob): Applied patch from
8515         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
8516
8517         * class.c (mono_class_is_assignable_from): Another try at fixing 
8518         #73469 without breaking anything.
8519
8520 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
8521
8522         * class.c: (mono_class_is_assignable_from): Revert the last changes
8523         since they don't work with generics.
8524         
8525         * class.c (mono_class_is_assignable_from): Fix build bustage.
8526
8527         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
8528         the managed IsAssignableFrom method. Fixes #73469.
8529
8530         * reflection.c (mono_reflection_call_is_assignable_from): New helper
8531         function.
8532
8533 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
8534
8535         * object.c (mono_load_remote_field_new): Fix returning uninitialized
8536         memory when the remoting callback does not sets the out arguments.
8537         Fixes #73007.
8538
8539         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
8540         by mistake.
8541
8542         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
8543
8544         * object-internals.h (MonoStackFrame): Sync with managed object layout.
8545
8546         * appdomain.c: Bump corlib version.
8547
8548 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
8549
8550         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
8551         function.
8552
8553         * threads.c (mono_thread_attach): Detect threads which are not started
8554         by the GC pthread wrappers.
8555
8556 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
8557
8558         * icall.c: Added new icall for RNG.
8559         * rand.c|h: Added new icall to open the RNG. This allows to share a 
8560         single handle on Linux to access /dev/urandom and fix #73183.
8561
8562 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
8563
8564         * object.c: setting the new vtable in a transparent proxy object must
8565         not change the GC descriptor.
8566
8567 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8568
8569         * object.c: fixed compilation without GCJ support.
8570         * reflection.c: for runtime-created types ensure klass->has_references
8571         is correct (bug #73215).
8572
8573 2005-03-02  Martin Baulig  <martin@ximian.com>
8574
8575         * class.c (mono_class_is_assignable_from): Make this work if
8576         `oklass' is a generic instance; fixes #72831.
8577
8578 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
8579
8580         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
8581         with hasthis set.
8582         
8583         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
8584
8585         * marshal.c: Reorganize native->managed marshalling code to also use
8586         the emit_marshal_... functions.
8587
8588 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
8589
8590         * object.c: typed allocs have issues with bitmap sizes > 30,
8591         so check for max_set >= 30.
8592
8593 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
8594
8595         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
8596         managed code. Fixes #73012.
8597
8598         * metadata.h (MonoMarshalSpec): Add elem_mult field.
8599
8600         * metadata.c reflection.c: Load/Emit elem_mult as well.
8601         
8602         * metadata.h (MonoMarshalSpec): Add comment.
8603
8604         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
8605
8606         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
8607         num_elem to -1 if not given.
8608
8609         * object-internals.h (MonoReflectionMarshal): Add has_size field.
8610
8611         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
8612         given values.
8613
8614 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
8615
8616         * null-gc.c (mono_gc_free_fixed): Was not compilable.
8617
8618 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
8619
8620         * reflection.c (encode_marshal_blob): Encode param_num field as well.
8621
8622         * object-internals.h (MonoReflectionMarshal): Add param_num field.
8623
8624 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
8625
8626         * object.c: generalized the reference bitmap creation
8627         and added hooks for the new GC.
8628         * class-internals.c: removed the gc_bitmap field from MonoClass.
8629
8630 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8631
8632         * domain.c: help the compiler to produce better code
8633         in mono_jit_info_table_find ().
8634
8635 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
8636
8637         * object.c: make all allocations look typed.
8638
8639 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8640
8641         * socket-io.c: load Mono.Posix if it's not loaded already
8642         (fixes bug#73033).
8643
8644 2005-02-24  Martin Baulig  <martin@ximian.com>
8645
8646         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
8647         * reflection.c (dup_type): Likewise.
8648
8649 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
8650
8651         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
8652         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
8653
8654 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
8655
8656         * domain.c, threads.c, object-internals.h: make the critical thread
8657         local vars use the fast access mode (even when we're compiled in
8658         a lib). Provide accessors to be used by the jit during codegen.
8659
8660 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8661
8662         * appdomain.c: Changed hook functios behavior to include
8663         support for the reflection only assemblies. Some icalls were changed
8664         to support the mentioned assemblies too. Signatures of static methods
8665         try_assembly_resolve and real_load now have an additional parameter:
8666         refonly.
8667
8668         * assembly.c: General changes to mono_assembly_ methods to support
8669         reflection only api. Functions mono_assembly_open, mono_assembly_load,
8670         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
8671         suffix, to support an additional gbool parameter to specify whether
8672         the assembli is reflection only or not. Created some new hook functions 
8673         to add support for reflection only assemblies. Signatures of static 
8674         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
8675         have now an additional parameter: refonly.
8676
8677         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
8678         indicating whether the assembly is reflection only or not.
8679
8680         * exception.c: Add mono_get_exception_invalid_operation.
8681
8682         * icall.c: Throw an InvalidOperationException when trying to invoke
8683         a property/method/event, or trying to set/get the value of a field.
8684         Also add an icall to retrieve the ref_only flag to the
8685         MonoReflectionAssembly.
8686
8687 2005-02-23  Chris Toshok  <toshok@ximian.com>
8688
8689         Part of fix for #72827.
8690         * mono-debug.c (mono_debug_add_method): add lexical block data to
8691         the info we write.  Kind of a hack at the moment - we copy the
8692         lexical block info from the MonoDebugMethodInfo to the
8693         MonoDebugMethodJitInfo here, before writing it.
8694         (mono_debug_read_method): read the lexical block info.
8695
8696         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
8697
8698         * debug-mono-symfile.h: add lexical block support.
8699
8700         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
8701         support.
8702
8703 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
8704
8705         * loader.c (mono_lookup_pinvoke_call): Fix warning.
8706
8707         * object.c (mono_runtime_free_method): Call mono_free_method () and
8708         put the TODOs there.
8709
8710         * loader.c (mono_free_method): Free up most memory allocated for 
8711         dynamic methods.
8712
8713 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
8714
8715         * reflection.c: properly flag a Type argument to a
8716         named custom attr value (bug #72248).
8717
8718 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
8719
8720         * reflection.c: reduce code duplication in named custom
8721         attribute encoding.
8722
8723 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
8724
8725         * reflection.c: properly encode custom attrs of type object
8726         (bug #72649).
8727
8728 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
8729
8730         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
8731
8732 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
8733
8734         * socket-io.c: load System.dll if it's not loaded already
8735         (bug #72850 and #70477).
8736
8737 2005-02-21  Martin Baulig  <martin@ximian.com>
8738
8739         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
8740         generic instances.
8741
8742 2005-02-21  Martin Baulig  <martin@ximian.com>
8743
8744         * reflection.c (mono_image_build_metadata): We also need to
8745         "fixup" the MethodImpl table after we computed the final method
8746         indices.  Call fixup_methodimpl() to do that.
8747         (fixup_methodimpl): New private method.
8748
8749 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
8750
8751         * assembly.c: special case mscorlib.dll (bug#72536),
8752         patch from Carlos Alberto Cortez.
8753
8754 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
8755
8756         * threads-types.h threads.c: Fix build bustage.
8757
8758         * threads.c: Use a union for long<->double conversions.
8759
8760         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
8761         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
8762
8763         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
8764         containing the checkpoint call with NOT_TAKEN.
8765         
8766         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
8767         checkpoint before pushing the arguments, so they won't have to be
8768         spilled to stack.
8769
8770 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8771
8772         * domain.c, assembly.c, domain-internals.h: make some data
8773         const and relocation-free.
8774
8775 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
8776
8777         * object.c, appdomain.c, class-internals.h: introduce the
8778         MonoClassRuntimeInfo structure to hold the info needed to
8779         use a class at runtime. Made mono_class_vtable() lock-free
8780         for all the appdomains.
8781
8782 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
8783
8784         * metadata-internals.h, image.c: introduce a per-image mempool to
8785         be used for memory that has the same lifetime as the image.
8786
8787 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
8788
8789         * domain.c: In mono_init_internal(), instead of selecting the first
8790         runtime version supported by an executable, get a list of all
8791         supported versions and select the one for which an mscorlib exists
8792         (since even if the runtime supports a given version, it doesn't mean
8793         that the framework for that version is installed).
8794         Modified get_runtimes_from_exe to support this behavior.
8795         In supported_runtimes, added information about additional system
8796         assembly versions.
8797         
8798         * assembly.c: Added support for more than one system assembly version
8799         per runtime version. Updated the assembly list.
8800         In mono_assembly_remap_version, removed the initial version check,
8801         since we don't know to which version we need to compare until we
8802         get the version set on which the assembly is based.
8803         Moved the code for loading corlib into the new method
8804         mono_assembly_load_corlib(), so it can be used by the initialization
8805         code.
8806         
8807         * domain-internals.h: Updated data structures and added declaration
8808         for mono_assembly_load_corlib.
8809
8810 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
8811
8812         * reflection.c (resolve_object): Fix the creation of the signature in 
8813         the SignatureHelper case.
8814
8815         * assembly.c (mono_assembly_remap_version): Fix binary search.
8816         
8817 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
8818  
8819         * class.c: Added inheritance check when a method is overloaded (from a
8820         virtual method or when implementing an interface) and when a class is
8821         inherited. Added functions to set a failure for a class and to 
8822         retreive the exception from a failure.
8823         * class-internals.h: Added fields to MonoClass to keep the exception
8824         information status for inheritance (or other exceptions) to be thrown
8825         later (i.e. not at load time).
8826         * object.c: Throw the inheritance SecurityException when a type is to 
8827         be created with either class or method inheritance violations.
8828         * reflection.c|h: Fix when getting declsec from a class. Removed 
8829         unrequired code for class. Improved sanity in parameter naming.
8830         * security-manager.c|h: Added functions to check for class and method
8831         inheritance.
8832
8833 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
8834
8835         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
8836         and has_finalize in dynamic types as well.
8837
8838 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
8839
8840         * culture-info-table.h : fixed currency format for en-GB (and so on).
8841
8842 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
8843
8844         * gc.c: ensure the GC handles never have 0 as a value.
8845
8846 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
8847
8848         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
8849         a pointer to a struct to unmanaged code. Fixes #72625.
8850
8851 2005-02-16  Martin Baulig  <martin@ximian.com>
8852
8853         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
8854
8855 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
8856
8857         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
8858
8859 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
8860
8861         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
8862
8863         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
8864         UnmanagedFunctionPointerAttribute, use it for determining calling convention
8865         etc. Fixes #71471.
8866
8867         * reflection.c (mono_custom_attrs_get_attr): New helper function.
8868
8869         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
8870
8871 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
8872
8873         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
8874         changes to make the current context a field in MonoThread.
8875
8876 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
8877
8878         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
8879         the last change.
8880         
8881         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
8882         extracted from mono_marshal_get_native_wrapper.
8883
8884         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
8885         to create wrappers around native functions.
8886
8887         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
8888         delegates for arbitrary function pointers. Fixes #71472.
8889
8890 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
8891
8892         * threads.c: cleaned up the code a little.
8893
8894 2005-02-15  Martin Baulig  <martin@ximian.com>
8895
8896         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
8897         the data table.
8898
8899         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
8900         allocate larger chunks if needed.
8901
8902 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
8903
8904         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
8905         in by mistake.
8906
8907 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
8908
8909         * domain.c: keep the domains in an array and ensure the domain ids
8910         are kept small, so they can be used as indexes to domain-specific data
8911         with a small memory overhead.
8912
8913 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
8914
8915         * icall.c: Handle byref types in Type icalls. Fixes #72544.
8916
8917 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
8918
8919         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
8920
8921 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
8922
8923         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
8924
8925         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
8926         values.
8927
8928         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
8929         
8930 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
8931
8932         * domain-internals.h: add the hashtable here.
8933
8934         * class-internals.h: Remove `info' from MonoMethod
8935
8936         * domain.c: Add a new hashtable, jit_trampoline_hash
8937
8938 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
8939
8940         * object.c: don't set the value of static fields
8941         (fixes bug#72494).
8942
8943 2005-02-11  Martin Baulig  <martin@ximian.com>
8944
8945         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
8946         (mono_debug_add_method): Silently ignore the method if it's too big.
8947         (mono_debug_add_type): Likewise.
8948
8949 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
8950
8951         * threads.c, appdomain.c: remove #ifdefs from the code.
8952
8953 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
8954
8955         * metadata-internals.h: Added flags to MonoAssembly to cache the most
8956         common security informations. This allows us to stay in unmanaged code
8957         when doing LinkDemand and it's special cases (except for the first 
8958         time for initialization). The flags a very much used with --security.
8959         * reflection.c|h: Added code to get declarative security attributes 
8960         for LinkDemand and InheritanceDemand. This required to refactor the
8961         existing code for Demand.
8962         * security-manager.c|h: Added new method fields for the special cases
8963         of LinkDemand.
8964
8965 2005-02-10  Martin Baulig  <martin@ximian.com>
8966
8967         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
8968         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
8969
8970 2005-02-10  Martin Baulig  <martin@ximian.com>
8971
8972         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
8973         debugging code; this is almost a complete rewrite.
8974
8975         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
8976
8977 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8978
8979         * domain.c, object.h: expose mono_string_equal () and 
8980         mono_string_hash ().
8981         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
8982         it's implemented in managed code.
8983
8984 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8985
8986         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
8987         lo leak objects between appdomains.
8988
8989 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8990
8991         * assembly.c: old compilers compilation fix from 
8992         robertj@gmx.net (Robert Jordan).
8993
8994 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
8995
8996         * class-internals.h: Little reminder for the future.
8997
8998         * debug-helpers.c: Fix up wrapper_type_names
8999
9000 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
9001
9002         * image.c, metadata-internals.h: when loading an image from a file,
9003         mmap all of it and use the same codepaths as when using a
9004         in-memory image: the code is simpler and we use less memory
9005         (both writable and readonly).
9006
9007 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
9008
9009         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
9010         API to alloc runtime data structures that need to be tracked by the
9011         GC and contain pointers.
9012         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
9013         make the code more readable and eventually use a different GC.
9014
9015 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
9016
9017         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
9018         for out arguments.
9019         
9020 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
9021
9022         * object.c: In release_type_locks(), don't release the cctor lock
9023         if it has already been released. This fixes a crash in the
9024         thread5 test.
9025
9026 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
9027
9028         * gc.c, marshal.c, icall.c: register a delegate for finalization
9029         only when the native function pointer has been allocated for it.
9030
9031 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
9032
9033         * object.c: cleaned up some code, allocate objects that are
9034         pointer free with the atomic malloc variant. Allocate memory
9035         for static data from the mempool if it's pointer-free.
9036         Allocate the bounds array at the end of the array data, when needed.
9037         * object-internals.h, object.h: move a private function in a private
9038         header.
9039         * class.c: handle missing case in tracking references in fields.
9040
9041 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
9042
9043         * class.c, class-internals.h: keep track if a type has
9044         reference fields in either the instance or static fields.
9045
9046 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
9047
9048         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
9049         and renamed to MonoRuntimeInfo. Added fields to store the expected
9050         framework assembly version. Changed mono_get_framework_version and
9051         mono_get_runtime_version for a single mono_get_runtime_info method.
9052         
9053         * assembly.c: Added method to remap system assembly versions to the
9054         current executing runtime version. Removed old mapping code.
9055         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
9056         
9057         * icall.c, reflection.c: Track api changes.
9058
9059 2005-02-06  Miguel de Icaza  <miguel@novell.com>
9060
9061         * loader.c (method_from_memberref): Improve error reporting,
9062         produce the class name instead of the typeref/typedef index. 
9063
9064 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
9065
9066         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
9067
9068 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
9069
9070         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
9071         stdcall and charset name mangling.  Reorganize the code and add
9072         some tracing stuff.
9073
9074 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
9075
9076         * monodiet.c: More iters!
9077
9078         * marshal.c: Iter usage.
9079
9080         * icall.c: Iter usage.
9081
9082         * object.c: Use iters.
9083
9084         * debug-helpers.c: More iters
9085
9086 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
9087
9088         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
9089         under win32.
9090
9091 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
9092
9093         * mono-debug-debugger.c: use iters
9094
9095         * class.c, class-internals.h: mono_class_setup_events is static
9096         now
9097
9098         * All callers: use iters
9099
9100 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
9101
9102         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
9103         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
9104
9105 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
9106
9107         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
9108
9109         * marshal.h: Add prototypes for ldfld/stfld_remote.
9110
9111         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
9112         this is called during startup.
9113         
9114 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
9115
9116         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
9117         MonoThreadsSync struct private in monitor.c. Changed the way
9118         MonoThreadsSync is allocated so it's faster and there is no
9119         need to keep track of it with a finalizer and it uses less memory.
9120         This also finally allows us to allocate mono objects as ptrfree when
9121         there are no reference fields.
9122
9123 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
9124
9125         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
9126         disappearing link to the GC interface and use them to simplify
9127         the gchandles code.
9128
9129 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
9130
9131         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
9132         stfld_remote which call mono_load/store_field_new. This allows methods
9133         calling ldfld/stfld wrappers to be AOTed.
9134
9135         * console-io.c: Include sys/filio.h under solaris.
9136         
9137         * console-io.c: Include curses.h if needed correctly.
9138
9139 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
9140         
9141         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
9142         method->klass as well.
9143
9144         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
9145
9146         * class.c (mono_class_init): Switch on lazy initialization of 
9147         methods.
9148
9149         * class.c (mono_class_get_finalizer): Handle the case when the 
9150         finalizer is inherited.
9151
9152 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9153
9154         * console-io.c: <curses.h> is needed by term.h on solaris.
9155
9156 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
9157
9158         * icall.c, class-internals.h, monodiet.c, class.c: Remove
9159         mono_class_setup_properties where possible. Remove this ftn from
9160         the header file, and make it static.
9161
9162 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
9163
9164         * loader.c: Add missing setup_... call.
9165
9166         * class.c: Add missing setup_... calls.
9167
9168         * class.c (mono_class_init): Switch on lazy initialization of 
9169         the generic vtable.
9170         
9171         * class.c (mono_class_init): Fix generics broken by the recent changes.
9172
9173         * monodiet.c (handle_type): Add missing setup_... calls.
9174
9175         * class.c: Back out garbage in previous patch.
9176         
9177         * class.c: Add missing setup_... calls.
9178
9179         * class.c (mono_class_get_method_from_name_flags): Avoid calling
9180         mono_class_setup_methods () if possible.
9181
9182         * class-internals.h (MonoClass): Add 'has_cctor' flag.
9183
9184         * class-internals.h (MonoCachedClassInfo): New structure.
9185
9186         * class.c: Initialize properties and events fields of MonoClass lazily.
9187
9188         * class.c: Add infrastructure for lazily initializing the methods and
9189         vtable fields of MonoClass. Not yet used.
9190
9191         * class.c (mono_class_get_finalizer): New helper function.
9192
9193         * class.c: Add infrastructure for loading some class related data from
9194         an AOT file.
9195
9196         * object.c: Add infrastructure for initializing the vtable from data
9197         in the AOT file.
9198
9199         * gc.c (run_finalize): Use mono_class_get_finalizer ().
9200
9201         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
9202         appropriate initialization function before accessing parts of the
9203         MonoClass structure.
9204
9205         * marshal.c: Fix warnings.
9206         
9207         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
9208
9209         * mono-debug-debugger.c (get_exception_message): Use 
9210         mono_class_get_method_from_name_flags ().
9211
9212 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
9213
9214         * reflection.c, appdomain.c: Replace a few manual searches that
9215         Zoltan missed. (Paolo approved this part of my initial patch).
9216
9217 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
9218
9219         * profiler.c: disable recording statistical events at report time.
9220
9221 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
9222
9223         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
9224         to byteswap arrays of enum values, too (bug #72080).
9225
9226 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
9227
9228         * appdomain.c (set_domain_search_path): Allow this to be called if
9229         domain->setup is not yet set.
9230
9231         * loader.c (mono_method_get_index): New helper function.
9232
9233         * loader.c reflection.c: Use mono_method_get_index ().
9234
9235         * class.c (mono_class_get_method_from_name_flags): New helper method.
9236
9237         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
9238         this.
9239
9240         * class.c (mono_class_get_cctor): New helper method.
9241
9242         * string-icalls.c object.c class.c marshal.c reflection.c: Use
9243         mono_class_get_method () to look up methods.
9244
9245 2005-02-01  Miguel de Icaza  <miguel@novell.com>
9246
9247         * console-io.c: Fix the build, this should work on Windows.
9248
9249 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
9250
9251         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
9252         be set to null to keep things valid
9253
9254 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9255
9256         * icall.c: added Console 2.0 icalls.
9257         * Makefile.am: added console-io.[ch]
9258         * console-io.[ch]: internal calls for Console 2.0 API.
9259
9260 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
9261
9262         * class.c: make sure we consider all the interfaces
9263         when calculating max_interface_id (bug found by
9264         Jeroen Frijters running ikvm).
9265
9266 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
9267
9268         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
9269         valuetype fields to null.
9270
9271         * object.c (set_value): Ditto. Fixes #71669.    
9272
9273 2005-01-31  Martin Baulig  <martin@ximian.com>
9274
9275         * metadata.c (mono_metadata_has_generic_params): New public
9276         function; checks whether something is a generic method.
9277
9278 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
9279
9280         * appdomain.c: fix infinite recursion when adding assemblies.
9281
9282 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
9283
9284         * object.c: Fix small typo to return all items for Environment.
9285         GetCommandLineArgs.
9286
9287 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
9288
9289         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
9290         reflection.c: more domain and assembly-unload related fixes
9291         and memory leaks plugs.
9292
9293 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
9294
9295         * 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.
9296
9297 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
9298
9299         * loader.c (mono_method_signature): Make this method lazy
9300         (mono_get_method_from_token): Don't computate the signature here.
9301
9302         Doing this saves quite a bit of memory. I got 90 kb on starting up
9303         monodoc. It should also save some disk reads on startup.
9304
9305         * *: MonoMethod->signature might be NULL now. You *MUST* use
9306         mono_method_signature.
9307
9308 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
9309
9310         * object.c (mono_runtime_get_main_args): Return an array from the
9311         current domain here. Fixes #71938.
9312
9313 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
9314
9315         * monitor.c: formatting changes to comply with the
9316         mono coding style and remove #ifdefs from the code.
9317
9318 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
9319
9320         * metadata.c, private.h: remove some unneeded data
9321         and use a more compact representation for table schemas.
9322
9323 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
9324
9325         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
9326         to get a better distribution in hash tables.
9327         * *.c: use mono_aligned_addr_hash() where appropriate.
9328         * assembly.c: make var static.
9329
9330 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
9331
9332         * domain-internals.h: Put MonoJitInfo on a diet.
9333
9334         * domain.c: Fix a warning.
9335
9336 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9337
9338         * gc.c: rework the gc handles code to reuse handles
9339         when freed.
9340
9341 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
9342
9343         * domain.c: fixed long standing bug in mono_string_equal() which
9344         was brought to light with the ldstr changes.
9345
9346 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
9347
9348         * reflection.c: Remove warning by adding missing include for marshal.h
9349
9350 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
9351
9352         * domain.c, object.c: change the ldstr_table to hold
9353         MonoString* as keys: makes the runtime isinterned lookup
9354         faster and simplifies memory management.
9355
9356 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
9357  
9358         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
9359         possible to add imperative security checks before calling the icall.
9360         * reflection.c: Return security attributes on the original MonoMethod
9361         (and not the wrapped one). This fix permissions on icalls.
9362
9363 2005-01-25  Dick Porter  <dick@ximian.com>
9364
9365         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
9366         the check for mktime() support actually test the mktime() return
9367         value.  "Fixes" bug 71682, though the output is still different to
9368         MS.
9369
9370 2005-01-25  Martin Baulig  <martin@ximian.com>
9371
9372         * class.c (mono_class_is_assignable_from): Make this work for
9373         generic instances.
9374
9375 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
9376
9377         * marshal.c (mono_string_utf8_to_builder)
9378         (mono_string_builder_to_utf16): We might not have ownership of the
9379         string. In thise case, we need to create a new buffer.
9380
9381         * object-internals.h (mono_stringbuilder_capacity): sb->str might
9382         be null, in which case, use the default capacity.
9383
9384 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
9385
9386         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
9387         GC events to the profiler.
9388
9389 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
9390
9391         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
9392         if you don't want the GC to run.
9393
9394 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
9395
9396         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
9397         start providing a GC API and keeping different implementations in
9398         their own file.
9399         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
9400
9401 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
9402
9403         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
9404         mmap rather than allocating a huge buffer.
9405         (mono_debug_close_mono_symbol_file): Free the buffer allocated
9406         above.
9407
9408 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
9409
9410         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
9411         and CheckExecutionRights.
9412         * reflection.c|h: Keep the index of the declarative security to be 
9413         used, instead of the pointer, when AOT compiler is used. Also add 
9414         class initialization when requesting demands.
9415         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
9416         CheckExecutionRights. Both properties are now FALSE by default, and
9417         unmodifiable, unless the --security option is used.
9418
9419 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
9420
9421         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
9422         reflection.c: properly refcount images and assemblies, many leaks fixed.
9423
9424 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9425
9426         * threadpool.c: increase the timeout for threads in the thread pool to
9427         10s.  Fixes bug #67159.
9428
9429 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
9430
9431         * class-internals.h: Sun's compiler insists on explicit
9432         signed on bit fields to handle then correctly.
9433
9434 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
9435
9436         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
9437         Make the size of the array fit only the number of invalid path
9438         chars that we have.
9439
9440         * class.c (_mono_class_get): Improve the error reporting when a
9441         class referenced is not found, to assist debugging. 
9442
9443 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
9444
9445         * threads.c: fix off-by-one error.
9446         * domain.c: free data allocated in the domain.
9447
9448 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
9449
9450         * reflection.c (mono_method_body_get_object): Fill out exception info
9451         as well.
9452
9453         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
9454         structure.
9455         
9456 2005-01-19  Martin Baulig  <martin@ximian.com>
9457
9458         * loader.c (mono_get_method_constrained): Make this work again.
9459
9460 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
9461
9462         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
9463         guint16 to match the managed side.
9464
9465         * reflection.c (mono_reflection_body_get_object): Fill out local
9466         variables array.
9467
9468         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
9469         as well.
9470
9471         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
9472         'local_var_sig_token'.
9473
9474 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
9475
9476         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
9477         System.Drawing.
9478
9479         * reflection.c (mono_method_body_get_object): Handle abstract and
9480         runtime methods.
9481
9482 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
9483
9484         * marshal.c, loader.c, class-internals.h, reflection.c:
9485         store the emthod data for a wrapper in an array instead of a list.
9486
9487 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
9488
9489         * marshal.c: change the code to allocate memory more
9490         conservatively for method wrappers.
9491
9492 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
9493
9494         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
9495         fields from MonoClass to the marshal info structure where they belong.
9496
9497 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9498
9499         * class.c, object.c, class-internals.h, marshal.c: rearrange
9500         some fields and tweak some types to lower memory usage.
9501
9502 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
9503
9504         * threads.c (signal_thread_state_change): Handle the case when the
9505         target thread is the current thread.
9506
9507         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
9508
9509         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
9510         emit_ptr_to_object_conv. 
9511
9512         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
9513         marshalling. Fixes #71352.
9514
9515 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
9516
9517         * metadata.h, blob.h: move table enum to blob.h so it can be included
9518         in any header.
9519         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
9520         cut the size of MonoImage/MonoDynamicImage.
9521
9522 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
9523
9524         * profiler.c (mono_profiler_install_simple): Fix default arguments.
9525
9526 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
9527
9528         * reflection.c, reflection.h, icall.c: add a function to check
9529         if an attribute type is defined for a metadata object.
9530
9531 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
9532
9533         * object-internals.h: Added some needed fields from StringBuilder class.
9534         * marshal.c: Set the maxCapacity when creating a StringBuilder.
9535
9536 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
9537
9538         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
9539         threads before shutting down the runtime.
9540
9541         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
9542
9543 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
9544
9545         * object-internal.h, threads.c: implement stacksize and 
9546         parameterized thread start functionality (requires
9547         matching corlib). Marked broken code for later removal.
9548
9549 2005-01-12  Martin Baulig  <martin@ximian.com>
9550
9551         * class-internals.h (MonoGenericClass): Moved the `initialized'
9552         flag to MonoDynamicGenericClass, removed `init_pending'.
9553         (MonoGenericInst): Added `is_reference' flag.
9554
9555 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
9556
9557         * reflection.c (mono_image_create_pefile): Only set the pe_offset
9558         inside the MSDOS header. Fixes #71201.
9559
9560         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
9561         gc thread.
9562         (mono_domain_finalize): Ditto.
9563
9564 2005-01-12  Martin Baulig  <martin@ximian.com>
9565
9566         * class.c (mono_get_shared_generic_class): Use the cache for
9567         non-dynamic generic classes.
9568
9569         * class-internals.h (mono_class_create_generic_2): Removed
9570         function prototype, this function is now static inside class.c.
9571
9572         * class.c (mono_class_create_generic_2): Made this static, only
9573         call it from mono_class_init() and mono_class_setup_parent().
9574         (collect_implemented_interfaces_aux): Call mono_class_init() on
9575         the interfaces we collect.
9576         (mono_class_setup_vtable): Call mono_class_init (class->parent).
9577
9578 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
9579
9580         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
9581         it a real thread handle.
9582
9583         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
9584         MonoJitExceptionInfo, since each catch clause needs its own variable.
9585         
9586 2005-01-11  Dick Porter  <dick@ximian.com>
9587
9588         * image.c (mono_pe_file_open): New variant on mono_image_open()
9589         that does not set up the CLI metadata; used for FileVersionInfo so
9590         it can get the data for windows binaries too.
9591         
9592         * process.c (process_read_string_block): Don't read off the end of
9593         the StringTable block.
9594
9595         These both fix bug 70766.
9596
9597 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
9598
9599         * gc.c: set some fields to NULL at GC cleanup time.
9600         * threads.c: if we quit the main thread, call exit ().
9601
9602 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
9603
9604         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
9605
9606 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
9607
9608         * threads.h, threads.c, object.c: added accessor and settor for
9609         main_thread. Handle it specially when exiting from it: wait
9610         for other foreground threads to exit.
9611
9612 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
9613
9614         * process.c, verify.c: remove some bloat.
9615
9616 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
9617
9618         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
9619         the calling convention to cdecl under win32.
9620
9621 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
9622
9623         * object.c (mono_object_get_size): New function to get the size of
9624         an object instance.
9625
9626         * profiler.c (simple_allocation): Use above.
9627
9628 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
9629
9630         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
9631         ves_icall_System_AppDomain_getRootDomain (as it's not required to
9632         get an appdomain by it's id and we can't assume the root's id is 0).
9633         * domain-internals.h: Change the function prototype to match.
9634         * icall.c: Change the icall table for AppDomain.
9635
9636 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
9637
9638         * locales.c (string_invariant_compare_char): Only compute
9639         GUnicodeTypes in the case where we need them.  Test for ordinality
9640         first and return if so.
9641
9642         From the commit:
9643
9644                 /*
9645                  * FIXME: here we must use the information from c1type and c2type
9646                  * to find out the proper collation, even on the InvariantCulture, the
9647                  * sorting is not done by computing the unicode values, but their
9648                  * actual sort order.
9649                  */
9650
9651 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
9652
9653         * loader.c: for P/Invoke methods, allow the "Internal" shared
9654         library name to refer to the calling process symbol namespace.
9655
9656 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
9657
9658         * Makefile.am: Add the security manager to the build.
9659         * security-manager.c|h: New. Initialization of the security manager.
9660
9661 2005-01-07  Dick Porter  <dick@ximian.com>
9662
9663         * threads.c: 
9664         * monitor.c: Update thread state during Monitor and WaitHandle
9665         waits.  Fixes bug 71031.
9666
9667 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
9668
9669         * reflection.c (property_encode_signature): Correctly handle when the
9670         property has no methods.
9671
9672 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
9673
9674         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
9675         
9676         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
9677         fields from mb, not rmb. Fixes #71017.
9678
9679         * marshal.c (emit_ptr_to_str_conv): Add support for 
9680         ByValTStr -> string conversion. Fixes #71015.
9681
9682         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
9683
9684         * mempool.c (mono_mempool_contains_addr): New helper function.
9685
9686 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
9687
9688         * metadata.c (mono_metadata_compute_size): Fix size calculation of
9689         HasSematics encoded fields.
9690         
9691         * metadata.c (mono_type_to_unmanaged): Improve error message for 
9692         invalid string marshalling.
9693
9694         * metadata.c: Fix warnings.
9695         
9696 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
9697
9698         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
9699         profiler support.
9700
9701 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
9702
9703         * domain.c object.c domain-internals.h: Revert part of r38077 since the
9704         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
9705         tests.
9706
9707 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
9708
9709         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
9710         so methods containing these can be AOTed.
9711
9712 2005-01-03  Martin Baulig  <martin@ximian.com>
9713
9714         * loader.c (find_method): Removed the hack for generic instances.
9715         (method_from_memberref): If our parent is a generic instance, pass
9716         its generic type definition to find_method() and then inflate the
9717         method.
9718         (mono_get_method_constrained): Pass the generic type definition to
9719         find_method() and inflate the method later.
9720
9721         * class-internals.h (MonoStats): Added `generic_class_count'.
9722
9723         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
9724         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
9725
9726         * reflection.c (mono_custom_attrs_from_params): Don't ignore
9727         generic type definitions.
9728
9729 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
9730
9731         * loader.c icall.c: Fix warnings.
9732
9733 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
9734
9735         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
9736         blittable types. Fixes #70864.
9737
9738 2004-12-29  Martin Baulig  <martin@ximian.com>
9739
9740         * icall.c
9741         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
9742
9743         * reflection.c (mono_method_get_object): Create a
9744         "System.Reflection.MonoGenericMethod" for inflated methods; don't
9745         call mono_get_inflated_method().
9746
9747         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
9748
9749 2004-12-27  Martin Baulig  <martin@ximian.com>
9750
9751         * class-internals.h (MonoMethod): Added `is_inflated' flag.
9752         (MonoMethodInflated): Added `inflated' field.
9753
9754         * class.c (mono_class_inflate_generic_method): Don't really
9755         inflate the method here; just set the `is_inflated' flag in the
9756         MonoMethod.
9757         (mono_class_get_inflated_method): Actually inflate the method here
9758         if it's not already inflated; we use the MonoMethodInflated's new
9759         `inflated' field as a cache.
9760
9761 2004-12-26  Martin Baulig  <martin@ximian.com>
9762
9763         * class.c
9764         (inflate_generic_class): Moved some code out of inflate_generic_type().
9765         (mono_class_inflate_generic_method): If we're already inflated,
9766         inflate the context and use the declaring method; ie. make sure
9767         the declaring method of an inflated method is always the generic
9768         method definition.
9769         (mono_class_create_from_typedef): Create
9770         `class->generic_container->context->gclass'.
9771
9772 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
9773
9774         * metadata-internals.h, marshal.c, reflection.c: More
9775         MonoGHashTable->GHashTable.
9776
9777         * domain-internals.h, class.c: Change MonoGHashTable's into
9778         GHashTables for some cases where no gc stuff is used
9779
9780         All users: update apis
9781
9782 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
9783
9784         * metadata.c (builtin_types): Make this `const'. Makes this get
9785         put into the shareable section.
9786         (mono_metadata_init): Casts to make gcc happy.
9787
9788 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
9789
9790         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
9791
9792 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
9793
9794         * icall.c: Added an internal call to retrieve the position and length
9795         of assembly-level declarative security attributes (RequestMinimum, 
9796         RequestOptional and RequestRefuse). This is used by the Assembly class
9797         to re-create the corresponding permission sets.
9798
9799 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
9800
9801         * marshal.c: fix the stelemref wrapper to be type correct
9802         (and faster).
9803
9804 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
9805
9806         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
9807         to do key & 0x7fffffff. Hashtable already does this. It just
9808         results in longer code.
9809
9810 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
9811
9812         * appdomain.c: Bump corlib version.
9813         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
9814         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
9815         * reflection.c|h: Add functions to get declarative security infos
9816         (blob position and length) for assemblies, classes and methods.
9817
9818 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
9819
9820         * reflection.c: sort the constant table (bug #70693).
9821
9822 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
9823
9824         * object-internals.h, threads.c, domain.c: add accessors for
9825         the MonoThread and MonoDomain tls keys.
9826
9827 2004-12-18  Martin Baulig  <martin@ximian.com>
9828
9829         * class.c (inflate_generic_type): If we're inflating a generic
9830         instance, set `ngclass->context->container = context->container';
9831         ie. the container we inflated into.
9832
9833         * metadata.c (mono_metadata_parse_generic_param): Reflect above
9834         inflate_generic_type() changes.
9835
9836 2004-12-17  Martin Baulig  <martin@ximian.com>
9837
9838         * class-internals.h
9839         (MonoGenericClass): Replaced `MonoType *generic_type' with
9840         `MonoClass *generic_class'.  Removed `dynamic_info'; if
9841         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
9842         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
9843
9844 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
9845
9846         * exception.c (mono_exception_from_token): New helper function.
9847
9848 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
9849
9850         * assembly.c (mono_assembly_load_with_partial_name): Call 
9851         mono_assembly_loaded before invoking the preload hooks. Fixes
9852         #70564.
9853
9854         * object-internals.h (MonoThread): Change culture_info and 
9855         ui_culture_info into an array.
9856
9857         * threads.c: Cache culture info objects from more than one appdomain.
9858
9859         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
9860         current UI culture.
9861
9862 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
9863
9864         * threads.h threads.c appdomain.c: Clear the culture_info field of
9865         all threads during unloading if they point to an object in the dying
9866         appdomain.
9867
9868 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
9869
9870         * culture-info.h (TextInfoEntry): New struct
9871         * object-internals.h: sync with managed
9872         * locales.c: fill the `text_info_data' field
9873         * culture-info-tables.h: update
9874
9875 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
9876
9877         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
9878         collector.
9879
9880 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
9881
9882         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
9883         (ves_icall_ModuleBuilder_getMethodToken): Ditto
9884
9885 2004-12-12  Martin Baulig  <martin@ximian.com>
9886
9887         * mono-debug-debugger.c (write_type): If we're an enum and the
9888         builtin types have already been initialized, call mono_class_init().
9889
9890 2004-12-11  Martin Baulig  <martin@ximian.com>
9891
9892         * metadata.c (mono_metadata_load_generic_params): Added
9893         `MonoGenericContainer *parent_container' argument; automatically
9894         compute `container->is_method'; pass the correct owner to
9895         get_constraints().      
9896
9897         * reflection.c (compare_genericparam): Sort the GenericParam table
9898         according to increasing owners. 
9899
9900 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
9901
9902         * profiler.c: allow disabling the default profiler.
9903
9904 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
9905
9906         * decimal.c, icall.c: allow disabling System.Decimal support.
9907
9908 2004-12-09  Marek Safar <marek.safar@seznam.cz>
9909
9910         * reflection.c: Add support for null attribute arguments.
9911
9912 2004-12-09  Martin Baulig  <martin@ximian.com>
9913
9914         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
9915         names to get rid of compiler warnings.
9916
9917 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
9918
9919         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
9920         mono_marshal_load_type_info (). Fixes #69625.
9921         (mono_marshal_get_ptr_to_struct): Likewise.
9922
9923 2004-12-08  Martin Baulig  <martin@ximian.com>
9924
9925         * mono-debug.h: Bumped version number to 47.
9926
9927         * mono-debug-debugger.c
9928         (mono_debugger_event_handler, mono_debugger_event): Take two
9929         guint64 arguments insteed of a gpointer and a guint32.  
9930
9931 2004-12-08  Martin Baulig  <martin@ximian.com>
9932
9933         * debug-mono-symfile.h
9934         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
9935         `address' to `native_offset'.
9936
9937 2004-12-08  Martin Baulig  <martin@ximian.com>
9938
9939         * class.c (mono_class_create_from_typespec): Only inflate if we
9940         either have `context->gclass' or `context->gmethod'.
9941
9942 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
9943
9944         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
9945
9946         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
9947
9948         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
9949
9950         * reflection.c (mono_assembly_get_object): Remove the workaround put
9951         in for the release.
9952         
9953         * appdomain.c: Use the corlib_internal field from MonoAssembly.
9954
9955         * appdomain.c: Bump corlib version.
9956
9957         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
9958         be visible in other appdomains.
9959
9960 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
9961
9962         * threads.c: Interlocked inc and dec for longs were messed up,
9963         use a KISS based impl for this. Fixes 70234
9964
9965 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
9966
9967         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
9968
9969 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
9970
9971         * icall.c: fix to follow policy not to allow struct
9972         arguments in icalls.
9973
9974 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9975
9976         * process.c: make the patch that handles spaces in file paths work
9977         on mono/windows too.
9978
9979 2004-12-06  Martin Baulig  <martin@ximian.com>
9980
9981         * class.c (mono_class_create_generic): Call
9982         mono_class_setup_supertypes() if we're dynamic.
9983         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
9984
9985 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
9986
9987         * object-internals.h: Add new fields to MonoThread.
9988
9989         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
9990
9991         * icall.c threads-types.h threads.c: Add new icalls.
9992
9993         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
9994
9995         * object-internals.h (MonoReflectionAssembly): Sync object layout with
9996         managed side.
9997
9998         * appdomain.c: Bump corlib version.
9999
10000         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
10001         internal assemblies. Fixes #69181.
10002
10003 2004-12-05  Martin Baulig  <martin@ximian.com>
10004
10005         * class.c (mono_class_inflate_generic_signature): Make this a
10006         no-op if `context' is NULL or we don't have any type parameters;
10007         also copy `sentinelpos'.        
10008
10009 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
10010
10011         * image.c: Add unbox_wrapper_cache.
10012
10013         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
10014
10015         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
10016         function generator.
10017         
10018         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
10019         Fixes #70173.
10020
10021         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
10022         
10023 2004-12-04  Martin Baulig  <martin@ximian.com>
10024
10025         * loader.c (mono_method_get_signature_full): New public function;
10026         like mono_method_get_signature(), but with an additional
10027         `MonoGenericContext *' argument.
10028
10029         * class.c (mono_class_inflate_generic_signature): Formerly known
10030         as inflate_generic_signature(); make this public.
10031
10032 2004-12-04  Martin Baulig  <martin@ximian.com>
10033
10034         * metadata.c
10035         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
10036         instead of a `MonoGenericContainer *'.  
10037         (mono_metadata_parse_array_full): Likewise.
10038         (mono_metadata_parse_signature_full): Likewise.
10039         (mono_metadata_parse_method_signature_full): Likewise.
10040         (mono_metadata_parse_generic_inst): Likewise.
10041         (mono_metadata_parse_generic_param): Likewise.
10042         (mono_metadata_parse_mh_full): Likewise.
10043         (mono_type_create_from_typespec_full): Likewise.
10044
10045 2004-12-03  Martin Baulig  <martin@ximian.com>
10046
10047         * class-internals.h (MonoGenericContainer): Replaced the
10048         `MonoGenericContext * pointer with a `MonoGenericContext'
10049         structure and made it the first element.
10050
10051 2004-12-03  Martin Baulig  <martin@ximian.com>
10052
10053         * class.c
10054         (inflate_generic_type): Set the `context->container' when creating
10055         a new MonoGenericContext.
10056         (mono_class_inflate_generic_method): Likewise.
10057         (mono_class_create_from_typespec): Just use `context->container'
10058         to get the container.
10059
10060         * loader.c (method_from_methodspec): Set `context->parent' from
10061         `context->container' - and if that's a method container, use its
10062         parent.  Also set the `context->container' when creating a new
10063         MonoGenericContext.
10064         (mono_get_method_from_token): Use just `context->container' to get
10065         the container.
10066
10067         * metadata.c (do_mono_metadata_parse_generic_class): Also set
10068         `gclass->context->container'.
10069
10070         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
10071         the `context->container' when creating a new MonoGenericContext.
10072
10073 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
10074
10075         * reflection.c (compare_genericparam): Sort params with identical
10076         owner by their number. Fixes gen-111 on sparc.
10077
10078 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
10079
10080         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
10081         around the domain changes.
10082
10083         * appdomain.c (mono_domain_unload): Handle the case when the thread
10084         calling Unload is itself being aborted during unloading. Fixes #70022.
10085
10086         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
10087
10088         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
10089         checkpoint_func as an icall so it gets a wrapper.
10090         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
10091         in the cross-appdomain wrappers too.
10092
10093         * threads.c (mono_thread_has_appdomain_ref): Make this public.
10094
10095         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
10096
10097         * reflection.c: Fix some memory leaks.
10098         
10099 2004-12-02  Martin Baulig  <martin@ximian.com>
10100
10101         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
10102
10103         * metadata.c (generic_class_cache): New static hashtable.
10104         (mono_metadata_lookup_generic_class): New public method.
10105
10106 2004-12-02  Martin Baulig  <martin@ximian.com>
10107
10108         * class.c (mono_class_create_from_typedef): Call
10109         mono_class_setup_parent() and mono_class_create_mono_type() before
10110         parsing the interfaces.
10111
10112 2004-12-02  Martin Baulig  <martin@ximian.com>
10113
10114         * metadata.c (generic_inst_cache): New static hashtable.
10115         (mono_metadata_lookup_generic_inst): New public function.
10116         (mono_metadata_inflate_generic_inst): New public function.
10117         (mono_metadata_parse_generic_inst): New public function.
10118         (do_mono_metadata_parse_generic_class): Use the new
10119         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
10120         since this'll also use the cache.
10121
10122         * reflection.c (mono_reflection_bind_generic_method_parameters):
10123         Use mono_metadata_lookup_generic_inst() to use the new cache.
10124
10125         * class.c (inflate_mono_type): Use
10126         mono_metadata_inflate_generic_inst() to inflate a generic
10127         instance; this'll also use the new cache.
10128
10129         * loader.c (method_from_methodspec): Use
10130         mono_metadata_parse_generic_inst() and
10131         mono_metadata_inflate_generic_inst() rather than parsing it
10132         manually, so we can use the new cache.
10133
10134 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
10135
10136         * threads.c (wait_for_tids): Do not incorrectly free threads when 
10137         the wait times out.
10138
10139 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
10140
10141         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
10142         iter->args based on whether parameters are passed in registers (i.e.
10143         MONO_ARCH_REGPARMS is defined)
10144
10145 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
10146
10147         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
10148         the exception message. Fixes #70070.
10149         (method_from_methodspec): Fix warnings.
10150
10151 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10152
10153         * process.c: (complete_path) return the path quoted
10154
10155 2004-12-01  Martin Baulig  <martin@ximian.com>
10156
10157         * class-internals.h (MonoGenericInst): New structure.
10158         (MonoGenericClass): Replaced `type_argc', `type_argv' and
10159         `is_open' with `MonoGenericInst *inst'.
10160         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
10161         `is_open' with `MonoGenericInst *inst'.
10162
10163 2004-11-30  Martin Baulig  <martin@ximian.com>
10164
10165         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
10166
10167         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
10168         to `generic_class_cache'.
10169
10170         * metadata.c
10171         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
10172         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
10173         (mono_generic_inst_is_valuetype): Renamed to
10174         mono_generic_class_is_valuetype().
10175
10176         * class-internals.h
10177         (MonoGenericInst): Renamed to MonoGenericClass.
10178         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
10179         (MonoClass): Renamed `generic_inst' to `generic_class'.
10180         (MonoGenericContext): Renamed `ginst' to `gclass'.
10181
10182         * object-internals.h
10183         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
10184
10185         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
10186         mono_reflection_generic_class_initialize().
10187
10188         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
10189         now known as "System.Reflection.MonoGenericClass".
10190         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
10191
10192 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
10193
10194         * class-internals.h: Added a flag field to MonoClass to cache the
10195         declarative security attributes actions associated with the class.
10196         * domain-internals.h: Added booleans to MonoJitInfo to cache the
10197         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
10198         applicable to the JITted method.
10199         * reflection.c|h: Added functions to extract (as flags) which security
10200         actions are available (declaratively) for a method, class or assembly.
10201         * metadata.c|h: Added functions to search the declarative security
10202         table in the metadata.
10203         
10204 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
10205
10206         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
10207         EXPORTEDTYPES are already in the class name cache, so there is no
10208         need to add extra code here to look at them. Just removes a bit of
10209         cruft.
10210
10211         (ves_icall_System_Environment_get_TickCount): No need for #if
10212         WINDOWS. We already have the code in io-layer.
10213
10214 2004-11-28  Martin Baulig  <martin@ximian.com>
10215
10216         * loader.c
10217         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
10218         Fixes gen-112.cs.
10219
10220 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
10221
10222         * assembly.c (do_mono_assembly_open): Instead of having a
10223         conditional WITH_BUNDLE, incorporate support for bundles here, by
10224         having a global `bundles' variable holding a pointer to the actual
10225         bundles. 
10226
10227         (mono_register_bundled_assemblies): New API call used by the
10228         bundle code. 
10229
10230         See mkbundle.1 for details.
10231         
10232 2004-11-27  Martin Baulig  <martin@ximian.com>
10233
10234         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
10235         the vtable for generic methods.
10236
10237 2004-11-26  Martin Baulig  <martin@ximian.com>
10238
10239         * metadata.c
10240         (mono_metadata_generic_method_hash): New public function.
10241         (mono_metadata_generic_method_equal): Likewise.
10242
10243         * class-internals.h
10244         (MonoGenericContainer): Added `GHashTable *method_hash'.
10245
10246         * reflection.c (ReflectionMethodBuilder): Added
10247         `MonoGenericContainer *generic_container'.
10248         (reflection_methodbuilder_to_mono_method): Don't create a new
10249         MonoGenericContainer each time we're called.
10250         (mono_reflection_bind_generic_method_parameters): Use
10251         `container->method_hash' to cache the results so we don't create a
10252         different method if we're called several times with the same
10253         arguments.
10254
10255         * loader.c (method_from_methodspec): Use the new
10256         `container->method_hash' here, too.
10257
10258 2004-11-26  Martin Baulig  <martin@ximian.com>
10259
10260         * class.c (inflate_generic_signature): Correctly compute
10261         `res->has_type_parameters'.
10262         (mono_class_vtable): Use the `has_type_parameters' flag to
10263         determine whether we're a generic method.
10264
10265         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
10266
10267 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
10268
10269         * object.c (mono_runtime_run_main): Fix a small memory leak.
10270
10271 2004-11-25  Martin Baulig  <martin@ximian.com>
10272
10273         * class.c (set_generic_param_owner): Fixed the loop.
10274
10275 2004-11-25  Martin Baulig  <martin@ximian.com>
10276
10277         * object.c (mono_class_vtable): Don't create any JIT wrappers for
10278         generic methods.
10279
10280 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
10281
10282         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
10283         names. Fixes #69787.
10284
10285 2004-11-24  Martin Baulig  <martin@ximian.com>
10286
10287         * class.c (mono_class_create_generic_2): If we don't have a
10288         `ginst->parent', inflate `gklass->parent' to get our parent.
10289
10290 2004-11-24  Martin Baulig  <martin@ximian.com>
10291
10292         * reflection.c (compare_genericparam): Correctly sort the
10293         GenericParam table; fixes #69779.
10294
10295 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
10296
10297         * reflection.c: When writing a PE file, don't create a huge
10298         buffer in memory. Just write the arrays we have to the file.
10299         This reduces memory usage.
10300
10301         * metadata-internals.h: MonoDynamicStream pefile is no longer used
10302         globally.
10303
10304 2004-11-17  Martin Baulig  <martin@ximian.com>
10305
10306         * class.c (mono_class_init): Don't setup `class->parent' for
10307         dynamic instances; moved this to mono_class_generic_2().
10308         (mono_class_create_generic): Also set `klass->inited' for dynamic
10309         generic instances.
10310         (mono_class_create_generic_2): Don't do anything for dynamic
10311         generic instances.  Set `klass->parent' here and also call
10312         mono_class_setup_parent() here. 
10313
10314         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
10315         `MonoType *parent' argument; set `ginst->parent' before calling
10316         mono_class_create_generic_2(), so we set the correct parent.
10317
10318 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
10319
10320         * reflection.c: allow getting attributes from ModuleBuilder
10321         (used by ikvm).
10322
10323 2004-11-17  Martin Baulig  <martin@ximian.com>
10324
10325         * class.c (mono_class_create_from_typedef): If a type parameter is
10326         inherited from an outer class, set its owner to that class.
10327
10328 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
10329
10330         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
10331           for (int*) written size. This fixes bug #69592.
10332
10333 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
10334
10335         * icall.c: Added IsAuthenticodePresnet internal call.
10336         * image.c|h: New function that check a MonoImage for an Authenticode
10337         signature in the certificate PE data directory.
10338         * security.c|h: New internal call to ask the runtime if an 
10339         Authenticode signature seems referenced in the PE header.
10340
10341 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
10342
10343         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
10344
10345         * reflection.c (mono_image_create_pefile): Free the assembly streams
10346         after writing out the assembly file.
10347
10348         * object.c (mono_runtime_run_main): Fix small memory leak.
10349
10350         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
10351         property access modifiers. Fixes #69389.
10352
10353 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
10354
10355         * domain.c, object.c, object-internals.h, domain-internals.h,
10356         object.h, marshal.c: keep dynamic code info per domain.
10357
10358 2004-11-15  Martin Baulig  <martin@ximian.com>
10359
10360         * class.c (mono_type_get_name_recurse): Put type arguments in
10361         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
10362         see bug #68387.
10363
10364 2004-11-15  Martin Baulig  <martin@ximian.com>
10365
10366         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
10367         (mono_class_setup_vtable): When computing `the_cname' for a
10368         generic instance, don't include the namespace since we'd otherwise
10369         add it twice.
10370
10371 2004-11-15  Martin Baulig  <martin@ximian.com>
10372
10373         * class.c (mono_class_create_generic): Changed return type to void.
10374         (mono_class_create_generic_2): New public function; setup
10375         `class->method', `class->field' and `class->interfaces' here
10376         instead of in mono_class_init().
10377
10378         * class.h (mono_class_create_generic): Moved to class-internals.h.
10379
10380 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
10381
10382         * reflection.c (mono_image_create_pefile): take a file HANDLE.
10383         rather than writing to memory, write to this file. Right now,
10384         we are just writting into a buffer, and copying that. However
10385         we can avoid the buffer later.
10386
10387         (mono_dynamic_stream_reset): new function
10388
10389         * icall.c, object-internals.h: update for the above.
10390
10391 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
10392
10393         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
10394         have been using gc'd memory. First it is slower, unlikely
10395         the comment in the source code said, secondly, it increases
10396         our footprint to do it in the gc.
10397
10398         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
10399         the method so that it does not have to copy to managed code.
10400
10401 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
10402
10403         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
10404
10405 2004-11-12  Martin Baulig  <martin@localhost>
10406
10407         * reflection.c (mono_image_create_token): Allow generic method
10408         definitions here, since they may appear in an `.override'; see
10409         gen-98/gen-99 for an example.
10410
10411 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
10412
10413         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
10414         #69365.
10415
10416         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
10417         descriptive.
10418
10419 2004-11-11  Martin Baulig  <martin@ximian.com>
10420
10421         * class.c (mono_class_setup_vtable): In an explicit interface
10422         implementation, the method name now includes the arity.
10423
10424 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
10425
10426         * object.c (mono_array_full_copy): Fix warning.
10427
10428 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
10429
10430         * appdomain.c: Removed look_for_method_by_name(). Use the new method
10431         mono_class_get_method_from_name() instead.
10432         
10433         * class-internals.h: Added two new types of wrappers. 
10434         Added MonoRemotingTarget enum. Added new trampoline function type, which
10435         takes an additional MonoRemotingTarget value as parameter, so it is
10436         possible to request a trampoline for a specific target.
10437         
10438         * class.c: Added new mono_class_get_method_from_name() method.
10439         
10440         * class.h: In MonoRemoteClass, we can have now to vtables, one for
10441         general remoting sinks and one specific for cross domain calls.
10442         
10443         * debug-helpers.c: Added new wrapper names.
10444         
10445         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
10446         of a remote class.
10447         
10448         * image.c: Porperly delete value objects form the remoting invoke hashtable.
10449         
10450         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
10451         with several other methods (mono_marshal_get_xappdomain_dispatch,
10452         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
10453         and others) can generate a fast remoting wrapper for cross domain calls.
10454         More information can be found in docs/remoting.
10455         Other changes: Removed mono_find_method_by_name, and used
10456         mono_class_get_method_from_name instead.
10457         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
10458         is stored in the remoting invoke hashtable.
10459         
10460         * marshal.h: published the new method for getting the xdomain wrapper,
10461         and also added a method for getting the adequate wrapper for a given
10462         method and target.
10463         
10464         * object-internals.h, object.c: Added a couple of methods for capying and
10465         cloning arrays.
10466         Modified mono_install_remoting_trampoline, which takes the new remoting
10467         trampoline that has a remoting target as parameter.
10468         mono_class_proxy_vtable now also takes a remoting target as parameter, and
10469         will return the most suitable vtable for the target.
10470         Added mono_remote_class_vtable, which returns the vtable of a remote class
10471         (which can be the normal remoting vtable or the xdomain vtable).
10472         
10473         * threads.c: the xdomain invoke and dispatch wrappers must also be
10474         protected against interruptions.
10475
10476 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10477
10478         * icall.c: use memmove in BlockCopyInternal when the source and
10479         destination arrays are the same.
10480
10481 2004-11-09  Martin Baulig  <martin@ximian.com>
10482
10483         * class-internals.h (MonoGenericContainer): Removed `method' and
10484         `signature', replaced them with `is_method' and `is_signature'
10485         flags.  Added `context'.
10486
10487         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
10488         instead of a `MonoGenericContainer *'.
10489
10490         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
10491         for dynamic type parameters.
10492         (mono_metadata_load_generic_params): Setup `container->context'.
10493
10494         * reflection.c (mono_reflection_setup_generic_class): Setup
10495         `tb->generic_container->context'.
10496         (do_mono_reflection_bind_generic_parameters): Use
10497         mono_class_inflate_generic_type() to correctly inflate types,
10498         rather than using our own hack just for MONO_TYPE_VAR.
10499
10500 2004-11-09  Martin Baulig  <martin@ximian.com>
10501
10502         * class.c (mono_class_inflate_generic_method): Small fix; don't
10503         crash here.
10504
10505         * icall.c
10506         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
10507         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
10508         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
10509         (ves_icall_Type_BindGenericParameters): Likewise.
10510         (ves_icall_Type_get_IsGenericInstance): Likewise.
10511         (ves_icall_Type_GetGenericParameterPosition): Likewise.
10512         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
10513         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
10514         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
10515
10516 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
10517
10518         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
10519         assembly versions and public key tokens. Fixes #69113.
10520
10521 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
10522
10523         * metadata.c: fix bug introduced with the type cache changes
10524         on 2004-11-06.
10525
10526 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
10527
10528         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
10529         the MonoClass pointer instead of the token in exception clauses.
10530         * reflection.c: updates for the above and make the code not depend
10531         on the structure of MonoExceptionClause.
10532
10533 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
10534
10535         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10536         Add support for dynamic assemblies. Fixes #69114.
10537
10538         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
10539
10540 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
10541
10542         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
10543         since most only those methods use it. the code member of
10544         MonoMethodPInvoke was dead, so that can be removed too. Also,
10545         remove inline_count (again, not used), and move slot so that it
10546         can share bits with some other flags. This saves 8 bytes in the
10547         structure and gives us about 50 kb back for mcs helloworld.cs
10548
10549         * *.[ch]: Do naming changes for the above.
10550
10551         * loader.c (mono_method_get_header): Lazily init the header
10552         on first access.
10553         (mono_get_method_from_token): don't init the header here
10554         (mono_free_method): the header may never be allocated
10555
10556         Overall, this saves 150 kb of unmanaged allocations
10557         for mcs helloworld.cs. That accounts for 10% of the unmanaged
10558         memory at runtime.
10559         
10560         * loader.c, loader.h (mono_method_get_header): new accessor.
10561
10562         * *.[ch]: use the above method. Prepares us to lazily load
10563         the header.
10564
10565         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
10566         three warnings, which are actual bugs (see 69206).
10567
10568         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
10569         unused. Saves a cool 4 bytes / method.
10570
10571 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
10572
10573         * metadata.c (builtin_types): Add types for System.Object here.
10574         (mono_metadata_parse_type_full): Cache MonoType*'s that are
10575         for a class or valuetype from klass->this_arg or klass->byval_arg.
10576
10577         On mcs for a hello world, this gets us down from 21836 MonoType's
10578         to 14560.
10579
10580         (mono_metadata_free_type): Account for the above change.
10581
10582 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
10583
10584         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
10585         exception instead of asserting if name is null.
10586         (ves_icall_System_AppDomain_GetData): Ditto.
10587
10588 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
10589
10590         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
10591         EnumBuilder.
10592
10593         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
10594         Return NULL when the domain does not have entry_assembly set.
10595
10596         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
10597         Add a 'resource_modules' argument.
10598         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
10599
10600         * reflection.c (mono_reflection_create_runtime_class): Move setting
10601         of wastypebuilder here, so mono_get_type_object () returns a MonoType
10602         for enums too.
10603
10604         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
10605         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
10606         Throw an ArgumentNullException if 'ptr' is null.
10607
10608         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
10609         assemblies here. Fixes #69020.
10610
10611 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
10612
10613         * reflection.c (build_compressed_metadata): Fix the previous patch for
10614         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
10615         the stack.
10616
10617 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
10618
10619         * assembly.c (mono_assembly_names_equal): Allow a match if one of
10620         the cultures is false. Fixes #69090.
10621
10622         * reflection.c (build_compressed_metadata): Fix invalid memory read 
10623         detected by valgrind.
10624         
10625         * reflection.c (mono_reflection_get_type): Avoid triggering a 
10626         TypeResolve multiple times for the same type. Fixes #65577.
10627
10628 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
10629
10630         * marshal.c: Avoid using ldftn to call managed functions. It is
10631         much slower than just a call.
10632
10633         * reflection.c (mono_module_get_object): free the basename we
10634         allocate here from glib.
10635         
10636         * reflection.c (ensure_runtime_vtable): make sure to free
10637         overrides.  Also, we were allocating an array of MonoMethod not an
10638         array of MonoMethod*.
10639
10640         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
10641
10642         * image.c (mono_image_close): free image->guid here.
10643
10644 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
10645
10646         * reflection.c: Fix some spec conformance issues with the PE file
10647         structures so mcs compiled apps run on the Net 2.0 beta.
10648
10649 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
10650
10651         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
10652         Implement this. Fixes #67264.
10653
10654         * debug-helpers.h debug-helpers.c marshal.c: Move 
10655         mono_find_method_by_name to debug-helpers.c.
10656
10657 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
10658
10659         * object.c (mono_release_type_locks): type_initialization_hash is
10660         a GHashTable.
10661
10662         * reflection.c object.c object-internals.h: Fix warnings.
10663
10664         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
10665         without accessors. Fixes #61561.
10666
10667         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
10668         application base from the root domain if not set. Fixes #65641.
10669         (mono_runtime_init): Fix warning.
10670
10671 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10672
10673         * appdomain.c: call mono_thread_pool_init.
10674         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
10675         of worker threads based on the number of CPUs and the environment
10676         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
10677         for non-windows (windows) systems.
10678
10679 2004-10-27  Chris Toshok  <toshok@ximian.com>
10680
10681         * mono-debug-debugger.c (write_class): don't call mono_class_init
10682         here, as even with the check for (!klass->init_pending), we get
10683         into a situation where we're hitting cycles in class
10684         initialization.  Fixes #68816.
10685
10686 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
10687
10688         * image.c: Avoid overwriting values in the loaded_images_hash when an
10689         assembly is loaded multiple times. Fixes #61152.
10690
10691         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
10692         so multiple satellite assemblies for the same name can be loaded.
10693         Fixes #68259.
10694
10695         * mono_domain_assembly_preload: Actually return the loaded assembly, 
10696         not NULL.
10697
10698         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
10699         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
10700
10701         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
10702         pending finalizers are not invoked after the appdomain has been 
10703         unloaded. Fixes #67862.
10704
10705 2004-10-22  Martin Baulig  <martin@ximian.com>
10706
10707         * mono-debug-debugger.c
10708         (mono_debugger_runtime_invoke): Don't box valuetypes.
10709
10710 2004-10-22  Chris Toshok  <toshok@ximian.com>
10711
10712         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
10713         don't hide private methods.
10714
10715 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
10716
10717         * icall.c: Allows the runtime to "share" (when known) the public key
10718         token of an assembly. This avoid the need to recalculate the token 
10719         (from the public key) in managed code.
10720
10721 2004-10-21  Chris Toshok  <toshok@ximian.com>
10722
10723         * debug-helpers.c (append_class_name): argh, revert last patch.
10724         
10725 2004-10-21  Chris Toshok  <toshok@ximian.com>
10726
10727         * debug-helpers.c (append_class_name): use '+' as the delimiter,
10728         not '/', so that it matches what the debugger uses to look up
10729         methods.
10730
10731 2004-10-21  Martin Baulig  <martin@ximian.com>
10732
10733         * mono-debug-debugger.c (mono_debugger_throw_exception): New
10734         public method; this is called each time an exception is thrown and
10735         allows the debugger to use exception catch points.
10736
10737 2004-10-21  Martin Baulig  <martin@ximian.com>
10738
10739         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
10740         the stack pointer and the exception object in some struct and pass
10741         that to the debugger.
10742
10743 2004-10-21  Chris Toshok  <toshok@ximian.com>
10744
10745         * mono-debug-debugger.c (do_write_class): add instance/static
10746         event support.  We don't expose "raise" or "other" yet.
10747         (event_is_static): new method.
10748
10749 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
10750
10751         * mono-debug-debugger.c
10752         (mono_debugger_handle_exception): Remove
10753         bogus return value for fussy compilers.
10754
10755 2004-10-20  Martin Baulig  <martin@ximian.com>
10756
10757         * mono-debug-debugger.c
10758         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
10759         (mono_debugger_handled_exception): Likewise.
10760
10761 2004-10-20  Martin Baulig  <martin@ximian.com>
10762
10763         * mono-debug-debugger.h (MonoDebuggerEvent): Added
10764         MONO_DEBUGGER_EVENT_EXCEPTION.
10765
10766         * mono-debug-debugger.c (mono_debugger_handle_exception): New
10767         public function to send the debugger a notification for an
10768         exception and inform it about a catch/finally clause.
10769
10770 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
10771
10772         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
10773         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
10774         fix 2.95 build. 
10775
10776         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
10777
10778 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
10779
10780         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
10781         marshalled as [In,Out]. Fixes #58325.
10782
10783 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
10784
10785         * reflection.c (mono_method_body_get_object): Implement some fields.
10786
10787 2004-10-12  Martin Baulig  <martin@ximian.com>
10788
10789         * reflection.c (mono_reflection_bind_generic_parameters): Small
10790         fix, correctly retrieve our parent from a generic instance.
10791
10792 2004-10-12  Martin Baulig  <martin@ximian.com>
10793
10794         * metadata.c (mono_metadata_generic_param_equal): We always have
10795         an owner.
10796
10797         * class.c
10798         (mono_class_from_generic_parameter): We need to have an owner.
10799         (my_mono_class_from_generic_parameter): Likewise.
10800
10801         * reflection.c (mono_reflection_setup_generic_class): Renamed to
10802         mono_reflection_create_generic_class() and added a new
10803         mono_reflection_setup_generic_class().  
10804         (mono_reflection_initialize_generic_param): If we're a nested
10805         generic type and inherited from the containing class, set our
10806         owner to the outer class.
10807
10808 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
10809
10810         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
10811
10812         * reflection.c (mono_method_body_get_object): New function to create
10813         a MethodBody object.
10814
10815         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
10816
10817 2004-10-11  Martin Baulig  <martin@ximian.com>
10818
10819         * metadata.c (_mono_metadata_type_equal): Renamed to
10820         do_mono_metadata_type_equal() and made static.
10821
10822 2004-10-11  Martin Baulig  <martin@ximian.com>
10823
10824         * appdomain.c: Bump corlib version number to 28.
10825
10826 2004-10-10  Martin Baulig  <martin@ximian.com>
10827
10828         * class-internals.h
10829         (MonoGenericInst): Added `MonoGenericContainer *container'.
10830         (MonoGenericMethod): Likewise.
10831         (MonoGenericContext): Likewise.
10832         (MonoGenericParam): Added `MonoGenericContainer *owner'.
10833
10834         * metadata.c
10835         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
10836         (do_mono_metadata_parse_generic_inst): Likewise.
10837         (mono_metadata_parse_type_full): New public method.  This is the actual
10838         mono_metadata_parse_type() implementation - with an additional
10839         `MonoGenericContainer *' argument.
10840         (mono_metadata_parse_array_full): Likewise.
10841         (mono_metadata_parse_signature_full): Likewise.
10842         (mono_metadata_parse_method_signature_full): Likewise.
10843         (mono_metadata_parse_mh_full): Likewise.
10844         (mono_type_create_from_typespec): Likewise.
10845         (mono_metadata_interfaces_from_typedef_full): New public method;
10846         this is similar to the other _full() methods, but we take a
10847         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
10848         (mono_metadata_parse_generic_param): Take an additional
10849         `MonoGenericContainer *' argument and lookup the MonoGenericParam
10850         from that container.
10851         (mono_metadata_generic_param_equal): New static method to compare
10852         two type parameters.
10853         (_mono_metadata_type_equal): New static method; takes an
10854         additional `gboolean signature_only' argument - if true, we don't
10855         compare the owners of generic parameters.
10856         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
10857         with a TRUE argument - do a signature-only comparision.
10858
10859         * loader.c: Use the new _full() methods and pass the
10860         MonoGenericContainer to them.
10861
10862         * object-internals.h (MonoReflectionTypeBuilder): Added
10863         `MonoGenericContainer *generic_container' field.
10864         (MonoReflectionMethodBuilder): Likewise.
10865
10866 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
10867
10868         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
10869         case initial images of dynamic assemblies.
10870
10871         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
10872
10873         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
10874
10875         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
10876         length of event->other array.
10877         (typebuilder_setup_events): Ditto.
10878
10879         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
10880         'assembly_by_name' and add an 'assemblies' list.
10881
10882         * assembly.h assembly.c: Add a new search hook for determining whenever
10883         an assembly is already loaded. Use this instead of searching in the
10884         loaded_assemblies list.
10885
10886         * domain.c appdomain.c: Implement the new search hook so loaded 
10887         assemblies are now scoped by appdomain. Fixes #67727.
10888
10889 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
10890
10891         * threads.c (mono_thread_attach): Initialize synch_lock field so
10892         mono_thread_detach works again.
10893
10894         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
10895         'lib' too. Fixes #63130.
10896
10897 2004-10-06  Jackson Harper  <jackson@ximian.com>
10898
10899         * culture-info-tables.h: regenerated.
10900
10901 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
10902
10903         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
10904         implemented by other interfaces in the result. Fixes #65764.
10905         
10906         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10907         Handle unloadable modules without crashing.
10908
10909         * image.c (load_modules): Revert the previous patch since modules must
10910         have a fixed index inside the array.
10911         
10912         * image.c (load_modules): Don't include native modules in the modules
10913         array.
10914
10915 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
10916
10917         * reflection.h: Add param_defaults field.
10918
10919         * reflection.c: Add support for parameter defaults in dynamic methods.
10920         Fixes #64595.
10921
10922         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
10923         an empty string when a type has no namespace. Fixes #64230.
10924
10925 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
10926
10927         * tabledefs.h: Added "internal" security actions to support non-CAS
10928         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
10929         Note: they do not seems to be used anymore in 2.0 (new metadata format)
10930
10931 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
10932
10933         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
10934         constructor of abstract class. Fixes #61689.
10935
10936 2004-10-04  Martin Baulig  <martin@ximian.com>
10937
10938         * class-internals.h (MonoGenericContainer): New type.
10939         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
10940         `MonoGenericContainer *generic_container'.
10941         (MonoClass): Replaced `gen_params' and `num_gen_params' with
10942         `MonoGenericContainer *generic_container'.
10943
10944         * metadata.c (mono_metadata_load_generic_params): Return a
10945         `MonoGenericContainer *' instead of a `MonoGenericParam *';
10946         removed the `num' argument.
10947
10948 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
10949
10950         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
10951         for dynamic images.
10952
10953         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
10954         machine fields.
10955
10956         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
10957
10958         * reflection.c: Save pe_kind and machine values into the generated
10959         image file.
10960
10961         * appdomain.c: Bump corlib version number.
10962
10963         * object-internals.h: Reorganize layout of LocalBuilder.
10964
10965         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
10966         New helper function.
10967
10968         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
10969         created MonoType for dynamic types. Fixes #66180.
10970
10971 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
10972
10973         * threadpool.c: the ares hashtable needs a critical section around it.
10974         this prevents some nasty segfaults
10975
10976 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
10977
10978         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
10979         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
10980         bug 67324).
10981         
10982 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
10983
10984         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
10985         
10986 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
10987
10988         * image.c: Always canonicalize image file names, to avoid loading
10989         the same assembly twice when referenced using a relative path.
10990
10991 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
10992
10993         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
10994
10995         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
10996
10997         * marshal.c: Fix warnings.
10998
10999 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
11000
11001         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
11002         attempting to marshal the delegate_trampoline as the method_addr.
11003         This patch has a static hashtable of marshalled delegates so that 
11004         we can map delegate_trampoline addresses back to delegates.  This
11005         allows a delegate passed to managed code to be passed back into native
11006         code.  Fixes #67039
11007
11008 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
11009
11010         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
11011
11012         * reflection.c (method_encode_code): Align method headers properly.
11013         Fixes #66025.
11014
11015 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
11016
11017         * marshal.c: In the runtime invoke wrapper, reset the abort
11018         exception if it is cached. This avoids the automatic rethrowal of 
11019         the exception after the catch of the wrapper. Also check for pending
11020         interruptions before calling the managed method. This is done using
11021         the new method emit_thread_force_interrupt_checkpoint, since the
11022         normal checkpoint method is ignored when running the invoke wrapper.
11023         * object.c: If the abort exception is rethrown, set the abort_exc
11024         field of the thread, so it will be rethrown aftere every catch.
11025         * threadpool.c: Only run an interruption checkpoint if what has been
11026         requested is a stop of the thread (aborts will be ignored).
11027         * threads.c: By default, a thread will now never be interrumped while
11028         running the runtime invoke wrapper (this ensures that runtime_invoke
11029         will always return to the caller if an exception pointer is provided).
11030         There is a new special method mono_thread_force_interruption_checkpoint()
11031         to force an interruption checkpoint even if running a protected
11032         wrapper, which is used by the same runtime invoke wrapper to do a check
11033         at a safe point.
11034
11035 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
11036
11037         * object.c, object-internals.h: Implemented mono_release_type_locks,
11038         which releases the cctor locks held by a thread.
11039         * threads.c, threads.h: In thread_cleanup, release cctor locks held
11040         by a thread. Added mono_thread_exit() method to be used to safely stop
11041         a thread.
11042
11043 2004-09-28  Raja R Harinath  <rharinath@novell.com>
11044
11045         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
11046         Move null check before dereference.  Avoid indexing beyond the end
11047         of the 'modules' array.
11048
11049 2004-09-28  Raja R Harinath  <rharinath@novell.com>
11050
11051         * metadata-internals.h (MonoImage): Add module_count field.
11052         * image.c (load_modules): Set image->module_count.
11053         (mono_image_load_file_for_image): Use image->module_count.
11054         * reflection.c (mono_image_load_module): Append to image->modules array 
11055         of dynamic assembly.
11056         (mono_module_get_object): Fix loop to actually increment index.
11057         Use image->module_count.
11058         * assembly.c (mono_assembly_load_references): Use image->module_count.
11059         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
11060         Likewise.
11061
11062 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
11063
11064         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
11065         Avoid assert on generic types.
11066
11067 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
11068
11069         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
11070
11071         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
11072
11073         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
11074         function to convert a MarshalSpec structure to its managed counterpart.
11075
11076         * reflection.c: Fix warnings.
11077         
11078         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
11079         field.
11080
11081         * icall.c (mono_create_icall_signature): Fix build.
11082
11083 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
11084
11085         * icall.c: Add MakePointType icall.
11086
11087         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
11088         warnings.
11089
11090 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11091
11092         * threadpool.c: reuse allocated slots in the queue.
11093
11094 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
11095
11096         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
11097
11098         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
11099
11100         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
11101         previous change.
11102
11103         * tabledefs.h: Add constants for pinvoke attributes BestFit and
11104         ThrowOnUnmappableChar.
11105
11106         * icall.c (ves_icall_Type_GetPacking): New icall.
11107
11108 2004-09-24  Martin Baulig  <martin@ximian.com>
11109
11110         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
11111
11112 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11113
11114         * appdomain.c:
11115         (mono_domain_set): allow setting a domain that is being unloaded.
11116         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
11117         being unloaded.
11118
11119 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
11120
11121         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
11122         the GetCustomAttributes icall.
11123
11124 2004-09-23  Martin Baulig  <martin@ximian.com>
11125
11126         * object-internals.h (MonoReflectionGenericParam): Replaced
11127         'has_ctor_constraint', `has_reference_type' and `has_value_type'
11128         with `guint32 attrs'.
11129
11130 2004-09-23  Martin Baulig  <martin@ximian.com>
11131
11132         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
11133
11134 2004-09-23  Martin Baulig  <martin@ximian.com>
11135
11136         * object-internals.h (GenericParameterAttributes): New enum.
11137
11138 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
11139
11140         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
11141         
11142         * class.c (init_events): Fill out event->other field.
11143
11144         * class.c: Fix warnings.
11145
11146         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
11147
11148 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
11149
11150         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
11151         walk which doesn't supply the IL offset.
11152
11153 2004-09-22  Martin Baulig  <martin@ximian.com>
11154
11155         * reflection.c (mono_reflection_setup_internal_class): If we're
11156         System.ValueType, System.Object or System.Enum, set
11157         `klass->instance_size' and create the vtable.
11158         (mono_reflection_create_internal_class): If we're an enum type,
11159         get the base class from our current corlib.
11160
11161 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
11162
11163         * reflection.h (MonoResolveTokenError): New type.
11164
11165         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
11166         icall.
11167
11168         * icall.c: Add an 'error' argument to the ResolveToken icalls.
11169
11170 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
11171
11172         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
11173         Support also calling constructors, but only for already allocated objects.
11174
11175 2004-09-17  Geoff Norton <gnorton@customerdna.com>
11176
11177         * reflection.c (type_get_qualified_name): If the klass is null
11178         return the typename to avoid a NullRefEx.
11179         (encode_cattr_value): Get the qualified name of the boxed type,
11180         not the underlying enumtype.  Fixes #62984.
11181
11182 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
11183
11184         * marshal.c: Fix problems with previous checkin.
11185
11186 2004-09-21    <vargaz@freemail.hu>
11187
11188         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
11189         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
11190
11191         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
11192
11193 2004-09-21  Geoff Norton <gnorton@customerdna.com>
11194
11195         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
11196         should only return a type for pointers, arrays, and passbyref types.
11197         Fixes bug #63841.
11198
11199 2004-09-21  Martin Baulig  <martin@ximian.com>
11200
11201         * domain.c (mono_debugger_check_runtime_version): New public
11202         function.
11203
11204         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
11205
11206 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
11207
11208         * reflection.c: Added missing sort to the declarative security 
11209         attributes table. MS implementation stops seeing the attributes if the
11210         token number regress in the table (as shown by ildasm and permview).
11211
11212 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
11213
11214         * object-internals.h (MonoReflectionModule): Add 'token' field.
11215         
11216         * reflection.c (mono_reflection_get_token): Add support for Module
11217         and Assembly.
11218         (mono_module_get_object): Set 'token' field.
11219         (mono_module_file_get_object): Set 'token' field.
11220
11221         * icall.c: Add new Assembly and Module icalls.
11222
11223         * appdomain.c: Bump corlib version.
11224
11225 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
11226
11227         * loader.h loader.c class.h class.c: Add helper functions for obtaining
11228         tokens of metadata objects.
11229
11230         * reflection.h reflection.c (mono_reflection_get_token): New function
11231         to obtain the token of a metadata object.
11232
11233         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
11234
11235 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
11236
11237         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
11238         
11239         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
11240
11241 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
11242
11243         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
11244         * object-internals.h: Added 3 MonoArray* members to MonoReflection
11245         AssemblyBuilder to access the permissions set in the class lib.
11246         * reflection.c: Added security attributes encoding step in 
11247         mono_image_build_metadata.
11248         * tabledefs.h: Added new security actions defined in 2.0:
11249         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
11250
11251 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
11252
11253         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
11254         macro parameter.
11255
11256 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
11257  
11258         * locales.c: nullify the ICU_collator member of CompareInfo when it is
11259           finalized. There where random SIGSEVs at program termination, when
11260           an object being finalized was trying to do a string comparison and
11261           the current culture was already finalized.
11262  
11263 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11264
11265         * threads.c: call thread_cleanup before finishing the thread if we get
11266         there.
11267
11268 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
11269
11270         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
11271         assemblies from the parent. Fixes #65665.
11272
11273 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
11274
11275         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
11276         modifiers.
11277
11278 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
11279
11280         * reflection.h: add prototype for mono_get_dbnull_object
11281         * reflection.c: add prototypes for get_default_param_value_blobs 
11282         and mono_get_object_from_blob for fussier compilers
11283
11284 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
11285  
11286         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
11287         false deadlock checks in class initialization.
11288  
11289 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
11290
11291         * image.c (mono_image_addref): Fix comment.
11292
11293         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
11294         possible.
11295
11296 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
11297
11298         * reflection.c (mono_param_get_objects): Modified to return
11299         ParameterInfo.DefaultValue object.
11300
11301         (get_default_param_value_blobs):
11302         (mono_get_object_from_blob):
11303         (mono_get_dbnull_object): New helper routines. 
11304
11305         * object.c (mono_get_constant_value_from_blob): New helper routine
11306         carved out from get_default_field_value ()
11307
11308         * object-internals.h (mono_get_constant_value_from_blob): Added
11309         function declaration.
11310
11311 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
11312
11313         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
11314         referenced assemblies. Fixes #62135.
11315
11316         * exception.h exception.c (mono_get_exception_file_not_found2): New
11317         helper function.
11318
11319 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
11320
11321         * class.h class.c: Add mono_type_get_underlying_type ().
11322
11323 2004-09-09  Geoff Norton <gnorton@customerndna.com>
11324
11325         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
11326         Fix GetTypes() to support dynamically created assemblies.
11327
11328 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
11329
11330         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
11331         
11332         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
11333         previous patch.
11334
11335         * reflection.h reflection.c loader.c: Allow dynamic construction of
11336         pinvoke methods. Fixes #65571.
11337         
11338         * reflection.c (mono_reflection_get_type): Revert previous change since
11339         it causes regressions.
11340
11341 2004-09-08  Martin Baulig  <martin@ximian.com>
11342
11343         * class.c (class_compute_field_layout): Don't call
11344         mono_class_layout_fields() for open generic instances.
11345
11346 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
11347         * threads.c appdomain.c: fix typo in GC macro
11348
11349 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11350
11351         * threads.c: don't call mono_thread_detach() in start_wrapper(),
11352         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
11353
11354 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
11355
11356         * image.c (mono_image_close): Applied patch from 
11357         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
11358         assembly is loaded multiple times from data.
11359         
11360         * image.c (mono_image_open): Fix warning.
11361
11362 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11363
11364         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
11365         once. Fixes #58334.
11366         
11367         * reflection.c (mono_reflection_create_runtime_class): Initialize
11368         klass->nested_classes. Fixes #61224.
11369
11370 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
11371
11372         * threads.c: sched_yield() on exit, to allow threads to quit.
11373
11374 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11375
11376         * object.c (mono_unhandled_exception): Remove leftover debug code.
11377
11378 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
11379
11380         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
11381
11382 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11383
11384         * marshal.c (emit_marshal_array): Really null terminate string arrays.
11385         
11386         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
11387
11388 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11389
11390         * marshal.c (emit_marshal_array): Null terminate string arrays.
11391         
11392         * marshal.c (raise_auto_layout_exception): Fix warning.
11393
11394         * reflection.c (mono_param_get_objects): Initialize the default value
11395         with DBNull.Value, not null. Fixes #62123.
11396
11397 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
11398
11399         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
11400         throw an exception with a cute explanation.
11401
11402 2004-09-06  Dick Porter  <dick@ximian.com>
11403
11404         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
11405         Close the new process's thread handle, as we don't use it.  The
11406         handle stays around forever otherwise.
11407
11408 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11409
11410         * object.c (arith_overflow): Fix warning.
11411
11412         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
11413         calling conventions in method refs. Fixes #65352.
11414
11415         * reflection.c: Fix warnings.
11416
11417 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
11418
11419         * icall.c: Add a new icall for Array.Clear
11420
11421 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
11422
11423         * object.c: When allocating an array, we have to throw
11424         an overflow exception if any of the lengths are < 0.
11425
11426 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11427
11428         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
11429         properly. Also move implementation of string array marshalling to 
11430         managed code. Fixes #42316.
11431
11432 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11433
11434         * assembly.c: provide more information when loading an assembly fails.
11435
11436 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11437
11438         * filewatcher.c: don't expect the development fam package to be
11439         installed.
11440
11441 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
11442
11443         * marshal.c: Make a copy of the signature cookie since it will be
11444         freed by the caller.
11445         
11446         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
11447
11448         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
11449
11450         * metadata.c (mono_metadata_free_marshal_spec): New function to free
11451         marshal specs.
11452
11453         * marshal.c: More refactoring.
11454         
11455         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
11456         smaller functions.
11457
11458 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
11459
11460         * object.c: In mono_message_invoke, fill the output parameter array after
11461           calling the managed method (it was done before the call). This fixes
11462           bug #59299.
11463
11464 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
11465
11466         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
11467         as well.
11468
11469 2004-09-02  Martin Baulig  <martin@ximian.com>
11470
11471         * class.c (mono_class_instance_size): Don't allow generic type
11472         definitions or open generic instances.
11473         (mono_class_array_element_size): If we're a value type, call
11474         mono_class_instance_size() on the original class.
11475
11476         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
11477         handle generic instances.
11478
11479         * mono-debug-debugger.c (write_type): Handle generic instances
11480         like classes.
11481
11482 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
11483
11484         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
11485         the allocation request fails. Fixes #65089.
11486
11487         * object.c (mono_runtime_free_method): Do not call mono_free_method.
11488         
11489         * object.c (mono_runtime_free_method): New function to free a dynamic
11490         method.
11491
11492         * marshal.c (mono_delegate_free_ftnptr): New function to free the
11493         delegate trampoline.
11494
11495         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
11496         with hasthis as dynamic,
11497
11498         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
11499
11500         * domain.c (mono_jit_info_table_remove): New function to remove an
11501         entry from the jit info table.
11502
11503         * class-internals.h (MonoMethod): Add 'dynamic' field.
11504
11505         * loader.c: Fix warnings.
11506
11507 2004-09-01  Martin Baulig  <martin@ximian.com>
11508
11509         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
11510         instead of mono_debugger_lock() because the latter one is a no-op
11511         unless running in the debugger.
11512
11513 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
11514
11515         * class.c (class_compute_field_layout): Classes with auto-layout or
11516         reference fields are not blittable.
11517         
11518 2004-09-01  Dick Porter  <dick@ximian.com>
11519
11520         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
11521         mono_image_get_filename() to get the assembly location.
11522
11523         * icall.c:
11524         * metadata.h: Fix compile warnings
11525
11526 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
11527
11528         * class.c (class_compute_field_layout): System.Object is blittable.
11529
11530         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
11531         as in/out. Fixes #59909.
11532
11533 2004-09-01  Martin Baulig  <martin@ximian.com>
11534
11535         * metadata.h (MONO_TYPE_ISREFERENCE): Call
11536         mono_metadata_generic_inst_is_valuetype() if we're a generic
11537         instance to check whether our underlying type is a reference type.
11538
11539 2004-09-01  Martin Baulig  <martin@ximian.com>
11540
11541         * metadata.c (mono_type_size): If we're a generic instance, call
11542         mono_class_value_size() for value types.
11543
11544 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
11545
11546         * marshal.c: Implement more custom marshalling functionality. Fixes
11547         #64915.
11548
11549 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
11550
11551         * mono-debug.c, debug-mono-symfile.c: add some locking love.
11552
11553 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
11554
11555         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
11556
11557         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
11558
11559         * icall.c: Fix some warnings.
11560
11561         * threads.c (abort_appdomain_thread): Fix unref errors.
11562         (mono_thread_current): Fix THREAD_DEBUG define.
11563
11564 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
11565
11566         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
11567
11568         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
11569
11570 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
11571
11572         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
11573         string arrays.
11574
11575 2004-08-28  Martin Baulig  <martin@ximian.com>
11576
11577         * metadata.c
11578         (mono_metadata_generic_inst_is_valuetype): New public function.
11579
11580         * metadata.h (MONO_TYPE_ISSTRUCT): Call
11581         mono_metadata_generic_inst_is_valuetype() if we're a generic
11582         instance to check whether our underlying type is a valuetype.
11583
11584 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
11585
11586         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
11587         #63768.
11588
11589 2004-08-25  Martin Baulig  <martin@ximian.com>
11590
11591         * loader.c (mono_get_method_from_token): Abstract methods can also
11592         be generic and thus have type parameters.
11593
11594         * metadata-internals.h
11595         (MonoDynamicImage): Added `GPtrArray *gen_params'.
11596
11597         * reflection.c (mono_image_get_generic_param_info): Don't create a
11598         metadata row, just add an entry to the `gen_params' array.
11599         (build_compressed_metadata): Sort the `gen_params' array and then
11600         actually create the metadata.
11601
11602 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11603
11604         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
11605
11606 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
11607
11608         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
11609
11610 2004-08-24  Martin Baulig  <martin@ximian.com>
11611
11612         * class.cs (mono_class_is_subclass_of): Like an interface, a
11613         generic instance also derives from System.Object.
11614
11615 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
11616
11617         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
11618         custom modifiers to be in any order. Fixes #61990.
11619
11620 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
11621
11622         * object.c: Register mono_object_new_fast icall.
11623         
11624         * object.c (mono_class_get_allocation_ftn): Return to calling
11625         mono_object_new_fast, since it seems faster to compute the object 
11626         size in unmanaged code than passing it as a parameter.
11627
11628         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
11629
11630         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
11631         this function with Boehm as the oom handler, so we don't have to check
11632         the result of GC_malloc.
11633
11634         * object.c: Remove checks for oom.
11635
11636         * object.h object.c (mono_class_get_allocation_ftn): New function to
11637         return the icall which can be used to allocate an instance of a given
11638         class. 
11639
11640         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
11641
11642         * class-internals.h: Add 'enabled' field.
11643
11644 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
11645
11646         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
11647
11648 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
11649         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
11650         value 0x0010.
11651
11652 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
11653
11654         * appdomain.c: use the Tls function for appdomain too,
11655         at Zoltan's request. Actually return in mono_context_get
11656
11657         * appdomain.c, profiler.c, threads.c: use __thread
11658
11659 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
11660
11661         * appdomain.c threads.c: Call GC_CreateThread on windows.
11662
11663         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
11664         multiple libraries since this don't work on windows.
11665
11666 2004-08-18  Martin Baulig  <martin@ximian.com>
11667
11668         * class-internals.h
11669         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
11670         MonoMethodHeader.
11671
11672         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
11673         MonoMethodNormal since we also need it for abstract and interface
11674         methods.
11675
11676         * reflection.c
11677         (build_compressed_metadata): Sort the GenericParam table.
11678         (mono_image_create_token): Added `gboolean create_methodspec'
11679         argument; this is false when generating a MethodImpl token.
11680         (reflection_methodbuilder_to_mono_method): Abstract and interface
11681         methods may also have generic parameters.
11682
11683 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
11684
11685         * appdomain.c: thread local alloc
11686
11687 2004-08-17  Martin Baulig  <martin@ximian.com>
11688
11689         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
11690
11691         * icall.c
11692         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
11693         argument.
11694
11695         * class.c (mono_type_get_full_name): New public function.
11696         (mono_type_get_name): Don't include the type arguments.
11697
11698 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
11699
11700         * Makefile.am: Build static versions of libmetadata and libmonoruntime
11701         for inclusion into the mono executable.
11702
11703 2004-08-16  Martin Baulig  <martin@ximian.com>
11704
11705         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
11706         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
11707
11708 2004-08-14  Martin Baulig  <martin@ximian.com>
11709
11710         * class.c (dup_type): Also copy the `byref' field.
11711
11712 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
11713
11714         * reflection.c (create_dynamic_mono_image): Revert the last change 
11715         since it breaks bootstrap.
11716
11717 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
11718
11719         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
11720
11721         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
11722         not free them with g_free.
11723
11724 2004-08-11  Martin Baulig  <martin@ximian.com>
11725
11726         * reflection.c (mono_reflection_setup_internal_class): Also call
11727         mono_class_setup_mono_type() if we already have a `tb->type.type'.
11728
11729 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
11730
11731         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
11732         called during default (first) AppDomain creation. Keep track of
11733         Evidence when loading assemblies.
11734
11735 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
11736
11737         * opcodes.c, opcodes.h: reduce runtime relocations.
11738
11739 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
11740
11741         * culture-info.h, locales.c: fixes and chages to sue the new
11742         optimized format of the locale data.
11743         * culture-info-tables.h: regenerated.
11744
11745 2004-08-06  Geoff Norton <gnorton@customerdna.com>
11746         
11747         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
11748
11749 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
11750
11751         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
11752         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
11753         * domain-internals.h: icall declaration.
11754         * icall.c: icall registration.
11755         * object-internals.h: New fields in MonoAssembly for CAS.
11756
11757 2004-08-05  Duncan Mak  <duncan@ximian.com>
11758
11759         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
11760         CEE_LDELEM_ANY.
11761
11762 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
11763
11764         * reflection.c: fix to deal with object[] arrays in custom ctors
11765         (bug #62550).
11766
11767 2004-08-05  Martin Baulig  <martin@ximian.com>
11768
11769         * class.c (mono_class_array_element_size): Added support for
11770         generic instances and correctly handle "recursive" types.
11771
11772 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
11773
11774         * assembly.c: Fix warnings.
11775
11776 2004-08-04  Martin Baulig  <martin@ximian.com>
11777
11778         * class.c
11779         (mono_type_get_name_recurse): Added `gboolean include_arity'
11780         argument specifying whether or not we should include the generic
11781         arity in the type name.
11782         (_mono_type_get_name): New static function.
11783         (mono_class_setup_vtable): If we're a generic instance, don't
11784         include the generic arity in the names of explicit method
11785         implementations.        
11786
11787 2004-08-03  Martin Baulig  <martin@ximian.com>
11788
11789         * class.c (mono_type_get_name_recurse): Enclose the generic type
11790         arguments in `<', '>'.
11791
11792 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11793
11794         * gc.c: make GC warning messages use the trace API, they are just
11795         noise to most of the users.
11796
11797 2004-08-03  Martin Baulig  <martin@ximian.com>
11798
11799         * debug-mono-symfile.c (read_string): Correctly read the string.
11800
11801 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
11802
11803         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
11804         
11805         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
11806         icalls.
11807         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
11808
11809 2004-07-30  Martin Baulig  <martin@ximian.com>
11810
11811         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
11812         Reflect latest symbol writer changes.   
11813
11814 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
11815
11816         * object.c: always create an object if null is passed
11817         to Invoke() where a valuetype is expected.
11818
11819 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
11820
11821         * marshal.c (mono_marshal_init): make managed
11822         signatures match native ones better for 64bits.
11823
11824 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11825
11826         * appdomain.c: hack to build correctly the private bin path on windows.
11827         Fixes bug #61991.
11828
11829 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
11830
11831         * assembly.c: Load mscorlib from the correct framework directory
11832           (mono/<version>/mscorlib.dll).
11833         * appdomain.h: Added prototypes for new functions.
11834         * internals.h: Added some prototypes.
11835         * domain.c: When initializing the runtime, get from the executable and
11836           the configuration files the runtime version that the app supports.
11837           Added support methods for reading app.exe.config. Added list of versions
11838           supported by the JIT. Added two new methods: mono_init_from_assembly,
11839           which initializes the runtime and determines the required version from
11840           the provided exe file, and mono_init_version, which initializes
11841           the runtime using the provided version.
11842         * icall.c: Get machine.config from version-specific directory.
11843         * reflection.c: When generating an image, embed the version number
11844           of the current runtime.
11845
11846 2004-07-28  Dick Porter  <dick@ximian.com>
11847
11848         * socket-io.c
11849         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
11850         returned sockaddr size before creating the remote address object.
11851         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
11852         61608.
11853
11854 2004-07-28  Dick Porter  <dick@ximian.com>
11855
11856         * locales.c (string_invariant_compare_char): Fix invariant char
11857         compares between upper and lower cases.  Fixes bug 61458.
11858
11859 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
11860         
11861         * marshal.c: actually cache stelem.ref wrappers.
11862         
11863 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
11864
11865         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
11866         sections and remove the mono_cli_rva_map () function.
11867
11868 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
11869
11870         * debug-mono-symfile.c: fix one more endianess issue, from a patch
11871         by Geoff Norton (<gnorton@customerdna.com>).
11872
11873 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11874
11875         * class.c: fix class loads for pointer types (typeof(int) !=
11876         typeof(int*)).
11877
11878 2004-07-27  Martin Baulig  <martin@ximian.com>
11879
11880         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
11881         reading the debugging information from an external ".mdb" file.
11882
11883 2004-07-24  Martin Baulig  <martin@ximian.com>
11884
11885         * reflection.c (mono_image_get_type_info): Only write a class
11886         layout entry if we actually have a size or a packing size.
11887
11888 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
11889
11890         * reflection.c (type_get_fully_qualified_name): 
11891         insert cast to get type checking of ?: with non-gcc compilers
11892
11893 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
11894
11895         * rand.c: use g_getenv for both lookups of
11896         MONO_EGD_SOCKET
11897
11898 2004-07-17  Martin Baulig  <martin@ximian.com>
11899
11900         * reflection.c (mono_reflection_bind_generic_method_parameters):
11901         Set `gmethod->reflection_info'.
11902
11903 2004-07-17  Martin Baulig  <martin@ximian.com>
11904
11905         * class.c (mono_class_create_from_typedef): Insert the newly
11906         created class into the hash table before computing the interfaces
11907         since we could be called recursively.
11908
11909 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
11910
11911         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
11912         function to implement stelem.ref in managed code
11913         * class-internals.h, debug-helpers.c: a new wrapper type
11914         for the above.
11915
11916 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
11917
11918         * gc.c: allow GC handles to work even when no GC is compiled in.
11919         Fix part of bug #61134 (GetAddrOfPinnedObject).
11920
11921 2004-07-13  Peter Williams  <peter@newton.cx>
11922  
11923         * process.c (complete_path): Make sure we don't attempt to execute
11924         directories.
11925  
11926 2004-07-12  Geoff Norton <gnorton@customerdna.com>
11927
11928         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
11929           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
11930           and will add/subtract the hour if needed
11931
11932 2004-07-12  Martin Baulig  <martin@ximian.com>
11933
11934         * reflection.c (mono_field_get_object): If we have
11935         `field->generic_info', take the attributes from
11936         `field->generic_info->generic_type'.    
11937
11938 2004-07-12  Martin Baulig  <martin@ximian.com>
11939
11940         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
11941         This function must be called before initializing the runtime.
11942         (mono_debug_init_1): New function; call this after initializing
11943         the runtime, but before loading the assembly.  It tells the
11944         debugger to load corlib and the builtin types.
11945
11946         * mono-debug-debugger.c: Did some larger changes in the debugging
11947         code; support recursive class declarations, make sure we actually
11948         add all classes.
11949
11950 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11951
11952         * debug-helpers.c: undo my previous patch and fixed the real issue in
11953         ../mini/exceptions-x86.c
11954
11955 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11956
11957         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
11958         when no HOME env. variable was set and a NullRef was thrown in a .cctor
11959         called from other .cctors.
11960
11961 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
11962
11963         * loader.c: Removed the mono_loader_wine_init hack now that we are
11964         doing a managed version of Windows.Forms.
11965
11966 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
11967
11968         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
11969         threadpool.c, threads.c: remove static data from rootset.
11970
11971 2004-07-09  Dick Porter  <dick@ximian.com>
11972
11973         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
11974         Don't do any more processing if the matched length was 0.  It was
11975         increasing the size of the string before.  Fixes bug 61167.
11976
11977 2004-07-09  Dick Porter  <dick@ximian.com>
11978
11979         * socket-io.h:
11980         * socket-io.c
11981         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
11982         Add support for SO_PEERCRED if its available.
11983
11984 2004-07-09  Peter Bartok <pbartok@novell.com>
11985         * loader.c: winelib.exe.so error message is now only displayed if
11986         MONO_DEBUG is set. To help us avoid questions when people are trying
11987         out the new Managed.Windows.Forms.
11988
11989 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
11990
11991         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
11992         for isinst and castclass wrappers.
11993
11994         * class-internals.h icall.c: Move registration and lookup of JIT icalls
11995         to libmetadata from the JIT, so they could be used by the marshalling
11996         code and the interpreter.
11997
11998         * marshal.c: Register marshalling related JIT icalls here instead of
11999         in mini.c. Use CEE_MONO_ICALL instead of the family of 
12000         CEE_MONO_PROC<x> opcodes to call marshalling functions.
12001
12002         * metadata.h: Remove unneeded marshalling conversions.
12003
12004         * opcodes.c: Update for new opcodes.
12005         
12006 2004-07-08  Martin Baulig  <martin@ximian.com>
12007
12008         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
12009         (mono_debug_get_domain_data): Make this function static.
12010
12011 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
12012
12013         * gc.c, object.h: add nice GC handle API for embedders.
12014
12015 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
12016
12017         * reflection.c: more changes for the new api
12018
12019         * object.c: When we reflect on a field w/ a constant value, it
12020         will not have a memory location, so we must access metadata. Also,
12021         allow easier reading of strings so that we can read them from
12022         the constant data.
12023
12024         * class.c (mono_class_layout_fields): no need for literal fields here.
12025
12026         * class-internals.h: api changes for const fields
12027
12028         * icall.c (ves_icall_get_enum_info): use new apis for const fields
12029
12030 2004-07-06  Martin Baulig  <martin@ximian.com>
12031
12032         * mono-debug.h: Increment version number to 44.
12033
12034         * mono-debug.c (mono_debug_add_wrapper): The second argument is
12035         now a gpointer, rewrote this whole method.
12036
12037         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
12038         function.  Add information about the wrapper in a new "misc table".
12039
12040         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
12041         for the new misc table.
12042
12043 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
12044
12045         * metadata-internals.h image.c: Add a cache for helper signatures.
12046
12047         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
12048
12049 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
12050
12051         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
12052         delegates from a delegate. Fixes #61033.
12053         
12054         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
12055         marshalling of stringbuilder arrays. Fixes #59900.
12056
12057 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
12058
12059         * icall.c: Add EnumBuilder:setup_enum_type icall.
12060
12061 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
12062
12063         * icall.c: Added a new icall for the property version of
12064         OffsetOfStringData.
12065
12066 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
12067
12068         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
12069         it has a constant size across platforms.
12070
12071         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
12072         stack trace.
12073
12074 2004-06-29  Martin Baulig  <martin@ximian.com>
12075
12076         * mono-debug.c (mono_debug_add_method): Protect the whole function
12077         in mono_debugger_lock(), not just parts of it.
12078
12079 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
12080
12081         * reflection.c: make sure padding bytes in heaps are zeroed.
12082
12083 2004-06-24  David Waite  <mass@akuma.org>
12084
12085         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
12086         image.c, loader.c, locales.c, marshal.c, metadata.c,
12087         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
12088         string-icalls.c, threads.c: change to C90-style comments from C99 /
12089         C++ -style
12090
12091 2004-06-24  Dick Porter  <dick@ximian.com>
12092
12093         * threads.c
12094         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
12095         return createdNew.  Fixes bug 60412.
12096
12097         * threads-types.h: 
12098         * icall.c: Add createdNew parameter to CreateMutex icall
12099
12100 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
12101
12102         * reflection.c, object-internals.h: save default value in params.
12103
12104 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12105
12106         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
12107         no need to build a new path combining that with the application base.
12108         Fixes bug #60442.
12109
12110 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
12111
12112         * reflection.c: fixed minor standard compliance issues.
12113
12114 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
12115
12116         * reflection.c: fixed issue with encoding some custom attributes
12117         (arrays in properties and fields, bug #60411).
12118
12119 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12120
12121         * reflection.c: fix start address when copying the public key token.
12122
12123 2004-06-23  Martin Baulig  <martin@ximian.com>
12124
12125         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
12126         the `exc' object in a static object to put it into the GC's root set.
12127
12128 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
12129
12130         * reflection.c: make mono_reflection_setup_internal_class ()
12131         callable a second time to setup a new parent class.
12132
12133 2004-06-23  Dick Porter  <dick@ximian.com>
12134
12135         * threads.c: Check for WAIT_IO_COMPLETION return values.
12136
12137 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
12138
12139         * appdomain.c: Removed the g_free on the public key token. Now copy 
12140         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
12141         * assembly.c: Added public key token string value when loading 
12142         assemblies. Fix bug #60439.
12143         * icall.c: Added missing informations (like public key) in 
12144         GetReferencedAssemblies. Fix #60519.
12145         * image.h: Changed definition for public key token from const char*
12146         public_tok_value to guchar public_key_token [17];
12147         * reflection.c: Updated for changes to public key token.
12148
12149 2004-06-22  Lluis Sanchez Gual
12150
12151         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
12152         for the field in base classes.
12153
12154 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
12155
12156         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
12157         mark headers as not supported, they are installed only for use by the
12158         debugger.
12159
12160 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
12161
12162         * *.c, *.h: avoid namespace pollution in public headers.
12163
12164 2004-06-21  Martin Baulig  <martin@ximian.com>
12165
12166         * exception.c (mono_get_exception_security): It's in
12167         "System.Security", not in "System".
12168
12169         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
12170         the exception classes.
12171
12172 2004-06-21  Martin Baulig  <martin@ximian.com>
12173
12174         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
12175         Protect the exception object from being finalized.
12176
12177 2004-06-21  Martin Baulig  <martin@ximian.com>
12178
12179         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
12180         public function.
12181
12182 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
12183
12184         * reflection.c: Load the assembly in mono_reflection_type_from_name,
12185         if it was not loaded before. Fix parts of #60439.
12186
12187 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
12188
12189         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
12190         code that was broken since Ben's change: wrappers are now
12191         dependent on the method signature only again.
12192
12193 2004-06-21  Martin Baulig  <martin@ximian.com>
12194
12195         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
12196         added interface support.
12197
12198 2004-06-21  Martin Baulig  <martin@ximian.com>
12199
12200         * class.c (mono_vtable_get_static_field_data): New public method.
12201
12202 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
12203
12204         * filewatcher.c : Windows build fix to be compliant with API changes.
12205
12206 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
12207
12208         * class.h, class.c: more accessors.
12209         * metadata.h, metadata.c: prepare for hiding MonoType and
12210         MonoMethodSignature: people should use the accessors from now on
12211         outside of the tree.
12212
12213 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
12214
12215         * *.c, *.h: more API cleanups.
12216
12217 2004-06-18  Jackson Harper  <jackson@ximian.com>
12218
12219         * assembly.c: Trace loading assemblies.
12220         * loader.c: Trace loading native libraries.
12221         * mono-config.c: Trace loading config files.
12222         
12223 2004-06-18  Dick Porter  <dick@ximian.com>
12224
12225         * locales.c: Tell ICU the lengths of strings, it can cope with
12226         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
12227
12228 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
12229
12230         * image.c: swapped name/filename;
12231
12232 2004-06-18  Martin Baulig  <martin@ximian.com>
12233
12234         * mono-debug-debugger.c (write_class): Write the parent class at
12235         the end of the header.
12236
12237 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
12238
12239         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
12240
12241 2004-06-17  Raja R Harinath  <rharinath@novell.com>
12242
12243         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
12244         (bundle_obj): New conditional define.
12245         (BUILT_SOURCES): Remove.
12246         ($(bundle_srcs)): Make parallel-make safe.
12247         (libmonoruntime_la_LIBADD): Make unconditional.
12248         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
12249         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
12250
12251 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
12252
12253         * culture-info-tables.h: It was inconsistent with the latest
12254           supp info files.
12255
12256 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
12257
12258         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
12259         be loaded.
12260
12261         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
12262         with gcc 2.95.
12263
12264 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
12265
12266         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
12267         cleaned up public header threads.h.
12268
12269 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
12270
12271         * Makefile.am, *.c, *.h: more API cleanups.
12272
12273 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
12274
12275         * Makefile.am: removed monosn from compilation.
12276         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
12277         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
12278         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
12279         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
12280         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
12281         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
12282
12283 2004-06-15  Jackson Harper  <jackson@ximian.com>
12284
12285         * assembly.c: Make locales lower case when searching the GAC for
12286         assemblies. gacutil will always make locales lowercase when
12287         installing so this effectively makes them case insensitive.
12288         
12289 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
12290
12291         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
12292         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
12293           parameter which allows to choose whether the wait can be interrupted or 
12294           not. Also added the method mono_monitor_enter(), which locks the monitor
12295           using an infinite wait and without allowing interruption.
12296           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
12297           interrupted.
12298         * object.h: Added new fields in MonoThread. suspend_event holds the event
12299           used to susped/resume the thread. synch_lock is the lock object to use for
12300           modifying the thread state.
12301         * threads.c: Use the new synch_lock object for locking, instead of "this",
12302           which can generate deadlocks.
12303           Moved thread state change in Thread.Sleep and Thread.Join from managed
12304           to unmanaged code. This avoids a deadlock when the thread was suspended
12305           just after acquiring the thread lock.
12306           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
12307           Implemented Thread.Suspend using an event instead of ThreadSuspend,
12308           which is not fully implemented in the io-layer.
12309         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
12310
12311 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
12312
12313         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
12314         threads-types.h: more API cleanups.
12315
12316 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
12317
12318         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
12319         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
12320         threadpool.c, threads.c: first pass at the exported API cleanup.
12321
12322 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
12323
12324         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
12325
12326 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12327
12328         * icall.c: added internalGetHome.
12329
12330 2004-06-14  Dick Porter  <dick@ximian.com>
12331
12332         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
12333         possible to return successfully when '.' or '..' were the only
12334         entries in a directory, but were skipped.  The MonoIOStat was not
12335         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
12336         Fixes bug 59574.
12337
12338 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
12339
12340         * reflection.c: make binaries run on .Net 1.1 by default.
12341
12342 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
12343
12344         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
12345
12346 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
12347
12348         * marshal.c: keep track of struct size with explicit layout
12349         (bug #59979).
12350
12351 2004-06-12  Martin Baulig  <martin@ximian.com>
12352
12353         * mono-debug-debugger.c: Comment out a debugging g_message().
12354
12355 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
12356
12357         * reflection.c, reflection.h: do not free custom attrs that are cached.
12358         * icall.c: use braces to make code clearer.
12359
12360 2004-06-11  Martin Baulig  <martin@ximian.com>
12361
12362         * class.h (MonoInflatedField): New type.
12363         (MonoClassField): Replaced `MonoType *generic_type' with
12364         `MonoInflatedField *generic_info'.
12365
12366         * icall.c
12367         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
12368
12369 2004-06-11  Martin Baulig  <martin@ximian.com>
12370
12371         * reflection.c (mono_image_create_method_token): Correctly encode
12372         varargs methods.
12373
12374 2004-06-11  Martin Baulig  <martin@ximian.com>
12375
12376         * metadata.c (mono_metadata_parse_method_signature): When parsing
12377         a MethodDef which has VarArgs, also set sentinelpos if we don't
12378         have any parameters.
12379
12380 2004-06-11  Martin Baulig  <martin@ximian.com>
12381
12382         * verify.c (mono_method_verify): In CEE_CALL, use
12383         mono_method_get_signature() to get the method's signature, unless
12384         we're a PInvoke method.
12385
12386 2004-06-10  Jackson Harper  <jackson@ximian.com>
12387
12388         * assembly.c: Use <path>/lib/mono/gac for the extra paths
12389         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
12390         logical name as the supplied path is just a prefix to the gac not
12391         the direct path to it.
12392         
12393 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
12394
12395         * reflection.c: make the token for a created method match
12396         the token of the MethodBuilder it was created from
12397         (IKVM requires this behaviour now).
12398
12399 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
12400
12401         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
12402         reflection.c, socket-io.c: leak fixes.
12403
12404 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
12405
12406         * icall.c: handle sentinel pos in vararg methods in position different
12407         from 0.
12408
12409 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12410
12411         * culture-info-tables.h: freshly generated.
12412
12413 2004-06-09  Martin Baulig  <martin@ximian.com>
12414
12415         * loader.c (mono_get_method_constrained): Call `mono_class_init
12416         (constrained_class)'.   
12417
12418 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
12419
12420         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
12421         any methods. Fixes #59629.
12422
12423 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12424
12425         * culture-info-tables.h: reflecting locale-builder updates.
12426
12427 2004-06-08  Dick Porter  <dick@ximian.com>
12428
12429         * object.h:
12430         * locales.c: Fixed compile warnings, including a real bug in
12431         CompareInfo_internal_compare.
12432         
12433 2004-06-08  Dick Porter  <dick@ximian.com>
12434
12435         * locales.c
12436         (ves_icall_System_Globalization_CompareInfo_internal_index):
12437         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
12438         Double-check the resuls of usearches, because ICU currently
12439         ignores most of the collator settings here.  Fixes bug 59720.
12440         
12441 2004-06-08  Dick Porter  <dick@ximian.com>
12442
12443         * locales.c
12444         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
12445         Fix memory leak and segfault-causing typo.  No idea how this one
12446         lasted so long without being noticed.
12447
12448 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
12449
12450         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
12451         any methods. Fixes #59629.
12452
12453 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12454
12455         * assembly.c:
12456         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
12457         own the critical section before). Removed dead code (that's done
12458         in the preload hook).
12459
12460         (mono_assembly_load_with_partial_name): call the preload hook.
12461
12462 2004-06-08  Martin Baulig  <martin@ximian.com>
12463
12464         * metadata.c (mono_metadata_signature_alloc): Default
12465         `sentinelpos' to -1.
12466
12467         * reflection.c (mono_image_get_array_token): Likewise.
12468
12469 2004-06-08  Martin Baulig  <martin@ximian.com>
12470
12471         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
12472
12473         * metadata.c (mono_metadata_parse_method_signature): When parsing
12474         a MethodDef which has VarArgs, set sentinelpos.
12475
12476         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
12477         `gint16' since we're using -1 for non-varargs methods.
12478
12479         * reflection.c
12480         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
12481         (method_encode_signature): Added varargs support.
12482         (method_builder_encode_signature): Likewise.
12483         (mono_image_get_varargs_method_token): New static method.
12484         (mono_image_create_method_token): New public method; this is
12485         called via an icall instead of mono_image_create_token() when
12486         calling a varargs method.       
12487
12488 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
12489
12490         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
12491
12492 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12493
12494         * culture-info-tables.h : Reflecting the latest locale-builder that
12495           fixed empty array representation ({} to {0}).
12496
12497 2004-06-07  Jackson Harper  <jackson@ximian.com>
12498
12499         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
12500         looking up extra gac paths. This allows MONO_GAC_PATH to act
12501         exactly like a prefix.
12502         
12503 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
12504
12505         * reflection.c (mono_reflection_type_from_name): Make a copy of the
12506         type name before modifying it. Fixes #59405.
12507
12508 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12509
12510         * culture-info.h: added fields for "all datetime patterns".
12511         * locales.c: (  ves_icall_System_Globalization_CultureInfo
12512           _construct_datetime_format ()): fill xxx_patterns fields.
12513         * object.h: added fields for "all datetime patterns" to
12514           MonoDateTimeFormatInfo.
12515         * culture-info-tables.h: reflecting locale-builder updates.
12516
12517 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
12518
12519         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
12520         the event has no add and remove methods. Fixes #59629.
12521
12522 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
12523
12524         * object.c: Fixed possible integer overflow when allocating large
12525         strings.
12526
12527 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
12528
12529         * culture-info-tables.h: reflecting locale-builder updates.
12530
12531 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
12532
12533         * culture-info-tables.h: reflecting locale-builder updates.
12534
12535 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
12536
12537         * culture-info-tables.h: reflecting locale-builder updates.
12538
12539 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
12540
12541         * threads.c: Made Thread.Sleep abortable.
12542
12543 2004-06-02  Martin Baulig  <martin@ximian.com>
12544
12545         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
12546
12547         * debug-mono-symfile.h: Bumped symbol file version number to 37.
12548
12549 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
12550
12551         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
12552
12553 2004-05-30  Jackson Harper  <jackson@ximian.com>
12554
12555         * reflection.c: Do not hardcode assembly versions or public key
12556         tokens anymore. All of this except the corlib section was dead
12557         code anyways.
12558         
12559 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
12560
12561         * object.c (mono_runtime_invoke_array): Automatically create boxed
12562         objects for byref valuetypes if needed. Fixes #59300.
12563         
12564         * object.c (mono_method_return_message_restore): Handle 
12565         MONO_TYPE_OBJECT as well.
12566
12567 2004-05-28  Jackson Harper  <jackson@ximian.com>
12568
12569         * reflection.c: The modified type encoding was causing build
12570         problems. Reverted for now.
12571         
12572 2004-05-28  Jackson Harper  <jackson@ximian.com>
12573
12574         * reflection.c/h: Take an assembly ref so that we dont create
12575         fully qualified names when encoding types in the same assembly as
12576         the custom attribute being emitted.
12577         * appdomain.c: Increment version number.
12578         
12579 2004-05-26  Duncan Mak  <duncan@ximian.com>
12580
12581         * icall.c
12582         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
12583         Set the full version number (major, minor, build, revision).
12584
12585 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
12586
12587         * marshal.c (emit_struct_conv): increment src/dst after blit
12588         (mono_marshal_get_managed_wrapper,
12589         mono_marshal_get_native_wrapper): make sure we have marshalling
12590         info before marshalling params (info computation affects
12591         blittable)
12592
12593         * class.c (class_compute_field_layout): correctly deal with
12594         blittable
12595         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
12596         value types (as per what windows dows by default)
12597         (mono_class_setup_mono_type): System.ValueType is blittable
12598         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
12599         blittable
12600
12601         * marshal.c (mono_marshal_load_type_info): flag types  as
12602         non-blittable if the native layout doesn't match the managed
12603         layout
12604
12605 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12606
12607         * appdomain.c: don't add stuff in the private search path that is
12608         above the application base. If application base is not set, there's
12609         no private search path.
12610
12611 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
12612
12613         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
12614         byref struct arguments in native->managed marshalling.
12615
12616 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
12617
12618         * marshal.c (mono_marshal_get_runtime_invoke): correctly
12619         cache methods using signature (special case for methods
12620         that are value type or string class)
12621         
12622         * image.c (mono_image_close): clean up allocated GSList's
12623         in runtime_invoke_cache.
12624
12625 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12626
12627         * mono-config.c: set the correct path for mono_cfg_dir on windows when
12628         there's no MONO_CFG_DIR environment variable defined.
12629
12630 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12631
12632         * threads.c: windows version must be >= 0x0500 to include OpenThread.
12633
12634 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
12635
12636         * threadpool.c: Really wait for 500ms after the async call, even if the wait
12637           is interrumped.
12638         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
12639           before waiting for it, and call CloseHandle after the wait to unref it.
12640           This will make sure that handles are not disposed too early.
12641
12642 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12643
12644         * appdomain.c:
12645         * appdomain.h:
12646         * icall.c: removed
12647         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
12648         needed now.
12649
12650         * object.c: se the application_base only for the domain that runs
12651         Main. Fixes bug #59216,
12652
12653 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12654
12655         * appdomain.c:
12656         * object.c: only the domain in which Main is run have
12657         SetupInformation.ConfigurationFile set, so moved a few lines from
12658         appdomain.c to object.c.
12659
12660 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12661
12662         * appdomain.c: we tried to load [name].(dll|exe), but according
12663         to bug #57710, we must also try [culture]/[name].(dll|exe) and
12664         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
12665         There's a test case attached to bug #58922.
12666
12667 2004-05-27  Dick Porter  <dick@ximian.com>
12668
12669         * icall.c:
12670         * file-io.c: Implemented icalls for locking and unlocking regions
12671         in a file.
12672         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
12673         FALSE on error (fixes both compiler warning and real bug.)
12674
12675 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
12676
12677         * culture-info-tables.h: reflecting locale-builder updates.
12678
12679           (Added missing ChangeLog entry for 05/26)
12680
12681 2004-05-27  Jackson Harper  <jackson@ximian.com>
12682
12683         * locales.c: Fix some cut and paste errors.
12684         
12685 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12686
12687         * mono-config.c: set the correct path for config. directory on windows.
12688
12689 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
12690
12691         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
12692           on win32.
12693
12694 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
12695
12696         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
12697         from pinvoke functions.
12698         
12699         * marshal.c (mono_ftnptr_to_delegate): Implement this.
12700
12701 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
12702
12703         * culture-info-tables.h: reflecting locale-builder updates.
12704
12705 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
12706
12707         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
12708         #59086.
12709
12710 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
12711
12712         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
12713         * icall.c: Modified icalls for RNG.
12714         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
12715         Windows (CryptoAPI).
12716
12717 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
12718
12719         * locales.c: Fix build.
12720
12721 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
12722
12723         * culture-info-tables.h: reflecting locale-builder updates.
12724
12725 2004-05-25  Jackson Harper  <jackson@ximian.com>
12726
12727         * locales.c: When creating the current culture use the $LANGs
12728         specific culture. So DateTimeFormat and NumberFormat entries are created.
12729         
12730 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
12731
12732         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
12733         a char array as parameter.
12734
12735 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
12736
12737         * image.c: In mono_image_open(), always use an absolute path name to
12738           look for already loaded images.
12739
12740 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
12741
12742         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
12743         missing in the windows build (like older cygwin include files).
12744
12745 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
12746
12747         * icall.c: Fixed check for possible integer overflow in Buffer_
12748         BlockCopy icall. Replaced comments style // by /* */.
12749
12750 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
12751
12752         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
12753         
12754         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
12755         check after MONO_VTADDR. Fixes pinvoke2.exe.
12756
12757         * marshal.h marshal.c metadata.h: Add beginnings of support for
12758         ftnptr -> delegate marshalling.
12759
12760 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
12761
12762         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
12763         * threads.c: Fix warnings.
12764
12765 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
12766
12767         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
12768         * icall.c: Registered icalls for Suspend and Resume.
12769         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
12770           Thread.Abort.
12771         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
12772         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
12773         * process.c: Use WaitForSingleObjectEx.
12774         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
12775           checkpoints.
12776         * threads.c, threads.h: Make use of new Ex wait methods. Improved
12777           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
12778           for Suspend and Resume. Added new mono_thread_stop, used for stoping
12779           background threads. Added basic support for Abort in Windows.
12780           Start new threads using a managed delegate invoke wrapper. This wrapper
12781           has an interruption checkpoint that is needed since an interruption
12782           can be requested before the thread leaves the unmanaged code that starts 
12783           the thread.
12784         * marshal.c: Added interruption checkpoint after every native call, and
12785           also before managed calls for wrappers called from unmanaged code to
12786           go into managed code.
12787         * object.h: Added new field in MonoThread to keep track of interruption
12788           requests.
12789
12790 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
12791
12792         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
12793         calls.
12794
12795 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12796
12797         * appdomain.c:
12798         * assembly.c:
12799         * gc.c:
12800         * locales.c:
12801         * mono-config.c:
12802         * rand.c: getenv -> g_getenv (windows!)
12803
12804         * process.c: complete_path is also used on non-windows platforms.
12805
12806 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12807
12808         * icall.c: new signature for Process_Start.
12809
12810         * process.[ch]: new signature for Process_Start. If we're on windows
12811         and UseShellExecute is false, we have to search for the program by
12812         ourselves if we don't get a full path.
12813
12814 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
12815
12816         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
12817         marshalling and call CleanUpNativeData if needed. Fixes #58646.
12818
12819 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12820
12821         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
12822         Fixes bug #58373.
12823
12824 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12825
12826         * process.c: use double quotes to quote program name and arguments on
12827         windows. Fixes bug #58575.
12828
12829 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12830
12831         * file-io.c: don't return "." and ".." when using windows Find*File.
12832
12833 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
12834
12835         * marshal.c: Don't pass wrappers to message init because method 
12836         addressed used to lookup metadata. part of remoting[2|3] fix.
12837
12838 2004-05-15  Jackson Harper  <jackson@ximian.com>
12839
12840         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
12841         path is essentially the same as MONO_PATH except that it points to
12842         GACs instead of lib directories.
12843         * loader.h: The user gac is gone so we dont need function to
12844         enable/disable it.
12845         * mono-config.c: user gac option is now gone.
12846         
12847 2004-05-15  Jackson Harper  <jackson@ximian.com>
12848
12849         * culture-info.h: Make defines more consistent, add calendar data
12850         to the culture info table.
12851         * culture-info-tables.h: Add basic calendar data. Basically
12852         everyone gets default gregorian until all the data is
12853         updated.
12854         * locales.c: Use the new consistent defines. Set calendar data for
12855         culture info objects.
12856         * object.h: add a field for calendar data to CultureInfo
12857         
12858 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
12859
12860         * image.c: image->runtime_invoke_cache is keyed on signatures now.
12861         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
12862         a signature.
12863         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
12864         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
12865         an extra param that is the pointer of the method to invoke. The IL for
12866         the invoke method is no longer specific to the method, but to the
12867         signature of the method. Thus, we can share the same code for multiple
12868         methods. This reduces the number of methods that have to be compiled.
12869
12870 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
12871
12872         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
12873
12874         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12875
12876         * icall.c: Optimize Buffer.BlockCopy.
12877
12878 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12879
12880         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
12881         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
12882         quote). Changed them to "MMMM yyyy".
12883
12884 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
12885
12886         * rand.c
12887         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
12888
12889 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
12890
12891         * reflection.h: Updated after changes to managed structures.
12892
12893         * appdomain.c: Bump corlib version.
12894
12895 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12896
12897         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
12898         windows.
12899
12900 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12901
12902         * Makefile.am: link to ../os/libmonoos.la on windows.
12903
12904         * assembly.c:
12905                 -If MONO_DEBUG, warn about non-existing directories in
12906                 MONO_PATH.
12907                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
12908                 compile time variable.
12909                 -Removed init_default_path and call mono_set_rootdir from
12910                 libmonoos.a instead (windows only).
12911
12912         * assembly.h: declare mono_assembly_getrootdir().
12913
12914         * domain.c:
12915         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
12916
12917         * loader.c: s/getenv/g_getenv/
12918
12919 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
12920
12921         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
12922
12923         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
12924
12925         * metadata.h: Add new marshalling conversions.
12926
12927         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
12928         function.
12929
12930         * reflection.c (mono_reflection_get_type): Lookup the type in all
12931         modules of a multi-module assembly. Fixes #58291.
12932
12933 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
12934
12935         * threads.c: Before aborting a background, set the StopRequested
12936         state.  This avoids throwing the Abort exception.
12937         In mono_thread_manage, don't continue with the shutdown until all
12938         aborted threads have actually stopped.
12939
12940 2004-05-10  Jackson Harper  <jackson@ximian.com>
12941
12942         * locales.c: Remove the modifier from culture names.
12943         
12944 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12945
12946         * Makefile.am: monosn is not installed any more. It has been deprecated
12947         in favor of sn.
12948
12949 2004-05-07  Jackson Harper  <jackson@ximian.com>
12950
12951         * locales.c
12952         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
12953         Fix array construction, add bailout if the length is 0.
12954
12955 2004-05-07  Dick Porter  <dick@ximian.com>
12956
12957         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
12958         machine doesn't have a DNS entry.  Patch by Urs Muff
12959         (umuff@quark.com), fixes bug 57928.
12960
12961 2004-05-06  Jackson Harper  <jackson@ximian.com>
12962
12963         * reflection.c: Handle null PublicTokens properly. alloc mem for
12964         assembly names culture so we dont crash when freeing it.
12965         
12966 2004-05-06  Jackson Harper  <jackson@ximian.com>
12967
12968         * assembly.c: Check the usergac when loading with partial names.
12969         
12970 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
12971
12972         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
12973         does nothing for now (not required for Linux/Windows) but the class
12974         library can call it (and a newer or modified runtime could need it).
12975         * icall.c: Registred icall.
12976
12977 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12978
12979         * loader.c: prints a message on module loading error we set MONO_DEBUG
12980         environment variable.
12981
12982 2004-05-05  Jackson Harper  <jackson@ximian.com>
12983
12984         * appdomain.c: Handle PublicKeyToken=null properly.
12985         
12986 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
12987
12988         * environment.c|h: Added icall ves_icall_System_Environment_
12989         GetOSVersionString to get the current OS version as a string.
12990         * icall.c: Registred icall.
12991
12992 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
12993
12994         * object.c: in mono_object_get_virtual_method(), take into account that
12995         non-virtual methods don't have a slot in the vtable. Check needed when
12996         the object is a proxy.
12997
12998 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
12999
13000         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
13001         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
13002
13003         * object.c (mono_class_compute_gc_descriptor): Fix warning.
13004
13005         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
13006         passed when a valuetype is expected.
13007
13008         * object.c (mono_unhandled_exception): Only set the exit code if the
13009         exception happens in the main thread. Fixes thread5.exe.
13010
13011         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
13012         invalid names. Fixes #58047.
13013
13014 2004-05-03  Jackson Harper  <jackson@ximian.com>
13015
13016         * assembly.c: This line was committed accidently and is unneeded.
13017         
13018 2004-05-03  Jackson Harper  <jackson@ximian.com>
13019
13020         * icall.c: Add new icall for Assembly::LoadWithPartialName
13021         * assembly.c/.h: new function that probes the GAC to load partial
13022         assembly names by Paolo Molaro.
13023         
13024 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13025
13026         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
13027         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
13028         (type_get_fully_qualified_name): Added PublicKeyToken when building a
13029         full type name.
13030
13031 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13032
13033         * appdomain.c: fixed check for 'neutral' culture and removed warning.
13034         * reflection.c: fix bug when parsing a full type name and Version is not
13035         the last thing in the string.
13036
13037 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
13038
13039         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
13040         crashes when it is freed.
13041
13042 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13043
13044         * assembly.c: print the compat warning to stderr.
13045
13046 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
13047
13048         * assembly.c (mono_assembly_load_references): Add a compatibility
13049         hack to run old applications that might be still referencing the
13050         3300-based assemblies, only do this for System.xxx.
13051
13052 2004-05-01  Jackson Harper  <jackson@ximian.com>
13053
13054         * appdomain.c: If the culture is neutral we set it to "".
13055         
13056 2004-04-29  Jackson Harper  <jackson@ximian.com>
13057
13058         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
13059
13060 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
13061  
13062         * string-icalls.c: added low overhead function for copying chars
13063         * icall.c: added needed icall for the above function
13064  
13065 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13066
13067         * icall.c: fix return value of get_global_assembly_cache.  Implemented
13068         Environment.GetLogicalDrives.
13069
13070 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
13071
13072         * rand.c: try and talk to egd or prngd
13073         for random bytes if opening devices fail.
13074
13075 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
13076
13077         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
13078         alignment for the type using the native alignment of its members 
13079         instead of using klass->min_align.
13080
13081         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
13082
13083 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13084
13085         * file-io.c:
13086         * socket-io.c: added check for sys/aio.h.
13087
13088 2004-04-28  Dick Porter  <dick@ximian.com>
13089
13090         * threads.c: Don't abort a thread thats already aborting, when
13091         terminating everything.
13092
13093 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13094
13095         * icall.c: added 2 new async calls for Socket.
13096
13097         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
13098         IO on *nix systems.
13099
13100         * threadpool.c: removed unused variable.
13101
13102 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
13103
13104         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
13105
13106 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
13107
13108         * locales.c: put back string_invariant_tolower () and
13109         string_invariant_toupper ().
13110
13111 2004-04-26 David Waite <mass@akuma.org>
13112
13113         * file-io.h:
13114         * socket-io.h:
13115         * threads.h:
13116         * unicode.h: remove comma from end of enumeration declarations
13117
13118 2004-04-26 David Waite <mass@akuma.org>
13119
13120         * debug-mono-symfile.h:
13121         * decimal.c:
13122         * mono_debug.h:
13123         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
13124
13125
13126 2004-04-26  Jackson Harper  <jackson@ximian.com>
13127
13128         * appdomain.c: Increment version number.
13129         
13130 2004-04-26  Jackson Harper  <jackson@ximian.com>
13131
13132         * appdomain.c: Set assembly references public token value when
13133         PublicKeyToken is specified, not the hash_value. Free public token
13134         values when free assembly name data. Previously the public key
13135         token was hex decoded, however we are using hex encoded public key
13136         tokens, so this is not neccasary.
13137         * assembly.c: Lookup assemblies in the gac if their public token
13138         value is set. Add function to allow enabling user gac
13139         lookups. Specify whether or not the assembly was loaded from the
13140         GAC. Compare full assembly names when checking the cache for
13141         assemblies (Temporarily disabled see comment in code). Remove
13142         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
13143         specifies trace-loader they get extra info to stdout on the
13144         loading of assemblies.
13145         * image.h: Add a field for an assembly references public token
13146         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
13147         whether an assembly has been loaded from the GAC.
13148         * image.c: Remove a corlib -> mscorlib name mapping.
13149         * loader.h: Add function to enable/disable the user gac.
13150         * mono-config.c: Check if the usergac is enabled in the config
13151         file.
13152         * icall.c: New icall to determine whether or not an assembly has
13153         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
13154         * tabldefs.h: Add constant for assemblyref flag that specifies a
13155         full public key is used instead of a public token.
13156         * reflection.c: Remove mscorlib -> corlib mappings. Set
13157         PublicTokenValue instead of hash value. This value is a hex
13158         string so it does not need to be expanded.
13159
13160 2004-04-26  Martin Baulig  <martin@ximian.com>
13161
13162         * mono-debug-debugger.c (mono_debugger_initialize): Set
13163         `mono_debugger_initialized' before calling mono_debug_lock().
13164
13165 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
13166
13167         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
13168           InternalToUpper/InternalToLower.
13169         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
13170           removed invariant culture shortcut.  This is now done in managed code.
13171         * locales.c: (string_invariant_toupper/tolower) removed.
13172
13173 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13174
13175         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
13176         Added Poll internal call.
13177
13178         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
13179         call for Poll. Select was too heavy for polling a single socket.
13180
13181         * threadpool.[ch]: added mono_threadpool_cleanup.
13182         * threads.c: use it. Don't use Thread_Abort on windows.
13183
13184 2004-04-23  Martin Baulig  <martin@ximian.com>
13185
13186         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
13187
13188 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
13189
13190         * icall.c: Registred new icalls for key pair protection and added an
13191         icall for Environment.GetFolderPath on Windows.
13192         * security.c|h: Added new icalls for key pair protection.
13193
13194 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13195
13196         * socket-io.c: don't display the non-supported family warning for known
13197         families. Now this is not displayed on windows when checking support
13198         for IPv4/IPv6.
13199
13200 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13201
13202         * class.c: don't display the layout warning for static fields.
13203
13204 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
13205
13206         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
13207         * locales.c, locales.h: Added new icalls for culture-specific
13208         Char.ToLower and Char.ToUpper.
13209
13210 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13211
13212         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
13213         by David Waite.
13214
13215 2004-04-20  Martin Baulig  <martin@ximian.com>
13216
13217         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
13218         of the type name before passing it to mono_reflection_type_from_name().
13219
13220 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
13221
13222         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
13223         encodings here. Fixes #56965.
13224
13225 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
13226
13227         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
13228         fix test on strstr result not that I can see anything that
13229         relies on the result.
13230
13231 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
13232
13233         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
13234         Fixes #57081.
13235
13236         * marshal.c (mono_marshal_get_string_encoding): New helper function.
13237
13238         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
13239         function to determine which marshalling to use for strings. Fixes
13240         #56965.
13241
13242         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
13243
13244         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
13245
13246 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
13247
13248         * icall.c: #include mono-config.h
13249
13250 2004-04-15  Jackson Harper  <jackson@ximian.com>
13251
13252         * culture-info-tables.h: Fix date formats for en-US culture.
13253         
13254 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
13255
13256         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
13257         ThreadPool.SetMinThreads.
13258         * threadpool.c: Implemented ThreadPool.GetMinThreads and
13259         ThreadPool.SetMinThreads.
13260
13261 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
13262
13263         * mono-config.c: also load the .config file in the directory
13264         where the assembly was found.
13265
13266 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
13267
13268         * assembly.c: load per-assembly config files.
13269         * icall.c: decrapified code to get the config dir and moved to
13270         mono-config.c.
13271         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
13272         per-assembly config files. When doing a dll map lookup give precedence
13273         to the per-assembly data.
13274
13275 2004-04-14  Martin Baulig  <martin@ximian.com>
13276
13277         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
13278         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
13279         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
13280
13281         * mono-debugger-debugger.c: While the debugger is locked, remember
13282         whether the symbol tables have changes and send one single
13283         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
13284
13285 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
13286
13287         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
13288
13289         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
13290         function.
13291
13292         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
13293         account when marshalling string arrays. Fixes #56965.
13294
13295 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
13296
13297         * icall.c: Add new icalls mapping for security.
13298         * security.c|h: Add internal calls for WindowsIdentity,
13299         WindowsImpersonationContext and WindowsPrincipal.
13300
13301 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
13302
13303         * class.c: Added comment to ensure the System.MonoDummy class
13304         is removed when no longer necessary
13305
13306 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
13307
13308         * appdomain.c: Pass arguments to the bootstraping exceptions to
13309         minimize JITed methods at boot
13310
13311         * metadata.c (mono_exception_from_name_two_strings): Allow for the
13312         second string to be null.
13313
13314         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
13315         Change the protocol to minimize the JIT methods at startup.  Now
13316         it Returns the internal codepage, if the value of "int_code_page"
13317         is 1 at entry, and we can not compute a suitable code page
13318         number, returns the code page as a string.
13319
13320 2004-04-13  Jackson Harper  <jackson@ximian.com>
13321
13322         * culture-info-tables.h: Fix number of decimal digits for all
13323         english locales.
13324
13325 2004-04-13  Jackson Harper  <jackson@ximian.com>
13326
13327         * icall.c: Clairfy out of sync error message. It is not always
13328         your corlib that is out of sync.
13329
13330 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
13331
13332         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
13333         properties when only the set accessor is overriden. Fixes #55874.
13334
13335 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
13336
13337         * assembly.c (mono_assembly_load_references): Make this thread safe.
13338         Fixes #56327.
13339
13340 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
13341
13342         * monosn.c: Add missing initialization calls.
13343
13344 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
13345
13346         * locales.c:
13347         ves_icall_System_Globalization_CultureInfo_construct_number_format
13348         Fix g_assert so it compiles on fussier compilers re int/ptr
13349         mismatch
13350
13351 2004-04-08  Dick Porter  <dick@ximian.com>
13352
13353         * socket-io.h:
13354         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
13355         53992.  Also rearrange the code so that the internal calls return
13356         an error value and exceptions are thrown from managed code.
13357
13358         * icall.c: Add type info to the socket icalls.
13359
13360 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13361
13362         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
13363         owes me a beer.
13364
13365 2004-04-07  Martin Baulig  <martin@ximian.com>
13366
13367         * class.c (mono_class_from_generic_parameter): Don't default
13368         `klass->parent' to `mono_defaults.object_type'.
13369
13370 2004-04-07  Martin Baulig  <martin@ximian.com>
13371
13372         * reflection.c (mono_reflection_initialize_generic_parameter): Set
13373         `param->pklass->reflection_info'.       
13374
13375 2004-04-07  Jackson Harper  <jackson@ximian.com>
13376
13377         * culture-info-tables.h: Fix date separator symbol.
13378         
13379 2004-04-07  Martin Baulig  <martin@ximian.com>
13380
13381         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
13382         from System.Type to System.MonoType.
13383
13384 2004-04-07  Martin Baulig  <martin@ximian.com>
13385
13386         * reflection.h
13387         (MonoReflectionGenericParam): Added `has_reference_type' and
13388         `has_value_type' fields.
13389
13390         * reflection.c (mono_image_get_generic_param_info): Encode the
13391         correct flags if we have the `class' or `struct' constraint.
13392
13393 2004-04-07  Martin Baulig  <martin@ximian.com>
13394
13395         * reflection.h
13396         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
13397
13398 2004-04-07  Jackson Harper  <jackson@ximian.com>
13399
13400         * appdomain.c: Revert extra patches, just wanted to bump the
13401         version number.
13402         
13403 2004-04-07  Jackson Harper  <jackson@ximian.com>
13404
13405         * Makefile.am: Add culture-info private headers.
13406         * icall.c: Add new icalls for contructing locales.
13407         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
13408         * locales.h: Declare new culture info construction methods.
13409         * object.h: Add new fields used to avoid the CultureMap to
13410         MonoCultureInfo.
13411         * culture-info.h: Definition of structs used in the culture info
13412         tables.
13413         * culture-info-tables.h: Autogenerated tables that contain culture
13414         info data. This file was generated with the locale-builder tool.
13415         * appdomain.c: Incement corlib version number.
13416         
13417 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
13418
13419         * appdomain.c: (mono_runtime_init) move mono_thread_init
13420         to before mono_object_new calls so critical sections
13421         are initialized before use.
13422
13423 2004-04-07  Martin Baulig  <martin@ximian.com>
13424
13425         * icall.c
13426         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
13427         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
13428         (ves_icall_MonoGenericParam_initialize): Removed.
13429         (monogenericparam_icalls): Removed.
13430         (generictypeparambuilder_icalls): Added new table for
13431         System.Reflection.Emit.GenericTypeParameterBuilder.
13432
13433         * reflection.c
13434         (mono_reflection_define_generic_parameter): Removed.
13435         (mono_reflection_initialize_generic_parameter): This is now called
13436         from GenericTypeParameterBuilder's .ctor.
13437
13438 2004-04-06  Martin Baulig  <martin@ximian.com>
13439
13440         * class.c (mono_class_init): Don't inflate nested classes in a
13441         generic instance.
13442         (mono_type_get_name_recurse): Include the generic arguments for
13443         generic instances and generic type declarations.
13444         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
13445         (_mono_class_get_instantiation_name): Removed.
13446         (mono_class_create_generic): Always use `gklass->name' as our name.
13447
13448         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
13449
13450         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
13451         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
13452         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
13453         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
13454         closed generic methods here.
13455
13456         * reflection.c
13457         (mono_reflection_generic_inst_get_nested_types): Removed.
13458         (inflate_mono_method): Copy the generic parameters from the
13459         MonoMethodHeader into out MonoGenericMethod.
13460
13461 2004-04-06  Martin Baulig  <martin@ximian.com>
13462
13463         * row-indexes.h
13464         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
13465
13466         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
13467
13468         * reflection.c (build_compressed_metadata): If we have any entries
13469         in the GenericParam, MethodSpec or GenericParamConstraint tables,
13470         set the header version to 1.1.
13471
13472 2004-04-06  Martin Baulig  <martin@ximian.com>
13473
13474         * class.c (mono_class_init): If we're a generic instance,
13475         initialize our nested classes, too.
13476         (_mono_class_get_instantiation_name): Deal with the new `!%d'
13477         suffix. 
13478
13479 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13480
13481         * process.c: quote the argument passed to the shell on windows.
13482
13483 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
13484
13485         * threads.c (mono_alloc_special_static_data): Allow this to be
13486         called during startup.
13487
13488 2004-04-02  Martin Baulig  <martin@ximian.com>
13489
13490         * icall.c
13491         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
13492
13493 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
13494
13495         * icall.c: Fix build.
13496
13497 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
13498
13499         * Makefile.am: Added security.c|h.
13500         * icall.c: Added icall for get_UserName;
13501         * security.c: New file for security related icalls. Added function
13502         get_UserName for System.Environment (fix #56144).
13503         * security.h: New. Header file for security.c
13504
13505 2004-04-02  Dick Porter  <dick@ximian.com>
13506
13507         * icall.c: Deleted the icalls that were obsoleted some time ago
13508         by the ICU string code, and which were mixed into the icall
13509         rearranging.  Fixes bug 55969.
13510
13511         * string-icalls.h: 
13512         * string-icalls.c: Deleted the code that those icalls reference.
13513
13514 2004-04-01  Martin Baulig  <martin@ximian.com>
13515
13516         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
13517
13518         * class.c (mono_class_from_generic_parameter): Don't set 
13519         TYPE_ATTRIBUTE_INTERFACE.
13520         (my_mono_class_from_generic_parameter): Likewise.
13521
13522 2004-04-01  Martin Baulig  <martin@ximian.com>
13523
13524         * loader.c (find_method): Added an optional `MonoClass *ic'
13525         argument to search in a specific interface.
13526         (mono_get_method_constrained): New public function.
13527
13528 2004-04-01  Martin Baulig  <martin@ximian.com>
13529
13530         * reflection.c (mono_image_get_generic_field_token): Use the
13531         `handleref' cache here.
13532
13533 2004-04-01  Martin Baulig  <martin@ximian.com>
13534
13535         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
13536
13537         * reflection.c (create_generic_typespec): Use the `typespec' hash
13538         here, not the `typeref' one.    
13539
13540 2004-04-01  Martin Baulig  <martin@ximian.com>
13541
13542         * class.c (mono_class_inflate_generic_type): Moved the
13543         functionality into a new static inflate_generic_type() which
13544         returns NULL if it didn't do anything.  Only increment the
13545         `mono_stats.inflated_type_count' if we actually inflated
13546         something.
13547         (mono_class_get_full): Check the classes type to see whether we
13548         need to inflate it; also inflate MONO_TYPE_(M)VAR.
13549
13550 2004-04-01  Jackson Harper  <jackson@ximian.com>
13551
13552         * reflection.c: Set culture for assembly references.
13553         
13554 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
13555
13556         * reflection.[ch], icall.[ch], Fix support for pinning variables.
13557
13558 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13559
13560         * assembly.c:
13561         (do_mono_assembly_open): the critical section also covers
13562         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
13563
13564 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13565
13566         * threads.c:
13567         (mono_manage_threads): abort the background threads when finishing.
13568         Fixes bug #47232.
13569
13570 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13571
13572         * gc.c: only close the done_event handle if there was no timeout.
13573         C-ified comments.
13574
13575 2004-03-30  Martin Baulig  <martin@ximian.com>
13576
13577         * icall.c (icall_entries): It's called "System.Activator", not
13578         "System.Activation".    
13579
13580 2004-03-30  Martin Baulig  <martin@ximian.com>
13581
13582         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
13583         (mono_class_create_from_typespec): Likewise.
13584
13585 2004-03-30  Martin Baulig  <martin@ximian.com>
13586
13587         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
13588         `has_ctor_constraint' and `initialized'.
13589
13590 2004-03-30  Martin Baulig  <martin@ximian.com>
13591
13592         * reflection.c (encode_new_constraint): New static function to add
13593         the constructor constraint attribute to a type parameter.
13594         (encode_constraints): Call encode_new_constraint() if necessary.
13595
13596         * reflection.h
13597         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
13598
13599         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
13600         
13601 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
13602
13603         * reflection.c, icall.c: add support for pinning variables. 
13604
13605 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
13606
13607         * marshal.c (mono_marshal_get_managed_wrapper):
13608         init bool local with zero rather than null.
13609
13610 2004-03-29  Martin Baulig  <martin@ximian.com>
13611
13612         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
13613         the "official" behavior here.
13614         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
13615
13616 2004-03-29  Martin Baulig  <martin@ximian.com>
13617
13618         * icall.c: Reflect latest API changes.
13619
13620 2004-03-29  Martin Baulig  <martin@ximian.com>
13621
13622         * loader.c (mono_get_method_from_token): Also call
13623         mono_metadata_load_generic_params () for abstract and interface
13624         methods; replace the type arguments in the method signature with
13625         the ones which are loaded from the metadata.
13626
13627 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
13628
13629         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
13630         of the lock is not the current thread. MS.NET don't do it, in spite of
13631         what the documentation says. See bug #56157.
13632
13633 2004-03-28  Martin Baulig  <martin@ximian.com>
13634
13635         * class.c (mono_class_init): Don't call init_properties() and
13636         init_events() for generic instances; set `prop->parent' when
13637         inflating properties.
13638
13639         * reflection.c (mono_generic_inst_get_object): Call
13640         `mono_class_init (ginst->klass)'.
13641         (mono_type_get_object): Only create a MonoGenericInst if your
13642         generic type is a TypeBuilder.
13643         (do_mono_reflection_bind_generic_parameters): Only set
13644         `ginst->is_dynamic' if our generic type is a TypeBuilder.
13645
13646 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
13647
13648         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
13649         Fixes #56091.
13650
13651 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13652
13653         * icall.c: added Kill_internal icall.
13654         * process.[ch]: added Kill_internal icall.
13655
13656 2004-03-25  Martin Baulig  <martin@ximian.com>
13657
13658         * class.h (MonoStats): Added `generic_instance_count',
13659         `inflated_method_count', `inflated_type_count' and
13660         `generics_metadata_size'.       
13661
13662 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13663
13664         * reflection.c: no warnings now.
13665
13666 2004-03-25  Martin Baulig  <martin@ximian.com>
13667
13668         * class.c (mono_class_get_full): New public function; does a
13669         mono_class_get(), but also takes a `MonoGenericContext *'.
13670
13671         * loader.c (mono_field_from_memberref): Renamed to
13672         `field_from_memberref', made static and added `MonoGenericContext *'
13673         argument.
13674         (mono_field_from_token): Added `MonoGenericInst *' argument.
13675         (method_from_memberef): Likewise.
13676         (mono_get_method_from_token): Likewise.
13677         (mono_get_method_full): New public function; does a
13678         mono_get_method(), but also takes a `MonoGenericContext *'.
13679
13680         * verify.c (mono_method_verify): Get the method's generic context
13681         and pass it to mono_field_from_token(), mono_get_method_full() and
13682         mono_class_get_full().
13683
13684 2004-03-25  Martin Baulig  <martin@ximian.com>
13685
13686         * class.c (mono_class_inflate_generic_type): Take a
13687         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
13688         `MonoGenericMethod *'.
13689
13690 2004-03-25  Martin Baulig  <martin@ximian.com>
13691
13692         * loader.h (MonoMethodInflated): Store the MonoGenericContext
13693         instead of the MonoGenericMethod here.
13694
13695 2004-03-25  Martin Baulig  <martin@ximian.com>
13696
13697         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
13698         each time we create a new MonoGenericInst, we also create a new
13699         context which points back to us.
13700
13701         * class.c (inflate_method): Use `ginst->context' instead of
13702         creating a new context.
13703
13704         * loader.c (method_from_memberref): Use
13705         `klass->generic_inst->context' instead of creating a new context.
13706
13707 2004-03-25  Martin Baulig  <martin@ximian.com>
13708
13709         * class.h (MonoGenericContext): New struct.
13710         (MonoGenericMethod): Removed `generic_inst'.
13711
13712         * class.c (mono_class_inflate_generic_method): Take a
13713         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
13714
13715 2004-03-25  Martin Baulig  <martin@ximian.com>
13716
13717         * loader.h (MonoMethodInflated): New typedef.
13718
13719         * metadata.h (MonoMethodSignature): Removed `gen_method', make
13720         `generic_param_count' consume just 30 bits, added `is_inflated'
13721         and `has_type_parameters' flags (one bit each).
13722
13723         * class.c (mono_class_inflate_generic_method): Create a
13724         MonoMethodInflated instead of a MonoMethodNormal and set
13725         `is_inflated' in the method signature.
13726
13727         * class.h (MonoGenericMethod): Removed `generic_method'.
13728
13729 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
13730
13731         * image.c: Make sure the name of a MonoImage is always an absolute path.
13732           This fixes bug #54415.
13733
13734 2004-03-24  Martin Baulig  <martin@ximian.com>
13735
13736         * class.c (mono_class_setup_vtable): If we're a generic instance,
13737         use our generic type's vtable size.
13738
13739 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
13740
13741         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
13742         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
13743         problems.
13744
13745 2004-03-23  Martin Baulig  <martin@ximian.com>
13746
13747         * class.h (MonoDynamicGenericInst): Added `int count_events' and
13748         `MonoEvent *events'.
13749
13750         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
13751         (typebuilder_icalls): Added "get_event_info"; calls
13752         mono_reflection_event_builder_get_event_info(). 
13753
13754         * reflection.c (mono_reflection_generic_inst_initialize): Added
13755         `MonoArray *events'.
13756         (mono_reflection_event_builder_get_event_info): New function.
13757
13758 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
13759
13760         * object.h: add mono_type_initialization_init
13761
13762         * object.c (mono_runtime_class_init): 
13763         implement class constructor synchronization rules
13764         to cope with threading issues.  
13765         add mono_type_initialization_init
13766
13767         * appdomain.c (mono_runtime_init): call 
13768         mono_type_initialization_init
13769
13770         * class.h: removing initializing field from MonoVTable
13771
13772 2004-03-23  Martin Baulig  <martin@ximian.com>
13773
13774         * class.c (my_mono_class_from_generic_parameter): Use
13775         `param->name' if it's not NULL. 
13776
13777 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
13778
13779         * class.c: do not insert non-virtual methods in the vtable.
13780         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
13781         that means the method is non-virtual. This never would have
13782         happened before.
13783
13784 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
13785
13786         * profiler.c: Added lock for accessing coverage_hash.
13787
13788 2004-03-22  Martin Baulig  <martin@ximian.com>
13789
13790         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
13791         `method->method->signature->generic_param_count != 0' to make it
13792         work for interface methods.
13793
13794 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13795
13796         * process.c: quote the string passed to the shell using g_shell_quote.
13797
13798 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13799
13800         * threads.c:
13801         (mono_threads_manage): don't remove the finalizer thread and self
13802         from the threads hash table so that mono_thread_manage can be called
13803         more than once.
13804
13805 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13806
13807         * process.c: quote the arguments when UseShellExecute is true. Fixes
13808         bug #55790.
13809
13810 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13811
13812         * threads.c: set mono_thread_detach as a cleanup routine for every
13813         thread. This way it's always executed upon thread termination, either
13814         aborted or finished normally. No more xsp hangs!
13815
13816 2004-03-17  Martin Baulig  <martin@ximian.com>
13817
13818         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
13819         `int count_nested' and a `MonoType **nested'.
13820
13821         * reflection.c (mono_reflection_bind_generic_parameters): Moved
13822         most of the functionality into a new static
13823         do_mono_reflection_bind_generic_parameters() and don't take a
13824         `MonoType *nested_in' argument any more.  Don't compute nested
13825         types here.
13826         (mono_reflection_generic_inst_get_nested_types): New public method
13827         to get nested types.
13828
13829         * class.c (mono_class_create_generic): Set `klass->nested_in' if
13830         we're a nested class.
13831
13832         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
13833         mono_reflection_generic_inst_get_nested_types() to compute the
13834         nested types.
13835
13836 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
13837
13838         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
13839         descriptive error message under windows.
13840         
13841 2004-03-17  Martin Baulig  <martin@ximian.com>
13842
13843         * class.c (dup_type): Added `const MonoType *original' argument;
13844         copy the attrs from the original type.
13845
13846 2004-03-17  Martin Baulig  <martin@ximian.com>
13847
13848         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
13849         `m->generic_inst_cache' here.
13850
13851 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
13852
13853         * exception.h exception.c: Add stack_overflow_exception.
13854
13855 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13856
13857         * threadpool.c:
13858         (overlapped_callback): call SetEvent *after* invoking the callback.
13859         No need to call CloseHandle.
13860
13861 2004-03-16  Martin Baulig  <martin@ximian.com>
13862
13863         * reflection.c (mono_image_get_fieldref_token): Take a
13864         `MonoReflectionField *' instead of a `MonoClassField *' and a
13865         `MonoClass *'; store the `MonoReflectionField *' in the hash.
13866
13867 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13868
13869         * appdomain.c: don't add the culture to the filename we're looking for
13870         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
13871
13872 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13873
13874         * locales.c: don't ignore symbols when doing case insensitive compares.
13875         Thanks Dick! Fixes bug #54046.
13876
13877         * threads.c: surround 'threads' usage with enter/leave in
13878         mono_thread_manage.
13879
13880 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
13881
13882         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
13883         implicitly marshalled as [Out]. Fixes #55450.
13884
13885         (mono_marshal_get_runtime_invoke): Zero out the result if there is
13886         an exception.
13887
13888 2004-03-16  Martin Baulig  <martin@ximian.com>
13889
13890         * class.c (mono_class_from_generic_parameter): Use the actual
13891         parameter name. 
13892
13893 2004-03-16  Martin Baulig  <martin@ximian.com>
13894
13895         * reflection.c (type_get_signature_size): New static function.
13896         Compues the size of the type in a method signature.
13897         (method_get_signature_size): New static function; calls
13898         type_get_signature_size() to compute the actual size of the
13899         method's signature.
13900         (method_encode_signature): Use method_get_signature_size() to get
13901         the signature's size rather than using `nparams * 10'.
13902
13903 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13904
13905         * file-io.h: define here WapiOverlapped on windows. I don't want the
13906         regular OVERLAPPED one.
13907
13908         * file-io.c:
13909         * threadpool.c: somehow, BindIoCompletionCallback is not found.
13910         Disabling AIO on windows.
13911
13912 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13913
13914         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
13915         bug #55385.
13916
13917 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13918
13919         * appdomain.c: upgraded corlib version.
13920
13921         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
13922         and BeginWrite. Allow opening files for asynchrnous operations.
13923
13924         * file-io.h: new struct that maps FileStreamAsyncResult.
13925         * icall.c: added new icalls.
13926         * process.[ch]: support setting child process environment variables
13927         and use the SHELL or COMSPEC when UseShellExecute is true.
13928
13929         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
13930         callback for async. IO is here and also BindHandle.
13931
13932         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
13933         from here.
13934
13935 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
13936
13937         * reflection.c (create_custom_attr): Allow len == 0.
13938
13939         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
13940         computation on big-endian machines.
13941
13942 2004-03-13  Martin Baulig  <martin@ximian.com>
13943
13944         * class.h (MonoGenericInst): Added `int count_ifaces'.
13945
13946         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
13947         `ginst->count_ifaces' instead `klass->interface_count' since we
13948         may get called before the vtable is created.
13949
13950         * loader.c (mono_method_get_param_names): If we're a generic
13951         instance, return and don't initialize the class.
13952
13953         * reflection.c (mono_reflection_setup_generic_class): Don't call
13954         ensure_runtime_vtable().
13955         (mono_reflection_bind_generic_parameters): Set
13956         `ginst->count_ifaces'.
13957
13958 2004-03-11  Jackson Harper <jackson@ximian.com>
13959
13960         * icall.c:
13961         * unicode.c:
13962         * unicode.h: Remove unused System.Char icalls.
13963         
13964 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
13965
13966         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
13967         code when we P/Invoke the first library in Windows.Forms, instead
13968         of when we first open the assembly.
13969
13970         * assembly.c: Drop the lookup from here.
13971
13972 2004-03-10  Martin Baulig  <martin@ximian.com>
13973
13974         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
13975         class for properties, fields and events.  Finally fixes #54945.
13976
13977 2004-03-10  Martin Baulig  <martin@ximian.com>
13978
13979         * metadata.c (mono_metadata_class_equal): New static function;
13980         checks whether two generic instances or two generic parameters are
13981         equal.
13982         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
13983         compare classes.        
13984
13985 2004-03-10  Martin Baulig  <martin@ximian.com>
13986
13987         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
13988
13989         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
13990         argument and write it into the `reflection_info' field.
13991
13992         * icall.c
13993         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
13994         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
13995
13996 2004-03-09  Jackson Harper  <jackson@ximian.com>
13997
13998         * char-conversions.h: use 8 bits for numeric data its all we need
13999         * icall.c: numeric data is only 8 bits now.
14000
14001 2004-03-09  Martin Baulig  <martin@ximian.com>
14002
14003         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
14004
14005         * class.c (init_properties, init_events): Initialize the new
14006         `parent' field.
14007
14008         * reflection.c (typebuilder_setup_properties): Likewise.
14009         (typebuilder_setup_events): Likewise.
14010
14011         * reflection.h (MonoEventInfo): Replaced `parent with
14012         `declaring_type' and `reflected_type'.
14013
14014         * icall.c (ves_icall_get_property_info): Distinguish between
14015         declaring and reflected type.
14016         (ves_icall_get_event_info): Likewise.
14017
14018 2004-03-09  Martin Baulig  <martin@ximian.com>
14019
14020         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
14021         (ves_icall_Type_GetField): Correctly set field->klass.
14022
14023 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
14024
14025         * loader.h: Fix warning.
14026
14027 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
14028
14029         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
14030         library routine if present.  Notice that it will still continue
14031         executing even if its missing, for those working on the Gtk#
14032         edition of Windows.Forms.
14033
14034         * assembly.c (do_mono_assembly_open): If loading the
14035         System.Windows.Forms call mono_loader_wini_init.
14036
14037 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
14038
14039         * class.h: Added MonoRemoteClass struct.
14040         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
14041         function for MonoStrings.
14042         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
14043         Added internal call for getting the proxy type.
14044         * marshal.c: Get the type of transparent proxies from its remote_class.
14045         Added methods that generate the IL for type checks and casts:
14046         mono_marshal_get_isinst, mono_marshal_get_castclass, 
14047         mono_marshal_get_proxy_cancast.
14048         * marshal.h: Declaration of the previous new methods.
14049         * object.c: Added new moethods for creating and updating MonoRemoteClass
14050         instances: mono_remote_class, mono_upgrade_remote_class, 
14051         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
14052         * verify.c: FIx transparent_proxy_fields layout.
14053         * appdomain.c: Bump corlib version.
14054
14055 2004-03-04  Jackson Harper  <jackson@ximian.com>
14056
14057         * icall.c: Add icall to access char conversion tables.
14058         * char-conversions.h: Character conversion tables.
14059         * Makefile.am: Add char-conversions.h private header file.
14060         
14061 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
14062
14063         * appdomain.c (unload_thread_main): Increase unloading timeout to
14064         10 sec as a temporary workaround for Nant problems.
14065
14066 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
14067
14068         * gc.c: Add checks for GC_enable and GC_disable.
14069
14070         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
14071         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
14072         (bug #54988).
14073         
14074 2004-02-27  Martin Baulig  <martin@ximian.com>
14075
14076         * reflection.c (mono_reflection_bind_generic_parameters): Take a
14077         `MonoReflectionType *' instead of a `MonoType *'.
14078
14079 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
14080
14081         * gc.c (run_finalize): Avoid finalizing the object representing the
14082         finalizer thread.
14083         (finalizer_thread): Fix warning.
14084
14085 2004-02-25  Martin Baulig  <martin@ximian.com>
14086
14087         * class.c (_mono_class_get_instantiation_name): Added `int offset'
14088         argument for nested types.
14089         (mono_class_create_generic): Added support for nested generictypes.
14090
14091         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
14092         `GList *nested'.
14093
14094         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
14095
14096         * reflection.c (method_encode_signature): Increase the minimum
14097         value of `size' from 10 to 11.
14098         (mono_reflection_bind_generic_parameters): Take `int type_argc'
14099         and `MonoType **types' arguments instead of the `MonoArray
14100         *types'; added `MonoType *nested_in'.  Recursively instantiate
14101         nested classes. 
14102
14103 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
14104
14105         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
14106         stack_overflow_ex members which are used by exception handling.
14107
14108         * appdomain.c (mono_runtime_init): Initialize the new members.
14109
14110         * gc.c (mono_gc_enable): New helper function.
14111         * gc.c (mono_gc_disable): New helper function.
14112
14113 2004-02-23  Martin Baulig  <martin@ximian.com>
14114
14115         * icall.c: I must have been really stupid - make it actually work
14116         this time ;-)
14117
14118 2004-02-23  Martin Baulig  <martin@ximian.com>
14119
14120         * loader.c (method_from_memberref): Only inflate the method if
14121         it's in another klass.
14122
14123 2004-02-23  Martin Baulig  <martin@ximian.com>
14124
14125         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
14126         (mono_class_init): If we're a generic instance and an interface,
14127         compute `class->interface_id'; also create `class->interfaces'
14128         here and inflate them.
14129
14130         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
14131         `ginst->is_open'.
14132         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
14133
14134         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
14135
14136 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
14137
14138         * reflection.c (method_encode_code): Improved the error message
14139         generated by the exception.
14140
14141 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14142
14143         * icall.c: Martin did not do what he said in the ChangeLog for
14144         2004-02-18, but put back the changes for properties and events.
14145         Commenting those changes out again and adding comment to bug #54518.
14146         
14147         * process.c: removed warning.
14148
14149 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
14150
14151         * marshal.c (emit_struct_conv): Print an error message instead of
14152         asserting when a type does not have the StructLayout attribute.
14153
14154 2004-02-20  Martin Baulig  <martin@ximian.com>
14155
14156         * reflection.c (mono_type_get_object): Also use the cache for
14157         generic instances.
14158         (mono_reflection_bind_generic_parameters): Always compute
14159         `ginst->ifaces'.        
14160
14161 2004-02-20  Martin Baulig  <martin@ximian.com>
14162
14163         * class.h (MonoGenericMethod): Removed `klass'.
14164
14165         * class.c (mono_class_inflate_generic_method): Added `MonoClass
14166         *klass' argument.
14167
14168 2004-02-20  Martin Baulig  <martin@ximian.com>
14169
14170         * reflection.c (method_encode_methodspec): Actually use the
14171         uninflated signature for the memberref.
14172
14173 2004-02-20  Martin Baulig  <martin@ximian.com>
14174
14175         * class.h (MonoGenericMethod): Removed `declaring'.
14176
14177         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
14178         is NULL, compute it here.
14179
14180 2004-02-20  Martin Baulig  <martin@ximian.com>
14181
14182         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
14183
14184         * metadata.c (mono_metadata_generic_inst_hash): New method.
14185         (mono_metadata_generic_inst_equal): New method.
14186
14187         * reflection.c (mono_reflection_bind_generic_parameters): Use the
14188         `klass->image->generic_inst_cache' cache to avoid creating
14189         duplicate MonoGenericInst's.
14190
14191         * class.c (mono_class_inflate_generic_type): Use the cache.
14192
14193 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
14194
14195         * object.c: fixed gc descriptor calculation for embedded valuetypes.
14196
14197 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14198
14199         * icall.c: added Socket.WSAIoctl icall.
14200
14201         * socket-io.[ch]: implemented
14202         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
14203
14204 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
14205
14206         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
14207
14208 2004-02-18  Urs C Muff  <umuff@quark.com>
14209
14210         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
14211         this work on PPC and other big-endian architectures.
14212
14213         * debug-mono-symfile.h: Prepended the names of all the `guint32'
14214         fields with an underscore to make sure they're only accessed by
14215         the read32() macro.
14216
14217 2004-02-18  Martin Baulig  <martin@ximian.com>
14218
14219         * icall.c: Put the klass->refclass changes back for methods and
14220         fields, but not for properties and events.  We're currently not
14221         distinguishing between DeclaringType and ReflectedType for
14222         properties and events, that's what caused the regressions.
14223
14224 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14225
14226         * object.c:
14227         (mono_async_result_new): the handle can be NULL.
14228
14229         * threadpool.c: Use an event instead of a semaphore, don't initialize
14230         it until needed. This saves quite a few semaphores from being created
14231         when using the threadpool.
14232
14233 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
14234
14235         * object.c (mono_string_is_interned_lookup): Fix interning of long
14236         strings. Fixes #54473.
14237
14238         * domain.c (ldstr_equal): Optimize if the two strings are equal.
14239
14240         * icall.c: Revert the klass->refclass changes since they introduce
14241         regressions (bug #54518).
14242
14243 2004-02-18  Martin Baulig  <martin@ximian.com>
14244
14245         * class.c (mono_class_init): If we're a generic instance and don't
14246         come from a TypeBuilder, inflate our members here.
14247         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
14248         (mono_class_create_generic): New public method.
14249         (mono_class_initialize_generic): Removed.
14250         (get_instantiation_name): Renamed to
14251         _mono_class_get_instantiation_name() and made it public.
14252
14253 2004-02-18  Martin Baulig  <martin@ximian.com>
14254
14255         * class.c (mono_class_inflate_generic_type): Clear the new
14256         instance's `nginst->klass' when inflating a generic instance.
14257         (mono_class_is_subclass_of): Added (basic) support for generic
14258         instances.
14259
14260 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
14261
14262         * appdomain.h, domain.c: use a MonoCodeManager instead of a
14263         MonoMempool to hold compiled native code.
14264
14265 2004-02-17  Martin Baulig  <martin@ximian.com>
14266
14267         * class.h (MonoDynamicGenericInst): Added `count_properties' and
14268         `properties'.
14269
14270         * reflection.c (mono_reflection_generic_inst_initialize): Added
14271         `MonoArray *properties' argument.
14272
14273         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
14274
14275 2004-02-17  Martin Baulig  <martin@ximian.com>
14276
14277         * icall.c (ves_icall_Type_GetFields): Renamed to
14278         ves_icall_Type_GetFields_internal() and added a
14279         `MonoReflectionType *rtype' argument; pass it to
14280         mono_field_get_object() to set the field's "reflected" type.
14281         (ves_icall_Type_GetConstructors): Likewise.
14282         (ves_icall_Type_GetEvents): Likewise.
14283         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
14284         argument; pass it to mono_method_get_object() to set the method's
14285         "reflected" type.       
14286
14287 2004-02-17  Martin Baulig  <martin@ximian.com>
14288
14289         * class.h (MonoDynamicGenericInst): New type.
14290         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
14291
14292         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
14293         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
14294         (ves_icall_MonoGenericInst_GetFields): New interncall.
14295
14296         * class.c (mono_class_from_generic): Don't call
14297         mono_class_initialize_generic() if this is a dynamic instance;
14298         ie. it's being created from a TypeBuilder.
14299         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
14300         `class->byval_arg.type'.
14301
14302         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
14303         to `inflate_method' and made static.
14304         (mono_reflection_inflate_field): Removed.
14305         (mono_reflection_generic_inst_initialize): New public method.
14306
14307         * reflection.h (MonoReflectionGenericInst): Removed `methods',
14308         `ctors' and `fields'; added `initialized'.
14309
14310 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
14311
14312         * debug-helpers.c (mono_method_full_name): Fix output for empty
14313         namespaces.
14314
14315 2004-02-12  Martin Baulig  <martin@ximian.com>
14316
14317         * class.h (MonoClassField): Added `MonoType *generic_type'.
14318
14319         * reflection.c (mono_image_get_fieldref_token): Added support for
14320         instantiated generic types.
14321         (field_encode_inflated_field): Removed.
14322         (mono_image_get_inflated_field_token): Removed.
14323         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
14324
14325         * reflection.h (MonoReflectionInflatedField): Removed.
14326
14327 2004-02-12  Martin Baulig  <martin@ximian.com>
14328
14329         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
14330         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
14331
14332         * reflection.c (mono_image_get_methodspec_token): Take a
14333         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
14334         (mono_image_create_token): Check whether we have a
14335         `method->signature->gen_method' and call
14336         mono_image_get_methodspec_token() if appropriate.
14337         (inflated_method_get_object): Removed.
14338         (mono_reflection_bind_generic_method_parameters): Return a
14339         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
14340         (mono_reflection_inflate_method_or_ctor): Likewise.
14341
14342         * reflection.h (MonoReflectionInflatedMethod): Removed.
14343
14344 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
14345
14346         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
14347         for custom valuetype marshalling.
14348
14349         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
14350
14351 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14352
14353         * icall.c: fixed WSAGetLastError_internal name.
14354
14355 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
14356
14357         * threads.c (mono_thread_attach): Allow this to be called multiple
14358         times for a thread.
14359         
14360         * threads.c (build_wait_tids): Do not wait for ourselves.
14361
14362         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
14363         appdomain list is empty.
14364
14365         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
14366         memory returned by mono_string_builder_to_utf16, since it points into
14367         managed memory. Thanks to Bernie Solomon for noticing this.
14368
14369         * icall.c: Add AppDomainSetup icalls.
14370
14371         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
14372
14373         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
14374         types.
14375
14376         * reflection.c (reflection_methodbuilder_to_mono_method): Save
14377         custom attributes to the method_aux struct. Also fix array indexes etc.
14378
14379         * loader.c (mono_method_get_param_names): Make dynamic case work again.
14380         
14381 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
14382
14383         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
14384         (both static and runtime) and reduce startup time.
14385
14386 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
14387
14388         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
14389         AsAny marshalling conversion instead of crashing.
14390
14391         * marshal.c: Fix warnings.
14392
14393 2004-02-09  Martin Baulig  <martin@ximian.com>
14394
14395         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
14396
14397         * reflection.h (MonoReflectionInflatedMethod): Removed the
14398         `declaring' field, it's now in the unmanaged MonoGenericMethod.
14399
14400         * reflection.c (method_encode_methodspec): Removed the `method'
14401         argument; we get it from `gmethod->declaring'.
14402         (inflated_method_get_object): Removed the `declaring' argument.
14403
14404 2004-02-09  Martin Baulig  <martin@ximian.com>
14405
14406         * class.h (MonoGenericMethod): New type.
14407         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
14408         `generic_method'.
14409
14410         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
14411         a `MonoGenericMethod *gen_method' one.
14412
14413         * class.c (mono_class_inflate_generic_type): Take an additional
14414         `MonoGenericMethod * argument.  This is only non-NULL if we're
14415         inflating types for a generic method.   
14416         (mono_class_inflate_generic_signature): Renamed to
14417         inflate_generic_signature() and made static; take a
14418         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
14419         (inflate_generic_header): Take a `MonoGenericMethod *' argument
14420         instead of a `MonoGenericInst *' one.
14421         (mono_class_inflate_generic_method): Likewise.
14422
14423         * reflection.c (encode_generic_method_sig): Take a
14424         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
14425         (method_encode_methodspec): Likewise.
14426         (inflated_method_get_object): Likewise. 
14427
14428         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
14429         field with a `MonoGenericMethod *gmethod' one.  
14430
14431 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
14432
14433         * class.h (mono_class_has_parent): add parens to expansion
14434         so you can ! this.
14435
14436 2004-02-08  Martin Baulig  <martin@ximian.com>
14437
14438         * image.h (MonoImage): Removed `generics_cache'.
14439
14440         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
14441         instead of a `MonoType *' argument; removed the `inflate_methods'
14442         argument.  Don't inflate methods here.
14443
14444         * loader.c (find_method): If it's a generic instance, call
14445         mono_class_init() on the `sclass->generic_inst->generic_type'.
14446
14447         * metadata.c (mono_type_size): Make this work on uninitialized
14448         generic instances; call it on the `ginst->generic_type's class.
14449
14450         * reflection.c (mono_reflection_bind_generic_parameters): Call
14451         mono_class_from_generic() to create the `ginst->klass'.
14452
14453 2004-02-08  Martin Baulig  <martin@ximian.com>
14454
14455         * class.h (MonoClass): Changed type of `generic_inst' from
14456         `MonoType *' to `MonoGenericInst *'.
14457
14458 2004-02-08  Martin Baulig  <martin@ximian.com>
14459
14460         * icall.c (ves_icall_Type_BindGenericParameters): Just call
14461         mono_type_get_object(), this is now creating a `MonoGenericInst'
14462         for MONO_TYPE_GENERICINST.
14463         (ves_icall_MonoGenericInst_GetParentType): Likewise.
14464         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
14465
14466         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
14467         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
14468         (inflated_method_get_object): Added `MonoClass *refclass' argument.
14469         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
14470         and reflected type.
14471
14472         * reflection.h (MonoReflectionInflatedMethod): Removed
14473         `declaring_type' and `reflected_type'.
14474
14475 2004-02-08  Martin Baulig  <martin@ximian.com>
14476
14477         * class.h (MonoGenericInst): Added `MonoType *parent' and
14478         `MonoType **ifaces'.
14479
14480         * reflection.h (MonoReflectionGenericInst): Removed `klass',
14481         `parent' and `interfaces'.
14482
14483         * reflection.c (mono_reflection_bind_generic_parameters): Take a
14484         `MonoType *' argument and return a `MonoType *'.
14485
14486         * icall.c
14487         (ves_icall_MonoGenericInst_GetParentType): New interncall.
14488         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
14489
14490 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
14491
14492         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
14493         valuetype marshalling.
14494
14495 2004-02-06  Martin Baulig  <martin@ximian.com>
14496
14497         * class.c
14498         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
14499         (my_mono_class_from_generic_parameter): Likewise.
14500
14501 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
14502
14503         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
14504         contents of the symbol files lazily.
14505
14506         * object.h (MonoThread): Add 'name' and 'name_len' fields.
14507
14508         * threads.h threads.c icall.c: New icalls for getting and setting the
14509         threads name.
14510
14511 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
14512
14513         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
14514         Raise an exception when the domain is not found.
14515
14516 2004-02-03  Martin Baulig  <martin@ximian.com>
14517
14518         * reflection.c (mono_image_get_methodspec_token): Use the
14519         uninflated signature; fixes gen-33.
14520
14521 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
14522
14523         * gc.c threads.c: Make the finalizer thread a normal managed thread so
14524         the finalizer code can use thread functionality.
14525
14526         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
14527         the finalizer thread.
14528
14529         * threads.c: Make some functions more robust.
14530
14531         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
14532
14533         * metadata.h: Add new marshalling conventions.
14534
14535         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
14536         stringbuilder marshalling. Fixes #53700.
14537
14538         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
14539
14540         * reflection.c (mono_image_get_type_info): Save declarative security
14541         info.
14542
14543         * reflection.c (mono_image_get_field_info): Handle uninitialized 
14544         unmanaged fields as well.
14545
14546         * appdomain.c: Bump corlib version.
14547
14548 2004-02-01  Martin Baulig  <martin@ximian.com>
14549
14550         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
14551         method type arguments.  
14552
14553 2004-01-30  Duncan Mak  <duncan@ximian.com>
14554
14555         * marshal.h: Add prototype for
14556         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
14557         and
14558         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
14559         fix the build.
14560
14561 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
14562
14563         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
14564         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
14565
14566 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
14567
14568         * marshal.c (mono_marshal_get_native_wrapper): Add support for
14569         custom marshalling of valuetypes.
14570
14571         * marshal.c: Fix some warnings.
14572
14573 2004-01-29  Martin Baulig  <martin@ximian.com>
14574
14575         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
14576         for generic method parameters.
14577
14578         * reflection.c (method_encode_methodspec): Write the uninflated
14579         signature into the methodspec table.
14580         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
14581         is always the uninflated method.
14582         (reflection_methodbuilder_to_mono_method): Copy the generic
14583         parameters from the MethodBuilder into `header->gen_params'.
14584
14585 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
14586
14587         * class.c (mono_class_from_generic_parameter): Fix warning.
14588
14589 2004-01-27  Martin Baulig  <martin@ximian.com>
14590
14591         * class.c (mono_class_from_generic_parameter): Don't create
14592         `klass->methods' here.  
14593
14594 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
14595
14596         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
14597         extension since it does not work with libraries named lib<FOO>.dll.so.
14598
14599 2004-01-25  Martin Baulig  <martin@ximian.com>
14600
14601         * class.c (mono_class_inflate_generic_type): Added support for
14602         MONO_TYPE_GENERICINST.
14603
14604         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
14605         inflate methods on open constructed types.      
14606
14607 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14608
14609         * object.c: fire ProcessExit event in the root AppDomain after running
14610         Main. Fixes bug #53299.
14611
14612 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
14613
14614         * socket-io.c: include the new socket-wrappers.h header.
14615         Use the wrappers instead of the unix socket functions to make the code
14616         more clear.
14617
14618 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
14619
14620         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
14621
14622         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
14623         Fixes #22532.
14624
14625 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
14626
14627         * reflection.c (mono_image_create_pefile): Handle the case when the
14628         entry point is not a MethodBuilder.
14629
14630         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
14631         field to ReflectionMethod since it is not allways a builder.
14632
14633         * reflection.c (type_get_fully_qualified_name): New helper function to
14634         return the fully qualified name of a type.
14635
14636         * reflection.c (encode_marshal_blob): Always emit the fully qualified
14637         type name for custom marshallers.
14638
14639         * reflection.c (mono_marshal_spec_from_builder): Ditto.
14640
14641         * class.c (mono_class_setup_vtable): If a parent class already 
14642         implements an interface, use the implementing methods from that class.
14643         Fixes #53148.
14644
14645 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14646
14647         * threadpool.c: just return instead of ExitThread to allow for thread
14648         clean up earlier.
14649
14650 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
14651
14652         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
14653         when closing resource modules.
14654
14655         * reflection.c (mono_image_create_pefile): Handle the case when the
14656         entry point is not a MethodBuilder.
14657
14658         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
14659         field to ReflectionMethod since it is not allways a builder.
14660
14661 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
14662
14663         * marshal.c (mono_marshal_get_managed_wrapper): 
14664         mono_marshal_alloc takes native int so CONV_I
14665         the arg for 64bits.
14666
14667 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
14668
14669         * reflection.c (fixup_cattrs): New function to fixup the methoddef
14670         tokens in the cattr table. Fixes #53108.
14671
14672 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14673
14674         * loader.c: don't trim ".dll" before looking up in the config file.
14675         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
14676
14677 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
14678
14679         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
14680         Return the module which contains the resource as well.
14681         (ves_icall_System_Reflection_Module_Close): New icall.
14682
14683         * appdomain.c: Bump corlib version number.
14684
14685         * image.c (mono_image_addref): New public function.
14686
14687         * assembly.c: Call mono_image_addref.
14688
14689         * reflection.c (mono_module_get_object): Increase reference count of 
14690         the image.
14691
14692         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
14693         Fixes #22532.
14694
14695         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
14696         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
14697         proper exceptions on DllImport problems.
14698
14699 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
14700
14701         * class.c, metadata.c: eliminate CSIZE macro.
14702
14703 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
14704
14705         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
14706         * object.h: Added async_callback field in MonoAsyncResult.
14707         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
14708         * verify.c: Added async_callback in MonoAsyncResult layout.
14709
14710 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
14711
14712         * reflection.c (mono_reflection_get_custom_attrs): Add support
14713         for Modules.
14714
14715 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
14716
14717         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
14718         marshalling.
14719         (mono_marshal_method_from_wrapper): Add null pointer check.
14720
14721 2004-01-16  Martin Baulig  <martin@ximian.com>
14722
14723         * debug-mono-symfile.h: Set version number to 36 and reflect
14724         latest symbol writer changes.
14725
14726 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
14727
14728         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
14729         multi-dimensional arrays.
14730         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
14731         (mono_class_from_mono_type): Use bounded_array_class_get.
14732         
14733         * class.c (mono_bounded_array_class_get): New function which takes
14734         a 'bounded' bool argument to distinguish vectors from one dimensional
14735         arrays.
14736
14737         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
14738         bounded_array_class_get if the array has bounds.
14739
14740         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
14741         Search modules loaded using AssemblyBuilder:AddModule as well.
14742
14743 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14744
14745         * appdomain.c: increased corlib version.
14746         * filewatcher.c: removed g_print.
14747         * icall.c:
14748         (get_property_info): only allocate what is actually requested.
14749         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
14750
14751 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14752
14753         * Makefile.am: added filewatcher.[ch]
14754         * filewatcher.[ch]: FileSystemWatcher runtime support.
14755         * icall.c: added new FSW icalls.
14756
14757 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
14758
14759         * string-icalls.c: fix stringbuilder regression as suggested by
14760         Iain McCoy <iain@mccoy.id.au>.
14761
14762 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
14763
14764         * process.c (process_read_stringtable_block): Recognize '007f' as
14765         a language neutral stringtable block.
14766
14767 2004-01-12  Patrik Torstensson
14768
14769         * object.h (MonoStringBuilder) : Changed layout to support our
14770         new stringbuilder class.
14771         * marshal.c: Change marshalling to support the new layout of 
14772         string builder.
14773         * appdomain.c: increased version number because new layout of
14774         string builder.
14775
14776 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
14777
14778         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
14779         assembly name as an string instead of an AssemblyName, since it is
14780         easier to extract info from it.
14781
14782         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
14783         the culture subdirectories too. Fixes #52231.
14784
14785 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14786
14787         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
14788         It takes 2 new parameters with an optional name for the method to look
14789         for and case ignoring info.
14790
14791         * threadpool.c: removed unused variable.
14792
14793 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14794
14795         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
14796         It takes 2 new parameters with an optional name for the property to look
14797         for and case ignoring info.
14798         Fixes bug #52753.
14799
14800 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
14801
14802         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
14803         Fix #52451.
14804
14805 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14806
14807         * appdomain.c:
14808         * assembly.c: escape the uri before passing it to g_filename_from_uri.
14809         Fixes bug #52630.
14810
14811 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
14812
14813         * reflection.c: Add support for more than one unmanaged resource.
14814
14815         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
14816         in field->def_value, as done in all other cases.
14817
14818         * reflection.c (mono_reflection_get_custom_attrs): Add support for
14819         TypeBuilders.
14820
14821         * reflection.c (mono_reflection_create_runtime_class): Remove 
14822         errorneous assignment to klass->element_class, since it is already
14823         done in mono_reflection_setup_internal_class.
14824
14825 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14826
14827         * gc.c: added missing LeaveCriticalSection.
14828         * icall.c: indented a couple of lines.
14829         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
14830         if we call EndInvoke inside a callback. Fixes bug #52601.
14831
14832 2004-01-07  Martin Baulig  <martin@ximian.com>
14833
14834         * mono-debug-debugger.h
14835         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
14836
14837 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
14838
14839         * appdomain.c: Use messages in NotImplementedException.
14840
14841         * exception.c (mono_get_exception_not_implemented): Now this takes
14842         a message argument.
14843
14844         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
14845         exception instead of g_asserting an aborting when something is not
14846         implemented.
14847
14848         Add some inline docs.
14849
14850 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
14851
14852         * reflection.h: Update after changes to object layout.
14853
14854         * reflection.c: Implement saving of unmanaged aka win32 resources.
14855
14856         * appdomain.c: Bump version number.
14857
14858         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
14859         Handle missing domains gracefully.
14860
14861 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
14862
14863         * file-io.c : On Windows, there are much more invalid_path_chars.
14864
14865 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
14866
14867         * class.h, object.c: prepare for GetType () speedup.
14868
14869 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
14870
14871         * profiler.c: workaround for --profile null reference exception on
14872           cygwin. Patch by Patrik Torstensson.
14873
14874 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
14875
14876         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
14877         make work for unaligned access.
14878
14879 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
14880
14881         * class.c: small cleanup (class->fields [i] -> field).
14882         * image.c: check address of metadata is valid.
14883
14884 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
14885
14886         * assembly.h assembly.c (mono_assembly_loaded): New public function to
14887         search the list of loaded assemblies.
14888
14889         * reflection.c (mono_reflection_type_from_name): Use 
14890         mono_assembly_loaded instead of mono_image_loaded.
14891
14892         * reflection.c: Fix warnings.
14893
14894 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
14895
14896         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
14897         is dynamic. This is needed since an assembly can contain both dynamic and
14898         non-dynamic images.
14899
14900         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
14901         assembly->dynamic.
14902
14903         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
14904
14905         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
14906         to store modules loaded using AddModule.
14907
14908         * reflection.c (mono_image_fill_file_table): Generalize this so it works
14909         on Modules.
14910
14911         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
14912
14913         * reflection.c (mono_image_fill_export_table_from_module): New function to
14914         fill out the EXPORTEDTYPES table from a module.
14915
14916         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
14917         into a separate function. Also handle loaded non-dynamic modules.
14918
14919         * reflection.c (mono_image_basic_init): Fix memory allocation.
14920
14921         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14922
14923         * assembly.c (mono_assembly_load_references): Make this public.
14924
14925 2003-12-19  Martin Baulig  <martin@ximian.com>
14926
14927         * class.c (mono_class_initialize_generic): Made this static, take
14928         a `MonoGenericInst *' instead of a `MonoClass *'.
14929         (mono_class_from_generic): Call mono_class_initialize_generic()
14930         unless we're already initialized or being called from
14931         do_mono_metadata_parse_generic_inst().
14932
14933         * class.h (MonoGenericInst): Added `initialized' and
14934         `init_pending' flags.
14935
14936         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
14937         `mono_class_init (gklass)' or mono_class_initialize_generic()
14938         here; set `generic_inst->init_pending' while parsing the
14939         `type_argv'.
14940
14941 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
14942
14943         * locales.c: include string.h for memxxx prototypes
14944
14945 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
14946
14947         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
14948         constructor when accessing literal fields.
14949
14950 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
14951
14952         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14953
14954         * reflection.c (assembly_add_resource_manifest): New function to fill
14955         the MANIFESTRESOURCE table.
14956
14957         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
14958
14959         * reflection.h: Update to changes in class layout.
14960
14961         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
14962         Reenable call to mono_runtime_is_shutting_down ().
14963
14964         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
14965         determine if the runtime is shutting down.
14966
14967 2003-12-16  Jackson Harper <jackson@ximian.com>
14968
14969         * icall.c: comment out call to mono_runtime_is_shutting_down to
14970         fix build.
14971         
14972 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
14973
14974         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
14975         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
14976
14977 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
14978
14979         * reflection.c: move definition of swap_with_size
14980         to before its first call
14981
14982 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
14983
14984         * appdomain.c (mono_runtime_is_shutting_down): New public function.
14985
14986         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
14987         icall.
14988
14989         * object.c: Fix warnings.
14990
14991         * icall.c (ves_icall_Type_Get...): Only consider inherited static
14992         members if FlattenHierarchy is set.
14993
14994         * reflection.c (mono_image_add_decl_security): New function to emit
14995         declarative security.
14996
14997         * reflection.h reflection.c: Add support for declarative security.
14998
14999         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
15000         
15001 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
15002
15003         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
15004         
15005         * appdomain.c verify.c: Moved corlib version checking into its own
15006         function in appdomain.c since it needs to create vtables etc.
15007
15008 2003-12-13  Patrik Torstensson <p@rxc.se>
15009
15010         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
15011         instead of unwrapped server.
15012
15013 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
15014
15015         * verify.c (check_corlib): Fix field index.
15016
15017 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
15018
15019         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
15020         GetGacPath icall.
15021
15022 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
15023
15024         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
15025         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
15026         cope with sizeof(size_t) != sizeof(guint32).
15027
15028 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15029
15030         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
15031         in case of failure.
15032
15033 2003-12-10  Mark Crichton <crichton@gimp.org>
15034
15035         * icall.c: removed the GetNonZeroBytes.  We now handle this case
15036         in managed code.
15037
15038         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
15039
15040 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
15041
15042         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
15043         marked as deleted.
15044
15045 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
15046
15047         * verify.c (check_corlib): Handle the case when the version field is 
15048         initialized by a static constructor.
15049
15050 2003-12-08  Patrik Torstensson  <p@rxc.se>
15051
15052     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
15053
15054 2003-12-08  Martin Baulig  <martin@ximian.com>
15055
15056         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
15057         a MonoReflectionGenericParameter, also take the parameter index
15058         and name as arguments.
15059         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
15060         (ves_icall_MonoGenericParam_initialize): New interncall.
15061         (ves_icall_Type_make_byref_type): New interncall.
15062
15063         * reflection.h (MonoReflectionGenericParam): Derive from
15064         MonoReflectionType, not just from MonoObject.  Added `refobj' and
15065         `index' fields.
15066
15067         * reflection.c (mono_reflection_define_generic_parameter): Create
15068         and return a new MonoReflectionGenericParam; don't initialize the
15069         constraints here.
15070         (mono_reflection_initialize_generic_parameter): New public method;
15071         initializes the constraints and creates the `param->pklass'.
15072
15073 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
15074
15075         * reflection.h reflection.c: Use the new fields 'num_types', 
15076         'num_fields' and 'num_methods' to track the number of types etc.
15077
15078         * verify.c (check_corlib): Check corlib version number.
15079
15080 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
15081
15082         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
15083         function works on all methods.
15084
15085 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
15086
15087         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
15088         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
15089         the custom_type_info flag of the transparent proxy.
15090         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
15091         objects that supports IRemotingTypeInfo.
15092         * object.h: Added custom_type_info field in transparent proxy.
15093
15094 2003-12-06  Martin Baulig  <martin@ximian.com>
15095
15096         * class.c (mono_class_create_from_generic): Removed.
15097         (mono_class_from_generic): Check `ginst->klass' before doing
15098         anything else.  This is important to fully support "recursive"
15099         generic types.
15100
15101         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
15102         empty `generic_inst->klass' before doing anything else.
15103
15104 2003-12-06  Dick Porter  <dick@ximian.com>
15105
15106         * verify.c: 
15107         * object.h:
15108         * icall.c:
15109         * locales.c: Use C structs to access class fields.  Don't do a
15110         conversion between MonoString and UChar because both are
15111         platform-endian UTF-16.  Compare now takes startindex and count
15112         parameters.  Add a char overload for IndexOf.  Speed up the
15113         invariant string IndexOf.
15114
15115 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
15116
15117         * Makefile.am (monosn_LDADD): Fix parallel build.
15118
15119 2003-12-04  Martin Baulig  <martin@ximian.com>
15120
15121         * icall.c
15122         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
15123         (ves_icall_Type_make_array_type): New interncall.       
15124
15125 2003-12-04  Martin Baulig  <martin@ximian.com>
15126
15127         * locales.c: also change it in the !HAVE_ICU case.
15128
15129 2003-12-04  Dick Porter  <dick@ximian.com>
15130
15131         * icall.c:
15132         * locales.c: construct_compareinfo is now in CompareInfo, not
15133         CultureInfo.
15134
15135 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
15136
15137         * image.c (mono_image_load_file_for_image): Cache loaded images in the
15138         image->files array.
15139
15140         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
15141         table as well.
15142
15143         * assembly.c (mono_assembly_load_references): Only load references
15144         once.
15145
15146         * class.c (mono_class_from_name): Avoid linear search of the 
15147         EXPORTEDTYPE table.
15148
15149         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
15150
15151 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
15152
15153         * image.h (MonoImage): Add 'field_cache' field.
15154
15155         * loader.c (mono_field_from_token): Cache field lookups.
15156         
15157         * reflection.c (mono_module_get_object): Fix name property.
15158
15159         * icall.c (ves_icall_get_enum_info): Update after changes to 
15160         mono_metadata_get_constant_index ().
15161
15162         * icall.c: Get rid of get_type_info icall, use a separate icall for
15163         each type property to avoid needless memory allocations. Fixes #51514.
15164
15165         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
15166         to avoid needless binary searches.
15167
15168         * class.c (class_compute_field_layout): Move the initialization of
15169         field->def_value to mono_class_vtable ().
15170
15171         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
15172         non-corlib types.
15173
15174         * object.c (mono_object_allocate): Make it inline.
15175
15176         * object.c (mono_object_allocate_spec): Make it inline.
15177         
15178 2003-12-02  Dick Porter  <dick@ximian.com>
15179
15180         * locales.c (create_NumberFormat): NumberFormatInfo construction.
15181         Patch by Mohammad DAMT (mdamt@cdl2000.com).
15182
15183 2003-12-01  Dick Porter  <dick@ximian.com>
15184
15185         * threads.c: Fix signature and call in CreateMutex and
15186         CreateEvent.
15187
15188 2003-12-01  Dick Porter  <dick@ximian.com>
15189
15190         * icall.c: 
15191         * locales.c: Implement string compares and searching
15192
15193         * object.h: Add extra Thread field
15194
15195 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
15196
15197         * reflection.c (fixup_method): Add support for MonoCMethod.
15198
15199 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
15200
15201         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
15202
15203         * reflection.c (assembly_name_to_aname): Allow extra characters in
15204         assembly names. Fixes #51468.
15205
15206 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
15207
15208         * exception.c (mono_exception_from_name_domain): New helper function.
15209
15210         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
15211         exception object in the correct domain.
15212
15213         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
15214         formatting + make a copy a the input data.
15215
15216         * loader.c (mono_get_method_from_token): Methods which contain
15217         native code do not have entries in the ImplMap.
15218
15219         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
15220         Thanks to Gonzalo for spotting this.
15221         
15222         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
15223         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
15224
15225         * assembly.h (mono_assembly_load_from): Split the second part of 
15226         assembly loading into a new public function.
15227
15228         * exception.h (mono_get_exception_bad_image_format): New function.
15229
15230 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
15231
15232         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
15233         Enumerate all modules inside a dynamic assembly. Fixes #51293.
15234         
15235         * icall.c: Add new icall for creating dynamic methods.
15236
15237         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
15238
15239         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
15240
15241         * reflection.c (mono_reflection_create_dynamic_method): New icall to
15242         create a dynamic method.
15243
15244         * reflection.c (resolve_object): New helper function.
15245
15246         * reflection.c: Generalize ReflectionMethodBuilder and the functions
15247         which manipulate it so they can also work on dynamic methods.
15248
15249         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
15250         creating the MonoReflectionMethodAux structure if it is not needed.
15251         
15252         * reflection.h verify.c: Update after changes to object layout.
15253
15254         * reflection.c (method_builder_encode_signature): Fix compilation on
15255         gcc 2.95.x.
15256
15257 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
15258
15259         * appdomain.h: Added support for context static fields. Added static_data
15260           field to MonoAppContext and renamed thread_static_fields to a more
15261           generic special_static_fields in MonoAppDomain, since it can now contain
15262           context static fields.
15263         * domain.c: Updated hashtable name.
15264         * object.c: Replaced field_is_thread_static() for a more generic
15265           field_is_special_static() which also checks for context static attribute.
15266           In mono_class_vtable(), added support for static context fields.
15267         * threads.c: Changed methods that manage thread static fields to more
15268           generic methods so they can be reused both for thread and context static
15269           data.
15270         * threads.h: Declared some new methods.
15271
15272 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
15273
15274         * reflection.h: Update after changes to the managed types.
15275
15276         * reflection.c (encode_custom_modifiers): New helper function.
15277
15278         * reflection.c (method_encode_signature): Emit custom modifiers.
15279
15280         * reflection.c (field_encode_signature): Emit custom modifiers.
15281
15282 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
15283
15284         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
15285
15286         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
15287         implementation.
15288
15289         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
15290         icall.
15291
15292         * object.c (mono_field_get_value_object): New function.
15293
15294         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
15295         specific.
15296
15297 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
15298
15299         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
15300         return a preallocated out-of-memory exception instance.
15301
15302         * object.c (out_of_memory): Use the new function.
15303
15304         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
15305         flag is before the custom modifiers. Fixes #49802.
15306
15307 2003-11-16  Martin Baulig  <martin@ximian.com>
15308
15309         * class.c (mono_class_is_open_constructed_type): Implemented the
15310         MONO_TYPE_GENERICINST case.
15311
15312 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
15313
15314         * assembly.c (mono_assembly_fill_assembly_name): New function to
15315         fill out the MonoAssemblyName structure.
15316         (mono_assembly_open): Use the new function.
15317
15318         * icall.c (fill_reflection_assembly_name): New helper function.
15319
15320         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
15321         new function.
15322
15323         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
15324
15325 2003-11-15  Martin Baulig  <martin@ximian.com>
15326
15327         * class.c (mono_class_is_open_constructed_type): New public
15328         function; checks whether a type is an open constructed type,
15329         ie. whether it still contains type parameters.
15330         (mono_class_inflate_generic_type): If we're a type parameter and
15331         the inflated type is also a MONO_TYPE_(M)VAR, return the original
15332         type.
15333
15334         * class.h (MonoGenericInst): Added `guint32 is_open'.
15335
15336         * loader.c (method_from_methodspec): Check whether we're an open
15337         or closed constructed type and set `ginst->is_open'.
15338
15339         * reflection.c (mono_reflection_bind_generic_parameters): Check
15340         whether we're an open or closed constructed type and set
15341         `ginst->is_open'.
15342         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
15343         from open constructed types.
15344
15345 2003-11-15  Martin Baulig  <martin@ximian.com>
15346
15347         * reflection.c (mono_reflection_bind_generic_parameters): If we're
15348         a generic instance (instead of a generic type declaration) with
15349         unbound generic parameters, bind them to our actual types.
15350
15351 2003-11-14  Martin Baulig  <martin@ximian.com>
15352
15353         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
15354
15355         * reflection.c (mono_reflection_bind_generic_parameters): If we're
15356         an interface type, populate `res->interfaces' with instantiated
15357         versions of all the interfaces we inherit.
15358
15359 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
15360
15361         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
15362         when MONO_PATH is set but doesn't contain the install dir.
15363
15364 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15365
15366         * icall.c:
15367         (ves_icall_Type_GetInterfaces): don't return an interface twice when
15368         it's also implemented in base classes. Fixes bug #50927.
15369
15370 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
15371
15372         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
15373         if this method is called from a finalizer. Fixes #50913.
15374
15375 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
15376
15377         * threads.c: Implement VolatileRead/VolatileWrite
15378
15379         * icall.c: Add new icalls for VolatileRead/VolatileWrite
15380
15381 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15382
15383         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
15384         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
15385         2.95.3.
15386
15387         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
15388         from Peter Ross (pro@missioncriticalit.com).
15389         
15390 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
15391
15392         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
15393
15394 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15395
15396         * assembly.c (mono_assembly_load_references): Disable check because it
15397         triggers on older corlibs which lots of people have.
15398
15399 2003-11-12  Jackson Harper  <jackson@ximian.com>
15400
15401         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
15402         load corlib.dll if mscorlib.dll is not found.
15403         * assembly.h: Remove corlib name define.
15404         * class.c:
15405         * domain.c:
15406         * image.c: Change corlib name to mscorlib.
15407         
15408 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15409
15410         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
15411
15412 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
15413
15414         * appdomain.h: Added loader_optimization here to sync with the C#
15415         code, and add disallow_binding_redirects field.
15416
15417 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
15418
15419         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
15420
15421         * reflection.c (mono_image_build_metadata): Fix crash on modules
15422         with no types.
15423
15424         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
15425
15426         * icall.c (ves_icall_get_method_info): Return callingConvention as
15427         well.
15428
15429         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
15430         namespaces from the EXPORTEDTYPE table as well.
15431
15432         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
15433         from all modules inside the assembly.
15434         
15435 2003-11-11  Martin Baulig  <martin@ximian.com>
15436
15437         * reflection.c (mono_reflection_bind_generic_parameters): Make
15438         this work for interfaces.
15439
15440 2003-11-11  Martin Baulig  <martin@ximian.com>
15441
15442         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
15443
15444 2003-11-11  Martin Baulig  <martin@ximian.com>
15445
15446         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
15447         "MonoInflatedMethod" and "MonoInflatedCtor".
15448
15449 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
15450
15451         * reflection.c (resolution_scope_from_image): Use the assembly table
15452         from the manifest module, since other modules don't have it.
15453
15454         * debug-helpers.c (mono_type_full_name): New helper function.
15455
15456         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
15457
15458         * image.c (mono_image_load_file_for_image): New public function which
15459         is a replacement for the load_file_for_image in class.c.
15460
15461         * assembly.c (mono_assembly_load_module): A wrapper for the function
15462         above which does assembly association and reference loading too.
15463
15464         * class.c (mono_class_from_name): Call mono_assembly_load_module.
15465
15466 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15467
15468         * appdomain.c: not all of the attributes for the full assembly name
15469         are required and the order doesn't matter. Fixes bug #50787.
15470
15471 2003-11-10  Dick Porter  <dick@ximian.com>
15472
15473         * locales.c: Use platform-endian UTF16
15474
15475 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
15476
15477         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
15478         
15479 2003-11-10  Martin Baulig  <martin@ximian.com>
15480
15481         * metadata.c
15482         (mono_metadata_load_generic_params): Make this actually work.
15483
15484         * reflection.c (mono_reflection_bind_generic_parameters): If our
15485         parent is a generic instance, pass all the `types' to it, no
15486         matter whether it has the same number of type parameters or not.
15487
15488 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
15489
15490         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
15491
15492         * assembly.c (mono_assembly_load_references): Move the image<->assembly
15493         assignment code to this function so it gets called recursively for all
15494         modules.
15495
15496         * image.c (load_modules): Remove the assembly assignment since it is
15497         now done by mono_assembly_load_references.
15498         
15499         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
15500         Add 'module' argument.
15501         (mono_module_get_types): New helper function.
15502         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
15503
15504 2003-11-08  Martin Baulig  <martin@ximian.com>
15505
15506         * class.c (mono_class_inflate_generic_method): Interface method
15507         don't have a header.
15508
15509         * reflection.c (mono_image_get_methodspec_token): Take an
15510         additional `MonoGenericInst *' argument instead of reading it from
15511         the header; this is necessary to support interfaces.
15512         (mono_image_create_token): Pass the `MonoGenericInst *' from the
15513         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
15514         (inflated_method_get_object): Take an additional `MonoGenericInst *'
15515         argument.
15516
15517         * reflection.h (MonoReflectionInflatedMethod): Added
15518         `MonoGenericInst *ginst'.
15519
15520 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
15521
15522         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
15523
15524 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
15525
15526         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
15527
15528 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
15529
15530         * reflection.c 
15531         (reflection_methodbuilder_from_method_builder):
15532         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
15533         initialize a ReflectionMethodBuilder structure.
15534         (mono_image_get_methodbuilder_token):
15535         (mono_image_get_ctorbuilder_token): New functions to emit memberref
15536         tokens which point to types in another module inside the same assembly.
15537
15538         * reflection.c: Use the new helper functions.
15539         
15540         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
15541
15542         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
15543         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
15544
15545         * reflection.c (resolution_scope_from_image): Emit a moduleref if
15546         neccesary.
15547
15548         * reflection.c (mono_image_build_metadata): Emit metadata only for the
15549         current module. Emit the manifest only for the main module.
15550
15551         * reflection.c (mono_image_create_token): Add assertion when a 
15552         memberref needs to be created.
15553
15554         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
15555
15556         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
15557         larger buffer for the custom attribute blob. Fixes #50637.
15558         
15559 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15560
15561         * threadpool.c: notify listener on async processing handles after
15562         invoking the async callback. Thanks to Zoltan.
15563
15564 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15565
15566         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
15567         avoid code duplication.
15568
15569         * reflection.h (MonoDynamicImage): New type which is currently unused,
15570         but will be used through the ref.emit code in place of 
15571         MonoDynamicAssembly.
15572
15573         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
15574         object layout.
15575
15576         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
15577         a MonoDynamicImage instead of just a MonoImage.
15578         
15579         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
15580         icalls to ModuleBuilder but keep their semantics, so they will work
15581         with moduleb->assemblyb. This will change later.
15582         
15583 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15584
15585         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
15586         object layout.
15587
15588         * reflection.c (mono_image_build_metadata): Avoid creation of a default
15589         main module, since it is now done by the managed code.
15590
15591 2003-11-03  Martin Baulig  <martin@ximian.com>
15592
15593         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
15594         `ginst->klass' here.
15595         (method_encode_methodspec): Don't use the `ginst->generic_method's
15596         klass if it's a generic instance, use `ginst->klass' in this case.
15597
15598 2003-11-03  Martin Baulig  <martin@ximian.com>
15599
15600         * reflection.c (mono_image_get_generic_method_param_info):
15601         Removed, use mono_image_get_generic_param_info() instead.
15602         (mono_image_get_type_info): Write the GenericParam table before
15603         the Method table.  This is neccessary because in the GenericParam
15604         table, type parameters of the class (ie. '!0' etc.) must come
15605         before the ones from its generic methods (ie. '!!0' etc).
15606
15607 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15608
15609         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
15610
15611 2003-11-02  Martin Baulig  <martin@ximian.com>
15612
15613         * reflection.c (create_generic_typespec): Take a
15614         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
15615         the generic parameters from it.
15616
15617 2003-11-02  Martin Baulig  <martin@ximian.com>
15618
15619         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
15620         instead of a `MonoClassField *' since we just need the type.
15621         (create_generic_typespec): New static function.  Creates a
15622         TypeSpec token for a generic type declaration.
15623         (mono_image_get_generic_field_token): New static function.
15624         (mono_image_create_token): If we're a FieldBuilder in a generic
15625         type declaration, call mono_image_get_generic_field_token() to get
15626         the token.
15627
15628 2003-11-02  Martin Baulig  <martin@ximian.com>
15629
15630         * reflection.h
15631         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
15632         `MonoReflectionGenericInst *declaring_type' and
15633         `MonoReflectionGenericInst *reflected_type' fields.
15634
15635         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
15636         `MonoReflectionGenericInst *declaring_type' and a
15637         `MonoReflectionGenericInst *reflected_type' argument instead of a
15638         single `MonoReflectionGenericInst *type' one.  Set
15639         `res->declaring_type' and `res->reflected_type' from them.
15640         (mono_reflection_inflate_field): Likewise.      
15641
15642 2003-11-02  Martin Baulig  <martin@ximian.com>
15643
15644         * class.c (mono_class_setup_vtable): Don't store generic methods
15645         in the vtable.  
15646
15647 2003-11-02  Martin Baulig  <martin@ximian.com>
15648
15649         * reflection.h (MonoReflectionGenericInst): Added
15650         `MonoReflectionType *declaring_type'.
15651
15652         * reflection.c (mono_reflection_bind_generic_parameters): Use
15653         `if (tb->parent)' instead of `klass->parent'.
15654
15655 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
15656
15657         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
15658         with an empty ASSEMBLY table.
15659
15660         * reflection.c (mono_image_build_metadata): Avoid using the same loop
15661         variable in the inner and outer loops.
15662
15663 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
15664
15665         * metadata.h (mono_metadata_make_token): Put parentheses around macro
15666         argument.
15667
15668         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
15669         
15670         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
15671         icalls. Instead, do everything in managed code. This is needed since
15672         it is hard to restore the original domain etc. in unmanaged code in the
15673         presence of undeniable exceptions.
15674
15675         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
15676         New icalls to push and pop appdomain refs.
15677
15678 2003-10-31  Martin Baulig  <martin@ximian.com>
15679
15680         * class.c (inflate_generic_type): Renamed to
15681         mono_class_inflate_generic_type() and made it public.
15682
15683         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
15684         New interncall.
15685
15686         * loader.c (mono_field_from_memberref): Also set the retklass for
15687         typespecs.
15688
15689         * fielder.c (mono_image_get_inflated_field_token): New static
15690         method; creates a metadata token for an inflated field.
15691         (mono_image_create_token, fixup_method): Added support for
15692         "MonoInflatedField".
15693         (fieldbuilder_to_mono_class_field): New static function.
15694         (mono_reflection_inflate_field): New public function.
15695
15696         * reflection.h
15697         (MonoReflectionGenericInst): Added `MonoArray *fields'.
15698         (MonoReflectionInflatedField): New typedef.     
15699
15700 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
15701
15702         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
15703         for Solaris and other platforms without s6_addr16
15704
15705 2003-10-30  Martin Baulig  <martin@ximian.com>
15706
15707         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
15708         argument instead of two.
15709         (mono_class_inflate_generic_signature): Likewise.
15710         (inflate_generic_header): Likewise.
15711         (mono_class_inflate_generic_method): Likewise.  In addition, if
15712         `ginst->klass' is set, it becomes the new `method->klass'.
15713
15714         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
15715         field.
15716
15717         * reflection.c (encode_generic_method_sig): Write a 0xa as the
15718         first byte. [FIXME]
15719         (method_encode_methodspec): If we have generic parameters, create
15720         a MethodSpec instead of a MethodRef.
15721         (fixup_method): Added support for "MonoInflatedMethod" and
15722         "MonoInflatedCtor".
15723         (mono_image_create_token): Added support for "MonoInflatedMethod"
15724         and "MonoInflatedCtor".
15725         (inflated_method_get_object): New static function; returns a
15726         managed "System.Reflection.MonoInflatedMethod" object.
15727         (mono_reflection_bind_generic_method_parameters): Return a
15728         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
15729         (mono_reflection_inflate_method_or_ctor): Likewise.
15730         (mono_image_get_generic_method_param_info): Initialize unused
15731         fields to zero.
15732         (mono_image_get_generic_param_info): Likewise.
15733
15734         * reflection.h (MonoReflectionInflatedMethod): New public
15735         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
15736         "S.R.MonoInflatedCtor" classes.
15737
15738         * loader.c (method_from_memberref): If we're a TypeSpec and it
15739         resolves to a generic instance, inflate the method.
15740
15741 2003-10-28  Dick Porter  <dick@ximian.com>
15742
15743         * object.c (mono_runtime_run_main): Convert command-line arguments
15744         into utf8, falling back to the user's locale encoding to do so.
15745
15746 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
15747
15748         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
15749         at this time.
15750
15751         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
15752
15753         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
15754         up icalls at method definition time. Partially fixes #33569.
15755
15756 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
15757
15758         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
15759         marshalling of arrays. Fixes #50116.
15760
15761         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
15762
15763         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
15764         points to a vtable in the dying appdomain.
15765
15766         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
15767         listeners into unmanaged code inside the lock.
15768
15769         * object.c (mono_class_vtable): Turn off typed allocation in non-root
15770         domains and add some comments.
15771
15772 2003-10-25  Martin Baulig  <martin@ximian.com>
15773
15774         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
15775
15776         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
15777
15778         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
15779         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
15780         currently parsing.  Create the generic class and store it in
15781         `generic_inst->klass' before parsing the type arguments.  This is
15782         required to support "recursive" definitions; see mcs/tests/gen-23.cs
15783         for an example.
15784         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
15785         to support recursive typespec entries.
15786
15787         * class.c (mono_class_setup_parent): If our parent is a generic
15788         instance, we may get called before it has its name set.
15789         (mono_class_from_generic): Splitted into
15790         mono_class_create_from_generic() and mono_class_initialize_generic().
15791
15792 2003-10-25  Martin Baulig  <martin@ximian.com>
15793
15794         * icall.c (ves_icall_Type_BindGenericParameters): Return a
15795         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
15796         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
15797         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
15798
15799         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
15800         (create_typespec): Likewise.
15801         (mono_reflection_bind_generic_parameters): Return a
15802         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
15803         (mono_reflection_inflate_method_or_ctor): New public function.
15804
15805         * reflection.h (MonoReflectionGenericInst): New typedef.        
15806
15807 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
15808
15809         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
15810         inside the domain lock. Fixes #49993.
15811         
15812         * object.c (mono_class_vtable): When typed allocation is used, 
15813         allocate vtables in the GC heap instead of in the mempool, since the
15814         vtables contain GC descriptors which are used by the collector even
15815         after the domain owning the mempool is unloaded.
15816
15817         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
15818
15819         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
15820         reflect what it does. Also invalidate mempools instead of freeing
15821         them if a define is set.
15822
15823         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
15824         of the appdomain.
15825         
15826         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
15827         hold the finalizable objects in this domain.
15828
15829         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
15830         appdomain.
15831
15832         * appdomain.c (mono_domain_set): New function to set the current
15833         appdomain, but only if it is not being unloaded.
15834
15835         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
15836         appdomain which is being unloaded.
15837         
15838         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
15839         unloading of the root appdomain.
15840
15841         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
15842         icall to execute a method in another appdomain. Intended as a 
15843         replacement for InternalSetDomain, which can confuse the code 
15844         generation in the JIT.
15845
15846         * appdomain.c (mono_domain_is_unloading): New function to determine
15847         whenever an appdomain is unloading.
15848
15849         * appdomain.c (mono_domain_unload): New function to correctly unload
15850         an appdomain.
15851
15852         * assembly.c (mono_assembly_load_references): Check that an assembly
15853         does not references itself.
15854
15855         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
15856         domain manually, it asks the finalizer thread to do it, then waits for
15857         the result. Also added a timeout.
15858
15859         * icall.c: Register the new icalls.
15860
15861         * threads.h threads.c: Export the mono_gc_stop_world and 
15862         mono_gc_start_world functions.
15863         
15864         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
15865         function to fill out the mempool with 0x2a.
15866
15867 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
15868
15869         * reflection.h (MonoReflectionMethodAux): New structure to store
15870         information which is rarely used, thus is not in the MonoMethod
15871         structure.
15872
15873         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
15874         store the aux info.
15875
15876         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
15877         and marshalling info into the aux structure.
15878
15879         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
15880         from the aux structure.
15881
15882         * loader.c (mono_method_get_param_names): Retrieve the param names from
15883         the aux structure.
15884         
15885 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
15886
15887         * exception.h exception.c: Add AppDomainUnloadedException && fix 
15888         warning.
15889
15890 2003-10-21  Dick Porter  <dick@ximian.com>
15891
15892         * socket-io.c
15893         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
15894         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
15895
15896 2003-10-21  Martin Baulig  <martin@ximian.com>
15897
15898         * reflection.c (mono_reflection_bind_generic_parameters):
15899         `klass->parent' is NULL for interfaces.
15900
15901 2003-10-21  Martin Baulig  <martin@ximian.com>
15902
15903         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
15904
15905 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
15906
15907         * exception.c (mono_exception_from_name_msg): New helper function for
15908         creating exceptions and initializing their message field.
15909
15910         * exception.c: Simplify functions using the new helper.
15911
15912         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
15913         New function.
15914
15915         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
15916         mono_raise_exception, since otherwise gcc doesn't generate the function
15917         epilog for raise_exception, confusing the stack unwinding in the JIT.
15918         Fixes #45043.
15919
15920         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
15921         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
15922         Fixes #49499.
15923
15924 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15925
15926         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
15927         utf8.
15928
15929 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
15930
15931         * icall.c: Removed GetUninitializedObject method because
15932           AllocateUninitializedClassInstance does the same.
15933
15934 2003-10-18  Martin Baulig  <martin@ximian.com>
15935
15936         * class.c (inflate_generic_signature): Renamed to
15937         mono_class_inflate_generic_signature() and made it public.
15938         (my_mono_class_from_generic_parameter): New static function; if we
15939         don't already have the generic parameter's MonoClass, create a
15940         very simple one which is just used internally in the runtime and
15941         not passed back to managed code.
15942
15943         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
15944
15945         * metadata.h (MonoMethodSignature): Moved the
15946         `MonoGenericParam *gen_params' to the MonoMethodHeader.
15947         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
15948
15949         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
15950         ves_icall_MonoMethod_GetGenericArguments(); this is now an
15951         interncall on the MonoMethod class, not on MethodInfo.
15952         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
15953         calling mono_reflection_bind_generic_method_parameters() directly.
15954
15955         * loader.c (mono_method_get_signature): If this is a MethodSpec;
15956         return the already computed `method->signature'.
15957         (method_from_methodspec): New static function to load a method
15958         from a MethodSpec entry.
15959         (mono_get_method_from_token): Call the new method_from_methodspec()
15960         for MethodSpec tokens.  
15961         (mono_get_method_from_token): If we're a generic method, load the
15962         type parameters.
15963
15964         * reflection.c (mono_image_get_memberref_token): Allow
15965         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
15966         table.
15967         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
15968         (mono_image_create_token): First check whether it's a generic
15969         method (so we'd need to create a MethodSpec), then do the other
15970         two alternatives.
15971         (mono_reflection_bind_generic_method_parameters): Return a
15972         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
15973         called directly from the interncall.
15974
15975 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
15976
15977         * reflection.c (load_public_key): Move loading of the public key
15978         into managed code.
15979
15980         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
15981
15982         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
15983         fields.
15984
15985         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
15986         culture, hash_alg and public_key. Fixes #49555.
15987
15988 2003-10-17  Martin Baulig  <martin@ximian.com>
15989
15990         * class.h (MonoGenericInst): Moved this declaration here and added
15991         `MonoMethod *generic_method'.
15992
15993         * icall.c
15994         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
15995         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
15996
15997         * metadata.c (mono_metadata_type_equal): Two types of
15998         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
15999         index; ie. don't compare the address of the `MonoGenericParam'
16000         structure.
16001         (mono_metadata_load_generic_params): Removed the `MonoMethod
16002         *method' argument.
16003
16004         * metadata.h (MonoGenericInst): Moved declaration to class.h.
16005         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
16006
16007         * reflection.c (method_encode_signature): Encode the number of
16008         generic parameters.
16009         (encode_generic_method_sig): New static function.
16010         (method_encode_methodspec): New static function; creates an entry
16011         in the MethodSpec table for a generic method.
16012         (mono_image_get_methodspec_token): New static function.
16013         (mono_image_create_token): Call mono_image_get_methodspec_token()
16014         for generic methods.
16015         (mono_reflection_bind_generic_method_parameters): New public
16016         function.  Instantiates a generic method.
16017
16018 2003-10-16  Martin Baulig  <martin@ximian.com>
16019
16020         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
16021         *gen_params' here from MonoMethodHeader.
16022
16023         * metadata.c (mono_metadata_parse_method_signature): If we have
16024         generic parameters, initialize `method->gen_params' and then set
16025         the correct `type->data.generic_param' in all the parameters.
16026
16027 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
16028
16029         * threads.c (mono_threads_get_default_stacksize): New function to 
16030         return the default stacksize.
16031
16032         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
16033         termination of the finalizer thread, since the previous method had
16034         race conditions. Fixes #49628.
16035
16036         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
16037         as for the other managed threads.
16038
16039 2003-10-16  Martin Baulig  <martin@ximian.com>
16040
16041         * class.c (inflate_generic_signature): Copy `generic_param_count'
16042         and `gen_params'.
16043
16044         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
16045         New interncall.
16046
16047         * metadata.c (mono_metadata_parse_method_signature): Actually set
16048         the `method->generic_param_count' here.
16049         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
16050
16051 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
16052
16053         * object.h: Add a new field to TypedRef to simplify the implementation
16054         of the REFANY opcodes in the JIT.
16055
16056         * icall.c: Make use of the new field.
16057
16058         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
16059         dynamically.
16060
16061 2003-10-15  Martin Baulig  <martin@ximian.com>
16062
16063         * class.c (mono_class_from_gen_param): Renamed to
16064         mono_class_from_generic_parameter() and moved most of the
16065         functionality from mono_reflection_define_generic_parameter()
16066         here; ie. we create a "real" class here.
16067         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
16068         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
16069         previously been called.
16070
16071         * class.h (MonoGenericParam): Moved the declaration of this struct
16072         here from metadata.h and added `MonoMethod *method'.
16073
16074         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
16075         interncall.
16076
16077         * loader.c (mono_get_method_from_token): If we have any generic
16078         parameters, call mono_metadata_load_generic_params() to read them
16079         from the MONO_TABLE_GENERICPAR.
16080
16081         * metadata.c (mono_metadata_load_generic_params): Added
16082         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
16083
16084         * metadata.h (MonoMethodSignature): Replaced
16085         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
16086         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
16087
16088         * reflection.c (mono_reflection_define_generic_parameter): Moved
16089         most of the functionality into the new
16090         mono_class_from_generic_parameter(); set the `method' field if
16091         we're a method parameter.       
16092
16093 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
16094
16095         * marshal.c (emit_struct_conv): if native size is 0
16096         emit no code.
16097
16098 2003-10-14  Martin Baulig  <martin@ximian.com>
16099
16100         * icall.c: The generics API has changed in the spec since it was
16101         added to System.Type; these modifications make it match the spec
16102         again.
16103         (ves_icall_Type_GetGenericParameters): Renamed to
16104         `ves_icall_Type_GetGenericArguments'.
16105         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
16106         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
16107         `ves_icall_MonoType_get_HasGenericArguments'.
16108         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
16109         `ves_icall_MonoType_get_IsGenericParameter'.
16110         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
16111         this is no interncall anymore.
16112         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
16113         `ves_icall_TypeBuilder_get_IsGenericParameter'.
16114
16115 2003-10-14  Martin Baulig  <martin@ximian.com>
16116
16117         * reflection.c (mono_reflection_bind_generic_parameters): Also
16118         inflate generic methods if we're reading the class from IL.
16119
16120 2003-10-13  Martin Baulig  <martin@ximian.com>
16121
16122         * reflection.c (mono_reflection_define_generic_parameter): This
16123         method isn't called directly from the icall anymore; take a
16124         `MonoReflectionAssemblyBuilder *' so we can use this for type and
16125         method generic parameters.
16126         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
16127         (method_builder_encode_signature): Encode generic parameters.
16128         (mono_image_get_method_info): Write generic params to the
16129         MONO_TABLE_GENERICPARAM table.
16130
16131         * reflection.h (MonoReflectionMethodBuilder): Added
16132         `MonoArray *generic_params'.
16133
16134         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
16135
16136         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
16137         wrapper for mono_reflection_define_generic_parameter().
16138         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
16139
16140 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
16141
16142         * marshal.h: Add missing function to fix build.
16143
16144         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
16145         the SetLastError pinvoke attribute.
16146
16147         * marshal.c (mono_marshal_set_last_error): New helper function called
16148         by the generated code.
16149         
16150         * marshal.c (mono_mb_emit_branch): New helper function.
16151
16152         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
16153
16154         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
16155         classes as parameters and return values of delegates. Fixes #29256. 
16156
16157 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
16158
16159         * locales.c: use gint32 in non HAVE_ICU case
16160
16161 2003-10-11  Martin Baulig  <martin@ximian.com>
16162
16163         * mono-debug.c (mono_debug_add_method): Added a workaround for
16164         bug #48591.
16165
16166 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
16167
16168         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
16169         delegates passed to native code must use the STDCALL calling 
16170         convention. Fixes #35987.
16171
16172 2003-10-10  Martin Baulig  <martin@ximian.com>
16173
16174         * class.c (inflate_generic_type): If we're inflating for a generic
16175         type instance (and not for a generic method), return
16176         MONO_TYPE_MVAR unchanged.
16177
16178 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16179
16180         * string-icalls.c: Join ignores null strings in the source array.
16181         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
16182         * threads.c: GetAvailableTheads is slightly more accurate.
16183
16184 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
16185
16186         * threads.h threads.c : add mono_threads_set_default_stacksize
16187         and pass default to CreateThread calls.
16188
16189 2003-10-09  Dick Porter  <dick@ximian.com>
16190
16191         * icall.c:
16192         * locales.h:
16193         * locales.c: Internal calls for constructing CultureInfo and
16194         related objects from libicu (if its available.)
16195
16196 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
16197
16198         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
16199
16200 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16201
16202         * threadpool.c: added an argument to async_invoke_thread that is the
16203         item to process, pass the MonoAsyncResult to the thread start function
16204         when creating a new thread. This way we don't need to acquire any lock
16205         when we're creating a new thread. Readded a semaphore for faster
16206         response times (instead of that Sleep i added).
16207
16208 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
16209
16210         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
16211         get daylight change dates better on Windows, fix handling
16212         of platforms without tm_gmtoff.
16213
16214 2003-10-06  Martin Baulig  <martin@ximian.com>
16215
16216         * class.c (inflate_generic_method): Renamed to
16217         mono_class_inflate_generic_method() and made public.
16218         (mono_class_init): Don't inflate the generic methods here.
16219         (mono_class_from_generic): Added `gboolean inflate_methods'
16220         argument.  Inflate the methods here.
16221
16222         * loader.c (mono_method_get_param_names): Ignore instances of
16223         generic types for the moment.
16224
16225         * reflection.c (fixup_method): Added support for inflated methods.
16226         (mono_image_create_token): Use mono_image_get_methodref_token()
16227         for inflated methods.
16228         (mono_custom_attrs_from_param): Ignore instances of generic types
16229         for the moment.
16230         (mono_reflection_bind_generic_parameters): New public function.
16231         Moved all the functionality from
16232         ves_icall_Type_BindGenericParameters() here and added support for
16233         dynamic types.
16234         (mono_reflection_define_generic_parameter): Initialize
16235         `klass->methods' here.
16236
16237         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
16238         functionality into mono_reflection_define_generic_parameter().
16239         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
16240         TypeBuilder, return that TypeBuilder.
16241
16242 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16243
16244         * appdomain.c: removed mono_delegate_semaphore.
16245
16246         * threadpool.c:
16247         (mono_thread_pool_add): moved hash table creation inside and the thread 
16248         creation outside of the critical region.
16249         (mono_thread_pool_finish): removed obsolete code.
16250         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
16251         continue or exit the thread depending on the queue.
16252
16253 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
16254
16255         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
16256         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
16257         handle more bool marshalling options
16258
16259 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
16260
16261         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
16262         arrays of structs. Also add a more descriptive error message when
16263         a structure member is marshalled as LPArray.
16264
16265 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
16266
16267         * marshal.c (mono_marshal_get_native_wrapper): Add support for
16268         marshalling arrays of complex types. Fixes #29098. Also remove an
16269         usused and incomplete function.
16270
16271 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
16272
16273         * gc.c: report heap_size - free_bytes as total memory allocated
16274         (bug#49362).
16275
16276 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
16277
16278         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
16279         fix timezone handling problems on Windows.
16280         
16281         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
16282         asserts when the year is outside the range handled by ms the functions.
16283
16284         * class.c (setup_interface_offsets): If the class is an interface,
16285         fill out its interface_offsets slot.
16286
16287 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16288
16289         * threadpool.c: mark threadpool threads as background.
16290
16291 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
16292
16293         * decimal.c - define DECINLINE to nothing if not using GCC
16294
16295 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
16296
16297         * assembly.c: More refcount fixes.
16298
16299 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16300
16301         * string-icalls.c: if we're not trimming, return the same string.
16302         When not splitting, don't create a new string.
16303
16304 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16305
16306         * image.c:
16307         (mono_image_open): increment the ref_count inside the critical section.
16308
16309 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
16310
16311         * image.c (mono_image_open): Fix reference counting bug.
16312
16313 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
16314
16315         * marshal.c (mono_marshal_type_size) struct alignment changed for 
16316         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
16317         64bits. Avoid leak in mono_marshal_get_native_wrapper when
16318         mono_lookup_pinvoke_call throws.        
16319
16320 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
16321
16322         * reflection.c (mono_reflection_parse_type): Fix #49114.
16323
16324         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
16325         temporary workaround for cygwin header problem.
16326
16327         * object.c (mono_object_isinst): Synchronize this with the code
16328         generated by the JIT for casts.
16329
16330 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
16331
16332         * reflection.c (encode_type): Fix #38332.
16333
16334 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
16335
16336         * marshal.c (mono_marshal_method_from_wrapper): New function to return
16337         the original method from the wrapper method.
16338
16339 2003-09-25  Martin Baulig  <martin@ximian.com>
16340
16341         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
16342         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
16343         (ves_icall_Type_get_IsGenericInstance): New interncall.
16344
16345 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
16346
16347         * object.c: fix cast warning in big endian code.
16348
16349 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
16350
16351         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
16352         
16353 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16354
16355         * assembly.c: don't call check_env from mono_assembly_load. It's
16356         already done once in mono_assemblies_init and may cause headaches when
16357         multiple threads are loading assemblies.
16358
16359 2003-09-19  Martin Baulig  <martin@ximian.com>
16360
16361         * reflection.c (mono_reflection_define_generic_parameter): Don't
16362         allocate `klass->methods', set `klass->flags' to
16363         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
16364
16365 2003-09-18  Martin Baulig  <martin@ximian.com>
16366
16367         * class.c (mono_class_init): Don't create `class->methods' if it's
16368         already initialized.
16369
16370         * metadata.c (mono_metadata_load_generic_params): Make this
16371         actually work.
16372
16373         * reflection.c (mono_reflection_define_generic_parameter): Set
16374         parent class and interfaces from the constraints.
16375
16376         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
16377         to keep this struct in sync with the declaration in TypeBuilder.cs.
16378
16379 2003-09-17  Martin Baulig  <martin@ximian.com>
16380
16381         * metadata.h (MonoType): Replaced the data's `int type_param'
16382         field with `MonoGenericParam *generic_param'.
16383         (MonoGenericParam): Added `MonoClass *klass'.
16384
16385         * class.c (mono_class_from_gen_param): Removed the
16386         `MonoImage *image' and `int type_num' arguments.
16387
16388         * metadata.c (mono_metadata_parse_generic_param): New static
16389         method; creates a MonoGenericParam which just contains the index.
16390         (do_mono_metadata_parse_type): Call
16391         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
16392         MONO_TYPE_MVAR.
16393
16394         * reflection.c (mono_image_typedef_or_ref): Generic type
16395         parameters may be in the same assembly, but never use a typedef
16396         for them.
16397         (mono_reflection_define_generic_parameter): We're now creating a
16398         "real" class for the type parameter; it's now safe to call
16399         mono_class_from_mono_type() on the class'es type, it'll do the
16400         right thing.
16401
16402 2003-09-16  Martin Baulig  <martin@ximian.com>
16403
16404         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
16405         `symfile->range_entry_size' and `symfile->class_entry_size' here;
16406         the `symfile' data structure must be fully initialized before it
16407         gets added to the table.
16408
16409 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
16410
16411         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
16412
16413         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
16414         class init trampolines.
16415
16416 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
16417
16418         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
16419         to the built-in profiler to turn off time and allocation profiling
16420         respectively.
16421
16422 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
16423
16424         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
16425         g_direct_equal.
16426
16427         * debug-helpers.c (mono_method_full_name): Print the wrapper type
16428         in human readable form.
16429
16430 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
16431
16432         * reflection.c icall.c: Fixed warnings.
16433
16434         * image.c (load_class_names): Use a temporary hash table to hold the
16435         namespaces in order to avoid doing many string comparisons.
16436
16437         * image.h: Fix typo.
16438
16439         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
16440         Pass NULL instead of g_direct_equal to the GHashTable constructor 
16441         since the NULL case is short-circuited inside g_hash_table_lookup, 
16442         leading to better performance.  
16443
16444         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
16445         obtain the first custom attribute for a given index. Depends on the
16446         CustomAttribute table being sorted by the parent field.
16447
16448         * reflection.c (mono_custom_attrs_from_index): Use the new function 
16449         for better performance.
16450
16451 2003-09-07  Martin Baulig  <martin@ximian.com>
16452
16453         * class.c (mono_class_init): If we're a generic instance, inflate
16454         all our methods instead of loading them from the image.
16455         (mono_class_from_generic): Set `class->methods = gklass->methods'.
16456
16457 2003-09-07  Martin Baulig  <martin@ximian.com>
16458
16459         * mono-debug-debugger.c: Added support for constructors.
16460
16461 2003-09-06  Martin Baulig  <martin@ximian.com>
16462
16463         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
16464         New interncall.
16465
16466         * reflection.c (mono_reflection_setup_generic_class): Call
16467         ensure_runtime_vtable() to create the vtable.
16468
16469 2003-09-05  Martin Baulig  <martin@ximian.com>
16470
16471         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
16472         MONO_TYPE_MVAR.
16473
16474 2003-09-04  Martin Baulig  <martin@ximian.com>
16475
16476         * reflection.c (mono_reflection_define_generic_parameter): Generic
16477         parameters start with zero.
16478
16479 2003-09-04  Martin Baulig  <martin@ximian.com>
16480
16481         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
16482
16483         * reflection.h (MonoReflectionGenericParam): New typedef.
16484         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
16485         the generic parameters from the managed TypeBuilder.
16486
16487         * reflection.c (mono_reflection_define_generic_parameter): New function.
16488         (mono_reflection_create_runtime_class): Encode generic parameters.
16489         (mono_reflection_setup_generic_class): New function; this is
16490         called after adding adding all generic params to the TypeBuilder.
16491         (encode_type): Added MONO_TYPE_VAR.
16492
16493 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
16494
16495         * class.h class.c (mono_class_needs_cctor_run): Moved this method
16496         here from the JIT.
16497
16498         * assembly.h assembly.c: Moved the AOT loading code into an assembly
16499         load hook.
16500
16501 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
16502
16503         * reflection.h reflection.c class.h class.c: Delete duplicate 
16504         definition of mono_type_get_name () from reflection.c and export the
16505         one in class.c.
16506
16507         * class.c: Class loading fixes from Bernie Solomon 
16508         (bernard@ugsolutions.com).
16509
16510         * reflection.c: Endianness fixes from Bernie Solomon 
16511         (bernard@ugsolutions.com).
16512         
16513 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
16514
16515         * assembly.h assembly.c: Define a file format version for AOT
16516         libraries.
16517         
16518         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
16519
16520         * appdomain.h (MonoJitInfo): New field to determine whenever the
16521         code is domain neutral.
16522         
16523 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
16524
16525         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
16526
16527 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
16528
16529         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
16530         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
16531         Avoid caching the result since strings must be domain specific. Fixes
16532         #48050.
16533
16534 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
16535
16536         * marshal.c (mono_marshal_init): Make this callable multiple times
16537         since it is hard to find a correct place to call it.
16538
16539         * object.c (mono_runtime_class_init): Execute static constructors in
16540         the correct appdomain.
16541
16542         * image.c (build_guid_table): Handle the case when multiple images have
16543         the same GUID.
16544
16545 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16546
16547         * icall.c: added a couple of icalls for System.Web.
16548
16549 2003-08-28  Martin Baulig  <martin@ximian.com>
16550
16551         * icall.c (ves_icall_Type_BindGenericParameters): Use
16552         `klass->generic_inst' instead of `&klass->byval_arg' in the
16553         mono_type_get_object() call.  The returned type must be
16554         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
16555
16556 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
16557
16558         * NOTES: New file.
16559
16560         * object.c (mono_class_proxy_vtable): Make it thread safe.
16561
16562         * pedump.c: Fix warning.
16563
16564         * object.c appdomain.h: Get rid of metadata_section. 
16565         It is no longer needed and it was causing deadlocks with domain->lock.
16566
16567         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
16568
16569 2003-08-26  Martin Baulig  <martin@ximian.com>
16570
16571         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
16572
16573 2003-08-26  Martin Baulig  <martin@ximian.com>
16574
16575         * pedump.c (main): Call mono_metadata_init(),
16576         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
16577         and mono_loader_init().
16578
16579 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
16580
16581         * loader.h: Add missing include to fix build.
16582
16583         * image.h: mono_image_load_references is no more.
16584
16585         * assembly.c: Reworked assembly loading to make it really thread safe.
16586         After these changes, the assembly returned by mono_assembly_open is
16587         fully initialized, i.e. all its references assemblies are loaded.
16588
16589         * assembly.c (mono_image_load_references): Renamed to 
16590         mono_assembly_load_references, and made private, since clients no
16591         longer need to call it.
16592
16593         * class.c: Removed calls to mono_assembly_load_references, since it was
16594         a source of deadlocks.
16595
16596         * loader.h loader.c class.h class.c: Protect data structures using a 
16597         new lock, the loader lock.
16598
16599         * class.c (mono_class_setup_vtable): Create temporary hash tables and
16600         GPtrArrays only when needed.
16601
16602         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
16603         into empty structures by mcs. Fixes pinvoke7.cs.
16604         
16605         * domain.c (mono_init): Call a new initialization function.
16606
16607         * appdomain.c (mono_runtime_init): Call the new initializer function
16608         of the marshal module.
16609
16610         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
16611         inserted into empty structures by mcs. Fixes pinvoke7.cs.
16612
16613         * marshal.h marshal.c: Added locks around the wrapper caches to make
16614         this module thread safe.
16615
16616         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
16617         this argument. Fixes pinvoke1.exe.
16618
16619 2003-08-25  Lluis Sanchez <lluis@ximian.com>
16620
16621         * object.h: Added call_type field to MonoMethodMessage and the corresponding
16622         enumeration of values. Removed fields to store remote call output values in
16623         MonoAsyncResult. Not needed any more.
16624         * object.c: Initialize call_type and async_result fields in mono_message_init.
16625         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
16626         dispatching the message.
16627         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
16628         async call to finish. To do it use a message with EndInvoke call type.
16629
16630 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
16631
16632         * loader.h loader.c (mono_method_hash_marhal_info): New function which
16633         determines whenever a method has marshalling info.
16634
16635 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16636
16637         * assembly.c: fix the build on windows.
16638
16639 2003-08-22 Lluis Sanchez <lluis@ximian.com>
16640
16641         * object.cs: Fixed bug #47785.
16642
16643 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
16644
16645         * string-icalls.c (StringReplace): If their are no occurances of
16646         the old string found return a reference to the supplied
16647         string. This saves some memory and matches MS behavoir.
16648         
16649 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16650
16651         * socket-io.c: fixed compilation for systems that define AF_INET6
16652         and don't define SOL_IP/SOL_IPV6.
16653
16654 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
16655
16656         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
16657         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
16658
16659         * rawbuffer.c rawbuffer.h: Make this module thread safe.
16660
16661         * domain.c: Make this module thread safe.
16662
16663         * domain.c (mono_init): Call new initialization function.
16664
16665         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
16666         reference types too. Fixes #38812.
16667
16668         * image.c (mono_image_init): Fixed warnings.
16669
16670         * class.c (mono_class_from_typeref): Handle assembly load failure
16671         correctly.
16672
16673         * appdomain.c (add_assemblies_to_domain): Handle the case when
16674         the references of an assembly are not yet loaded.
16675
16676         * metadata.c image.c assembly.c: Moved initialization of global
16677         variables to a separate function called at startup since lazy 
16678         initialization of these variables is not thread safe.
16679         
16680         * image.c assembly.c: Made this module thread safe by adding locks in 
16681         the appropriate places.
16682
16683         * domain.c (mono_init): Call the new initialization functions of the
16684         three modules.
16685
16686 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
16687
16688         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
16689           make a direct call. It is proxy's work to make the call asynchronous.
16690           mono_delegate_end_invoke(): If the targe is a proxy, just collect
16691           the return values.
16692         * object.cs: mono_method_call_message_new(): read AsyncResult and
16693           state object from parameters list, if this info is requested.
16694         * object.h: Added fields to store remote call output values in
16695           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
16696
16697 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16698
16699         * object.h: add needed fields to MonoThread.
16700         * threads.c, threads.h: allow registering a function to cleanup data
16701         allocated per thread by the JIT.
16702
16703 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16704
16705         * loader.h: portability fix by Bernie Solomon
16706         * <bernard@ugsolutions.com>.
16707
16708 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
16709
16710         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
16711         return a MonoArray. This simplifies the code and also ensures that
16712         the cache allways contains an object reference as a value.
16713
16714         * icall.c (ves_icall_get_parameter_info): Simplified using the new
16715         function.
16716
16717 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16718
16719         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
16720         fixes a problem with byte ordering when getting the address family for
16721         a socket.
16722
16723 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
16724
16725         * .cvsignore: Added monosn.
16726
16727         * reflection.h reflection.c loader.c: Added support for parameter
16728         marshalling to dynamically created types. Fixes #47295.
16729
16730 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
16731
16732         * rand.c: remove useless warnings.
16733
16734 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
16735
16736         * class.c: implemented ldtoken for methods and fieldrefs.
16737
16738 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16739
16740         * threadpool.c: when mono_async_invoke was called, no one took care of
16741         monitoring the queue. So if the method invoked took some time and we
16742         got new async invoke requests after 500 ms (the thread created waited
16743         that long in WaitForSingleObject), the new async invoke was not called
16744         until the previous one finished.
16745
16746         This is fixed now. Thanks to Totte for helping with it.
16747
16748 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16749
16750         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
16751
16752 2003-08-11  Martin Baulig  <martin@ximian.com>
16753
16754         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
16755
16756 2003-08-06  Martin Baulig  <martin@ximian.com>
16757
16758         * mono-debug-debugger.c: Added support for static fields,
16759         properties and methods.
16760
16761 2003-08-06  Martin Baulig  <martin@ximian.com>
16762
16763         * mono-debug-debugger.c: Don't store the MonoString's vtable to
16764         make this work for applications with multiple application domains.
16765
16766 2003-08-04  Martin Baulig  <martin@ximian.com>
16767
16768         * mono-debug-debugger.c: Completely reworked the type support; the
16769         most important thing is that we're now just using one single
16770         `MonoType' instance per type.
16771
16772 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
16773
16774         * mono-endian.h, mono-endian.c, icall.c: Added icall
16775         ves_icall_System_Double_AssertEndianity to assert double word endianity
16776         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
16777
16778 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16779
16780         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
16781         support, icalls and fixes.
16782
16783 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
16784
16785         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
16786         classes that are a punctuation character in .NET is not the same a
16787         g_unichar_ispunct.
16788
16789 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16790
16791         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
16792
16793 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
16794
16795         * icall.c: Add new MemCopy internalcall.
16796         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
16797         Simplified code; It is not necessary to handle all the cases here,
16798         as the C# code takes care of it.  Only handle the case of the name
16799         resource embedded into the assembly.
16800
16801         Changed signature to return the data pointer and the size of the
16802         data. 
16803
16804 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
16805
16806         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
16807         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
16808
16809 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
16810
16811         * socket-io.c: ignore EINTR error in select.
16812
16813 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
16814
16815         * class.h, class.c: removed unused subclasses field in MonoClass.
16816
16817 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
16818
16819         * icall.c: improve fix of get_base_definition(). If the parent class
16820           doesn't have the mehod, look at the parent of the parent.
16821         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
16822           to check if a parameter is an in or out parameter
16823           (PARAM_ATTRIBUTE_IN is not set by default).
16824           mono_method_return_message_restore(): Use mono_class_value_size to
16825           get the size of a value type. mono_type_stack_size (parameterType)
16826           does not return the correct value if parameterType is byRef.
16827           mono_load_remote_field(), mono_load_remote_field_new(),
16828           mono_store_remote_field(), mono_store_remote_field_new():
16829           raise exception if the remote call returns an exception.
16830
16831 2003-07-28  Martin Baulig  <martin@ximian.com>
16832
16833         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
16834         method.  This is a wrapper around mono_runtime_invoke() which
16835         boxes the instance object if neccessary.
16836
16837 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16838
16839         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
16840         metadata.h, row-indexes.h, verify.c: first cut of generics support.
16841
16842 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16843
16844         * icall.c: disable mcs bug workaround.
16845
16846 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
16847
16848         * object.c (mono_runtime_class_init): Take the metadata_section
16849         mutex before obtaining the domain mutex.
16850
16851         * appdomain.h: Added definition of metadata_section mutex here. 
16852
16853         * object.c: define metadata_mutex here.
16854
16855 2003-07-24  Ravi Pratap  <ravi@ximian.com>
16856
16857         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
16858         fixed.
16859
16860 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
16861
16862         * reflection.c: Fix bug #46669
16863
16864 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16865
16866         * exception.c:
16867         * exception.h:
16868         * icall.c:
16869         * object.h: fill in the type name for TypeLoadException.
16870
16871 2003-07-23  Ravi Pratap  <ravi@ximian.com>
16872
16873         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
16874         relationship between TypeBuilders while compiling corlib) and bug
16875         45993 (Array types returned from the runtime while compiling
16876         corlib were from the loaded corlib).
16877
16878 2003-07-22  Martin Baulig  <martin@ximian.com>
16879
16880         * mono-debug-debugger.c: Reworked the type support a bit more;
16881         distinguish between types and classes.
16882
16883 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
16884
16885         * icall.c: add IsArrayImpl icall.
16886
16887 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
16888
16889         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
16890         initializing real_size only once. Also fix bug #46602.
16891
16892 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
16893
16894         * object.c: Renamed mono_metadata_section to metadata_section.
16895
16896 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
16897
16898         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
16899           empty array if the type is an array. Fixed.
16900           ves_icall_MonoMethod_get_base_definition: if the base method
16901           is abstract, get the MethodInfo from the list of methods of
16902           the class.
16903         * reflection.c: ParameterInfo.PositionImpl should be zero-based
16904           and it was 1-based. Fixed in mono_param_get_objects.
16905
16906 2003-07-20  Martin Baulig  <martin@ximian.com>
16907
16908         * mono-debug.h: Set version number to 31.
16909         (mono_debug_init): Added `MonoDomain *' argument.
16910
16911         * mono-debug-debugger.c: Reworked the type support; explicitly
16912         tell the debugger about builtin types; pass the `klass' address to
16913         the debugger.
16914
16915 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
16916
16917         * image.c: Allow new metadata tables to be loaded without a
16918         warning. Also update the warning message to give the new constant value.
16919                 
16920 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
16921
16922         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
16923         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
16924         array type representation changes.
16925
16926 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
16927
16928         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
16929         on Environment.Exit () call.
16930
16931 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
16932
16933         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
16934         requires a matching corlib.
16935
16936 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
16937
16938         * Changelog: My editor decided to add a CR to each line. Sorry about that.
16939           Committed again without the CRs.
16940         
16941 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
16942
16943         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
16944           getting it from the "this" socket instance. Did not work
16945           if the socket is a subclass of Socket.
16946           Also fixed bug #35371.
16947
16948 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
16949
16950         * metadata.c: fixed size for TypedByRef.
16951         * loader.c: when searching for a method, consider the vararg amrker.
16952         * unicode.c, decimal.c: constify some arrays.
16953
16954 2003-07-15  Dick Porter  <dick@ximian.com>
16955
16956         * socket-io.c: Fixed compilation for gcc < 3.2.
16957
16958         Fixed compilation for machines that don't have AF_INET6 (thanks to
16959         Bernie Solomon <bernard@ugsolutions.com> for that part.)
16960
16961         Fixed compile warnings.
16962         
16963         Fixed formatting and line endings.
16964
16965 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
16966
16967         * socket-io.h:
16968         * socket-io.c: Added IPv6 support.
16969
16970 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
16971
16972         * class.c (mono_class_is_assignable_from): New function to implement
16973         the is_assignable_from logic. Used by mono_object_isinst, 
16974         Type::IsAssignableFrom () and the interpreter.
16975
16976         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
16977         Object, even interfaces.
16978         
16979         * object.c (mono_object_isinst): Implement in terms of 
16980         is_assignable_from.
16981
16982         * icall.c (ves_icall_type_is_assignable_from): New icall.
16983
16984 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
16985
16986         * domain.c (foreach_domain): fix compiler warning.
16987
16988 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
16989
16990         * image.c (load_metadata_ptrs): use g_strndup because strndup is
16991         not available on all plattforms
16992
16993 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
16994
16995         * image.h image.c: Store the metadata version string in MonoImage.
16996         * icall.c: New icall to retrieve the image version.
16997         * reflection.c (create_dynamic_image): Fill in the image version field
16998         * reflection.c (build_compressed_metadata): Use the image version
16999         from the image structure.
17000
17001 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17002
17003         * appdomain.c: modified comment.
17004         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
17005         That will be its last iteration when mono_gc_cleanup is called from
17006         mono_runtime_cleanup and before the domain is unloaded.
17007
17008         Fixes bug #45962.
17009
17010 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
17011
17012         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
17013         attributes.
17014
17015 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
17016
17017         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
17018         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
17019         Bernie Solomon <bernard@ugsolutions.com>.
17020
17021 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
17022
17023         * object.c, object.h: provide mono_object_new_fast() for faster
17024         allocation in some special cases.
17025
17026 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
17027
17028         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
17029         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
17030
17031 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
17032
17033         * threadpool.c: fix leaks.
17034
17035 2003-07-01  Dick Porter  <dick@ximian.com>
17036
17037         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
17038         using MonoGHashTables.  Fixes threadpool bug posted to list.
17039
17040 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
17041
17042         * image.h, image.c: added support to load an assembly from a byte array.
17043         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
17044         assembly bundle support.
17045
17046 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
17047
17048         * threadpool.c (mono_thread_pool_add): keep a reference to the
17049         AsyncResult to prevent GC
17050
17051 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
17052
17053         * class.c: leak fix.
17054
17055 2003-06-25  Dick Porter  <dick@ximian.com>
17056
17057         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
17058         for the async object, the WaitHandle object will close the handle.
17059         Fixes bug 45321.
17060
17061 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
17062
17063         * class.c: in mono_array_class_get (), lookup from the hash with the
17064         same type we insert: this works around a bug in
17065         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
17066         lluis. The real fix will have to wait for after the release.
17067
17068 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
17069
17070         * icall.c: fix memory leak when getting type members.
17071
17072 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
17073
17074         * reflection.c: added more pubtoken special cases.
17075
17076 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
17077
17078         * class.c: handle field offset correctly when class size
17079         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
17080
17081 2003-06-20  Martin Baulig  <martin@ximian.com>
17082
17083         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
17084         *image' field.
17085
17086 2003-06-20  Martin Baulig  <martin@ximian.com>
17087
17088         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
17089
17090 2003-06-20  Martin Baulig  <martin@ximian.com>
17091
17092         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
17093         just distinguish between variables in registers and variables at
17094         an offset relative to a register.
17095
17096 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17097
17098         * icall.c: #ifdef out latest changes until mcs is fixed.
17099
17100 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
17101
17102         * icall.c: return members in metadata order.
17103
17104 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
17105
17106         * icall.c: avoid infinite loop in GetTimeZoneData.
17107
17108 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
17109
17110         * icall.c: added Marshal.Prelink/All icalls.
17111
17112 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
17113
17114         * object.c, object.h: fix warnings and do some overflow checking
17115         when creating arrays.
17116
17117 2003-06-17  Dick Porter  <dick@ximian.com>
17118
17119         * file-io.h:
17120         * file-io.c: File attributes need to be tweaked slightly when
17121         passed from the managed to the w32 world.
17122
17123 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
17124         * profiler.h profiler-private.h profiler.c: Rework last patch
17125         based on suggestion by Paolo.
17126         
17127 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
17128
17129         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
17130         instruction level coverage data collection.
17131         * profiler.h profiler.c (: Added new callback function which can be
17132         used by the profiler to limit which functions should have coverage
17133         instrumentation.
17134         * profiler.c (mono_profiler_load): Call g_module_build_path to
17135         generate the file name of the profiler library.
17136
17137 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
17138
17139         * profiler.c, profiler.h, profiler-private.h: added basic block 
17140         coverage profiling API.
17141
17142 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
17143
17144         * reflection.c (mono_reflection_create_runtime_class): Add support
17145         for events in dynamically generated code.
17146
17147         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
17148         not allocated.
17149
17150 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
17151
17152         * icall.c: when getting timezone info, return reasonable values if we
17153         can't get the actual data.
17154
17155 2003-06-14  Dick Porter  <dick@ximian.com>
17156
17157         * threads.c (start_wrapper): Remove the reference to the thread
17158         object in the TLS data, so the thread object can be finalized.
17159         This won't be reached if the thread threw an uncaught exception,
17160         so those thread handles will stay referenced :-( (This is due to
17161         missing support for scanning thread-specific data in the Boehm GC
17162         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
17163
17164 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
17165
17166         * reflection.c: ensure streams and tables are first allocated with
17167         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
17168
17169 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
17170
17171         * icall.c: fixed GetElementType for byrefs (bug# 44792).
17172
17173 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
17174
17175         * reflection.c (mono_reflection_create_runtime_class): Add support for
17176         properties to dynamically created classes.
17177         * reflection.c: Fix a few places where non-MonoObjects were inserted
17178         into the tokens hashtable.
17179
17180 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
17181
17182         * object.c: some support to handle out of memory exceptions.
17183
17184 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
17185
17186         * marshal.c (mono_marshal_get_native_wrapper): support reference
17187         return types
17188
17189 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
17190
17191         * object.h, object.c: more portability stuff from Bernie Solomon.
17192         Unexport mono_object_allocate(). Added mono_object_unbox ().
17193         Set exitcode when an unhandled exception is thrown.
17194
17195 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
17196
17197         * marshal.c (mono_marshal_get_native_wrapper): use custom
17198         marshaler for return types.
17199
17200 2003-06-10  Dick Porter  <dick@ximian.com>
17201
17202         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
17203         ip_mreq is available
17204
17205 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
17206
17207         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
17208         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
17209         by Bernie Solomon <bernard@ugsolutions.com>.
17210
17211 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
17212
17213         * gc.c (mono_gc_init): Avoid error message on shutdown when
17214         GC_DONT_GC=1 is used.
17215
17216         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
17217         New icall to return the GUID of a module.
17218
17219 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
17220
17221         * class.c: ensure instance size always includes the parent's size
17222         even whem class size is set explicitly (fixes bug#44294).
17223
17224 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
17225
17226         * profiler.h, profiler.c: made the simple profiler thread-safe,
17227         get more accurate timing info. Allow the loading of an
17228         externally-developed profiler module.
17229
17230 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
17231
17232         * marshal.c (mono_marshal_get_native_wrapper): improved
17233         class/byref arguments.
17234         (mono_marshal_get_native_wrapper): better string marshaling support.
17235
17236 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
17237
17238         * class.c: ensure .pack and .size are handled correctly and
17239         simplified layout of static fields.
17240
17241 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
17242
17243         * appdomain.c
17244         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
17245
17246         * loader.c (mono_lookup_pinvoke_call): look for modules in the
17247         current directory (fix bug 44008)
17248
17249 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
17250
17251         * marshal.c (mono_marshal_get_native_wrapper): started support for
17252         custom marshalers.
17253         (mono_delegate_to_ftnptr): consider marshalling specifications
17254
17255 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
17256
17257         * reflection.c, reflection.h: emit custom marshal info.
17258
17259 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17260
17261         * object.c: free the GError.
17262         * icall.c: added CloseEvent_internal.
17263         * threads.[ch]:
17264         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
17265         call.
17266
17267 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
17268
17269         * loader.c (mono_method_get_signature): Add support for dynamic
17270         assemblies.
17271
17272 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
17273
17274         * reflection.c: fixed bug #43905.
17275
17276 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
17277
17278         * class.c, domain.c, icall.c, metadata.h, object.h: support for
17279         handling TypedReference and ArgIterator.
17280         * loader.c, loader.h: added function to get signature at call site.
17281
17282 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
17283
17284         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
17285         data readonly. Buglets and warning fixes. Some MethodSpec support.
17286
17287 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
17288
17289         * class.h, class.c, object.c: remove relative numbering support.
17290
17291 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
17292
17293         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
17294         free the string, until we get a chance to fix Gtk#
17295
17296 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17297
17298         * marshal.c: revert last patch.
17299
17300 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
17301
17302         * icall.c: updates for new mono_class_vtable() not calling
17303         the type constructor anymore.
17304
17305 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
17306
17307         * object.h, object.c: separate vtable creation from type
17308         initialization. Make running the .cctor thread safe.
17309
17310 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
17311
17312         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
17313
17314 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
17315
17316         * loader.c (mono_get_method): consider calling convention
17317
17318 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
17319
17320         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
17321         to return the invisible global type for a module.
17322
17323         * reflection.c (mono_image_build_metadata): Emit global fields too.
17324
17325 2003-05-20  Peter Williams  <peterw@ximian.com>
17326
17327         * loader.c (mono_lookup_internal_call): Add a few newlines.
17328
17329 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
17330
17331         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
17332         literal strings.
17333
17334         * appdomain.c (set_domain_search_path): Recalculate search path when
17335         AppDomainSetup.PrivateBinPath changes.
17336
17337         * object.c (mono_class_compute_gc_descriptor): It turns out some
17338         parts of the class libs (like System.Thread) holds pointers to
17339         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
17340         to treat native int a pointer type here.
17341         
17342 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
17343
17344         * appdomain.h, domain.c: add hashtable for jump target resolution.
17345
17346 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
17347
17348         * reflection.h reflection.c icall.c: Added new icalls 
17349         GetManifestResourceInfoInternal, GetModulesInternal and support
17350         infrastructure.
17351
17352 2003-05-16  Dick Porter  <dick@ximian.com>
17353
17354         * icall.c:
17355         * file-io.h:
17356         * file-io.c: Implement System.IO.MonoIO::GetTempPath
17357
17358 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
17359
17360         * object.c: mono_store_remote_field: little fix to previous patch.
17361
17362 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
17363
17364         * class.c: add constructors to array classes.
17365         * icall.c: special case array construction for InternalInvoke (),
17366
17367 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
17368
17369         * class.h class.c reflection.c object.c: Added support for field
17370         defaults in dynamically generated classes.
17371
17372 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
17373
17374         * reflection.c: properly encode charset for ddlimport.
17375
17376 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
17377
17378         * threads.c: allow compiling without GC.
17379
17380 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
17381
17382         * appdomain.h, object.c, object.h, threads.c, threads.h: added
17383         handling of thread static data.
17384
17385 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
17386
17387         * reflection.h, reflection.c: added mono_custom_attrs_free ().
17388
17389 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
17390
17391         * class.c (mono_array_class_get): always set the serializable flags
17392         (mono_array_class_get): always set the SEALED attribute for array types
17393
17394 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
17395
17396         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
17397         attributes (fix for bug 42021).
17398
17399 2003-05-12  Dick Porter  <dick@ximian.com>
17400
17401         * gc.c: Don't run finalizers when the finalizer thread is
17402         finishing up, because the default domain has already been
17403         destroyed.
17404
17405 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
17406
17407         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
17408         value is null, we should throw an exception.   This is slightly
17409         different than the other conventions used for the constructor.
17410
17411 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17412
17413         * socket-io.c: fixed windows build.
17414
17415 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17416
17417         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
17418
17419 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
17420
17421         * object.c (mono_string_new_wrapper): Compatibility fix for MS
17422         compilers.
17423
17424 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
17425
17426         * class.c (mono_class_layout_fields): Add experimental GC aware
17427         auto layout facility. Requires class library changes to work correctly.
17428
17429         (mono_class_setup_vtable): Avoid overriding explicit interface
17430         method implementations. Fixes iface3.exe test.
17431
17432         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
17433         object reference.
17434         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
17435         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
17436
17437         * metadata.h: Add new type classification macro which determines
17438         whenever the type holds an object reference.
17439
17440 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
17441
17442         * marshal.c (mono_marshal_get_native_wrapper): cleanups
17443
17444 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
17445
17446         * gc.c (finalizer_thread): Work around a GC bug.
17447
17448 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
17449
17450         * marshal.c (emit_struct_conv): allow unions
17451
17452         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
17453
17454 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
17455
17456         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
17457
17458 2003-05-06  Martin Baulig  <martin@ximian.com>
17459
17460         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
17461
17462 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17463
17464         * socket-io.c:
17465         (Select_internal): allow NULLs, don't create arrays if not needed.
17466         Coupled with Socket.cs changes.
17467
17468         * threadpool.c:
17469         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
17470         register a finalizer for it that will close the semaphore handle. This
17471         fixes the leak and make Lupus' test run with > 4080 loops.
17472
17473 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
17474
17475         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
17476         Jerome Laban (bug #42287)
17477
17478 2003-05-02  Martin Baulig  <martin@ximian.com>
17479
17480         * debug-mono-symfile.h
17481         (MonoSymbolFile): Moved declaration into mono-debug.h.
17482         (MonoDebugMethodJitInfo): Likewise.
17483         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
17484         argument.
17485         (_mono_debug_address_from_il_offset): Take a
17486         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
17487
17488         * mono-debug.h
17489         (MonoDebugDomainData): New struct.
17490         (mono_debug_get_domain_data): New function.
17491         (mono_debug_add_method): Take an additional `MonoDomain *'
17492         argument.
17493         (mono_debug_source_location_from_address): Likewise.
17494         (mono_debug_il_offset_from_address): Likewise.
17495         (mono_debug_address_from_il_offset): Likewise.
17496
17497 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
17498
17499         * reflection.c: one more check for null type in custom attrs.
17500
17501 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17502
17503         * reflection.c: avoid warning (comparison is always false due to limited
17504         range of data type).
17505
17506 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17507
17508         * icall.c: throw an exception in Type.GetField if the argument 'name'
17509         is NULL.
17510
17511 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
17512
17513         * reflection.c: fixed handling of enums in named arguments to custom
17514         attributes (bug #42123).
17515
17516 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
17517
17518         * reflection.c: use the right array element type and handle
17519         a null for a Type argument, too.
17520
17521 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
17522
17523         * reflection.c: handle arrays as arguments to custom attributes.
17524
17525 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
17526
17527         * reflection.c: handle a string value in a custom attr
17528         ctor that takes an object.
17529
17530 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
17531
17532         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
17533         (fix bug #42063)
17534
17535 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
17536
17537         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
17538
17539 2003-04-27  Martin Baulig  <martin@ximian.com>
17540
17541         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
17542         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
17543         MONO_DEBUGGER_EVENT_BREAKPOINT.
17544         (mono_breakpoint_trampoline_code): Removed.
17545         (mono_debugger_event_handler): The last argument is now a
17546         `guint32'.
17547         (mono_debugger_insert_breakpoint_full): Removed the
17548         `use_trampoline' argument.
17549         (mono_debugger_method_has_breakpoint): Likewise.
17550         (mono_debugger_trampoline_breakpoint_callback): Renamed to
17551         mono_debugger_breakpoint_callback(); take the method and
17552         breakpoint number as arguments.
17553
17554 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
17555
17556         * metadata.c: fix off by one when loading parameters attributes.
17557
17558 2003-04-24  Martin Baulig  <martin@ximian.com>
17559
17560         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
17561
17562 2003-04-24  Martin Baulig  <martin@ximian.com>
17563
17564         * mono-debug-debugger.c: Moved all code which interacts with the
17565         Mono Debugger here.
17566
17567         * debug-mono-symfile.c: This code now just deals with the symbol
17568         file itself, the debugger code is now in mono-debug-debugger.c.
17569
17570 2003-04-23  Martin Baulig  <martin@ximian.com>
17571
17572         * mono-debug.c (mono_debug_source_location_from_il_offset):
17573         New method; like mono_debug_source_location_from_address(), but
17574         takes an IL offset instead of a machine address.
17575
17576 2003-04-23  Martin Baulig  <martin@ximian.com>
17577
17578         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
17579         `line' field; this is now computed by the debugger.
17580
17581 2003-04-23  Martin Baulig  <martin@ximian.com>
17582
17583         * mono-debug.[ch]: New files.  This is the new debugging interface.
17584
17585         * mono-debug-debugger.[ch]: New files.  Moved all code which
17586         interacts with the Mono Debugger here.
17587
17588 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
17589
17590         * domain.c (mono_init): initialize mono_defaults.monitor_class
17591
17592 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
17593
17594         * reflection.c (method_encode_code): Add a spicy exception to help
17595         future compiler authors.
17596
17597 2003-04-21  Martin Baulig  <martin@ximian.com>
17598
17599         * icall.c
17600         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
17601         Make this work with relative pathnames; g_filename_to_uri() needs
17602         an absolute filename.
17603
17604 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
17605
17606         * icall.c: Track name changes in Object and ValueType.
17607
17608 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
17609
17610         * metadata.c (mono_type_stack_size): size should be a multiple of
17611         sizeof (gpointer)
17612
17613 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17614
17615         * gc.c:
17616         (internal_domain_finalize): moved into mono_domain_finalize. No need
17617         to create another thread because the finalizers will be run in the
17618         finalizer thread.
17619         
17620         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
17621         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
17622         to be run (MS does this too).
17623
17624 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
17625
17626         * object.c (mono_class_compute_gc_descriptor): Update comment.
17627
17628         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
17629
17630         * image.h: Add synchronized wrapper cache.
17631
17632         * image.c (do_mono_image_open): Initialize cache.
17633
17634         * reflection.c (create_dynamic_mono_image): Initialize cache.
17635
17636 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17637
17638         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
17639         ves_icall_System_Buffer_ByteLengthInternal.
17640
17641 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
17642
17643         * reflection.c: setup klass->nested_in earlier. Allow
17644         a dash in the assembly name.
17645
17646 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
17647
17648         * metadata.c (mono_type_to_unmanaged): dont access
17649         type->data.klass for MONO_TYPE_OBJECT
17650         (mono_type_to_unmanaged): consider System.Delegate class
17651
17652 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
17653
17654         * class.c: just setup supertypes in the proper place instead of
17655         initializing the full element class for arrays.
17656
17657 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
17658
17659         * class.c: ensure the element class of arrays is initialized.
17660         Setup the supertype info for array classes, too.
17661
17662 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
17663
17664         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
17665
17666 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17667
17668         * Makefile.am: re-added -m option when running cygpath. This way,
17669         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
17670         separator.
17671         * mono-config.c: same codepath for locating mono config file for WIN32
17672         and the rest.
17673         * assembly.c: if mono_assembly_setrootdir is called, don't override
17674         the value set.
17675
17676 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17677
17678         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
17679         MONO_ASSEMBLIES variable.
17680
17681 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
17682
17683         * icall.c: added Assembly::GetNamespaces() icall.
17684
17685 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17686
17687         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
17688
17689 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
17690
17691         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
17692         * object.c: fixed bug in the construction of vtable for proxies
17693
17694 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
17695
17696         * object.c (mono_array_new): Mark mono_array_new as an icall.
17697
17698 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17699
17700         * class.c: fixed test for public method when overriding interfaces.
17701         Closes bug #40970.
17702
17703 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
17704
17705         * appdomain.h, domain.c: added mono_domain_foreach() to
17706         be able to access the currently loaded appdomains.
17707         * object.c: make string interning work across sppdomains.
17708         Mark some functions for use as icalls.
17709
17710 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
17711
17712         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
17713
17714         * reflection.h reflection.c: Allocate long living data using 
17715         GC_MALLOC_ATOMIC so the collector does not need to scan it.
17716
17717         * reflection.c: Double the allocation size in streams instead of
17718         increasing it, to prevent unneccesary copying on large assemblies.
17719         
17720         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
17721         creation if the assembly does not have the Run flag set.
17722
17723 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
17724
17725         * class.h: avoid the C++ keywords in header files (Jerome Laban
17726         spotted and fixed this).
17727
17728 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17729
17730         * object.c:
17731         (mono_unhandled_exception): fill in the arguments for the
17732         UnhandledException event. Only trigger that event for the default
17733         domain (as MS does).
17734
17735 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
17736
17737         * object.c: Improve typed allocation stuff based on suggestions from
17738         Paolo. Also turn it on if the GC library supports it.
17739
17740 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
17741
17742         * object.c object.h class.h: Added experimental typed allocation
17743         facility using the interfaces in gc_gcj.h.
17744
17745         * os/gc_wrapper.h: Added new include files.
17746         
17747 2003-04-03  Martin Baulig  <martin@ximian.com>
17748
17749         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
17750         which is not yet enabled by default.
17751
17752         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
17753         functions.
17754         (mono_gc_lock, mono_gc_unlock): New static functions.
17755
17756         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
17757         functions; stop/start the world for the garbage collector.  This
17758         is using the windows API; we need to complete the SuspendThread()/
17759         ResumeThread() implementation in the io-layer to make this work on Unix.
17760         (mono_gc_push_all_stacks): New public function; tells the garbage
17761         collector about the stack pointers from all managed threads.
17762
17763 2003-04-03  Martin Baulig  <martin@ximian.com>
17764
17765         * object.h (MonoThread): Added `gpointer stack_ptr'.
17766
17767         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
17768
17769 2003-04-03  Martin Baulig  <martin@ximian.com>
17770
17771         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
17772
17773 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
17774
17775         * reflection.c (typebuilder_setup_fields): Initialize field.first and
17776         field.last.
17777
17778 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
17779
17780         * loader.c (mono_lookup_internal_call): Report the corlib that is
17781         out of sync.
17782
17783 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
17784
17785         * icall.c (ves_icall_type_GetTypeCode): fixed check for
17786         System.DBNull (it's class not valuetype).
17787
17788 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
17789
17790         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
17791         if the array method was already assigned a token (fixes bug#40646).
17792
17793 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
17794
17795         * reflection.c (mono_reflection_get_type): Attempt type resolve even
17796         if no assembly is given.
17797
17798 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
17799
17800         * metadata.h: Added the new tables.
17801
17802         * row-indexes.h: Added definitions for new tables.
17803
17804         * metadata.c: Add schemas for new tables, and add support for
17805         computing the sizes of them.
17806
17807         * class.c: Update for handling the new type cases.
17808
17809 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
17810
17811         * metadata.h (MONO_TYPE_IS_VOID): new macro
17812
17813 2003-03-31  Martin Baulig  <martin@ximian.com>
17814
17815         * threads.h (MonoThreadCallbacks): Added `thread_created'.
17816
17817         * threads.c (mono_thread_new_init): Call `thread_created' in the
17818         mono_thread_callbacks.
17819
17820 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
17821
17822         * loader.h: added marshalbyrefobject_class to mono_defaults
17823         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
17824         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
17825           generation of output parameters.
17826           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
17827         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
17828           contextbound and the target object belongs to the context of the caller.
17829         * object.h: added context and unwrapped_server variables in MonoRealProxy.
17830         * object.c: Implemented support for interfaces and abstract classes
17831           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
17832           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
17833
17834 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
17835
17836         * class.h class.c (mono_class_is_subclass_of): New function.
17837         
17838         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
17839         routines for most common case (calls from ArrayList::ToArray).
17840
17841         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
17842         routine so programs which call Environment::Exit() can be profiled.
17843
17844         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
17845         Added MONO_ARCH_SAVE_REGS.
17846
17847         * icall.c (ves_icall_type_is_subtype_of): Use new function.
17848
17849 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
17850
17851         * blob.h: Add a couple of new MonoType types definitions.
17852
17853         * tabledefs.h: Add a couple of new call convs.
17854
17855 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
17856
17857         * reflection.h (MonoReflectionDynamicAssembly): track changes in
17858         the layout of the class.
17859
17860         * reflection.c (alloc_table): double the size on overflow to avoid
17861         unnecessary copying.
17862
17863         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
17864         avoid filling out metadata tables and blobs. Also set mb->ilgen to
17865         null so it can be garbage collected.
17866         
17867 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
17868
17869         * reflection.c (mono_reflection_get_type): Return the resolved type
17870         only if it is in the assembly we searched.
17871
17872         * reflection.c (ensure_runtime_vtable): Initialize method slots.
17873
17874         * class.c (mono_class_setup_vtable): Set the slot of the overriding
17875         method.
17876
17877 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17878
17879         * appdomain.c:
17880         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
17881         the right one is 'file:///blah', but MS allows it.
17882         * assembly.c:
17883         (mono_assembly_open): allow 'file://blah'
17884
17885         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
17886
17887 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
17888
17889         * socket-io.c: fixes bug #40310.
17890
17891 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
17892
17893         * reflection.c (mono_reflection_parse_type): handle deeply nested
17894         types correctly.
17895
17896         * reflection.c (mono_image_create_token): Use unique token values
17897         since they will be put into a hash table.
17898
17899         * class.c (mono_class_setup_vtable): If a method occurs in more than
17900         one place in the vtable, and it gets overriden, then change the
17901         other occurances too.
17902
17903         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
17904         object as return type.
17905
17906 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17907
17908         * icall.c: Deleted "ToString" implementation for double and float
17909         because they are full implemented in managed code.
17910
17911 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
17912
17913         * reflection.c, reflection.h: implemented and exported functions
17914         to retrieve info about custom attributes.
17915
17916 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17917
17918         * appdomain.c: moved Uri handling to assembly.c
17919         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
17920         work when using a file Uri in *nix and windows.
17921
17922         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
17923         GetReferencedAssemblies.
17924
17925 2003-03-18  Dick Porter  <dick@ximian.com>
17926
17927         * icall.c: Rename a couple of internal calls
17928
17929         * threads.c: Set the thread state to Stopped when a thread exits.
17930         Fixes bug 39377.
17931
17932 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
17933
17934         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
17935         New icall.
17936
17937         * object.c (mono_class_vtable): fix warning.
17938
17939 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
17940
17941         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
17942
17943         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
17944         memory.
17945         (method_encode_clauses): Create exception info structures in the right
17946         order.
17947         (mono_reflection_setup_internal_class): Initialize supertypes field.
17948
17949         * class.c object.c: Handle interfaces which implement other interfaces 
17950         correctly.
17951
17952         * class.h class.c: Move the supertypes array initialization code into 
17953         a separate function so it can be used for dynamic types too. Also call
17954         it earlier, in mono_class_init(), since it can be used before the
17955         type is initialized.
17956
17957 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17958
17959         * Makefile.am:
17960         * assembly.c:
17961         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
17962
17963         * appdomain.c:
17964         * appdomain.h:
17965         * marshal.c:
17966         * object.c: remove warnings.
17967
17968 2003-03-13  Martin Baulig  <martin@ximian.com>
17969
17970         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
17971         (MonoDebugLexicalBlockEntry): New types.
17972
17973         * debug-mono-symfile.c
17974         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
17975
17976 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17977
17978         * process.c: ret can be any non-zero value accroding to MS doc.
17979
17980 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
17981
17982         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
17983         fixing a warning for a miss-used prototype, would have cause
17984         random memory corruption.
17985
17986 2003-03-07  Martin Baulig  <martin@ximian.com>
17987
17988         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
17989         getting really annoying ....
17990
17991 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
17992
17993         * reflection.c (fixup_method): added support for array methods.
17994
17995 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
17996
17997         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
17998         (pointed out by Michael Adams).
17999
18000 2003-03-04  Dick Porter  <dick@ximian.com>
18001
18002         * icall.c: Temporarily reverted the Double and Single ToString()
18003         change, because it broke nunit.
18004
18005 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
18006
18007         * object.h, threads.h: make include files compatible with C++
18008         (patch by Jerome Laban <jlaban@wanadoo.fr>).
18009
18010 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
18011
18012         * icall.c: Erased ToString helper functions for Double and Single.
18013         Now, that implementations ar all in managed code (Double and Single
18014         Formatters).
18015
18016 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
18017
18018         * appdomain.c: Added method for initializing the default context of
18019         a domain. Added internal call for getting the default context.
18020         * appdomain.h: Added context variable in MonoDomain struct.
18021         * domain.c: mono_domain_set also sets the default context of the domain
18022         * icall.c: Mapped internal method InternalGetDefaultContext.
18023         * object.c: mono_object_get_virtual_method returns always a remoting
18024         wrapper if the object is a transparent proxy.
18025         mono_runtime_invoke_array: when creating an object by calling the
18026         constructor, if the created object is a proxy, then the constructor should
18027         be called using the a remoting wrapper.
18028
18029 2003-03-03  Dick Porter  <dick@ximian.com>
18030
18031         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
18032         variable so it compiles on solaris.  Problem spotted by
18033         Christopher Taylor <ct@cs.clemson.edu>
18034
18035 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18036
18037         * appdomain.c:
18038         (get_info_from_assembly_name): don't leak value.
18039
18040         * icall.c:
18041         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
18042         result.
18043
18044 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
18045
18046         * assembly.c: export mono_image_load_references ().
18047         * class.c: handle function pointers. mono_class_from_name() now
18048         supports nested type names directly.
18049
18050 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
18051
18052         * reflection.h reflection.c: Encode already created dynamic methods 
18053         and fields correctly as a DEF instead of a REF.
18054
18055         * reflection.c: Get rid of the force_ref argument to 
18056         mono_image_typedef_or_ref since it was wrong in the first place.
18057
18058         * string-icalls.c: add error checking to string constructors according
18059         to the MSDN docs.
18060
18061         * reflection.c: Emit types in the order their TypeBuilders were 
18062         created. Previously, a new table index was assigned to each type before
18063         the tables were emitted. This was wrong because the signature blob
18064         might already refer to a type by its original table index.
18065
18066 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
18067
18068         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
18069         change.
18070         
18071 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18072
18073         * Makefile.am: make assemblies dir have \ instead of / on windows.
18074
18075 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
18076
18077         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
18078         iterate over the NESTEDCLASS table using a linear search since the
18079         table is not guaranteed to be sorted by the secondary key.
18080
18081         * class.c (mono_class_create_from_typedef): fixed up call to
18082         mono_metadata_nesting_typedef.
18083         
18084 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
18085
18086         * marshal.c (mono_string_to_byvalstr): clear the memory as
18087         suggested by Jerome Laban <jlaban@wanadoo.fr>
18088
18089 2003-02-26  Dick Porter  <dick@ximian.com>
18090
18091         * process.c: Cope with padding in .rsrc blocks
18092
18093 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
18094
18095         * metadata.h: reverted the filter_len change, it breaks reflection
18096         
18097 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
18098
18099         * metadata.h: added a new field to store the filter_len
18100         
18101
18102 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
18103
18104         * reflection.c: handle custom attributes for types and members
18105         created with Reflection.Emit (bug#38422).
18106
18107 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
18108
18109         * reflection.c: define RTSpecialName automatically for constructors for
18110         compatibility with MS.NET.
18111
18112         * reflection.c (mono_reflection_create_runtime_class): initialize
18113         nested_in field of dynamically created classes.
18114
18115 2003-02-22  Martin Baulig  <martin@ximian.com>
18116
18117         * debug-mono-symfile.h: Incremented version number.
18118
18119 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
18120
18121         * object.h icall.c process.c: fix warnings.
18122
18123 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
18124
18125         * appdomain.h appdomain.c:
18126         (mono_domain_try_type_resolve): split the 
18127         name_or_tb argument into a name and a tb argument.
18128         (mono_domain_has_type_resolve): new function to check whenever the
18129         application has registered a TypeResolve event handler.
18130         
18131         * icall.c reflection.h reflection.c: move the type resolve logic into
18132         mono_reflection_get_type () so it will be invoked when 
18133         Assembly::GetType () is called.
18134
18135         * reflection.c:
18136         (mono_reflection_get_type): renamed to get_type_internal.
18137         (mono_reflection_get_type): fixed type name generation so it works 
18138         for nested types too.
18139         (mono_reflection_get_type): call has_type_resolve () to avoid the 
18140         costly type name generation if there is no resolve event handler.
18141
18142 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
18143
18144         * class.c, image.c: load exported types from file references.
18145
18146 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
18147
18148         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
18149           used to cache the managed methods used to create proxies and make 
18150           remote invocation of methods.
18151         * class.h: Added in MonoVTable a flag to indicate that a class needs 
18152           to be remotely created.
18153         * object.c: Modified the method mono_class_vtable(). It now initializes 
18154           the remote flag of the vtable. Modified mono_object_new_specific(), 
18155           so now it checks the remote flag.
18156         * icall.c: Added a couple of internal methods, one for enabling instance 
18157           creation interception for a type, and one for creating objects bypassing
18158           the remote check.
18159
18160 2003-02-18  Martin Baulig  <martin@ximian.com>
18161
18162         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
18163         New interncall to get a method's metadata token.
18164
18165         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
18166         New interncall for the debugger.
18167
18168 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
18169
18170         * class.c (mono_class_setup_vtable): allocate supertype array
18171
18172 2003-02-18  Martin Baulig  <martin@ximian.com>
18173
18174         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
18175
18176 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18177
18178         * reflection.c:
18179         (assembly_name_to_aname): jump over unknown properties (i've found
18180         something like: 'type, assembly, version=xxx, custom=null, public...',
18181         so now will ignore custom=null and still get the rest of the values).
18182
18183 2003-02-17  Dick Porter  <dick@ximian.com>
18184
18185         * threads.c: Have Thread.Start() wait for a semaphore to signal
18186         that the thread has set up all its local data.  This fixes bug
18187         34323, where Abort() raced the new thread's TLS data.
18188
18189         Also removes the handle_store() call from start_wrapper, because
18190         threads are now always created suspended and there is no longer a
18191         race between the parent and child threads to store the info.
18192
18193 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
18194
18195         * image.c: explain the #- heap issue in a message, hopefully
18196         avoiding FAQs on mono-list.
18197
18198 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18199
18200         * icall.c:
18201         (GetEntryAssembly): if the domain has not invoked
18202         AppDomain.ExecuteAssembly yet, return the assembly of the default
18203         AppDomain.
18204
18205 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
18206
18207         * class.c (mono_ldtoken): make it work in dynamic assemblies.
18208
18209 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
18210
18211         * metadata.c, reflection.c: simple speedup to type hash
18212         and equals code.
18213
18214 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
18215
18216         * image.c, image.h, class.c, assembly.c: move module loading
18217         to MonoImage. When loading metadata, consider alignemnet from
18218         the start of metadata, not from the metadata address in memory.
18219
18220 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
18221
18222         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
18223         AssemblyBuilder objects. Factored out custom attribute creation into
18224         a separate function.
18225         (create_custom_attr): new function to create custom attributes.
18226
18227 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
18228
18229         * Makefile.am: Got tired of typing the full pathname to pedump.
18230         Until there is another option, am installing this.
18231
18232 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
18233
18234         * class.c (class_compute_field_layout): always set field->parent 
18235         (mono_ldtoken): use mono_defaults.fieldhandle_class;
18236
18237 2003-02-11  Dick Porter  <dick@ximian.com>
18238
18239         * threads-types.h:
18240         * monitor.c: Rewrote Monitor, making lock much faster and
18241         Pulse/Wait work as specified.  Also uses much fewer handles, and only
18242         creates them as needed.
18243
18244         * exception.c: Added SynchronizationLockException
18245
18246         * threads.c: Deleted old Monitor implementation.  The new one is
18247         in a new file.
18248
18249 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
18250
18251         * class.c: handled TypedReference type code. Set the correct size for
18252         class data. Setup interface_offsets for interface classes, too.
18253
18254 2003-02-09  Martin Baulig  <martin@ximian.com>
18255
18256         * debug-mono-symfile.h: Reflect latest symbol writer changes.
18257
18258 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
18259
18260         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
18261         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
18262         * object.c: fixed mono_object_get_virtual_method () for interfaces.
18263         * verify.c: check for code that runs after the end of the method.
18264
18265 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
18266
18267         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
18268         "System.Math::Round2".
18269         * sysmath.h: Added Floor, Round and Round2 definitions.
18270         * sysmath.c: Modified certain functions that were not 100% compliant
18271         with MS.NET (math precision) and added the implementation of Floor,
18272         Round and Round2.
18273
18274 2003-02-07  Martin Baulig  <martin@ximian.com>
18275
18276         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
18277
18278 2003-02-07  Martin Baulig  <martin@ximian.com>
18279
18280         * debug-mono-symfile.c: Reflected latest symwriter changes.
18281         (mono_debug_create_mono_symbol_file): Removed.
18282         (mono_debug_open_mono_symbol_file): Take an argument which
18283         specifies whether to create a dynamic symbol file.
18284
18285 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
18286
18287         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
18288
18289 2003-02-05  Martin Baulig  <martin@ximian.com>
18290
18291         * reflection.c (mono_image_build_metadata): Make this public,
18292         protect it against being called multiple times, don't create
18293         resources and don't build the compressed metadata here.
18294         (mono_image_create_pefile): Do this here.
18295
18296         * icall.c
18297         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
18298
18299 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18300
18301         * socket-io.c: fixed bug #36322.
18302
18303 2003-02-06  Piers Haken <piersh@friskit.com>
18304
18305         * appdomain.[ch]:
18306         * class.h:
18307         * debug-mono-symfile.c:
18308         * icall.c:
18309         * loader.c:
18310         * mono-config.c:
18311         * monosn.c:
18312         * reflection.c:
18313         * socket-io.c: warning cleanups
18314
18315 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
18316
18317         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
18318         function. works like remoting invoke, but does a check for the Proxy first.
18319
18320 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
18321
18322         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
18323
18324 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
18325
18326         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
18327         array of pointers.
18328         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
18329         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
18330
18331         * object.c (mono_store_remote_field_new): used by the new jit
18332         instead of mono_store_remote_field
18333         (mono_load_remote_field_new): used by the new jit
18334         instead of mono_load_remote_field
18335
18336 2003-02-05  Patrik Torstensson
18337
18338         * appdomain.c: changed unload to take the domain id instead
18339         of domain
18340         
18341         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
18342
18343
18344 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18345
18346         * appdomain.c: don't look for assemblies in ApplicationBase if
18347         PrivateBinPathProbe is set.
18348
18349 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18350
18351         * object.c: make the first argument in main_args contain the absolute
18352         path to the assembly. Fixes bug #37511.
18353
18354 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18355
18356         * icall.c: get correct UTC offset for countries not using daylight
18357         time saving. Fixes bug #30030.
18358
18359 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18360
18361         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
18362         and 1 are the family).
18363
18364 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
18365
18366         * icall.c (ves_icall_InternalExecute): removed wrong assertion
18367
18368         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
18369
18370 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
18371
18372         * reflection.c: added support for SignatureHelper tokens, which is
18373         needed by the Calli opcode.
18374
18375         * reflection.h: track changes to SignatureHelper class.
18376
18377         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
18378
18379 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18380
18381         * appdomain.c: fixed loading assemblies from PrivateBinPath.
18382
18383 2003-02-03  Patrik Torstensson
18384         * appdomain.[c|h], domain.c : 
18385          - Added support for getting a domain via domain id
18386          - Support for setting and getting domain from System.AppDomain 
18387            (used in cross appdomain channel)
18388          - Added support for get/set for a MonoAppContext on a thread 
18389            (Context class in System.Runtime.Remoting.Contexts),
18390          - Removed hack in Get/SetData and ExecuteAssembly.
18391         
18392         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
18393         the managed world to get control when a proxy is created.
18394
18395         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
18396         
18397 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
18398
18399         * icall.c
18400         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
18401         Populate the codebase field as well.
18402
18403 2003-02-02  Martin Baulig  <martin@ximian.com>
18404
18405         * debug-mono-symfile.c
18406         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
18407         (mono_debug_symfile_add_method): Allow interncalls.
18408
18409 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18410
18411         * icall.c: throw parse exception if strtod fails or the string is empty.
18412
18413 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
18414
18415         * marshal.c: handle object type separately from defined
18416         class types.
18417
18418 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
18419
18420         * marshal.c: handle NATIVE_LPSTR for strings when it's
18421         explicitly specified.
18422
18423 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
18424
18425         * reflection.c, reflection.h, icall.c: setup the reflection
18426         handle cache for ModuleBuilders and AssemblyBuilders.
18427
18428 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
18429
18430         * reflection.c (reflection_methodbuilder_to_mono_method): set
18431         pinvoke flag
18432
18433 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18434
18435         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
18436
18437 2003-01-29  Dick Porter  <dick@ximian.com>
18438
18439         * threads.c: No need for the fake_thread kludge now that Thread
18440         doesn't run a class constructor
18441         
18442 2003-01-29  Dick Porter  <dick@ximian.com>
18443
18444         * threads.c: Use g_direct_hash instead of the rather bogus
18445         g_int_hash
18446
18447 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
18448
18449         * marshal.c (mono_marshal_get_native_wrapper): add check for null
18450         (fix pinvoke12.exe)
18451         (mono_marshal_get_struct_to_ptr): generate valid IL code
18452         (mono_marshal_get_ptr_to_struct): generate valid IL code
18453         (*): correctly set sig->pinvoke, we need to memdup the signature
18454         to do that
18455
18456 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
18457
18458         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
18459         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
18460
18461 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
18462
18463         * profiler.c: provide more callers information.
18464
18465 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
18466
18467         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
18468
18469         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
18470
18471         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
18472
18473 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18474
18475         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
18476         exception instead of going into an infinite loop on dates which it 
18477         can't yet handle.
18478
18479         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
18480         out-of-range exception if needed.
18481
18482         * class.c (mono_class_setup_vtable): allow a virtual method to provide
18483         an implementation for an interface method and to override an inherited
18484         method at the same time. 
18485         Imagine a scenario when a virtual method is used to override a
18486         virtual abstract method in a parent class, and this same method 
18487         provides an implementation for an method inherited from an interface. 
18488         In this case, the interface resolution code will set im->slot, which 
18489         means that the virtual method override pass will skip this method 
18490         which means a pointer to the abstract method inherited from the parent
18491         will remain in the vtable of this non-abstract class.
18492
18493         * class.c: (mono_class_setup_vtable): continue search for a real 
18494         method if only an abstract method is found.     
18495
18496 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
18497
18498         * reflection.c: add size to encoding for ByValStr and ByValArray
18499         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
18500
18501 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18502
18503         * class.c (mono_class_setup_vtable): pass the override info as an
18504         argument.
18505
18506         * class.c (mono_class_setup_vtable): set the slot of overriding methods
18507         correctly.
18508         
18509         * reflection.c (ensure_runtime_vtable); add support for method 
18510         overrides.
18511         
18512 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18513
18514         * reflection.c (resolution_scope_from_image): Hack to work to work with
18515         dynamic assemblies.
18516
18517         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
18518         added a 'force_ref' argument to force this function to allways return 
18519         a TypeRef. This is needed by mono_image_get_memberref_token ().
18520         
18521 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18522
18523         * reflection.c (mono_image_get_type_info): interfaces really don't have
18524         a parent.
18525
18526         * reflection.c (mono_image_basic_init): fill out missing fields of
18527         image structure.
18528
18529         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
18530         dynamic assemblies. This is required so dynamic assemblies show up in
18531         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
18532         Type::GetType() etc. This is consistent with MS behaviour.
18533
18534         * image.c image.h reflection.c: add newly created classes to the name 
18535         cache so mono_class_get () will find them.      
18536
18537 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18538
18539         First part of changes to get IKVM.NET running under mono.
18540         
18541         * appdomain.h, appdomain.c: added new function 
18542         mono_domain_try_type_resolve() which will emit TypeResolve events. 
18543         This function will call AppDomain::DoTypeResolve to do the actual work.
18544
18545         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
18546         moved existing code dealing with dynamic tokens to a new function 
18547         called mono_reflection_lookup_dynamic_token (). This function will 
18548         raise TypeResolve events when appropriate. Since reflection.c is not 
18549         part of libmetadata, a new hook function called 
18550         mono_lookup_dynamic_token() is added to class.c which will call this.
18551
18552         * assembly.h assembly.c: make the invoke_load_hook function public,
18553         so it can be called for dynamic assemblies.
18554
18555         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
18556
18557         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
18558         type isn't found.
18559
18560         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
18561         MonoGHashTable, since it contains pointers to objects which the GC 
18562         needs to track.
18563
18564         * assembly.c (search_loaded): remove unused variable.
18565         
18566 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
18567
18568         * object.c: fixed issue exposed by gcc-generated IL programs
18569         that use RVA data for pointers.
18570
18571 2003-01-25  Martin Baulig  <martin@ximian.com>
18572
18573         * threads.c (start_wrapper): Moved the initialization of
18574         `start_func' above the mono_new_thread_init() call to which we
18575         pass it as argument.
18576
18577 2003-01-24  Martin Baulig  <martin@ximian.com>
18578
18579         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
18580         the MonoThread pointer.
18581
18582 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
18583
18584         * icall.c: Rename `PowImpl' to Pow.
18585
18586 2003-01-23  Dick Porter  <dick@ximian.com>
18587
18588         * threads.c (start_wrapper): Create a Thread object if needed, so
18589         the Main() thread can do the class initialisation in a subthread
18590         that has been set up to allow managed code execution.
18591
18592         Pass the thread ID instead of the MonoThread pointer to the thread
18593         start and attach callbacks.  This change is required, because the
18594         jit thread start callback must be called _before_ the Thread
18595         object can be created.
18596         
18597         (mono_thread_init): Removed much object creation code that is no
18598         longer needed.  No managed code is called from here now.
18599
18600         * object.c (mono_runtime_exec_managed_code): Create a subthread
18601         for Main, and call back to the runtime to use it.
18602         Set the exit code when Main exits.
18603
18604         * gc.c: Make sure domain finalisation happens in a subthread.
18605         Re-enable threaded GC, fixing bug 31333 (again).
18606
18607         * environment.c: System.Environment internall calls (so far just
18608         ExitCode is here, the others are still in icall.c)
18609
18610         * appdomain.c (mono_runtime_cleanup): All threads running managed
18611         code should have finished before mono_runtime_cleanup() is
18612         reached, so no need to clean up threads.
18613
18614 2003-01-22  Martin Baulig  <martin@ximian.com>
18615
18616         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
18617         `gpointer func' arguments.      
18618         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
18619         but added `MonoThread *thread' argument.
18620         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
18621
18622         * threads.c (mono_new_thread_init): Added `gpointer func' argument
18623         and pass it to the mono_thread_start_cb callback.
18624         (mono_install_thread_callbacks): New public function to install a
18625         set of callbacks which are set by the debugger.
18626         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
18627
18628 2003-01-22  Martin Baulig  <martin@ximian.com>
18629
18630         * Makefile.am: Install debug-mono-symfile.h.
18631
18632 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
18633
18634         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
18635
18636 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
18637
18638         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
18639         * class.c (mono_ptr_class_get): correctly set access levels of pointers
18640         (mono_array_class_get): correctly set access levels of arrays
18641
18642 2003-01-20      Patrik Torstensson
18643         * image.h (MonoAssemblyName): changed major, minor, build, revision
18644         from signed to unsigned.
18645
18646 2003-01-20  sean kasun <skasun@azstarnet.com>
18647
18648         * reflection.c (load_cattr_value): Now this handles
18649         MONO_TYPE_SZARRAY.  Fixes bug #35629
18650
18651 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
18652
18653         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
18654         integer value
18655
18656 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18657
18658         * decimal.c: fixed bug #26056.
18659
18660 2003-01-17  Martin Baulig  <martin@ximian.com>
18661
18662         * gc.c: Raise an ExecutionEngineException instead of using g_error().
18663
18664 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18665
18666         * exception.[ch]:
18667         (mono_get_exception_type_initialization): new function.
18668
18669         * object.c: throw a TypeInitializationException when an exception is
18670         thrown invoking the class constructor.
18671
18672 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18673
18674         * reflection.c: fixed attribute reading.
18675
18676 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18677
18678         * icall.c:
18679         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
18680         provided, look for the type in the calling assembly and then in
18681         mscorlib; if the assembly name is provided, only try that one.
18682
18683 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
18684
18685         * object.c: register the vtable before there is a chance it's
18686         queried again recursively.
18687
18688 2003-01-13  Duncan Mak  <duncan@ximian.com>
18689
18690         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
18691         gc-internal.h. 
18692         
18693 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
18694
18695         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
18696
18697 2003-01-11  Martin Baulig  <martin@ximian.com>
18698
18699         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
18700         this to 20 for the release.
18701
18702 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
18703
18704         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
18705
18706         * loader.c (mono_method_get_marshal_info): bug fix
18707
18708         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
18709         structures with explicit layout
18710
18711 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
18712
18713         * profiler.c: made the output more readable (and sorted). 
18714         Added caller information for the allocation profiler.
18715
18716 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
18717
18718         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
18719
18720 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18721
18722         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
18723         to get value types.
18724         
18725 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
18726
18727         * object.c, profiler.h, profiler.c, profiler-private.h:
18728         Added object allocation profiler.
18729
18730 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
18731
18732         * reflection.h, reflection.c: handle global methods.
18733         Compress blob entries.
18734
18735 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
18736
18737         * marshal.c: fix compilation.
18738
18739 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
18740
18741         * loader.c (mono_method_get_marshal_info): impl.
18742
18743         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
18744
18745 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18746
18747         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
18748         for reference types.
18749
18750 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
18751
18752         * loader.c: fixed off by one error in loaded parameter names.
18753
18754 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
18755
18756         * marshal.c (mono_marshal_get_icall_wrapper): like
18757         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
18758         instead of a MonoMethod.
18759
18760 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18761
18762         * decimal.c: fixed bug #36537.
18763
18764 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
18765
18766         * marshal.c: throw a missing method exception if a
18767         P/Invoke method is not found.
18768
18769 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
18770
18771         * icall.c: allow a null this for constructors.
18772
18773 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
18774
18775         * icall.c: raise the proper exceptions if the arguments to the
18776         internal Invoke are incorrect.
18777
18778 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
18779
18780         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
18781
18782 2003-01-03  Martin Baulig  <martin@ximian.com>
18783
18784         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
18785
18786 2002-12-31  Martin Baulig  <martin@ximian.com>
18787
18788         * debug-mono-symfile.c: Completely rewrote the type section.
18789         Instead of using individual malloc()ed fields, we use one big
18790         continuous memory area and offsets into this area.
18791         See the comments in the source code for details.
18792
18793 2002-12-30  Martin Baulig  <martin@ximian.com>
18794
18795         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
18796
18797 2002-12-30  Martin Baulig  <martin@ximian.com>
18798
18799         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
18800         line number table in this data blob instead of using an external
18801         pointer.
18802
18803 2002-12-28  Martin Baulig  <martin@ximian.com>
18804
18805         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
18806
18807 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
18808
18809         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
18810         as a boxed return type.
18811
18812 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
18813
18814         * appdomain.c
18815         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
18816         g_build_filename to properly get separators on the filename created.
18817
18818         * object.h: Small change, introduce MonoMarshalByRefObject to
18819         track the layout of that structure in the C# universe as we make
18820         changes there.
18821
18822 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
18823
18824         * object.c: removed assert to allow static fields on interfaces.
18825         * loader.c: a TypeSpec may be used for any type, not just arrays.
18826
18827 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
18828
18829         * class.c, class.h: added mono_class_array_element_size ().
18830         Ignore static methods in interfaces.
18831
18832 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18833
18834         * threads.c: fixed the build under cygwin.
18835
18836 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
18837
18838         * reflection.c: handle nullref constants. Allocate keys for
18839         reflection handles with the GC.
18840
18841 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
18842
18843         * threads.c, threads.h: added mono_thread_get_abort_signal()
18844         to get a suitable signal for thread abort.
18845
18846 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
18847
18848         * metadata.c: fix handling of ExportedType table.
18849
18850 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18851
18852         * icall.c: added WriteWindowsDebugString internal call.
18853
18854 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18855
18856         * reflection.h: added fields to match C# implementation.
18857
18858 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18859
18860         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
18861
18862 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
18863
18864         * gc.h, gc-internal.h: Rename header for GC internal calls to
18865         gc-internal.h from gc.h as to not clash with Boehm GC having its
18866         header installed as <gc.h> in outside include paths.
18867         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
18868         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
18869
18870 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18871
18872         * icall.c: assign minor, build and revision in FillName.
18873
18874 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
18875
18876         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
18877         Added support for running code generated by Reflection.Emit.
18878
18879 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18880
18881         * appdomain.c: check for NULL argument in LoadFrom.
18882
18883 2002-12-10  Dick Porter  <dick@ximian.com>
18884
18885         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
18886
18887 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18888
18889         * appdomain.c: fix buglet when building exe file name.  Handle full
18890         assembly name (needed after latest changes to AssemblyName).
18891         * image.c:
18892         (mono_image_close): free some hashtables.
18893
18894 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
18895
18896         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
18897         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
18898         on some systems (redhat 7.3) 
18899
18900 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
18901
18902         * threads.c: delete the critical section of a sync block,
18903         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
18904
18905 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
18906
18907         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
18908
18909 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18910
18911         * appdomain.[ch]: handle the assembly preload event to try loading the
18912         assemblies using the paths we have in the current domain.
18913
18914         * assembly.[ch]: created an assembly preload hook that is called to try
18915         loading the assembly by other means that the ones provided here.
18916
18917         * domain.c: initialize the domain search path.
18918
18919         From now on, assemblies (TODO: except corlib and System) are loaded
18920         according to these rules when using mono_assembly_load ():
18921
18922                 1. It tries to load the assembly from the ApplicationBase
18923                 of the current domain appending .dll and .exe (TODO: have to
18924                 try loading from name/name.dll and name/name.exe).
18925
18926                 2. It tries the search path specified in PrivateBinPath for the
18927                 current domain (if any).
18928
18929                 3. Previous behavior.
18930
18931 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
18932
18933         * icall.c: implemented GetInterfaceMap() related icall.
18934         * domain.c, loader.h: load MethodInfo in mono_defaults.
18935
18936 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
18937
18938         * gc.c: disable the finalizer thread for now, untill all the issues
18939         with it are resolved.
18940
18941 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18942
18943         * string-icalls.c: handle embedded nulls in string ctor when the
18944         length is specified.
18945
18946 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
18947
18948         * class.c: look for explicit interface implementation in parent
18949         classes, too.
18950
18951 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
18952
18953         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
18954
18955 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
18956
18957         * gc.c: protect handles with a critical section.
18958
18959 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18960
18961         * icall.c:
18962         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
18963         parameters. If no assembly specified, try getting the type from all
18964         the assemblies in the current domain, else, load the assembly and get
18965         the type from it.
18966
18967 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18968
18969         * marshal.c: applied patch from Aleksey Demakov that fixes
18970         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
18971
18972 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18973
18974         * icall.c: fixed get_location.
18975
18976 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
18977
18978         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
18979         declarations to make it work with older gcc. 
18980
18981         * loader.c (mono_get_method): set signature->pinvoke for native calls
18982
18983 2002-11-20  Dick Porter  <dick@ximian.com>
18984
18985         * threads.c (mono_thread_init): Set the main thread's handle
18986
18987 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
18988
18989         * gc.c: allow compilation without GC support. Changed to match the
18990         mono coding style.
18991
18992 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
18993
18994         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
18995
18996 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
18997
18998         * reflection.c: set a public key token on the core assemblies.
18999
19000 2002-11-18  Dick Porter  <dick@ximian.com>
19001
19002         * threads.c: Split out some thread initialisation so that other
19003         files can set the start callback function.
19004
19005         * gc.c: Run finalisers in a separate thread, to avoid stack
19006         overflow.  Fixes bug 31333.
19007
19008         * appdomain.c: Set up GC finalisation thread.
19009
19010         * reflection.c: 
19011         * object.c: 
19012         * domain.c: Use gc.h macros for GC_malloc
19013         
19014 2002-11-15  Dick Porter  <dick@ximian.com>
19015
19016         * threadpool.c: 
19017         * threads.c:
19018         * appdomain.c: Removed mono_runtime_init_with_attach(),
19019         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
19020         merging the extra parameter with the existing function.  Removed
19021         unneeded code in mono_thread_attach().
19022
19023 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
19024
19025         * image.c (mono_image_loaded_by_guid): a method to get loaded
19026         images by guid. 
19027         (load_metadata_ptrs): we store the guid as string.
19028
19029 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
19030
19031         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
19032
19033         * metadata.c (mono_guid_to_string): imported method form Zoltan
19034         Varga (slightly modified)
19035
19036         * assembly.c (mono_assembly_open): load precompiled code
19037
19038         * loader.h (MonoMethod): we store the method token for use in the
19039         aot compiler. 
19040
19041 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19042
19043         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
19044         the hook function called when an assembly is loaded.
19045         
19046         * domain.c: Modified file.
19047         (mono_domain_assembly_load): removed hash table insertion of assemblies.
19048
19049         Fixes bug #33196.
19050
19051 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
19052
19053         * reflection.c: Map PEFileKind to the value expected by the WinNT
19054         image loader. 
19055
19056 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19057
19058         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
19059         Read until the buffer is filled completely.
19060
19061 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19062
19063         * icall.c: implemented MonoType.InternalGetEvent ().
19064
19065 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19066
19067         * appdomain.c: implemented InitAppDomainSetup. Delayed
19068         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
19069         the entry_assembly.
19070
19071         * assembly.c: base_dir is now an absolute path ending with
19072         G_DIR_SEPARATOR.
19073
19074         * icall.c: modified get_location according to the above changes.
19075
19076         * object.c: init AppDomain.SetupInformation for the default domain after
19077         we have the entry assembly.
19078
19079         * domain.c: when unloading a domain, setup = NULL.
19080
19081 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
19082
19083         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
19084
19085 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
19086
19087         * object.h, object.c: introduced mono_object_get_virtual_method ()
19088         to lookup the method invoked on an object when a callvirt is done on
19089         a method.
19090         * icall.c: make MethodInfo::Invoke() always do a virtual call.
19091
19092 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19093
19094         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
19095         current domain when loaded an assembly and failed to load it.
19096
19097         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
19098
19099 2002-10-31  Dick Porter  <dick@ximian.com>
19100
19101         * icall.c: 
19102         * file-io.h: 
19103         * file-io.c: Return the error status in a parameter, as the
19104         GetLastError() value has long since been blown away if we try and
19105         look it up in a subsequent internal call invocation.  Delete the
19106         GetLastError() internal call, because it's useless.
19107
19108 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
19109
19110         * class.[ch]: added cast_class to fix bug 29517
19111
19112 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
19113
19114         * marshal.c: create valid IL code in the filter clause:
19115         the new JIT is less forgiving:-)
19116
19117 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19118
19119         * icall.c: removed get_property internal call.
19120
19121 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
19122
19123         * appdomain.h domain.c: Added an ID to appdomains.
19124         
19125         * threads.c threads.h icall.c: Implement icall
19126         Thread:GetDomainID(), and remove unused icall 
19127         CurrentThreadDomain_internal.
19128
19129 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19130
19131         * icall.c: Don't recurse through the base types in GetConstructor.
19132         Fixes bug #32063. 
19133
19134 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
19135
19136         * mempool.h, mempool.c: added mono_mempool_empty() and
19137         mono_mempool_stats().
19138
19139 2002-10-23  Dick Porter  <dick@ximian.com>
19140
19141         * file-io.c: 
19142         * file-io.h: 
19143         * icall.c: Added MonoIO.GetFileType internal call
19144
19145 2002-10-17  Dick Porter  <dick@ximian.com>
19146
19147         * appdomain.c (mono_runtime_cleanup): Don't signal the async
19148         delegate semaphore before waiting for all threads to finish,
19149         because new threads can also call async delegates.  Fixes bug
19150         32004.
19151
19152         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
19153         of 3 seconds, in case another async job is queued.  (This part is
19154         needed because the bug fix reintroduced the 3s exit lag.)  This
19155         makes the mono_runtime_shutdown flag superfluous.
19156
19157 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
19158
19159         * reflection.c: include ehader size in method section headers.
19160         Really check for suplicated modules entries.
19161
19162 2002-10-17  Martin Baulig  <martin@gnome.org>
19163
19164         * debug-mono-symfile.c: Added back support for locals.
19165
19166 2002-10-14  Martin Baulig  <martin@gnome.org>
19167
19168         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
19169         MONO_TYPE_VOID.
19170
19171 2002-10-14  Martin Baulig  <martin@gnome.org>
19172
19173         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
19174         mono_class_get() instead of looking in the class cache. 
19175
19176 2002-10-13  Martin Baulig  <martin@gnome.org>
19177
19178         * debug-mono-symfile.c: Set version number to 28, include the
19179         signature in method names.
19180
19181 2002-10-13  Martin Baulig  <martin@gnome.org>
19182
19183         * debug-mono-symfile.h: Set version number to 27.
19184
19185 2002-10-11  Martin Baulig  <martin@gnome.org>
19186
19187         * gc.c: Don't register/unregister NULL pointers as disappearing links.
19188
19189 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19190
19191         * metadata.c, metadata.h: added helper function to allocate signatures.
19192
19193 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19194
19195         * icall.c: added internal call to get the location of machine.config.
19196
19197 2002-10-08  Martin Baulig  <martin@gnome.org>
19198
19199         * debug-mono-symfile.c: Ignore classes with a pending init for the
19200         moment.
19201
19202 2002-10-03  Dick Porter  <dick@ximian.com>
19203
19204         * threads.c: Freebsd pthread_t is a pointer
19205
19206 2002-10-03  Dick Porter  <dick@ximian.com>
19207
19208         * socket-io.c: Implemented GetHostName_internal
19209
19210 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19211
19212         * mono-config.c:
19213         (mono_config_parse_file): don't leak the text.
19214
19215 2002-10-02  Martin Baulig  <martin@gnome.org>
19216
19217         * debug-mono-symfile.c: Added support for methods.
19218
19219 2002-10-01  Martin Baulig  <martin@gnome.org>
19220
19221         * debug-mono-symfile.c: Don't emit methods and line numbers for
19222         the dynamic symbol file, just write the type table.  We can easily
19223         have an external helper program which creates a symbol file for an
19224         IL file.        
19225
19226 2002-10-01  Dick Porter  <dick@ximian.com>
19227
19228         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
19229         Only add the handle to the cleanup array when we're about to
19230         launch the thread.  Bug 31425 deadlocked when the test was run on
19231         mono under w32.
19232
19233 2002-10-01  Martin Baulig  <martin@gnome.org>
19234
19235         * debug-mono-symfile.c: Added support for properties.
19236
19237 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
19238
19239         * reflection.c: unaligned store fix from Mark Crichton
19240         <crichton@gimp.org>.
19241
19242 2002-09-27  Martin Baulig  <martin@gnome.org>
19243
19244         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
19245         New interncall.
19246
19247 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
19248
19249         * assembly.h, assembly.c: use a sane API to hook into the assembly
19250         loading process instead of a useless special-purpouse hack
19251         (ngen needs a hook, too, for example).
19252
19253 2002-09-27  Dick Porter  <dick@ximian.com>
19254
19255         * threads.c (mono_thread_init): Call GetCurrentProcess() so
19256         io-layer can set up some process handle info.  Not needed on w32,
19257         but doesn't hurt either.
19258
19259         * process.c: Pass the program name in the second parameter to
19260         CreateProcess, so the path is searched.  Include the working
19261         directory. Implemented process name, process enumeration, and some
19262         process detail internal calls.
19263         
19264         * icall.c: Added internal calls for process lookup, and some
19265         process details
19266
19267 2002-09-26  Martin Baulig  <martin@gnome.org>
19268
19269         * assembly.c (mono_install_open_assembly_hook): New global
19270         function to install a function to be invoked each time a new
19271         assembly is loaded.
19272         (mono_assembly_open): Run this callback function if set.
19273
19274         * debug-mono-symfile.c: Put back line numbers for the dynamic
19275         symbol file and also record the .il file as source file.  This
19276         allows us to install the temporary symbol file as `file.dbg' just
19277         like a compiler-generated one.
19278
19279 2002-09-26  Nick Zigarovich <nick@chemlab.org>
19280
19281         * Corrected typo in gc.c (BOHEM vs BOEHM).
19282
19283 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19284
19285         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
19286         GetProperties. Also avoid calling g_slist_length in GetProperties and
19287         GetMethods.
19288
19289 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
19290
19291         * reflection.c: avoid unaligned stores (bug spotted by
19292         Mark Crichton  <crichton@gimp.org>).
19293
19294 2002-09-25  Martin Baulig  <martin@gnome.org>
19295
19296         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
19297         instead of guint64 for addresses and added prologue/epilogue info.
19298
19299 2002-09-25  Martin Baulig  <martin@gnome.org>
19300
19301         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
19302         store line number info.  For the dynamic symbol file, we only need
19303         to provide the JIT generated dynamic line number info for the dynamic
19304         symbol file.
19305
19306 2002-09-25  Martin Baulig  <martin@gnome.org>
19307
19308         * debug-mono-symfile.h: Incremented version number.
19309
19310 2002-09-24  Martin Baulig  <martin@gnome.org>
19311
19312         * class.c (mono_debugger_class_init_func): New global function
19313         pointer variable.
19314         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
19315         call it.
19316
19317         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
19318         function.  This is called via the mono_debugger_class_init_func
19319         hook to add all types to the dynamic type table.
19320         (ves_icall_MonoDebugger_GetType): New interncall to get a class
19321         from its metadata token.
19322
19323         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
19324         New interncall for the debugger.
19325
19326 2002-09-24  Nick Drochak <ndrochak@gol.com>
19327
19328         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
19329         before using it in case it is null.
19330         
19331 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19332
19333         * metadata.c: allow custom modifiers in local var signatures
19334         (bug spotted by Zoltan Varga).
19335
19336 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
19337
19338         * class.c: deal with the <Module> class that may have a NULL vtable.
19339         Eliminate warnings.
19340
19341 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19342
19343         * image.c, image.h: more strong name helpers.
19344         * monosn.c: more work: convert pem keys to cryptoapi format.
19345
19346 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
19347
19348         * string-icalls.c: speedup IndexOf.
19349
19350 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19351
19352         * icall.c: updates from Zoltan.2.Varga@nokia.com.
19353
19354 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19355
19356         * icall.c: cleanup: use mono_object_domain ().
19357
19358 2002-09-23  Martin Baulig  <martin@gnome.org>
19359
19360         * debug-mono-symfile.c: Improved type support.
19361
19362 2002-09-22  Martin Baulig  <martin@gnome.org>
19363
19364         * debug-mono-symfile.c: Added support for reference types and strings.
19365
19366 2002-09-22  Martin Baulig  <martin@gnome.org>
19367
19368         * debug-mono-symfile.c: Started to work on the type table.
19369
19370 2002-09-21  Martin Baulig  <martin@gnome.org>
19371
19372         * debug-mono-symfile.c: Largely reworked the symbol table format.
19373         The symbol table is now incrementally updated each time a new
19374         method is added.  We're now also using our own magic and version
19375         so that you don't need to recompile all your classes if the
19376         dynamic table changes.
19377         (mono_debug_update_mono_symbol_file): Removed.
19378         (mono_debug_symfile_add_method): New function to add a method.
19379
19380 2002-09-21  Martin Baulig  <martin@gnome.org>
19381
19382         * icall.c
19383         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
19384         New interncall.
19385
19386         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
19387         New interncall to get a method from its metadata token.
19388
19389 2002-09-21  Martin Baulig  <martin@gnome.org>
19390
19391         * debug-mono-symfile.c: Create type table.
19392
19393 2002-09-20  Martin Baulig  <martin@gnome.org>
19394
19395         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
19396
19397 2002-09-20  Martin Baulig  <martin@gnome.org>
19398
19399         * debug-mono-symfile.c: Provide information about params and locals.
19400
19401 2002-09-20  Martin Baulig  <martin@gnome.org>
19402
19403         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
19404         New interncall.
19405
19406         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
19407         interncall to get a method from its metadata token.
19408
19409 2002-09-20  Martin Baulig  <martin@gnome.org>
19410
19411         * debug-mono-symfile.c: Added a few checks for method->header
19412         being non-NULL.  This should never happen, but for the moment
19413         let's use a g_warning() rather than a g_assert().
19414
19415 2002-09-19  Mark Crichton  <crichton@gimp.org>
19416
19417         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
19418         even if support for it isn't present.  Added an #ifdef to fix this.
19419
19420         * socket-io.c: Added checks back for Solaris support.
19421
19422 2002-09-19  Martin Baulig  <martin@gnome.org>
19423
19424         * debug-mono-symfile.c (read_string, write_string): Reflect latest
19425         changes in the symbol file format.
19426
19427 2002-09-18  Martin Baulig  <martin@gnome.org>
19428
19429         * debug-mono-symfile.c: Set version number to 21.
19430
19431 2002-09-18  Dick Porter  <dick@ximian.com>
19432
19433         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
19434         on netbsd.  Fixes bug 30051.
19435
19436 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19437
19438         * reflection.c:
19439         (set_version_from_string): little fix.
19440
19441 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19442
19443         * monosn.c, Makefile.am: added strong name utility.
19444         * reflection.h, reflection.c: implemented delayed signing,
19445         locale, version and hash id assembly attributes.
19446
19447 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
19448
19449         * loader.c, metadata.c: load param attributes in signatures.
19450
19451 2002-09-16  Martin Baulig  <martin@gnome.org>
19452
19453         * debug-mono-symfile.c: Added string table with all method names.
19454
19455 2002-09-14  Martin Baulig  <martin@gnome.org>
19456
19457         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
19458         fast method lookup.
19459
19460 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
19461
19462         * reflection.c: record the public key token of referenced assemblies.
19463
19464 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19465
19466         * image.c, image.h: added functions to get the strong name and the
19467         public key of an assembly.
19468         * pedump.c: use them.
19469
19470 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
19471
19472         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
19473
19474 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
19475
19476         * marshal.c (mono_marshal_get_managed_wrapper): Added
19477         MONO_TYPE_BOOLEAN 
19478
19479 2002-09-11  Martin Baulig  <martin@gnome.org>
19480
19481         * gc.c: Call GC_unregister_disappearing_link() on all links when
19482         finalizing them, this is necessary to aviod a crash in boehm's
19483         finalize handler.
19484
19485 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19486
19487         * gc.c: handle GetTarget for finalized objects spotted and fixed by
19488         nick@chemlab.org.
19489
19490 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
19491
19492         * icall.c: implemented MonoType::Module.
19493         * reflection.c, reflection.h: mono_module_get_object () from
19494         Tomi Pakarinen <tomi.pakarinen@welho.com>.
19495
19496 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
19497
19498         * icall.c: ignore overridden methods in GetMethods ().
19499         Fix for FieldInfo::SetValue().
19500         * object.c: handle float/double in runtime invoke.
19501
19502 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
19503
19504         * object.c: allow a constructor to be called again on an object.
19505
19506 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19507
19508         * class.h, class.c: move field layout code to it's own function and
19509         export it. Get an interface id earlier. Move fields in MonoClass
19510         so they are more cache friendly and align the bitfields.
19511         * loader.c: temporary handle get_param_names() for a runtime method.
19512         * reflection.c, reflection.h: more code to handle runtime creation of
19513         types.
19514
19515 2002-09-09  Martin Baulig  <martin@gnome.org>
19516
19517         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
19518         signature with the pinvoke field being set for the actual call.
19519
19520 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19521
19522         * icall.c: removed some unused icalls. Start of map of glib charsets
19523         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
19524
19525 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
19526
19527         * debug-helpers.c: break infinite loop (found and fixed by
19528         Holger Arnold <harnold@gmx.de>).
19529
19530 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
19531
19532         * icall.c: target may be null in create_delegate.
19533
19534 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19535
19536         * marshal.c: handle a boolean return type.
19537
19538 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19539
19540         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
19541
19542 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
19543
19544         * gc.c: fix weakreferences.
19545
19546 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
19547
19548         * icall.c: added icall to get default codepage.
19549
19550 2002-09-03  Dick Porter  <dick@ximian.com>
19551
19552         * threads.h: 
19553         * threads.c: Use MonoThread instead of MonoObject where
19554         apropriate.
19555
19556         Store running thread objects in a hash table, so that we have all
19557         the info to hand when waiting for them to finish
19558         (means we don't need OpenThread() any more, so mingw builds should
19559         be fully functional again.)
19560
19561         * verify.c:
19562         * object.h: Added thread ID to MonoThread
19563
19564 2002-09-03  Martin Baulig  <martin@gnome.org>
19565
19566         * icall.c (System.Reflection.Assembly::get_location): New interncall.
19567
19568 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19569
19570         * icall.c: fixed leak in get_temp_path. Thanks lupus.
19571
19572 2002-09-03  Martin Baulig  <martin@gnome.org>
19573
19574         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
19575         argument to store the end address of the disassembled instruction.
19576
19577         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
19578         here from debug-symfile.h.
19579         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
19580         JIT into this struct.
19581         (MonoSymbolFile): Added `char *image_file' field.
19582         (MonoDebugGetMethodFunc): Removed.
19583         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
19584         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
19585         (mono_debug_find_method): New method.
19586
19587         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
19588         create a full symbol file.
19589         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
19590         and static symbol files.
19591         (mono_debug_find_method): The symbol file keeps an internal method hash,
19592         call this to get a MonoDebugMethodInfo from a MonoMethod.
19593
19594         * debug-symfile.[ch]: Removed.
19595
19596 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
19597
19598         * image.c (do_mono_image_open): Remove linker version check.
19599
19600 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
19601
19602         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
19603         wrappers for instance methods.
19604         
19605 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19606
19607         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
19608
19609 2002-08-28  Dick Porter  <dick@ximian.com>
19610
19611         * Makefile.am: Export HOST_CC for w32 builds
19612
19613 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19614
19615         * file-io.c process.c: MonoString are null terminated, no
19616         need for mono_string_to_utf16() anymore.
19617
19618 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19619
19620         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
19621
19622 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
19623
19624         * icall.c, reflection.h: speedup System.MonoType.
19625
19626 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
19627
19628         * reflection.c: allow null as the value of a string argument in
19629         custom attributes constructors.
19630
19631 2002-08-27  Martin Baulig  <martin@gnome.org>
19632
19633         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
19634         `trampoline_address' field.
19635
19636 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
19637
19638         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
19639         check (fixes bug #29486) 
19640
19641 2002-08-27  Martin Baulig  <martin@gnome.org>
19642
19643         * debug-mono-symfile.c: Changed the file format in a way that allows us
19644         open it read-only and to use a specially malloced area for all the
19645         dynamic data.  We can now also generate a symbol file on-the-fly if we're
19646         debugging IL code and there is no MCS generated symbol file for it.
19647
19648 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
19649
19650         * object.c: added a define for a good string and array
19651         creation speedup (not enabled by default because we need to deal with
19652         the synch stuff).
19653
19654 2002-08-26  Martin Baulig  <martin@gnome.org>
19655
19656         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
19657         function to create a dynamic symbol file.  This is used by the
19658         debugger to create a symbol file for IL code on-the-fly.
19659
19660 2002-08-26  Martin Baulig  <martin@gnome.org>
19661
19662         * loader.c (mono_lookup_pinvoke_call): Include the error message
19663         from g_module_error() in the error message.
19664
19665 2002-08-24  Martin Baulig  <martin@gnome.org>
19666
19667         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
19668         function to update the symbol file.  The symbol file is mmap()ed
19669         writable, but private.  This allows us to install the symbol file
19670         together with the assembly.
19671
19672 2002-08-24  Martin Baulig  <martin@gnome.org>
19673
19674         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
19675         but they can read the new symbol file format which mcs is now creating.
19676
19677         * debug-symfile.c (mono_debug_find_source_location): Moved to
19678         debug-mono-symfile.c; this is now operating on the new symbol file.
19679
19680 2002-08-23  Martin Baulig  <martin@gnome.org>
19681
19682         * debug-helpers.c (mono_method_desc_from_method): New function to get
19683         a MonoMethodDesc from a MonoMethod.
19684
19685 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
19686
19687         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
19688         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
19689
19690 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
19691
19692         * string-icalls.[ch]: make helper methods static.
19693
19694 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19695
19696         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
19697         types to it and to SetValueInternal.
19698
19699         * object.c: Moved handle_enum label to its proper place. This was the
19700         f... bug! ;-)
19701
19702         This time i compiled mcs and gtk-sharp and they both work.
19703
19704 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19705
19706         * icall.c: reverted partially my previous patch until 
19707         object.c:set_value handles enums correcly.
19708
19709 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19710
19711         * icall.c:
19712         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
19713         (ves_icall_System_Environment_get_MachineName): removed warning when
19714         compiling under cygwin.
19715
19716 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19717
19718         * object.c: fixed field_get_value() for reference types.
19719
19720 2002-08-22  Dick Porter  <dick@ximian.com>
19721
19722         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
19723         Don't free a buffer while it's still needed.  Patch from Jonathan
19724         Liger <Jonathan.liger@wanadoo.fr>
19725
19726 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
19727
19728         * icall.c (ves_icall_System_Environment_get_Platform): Add new
19729         internal call.
19730
19731 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
19732
19733         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
19734         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
19735
19736         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
19737         we call unmanaged code which throws exceptions.
19738
19739 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19740
19741         * appdomain.h: added per-domain entry_assembly.
19742         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
19743         arguments.
19744         * icall.c: Assembly::GetEntryAssembly icall.
19745         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
19746         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
19747
19748 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19749
19750         * appdomain.h, gc.c: added mono_domain_finalize ().
19751
19752 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19753
19754         * object.c:
19755         (mono_print_unhandled_exception): changed g_warning by g_printerr
19756         because g_log has a 1024 characters limit (yeah, i got a big stack
19757         trace). Don't print exception name, that should be in ToString 
19758         returned string.
19759
19760 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19761
19762         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
19763         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
19764
19765 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19766
19767         * object.c:
19768         (mono_print_unhandled_exception): after previous commit, i realized
19769         that MS calls ToString on the exception. I changed this function to
19770         do that. This way we get stack_trace for free.
19771
19772 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19773
19774         * object.c:
19775         (mono_print_unhandled_exception): invoke Message property instead of
19776         getting 'message' field from Exception. Don't allocate memory for
19777         'trace' and 'message' if not needed.
19778
19779 2002-08-18  Dick Porter  <dick@ximian.com>
19780
19781         * unicode.c: Fix asserts to match Encoder.cs checks
19782
19783 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19784
19785         * marshal.c: fix unaligned store issue and a few wrong
19786         opcode argument types.
19787
19788 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19789
19790         * icall.c: added GetUninitializedObjectInternal internal call.
19791
19792 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
19793
19794         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
19795         to the right domain.
19796
19797 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
19798
19799         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
19800
19801         * class.c (class_compute_field_layout): set blittable to false for Strings
19802
19803         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
19804
19805 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19806
19807         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
19808         first chunk of code to create types at runtime. Code to
19809         handle ReflectedType/DeclaringType. Make reflection handles
19810         domain specific.
19811
19812 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
19813
19814         * class.c: set correct name in arrays.
19815
19816 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
19817
19818         * appdomain.c (mono_domain_transfer_object): make it work with
19819         valuetypes. bug fixes.
19820
19821 2002-08-12  Dick Porter  <dick@ximian.com>
19822
19823         * object.h: Rename some parameters to avoid c++ keywords (Patch
19824         from Joseph Wenninger <kde@jowenn.at>)
19825
19826 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
19827
19828         * icall.c: added icall to implement Assembly.GetFile*.
19829
19830 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19831
19832         * reflection.h, reflection.c: code to embed managed resources.
19833
19834 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
19835
19836         * class.c: move all the type size stuff into
19837         class_compute_field_layout().
19838
19839 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19840
19841         * class.c: ensure enums have always the correct instance size.
19842         * unicode.c: remove wrong assert.
19843
19844 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
19845
19846         * assembly.c: fix mem corruption issue.
19847         * image.h, image.c: added mono_image_get_resource () to access
19848         managed resources.
19849         * icall.c: implemented Assembly.EntryPoint property and some
19850         Managed Resources related internalcalls.
19851
19852
19853 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
19854
19855         * image.c, image.h: impemented mono_image_get_entry_point ().
19856         * appdomain.c: use mono_image_get_entry_point.
19857
19858 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19859
19860         * reflection.c: support the object type argument when loading
19861         custom attributes.
19862
19863 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
19864
19865         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
19866         String as return type.
19867
19868 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
19869
19870         * reflection.c: fix encoding of named args for custom attrs to match
19871         the ms implementation. Read them back when instantiating custom
19872         attributes.
19873
19874 2002-08-02  Radek Doulik  <rodo@ximian.com>
19875
19876         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
19877         by Dietmar as quick fix
19878         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
19879         16 as stack size, used on more places as quick fix before Dietmar
19880         will fix it properly
19881
19882 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19883
19884         * object.h, object.c: added accessors for fields and properties.
19885
19886 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19887
19888         * class.c, class.h: made mono_class_get_field_from_name ()
19889         loop on parent types.
19890         Added mono_class_get_property_from_name ().
19891
19892 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19893
19894         * class.c, class.h: move the code to setup the type vtable in its own
19895         function so that it can be reused also for types created at runtime.
19896         Eliminate the "class" identifier from the header file.
19897         * reflection.c: setup the vtable for enums so that we can create
19898         objects for use in SetConstant ().
19899
19900 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
19901
19902         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
19903         instead of the delegate itself as this pointer (bug #28383)
19904
19905 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
19906
19907         * marshal.c (mono_marshal_get_managed_wrapper): added return type
19908         conversions.
19909
19910 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19911
19912         * loader.c: don't set the pinvoke bit on icalls.
19913
19914 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
19915
19916         * debug-helpers.c (mono_method_full_name): only print a number to
19917         indicate wrapper type (so that the output is more readable in traces).
19918
19919 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
19920
19921         * class.c (mono_class_init): include method override patch from Paolo
19922
19923 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
19924
19925         * icall.c: fixed GetTypeCode().
19926
19927 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
19928
19929         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
19930         use real delegate invoke function to make it work with multicast
19931         delegates (fix bug# 28291).
19932
19933 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19934
19935         * object.c: load constant strings.
19936
19937 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19938
19939         * reflection.c: no magic numbers.
19940         * tabledefs.h: security action enum.
19941
19942 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19943
19944         * assembly.c: fix possible memory corruption.
19945
19946 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
19947
19948         * reflection.h, reflection.c: added support for linking resources.
19949         * verify.c: check we have an updated corlib.
19950
19951 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
19952
19953         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
19954         string arrays.
19955         (mono_marshal_string_array): null terminate unmanaged string arrays.
19956         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
19957
19958 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19959
19960         * icall.c: Type.GetType () can now return also types from the
19961         calling assembly.
19962
19963 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
19964
19965         * loader.h, loader.c: stack walking support.
19966         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
19967         GetCallingAssembly.
19968
19969 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
19970
19971         * marshal.c: added optimisations for blittable types 
19972
19973         * class.c (mono_array_class_get): do not set blittable attribute on arrays
19974         (mono_class_setup_mono_type): set blittable attribute for single
19975         and double.
19976
19977         * marshal.c (mono_string_utf8_to_builder): impl.
19978         (mono_string_builder_to_utf8): impl.
19979         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
19980
19981 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
19982
19983         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
19984         (mono_marshal_get_managed_wrapper): impl. byref types
19985
19986 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19987
19988         * icall.c:
19989         (search_method): don't display debug message. 
19990
19991 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
19992
19993         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
19994
19995 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
19996
19997         * appdomain.c: set the missing filename when throwing exception.
19998
19999 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
20000
20001         * metadata.c (mono_type_size): code cleanup
20002         (mono_type_stack_size): removed some test code
20003
20004 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
20005
20006         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
20007         mono_get_exception_file_not_found now.
20008
20009         * exception.c (mono_exception_from_name_two_strings): New version
20010         that will call a constructor with two string arguments. 
20011         (mono_get_exception_file_not_found): New helper routine, used to
20012         report file-not-found errors.
20013
20014 2002-07-20  Dick Porter  <dick@ximian.com>
20015
20016         * process.h:
20017         * process.c: Pass file handles to CreateProcess
20018         
20019         * icall.c:
20020         * file-io.h:
20021         * file-io.c: Implemented CreatePipe
20022
20023 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
20024
20025         * metadata.c (mono_get_param_info): set alignment for value types
20026
20027 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20028
20029         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
20030         Constify mono_domain_assembly_open().
20031         * loader.c: handle null namespace in icalls.
20032
20033 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
20034
20035         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
20036         (emit_str_to_ptr_conv): marshal object as structs
20037
20038         * metadata.c (mono_type_to_unmanaged): marshal object as structs
20039
20040         * marshal.c (mono_marshal_get_runtime_invoke): support value types
20041
20042 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
20043
20044         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
20045         (mono_marshal_get_native_wrapper): we an now return value types
20046
20047 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20048
20049         * verify.c: more checks implemented.
20050
20051 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
20052
20053         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
20054         (fix bug #27695)
20055         (mono_marshal_get_native_wrapper): allow byref arguments
20056         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
20057         impl. PtrToStringXXX methods
20058         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
20059         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
20060         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
20061         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
20062         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
20063
20064 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20065
20066         * reflection.c: fix buglet in parsing an assembly name.
20067
20068 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
20069
20070         * marshal.c (emit_ptr_to_str_conv): first impl.
20071
20072 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
20073
20074         * object.c, class.h: cache the vtable in the class as suggested by
20075         vargaz@freemail.hu (Zoltan Varga).
20076
20077 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20078
20079         * class.h, loader.c: added mono_field_from_token().
20080         * verify.c: first cut of type checking code.
20081
20082 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
20083
20084         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
20085
20086 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
20087
20088         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
20089         (fix bug #27782)
20090         (mono_marshal_get_remoting_invoke): impl.
20091         (mono_delegate_begin_invoke): impl.
20092         (mono_mb_emit_save_args): impl.
20093         (mono_delegate_end_invoke): impl.
20094         (mono_marshal_get_delegate_begin_invoke):
20095         (mono_marshal_get_delegate_end_invoke):
20096         (mono_marshal_get_delegate_invoke): generate a special name for
20097         those methods (including the signature) and associate them whith
20098         the delegate class. 
20099
20100 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
20101
20102         * reflection.[ch]: 
20103         (mono_reflection_type_from_name): now it has a MonoImage parameter
20104         which is used as the default image to search the type in. If the image
20105         is NULL or getting the type from it fails, it defaults to corlib.
20106
20107         * icall.c: changed 1 call to mono_reflection_type_from_name to match
20108         new parameter.
20109
20110 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20111
20112         * reflection.c: update the parameter table index.
20113
20114 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
20115
20116         * domain.c: don't include the mark byte in the string hash.
20117
20118 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
20119
20120         * icall.cs: icall for Type.GetTypeCode ().
20121         * verify: a couple of fixes and disabled local initialization checks.
20122
20123 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
20124
20125         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
20126
20127         * debug-helpers.c (mono_method_full_name): print the type of the
20128         runtime wrapper
20129
20130         * metadata.c (mono_signature_hash): a hash function for signatures
20131         (mono_signature_hash): better hash algorithm
20132
20133         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
20134
20135         * debug-helpers.c (mono_method_full_name): this can now generate
20136         method names with signatures
20137
20138         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
20139         method dont have this pointers.
20140
20141 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
20142
20143         * reflection.c: fixup typebuilder tokens.
20144         * image.c: fix buglet.
20145         * marshal.h: remove whitespace.
20146         * metadata.h, metadata.c: reinstate code that was removed.
20147         * verify.c: handle catch directives and fix another couple of bugs.
20148
20149 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
20150
20151         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
20152         (mono_marshal_get_native_wrapper): make it comp. with the old code
20153         (mono_marshal_get_native_wrapper): support boolean
20154         (mono_marshal_get_managed_wrapper): support more types
20155
20156 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
20157
20158         * class.c (class_compute_field_layout): compute class->blittable attribute.
20159
20160 2002-07-09  Dick Porter  <dick@ximian.com>
20161
20162         * threads.c: Make the thread cleaning up cope with threads that
20163         call ExitThread()
20164
20165 2002-07-08  Radek Doulik  <rodo@ximian.com>
20166
20167         * reflection.c (method_encode_code): use non-translated values to
20168         compute finally_start, this fixes exception handling on ppc, yay!
20169
20170         * decimal.h (struct signscale): fix endianess
20171
20172 2002-07-07  Radek Doulik  <rodo@ximian.com>
20173
20174         * reflection.c: swap box_val and not val
20175
20176 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
20177
20178         * reflection.c, reflection.h: handle full assembly info in type name.
20179         Handle Type arguments when loading custom attributes.
20180         * icall.c: updated to use new mono_reflection_type_from_name () method.
20181
20182 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20183
20184         * loader.c:
20185         (method_from_memberref): also print assembly name when method not found.
20186
20187 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20188
20189         * icall.c:
20190         (ves_icall_TypeGetProperties): fixed bug #27473. 
20191
20192 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20193
20194         * reflection.c: display image name and token when cannot find the
20195         .ctor for an attribute.
20196
20197 2002-07-05  Martin Baulig  <martin@gnome.org>
20198
20199         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
20200
20201 2002-07-04  Dick Porter  <dick@ximian.com>
20202
20203         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
20204         compile on mingw.  This will cause mingw builds to not wait for
20205         subthreads to terminate after the main thread does.  I've lodged a
20206         bug with the mingw developers for them to wrap OpenThread().
20207
20208 2002-07-03  Dick Porter  <dick@ximian.com>
20209
20210         * threads.c: Store thread IDs instead of handles, because
20211         GetCurrentThread() returns a pseudohandle and therefore stores
20212         useless values.  mono_thread_cleanup() continues checking the
20213         array of threads until it is empty, to cope with subthreads
20214         spawning new threads after the main thread has finished.
20215
20216         * profiler.h:
20217         * profiler.c:
20218         * profiler-private.h: Pass the thread ID to thread profiler
20219         functions, instead of a handle
20220
20221 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20222
20223         * verify.c: fixes to make it more usable.
20224         * pedump.c: added --verify code to verify IL code in an assembly.
20225
20226 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20227
20228         * reflection.c: turn errors into warnings to allow compiling corlib.
20229
20230 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
20231
20232         * reflection.c: add special cases to compile corlib.
20233
20234 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20235
20236         * reflection.c: handle properties with only a set method.
20237
20238 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20239
20240         * opcodes.h: add enum with opcodes in opval order.
20241
20242 2002-07-01  Dick Porter  <dick@ximian.com>
20243         
20244         * object.h:
20245         * object.c (mono_runtime_run_main): Removed unneeded argument
20246
20247 2002-06-28  Martin Baulig  <martin@gnome.org>
20248
20249         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
20250
20251 2002-06-27  Dick Porter  <dick@ximian.com>
20252
20253         * threads.c: Store the handle in both the parent thread and in the
20254         subthread, to minimise the time between starting a new thread and
20255         storing its ID.
20256
20257 2002-06-26  Dick Porter  <dick@ximian.com>
20258
20259         * appdomain.c (mono_runtime_cleanup): Close the socket library
20260         after all the threads have finished, not before
20261
20262 2002-06-26  Martin Baulig  <martin@gnome.org>
20263
20264         * debug-symfile.c (mono_debug_find_source_location): Added
20265         `guint32 *line_number' argument.  If it's not NULL, store the line number
20266         there and return the file name without the line number.
20267
20268 2002-06-25  Dick Porter  <dick@ximian.com>
20269
20270         * icall.c:
20271         * process.h:
20272         * process.c: Process forking and other support functions
20273
20274 2002-06-25  Dick Porter  <dick@ximian.com>
20275
20276         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
20277         things dont happen when the image is closed.
20278         (mono_image_lookup_resource): Walk the resource section looking
20279         for a particular entry
20280
20281         * cil-coff.h: PE resource section decoding
20282
20283 2002-06-25  Dick Porter  <dick@ximian.com>
20284         
20285         * assembly.h:
20286         * assembly.c: 
20287         (mono_assembly_foreach): Accessor functions to walk the list of
20288         loaded assemblies
20289         (mono_assembly_set_main):
20290         (mono_assembly_get_main): Process methods need to know which
20291         assembly is the "main" one
20292
20293         * object.c (mono_runtime_run_main): Record the main assembly
20294
20295         * debug-helpers.c: Fix typo
20296
20297 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
20298
20299         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
20300         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
20301
20302 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20303
20304         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
20305
20306 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
20307
20308         * image.c (do_mono_image_open): Initialize reference count,
20309         otherwise we leak the MonoImage.
20310
20311 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
20312
20313         * reflection.c: small tweak to handle self-hosting.
20314
20315 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
20316
20317         * reflection.c: fix type name parse code.
20318
20319 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20320
20321         * reflection.c: break out of the loop.
20322         * image.c: special case corlib.
20323
20324 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20325
20326         * reflection.c: add all the custom attrs at the end to ensure the
20327         ctors have been properly initialized when the attributes are defined
20328         in the current assembly.
20329
20330 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20331
20332         * reflection.c: handle correctly multiple-nested types.
20333
20334 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
20335
20336         * row-indexes.h: fix typos.
20337         * reflection.c: adjust for typos and fix method_def_or_ref
20338         encoding in MethodImpl table.
20339
20340 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20341
20342         * reflection.c: fix entry point patching (thanks Serge!).
20343
20344 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
20345
20346         * verify.c: add check for System.Exception
20347
20348 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
20349
20350         * image.c, class.c: minifix for code just c&p'ed.
20351         * reflection.c: warning fix.
20352         * object.h, loader.h, domain.c: load also StringBuilder.
20353
20354 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20355
20356         * marshal.h, marshal.c: some support code to handle complex marshaling.
20357
20358 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20359
20360         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
20361         Better signatures with vtable error dump.
20362
20363 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
20364
20365         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
20366
20367 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
20368
20369         * icall.c (ves_icall_Type_GetField): impl.
20370
20371 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20372
20373         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
20374         to retrieve a marshal description blob for a field or param.
20375
20376 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
20377
20378         * reflection.h, reflection.c: change order of nested type emission
20379         to avoid table corruption. The NestedTypes table is sorted.
20380         * icall.c: change order of GetConstructor results to workaround mcs bug.
20381
20382 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20383
20384         * reflection.h, reflection.c: handle field and param marshal
20385         information.
20386
20387 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20388
20389         * icall.c, marshal.c marshal.h: more Marshal class implementation.
20390
20391 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20392
20393         * reflection.c: fix call convention.
20394
20395 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20396
20397         * reflection.h, reflection.c: mono_image_get_memberref_token()
20398         takes a type instead of a class, now. Added
20399         mono_image_get_array_token() to create tokens for the special
20400         multi-dim array methods.
20401
20402 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20403
20404         * assembly.c: handle modules (no assembly table). Split
20405         loading references in its own function.
20406         * class.c: handle moduleref resolution scope.
20407         * image.c, image.h: cache module name in image.
20408
20409 2002-06-07  Martin Baulig  <martin@gnome.org>
20410
20411         * reflection.c (mono_image_get_type_info): Only add a class layout entry
20412         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
20413
20414 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20415
20416         * icall.c: more signature fixes that used uint instead of int.
20417
20418 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20419
20420         * reflection.c: fixed signature of field refs.
20421
20422 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20423
20424         * class.c, reflection.c: handle typerefs of nested types
20425         (both on read and when writing files).
20426
20427 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
20428
20429         * icall.c: fix method signatures that tried to workaround the previous
20430         typo, d'oh!
20431
20432 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
20433
20434         * debug-helpers.c: fix typo.
20435
20436 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
20437
20438         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
20439         rewrote the PE/COFF writing code (our programs are understood by the
20440         ms runtime, now).
20441
20442 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
20443
20444         * gc.c, gc.h, icall.c: weakreference support.
20445
20446 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20447
20448         * Makefile.am, mono-config.c: use $(sysconfdir).
20449
20450 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20451
20452         * icall.c: changed default precision of Double.ToString() to 15.
20453         Fixed memory leak. Unified with Single.ToString.
20454
20455 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
20456
20457         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
20458
20459 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
20460
20461         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
20462         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
20463         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
20464         and myself.
20465
20466 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20467
20468         * debug-symfile.c, sysmath.c: yet more compilation fixes.
20469
20470 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20471
20472         * reflection.c, socket-io.c: more compilation fixes.
20473
20474 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20475
20476         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
20477         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
20478         unicode.c: warning and compiler compatibility fixes.
20479
20480 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20481
20482         * class.h, metadata.c: fixed warnings/compilation errors.
20483
20484 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20485
20486         * Makefile.am, mono-config.c, mono-config.h: configuration file
20487         support routines.
20488         * loader.c, loader.h: make Dll mapping configurable at runtime in the
20489         config file. Export methods to insert and lookup mappings.
20490
20491 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
20492
20493         * reflection.c: handle types and boxed objects in custom attr
20494         constructors.
20495
20496 2002-05-30  Martin Baulig  <martin@gnome.org>
20497
20498         * debug-symfile.c
20499         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
20500
20501 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
20502
20503         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
20504         to lookup the implmap row for a P/Invoke method.
20505         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
20506         P/Invoke method from the runtime on an as needed basis.
20507
20508 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
20509
20510         * metadata.c (mono_metadata_parse_signature): impl.
20511
20512 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20513
20514         * class.c: handle .pack directive.
20515
20516 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
20517
20518         * object.c: initialize static fields with RVA data.
20519
20520 2002-05-25  Martin Baulig  <martin@gnome.org>
20521
20522         * debug-symfile.c
20523         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
20524
20525 2002-05-24  Martin Baulig  <martin@gnome.org>
20526
20527         * debug-symfile.c
20528         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
20529         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
20530         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
20531
20532 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
20533
20534         * object.c: special case string ctros in invoke.
20535         * gc.c: silly whitespace changes.
20536
20537 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
20538
20539         * threadpool.[ch]: impl. a threadpool that can
20540         be used by mint and mono.
20541
20542 2002-05-22  Martin Baulig  <martin@gnome.org>
20543
20544         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
20545         The first argument is now a `MonoReflectionModuleBuilder *', the return
20546         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
20547         `methods' field to get the method builder.  The `token' argument is the
20548         unfixed token.
20549
20550         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
20551         invalid characters instead of g_assert_not_reached()ing.  This seems
20552         to be the behaviour of mscorlib.
20553
20554 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
20555
20556         * object.c (mono_runtime_invoke_array): applied patch from Rachel
20557         Hestilow to fix bug #25104
20558
20559 2002-05-21  Martin Baulig  <martin@gnome.org>
20560
20561         * debug-symfile.c (mono_debug_find_source_location): New function.
20562         Looks up an IL offset in the line number table and returns the source
20563         location as a string.
20564
20565 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20566
20567         * icall.c:
20568         (mono_double_ToStringImpl): changed %f by %g until we have something
20569         better.
20570
20571 2002-05-21  Nick Drochak  <ndrochak@gol.com>
20572
20573         * icall.c : Use different name for Math.Pow's icall.  Needed to check
20574         parameters first in C#.
20575
20576 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20577
20578         * icall.c, reflection.h: added icall to get info about an event.
20579
20580 2002-05-20  Radek Doulik  <rodo@ximian.com>
20581
20582         * object.c (mono_value_box): don't use memcpy for boxing on BIG
20583         endian
20584         (mono_value_box): don't use memcpy for small sizes on
20585         architectures with unaligned access
20586
20587 2002-05-20  Martin Baulig  <martin@gnome.org>
20588
20589         * reflection.c (mono_reflection_setup_internal_class): Don't crash
20590         if `tb->parent == NULL'.
20591         (mono_reflection_create_internal_class): New function.  This is
20592         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
20593         for enum types.
20594
20595         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
20596         New interncall.
20597
20598 2002-05-19  Martin Baulig  <martin@gnome.org>
20599
20600         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
20601         argument to get the length, don't default to the array length.
20602
20603 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
20604
20605         * assembly.c (mono_assembly_setrootdir): New function used to
20606         override the MONO_ASSEMBLIES directory.
20607
20608 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20609
20610         * icall.c: ValueType_GetHashCode() initialize local var.
20611
20612 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20613
20614         * reflection.c: sort custom attributes table.
20615
20616 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20617
20618         * reflection.c: support named args in custom attributes (write support).
20619
20620 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
20621
20622         * reflection.c: fix finally position calculation.
20623
20624 2002-05-15  Radek Doulik  <rodo@ximian.com>
20625
20626         * reflection.c: fixed endianess at many places
20627
20628         * icall.c (ves_icall_InitializeArray): comment out debug msg
20629
20630 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
20631
20632         * object.c (mono_unhandled_exception): new function to handle
20633         unhandled exceptions.
20634         (mono_unhandled_exception): call the UnhandledException event.
20635         (mono_runtime_delegate_invoke): impl.
20636
20637 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
20638
20639         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
20640         returns the RVA, not the direct pointer to the data. Handle the case
20641         when the class size is fixed.
20642
20643 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
20644
20645         * reflection.c: fix some endianess issues.
20646
20647 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
20648
20649         * object.c (mono_runtime_invoke): is now able to catch exceptions.
20650
20651         * threads.c (mono_thread_init): added a callback which is invoked
20652         at thread start.
20653
20654 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
20655         
20656         * icall.c: make GetHashCode return non-negative values.
20657
20658 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
20659
20660         * object.c, icall.c, gc.c: revert to address-based hashcode.
20661
20662 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
20663
20664         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
20665
20666 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20667
20668         * icall.c, class.c: special case <Module>.
20669
20670 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
20671
20672         * icall.c: fix bug in GetNow().
20673
20674 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
20675
20676         * object.c (mono_runtime_class_init): make sure that we call all
20677         static class constructors.
20678
20679 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20680
20681         * reflection.c: sort methodsemantics table.
20682
20683 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
20684
20685         * reflection.h, reflection.c: honour init locals setting.
20686
20687 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
20688
20689         * icall.c: copied Double ToStringImpl for Single ToStringImpl
20690
20691 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
20692
20693         * reflection.c: support ContructorBuilders in attribute blob creation.
20694
20695 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20696
20697         * reflection.c: some changes to build a binary that can be run
20698         directly in windows.
20699
20700 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
20701
20702         * loader.c: print a big message when an icall can't be found.
20703
20704 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20705
20706         * string-icalls.c: fix bug 24248.
20707
20708 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
20709
20710         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
20711         icall.c, reflection.h: separate assembly loading by pathname and by
20712         assembly name. Use the MONO_PATH env var to search for assemblies.
20713
20714 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20715
20716         * assembly.c, image.h: add some support for assemblies
20717         with multiple modules.
20718         * class.c, class.h: export mono_class_from_typeref().
20719         * loader.c: remove duplicated code and use mono_class_from_typeref(),
20720         instead.
20721
20722 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20723
20724         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
20725         documentation says (the ECMA one is correct).
20726
20727 2002-05-02  Dick Porter  <dick@ximian.com>
20728
20729         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
20730         Don't name the synchronisation mutex.
20731
20732 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
20733
20734         * rand.c
20735         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
20736         Make the prototypes match.
20737         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
20738         Same.
20739
20740         * icall.c
20741         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
20742         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
20743         all systems have tm.tm_zone, so use strftime() with %Z to print
20744         the timezone abreviation into a temp string.
20745
20746         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
20747         rather than mono_array_addr() on a MonoString on Big Endian
20748         machines.
20749
20750 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
20751
20752         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
20753         fix bug 24041
20754
20755 2002-04-30  Dick Porter  <dick@ximian.com>
20756
20757         * socket-io.c: Cope with SOCKET being an integer rather than a
20758         pointer now.
20759
20760         * threads.c: Added Thread_free_internal, to deal with thread
20761         handle cleanup.  Moved calls to handle_store() and handle_remove()
20762         to start_wrapper(), so each can only be called once.  Allocate
20763         synchronisation blocks with GC_malloc(), and use GC finalisation
20764         to close the handles.
20765
20766         * icall.c: added System.Threading.Thread::Thread_free_internal
20767
20768 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20769
20770         * icall.c: support Environment.Exit, CommandLineArgs().
20771
20772 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20773
20774         * object.c, object.h: added mono_runtime_run_main () and
20775         mono_runtime_get_main_args () for use in System.Environment.
20776
20777 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20778
20779         * gc.c: fix thinko, enable actual finalization since the jit is now
20780         fixed.
20781
20782 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20783
20784         * gc.c, object.c: take into account that an object may be offset wrt the address
20785         returned by GC_malloc().
20786
20787 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
20788
20789         * image.c: handle files without entries in the assembly table (modules).
20790
20791 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
20792
20793         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
20794         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
20795         allowed to be null when it's System.Object class setup.
20796
20797 2002-04-27  Martin Baulig  <martin@gnome.org>
20798
20799         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
20800         if `tb->parent == NULL' rather than crashing.
20801
20802 2002-04-28  Nick Drochak  <ndrochak@gol.com>
20803
20804         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
20805         calling acos() where asin() should have been called.
20806
20807 2002-04-26  Martin Baulig  <martin@gnome.org>
20808
20809         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
20810         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
20811         there's a subdirectory called `System', but we don't want to read that
20812         subdirectory as an assembly.
20813
20814 2002-04-25  Martin Baulig  <martin@gnome.org>
20815
20816         * debug-symfile.c: Reflect latest MonoString changes.
20817
20818 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20819
20820         * rand.c, rand.h: instance method icalls need to have an explicit
20821         this pointer as first argument in the C implementation.
20822
20823 2002-04-25  Nick Drochak <ndrochak@gol.com>
20824
20825         * icall.c: Fix typo in map for GetNonZeroBytes
20826
20827 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20828
20829         * string-icalls.c : String does now passes unit tests without any 
20830         errors, the following changes has been made:
20831         
20832         Implemented replace methods.
20833         Renaming of methods to (try) follow the standard.
20834         Fixed compare ordinal
20835         Made all memory allocated directly to function instead of via icall function.
20836         Small performance fix in is_in_array function
20837                         
20838  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
20839
20840         c (mono_string_Internal_ctor_charp_int_int):
20841         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
20842         sindex < 0, throw ArgumentOutOfRangeException instead of
20843         ArgumentNullException.
20844
20845         Added new check for length == 0, however
20846         I need to make it return String.Empty from the C code.
20847         
20848         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
20849         that calculate the length for us here.
20850         
20851         (mono_string_Internal_ctor_sbytep_int_int): Replaced
20852         mono_string_new_utf16 with mono_string_new, since value is utf8.
20853
20854 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20855
20856         * object.c: register the object for finalization if needed.
20857         Allocate one more char in the string for the terminating 0 char.
20858
20859 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20860
20861         * class.c, class.h, image.c: check if a type implemenst a destructor.
20862         Use the proper key for array class lookups.
20863         * icall.c: register the icalls in the System.GC class.
20864         * gc.c, gc.h: GC-related functions and icalls.
20865
20866 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20867
20868         * icall.c:
20869         * socket-io.c:
20870         * unicode.c: free some strings gotten from mono_string_to_utf8 and
20871         changed a couple of free () by g_free ().
20872
20873         * decimal.c: one-liner in the comments for decimal2string ().
20874
20875 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20876
20877         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
20878
20879 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20880
20881         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
20882         * object.c (mono_runtime_invoke_array) : handle null in params
20883
20884 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20885
20886         * string-icalls.c: fixed bug in split (one off bug)
20887
20888 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20889
20890         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
20891         * icalls.c: added String::Equals as internal method
20892
20893 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20894
20895         * threads.c: fixed bug in the double interlocked functions
20896
20897 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
20898
20899         * threads.c: implemented all of the new interlocked icalls.
20900         * string-icalls.c: fix a bug in insert.
20901         * icalls.c: added the icalls for interlocked, removed old string functions.
20902         
20903 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
20904
20905         * loader.c: fix off-by-one error when reading argument names.
20906
20907 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20908
20909         * profiler.c: win32 counter implementation (untested).
20910         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
20911         (the latter needs testing and more complete impl. from win32 folks).
20912
20913 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
20914
20915         * object.c: mono_array_new_full workaround mono_array_class_get
20916         problem.
20917
20918 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20919
20920         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
20921         * object.h (mono_string_chars): Changed casting type.
20922
20923 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20924
20925         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
20926                            method signatures to use gunichar2 instead of gint16.
20927
20928 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
20929
20930         * object.h, object.c: domain-specific versions of mono_object_new and
20931         mono_array_new.
20932
20933 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
20934
20935         * object.c: changed String layout
20936
20937         * string-icalls.c (mono_string_Internal_ctor_chara): added
20938         internal string constructors.
20939
20940 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
20941
20942         * threads.c: pass 'this' to the thread start routine.
20943
20944 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20945
20946         * string-icalls.c: fix IndexOf and LastIndexOf. Now
20947         InternalCompareStr don't call twice mono_string_cmp_char for the last
20948         character. Improved performance in mono_string_cmp_char.
20949
20950 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
20951
20952         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
20953         code into its own library: libmonoruntime.
20954
20955 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
20956
20957         * object.h, object.c: changed array format so that szarrays do not
20958         require a bounds structure.
20959         * icall.c, appdomain.c: support for new szarray format.
20960
20961 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
20962
20963         * metadata.c: compare also the retuns type when comparing signatures:
20964         we didn't do this as an optimization since really overloaded methods
20965         must differ also in the arguments, but this doesn't work with
20966         low-level IL code (or when using explicit conversion operators: see
20967         bug#23498 for an example).
20968
20969 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20970
20971         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
20972
20973 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
20974
20975         * icall.c: make MonoType::GetElementType its own icall.
20976
20977 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20978
20979         * icall.c: remove MonoMethod_get_Name().
20980         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
20981         object.
20982
20983 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20984
20985         * string-icalls.c: optimized a few methods.
20986
20987 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20988
20989         * icall.c: added all new string internal calls
20990         * string-icalls.c: added, new string internal call implementation.
20991         * object.c: added mono_string_new_size for allocating a string a size
20992
20993 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
20994
20995         * object.c (mono_object_isinst): use the same code as in the
20996         optimized x86 version.
20997
20998 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20999
21000         * profiler.c: TSC-based timer code (faster and more accurate).
21001         Not hooked up in configure, yet (set USE_X86TSC to 1).
21002
21003 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
21004
21005         * profiler.c, profiler.h: track time spent compiling methods.
21006         * threads.c: track thread creation/destruction.
21007
21008 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
21009
21010         * profiler.c, profiler.h, profiler-private.h: profiling interface
21011         and sample implementation. Moved here so that it can be used also by
21012         the jit.
21013
21014 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
21015
21016         * reflection.c, reflection.h: keep types and other handles separate in
21017         the hash tables for referred tokens. Add guid for modules.
21018
21019 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
21020
21021         * assembly.c: fix bugs found with valgrind.
21022         * metadata.h, metadata.c: added mono_metadata_guid_heap().
21023
21024 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
21025
21026         * threads: added icall support for getting current domain for
21027                    the thread.
21028  
21029 2002-04-13  Martin Baulig  <martin@gnome.org>
21030
21031         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
21032         (MonoDebugVarInfo): Added `index' field for register based addresses.
21033         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
21034         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
21035         `MonoDebugVarInfo *params' and `guint32 this_offset' with
21036         `MonoDebugVarInfo *this_var'.
21037
21038         * debug-symfile.c (relocate_variable): New static function to write
21039         a location description for a local variable or method parameter.
21040
21041 2002-04-12  Martin Baulig  <martin@gnome.org>
21042
21043         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
21044         stack offset and begin/end scope address of a local variable.
21045         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
21046         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
21047         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
21048
21049         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
21050         Added new relocation types for start/end scope of a local variable.
21051
21052 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
21053
21054         * object.h: add mono_object_domain() macro.
21055         * reflection.c: handle typespecs.
21056         * icall.c: MonoMethod::get_Name() implementation.
21057
21058 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
21059
21060         * icall.c: String::GetHashCode() icall implementation.
21061
21062 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
21063
21064         * icall.c: String::IndexOfAny icall.
21065         * object.c, object.h: make array->max_length more useful.
21066         Intrduced mono_object_class() and mono_string_length() macros.
21067
21068 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21069
21070         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
21071         instead of g_unichar_isdigit.
21072
21073 2002-04-11  Nick Drochak  <ndrochak@gol.com>
21074
21075         * icall.c: Implement a simple Double.ToString().
21076
21077 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
21078
21079         * appdomain.h: only io-layer.h is supposed to be included.
21080         * icall.c: explicitly import environ. Fix warning.
21081
21082 2002-04-10  Nick Drochak  <ndrochak@gol.com>
21083
21084         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
21085                 return true even if it's not Daylight Savings time.
21086                 Only return false for the case where the function isn't
21087                 implemented for a plaform (read Windows).
21088
21089 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
21090
21091         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
21092         data with a mutex.
21093
21094 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
21095
21096         * mempool.c (mono_mempool_alloc): only use g_malloc when
21097         absolutely necessary.
21098
21099 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
21100
21101         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
21102
21103         * class.c (mono_class_vtable): use domain mempool to allocate vtable
21104         (mono_class_proxy_vtable): use domain mempool
21105
21106 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
21107
21108         * appdomain.h, appdomain.c: split initialization that requires the
21109         execution engine support into mono_runtime_init().
21110
21111 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
21112
21113         * class.c (mono_class_init): don't include vtable inside MonoClass
21114         to save some memory, gather some statistics.
21115         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
21116
21117 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
21118
21119         * icall.c: internalcall implementation for ValueType.Equals().
21120
21121 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
21122
21123         * object.c (mono_message_init): moved 
21124         (mono_runtime_exec_main): new arch. independent impl.
21125         (mono_runtime_invoke_array): new method - like
21126         mono_runtime_invoke, but you can pass an array of objects.
21127         (mono_remoting_invoke): new arch. independent impl.
21128         (mono_message_invoke): new arch. independent impl.
21129         (mono_runtime_class_init): new arch. independent impl.
21130         (mono_runtime_object_init): new arch. independent impl.
21131
21132 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
21133
21134         * metadata.c, object.c, reflection.c: documented the exported
21135         functions.
21136
21137 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
21138
21139         * icall.c: simpler code to pass the assembly builder data to corlib.
21140         Implement GetNestedTypes() internalcall.
21141
21142 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
21143
21144         * class.c: warn if a type can't be loaded.
21145
21146 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
21147
21148         * image.h: typedef MonoImageOpenStatus
21149         * types.h: removed unused file
21150         
21151 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
21152
21153         * icall.c: Enum_ToObject accepts enum value arguments.
21154
21155 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
21156
21157         * class.c: move initialization of properties, events and nested
21158         classes, so that they happen for interfaces, too.
21159
21160 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
21161
21162         * icall.c: cleanup some ugly casts in Array_SetValue*.
21163
21164 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
21165
21166         * icall.c: the values array fro enums is of the correct type, now.
21167         Implement (correctly) getFullName instead of assQualifiedName for
21168         MonoType.
21169         * reflection.h, reflection.c: added mono_type_get_name ().
21170
21171 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
21172
21173         * assembly.c, image.h: for each MonoImage, record from wich assembly
21174         it was loaded.
21175         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
21176         Make Type.Assembly work.
21177
21178 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
21179
21180         * debug-symfile.h: use char* instead of gpointer to avoid
21181         unnecessary casts.
21182
21183         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
21184
21185         * icall.c (ves_icall_InternalExecute): impl. FielSetter
21186         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
21187
21188 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
21189
21190         * icall.c (mono_message_init): impl. (code cleanup)
21191         (ves_icall_InternalExecute): impl. FieldGetter
21192
21193         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
21194         defined we call all (non-static)methods through the vtable. 
21195
21196 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
21197
21198         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
21199         finalizer even though the memory is still referenced (and the chunk of
21200         memory is not freed).
21201
21202 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
21203
21204         * assembly.c: fix brokeness.
21205
21206 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
21207
21208         * class.c: kill some warnings. Check explicit interface method
21209         implementation also without considering the namespace.
21210         Load also literal strings in static class data.
21211
21212 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
21213
21214         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
21215         (default_assembly_name_resolver): Make the resolver take the
21216         "base" directory where the assembly was originally defined, so we
21217         can load DLLs that are in the same directory as the assembly that
21218         is being referenced.
21219
21220 2002-03-28  Dick Porter  <dick@ximian.com>
21221
21222         * file-io.h: 
21223         * file-io.c:
21224         * socket-io.c: 
21225         * unicode.h: 
21226         * unicode.c: Warning cleanups
21227
21228 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
21229
21230         * object.h, reflection.h: use the correct type instead of MonoObject.
21231
21232 2002-03-28  Martin Baulig  <martin@gnome.org>
21233
21234         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
21235         (mono_debug_update_symbol_file): Initialize classes if necessary.
21236
21237 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
21238
21239         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
21240         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
21241
21242 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
21243
21244         * assembly.h: fix function prototype.
21245         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
21246         * mono-endian.h: use const cast.
21247
21248 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
21249
21250         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
21251
21252 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
21253
21254         * loader.c: don't assert when a typeref can't be loaded, give
21255         a chance to the runtime to trow an exception instead.
21256         * loader.h: fix warning.
21257
21258 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
21259
21260         * class.c (mono_class_proxy_vtable): added proxy support
21261
21262 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
21263
21264         * icall.c: removed last of PAL calls, added System.Environment
21265         * file-io.h, file-io.c: MonoIO implementation
21266         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
21267
21268 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
21269
21270         * appdomain.c: do not use the byte marker in ldstr table lookup.
21271         * debug-helpers.c: allow two ':' to separate class and method name.
21272         * object.c: allocate arrays bounds with the GC, too.
21273         * verify: add a few more checks.
21274
21275 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
21276
21277         * reflection.c: output also literal strings. Allocate parameter data
21278         with GC_malloc() (thanks, Martin, for catching this!).
21279
21280 2002-03-26  Martin Baulig  <martin@gnome.org>
21281
21282         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
21283         include the `this' offset in the `param_offsets'.
21284
21285 2002-03-25  Martin Baulig  <martin@gnome.org>
21286
21287         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
21288         mono_debug_get_class() function to get the classes. Added new
21289         relocation types for arrays and strings.
21290         (mono_debug_get_class): New static function to search in all
21291         referenced assemblies for a metadata token.
21292
21293         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
21294
21295 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
21296
21297         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
21298         hold gc-allocated objects. Make the string heap a stream like the
21299         others. Removed duplicated code when writing stream info.
21300         Added asserts to catch possible buffer overflows. Set the sorted map
21301         for tables that need sorting. Added some documentation.
21302
21303 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
21304
21305         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
21306         for interned strings and vtables.
21307
21308 2002-03-24  Martin Baulig  <martin@gnome.org>
21309
21310         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
21311         it in the array since it was created with g_slist_prepend().
21312
21313 2002-03-24  Martin Baulig  <martin@gnome.org>
21314
21315         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
21316         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
21317         (mono_debug_method_from_token): Renamed to
21318         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
21319         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
21320
21321         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
21322         relocation types.
21323
21324         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
21325
21326 2002-03-24  Martin Baulig  <martin@gnome.org>
21327
21328         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
21329         (mono_debug_method_from_token): New func.
21330
21331         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
21332         New interncall, calls mono_debug_local_type_from_signature().
21333         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
21334         calls mono_debug_method_from_token().
21335
21336 2002-03-23  Martin Baulig  <martin@gnome.org>
21337
21338         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
21339         specifies the number of bytes to be converted, not the array size.
21340         Return the number of chars, not the number of bytes.
21341         (ves_icall_iconv_get_chars): The `byteCount' argument
21342         specifies the number of bytes to be converted, not the array size.
21343
21344 2002-03-23  Martin Baulig  <martin@gnome.org>
21345
21346         * reflection.h (MonoReflectionSigHelper): New type.
21347
21348         * reflection.c (mono_reflection_sighelper_get_signature_local),
21349         (mono_reflection_sighelper_get_signature_local): New functions.
21350
21351         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
21352         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
21353         interncalls.
21354
21355 2002-03-23  Martin Baulig  <martin@gnome.org>
21356
21357         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
21358         is_writeable is set.
21359         (mono_raw_buffer_update): New function to write the modified map
21360         back to disk.
21361
21362         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
21363
21364         * debug-symfile.c (mono_debug_update_symbol_file): Call
21365         mono_raw_buffer_update() when done writing.
21366
21367 2002-03-23  Martin Baulig  <martin@gnome.org>
21368
21369         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
21370
21371         * debug-symfile.c: Added support for arguments and local variables.
21372
21373 2002-03-23  Dick Porter  <dick@ximian.com>
21374
21375         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
21376         protected by ifdefs, hence breaking the w32 build.
21377
21378 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21379
21380         * object.c: implement is_interned() the right way.
21381
21382 2002-03-21  Martin Baulig  <martin@gnome.org>
21383
21384         * debug-symfile.[ch]: New files to handle debugging information
21385         files. There's also support to dynamically update these symbol
21386         files to include machine dependent information.
21387
21388 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
21389
21390         * threads.c (mono_thread_create): new function to create thread
21391         from C
21392
21393 2002-03-20  Martin Baulig  <martin@gnome.org>
21394
21395         * icall.c (ves_icall_InternalInvoke): Create a new object if the
21396         method is a constructor.
21397         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
21398         points to ves_icall_InternalInvoke().
21399
21400 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
21401
21402         * file-io.c: Flush shouldn't throw exceptions.
21403
21404 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
21405
21406         * file-io.c: FileStream flush support; FileSetLength now
21407         restores file pointer.
21408
21409 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
21410
21411         * class.c: set image for pointer classes.
21412
21413 2002/03/19  Nick Drochak <ndrochak@gol.com>
21414
21415         * sysmath.c: Forgot one.
21416
21417 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
21418
21419         * sysmath.c: Avoid redefining existing names.
21420
21421 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
21422
21423         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
21424         handled by runtime as icall rather than dllimport from libm.so
21425         * file-io.c, file-io.h: fixed handle argument type.
21426
21427 2002-03-18  Dick Porter  <dick@ximian.com>
21428
21429         * reflection.c (mono_image_get_type_info): rename interface to
21430         iface, because of "#define interface struct" on windows.
21431
21432 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
21433
21434         * class.c, class.h: rename and export mono_ptr_class_get().
21435         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
21436         * reflection.c, reflection.h, icall.c: better/saner type name
21437         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
21438         method signatures.
21439
21440 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
21441
21442         * class.c (mono_class_init): removed hardcoded GHC_SLOT
21443
21444         * icall.c (ves_icall_InternalInvoke): impl.
21445
21446 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21447
21448         * reflection.c: output the interface map table, too.
21449
21450 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
21451
21452         * class.c (class_compute_field_layout): separate computation of 
21453         static field layout
21454
21455 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
21456
21457         * icall.c: added System.Buffer support.
21458         * file-io.c: moved file icalls from PAL to FileStream.
21459
21460 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
21461
21462         * icall.c (ves_icall_System_Object_GetHashCode): impl.
21463
21464 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
21465
21466         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
21467
21468 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21469
21470         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
21471
21472 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
21473
21474         * debug-helpers.{c,h}: moved here from monograph some useful functions
21475         to locate a method by name/signature in a class or image. Included
21476         also a small and flexible IL disassembler.
21477
21478 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21479
21480         * reflection.c: fixup tokens in methods with small header size, too.
21481
21482 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
21483
21484         * object.c (mono_string_to_utf8): remove assert(!error), instead
21485         print a warning. 
21486
21487 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
21488
21489         * icall.c: update to the new mono_Array_class_get interface.
21490
21491 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
21492
21493         * appdomain.c, object.c: Boehm-GC enable.
21494         * icall.c: make get_data_chunk() support split data requests.
21495         Ensure a class is initialized in more cases. Return only the first
21496         property found in GetProperties() or the compiler gets confused. 
21497         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
21498         * reflection.h, reflection.c: add fixup mechanism for field and method
21499         tokens. Initialize assembly->typeref in a single place. Output
21500         properties after events. Support custom attributes for events, too.
21501         Typo fix for paramter custom attrs.
21502
21503 2002-03-07  Martin Baulig  <martin@gnome.org>
21504
21505         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
21506
21507 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
21508
21509         * class.c (mono_array_class_get): fix. for multi. dim. arrays
21510
21511 2002-03-06  Martin Baulig  <martin@gnome.org>
21512
21513         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
21514         non-zero lower bounds. See testcases #F10-#F13.
21515
21516 2002-03-05  Martin Baulig  <martin@gnome.org>
21517
21518         * exception.c (mono_get_exception_argument_out_of_range): New exception.
21519
21520         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
21521         ves_icall_System_Array_GetValue(), only calculate the absolute array position
21522         here.
21523         (ves_icall_System_Array_SetValue): Likewise.
21524         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
21525         as argument and does the actual work. This function is used when copying a
21526         multi-dimensional array.
21527         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
21528         now do all the widening conversions of value types.
21529         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
21530
21531 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21532
21533         * class.c: remove some magic numbers and use the smbolic names,
21534         instead. Added init_events() to load event info at class init time.
21535         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
21536         and mono_metadata_methods_from_event().
21537         * reflection.h, reflection.c: added support for writing out the evnets
21538         related information.
21539
21540 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
21541
21542         * reflection.h, icall.c: use a different method (GetInterfaces)
21543         to gather interface info and add isbyref, isprimitive and
21544         ispointer to the ves_icall_get_type_info() return value.
21545
21546 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
21547
21548         * class.h: stared adding support for events.
21549         * icall.c: split find_members implementation. Added debug icall to get
21550         the address of an object.
21551         * reflection.c: handle TypeBuilders in mono_type_get_object().
21552
21553 2002-03-01  Martin Baulig  <martin@gnome.org>
21554
21555         * icall.c (ves_icall_System_Array_GetLength): This must throw an
21556         ArgumentOutOfRangeException(), not an ArgumentException().
21557         (ves_icall_System_Array_GetLowerBound): Likewise.
21558         (ves_icall_System_Array_GetValue): Improved argument checking.
21559         (ves_icall_System_Array_SetValue): Improved argument checking.
21560
21561 2002-03-01  Martin Baulig  <martin@gnome.org>
21562
21563         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
21564         called with invalid arguments rather than just dying with g_assert().
21565         (ves_icall_System_Array_SetValue): Likewise.
21566         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
21567         raise a NotImplementedException instead.
21568         (ves_icall_System_Array_GetLength): Added argument checking.
21569         (ves_icall_System_Array_GetLowerBound): Added argument checking.
21570
21571 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
21572
21573         * object.h (mono_assert): new macros mono_assert and
21574         mono_assert_not_reached
21575
21576 2002-02-28  Martin Baulig  <martin@gnome.org>
21577
21578         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
21579         and "System::String::IsInterned" to "System::String::_IsInterned".
21580
21581 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
21582
21583         * icall.c: remove hacks for typebuilder. Added icall to create a
21584         modified type from a tybebuilder.
21585         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
21586         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
21587         to create a backing MonoClass for a TypeBuilder.
21588
21589 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21590
21591         * class.c, class.h: more refactoring of class init.
21592         Export mono_class_setup_mono_type() and mono_class_setup_parent().
21593
21594 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
21595
21596         * marshal.c, marshal.h: start of marshaling interface.
21597
21598 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
21599
21600         * icall.c: fix order in assembly qualified name icall.
21601
21602 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
21603
21604         * class.c: do not free str, since we store it in the hash table.
21605         * reflection.h: add label field to MonoILExceptionInfo.
21606         * reflection.c: handle references to more than one assembly. Handle
21607         case when there isn't a module created in the assembly.
21608
21609 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
21610
21611         * class.c: Fix typo. Start refactoring of class init code.
21612
21613 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
21614
21615         * appdomain.c: exit with 1 on error.
21616         * class.c: we already have the name in MonoClassField.
21617         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
21618         MonoStreamHeader instead of an offset of image->raw_metadata.
21619
21620 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
21621
21622         * appdomain.c (mono_init): Be even more descriptive about the error.
21623
21624 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
21625
21626         * appdomain.c: give the user an informative message when corlib can't
21627         be loaded.
21628
21629 2002-02-26  Martin Baulig  <martin@gnome.org>
21630
21631         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
21632         New icall to get the time zone data.
21633
21634 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21635
21636         * reflection.c: set virtual and raw size of section correctly.
21637         * threads.c: transfer domain information to newly created threads.
21638
21639 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
21640
21641         * class.c: when instancing a class in a domain, load the default
21642         vaules for static fields from the constant table. Fix System.Enum to
21643         not be an enum.
21644         * icall.c: implement Object::GetType() internalcall. Implemented
21645         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
21646         Fixed checking of binding flags in find_members().
21647         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
21648         * reflection.c: handle enumerations when writing to the constant
21649         table. Use a different object cache for types.
21650
21651
21652 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
21653
21654         * object.c (mono_object_isinst): fix for arrays
21655
21656         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
21657
21658 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
21659
21660         * object.c: don't use mprotect ()  and fix intern pool hash table
21661         lookup for big endian systems.
21662
21663 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21664
21665         * icall.c: change type_is_subtype_of () signature.
21666
21667 2002-02-21  Mark Crichton  <crichton@gimp.org>
21668
21669         * rand.c, rand.h: Added random number generator for
21670         System.Security.Cryptography classes.
21671
21672         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
21673
21674         * icall.c: Added System.Security.Cryptography calls.
21675
21676 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
21677
21678         * class.c, icall.c, metadata.c: better support for pointer types.
21679         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
21680         * reflection.c: Add support for getting custom attrs for properties
21681         and simplify some code.
21682
21683 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21684
21685         * icall.c: change getToken () and add custom attribute GetBlob()helper
21686         method.
21687         * reflection.h: add custom attrs array to the reflection builder structures.
21688         * reflection.c: encode and emit custom attributes for all the relevant
21689         reflection objects. Cache fieldref and methodref tokens. Change
21690         mono_image_create_token() interface to take a MonoDynamicAssembly.
21691         More complete custom attributes decoder. Load custom attributes for
21692         Assembly, Field, Method and Constructor objects, too. Make the
21693         returned array an Attribute[] one, not object[]. Added
21694         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
21695         custom attribute constructor.
21696
21697 2002-02-20  Dick Porter  <dick@ximian.com>
21698
21699         * icall.c:
21700         * rawbuffer.c:
21701         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
21702         problem code out for now).
21703
21704 2002-02-19  Radek Doulik  <rodo@ximian.com>
21705
21706         * object.c (mono_ldstr): use hash table to avoid multiple swapping
21707
21708 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
21709
21710         * icall.c: register the GetCustomAttributes method.
21711         * object.c, object.h: add mono_string_new_len ().
21712         * reflection.h, reflection.c: added mono_runtime_invoke(),
21713         mono_install_runtime_invoke(). Added
21714         mono_reflection_get_custom_attrs () to load custom attributes and
21715         create the attribute objects.
21716
21717 2002-02-19  Dick Porter  <dick@ximian.com>
21718         * threads-dummy-types.c:
21719         * threads-dummy-types.h:
21720         * threads-dummy.c:
21721         * threads-dummy.h:
21722         * threads-pthread-types.c:
21723         * threads-pthread-types.h:
21724         * threads-pthread.c:
21725         * threads-pthread.h:  Deleted obsolete files
21726
21727 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
21728
21729         * class.c (mono_class_vtable): runtime init the class when we
21730         allocate static class data.
21731
21732         * icall.c (ves_icall_System_Array_SetValue): check for null values.
21733
21734         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
21735         and String - but we will need generic marshalling support in the
21736         future. 
21737         (mono_init): set the domain name in a ms compatible way
21738
21739         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
21740         String[].
21741
21742 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
21743
21744         * object.c (mono_array_clone): use alloca() instead of g_malloc  
21745         for sizes
21746
21747         * appdomain.c (mono_domain_unload): impl.
21748
21749 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21750
21751         * appdomain.c, object.c: fix intern pool implementation.
21752         * class.c: fix alignment code.
21753
21754 2002-02-16  Radek Doulik  <rodo@ximian.com>
21755
21756         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
21757         and s2 > s1, just copy lower bytes to be compatible with little
21758         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
21759         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
21760
21761         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
21762         force big_endian to be 1 for big endian machines 
21763         (ves_icall_iconv_new_decoder): ditto
21764
21765 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
21766
21767         * socket-io.c (convert_sockopt_level_and_name): If the system
21768         doesn't define SOL_IP or SOL_TCP, get them by hand using
21769         getprotobyname() and caching the values (because this could be a
21770         slow operation).
21771         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
21772         Use the appropriate struct when the system does support it. Ie,
21773         not all systems have struct ip_mreqn so use struct ip_mreq when
21774         appropriate.
21775
21776 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
21777
21778         * reflection.c: handle finally clauses.
21779
21780 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
21781
21782         * socket-io.c: use g_snprintf() instead of snprintf.
21783
21784 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
21785
21786         * reflection.c (mono_param_get_objects): Cast second argument to
21787         mono_method_get_param_names to a const char** to silence the
21788         compiler warning.
21789
21790         * appdomain.c (mono_domain_assembly_open): Put parens around the
21791         truth statement in the for-loop.
21792
21793         * unicode.c (iconv_convert): Got rid of a compiler warning about
21794         int i being unused when the system has a new iconv.
21795         (iconv_get_length): Same.
21796
21797         * image.c (load_class_names): Cast the second argument to
21798         g_hash_table_insert() to char* to hush compiler warnings about the
21799         arg being a const.
21800         (mono_image_open): Same here.
21801
21802         * socket-io.c: Don't conditionally include sys/filio.h or
21803         sys/sockio.h here anymore since we now get them from
21804         io-layer/io-layer.h
21805         (inet_pton): If the system doesn't support inet_aton, implement
21806         using inet_addr and also #define INADDR_NONE if it isn't defined
21807         by the system.
21808
21809 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
21810
21811         * metadata.c, metadata.h: added function to get packing and size info
21812         of a typedef.
21813         * reflection.h, reflection.c: handle field RVA data. Save info about
21814         the table layout if needed. Assign typedef indexes to all the types
21815         before dumping the info about them to avoid forward reference problems.
21816
21817 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
21818
21819         * socket-io.c (convert_sockopt_level_and_name): ifdef
21820         SO_ACCEPTCONN because it is not defined on my system (old debian)
21821
21822 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21823
21824         * opcode.c: use stddef.h to get NULL.
21825
21826 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
21827
21828         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
21829         for FIONBIO, FIONREAD and SIOCATMARK.
21830         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
21831         define INADDR_NONE and besides, inet_addr() is deprecated and
21832         should not be used. Use inet_pton() instead - it also has the
21833         added bonus that it can easily handle IPv6 addresses as well.
21834         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
21835
21836 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
21837
21838         * decimal.c: remove _MSC_VER conditional.
21839
21840 2002-02-13  Dick Porter  <dick@ximian.com>
21841
21842         * socket-io.c: 
21843         * icall.c: Internal calls for Blocking, Select, Shutdown,
21844         GetSocketOption and SetSocketOption
21845
21846 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21847
21848         * assembly.cs: better resolver: use it instead of some kludgy
21849         code.
21850
21851 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
21852
21853         * reflection.c: the best way to speed-up the compiler is to avoid
21854         infinite loops.
21855
21856 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
21857
21858         * class.c (mono_class_vtable): changed the object layout
21859         (obj->vtable->class). 
21860         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
21861
21862 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21863
21864         * assembly.c: look for assemblies in the assembly dir, too.
21865
21866 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21867
21868         * class.c: fix thinko in mono_class_from_type().
21869
21870 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21871
21872         * exception.h, exception.c: added TypeLoadException.
21873         * object.h, object.c: added mono_array_clone ().
21874         * icall.c: handle throwOnError in AssemblyGetType().
21875         Added Array.Clone().
21876         * opcode.h, opcode.c: use a single value for the opcode val.
21877         Compile fix for non-gcc compilers.
21878
21879 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
21880
21881         * opcodes.c, opcodes.h: export interesting info about opcodes.
21882
21883 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
21884
21885         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
21886         icalls. 
21887
21888         * class.c (class_compute_field_layout): set element_class for enums
21889         (mono_class_create_from_typedef): set element_class for normal classes
21890
21891         * icall.c (ves_icall_System_Enum_get_value): impl.
21892
21893         * class.c (mono_class_create_from_typedef): do not set valuetype
21894         flag for System.ValueType and System.Enum
21895
21896 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
21897
21898         * unicode.c (iconv_convert): fix big endian problem.
21899
21900 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21901
21902         * class.c: add asserts if we are ever going to scribble over memory.
21903         * socket-io.c: not all systems have AF_IRDA defined.
21904
21905 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
21906
21907         * class.c (class_compute_field_layout): do not consider static
21908         fields to compute alignment
21909
21910 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
21911
21912         * appdomain.c (mono_appdomain_get): impl.
21913         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
21914
21915 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
21916
21917         * icall.c: ignore "file://" prefix when loading an assembly.
21918
21919 2002-01-23  Dick Porter  <dick@ximian.com>
21920
21921         * socket-io.c:
21922         * icall.c:
21923         * Makefile.am: Added socket support
21924
21925 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
21926
21927         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
21928         code back.  This should return the assemblies that are loaded by
21929         the runtime on behalf of an application domain. 
21930
21931         The current implementation is still broken, it just returns every
21932         assembly loaded, but until we get real applications domain this
21933         will do.
21934
21935 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
21936
21937         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
21938         AppDomain object.
21939
21940 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
21941
21942         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
21943         the mono_class_from_name lookup.
21944         (ves_icall_get_parameter_info): ditto.
21945         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
21946         method.
21947         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
21948
21949 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
21950
21951         * class.c: load also nested classes on class init.
21952         System.ValueType instance methods gets passed boxed
21953         values, unless methods in derived classed that get a pointer to the
21954         data.
21955         * icall.c: use better name parsing code in GetType().
21956         * image.c, image.h: add mono_image_loaded ().
21957         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
21958         * reflection.c, reflection.h: added mono_reflection_parse_type().
21959
21960 2002-01-22  Veronica De Santis <veron78@interfree.it>
21961
21962         * icall.c : Added mapping of internal calls for Manual and Auto reset events
21963         * threads.c : Added the implementation of internal calls for events
21964         * threads.h : Added prototypes of internal calls for events
21965         
21966 2002-01-21  Radek Doulik  <rodo@ximian.com>
21967
21968         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
21969
21970 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
21971
21972         * class.c (mono_class_init): set min_align to 1 (instead of 0)
21973         (mono_class_value_size): use min_align
21974
21975 2002-01-20  Dick Porter  <dick@ximian.com>
21976
21977         * threads.h:
21978         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
21979         so it compiles on w32.
21980
21981 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
21982
21983         * metadata.c (mono_type_stack_size): impl.
21984
21985         * class.c (mono_class_get_field): impl. memberref token
21986
21987 2002-01-16 Veronica De Santis <veron78@@interfree.it>
21988
21989         * icall.h : Added the internal calls mapping for CreateMutex_internal
21990                     and ReleaseMutex_internal.
21991         * threads.h : Added the prototype of mutexes internal calls.
21992         * threads.c : Added the implementations of mutexes internal calls.
21993
21994 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
21995
21996         * metaparse.h: removed unused file.
21997         * reflection.c, reflection.h: added stream_data_align () function 
21998         to align data in streams and keep stream aligned. Add support for
21999         exception support in method headers.
22000
22001 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
22002
22003         * unicode.c: make iconv_convert () return the number of bytess written
22004         in the output buffer.
22005
22006 2002-01-15  Dick Porter  <dick@ximian.com>
22007         * threads.c: Make the runtime's idea of infinite timeouts coincide
22008         with the class library's
22009
22010         Fix a particularly egregious bug in mono_thread_cleanup(). That
22011         code was so utterly bogus it must have been written on a Monday.
22012
22013 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
22014
22015         * reflection.h: add subtypes field to TypeBuilder.
22016         * reflection.c: encode constants for literal fields.
22017         Handle subtypes. Fix user string token (and add a zero byte)
22018         at the end.
22019         
22020 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
22021
22022         * class.c (mono_class_init): bug fix: assign slot numbers for
22023         abstract methods.
22024
22025 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
22026
22027         * reflection.c: don't try to output a code RVA for abstract methods.
22028         Small fixes for method header format. Output parameter info to the
22029         ParamDef table. Save method overriding info to MethodImpl table.
22030         Fix property support. Allow typedef.extends to be a type in the
22031         building assembly.
22032         * verify.c: fix off-by-one error.
22033
22034 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
22035
22036         * class.c: fix mono_class_from_mono_type () for szarray types.
22037         Remove unused cache check in mono_class_from_type_spec().
22038         * icall.c: *type_from_name () functions handle simple arrays and byref.
22039         * reflection.c: handle byref and szarray types. Handle methods without
22040         body (gets P/Invoke compilation working). Handle types and fields in
22041         get_token ().
22042         * reflection.h: add rank to MonoTypeInfo.
22043
22044 2002-01-10  Dick Porter  <dick@ximian.com>
22045
22046         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
22047         internal calls
22048
22049 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
22050
22051         * icall.c: initialize class in type_from_handle ().
22052         Loop also in parent classes for get_method ().
22053         * reflection.c: properly encode class and valuetype types.
22054         Start on encoding TypeBuilder types. Handle fieldrefs.
22055         Use correct length when registering a user string.
22056         Handle ConstructorBuilder and MonoMethod in get_token ().
22057         Make mono_type_get_object () aware of cached types.
22058         * object.c: back out change to mono_string_new ().
22059
22060 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
22061         * object.c: mono_string_new should return a NULL when the string 
22062         passed in is NULL -- not try to deference it.
22063         
22064 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
22065
22066         * icall.c: hack to make IsSubType work for TypeBuilders.
22067         * reflection.c: emit constructors before methods.
22068         Retrieve param names in mono_param_get_objects().
22069
22070 2002/01/05  Nick Drochak  <ndrochak@gol.com>
22071
22072         * Makefile.am: fix list of headers and sources so automake 1.5
22073         doesn't complain. Removed \# at end of list.
22074
22075 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
22076
22077         * reflection.c: get token for a method ref. Set return type of
22078         constructor to void.
22079         * loader.c: debug message.
22080         * class.c: typo fix.
22081
22082 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
22083
22084         * icall.c: fix array init with rank > 1. FindMembers
22085         loops in parent class as well.
22086         * image.c: do not insert nested types in name cache.
22087         * reflection.c: warning fix.
22088         * reflection.h: add override method (for interface impl).
22089
22090 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
22091
22092         * metadata.c: fix customattr decoding.
22093
22094 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
22095
22096         * rawbuffer.cs: Added native Win32 implementation, avoids using
22097         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
22098
22099 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
22100
22101         * class.c: make the low-level routines handle the cache.
22102
22103 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
22104
22105         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
22106
22107 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
22108
22109         * class.c: fix mono_array_element_size() for objects.
22110         * class.h, class.c: add properties to MonoClass and load them
22111         at init time.
22112         * icall.c: check with isinst() when assigning a value to an array
22113         instead of requiring the classes to match exactly.
22114         Implemented icall for System.Type::GetType().
22115         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
22116         enums. Handle bindingflags when looking for methods and fields.
22117         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
22118         and mono_metadata_methods_from_property().
22119         * reflection.h, reflection.c: added structures for propreties,
22120         parameters and enums. Implemented mono_property_get_object() and
22121         mono_param_get_objects().
22122
22123 2001-12-18  Dick Porter  <dick@ximian.com>
22124
22125         * file-io.c: Use mono_string_to_utf16() instead of
22126         mono_string_chars()
22127
22128         * object.c: Added mono_string_to_utf16(), which copies the non
22129         NULL-terminated MonoString into a new double-null-terminated
22130         buffer.
22131
22132 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
22133
22134         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
22135
22136 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
22137
22138         * file-io.c: raise exceptions if handle is invalid.
22139
22140 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
22141
22142         * assembly.c: yet another check for mscorlib.
22143         * class.c, class.h: load nesting info for classes.
22144         * icall.c: many new functions to support the Reflection classes.
22145         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
22146         * reflection.h, reflection.c: mono_image_create_token(),
22147         mono_assembly_get_object(), mono_type_get_object(),
22148         mono_method_get_object(), mono_field_get_object(): methods to return
22149         objects that parallel the C representation of assemblies, types,
22150         methods, fields.
22151
22152 2001-12-11  Dick Porter  <dick@ximian.com>
22153
22154         * icall.c:
22155         * file-io.c: Internal calls for file IO.
22156
22157 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
22158
22159         * tabledefs.h: missing FileAttributes.
22160         * verify.h, verify.c: use is_valid_string () to simplify and check for
22161         valid strings more correctly. Fix warnings and speeling.
22162         Check more tables: Filed, File, ModuleRef, StandAloneSig.
22163         Check code: branches, maxstack, method calls.
22164
22165 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
22166
22167         * object.c (mono_object_allocate): removed static, so that the jit
22168         can allocate value types.
22169
22170         * icall.c (ves_icall_System_DateTime_GetNow): impl.
22171
22172 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
22173
22174         * class.c: init enum types right away and register the
22175         token->MonoClass map in mono_class_create_from_typedef ().
22176         * verify.h, verify.c: first cut of the verifier.
22177         * pedump.c: add --verify switch to verify metadata tables.
22178         * tabledefs.h: add some missing enums.
22179
22180 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
22181
22182         * class.c (mono_install_runtime_class_init): impl.
22183         (mono_class_init): renamed mono_class_metadata_init to
22184         mono_class_init, also removed the metadata_inited flag
22185
22186         * object.c (mono_object_isinst): use faster algorithm
22187
22188 2001-11-30  Radek Doulik  <rodo@ximian.com>
22189
22190         * mono-endian.h: reverted last change
22191         added function prototypes
22192
22193         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
22194         add mono-endian.c back
22195
22196         * mono-endian.c: returned back, as Paolo pointed out, it's needed
22197         for unaligned access, I've mistaked it with endianess. I am
22198         sorry.
22199         (mono_read16): fix reverted endianess
22200         (mono_read64): ditto
22201         (mono_read32): ditto
22202
22203 2001-11-30  Dick Porter  <dick@ximian.com>
22204
22205         * exception.c: Implement mono_exception_from_name()
22206
22207 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
22208
22209         * metadata.h, metadata.c: remove params_size and locals_size and their
22210         calculation from the metadata code: they are only usefult to the
22211         interp.
22212
22213 2001-11-29  Radek Doulik  <rodo@ximian.com>
22214
22215         * object.c (mono_ldstr): swap bytes here, it's probably not the
22216         best place, but works for me now, I'll redo it once I know mono
22217         better, also note that I add PROT_WRITE and don't reset back, also
22218         note that it's only affects big endians, so x86 should be OK
22219
22220         * mono-endian.h (read16): use just glib macros for both endians
22221
22222         * mono-endian.c: removed as glib macros are used in in
22223         mono-endian.h so we don't need to care about endianess for read
22224         macros as glib does that for us already
22225
22226 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
22227
22228         * class.h, class.h: take minimum alignment into consideration so
22229         that the fields of a class remain aligned also when in an array.
22230
22231 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
22232
22233         * loader.h, loader.c: add mono_method_get_param_names().
22234         * class.c: 0-init class fields.
22235
22236 2001-11-26  Dick Porter  <dick@ximian.com>
22237
22238         * icall.c:
22239         * threads-types.h:
22240         * threads.c: New file that handles System.Threading on all platforms
22241
22242         * object.c: 
22243         * object.h: Remove the synchronisation struct from MonoObject,
22244         replace it with a pointer that gets initialised on demand
22245
22246         * Makefile.am: Replace all the system-specific threading code with
22247         a single file that uses the new wrapper library
22248
22249 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
22250
22251         * class.c, class.h: add mono_install_trampoline() so that the runtime
22252         can register a function to create a trampoline: removes the ugly
22253         requirement that a runtime needed to export arch_create_jit_trampoline.
22254         * object.h, object.c: added mono_install_handler() so that the runtime
22255         can install an handler for exceptions generated in C code (with
22256         mono_raise_exception()). Added C struct for System.Delegate.
22257         * pedump.c: removed arch_create_jit_trampoline.
22258         * reflection.c: some cleanups to allow registering user strings and
22259         later getting a token for methodrefs and fieldrefs before the assembly
22260         is built.
22261         * row-indexes.h: updates and fixes from the new ECMA specs.
22262
22263 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
22264
22265         * class.h, class.c: add enum_basetype field to MonoClass.
22266         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
22267         to get index in the constant table reated to a field, param or
22268         property.
22269         * reflection.h, reflection.c: handle constructors. Set public-key and
22270         version number of the built assembly to 0.
22271         * row-indexes.h: update from new ECMA spec.
22272
22273 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
22274
22275         * class.h, class.c: add a max_interface_id to MonoClass.
22276         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
22277         since it's used to do that. Added mono_type_type_from_obj().
22278         Make GetType() return NULL instead of segfaulting if the type was not
22279         found. Handle simple arrays in assQualifiedName.
22280         * object.h: add a struct to represent an Exception.
22281         * reflection.c: output call convention in method signature.
22282         Add code to support P/Invoke methods and fixed offsets for fields.
22283
22284 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
22285
22286         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
22287         the value.
22288         * icall.c: use mono_array_addr instead of array->vector: fixes the
22289         reflection image writing.
22290         * reflection.c: init call convention byte to 0 in method signature.
22291         Encode the property signature. Don't output property-related methods
22292         twice. Really process the properties for a type (don't cast a field to
22293         a property, my mom always told me that).
22294         Fix 64 bit issues in pointer alignment in a different and more
22295         readable way.
22296
22297 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
22298
22299         * loader.h: Removed type class from MonoDefaults, added monotype
22300
22301         * loader.c: Loaded MonoType, removed loading of Type
22302
22303         * icall.c (my_mono_new_object): Now returns a System.MonoType,
22304         and fills in System.Type._impl with a RuntimeTypeHandle rather
22305         than the actual MonoClass *
22306
22307         (ves_icall_type_from_handle): change from type_class to
22308         monotype_class
22309
22310         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
22311         implemented
22312
22313         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
22314         implemented
22315
22316         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
22317
22318         (ves_icall_System_Reflection_Assembly_GetType): implemented
22319
22320         (ves_icall_System_MonoType_assQualifiedName): implemented
22321
22322         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
22323
22324 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
22325
22326         * assembly.c (mono_assembly_open): Implement a cache for the
22327         assemblies. 
22328
22329         (mono_assembly_close): only destroy the assembly when the last
22330         reference is gone.
22331         
22332 2001-11-09  Dick Porter  <dick@ximian.com>
22333
22334         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
22335
22336 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
22337
22338         * class.c (mono_class_metadata_init): bug fix: compute the right slot
22339
22340 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
22341
22342         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
22343         from Martin Weindel.
22344         * object.h: add mono_string_chars ().
22345
22346 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
22347
22348         * reflection.c (build_compressed_metadata): Eliminates warnings
22349         and uses 64-bit clean code.
22350
22351         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
22352         (mono_type_equal): Change signature to eliminate warnings.
22353
22354 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
22355
22356         * icall.c, loader.c: remove the internalcall array constructors.
22357         Changes to match the new MonoArray structure.
22358         * object.h, object.c: an array object doesn't allocate an extra
22359         vector. Add mono_array_new_full () to create jagged arrays easily.
22360
22361 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
22362
22363         * metadata.h, metadata.c: add mono_metadata_field_info () to
22364         retreive all the info about a field from vairous tables.
22365         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
22366         * class.h, class.c: augment MonoClassField with more info.
22367         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
22368         policy and load a field's RVA if needed.
22369
22370 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
22371
22372         * class.c (mono_class_metadata_init): create a trampoline for all
22373         virtual functions instead of actually compiling them.
22374
22375 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
22376
22377         * class.h, class.c: include name in MonoClassField.
22378         * class.c: fix fundamental type of System.Object and System.String.
22379         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
22380         tokens in ldtoken.
22381         * icall.c: remove internalcalls for the Reflection stuff that is now
22382         done in C# code.
22383         * loader.c: mono_field_from_memberref () implementation.
22384         * mono-endian.c: thinko (s/struct/union/g).
22385         * object.c, object.h: make the mono_string_* prototypes actually use
22386         MonoString instead of MonoObject.
22387         * reflection.c, reflection.h: updates for changes in the reflection
22388         code in corlib: we use C structures that map to the actual C# classes.
22389         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
22390         fat method header if needed and use the info from the ILGenerator for
22391         methods. Handle fields in types. Misc fixes.
22392
22393 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
22394
22395         * class.c (mono_class_metadata_init): bug fix: always allocate
22396         space for static class data
22397
22398 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
22399
22400         * class.c (mono_compute_relative_numbering): use relative
22401         numbering to support fast runtime type checks.
22402
22403 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
22404
22405         * class.c (mono_class_create_from_typeref): added debugging output
22406         to print class name when MonoDummy is returned instead of real class
22407
22408 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
22409
22410         * class.c (mono_class_metadata_init): interface offset table now
22411         contains pointers into the vtable - this is more efficient for the jit
22412
22413 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
22414
22415         * class.c (mono_class_metadata_init): use a temporary vtable (the
22416         old algorithm only worked for the interpreter, but not for the jit)
22417
22418 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
22419
22420         * loader.c (method_from_memberref): use mono_class_get to get the
22421         class of an array instead of using System.Array directly.
22422         (mono_get_method): also add MEMBERREF methods to the method cache
22423         which usefull for arrays.
22424
22425 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
22426
22427         * pedump.c (arch_compile_method): added to compute vtable entry
22428
22429         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
22430         number of interfaces.
22431         
22432         * class.h: merged MonoArrayClass into MonoClass
22433
22434         * class.c (mono_class_create_from_typedef): compute the vtable size and
22435         allocate space to include the vtable inside MonoClass
22436         (mono_class_metadata_init): initialize the vtable
22437
22438 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
22439
22440         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
22441         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
22442         * image.c: endian fixes by Laurent Rioux.
22443         * object.h, object.c: rename MonoStringObject to MonoString and
22444         MonoArrayObject to MonoArray. Change some function names to conform to
22445         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
22446         guint16* as first argument, so don't use char*.
22447         Provide macros to do the interesting things on arrays in a portable way.
22448         * threads-pthread.c: updates for the API changes and #include <sched.h>
22449         (required for sched_yield()).
22450         * icall.c: updates for the API changes above.
22451         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
22452         platforms that need them.
22453
22454 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
22455
22456         * class.c: set the correct type for all the fundamental
22457         type when loading the class.
22458
22459 2001-10-05  Dick Porter  <dick@ximian.com>
22460
22461         * threads-pthread.c (pthread_mutex_timedlock): Simple
22462         compatibility version for C libraries that lack this call.
22463
22464 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22465
22466         * class.c: MonoTypes stored in MonoClass are stored as
22467         fundamental MonoTypes when the class represents a
22468         fundamental type (System.Int32, ...).
22469         The TypeHandle return by ldtoken is a MonoType*.
22470         * icall.c: ves_icall_get_data_chunk () write out all the
22471         PE/COFF stuff. Implement ves_icall_define_method (),
22472         ves_icall_set_method_body (), ves_icall_type_from_handle ().
22473         * image.c: properly skip unknown streams.
22474         * loader.h, loader.c: add type_class to mono_defaults.
22475         * metadata.c, metadata.h: export compute_size () as
22476         mono_metadata_compute_size () with a better interface.
22477         Typo and C&P fixes.
22478         * pedump.c: don't try to print the entry point RVA if there is no entry point.
22479         * reflection.c, reflection.h: many cleanups, fixes, output method
22480         signatures and headers, typedef and typeref info, compress the metadata
22481         tables, output all the heap streams, cli header etc.
22482         * row-indexes.h: typo fixes.
22483
22484 2001-10-04  Dick Porter  <dick@ximian.com>
22485
22486         * object.h: Add a synchronisation mutex struct to MonoObject
22487
22488         * object.c (mono_new_object): Initialise the object
22489         synchronisation mutexes
22490
22491         * icall.c: System.Threading.Monitor internal calls
22492         
22493         * threads-pthread.h:
22494         * threads-pthread.c: System.Threading.Monitor internal calls
22495
22496         * threads-types.h: New file, includes the system-specific thread
22497         structures
22498         
22499         * threads-pthread-types.h:
22500         * threads-pthread-types.c: New files, handle pthread-specific
22501         synchronisation types
22502
22503         * threads-dummy-types.h: 
22504         * threads-dummy-types.c: New files of dummy support for
22505         thread-specific types
22506
22507         * metadata.c:
22508         * image.c:
22509         * pedump.c: include mono-endian.h not endian.h
22510         
22511         * Makefile.am: More threads files.
22512         Name mono-endian.h not endian.h
22513
22514 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
22515
22516         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
22517         stuff and implement a few more bits.
22518         * icall.c: a field needs to be dereferenced twice. Do not use the same
22519         name for two variables in the same scope.
22520         * image.c, image.h: cleanups.
22521
22522 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
22523
22524         * class.c (mono_class_metadata_init): bug fix: compute the right size
22525
22526 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
22527
22528         * icall.c: implemented some of the Reflection internalcalls.
22529         * image.c, image.h: start writing out the PE/COFF image.
22530         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
22531         that does the reverse than decode_blob_size ().
22532         * object.c: use mono_metadata_encode_value (). Move here
22533         temporary implementation of mono_string_to_utf8 ().
22534         * rawbuffer.c: make malloc_map static.
22535
22536 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22537
22538         * metadata.c: fix type comparison for arrays.
22539         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
22540         Added a couple of new classes to monodefaults.
22541         * icall.c: added a couple of Reflection-related internalcalls.
22542         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
22543         Added a byval_arg MonoType to MonoClass.
22544
22545 2001-09-28  Dick Porter  <dick@ximian.com>
22546
22547         * icall.c:
22548         * threads-pthread.h: 
22549         * threads-pthread.c: Implemented internal calls for
22550         LocalDataStoreSlot operations.  Applied mutexes around all shared
22551         data.  Reworked the thread creation and Start() operations to
22552         avoid a race condition.
22553         
22554         * threads-dummy.h:
22555         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
22556
22557 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
22558
22559         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
22560
22561 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
22562
22563         * class.c, loader.c: warn and return NULL instead of erroring out.
22564         * icall.c: added System.AppDomain::getCurDomain().
22565         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
22566
22567 2001-09-25  Dick Porter  <dick@ximian.com>
22568
22569         * threads-pthread.h:
22570         * threads-pthread.c: Implemented timed thread joining and added
22571         System.Threading.Thread::Join_internal internal call
22572
22573         * icall.c: Added System.Threading.Thread::Join_internal internal call
22574
22575         * threads-dummy.h:
22576         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
22577
22578 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
22579
22580         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
22581         mono_string_intern () to implement the semantics of the ldstr opcode
22582         and the interning of System.Strings.
22583         * icall.c: provide hooks to make String::IsIntern and String::Intern
22584         internalcalls.
22585
22586 2001-09-23  Dick Porter  <dick@ximian.com>
22587
22588         * threads-dummy.c: 
22589         * threads-dummy.h: New files of dummy threading routines
22590
22591         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
22592         support code based on system specifics
22593
22594         Rename PTHREAD_LIBS to THREAD_LIBS
22595         
22596 2001-09-23  Dick Porter  <dick@ximian.com>
22597
22598         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
22599         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
22600         internal calls.
22601         (mono_thread_init): Set up a Thread object instance to return when
22602         the main thread calls Thread.CurrentThread
22603         (mono_thread_cleanup): Wait for all subthreads to exit
22604
22605         * icall.c: New internal calls for System.Threading.Thread::Sleep
22606         (including Schedule) and CurrentThread
22607
22608         * threads.h: New file, to insulate thread-specific stuff from the
22609         rest of the code
22610
22611 2001-09-21  Dick Porter  <dick@ximian.com>
22612
22613         * threads-pthread.h: 
22614         * threads-pthread.c: New file, for handling pthreads-style
22615         threading support.  Start() now starts a new thread and executes
22616         the ThreadStart delegate instance.
22617
22618         * icall.c: Added the internalcall for
22619         System.Threading.Thread::Start_internal
22620
22621         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
22622
22623 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
22624
22625         * loader.c: work around the different signatures for delegates
22626         constructors csc generates in compiled code vs the ones compiled in mscorlib.
22627
22628 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
22629
22630         * class.h, class.c: add mono_class_get_field_from_name ().
22631         * *: Fix C comments and other ANSI C issues.
22632
22633 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
22634
22635         * endian.h, assembly.c: fix some endianness issues.
22636
22637 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
22638
22639         * loader.h, load.c: add delegate_class to mono_defaults.
22640         Handle runtime provided methods in mono_get_method ().
22641
22642 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
22643
22644         * loader.c (mono_get_method): use pinvoke for internal call
22645
22646         * icall.c: use pinvoke for internal call
22647
22648         * loader.c (method_from_memberref): set the method name
22649
22650 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
22651
22652         * metadata.c: help the compiler generate better code for
22653         mono_class_from_mono_type ().
22654
22655 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
22656
22657         * class.c (mono_class_metadata_init): delayed computing of the
22658         class size to mono_class_metadata_init ()
22659
22660 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
22661
22662         * class.c, class.h: add an interfaces member to MonoClass.
22663         * image.c, image.h: add assembly_name field to MonoImage
22664         from the assembly table.
22665         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
22666
22667 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
22668
22669         * class.c: Handle Array in mono_class_from_mono_type ().
22670         * metadata.c, pedump.c: some endian fixes.
22671
22672 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
22673
22674         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
22675         * metadata.c: fix small problem introduced with the latest commit.
22676
22677 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
22678
22679         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
22680         We don't need a MonoMetadata pointer anymore to compare signatures in
22681         mono_metadata_signature_equal (), update callers.
22682         Reduced memory usage an number of allocations for MonoMethodHeader and
22683         MonoMethodSignature.
22684
22685 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
22686
22687         * metadata.c: added compare for szarray.
22688
22689 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
22690
22691         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
22692         and add a couple more types to it and mono_defaults. Give an hint on
22693         classes that need implementing in our corlib and are referenced
22694         in mscorlib.
22695
22696 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
22697
22698         * class.h, class.c: keep track if a class is also an Enum.
22699         * loader.c: Implement a couple more types for use in libffi
22700         marshalling. Gives better diagnostics when failing to dlopen
22701         a library. Set method->klass for P/Invoke methods, too.
22702
22703 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
22704
22705         * class.c, class.h: add a MonoType this_arg to MonoClass that
22706         represents a pointer to an object of the class' type that
22707         can be used by the interpreter and later the type cache.
22708         Add best guess alignment info for valuetype objects.
22709
22710 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
22711
22712         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
22713         into MonoType: one less level of indirection and allocation and
22714         simplifies quite a bit of code. Added cache for MonoTypes that are
22715         used frequently, so that we don't need to allocate them all the time.
22716
22717 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
22718
22719         * class.c (mono_class_create_from_typedef): System.Enum is also a
22720         value type, although it does not derive from System.ValueType
22721         (maybe a bug in the ms compiler?)
22722
22723         * metadata.c (mono_type_size): return the right size for value types
22724
22725         * loader.c (mono_get_method): only initialize method header if not abstract
22726
22727         * class.c (mono_class_from_mono_type): use mono_default values. 
22728
22729 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
22730
22731         * *: use MonoClass pointers instead of <type_tokens>
22732         
22733         * class.h: new flag: metadata_inited.
22734
22735         * class.c (mono_class_metadata_init): impl.
22736         (mono_class_instance_size): impl.
22737         (mono_class_data_size): impl.
22738
22739 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22740
22741         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
22742         MonoClass now has the name and name_space fields. 
22743         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
22744         mono_get_method () takes and optional MonoClass as argument.
22745         Removed mono_typedef_from_name() and added mono_class_token_from_name()
22746         instead that takes advantage of a map from class names to typedef
22747         tokens in MonoImage.
22748
22749 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
22750
22751         * metadata.c: zero is not a valid alignment boundary.
22752         Merge MONO_TYPE_VOID in default decoding code.
22753
22754 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
22755
22756         * image.h: merged MonoMetadata into MonoImage
22757
22758         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
22759         identify the type of elements.
22760
22761 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
22762
22763         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
22764         * cil-coff.h: split MonoMSDOSHeader and add size info.
22765         * image.c: add some consistency checks.
22766         * metadata.c: fix row size computation: one programmer
22767         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
22768         add explanation for the locator routine.
22769         Fix decoding of size in method header.
22770         
22771 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
22772
22773         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
22774         (g_concat_dir_and_file): Bring g_concat_dir_and_file
22775         function from gnome-libs.  This uses the right path separator
22776         based on the OS, and also works around a bug in some systems where
22777         a double slash is not allowed. 
22778         (default_assembly_name_resolver): Use g_concat_dir_and_file
22779         (mono_assembly_open): ditto.
22780
22781 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
22782
22783         * metadata.c (mono_metadata_signature_equal): impl.
22784
22785         * *: void is now a realy MonoType (instead of using NULL)
22786         
22787         * metadata.c (do_mono_metadata_parse_type): use
22788         mono_metadata_parse_type to parse void value.
22789
22790 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
22791
22792         * metadata.c, metadata.h: in the signature and method header store
22793         only the space required for holding the loca vars and incoming arguments.
22794
22795 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
22796
22797         * metadata.c (do_mono_metadata_parse_type): treat void like any
22798         other type (instead of assigning NULL);
22799
22800 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
22801
22802         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
22803
22804 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
22805
22806         * image.c (do_mono_image_open): added a cache for arrays.
22807
22808 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
22809
22810         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
22811         decode a single column from a row in a metadata table and changes
22812         to take advantage of it in the typedef locator (gives a nice speed up).
22813         Store offset info for function params.
22814
22815 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
22816
22817         * image.h (MONO_IMAGE_IS_CORLIB): removed 
22818
22819 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
22820
22821         * assembly.c: how could mono_assembly_close () had ever worked?
22822         * metadata.c, metadata.h: provide offset info for local vars.
22823         Implement mono_type_size () to take care of alignment as well
22824         as size (it was mono_field_type_size in cli/class.c before).
22825
22826 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
22827
22828         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
22829
22830         * assembly.h (CORLIB_NAME): set to corlib.dll
22831
22832         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
22833
22834 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
22835
22836         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
22837         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
22838         tokentype.h: massive namespace cleanup.
22839
22840 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
22841
22842         * metadata.h, metadata.c: decode exception clauses when parsing method header.
22843
22844 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
22845
22846         * metadata.c (mono_metadata_free_type): added check for type !=
22847         NULL (void) before calling mono_metadata_free_type()
22848
22849 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
22850
22851         * metadata.h, row_indexes.h: added header with enumerations to use
22852         to index in the columns from tables in metadata and to decode coded
22853         tokens: we should start using this instead of embedding magic numbers
22854         all over the code.
22855
22856 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
22857
22858         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
22859         Move metadata_t info from cli_image_info_t to MonoImage, where
22860         it's easily accessible. Changed all the uses accordingly.
22861         Added the method and class caches to MonoImage.
22862         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
22863         and mono_metadata_decode_value () signature to be more consistent
22864         with the other parse functions (and simplify code). Taken advantage
22865         of zero-length array allocation with GCC. Removed reduntant (and
22866         wrong) MonoFieldType struct and use MonoParam instead. Changed
22867         mono_metadata_parse_field_type () to use common code for parsing.
22868         Added mono_metadata_typedef_from_field () and
22869         mono_metadata_typedef_from_method () to lookup a typedef index from a
22870         field or method token.
22871         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
22872
22873 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
22874
22875         * metadata.c (mono_metadata_parse_field_type): Implement. 
22876         (do_mono_metadata_parse_type): Split engine from
22877         mono_metadata_parse_type, so that we can create smaller structures
22878         for things that just have one pointer to the MonoType (look at
22879         the MonoFieldType)
22880
22881 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
22882
22883         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
22884         as Jan Gray found out, it is incorrect. 
22885
22886 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
22887
22888         * assembly.c: Implement asssembly loading.  This loads an image
22889         and loads all the referenced assemblies.  Come to think of it, we
22890         could always do lazy loading of the assemblies. 
22891
22892         * image.c (mono_image_open): Keep loaded images in a hashtable.
22893
22894         * image.h (MonoImage): Add reference count.
22895
22896 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
22897
22898         * assembly.c (mono_assembly_open): Keep track of the file name in
22899         case the assembly has no ASSEMBLY table.
22900
22901         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
22902         from get.c here.
22903
22904 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
22905
22906         * metadata.c, metadata.h: decode local vars in method header
22907         parse function. Change callers accordingly.
22908
22909 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
22910
22911         * metadata.h, cil-coff.h: protect against multiple inclusion.
22912         Added some new structures to hold information decoded from metadata:
22913         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
22914         and relevant decoding/free functions.
22915         * metadata.c: implement decoding functions. Add warning for out of bounds
22916         index in mono_metadata_locate(). Implement mono_get_method () to retreive
22917         all the info about a method signature and invocation. Remove check on
22918         uninitialized local var in parse_mh() and fix memory leak.
22919
22920 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
22921
22922         * metadata.h: More macros.
22923
22924         * tokentype.h: New file.
22925
22926 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
22927
22928         * assembly.c: added a consistency check and initialize
22929         some structures with g_new0().
22930         * metadata.c: fixed a couple more bugs in table size computation
22931         and add other checks for out-of bound access to metadata.
22932
22933 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
22934
22935         * metatada.c: fix bugs computing table sizes. Spew a
22936         warning when index in string heap is out of bounds.
22937
22938 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
22939
22940         * metadata.h: Add a couple of macros to manipulate tokens. 
22941
22942 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
22943
22944         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
22945         cli_section_tables).
22946
22947 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
22948
22949         * metadata.c (mono_metadata_user_string): New function, provides
22950         access to the UserString heap. 
22951
22952 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
22953
22954         * metadata.c: Add inline documentation.
22955
22956 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
22957
22958         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
22959         files. 
22960
22961 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
22962
22963         * typeattr.h: New file, TypeAttribute flags. 
22964
22965 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
22966
22967         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
22968         mono_assembly_ensure_section): Section loading code.
22969         (load_section_tables): Load the sections.
22970
22971         * mono/metadata/metadata.c (mono_metadata_locate_token,
22972         mono_metadata_locate): Functions to locate the information
22973         definition given a token or a table and an index.
22974         (mono_metadata_compute_table_bases): New.
22975         (compute_size): New function to compute the sizes of the various
22976         tables.
22977
22978         * mono/metadata/metadata.h: Finish listing the different index
22979         types. 
22980
22981         * mono/metadata/pedump.c: Improve to dump new information.
22982
22983 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
22984
22985         * mono/metadata/metadata.c: Entered all the tables matching
22986         Beta2. 
22987
22988         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
22989
22990
22991