Tue Sep 25 14:56:03 CEST 2007 Paolo Molaro <lupus@ximian.com>
[mono.git] / mono / metadata / ChangeLog
1
2 Tue Sep 25 14:56:03 CEST 2007 Paolo Molaro <lupus@ximian.com>
3
4         * threads.c: support OSX and other systems in
5         mono_thread_get_stack_bounds (bug #328026).
6
7 2007-09-25  Martin Baulig  <martin@ximian.com>
8
9         * mono-debug.h
10         (MonoDebugVarInfo): Replace `MonoClass *klass' with `MonoType *type'.
11
12 2007-09-24  Martin Baulig  <martin@ximian.com>
13
14         * mono-debug.h
15         (MonoDebugClassEntry): Moved the definition of this struct into
16         mono-debug.c to make it private.
17
18         * mono-debug.c
19         (MonoDebugClassEntry): Removed `symfile_id'; since we now use one
20         type table per symbol file, we don't need to store the symfile id
21         any longer.
22
23 2007-09-24  Martin Baulig  <martin@ximian.com>
24
25         Create one type table per symbol file, since a `MonoClass *' gets
26         invalid when its image is unloaded.
27
28         * mono-debug.h (MonoSymbolTable): Removed `type_table'.
29         (MonoDebugHandle): Added `type_table'.
30
31 Mon Sep 24 17:25:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
32
33         * mempool.c, mempool.h: added mono_mempool_new_size () API
34         to be able to specify a smaller initial size for the pool.
35         Adjusted the code to slowly increase pool size before using
36         the previous default size.
37         * image.c: use a small initial size for image mempools.
38
39 2007-09-23  Zoltan Varga  <vargaz@gmail.com>
40
41         * marshal.c (emit_marshal_array): Generate valid IL for byref array case.
42         Fixes ##320990.
43
44         * icall.c (ves_icall_System_Reflection_Assembly_get_ManifestModuleInternal): 
45         Rename this to ves_icall_System_Reflection_Assembly_GetManifestModuleInternal.
46
47 2007-09-22  Zoltan Varga  <vargaz@gmail.com>
48
49         * metadata.c (mono_type_create_from_typespec): Remove an invalid
50         free. Fixes #327438.
51
52 2007-09-21  Raja R Harinath  <harinath@gmail.com>
53
54         * metadata.c (type_in_image) <MONO_TYPE_SZARRAY>: Handle arrays of
55         generic instantiations, etc.
56         <MONO_TYPE_ARRAY>: Likewise.
57
58 2007-09-21  Martin Baulig  <martin@ximian.com>
59
60         * mono-debug.h (MonoSymbolFilePriv, MonoDebugHandlePriv): Removed;
61         these structs were never defined.
62         (MonoDebugHandle): Removed the `_priv' field, it was never used.
63
64 2007-09-21  Martin Baulig  <martin@ximian.com>
65
66         * mono-debug.h (MonoDebugVarInfo): Add `MonoClass *klass'.
67
68 Fri Sep 21 14:39:45 CEST 2007 Paolo Molaro <lupus@ximian.com>
69
70         * image.c: removed the guid hash tables: we can get the same info
71         without the additional memory usage hit (partially fixes also bug #327052).
72
73 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
74
75         * profiler.h, profiler-private.h, profiler.c: add a new profiler
76         event to handle unloading methods. After the event is called, the
77         corresponding MonoMethod* must be considered invalid.
78         * loader.c (mono_free_method): call the new mono_profiler_method_free
79         event.
80
81 2007-09-20  Mark Probst  <mark.probst@gmail.com>
82
83         * domain-internals.h: New flag in MonoJitInfo which marks shared
84         generic methods.  New hash table (shared_generics_hash) in
85         MonoDomain to keep track of shared generic methods.  Prototypes
86         for functions to register and lookup shared generic methods.
87
88         * domain.c: Support for registering and looking up shared generic
89         methods via a hash table (shared_generics_hash) in MonoDomain.
90
91         * class-internals.h: New exception to signal failure of shared
92         compilation of a generic method.  New counters for generics
93         sharing in MonoStats.
94
95 Thu Sep 20 16:59:36 CEST 2007 Paolo Molaro <lupus@ximian.com>
96
97         * image.c, metadata-internals.h: don't keep a file descriptor open
98         for loaded assemblies (bug#325988).
99
100 2007-09-19  Raja R Harinath  <rharinath@novell.com>
101
102         * metadata.c (signature_in_image): New.  Carve out of type_in_image.
103         (ginst_in_image, gclass_in_image): Simplify.  Change signature to
104         use the corresponding datatypes.
105         (type_in_image): Update to changes.
106         (CleanForImageUserData): Simplify.
107         (steal_gclass_in_image): Carved out of old 'gclass_in_image'.
108         Avoid quadratic behaviour in handling the "stolen" list by
109         separating the filter predicate out, and by prepending the stolen
110         items rather than appending them.
111         (steal_ginst_in_image): Likewise.
112         (mono_metadata_clean_for_image): Update to changes.
113
114 2007-09-19  Martin Baulig  <martin@ximian.com>
115
116         * domain.c (mono_cleanup): Call mono_debug_cleanup() here.
117
118 2007-09-19  Martin Baulig  <martin@ximian.com>
119
120         * mono-debug.c (mono_debug_cleanup): Don't call
121         mono_debugger_cleanup(); this is now called earlier from mini_cleanup().
122
123 2007-09-19  Raja R Harinath  <harinath@gmail.com>
124
125         Fix crash on 'make run-test' in mcs/errors
126         * metadata.c (type_in_image): New.  Carve out of ginst_in_image.
127         Avoid more potential allocations in mono_class_from_mono_type.
128         (ginst_in_image): Update to changes.
129         (gclass_in_image): Rearrange slightly.
130
131 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
132
133         * class.c (mono_class_init): Move the code that sets up class->methods to 
134         mono_class_setup_methods () for inflated generic classes too. Ditto for properties.
135
136         * metadata.c (mono_metadata_get_inflated_signature): New function to return a
137         canonical instance of an inflated generic signature.
138         (mono_type_create_from_typespec): Remove an invalid free.
139
140         * loader.c (mono_method_get_signature_full): Use mono_metadata_get_inflated_signature.  
141
142 2007-09-18  Marek Habersack  <mhabersack@novell.com>
143
144         * domain-internals.h: added a declaration of the
145         mono_assembly_load_full_nosearch internal function.
146
147         * assembly.c (mono_assembly_load_with_partial_name): use
148         mono_try_assembly_resolve return value properly.
149         (mono_assembly_load_full_nosearch): copied the function body from
150         mono_assembly_load_full, without the code to invoke assembly
151         search hooks.
152         (mono_assembly_load_full): calls the above new function and if the
153         assembly is not resolved, invokes the search hooks.
154
155         * appdomain.c (mono_runtime_init): restore the global postload
156         assembly search handlers.
157
158 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
159
160         * class.c (mono_class_init): Make sure class->methods and class->properties
161         are never NULL in the generics case.
162
163         * metadata.c (free_generic_class): Enable this again, skip the dynamic case.
164
165 2007-09-17  Zoltan Varga  <vargaz@gmail.com>
166
167         * metadata.c (free_generic_class): Disable some code to fix the build.
168
169         * domain.c (mono_cleanup): Fix a crash introduced by a previous patch.
170
171         * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data
172         from the image mempool.
173
174         * metadata.c (free_generic_class): Free more data from the inflated class.
175
176         * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool.
177
178         * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
179         mempool.
180         (mono_type_create_from_typespec): Ditto.
181
182         * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
183         MonoImage to the caller.
184         (mono_init_internal): Save the opened image in a global variable.
185         (mono_cleanup): Close the image opened in get_runtimes_from_exe.
186
187         * reflection.c (resolve_object): Fix a leak.
188
189         * metadata.c: Fix the freeing of data in the generics caches.
190         
191         * metadata.c (free_generic_inst): Comment this out to fix the build.
192         (free_generic_class): Ditto.
193
194         * metadata.c: Free cached generic methods, instantinations and classes when
195         they are removed from the caches.
196         (mono_metadata_free_type): Free the type itself.
197
198         * class.c: Free the result of mono_class_inflate_generic_type () in a few
199         places.
200
201 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
202
203         * boehm-gc.c: restrict managed allocs to __thread supporting
204         architectures.
205
206 2007-09-16  Zoltan Varga  <vargaz@gmail.com>
207
208         * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
209         (mono_generic_class_get_class): Fix a leak.
210
211         * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
212         mono_metadata_free_type ().
213         (mono_metadata_inflate_generic_inst): Fix a leak.
214
215 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
216
217         * mono-debug.c (free_header_data): Fix a leak missed earlier.
218
219         * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
220         mempool.
221
222         * mono-debug.c (mono_debug_close_image): Fix call to 
223         g_hash_table_remove ().
224
225 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
226
227         * icall-def.h: redirect all the string ctor to the managed
228         CreateString () methods.
229         * string-icalls.c, string-icalls.h: removed dead code for string
230         ctors and icalls.
231
232 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
233
234         * mono-debug.c: Fix memory leaks.
235
236 2007-09-14  Jonathan Chambers <joncham@gmail.com>
237
238         * threads-types.h: Implement mono_hazard_pointer_set and 
239         mono_hazard_pointer_clear macros using do/while(0) to fix
240         compilation with MSVC.
241         
242         Code is contributed under MIT/X11 license.
243
244 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
245
246         * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
247         -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
248
249 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
250
251         * icall-def.h, string-icalls.c: get rid of old, no longer used, string
252         icalls.
253
254 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
255
256         * boehm-gc.c, gc-internal.h, object.c: allow strings to be
257         managed-code allocated as well.
258
259 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
260
261         * class.c (mono_class_is_assignable_from): Add support for generic variance.
262
263 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
264
265         * boehm-gc.c: fixed the build after the AOT changes.
266
267 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
268
269         * wrapper-types.h: Add an ALLOC wrapper type.
270
271         * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
272         reference managed allocator methods.
273
274 2007-09-12  Marek Safar  <marek.safar@gmail.com>
275
276         * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
277         of Type array and not MonoType, a fix suggested by Hari.
278         
279 2007-09-12  Jonathan Chambers <joncham@gmail.com>
280
281         * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
282         and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
283         
284         Code is contributed under MIT/X11 license.
285
286 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
287
288         * domain.c, object.c, mono-config.c, object-internals.h: Fixed  #82416.
289
290 2007-09-12  Marek Habersack  <mhabersack@novell.com>
291
292         * image.c (do_mono_image_open): if assembly file fails to open and
293         MONO_IOMAP is in effect, try to find the path in a
294         case-insensitive way.
295
296         * appdomain.c (mono_runtime_init): do not install postload hooks -
297         tests show that MS.NET doesn't use anything of that sort to
298         trigger the AppDomain.AssemblyResolve event.
299         (mono_try_assembly_resolve): renamed from try_assembly_resolve and
300         made non-static.
301         (mono_runtime_init): init portability helpers here.
302
303         * assembly.c (mono_assembly_load_with_partial_name): if other   
304         attempts fail, trigger the AppDomain.AssemblyResolve event handler
305         to resolve the assembly.
306
307         * domain-internals.h: added mono_try_assembly_resolve and marked
308         it as internal.
309
310 2007-09-11  Jb Evain  <jbevain@novell.com>
311
312         * object-internals.h (MonoReflectionDynamicMethod): add
313         a `MonoReflectionType *owner` field. The owner is used
314         * reflection.c:
315         (mono_reflection_create_dynamic_method): use the owner of the dynamic
316         method as the class declaring the dynamic method.
317         (reflection_methodbuilder_from_dynamic_method): copy the owner of the
318         dynamic method to the declaring type of the methodbuilder.
319
320 2007-09-11  Mark Probst  <mark.probst@gmail.com>
321
322         * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
323         rules for calling methods via reflection.
324
325 2007-09-11  Zoltan Varga  <vargaz@gmail.com>
326
327         * reflection.c (resolve_object): Add support for MonoGenericClass. 
328         Inflate MonoType's.
329
330 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
331
332         * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
333         provide a managed method that does fast allocations without needing
334         a managed->unmanaged transition. Boehm GC implementation currently
335         enabled for ptrfree objects on sane architectures.
336
337 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
338
339         * marshal.c, marshal.h: exported a couple of useful functions and
340         added mono_mb_get_label () to easily handle backward branches.
341
342 2007-09-10  Zoltan Varga  <vargaz@gmail.com>
343
344         * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
345
346 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
347
348         * loader.c (find_method): Fixed the regression introduced while
349         fixing bug #81466.
350
351 2007-09-09  Zoltan Varga  <vargaz@gmail.com>
352
353         * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
354         well.
355         
356         * class.c loader.c metadata.c object.c class-internals.h object-internals.h
357         icall.c reflection.c: Pass a MonoGenericContext argument to 
358         mono_lookup_dynamic_token ().
359
360         * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
361         #82744.
362         
363 2007-09-09  Robert Jordan  <robertj@gmx.net>
364
365         * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
366         for generic methods.
367
368         * object.c (mono_object_get_virtual_method): Handle generic methods.
369         Fixes bug #78882.
370
371         Code is contributed under MIT/X11 license.
372
373 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
374
375         * image.c: fix locking in mono_image_load_file_for_image ().
376
377 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
378
379         * reflection.c, icall.c, icall-def.h: the methodinfos name field is
380         used only as a cache: added an icall to fill it.
381
382 2007-09-16  Rodrigo Kumpera  <rkumpera@novell.com>
383
384         * reflection.h: exposed mono_reflection_free_type_info
385         * reflection.c (mono_reflection_get_type_internal): type_args is always freed
386         since mono_reflection_bind_generic_parameters makes a copy of it.
387         * reflection.c (free_type_info): subinfos should be freed.
388         * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and 
389         made non static.
390         * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
391         replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
392         this fixes #82695 and #81726.
393    
394
395 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
396
397         * process.h, process.c:  added support for user profile/info in
398           ProcessStartInfo. For now only Windows works.
399
400 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
401
402         * metadata.c: consider the generic arguments when comparing
403         signatures (bug #82614).
404
405 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
406
407         * cil-coff.h, image.c: updated assembly loader to cope with the
408         PE32+ 64 bit file format.
409
410 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
411
412         * assembly.c, class.c, domain.c, loader.c: remove useless
413         inclusion of cil-coff.h.
414
415 2007-08-29  Jonathan Chambers  <joncham@gmail.com>
416
417         * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
418         if interface is marked with CoClassAttribute. 
419    
420         Code is contributed under MIT/X11 license.
421
422 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
423
424         * sgen-gc.c: ensure no object from the to space is copied again or finalized
425         if it's seen twice in major collections.
426
427 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
428
429         * sgen-gc.c: big objects are not copied to the gray area, but they
430         need to be considered for scanning, too, if they are brought alive
431         by an object ready for finalizations or a survived one.
432
433 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
434
435         * sgen-gc.c: properly account the number of disappearing links when
436         they are nullified.
437
438 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
439
440         * sgen-gc.c: share the code to scan the registered roots between the
441         different types of collections.
442
443 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
444
445         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
446
447 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
448
449         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
450         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
451
452 2007-08-28  Mark Probst  <mark.probst@gmail.com>
453
454         * security-manager.c (mono_security_manager_get_methods):
455         LinkDemandSecurityException now has 2 arguments instead of 3.
456
457 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
458
459         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
460         platforms which need it.
461
462 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
463
464         * sgen-gc.c: unregister thread data structures with a pthread_key_t
465         dtor.
466
467 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
468
469         * threads.c: free the thread static data on thread exit.
470
471 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
472
473         * class.c: walk the hierarchy to find the generic definition for
474         a class (fixes runtime part of bug #82498).
475
476 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
477
478         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
479         ...
480
481         * image.c (mono_image_close): Here. Hopefully fixes #82510.
482
483 2007-08-24  Mark Probst  <mark.probst@gmail.com>
484
485         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
486
487 2007-08-24  Robert Jordan  <robertj@gmx.net>
488
489         * appdomain.c: don't perform the ':'->';' substitution on Win32.
490
491 2007-08-24  Jb Evain  <jbevain@novell.com>
492
493         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
494         for byref types.
495
496 2007-08-24  Mark Probst  <mark.probst@gmail.com>
497
498         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
499         #82286.
500
501 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
502
503         * assembly.c: Fix a warning.
504         
505 2007-08-23  Marek Habersack  <mhabersack@novell.com>
506
507         * appdomain.c: parse the <runtime> section looking for the probing
508         element with the 'privatePath' attribute, which sets additional
509         directories in which the runtime should look for assemblies.
510
511 2007-08-23  Robert Jordan  <robertj@gmx.net>
512
513         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
514         Fixes #82499.
515
516 2007-08-23  Martin Baulig  <martin@ximian.com>
517
518         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
519         _mono_debug_init_corlib() and remove it from the header file.
520
521 2007-08-23  Martin Baulig  <martin@ximian.com>
522
523         * mono-debug-debugger.c
524         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
525         don't notify the debugger about it.
526
527         * mono-debug-debugger.h
528         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
529
530 2007-08-23  Robert Jordan  <robertj@gmx.net>
531
532         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
533         Code is contributed under MIT/X11 license.
534
535 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
536
537         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
538
539 2007-08-22  Martin Baulig  <martin@ximian.com>
540
541         * mono-debug.c: Store debugging info on a per-domain basis and
542         free it on domain unload.  Add support for unloading symbol files.
543
544         * mono-debug.h
545         (MonoDebugList): New typedef.
546         (MonoSymbolTable):
547         - add `data_tables and `type_table'.
548         - replace 'symbol_files' and `num_symbol_files' with a
549           `MonoDebugList *'.
550         (mono_debug_data_table): Removed.
551         (mono_debug_list_add): New public function.
552         (mono_debug_list_remove): New public function.
553         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
554         (mono_debug_init_2_memory): Renamed into
555         mono_debug_open_image_from_memory().
556         (mono_debug_close_image): New public function.
557         (mono_debug_domain_create): Likewise.
558         (mono_debug_domain_unload): Likewise.
559         (MONO_DEBUGGER_VERSION): Bump to 60.
560
561         * mono-debug-debugger.h
562         (MonoDebuggerEvent):
563         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
564         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
565         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
566         - rename `THREAD_CREATED' and `THREAD_EXITED' into
567           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
568         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
569           meaning.
570         (mono_debugger_add_symbol_file): Removed.
571         (mono_debugger_add_type): Removed.
572         (mono_debugger_lookup_type): Removed.
573         (mono_debugger_lookup_assembly): Removed.
574
575         * domain.c
576         (mono_domain_create): Call mono_debug_domain_create().
577         (mono_init_internal): Call mono_debug_init_corlib().
578
579         * assembly.c
580         (mono_assembly_close): Call mono_debug_close_image().
581
582 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
583
584         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
585         mmap call.
586
587 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
588
589         * sgen-gc.c: ensure section->pin_queue_end is initialized
590         correctly when non pinning objects in the section have been found.
591
592 2007-08-22  Marek Habersack  <mhabersack@novell.com>
593
594         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
595         containing a list of directories separated by ':'. MSDN docs say
596         the directories should be separated with ';'. Part of a bugfix for
597         bug #81446
598
599 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
600
601         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
602         it should MonoType and not MonoClass.
603
604 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
605
606         * culture-info-table.h : regenerated.
607
608 2007-08-20  William Holmes  <billholmes54@gmail.com>
609
610         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
611          to call ReplaceFile Kernel32 on windows or in io-layer.
612         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
613         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
614          as an internal call.
615
616         Code is contributed under MIT/X11 license.
617
618 2007-08-20  Jb Evain  <jbevain@novell.com>
619
620         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
621         and MONO_EXCEPTION_FIELD_ACCESS.
622
623         * debug-helpers.[c|h]: new mono_field_full_name function.
624
625 2007-08-20  Mark Probst  <mark.probst@gmail.com>
626
627         * class.c: Removed class_security_level() and moved it to
628         security-core-clr.c.
629
630         * security-core-clr.c, security-core-clr.h: class_security_level()
631         is now public and renamed to mono_security_core_clr_class_level().
632         It also looks for security attributes in the classes a class is
633         nested in.
634
635 2007-08-20  Mark Probst  <mark.probst@gmail.com>
636
637         * security-core-clr.c, security-core-clr.h: CoreCLR security
638         utility functions.
639
640         * Makefile.am: Added security-core-clr.[ch].
641
642         * security-manager.c, security-manager.h: Functions and enum for
643         setting and getting the security mode.
644
645         * class.c: CoreCLR security checks.
646
647 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
648
649         * icall-def.h, process.c, process.h: implemented icall to get
650         user/system processor times.
651
652 2007-08-17  Mark Probst  <mark.probst@gmail.com>
653
654         * domain.c, threads.c, class-internals.h, domain-internals.h: New
655         reader-lock-free jit_info_table.
656
657 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
658
659         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
660
661         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
662
663         * object-internals.h (MonoException): Add missing _data member.
664
665 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
666
667         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
668         checking that only methods with matching qname or fqname are picked
669         from implemented interfaces.
670
671 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
672
673         * verify.c (do_newarr):added, do type verification of
674         newarr ops, push the right value on the eval stack.
675         * verify.c (mono_method_verify): use do_newarr
676
677
678 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
679
680         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
681         factored the common code into get_boxable_mono_type, which
682         is now using mono_type_get_full, this fixed byref related tests.
683
684 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
685
686         * class.c: added mono_type_get_full, this function has the same
687         behavior of mono_class_get_full but the returned MonoType has
688         all metadata of the associated token in case of a typespec token.
689         * class.c: added mono_type_retrieve_from_typespec, used by 
690         mono_type_get_full to retrieve the token type.
691         * class.c (mono_class_create_from_typespec): changed to use
692         mono_type_retrieve_from_typespec.
693         * class.c (mono_ldtoken): changed to use mono_type_get_full
694         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
695         * class-internals.h: exported mono_type_get_full for internal use.
696
697 2007-08-16  Jb Evain  <jbevain@novell.com>
698
699         * domain.c (supported_runtimes): add entry for
700         the 'moonlight' runtime version.
701
702 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
703
704         * verify.c (mono_method_verify): small typo sliped in.  
705
706 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
707
708         * verify.c (do_unbox_value): added, do type verification of
709         unboxing ops
710         * verify.c (mono_method_verify): use do_unbox_value
711
712
713 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
714
715         * verify.c (dump_stack_value): fixed typo, was printing string
716         instead of object on stack.
717         * verify.c (do_box_value): moved the byref check up as it leads
718         to invalid code and should be done earlier.
719         * verify.c: improved error messages for and ldobj
720
721 2007-08-15  William Holmes  <billholmes54@gmail.com>
722
723         * marshal.c (emit_marshal_custom): Omit the call to 
724           marshal_native_to_managed when calling native to managed 
725           and the argument is specified as an out argument.
726
727         Code is contributed under MIT/X11 license.
728
729 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
730
731         * verify.c: fixed the type checks for generics, function pointers and vectors.
732         Added type verification for ldobj and ldtoken. The verifier
733         would segfault if header or signature of a method contained references
734         to non-existant types.
735
736 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
737
738         * marshal.c (cominterop_get_ccw): Patch from
739         Bill Holmes to no walk up interface hierarchy. 
740         All parent methods should be present in the interface for COM.
741    
742         Code is contributed under MIT/X11 license.
743
744 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
745
746         * marshal.c (emit_marshal_com_interface): Patch from
747         Bill Holmes to handle COM Interfaces as return values
748         for native->managed calls.
749    
750         Code is contributed under MIT/X11 license.
751
752 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
753
754         * marshal.c (cominterop_get_idispatch_for_object): Implement
755         for runtime callable wrappers.
756    
757         Code is contributed under MIT/X11 license.
758
759 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
760
761         * pedump.c (main): changed from mono_init to mono_init_from_assembly
762         so 2.0 types are accessible
763
764
765 2007-08-13  Miguel de Icaza  <miguel@novell.com>
766
767         * domain.c (mono_init_internal): Call mono_assembly_load_friends
768         once we load mscorlib.   Due to the order in which we initialize,
769         the mono_assembly_load_full routine that loads mscorlib did not
770         load friends.   We now load it once we load the
771         mono_defaults.internals_visible_class class. 
772
773         * assembly.c: Expose the mono_load_friend_assemblies method.
774
775 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
776
777         * verify.c: improved the handling of boxing, better
778         type checking for unary ops and conversion. Fix bug
779         regarding managed pointer compatibility checking
780
781 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
782
783         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
784
785         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
786
787 2007-08-09  Raja R Harinath  <rharinath@novell.com>
788
789         * reflection.c (dup_type): Remove.
790         * class.c (dup_type): Remove.
791         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
792         instead of the dodgy 'dup_type'.
793         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
794         handle the case where 'dup_type' needed the second argument.
795
796 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
797
798         * domain.c: Fix a warning.
799
800 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
801
802         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
803         checking that methods with the same fqname are not overridden
804         with a method from an ancestor.
805
806 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
807
808         * threads.c (free_thread_static_data_helper): Avoid a crash if
809         thread->static_data is not yet set.
810
811 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
812
813         * marshal.c: Use correct image when emitting
814         native wrapper for COM calls.
815    
816         Code is contributed under MIT/X11 license.
817
818 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
819
820         * icall-def.h, security.c, security.h :
821           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
822
823 2007-08-07  Martin Baulig  <martin@ximian.com>
824
825         * mono-debug-debugger.h
826         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
827
828         * domain.c (mono_domain_free): Call
829         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
830
831 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
832
833         * verify.c (check_underflow, check_overflow): error message now returns IL offset
834         * verify.c (in_same_block): code should test if either offset is inside the clauses
835         * verify.c (mono_method_verify): push the exception into the eval stack of exception
836         and filter blocks
837
838 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
839
840         * image.c (mono_image_close): Fix a leak.
841
842         * object.c (mono_runtime_invoke_array): Avoid using alloca.
843
844         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
845
846 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
847
848         * domain.c, threads.c, threads-types.h: fix memory retention issue
849         with thread static variables not being cleared on domain unload.
850         Reuse thread static slots after domain unload.
851
852 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
853
854         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
855         nullable type.
856
857         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
858         now done in mono_runtime_invoke_array.
859
860         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
861         receiver is a nullable type.
862
863         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
864         generic parameter.
865
866 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
867
868         * marshal.c: Implement COM Objects as return type for 
869         managed->unmanaged calls. Added Release calls for COM Object
870         out/return values in managed->unmanaged calls.
871
872         Code is contributed under MIT/X11 license.
873
874 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
875
876         * threads.h, threads-type.h: move the hazard pointer declarations
877         to the private header.
878
879 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
880
881         * file-io.c, appdomain.c: memory leak fixes.
882
883 2007-08-02  Dick Porter  <dick@ximian.com>
884
885         * socket-io.c
886         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
887         SO_REUSEADDR setting into io-layer/sockets.c.
888
889 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
890
891         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
892         from Object when called on a generic parameter. Fixes #82211.
893
894 2007-08-01  Dick Porter  <dick@ximian.com>
895
896         * file-io.c (convert_share): Test FileShare values bit-by-bit.
897         Fixes bug 79250 yet again.
898
899 2007-07-30  Martin Baulig  <martin@ximian.com>
900
901         Merged the `debugger-dublin' branch.
902
903         * mono-debug.h
904         (MonoDebugDataTable): New typedef.
905         (MonoDebugMethodAddressList): New typedef.
906         (MonoDebugWrapperData): Removed.
907         (MonoDebugSymbolTable): Removed `current_data_table',
908         `current_data_table_size', `current_data_table_offset'.
909         (MonoDebugDataItemType): Moved into mono-debug.c.
910         (MonoDebugMethodJitInfo): Remove `address'.
911         (mono_debug_data_table): New global variable.
912         (mono_debug_lookup_method_addresses): New public function.
913         (mono_debug_find_method): Take a `MonoMethod *', not a
914         `MonoDebugMethodInfo *'.
915
916         * mono-debug.c: Drop support for the old symbol tables.
917
918 2007-06-28  Martin Baulig  <martin@ximian.com>
919
920         * mono-debug.c (mono_debug_debugger_version): New public variable.
921
922 2007-07-31  William Holmes  <billholmes54@gmail.com>
923
924         * metadata.c Changed mono_type_create_from_typespec to not insert
925           the type into the hash map until after
926           do_mono_metadata_parse_type has completed.
927         Fixes Bug #82194
928         Code is contributed under MIT/X11 license.
929
930 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
931
932         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
933         generic parameter. Fixes #82211.
934
935 2007-07-27  Jb Evain  <jbevain@novell.com>
936
937         * pedump.c (dump_metadata, dump_metadata_header): dump
938         versions contained in the metadata header.
939
940 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
941
942         * threads.c: register small_id_table with the GC.
943
944 2007-07-27  Mark Probst  <mark.probst@gmail.com>
945
946         * threads.c, threads.h, class-internals.h, object-internals.h:
947         Hazard pointers, to be used by lock-free parallel algorithms.
948
949 2007-07-26  Dick Porter  <dick@ximian.com>
950
951         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
952         routine on non-windows platforms, as I've not managed to think of
953         a non-kludgy way of doing this.  Finishes off bug 78739.
954
955 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
956
957         * object.c: properly setup interface_bitmap in proxy vtables.
958
959 2007-07-25  Marek Habersack  <mhabersack@novell.com>
960
961         * appdomain.c (get_shadow_assembly_location): do not use TickCount
962         to create unique shadow copy target directories, use the domain's
963         serial number instead. Each domain gets a unique target directory
964         that way.
965
966         * domain.c (mono_domain_create): added code to increment domain
967         shadow copy serial number and cache the value in the current
968         domain structure.
969
970         * domain-internals.h (struct _MonoDomain): added a new field -
971         shadow_serial to hold the serial number used in generation of
972         shadow-copy directories. This is to make sure that the directory
973         name is unique for each and every domain created. We avoid a race
974         condition with overriding assemblies already in use by other app
975         domains.
976
977 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
978
979         * class.c (mono_bounded_array_class_get): fixed memory leak when 
980         binding generic parameters.
981
982 2007-07-24  Raja R Harinath  <rharinath@novell.com>
983
984         * metadata.c (do_mono_metadata_parse_generic_class): Use
985         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
986         error.
987
988 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
989
990         * loader.c, class-internals.h, reflection.c: removed the per-method
991         generics hashtable: we use the global one through the call of
992         mono_class_inflate_generic_method ().
993
994 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
995
996         * class.c, metadata.c, class-internals.h: introduce yet another
997         generics global cache for inflated methods (fixes 98% of the perf
998         issue in bug #81806).
999
1000 2007-07-23  Raja R Harinath  <rharinath@novell.com>
1001
1002         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
1003         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
1004         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
1005         return a MonoGenericInst containing (a copy) of those types.
1006         (mono_metadata_inflate_generic_inst): Update to changes.
1007         (mono_metadata_parse_generic_inst): Likewise.
1008         (mono_get_shared_generic_inst): Likewise.
1009         * reflection.c (mono_class_bind_generic_parameters): Likewise.
1010         (mono_reflection_bind_generic_method_parameters): Likewise.
1011         * metadata-internals.h: Likewise.
1012         * icall.c (free_generic_context): Kill.
1013         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
1014
1015         * reflection.c (reflection_methodbuilder_to_mono_method): Use
1016         mono_metadata_type_dup.
1017         * marshal.c (mono_mb_create_method): Likewise.
1018
1019         * metadata.c (mono_metadata_type_dup): Rename from
1020         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
1021         MonoImage.  Handle a few more cases, esp. when no mempool is given.
1022         * marshal.c, metadata-internals.h: Update to changes.
1023
1024 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
1025
1026         * class.c: fixed a small leak for array classes and removed warning.
1027
1028 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
1029
1030         * loader.c (mono_method_get_param_token): Make this work on generic methods.
1031         Return 0x8000000 for return parameters. Fixes #82161.
1032
1033 2007-07-21  Marek Habersack  <grendello@gmail.com>
1034
1035         * appdomain.c (get_shadow_assembly_location): append the current
1036         ticks value to the path. Avoids overwriting the same assemblies by
1037         several threads at the same time.
1038
1039 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
1040         and Raja R Harinath  <rharinath@novell.com>
1041
1042         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
1043         Simplify slightly.
1044         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
1045         property for testing if a method is a generic method definition.
1046
1047 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
1048
1049         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
1050
1051 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1052
1053         * verify.c: used function from private branch, reverted to the one in class.h 
1054
1055 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1056
1057         * verify.c: a typo slipped in and the code wont compile
1058
1059 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1060
1061         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
1062         disabled box instruction as it is doing the wrong thing
1063         improved stack dump messages, now it is easier to debug type related issues
1064
1065
1066 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
1067
1068         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
1069
1070 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1071
1072         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
1073         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
1074         grouped with class and valuetype. This change will simply 
1075         the code as it should be handled just like unmanaged pointers.
1076
1077 2007-07-19  Mark Probst  <mark.probst@gmail.com>
1078
1079         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
1080
1081 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1082
1083         * verify.c: several stack merge issues fixed, reference comparisons now
1084         check the type size. strict type check now works correctly.
1085         added more uses of IS_MANAGED_POINTER macro.
1086         fixed issues pointed by running the test suite against .net.
1087         
1088
1089 2007-07-19  Mark Probst  <mark.probst@gmail.com>
1090
1091         * class.c, loader.c, class-internals.h: Removed the
1092         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
1093         defines.
1094
1095         * icall.c: Better error checking in some internal reflection
1096         methods.
1097
1098 2007-07-18  William Holmes  <billholmes54@gmail.com>
1099
1100         * filewatcher.c : removed unused variable 'filename' in 
1101           ves_icall_System_IO_FSW_SupportsFSW
1102
1103 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
1104
1105         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
1106         obsolete, removed.
1107
1108 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
1109
1110         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
1111         
1112         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
1113
1114 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
1115
1116         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
1117         Implement generics support.
1118         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
1119
1120         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
1121         type_args and method_args arguments.
1122         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
1123         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
1124         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
1125
1126 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
1127
1128         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
1129           It adds a rootimage parameter to mono_reflection_get_type_internal,
1130           adds new function mono_reflection_get_type_with_rootimage and use
1131           the rootimage to resolve the types instead of the current image
1132
1133 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1134
1135         * culture-info-table.h: Forgot to update after r78304.
1136
1137 2007-07-13  Raja R Harinath  <rharinath@novell.com>
1138
1139         * class.c (mono_class_is_open_constructed_type)
1140         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
1141
1142 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
1143
1144         * class.c (mono_bounded_array_class_get):  method fails if used with
1145         an incomplete TypeBuilder enum (no basetype field), fixed it by 
1146         avoiding calculating the size for such array as it cannot be instantiated.
1147         Fix bug #82015
1148
1149 2007-07-12  Raja R Harinath  <rharinath@novell.com>
1150
1151         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
1152         field.
1153         * metadata.c, reflection.c: Update to changes.
1154
1155 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
1156
1157         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
1158         mono_class_is_valid_enum, they are used to valide a enum when loading.
1159         * reflection.c: used new functions to throw TypeLoadException when and
1160         invalid enum is build with TypeBuilder. Fixes #82018
1161   
1162 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
1163
1164         * object.c: forgot commit of mono_class_setup_methods () to access
1165         iface->methods.
1166         * object-internals.h: added a few more handy fields to
1167         MonoIMTCheckItem.
1168
1169 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
1170
1171         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
1172         iface->methods.
1173
1174 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
1175
1176         * class-internals.h, object-internals.h, object.c: IMT-based
1177         interface invocation core from Massimiliano Mantione
1178         (massi@ximian.com) with a reworked arch-specific interface,
1179         bsearch implementation and a few bugfixes and memory savings by me.
1180
1181 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
1182
1183         * class.c (mono_class_create_from_typedef): mono would segfault if 
1184         an enum did not have a __value field. It now throws a TypeLoadException
1185         for such cases. Fix bug #82022
1186
1187 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
1188
1189         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
1190
1191 2007-07-09  Mark Probst  <mark.probst@gmail.com>
1192
1193         * class.c (mono_class_init): If a class is already inited but has
1194         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
1195
1196 2007-07-09  Mark Probst  <mark.probst@gmail.com>
1197
1198         * class.c: Properly handle the case of an unimplemented interface
1199         method.  Fixes: 81673.
1200
1201 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
1202
1203         * class-internals.h, object.c: cleanup patch from massi: use
1204         MonoVTable->interface_bitmap since the vtable interfaces offset array
1205         is going away.
1206
1207 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
1208
1209         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
1210         GetMDStreamVersion icall instead.
1211
1212 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
1213
1214         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
1215         not use mono_dl_build_path() with a full library name: makes
1216         fallbacks to libgaim and libfam work.
1217
1218 2007-07-06  William Holmes  <billholmes54@gmail.com>
1219
1220         * assembly.c: Added a continue statement in probe_for_partial_name when
1221          parse_assembly_directory_name fails.  Fixes : 82002
1222
1223 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
1224
1225         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
1226         and added a verification  for TYPEDBYREF.
1227         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
1228         make native int interchangeable with int32 and some small cleanup and formating.
1229         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
1230         handle byref of byref.
1231         * verify.c (push_local): handle byref of byref.
1232         * verify.c (do_binop): invalid mix of values is unverifiable
1233         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
1234         added visibility checks
1235         * verify.c (field related method): added visibility checks
1236         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
1237
1238 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
1239
1240         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
1241         string.
1242
1243 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
1244
1245         * profiler.c (mono_profiler_load): Fix an off-by-one error.
1246
1247         * marshal.c (emit_marshal_string): When returning a string from managed code,
1248         allways make a copy even for unicode strings. Fixes #81990.
1249
1250 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
1251
1252         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
1253         of byref generic inst types (bug #81997).
1254
1255 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
1256
1257         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
1258         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
1259
1260 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
1261
1262         * marshal.c (emit_marshal_string): Add support for unicode strings in
1263         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
1264
1265 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
1266
1267         * verify.c: field load/store are now verified, missing only access checks now
1268
1269 2007-06-28  Martin Baulig  <martin@ximian.com>
1270
1271         * mono-debug.c (mono_debug_debugger_version): New public variable.
1272
1273 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
1274
1275         * locales.c: When constructing DateTimeFormat or NumberFormat for
1276         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
1277         MonoCultureInfo contructed from the current locale is always
1278         read-only and has UseUserOverride set to true. All MonoCultureInfo
1279         instances returned for GetCultures have both IsReadOnly and
1280         UseUserOverride set to true. Fixes part of bug #81930.
1281
1282 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
1283
1284        * icall-def.h: Update System.__ComObject icalls
1285        * marshal.c: Avoid managed transition (and object creation)
1286        when looking up COM interface in RCW.
1287        * marshal.h: Ditto.
1288        
1289        Code is contributed under MIT/X11 license.
1290
1291 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
1292
1293         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
1294         to avoid crashes during assembly unloading.
1295
1296 2007-06-22  Raja R Harinath  <rharinath@novell.com>
1297
1298         Fix MethodInfo.IsGenericMethodDefinition
1299         * reflection.c (mono_reflection_bind_generic_method_parameters):
1300         Rearrange code to ensure we always uses a generic method definition.
1301         * class.c (mono_class_inflate_generic_method_full): Set
1302         'generic_container' field only for generic method definitions.
1303         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
1304         Use presense of 'generic_container' field as indication of being a
1305         generic method definition.
1306
1307 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
1308
1309         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1310
1311         * object-internals.h: Reflect changes in the layout of the managed Delegate
1312         class.
1313         
1314         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
1315         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
1316         runtime memory used by the dynamic method. Fixes #77146.
1317
1318 2007-06-21  Dick Porter  <dick@ximian.com>
1319
1320         * file-io.h: 
1321         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
1322         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
1323         81767.
1324
1325 2007-06-21  Raja R Harinath  <rharinath@novell.com>
1326
1327         * reflection.c (method_encode_methodspec): Add a tripwire.
1328         * class.c (inflate_generic_type): The fully open generic type is
1329         not the same as the generic type definition.
1330
1331 2007-06-21  Martin Baulig  <martin@ximian.com>
1332
1333         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
1334
1335         * mono-debug-debugger.h
1336         (MonoDebuggerBreakpointInfo): Removed.
1337         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
1338         (mono_debugger_remove_breakpoint): Likewise.
1339         (mono_debugger_breakpoint_callback): Likewise.
1340         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
1341
1342 2007-06-21  Raja R Harinath  <rharinath@novell.com>
1343
1344         * metadata.c (mono_metadata_lookup_generic_class): The fully open
1345         generic type is not the same as the generic type definition.
1346         * class.c (mono_generic_class_get_class): Likewise.
1347
1348 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
1349
1350         * icall.c: The second argument to 
1351         System.Reflection.MethodBase.GetMethodFromHandleInternalType
1352         is a MonoType not a MonoClass.
1353
1354 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
1355
1356         * verify.c: support for function pointers in the verifier
1357
1358 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
1359
1360         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
1361
1362 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
1363
1364         * assembly.c: removed Mono.Data.SqliteClient from the list of
1365         forward-compatible assemblies as it breaks the ABI (bug #81899).
1366
1367 2007-06-19  Raja R Harinath  <rharinath@novell.com>
1368
1369         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
1370         lookup/update with the loader lock.
1371         * reflection.c (mono_class_bind_generic_parameters): No need to
1372         protect mono_metadata_lookup_* with the loader lock.
1373         * class.c (inflate_generic_type): Likewise.
1374         
1375         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
1376         on a generic instantiated type.
1377
1378 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
1379
1380         *verify.c: produce meanfull error messages on verification error
1381         *verify.c: fixed some cases of verification errors reported as validation errors
1382         *pedump.c: fixed the error name array, now it shows validation errors properly
1383         *verify.h: fixed the contant that should be used for verification errors
1384
1385 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
1386
1387         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
1388         for bug #77596, 81858 and 80743 (generics data structures on domain
1389         unload).
1390
1391 2007-06-15  Raja R Harinath  <rharinath@novell.com>
1392
1393         Avoid allocating 'MonoGenericContext' on the heap.
1394         * class-internals (_MonoMethodInflated::context): Make field
1395         inline, not a pointer.
1396         * loader.c (method_from_methodspec): Allocate 'new_context' on the
1397         stack.  Use the context embedded within the inflated method as the
1398         hash key, rather than 'new_context'.
1399         * class.c (inflate_generic_context): Simplify.  Return a struct
1400         rather than allocating on the heap.
1401         (mono_class_inflate_generic_method_full): Update to changes.  Now,
1402         doesn't salt away a copy of the context -- simplifying the
1403         lifetime rules of a 'MonoGenericContext *'.
1404         (mono_method_get_context): Return pointer to embedded context.
1405         (setup_generic_array_ifaces): Allocate temporary context on stack.
1406         * reflection.c (inflate_mono_method): Likewise.
1407         (mono_reflection_bind_generic_method_parameters): Likewise.
1408         Use the context embedded within the inflated method as the hash key.
1409
1410         Avoid a source of allocation of 'MonoGenericContext'.
1411         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
1412         and 'cached_context' fields into embedded 'MonoGenericContext' field.
1413         * class.c: Update to changes.
1414         (mono_generic_class_get_context): Simplify drastically.  Now just
1415         returns a pointer to the field.
1416         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
1417         argument as a const pointer.
1418         (mono_metadata_generic_context_equal): Likewise.
1419         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
1420         Update to changes.
1421
1422 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
1423
1424         * verify.c improved the handling of brtrue/brfalse, factored out common code
1425
1426 2007-06-14  Raja R Harinath  <rharinath@novell.com>
1427
1428         Kill MonoGenericMethod.
1429         * class-internals.h (MonoGenericContext::method_inst): Rename from
1430         'gmethod' and convert to a MonoGenericInst.
1431         (MonoGenericMethod): Remove.
1432         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
1433         * loader.c (method_from_methodspec): Update to changes.  Use a
1434         MonoGenericContext as the key to the hashtable.
1435         * metadata.c (mono_metadata_generic_context_equal): Rename from 
1436         'mono_metadata_generic_method_equal' and take MonoGenericContext.
1437         (mono_metadata_generic_context_hash): Likewise from
1438         'mono_metadata_generic_method_hash'.  Change hash function.
1439         (mono_metadata_load_generic_params): Update to changes.
1440         (mono_get_shared_generic_method): Remove.
1441         * metadata-internals.h (mono_get_shared_generic_method): Remove.
1442         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
1443         (inflate_generic_context): Likewise.
1444         (mono_class_inflate_generic_method_full): Likewise.
1445         (setup_generic_array_ifaces): Likewise.
1446         (mono_class_create_from_typespec): Likewise.
1447         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
1448         (method_encode_methodspec): Update callsite.
1449         (reflection_methodbuilder_to_mono_method): Update to changes.
1450         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
1451         MonoGenericContext as the key to the hashtable.
1452         (inflate_mono_method): Update to changes.
1453
1454         * class-internals.h (MonoGenericMethod::container): Remove.
1455         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
1456
1457 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
1458
1459         * profiler-private.h, profiler.c, profiler.h: added API to profile
1460         exception events.
1461
1462 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
1463
1464         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
1465
1466 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
1467
1468         * verify.c: method invocation is now validated, now we verify parameter types on stack.
1469         Fixed overflow and underflow not aborting the verification process.
1470
1471 2007-06-13  Mark Probst  <mark.probst@gmail.com>
1472
1473         * class-internals.h (MonoStats): Added stats entries for dynamic
1474         code allocations.
1475
1476 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
1477
1478         * loader.c (mono_free_method): Free header->locals and header->clauses.
1479
1480         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
1481         dynamic case.
1482
1483         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
1484
1485         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
1486
1487 2007-06-12  Raja R Harinath  <rharinath@novell.com>
1488
1489         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
1490         the tables.
1491
1492 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1493
1494         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
1495
1496 2007-06-11  Raja R Harinath  <harinath@gmail.com>
1497
1498         MonoGenericMethod on a diet
1499         * class-internals.h (_MonoMethodInflated::reflection_info): Move
1500         here ...
1501         (_MonoGenericMethod::reflection_info): ... from here.
1502         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
1503         Update to changes.
1504         * reflection.c (inflate_mono_method): Likewise.
1505         (mono_reflection_bind_generic_method_parameters): Likewise.
1506
1507 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1508
1509         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
1510         *verify.c: factored long ldarg forms to share code with short forms
1511
1512 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1513
1514         *verify.c: fixed code formating factored some duplicate code
1515         into a new function
1516
1517         *verify.h: fixed binary incompatibility introduced earlier
1518
1519         *pedump.c: fixed formating
1520
1521 2007-06-11  Raja R Harinath  <harinath@gmail.com>
1522
1523         Fix assertion when disassembling Mono.C5.dll
1524         * loader.c (method_from_methodspec): Avoid inflating a method
1525         twice with the same context.  If the methodref is inflated, use
1526         the declaring method instead.
1527
1528         * class.c (mono_class_from_generic_parameter): Fix case similar to
1529         bug #81830 handled below, but for method containers.
1530
1531 2007-06-10  Raja R Harinath  <harinath@gmail.com>
1532
1533         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
1534         get_shared_generic_class.  Directly inflate the instance.
1535         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
1536         (inflate_generic_class): Delete.
1537         (get_shared_generic_class): Delete.  Move setting of
1538         'cached_class' and 'cached_context' ...
1539         * metadata.c (mono_metadata_lookup_generic_class): ... here.
1540
1541         * metadata.c (mono_metadata_lookup_generic_class): Change
1542         signature to take the components of a MonoGenericClass rather than
1543         an allocated MonoGenericClass.  Change semantics to be intern-like.
1544         * reflection.c (mono_class_bind_generic_parameters): Update to
1545         changes.  Make locking region tighter.
1546         * class.c (inflate_generic_class): Update to changes.
1547         (get_shared_generic_class): Likewise.
1548         * metadata-internals.h: Likewise.
1549
1550         * reflection.c (mono_class_bind_generic_parameters): Take and
1551         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
1552         (mono_reflection_bind_generic_parameters): Use
1553         'mono_class_bind_generic_parameters' rather than duplicate the code.
1554         * class.c (mono_bounded_array_class_get): Update to changes.
1555         * object-internals.h: Likewise.
1556
1557         * reflection.c (mono_class_bind_generic_parameters): Only support
1558         parameterizing generic type definitions.  Remove support for other
1559         open types.
1560
1561 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
1562
1563         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
1564
1565         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
1566         in the dynamic case.
1567
1568 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
1569
1570         * threads.c: When cleaning up thread, reset the Background bit.
1571         Fixes bug #81720.
1572
1573 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
1574
1575        * metadata.c: Move variable declarations to top of scope.
1576        * verify.c: Move variable declarations to top of scope.
1577
1578        Code is contributed under MIT/X11 license.
1579
1580 2007-06-08  Raja R Harinath  <rharinath@novell.com>
1581
1582         * reflection.c (mono_class_bind_generic_parameters): Replace
1583         open-coded loop with mono_metadata_inflate_generic_inst.
1584
1585         * class.c (get_shared_generic_class): Don't call
1586         mono_get_shared_generic_inst.  Use the container's own
1587         'class_inst'.
1588
1589         * metadata.c (mono_metadata_load_generic_params): Move
1590         initialization of 'context' field here from ...
1591         * class.c (mono_class_create_from_typedef): ... here, and ...
1592         * loader.c (mono_get_method_from_token): ... here.
1593
1594         * class.c (get_shared_generic_class): Rename from
1595         mono_get_shared_generic_class and make static.
1596         (mono_get_shared_generic_inst): Move to metadata.c.
1597         * loader.c (mono_get_shared_generic_method): Likewise.
1598         * class-internals.h, metadata-internals.h: Update to changes.
1599
1600         Fix #81830
1601         * class.c (mono_class_from_generic_parameter): Don't assume a
1602         generic container owner exists.  Generic containers from monodis
1603         don't have any.
1604
1605 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
1606
1607         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
1608         * verify.h: new typedefs to returns the non-verifiable status
1609         * verify.c: initial implementation of generics, stack merging and object compatibility check
1610
1611 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1612
1613         * class.c, image.c, class-internals.h (MonoImage): class_cache is
1614         a MonoInternalHashTable again (fixed bug in internal hash table
1615         code).
1616
1617 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1618
1619         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
1620         MonoInternalHashTable again (fixed bug in internal hash table
1621         code).
1622
1623 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1624
1625         * class.c, image.c, class-internals.h, domain.c,
1626         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
1627         changes.  Have to figure out what makes them break the SWF
1628         regression.
1629
1630 2007-06-04  Mark Probst  <mark.probst@gmail.com>
1631
1632         * class.c, image.c, class-internals.h (MonoImage): class_cache is
1633         a MonoInternalHashTable now.
1634
1635 2007-06-04  Mark Probst  <mark.probst@gmail.com>
1636
1637         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
1638         MonoInternalHashTable now.
1639
1640 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
1641
1642         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
1643         invoke_impl code.
1644
1645         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
1646
1647         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
1648         dependent trampoline.
1649
1650         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1651
1652         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
1653
1654 2007-05-29  Robert Jordan  <robertj@gmx.net>
1655
1656         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
1657
1658 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
1659
1660         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
1661
1662 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
1663
1664        * marshal.c: Fix interface lookup loops for
1665        cominterop_get_com_slot_for_method and 
1666        cominterop_get_method_interface. Only need to lookup
1667        if type is a class, else use interface type method is on.
1668
1669        Code is contributed under MIT/X11 license.
1670
1671 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
1672
1673         * reflection.c: HasSecurity can be present even if no specially 
1674         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
1675         SecurityAttribute). Fix CAS regression tests on buildbot.
1676
1677 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
1678
1679        * appdomain.c: Add configure checks for header files.
1680        * image.c: Add configure checks for header files.
1681        * file-io.c: Add configure checks for header files.
1682        * debug-mono-symfile.c: Add configure checks for header files.
1683        * threadpool.c: Add configure checks for header files.
1684        * console-io.c: Add configure checks for header files.
1685        * profiler.c: Add configure checks for header files.
1686        * rawbuffer.c: Add configure checks for header files.
1687        * icall.c: Add configure checks for header files.
1688        * rand.c: Add configure checks for header files.
1689        * socket-io.c: Add configure checks for header files.
1690
1691        Code is contributed under MIT/X11 license.
1692
1693 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
1694
1695         * reflection.c (mono_custom_attrs_from_builders): Remove the 
1696         assertion as it breaks the build.
1697         
1698         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
1699
1700         * reflection.c (lookup_custom_attr): Make a copy here too.
1701
1702         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
1703         dynamic images.
1704
1705         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
1706         images.
1707
1708         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
1709         info.
1710
1711 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
1712
1713         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
1714         (load_cattr_value): Ditto.
1715
1716 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
1717
1718         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
1719
1720 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
1721
1722         * threads.c: In "start_wrapper", set apartment_state to MTA if
1723         apartment_state is Unknown and we're running on 2.0 profile or
1724         higher.
1725         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
1726         to main method, then set apartment_state to Unknown on 1.0 profile,
1727         and MTA on 2.0 profile.
1728
1729 2007-05-16  Jb Evain  <jb@nurv.fr>
1730
1731         * class-internals.h (MonoDefaults): Add an attribute_class and
1732           customattribute_data_class.
1733         * domain.c (mono_init_internal): Populate them.
1734         * reflection.c: Use them to remove duplicates. Make a vew
1735         MonoClass variables `static'.
1736
1737 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
1738
1739         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
1740         step in implementing IMT, so that all isinst checks now can go
1741         through the bitmap.
1742         This was needed because vtables for TransparentProxy need to look
1743         like the vtable of the "target" class, so they need to point to
1744         its interface bitmap directly.
1745
1746         * object.c: inside "mono_class_create_runtime_vtable" and
1747         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
1748
1749 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
1750
1751         * object-internals.h
1752           culture-info.h : added territory field in MonoCulture and
1753           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
1754         * locales.c : fill territory field above too.
1755         * culture-info-table.h : regenerated.
1756
1757 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
1758
1759         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
1760         Fixes #81599.
1761
1762 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
1763
1764         * object.c: Always initialize apartment, even if 
1765         there is no custom attributes on entry point.
1766         
1767         Code is contributed under MIT/X11 license.
1768
1769 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
1770
1771         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
1772         * metadata.c: If no encoding is set, check for unicode
1773         on class.
1774         
1775         Code is contributed under MIT/X11 license.
1776
1777 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
1778
1779         * threads.c: Handle if mono_thread_current returns NULL 
1780         
1781         Code is contributed under MIT/X11 license.
1782
1783 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
1784
1785         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
1786         in start_wrapper. Added mono_thread_init_apartment_state and
1787         mono_thread_cleanup_apartment_state.
1788         * object.c: Initialize thread apartment state on main thread
1789         by checking for STAThreadAttribute on entry point.
1790         * object-internals.h: Add apartment_state field to MonoThread.
1791         * threads-types.h: Add unmanaged definition of 
1792         System.Threading.ApartmentState, MonoThreadApartmentState.
1793         
1794         Code is contributed under MIT/X11 license.
1795         
1796 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
1797
1798         * class.c: Fix windows build.
1799         * class-internals.h: Fix windows build.
1800         
1801         Code is contributed under MIT/X11 license.
1802
1803 2007-05-08  Robert Jordan  <robertj@gmx.net>
1804
1805         * process.c (CreateProcess_internal):
1806         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
1807         .CreateNoWindow was specified. Fixes #81496.
1808
1809 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
1810
1811         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
1812         step in implementing IMT, replaced it with two compact arrays
1813         (interfaces_packed and interface_offsets_packed) and a bitmap that
1814         is used for isinst checks (interface_bitmap).
1815
1816         * class.c: (compare_interface_ids): compare function to pass to
1817         bsearch when looking for an interface with a given id.
1818         (mono_class_interface_offset): reimplemented using bsearch on
1819         interfaces_packed, getting the offset from interface_offsets_packed.
1820         (print_implemented_interfaces): utility debugging function.
1821         (setup_interface_offsets): reworked to initialize interfaces_packed,
1822         interface_offsets_packed and interface_bitmap.
1823
1824         * object.c: replaced all accesses to "MonoClass.interface_offsets"
1825         with uses of interfaces_packed and interface_offsets_packed.
1826
1827 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
1828
1829         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
1830         mono_class_interface_offset prototype to wrap all accesses to
1831         "MonoClass.interface_offsets".
1832
1833         * class.c: Implemented mono_class_interface_offset, and wrapped all
1834         accesses to "MonoClass.interface_offsets".
1835
1836         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
1837         "MonoClass.interface_offsets".
1838
1839 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
1840
1841         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
1842         GetMethodFromHandle overloads (bug #78637).
1843
1844 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
1845
1846         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
1847         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
1848
1849 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
1850
1851         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
1852         #81498.
1853
1854         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
1855         gracefully.
1856         (mono_custom_attrs_from_index): Ditto.
1857
1858         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
1859         Fixes #81501.
1860
1861 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
1862
1863         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
1864         is now allocated from a mempool.
1865
1866 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
1867
1868         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
1869         caller holds threads_lock, leading to deadlocks. Fixes #81476.
1870
1871 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
1872
1873         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
1874         mono_loader_clear_error () too late. Fixes #81463.
1875
1876 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
1877
1878         * culture-info-table.h : regenerated.
1879
1880 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
1881
1882         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
1883         is missing.
1884
1885 2007-04-25  Dick Porter  <dick@ximian.com>
1886
1887         * Makefile.am: Put the mingw enforced-optimisation back into the
1888         PLATFORM_WIN32 section.
1889
1890 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
1891
1892         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
1893         patch.
1894
1895         * image.c (mono_image_load_module): New API function to load a module reference.
1896
1897         * image.c (load_modules): Load modules lazily. Fixes #80812.
1898
1899         * class.c (mono_class_from_typeref): Use mono_image_load_module.
1900         
1901         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
1902
1903         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
1904         to mono_image_load_module_dynamic.
1905
1906 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
1907
1908         * marshal.c: Fix calling convention for CCW on non-windows
1909         platforms. STDCALL on windows, CDECL everywhere else to work 
1910         with XPCOM and MainWin COM.
1911         
1912         Code is contributed under MIT/X11 license.
1913
1914 2007-04-23  Martin Baulig  <martin@ximian.com>
1915
1916         Fix #80969.
1917
1918         * loader.c
1919         (method_from_memberref): Added `gboolean *used_context' argument.
1920         (mono_get_method_from_token): Likewise.
1921         (mono_get_method_full): Don't insert the method in the cache when
1922         `used_context' is true.
1923
1924 2007-04-23  Raja R Harinath  <rharinath@novell.com>
1925
1926         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
1927
1928         * reflection.c (mono_reflection_bind_generic_parameters): Don't
1929         create new MonoTypes for returned types.
1930         * class.c (mono_generic_class_get_class): Export mono-internal.
1931         * class-internals.h: Update to changes.
1932
1933 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
1934
1935         * threadpool.c, threadpool.h, icall-def.h: patch from
1936         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
1937
1938 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
1939
1940         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
1941         
1942         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
1943
1944         * threads.c (mono_thread_get_stack_bounds): New helper function.
1945
1946         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
1947         Correctly compute stack bounds when attaching. Fixes #81394.
1948
1949 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
1950
1951         * reflection.c: fix handling of doubles in custom attributes
1952         for the arm-fpa format (bug #81368).
1953
1954 2007-04-18  Raja R Harinath  <rharinath@novell.com>
1955
1956         * reflection.c (assembly_add_win32_resources): Mildly relax an
1957         bounds check to let the end pointer point just past the end of the
1958         allocated buffer.  (may fix #81384)
1959
1960 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
1961
1962         * culture-info-table.h : regenerated.
1963
1964 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
1965
1966         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
1967         the thread is aborted early.
1968
1969 2007-04-05  Dick Porter  <dick@ximian.com>
1970
1971         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
1972         FindFirstFile()/FindNextFile() to find entries.  This lets the
1973         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
1974         81038.
1975
1976         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
1977         the parameters of
1978         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
1979
1980 2007-04-04  Martin Baulig  <martin@ximian.com>
1981
1982         * debug-helpers.c
1983         (mono_method_desc_full_match): Add support for nested classes.
1984
1985 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
1986
1987         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
1988
1989 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
1990
1991         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
1992         waiting for too many threads.
1993
1994 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
1995
1996         * environment.c: Fix return value check on uname so we can get the 
1997         executing version on Solaris operating systems.
1998
1999 2007-03-28  Jb Evain  <jbevain@gmail.com>
2000
2001         * class.c (mono_type_get_name_recurse): Complete the
2002         fix for the creation of assembly qualified names for
2003         pointer types. Fixes #81208.
2004
2005 2007-03-27  Dick Porter  <dick@ximian.com>
2006
2007         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
2008         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
2009         changed.
2010
2011         * threads.c
2012         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
2013         the value of ReleaseMutex().
2014
2015 2007-03-27  Dick Porter  <dick@ximian.com>
2016
2017         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
2018         in little-endian order, not network endian, so must be converted
2019         to host endian here.  Fixes bug 80593.
2020
2021 2007-03-22  Jb Evain  <jbevain@gmail.com>
2022
2023         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
2024         qualified names for pointer types. Fixes #81208.
2025
2026 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
2027
2028         * marshal.c: Add support for PreserveSigAttribute. 
2029         
2030         Code is contributed under MIT/X11 license.
2031
2032 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
2033
2034         * process.c: Fix endianness issues. Fixes #81126.
2035
2036         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
2037         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
2038
2039         * image.c (mono_image_lookup_resource): Make this work on big-endian
2040         machines.Change API contract so the caller needs to free the return value.
2041         
2042         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
2043         API change.
2044         
2045 2007-03-14  Martin Baulig  <martin@ximian.com>
2046
2047         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
2048         mono_type_get_desc() as well.
2049
2050 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
2051
2052         * icall.c:  Fix environ access in VS.  
2053         
2054 2007-03-13  Alp Toker  <alp@atoker.com>
2055
2056         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
2057         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
2058         #63841.
2059
2060 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
2061
2062         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
2063         circular references among dynamic methods. Fixes #81091.
2064
2065         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
2066
2067 2007-03-09  Martin Baulig  <martin@ximian.com>
2068
2069         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
2070
2071 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
2072
2073         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
2074         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
2075         
2076         Code is contributed under MIT/X11 license.
2077         
2078 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
2079
2080         * loader.c: Reapply patch for bug #79424.
2081
2082 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
2083
2084         * metadata.c (mono_type_to_unmanaged): Only convert object to
2085         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
2086
2087 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
2088
2089         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
2090         (and incorrectly set) is_reference field from MonoGenericInst.
2091
2092 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
2093
2094         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
2095         a little earlier.
2096
2097         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
2098
2099         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
2100
2101 2007-03-05  Miguel de Icaza  <miguel@novell.com>
2102
2103         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
2104         FileOptions.1 value to mean "temporary", map that to
2105         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
2106
2107         Fixes 80688
2108
2109 2007-03-03  Marek Habersack  <mhabersack@novell.com>
2110
2111         * appdomain.c: implement MS .Net style shadow copying. Copies of
2112         the assemblies are made in a subdirectory of the dynamic base
2113         directory, the assembly names are preserved.
2114         Copy .mdb and .config files along with the assemblies being shadowed.
2115
2116 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
2117
2118         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
2119         (emit_marshal_handleref): Ditto.
2120
2121         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
2122         on Visual C++. Fixes #80671.
2123
2124 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
2125
2126         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
2127         for clone operations.
2128
2129 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
2130
2131         * marshal.c: Fix warnings.
2132
2133 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
2134
2135         * loader.c: allow case-insensitive matching of the dll name
2136         in dllmap handling when prefixed with "i:".
2137
2138 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
2139
2140         * threads.c: Fix #ifdef for dummy_apc function for VS.
2141
2142 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
2143
2144         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
2145
2146 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
2147         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
2148         giving precedence to the methods with a fully qualified name
2149         (InterfaceName.MethodName) when building the interface sections
2150         of the vtable.
2151
2152 2007-02-16  Dick Porter  <dick@ximian.com>
2153
2154         * threadpool.c (append_job): Fix fast-path array handling, so it's
2155         less likely the array will grow exponentially when the load is
2156         heavy.
2157
2158 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
2159
2160         * metadata-internals.h, loader.c: fix dllmap lookup order
2161         for non-function maps, too, and prepare for fallback code.
2162
2163 2007-02-12  Robert Jordan  <robertj@gmx.net>
2164
2165         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
2166         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
2167         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
2168         GlobalFree. Fixes a part of bug #77075.
2169
2170 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
2171
2172         * loader.c: implemented typedef parent in field memberref.
2173
2174 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
2175
2176         * marshal.c: Fix warnings and remember to call Release on
2177         IUnknown of RCW.
2178         
2179         Code is contributed under MIT/X11 license.
2180
2181 2007-02-10  Miguel de Icaza  <miguel@novell.com>
2182
2183         * class-internals.h: Add MonoHandleRef definition, and
2184         handleref_class to mono_defaults. 
2185
2186         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
2187         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
2188
2189         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
2190         (do nothing on this stage)
2191         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
2192         (emit_marshal_handleref): New method, used for argument handling
2193         of HandleRefs. 
2194
2195 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
2196
2197         * class.c (mono_class_setup_parent): Lazily init com types.
2198         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
2199         init com types.
2200         * object.c (mono_remote_class_vtable): Lazily init com types.
2201         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
2202         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
2203         * domain-internals.h: Expose mono_init_com_types.
2204         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
2205         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
2206         Add support for COM Callable Wrapper marshalling.
2207         * marshal.h: Add icall definitions.
2208         * gc.c: Handle freeing of CCWs in finalizer code.
2209         
2210         Code is contributed under MIT/X11 license.
2211
2212 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
2213
2214         * reflection.c: changed all the signature encoding code to use
2215         a variable-sized buffer.
2216
2217 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
2218
2219         * marshal.c: locking fixes: never take the loader lock
2220         or other runtime locks when holding the marshal lock
2221         (fixes bug#80664).
2222
2223 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
2224
2225         * marshal.c: make the delegate function pointer mapping
2226         work for the moving GC.
2227
2228 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
2229
2230         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
2231         for bug #80618.
2232
2233 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
2234
2235         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
2236         gmodule.
2237
2238 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
2239
2240         * threadpool.c: made the code moving-GC safe.
2241
2242 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
2243
2244         * assembly.c, boehm-gc.c, class-internals.h, class.c,
2245         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
2246         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
2247         warning cleanup.
2248         * reflection.c: warning cleanup, some threading and moving GC fixes.
2249
2250 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
2251
2252         * class.c, loader.c: create the needed Set/Get/Address array methods
2253         as well as the .ctors in mono_class_init (), fixes bug #80567.
2254
2255 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
2256
2257         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
2258         we doesn't decrease its alignment. Should fix the sparc build.
2259
2260 2007-01-24  Dick Porter  <dick@ximian.com>
2261
2262         * socket-io.c
2263         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
2264         Create the returned object if we need to ignore an unsupported
2265         socket option.  Fixes a segfault reported by Atsushi.
2266
2267 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
2268
2269         * class.c, object.c: restrict GC-tracked fields to
2270         UIntPtr fields used inside corlib, so we provide better
2271         type info to the GC and also allow broken packing as in
2272         bug #80580.
2273
2274 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
2275
2276         * sgen-gc.c: removed duplicated function.
2277
2278 2007-01-19  Miguel de Icaza  <miguel@novell.com>
2279
2280         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
2281         value that means that the value is not supported, but that we
2282         should not return a failure, but instead report this as a
2283         successful operation.
2284
2285 2007-01-19  Raja R Harinath  <rharinath@novell.com>
2286
2287         Fix tests/bug79956.2.il
2288         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
2289         (mono_generic_class_get_class): If the generic definition in an
2290         enum, copy over other fields related to it.
2291
2292 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
2293
2294         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
2295         genericinst enums (bug #79215).
2296
2297 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
2298         * class.c: Fix bug 80307.
2299
2300 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
2301
2302         * image.c: if the file table is not present, try to load
2303         all the modules, since we don't have info about them
2304         having or not metadata (bug #80517).
2305         * assembly.c: allow mono_assembly_load_references () to
2306         work for netmodules.
2307
2308 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
2309
2310         * image.c, metadata-internals.h, object.c: execute module
2311         cctors when running on the 2 runtime if present (bug #80487).
2312
2313 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
2314
2315         * icall.c: optimized InitializeArray() on bigendian.
2316
2317 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
2318
2319         * icall.c: fix for the broken ARM FPA double format.
2320
2321 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
2322
2323         * icall.c: handle endian issues for r4 and r8 types, too, in
2324         the InitializeArray() icall.
2325
2326 2007-01-15  Miguel de Icaza  <miguel@novell.com>
2327
2328         * loader.c (mono_loader_error_prepare_exception): Clear the error
2329         once we have extracted the information from it, do this before we
2330         call into the JIT's class loading mechanisms.
2331
2332         * object.c (mono_class_create_runtime_vtable): Do not clear the
2333         loader error before calling mono_class_get_exception_for_failure
2334         as the loader error is needed inside
2335         mono_class_get_exception_for_failure to throw the error (thinko).
2336
2337         Fixes #80521
2338         
2339 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
2340
2341         * reflection.c: align fields rva data so it's faster to load at
2342         runtime.
2343
2344 2007-01-12  Raja R Harinath  <rharinath@novell.com>
2345
2346         Prepare to simplify GenericMethod handling.
2347         * class-internals.h (mono_method_get_context): New accessor function.
2348         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
2349         rather than directly accessing '->context' field.
2350
2351         * class-internals.h (_MonoGenericParam.method): Move ...
2352         (_MonoGenericContainer): ... here.  Add into union with klass field.
2353         * class.c, icall.c, loader.c, metadata.c, reflection.c:
2354         Update to changes.
2355
2356 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
2357
2358         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
2359         the wrapper type enum and reduce relocations.
2360
2361 2007-01-12  Raja R Harinath  <rharinath@novell.com>
2362
2363         * reflection.c (inflate_mono_method): Reuse method instantiation
2364         from the generic method, if available.
2365
2366 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2367
2368         * marshal.c (emit_marshal_variant): Fix conv_arg
2369         type in last commit, based on whether parameter is byref.
2370         
2371 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2372
2373         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
2374         marshalling.
2375         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
2376         MONO_TYPE_OBJECT back for VARIANT support.
2377
2378 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2379
2380         * marshal.c, marshal.h, icall-def.h: Implement 
2381         Marshal.ReAllocCoTaskMem.
2382
2383 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
2384
2385         * marshal.c: memory retention fixes: use the proper
2386         image cache for runtime_invoke method lookups.
2387
2388 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
2389
2390         * mempool.c: added code to help debug mempool allocations.
2391
2392 2007-01-11  Dick Porter  <dick@ximian.com>
2393
2394         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
2395         support (experimenting with faking it with IP_MTU_DISCOVER for
2396         systems that don't have IP_DONTFRAGMENT.)
2397         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
2398         icall.
2399
2400         * icall-def.h: new System.Net.Sockets.Disconnect icall.
2401
2402         * socket-io.h: Add new fields to MonoSocketAsyncResult
2403         corresponding to the new ones in Socket.cs.
2404
2405 2007-01-11  Raja R Harinath  <rharinath@novell.com>
2406
2407         Fix IronPython regression mentioned in #80249
2408         * metadata.c (do_mono_metadata_parse_generic_class): Clear
2409         'cached_context' field, since it may have been initialized as a
2410         side-effect of metadata parsing.
2411
2412         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
2413         (_MonoGenericClass.cached_class): Move here and rename from lone
2414         remaining field of ...
2415         (_MonoInflatedGenericClass): ... this.  Remove.
2416         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
2417         to changes.
2418
2419         Fix mcs/tests/test-128.cs regression.
2420         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
2421         2007-01-10 change below.
2422         [MONO_TYPE_OBJECT]: Recurse into array case.
2423
2424 2007-01-11  Raja R Harinath  <harinath@gmail.com>
2425
2426         * class-internals.h (mono_get_inflated_generic_class): Remove.
2427         * class.c (mono_get_inflated_generic_class): Remove.
2428         (mono_generic_class_get_class): Rename from
2429         mono_class_create_generic.
2430         (mono_class_from_mono_type) [GENERICINST]: Use it.
2431         * reflection.c, metadata.c: Update to changes.  Use
2432         'mono_class_from_mono_type'.
2433
2434 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
2435
2436         * reflection.c: use passed type when encoding an array element
2437         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
2438
2439 2007-01-09  Robert Jordan  <robertj@gmx.net>
2440
2441         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
2442         result arguments (someDelegate.EndInvoke (unrelatedAres)).
2443         Fixes bug #80392.
2444
2445 2007-01-09  Raja R Harinath  <rharinath@novell.com>
2446
2447         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
2448
2449         * object.c (set_value): Avoid aliasing between type->data.klass
2450         and type->data.generic_class.
2451
2452         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
2453
2454 2007-01-08  Raja R Harinath  <rharinath@novell.com>
2455
2456         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
2457         between type->data.klass and type->data.generic_class.
2458
2459 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
2460
2461         * marshal.c: In MS.NET, StringBuilder objects are not copied by
2462         value in out parameters.
2463
2464 2007-01-08  Raja R Harinath  <rharinath@novell.com>
2465
2466         Simplify invariant for MonoGenericClass::klass field.
2467         * class.c (mono_class_create_generic): Verify 'klass' is null.
2468         * metadata.c (do_mono_metadata_parse_generic_class): Don't
2469         initialize 'klass' field.
2470
2471 2007-01-05  Raja R Harinath  <rharinath@novell.com>
2472
2473         Ongoing work to avoid redundant data and simplify invariants.
2474         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
2475         'generic_class', and change type to a GenericInst.
2476         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
2477         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
2478
2479 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
2480
2481         * class.c : skip io-layer under PLATFORM_WIN32.
2482
2483 2007-01-03  Tor Lillqvist  <tml@novell.com>
2484
2485         Fix #80305: In a bundled executable, look in the bundled exe
2486         assembly to determine the runtime version. Add the possibility to
2487         bundle also the machine.config file.
2488         
2489         * assembly.c (mono_assembly_open_from_bundle): Make
2490         non-static. Allow being called even if we have no bundled
2491         assemblies, and return NULL right away in that case.
2492
2493         * domain-internals.h: Declare mono_assembly_open_from_bundle()
2494         here.
2495
2496         * domain.c (app_config_parse): Take an assembly exe file name as
2497         parameter instead of a config file name. Check for a bundled
2498         config file for that assembly by calling
2499         mono_config_string_for_assembly_file() (see below) before looking
2500         for one in the file system.
2501         (get_runtimes_from_exe): Corrsponding change to call of
2502         app_config_parse().
2503         (get_runtimes_from_exe): Check for bundled assembly exe file first
2504         by calling mono_assembly_open_from_bundle(). If no bundled
2505         assembly exe file is found, call mono_image_open() as before to
2506         look it up in the file system.
2507
2508         * mono-config.c: Add variable bundled_machinec_onfig.
2509         (mono_config_string_for_assembly_file): New function.
2510         (mono_config_for_assembly): Move code snippet that looks for a
2511         bundled assembly .config file into the above new function. Call
2512         it.
2513         (mono_register_machine_config, mono_get_machine_config): New
2514         functions to set and retrieve
2515
2516         * assembly.h: Declare mono_register_machine_config().
2517
2518         * mono-config.h: Declare mono_get_machine_config() and
2519         mono_config_string_for_assembly_file().
2520
2521         * icall.c: No declaration of environ necessary on Win32. It is
2522         declared (as a macro expanding to a function call) in stdlib.h.
2523         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
2524         New internal mono function. Returns the value of
2525         mono_get_machine_config() as a Mono string.
2526
2527         * icall-def.h: Add get_bundled_machine_config().
2528
2529 2007-01-04  Raja R Harinath  <rharinath@novell.com>
2530
2531         Remove redundant field
2532         * class-internals.h (_MonoGenericContext.container): Remove field.
2533         * loader.c (mono_method_get_signature_full): Don't parse a
2534         "container" for a signature parse when the signature is inflated
2535         immediately.
2536         (method_from_methodspec): Likewise, for a generic_inst.
2537         * class.c, metadata.c, reflection.c: Update to changes.
2538
2539 2006-01-04  Raja R Harinath  <rharinath@novell.com>
2540
2541         * class-internals.h (_MonoGenericClass): Rename 'context' field to
2542         'cached_context', and change semantics -- it starts off NULL, and
2543         is initialized on demand.
2544         * class.c (mono_generic_class_get_context): New accessor to
2545         replace 'context' field accesses.
2546         (mono_class_get_context): New helper.
2547         (*): Update to changes.
2548         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
2549
2550 2007-01-03  Miguel de Icaza  <miguel@novell.com>
2551
2552         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
2553         before the memcpy.   Fixes Marshal2 regression.
2554
2555 2007-01-02  Jb Evain  <jbevain@gmail.com>
2556
2557         * blob.h: add a MONO_TYPE_ENUM definition
2558         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
2559         fix the encoding of arrays of enums in custom attributes.
2560
2561         Fixes #79666.
2562
2563 2007-01-01  Miguel de Icaza  <miguel@novell.com>
2564
2565         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
2566         string is null terminated, but only cut the string short if it
2567         overflows the buffer.   
2568         
2569         (mono_string_to_byvalstr): Also fix this routine.   The code here
2570         was not properly terminating a string (it was only terminated
2571         because of the previous catch-all memset). 
2572
2573         I left the memset, because I do not know if applications expect
2574         the runtime to clear this region. 
2575
2576         Fixes #79944.
2577
2578         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
2579         Clear the error before returning to unmanaged code to prevent the
2580         runtime from being confused later on (fixes  80420).
2581         (ves_icall_type_from_name): Always call mono_loader_clear_error
2582         after parsing a type that could have failed.
2583         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
2584
2585         * loader.c (mono_loader_clear_error): Fix indentation.
2586
2587 2006-12-28  Martin Baulig  <martin@ximian.com>
2588
2589         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
2590
2591 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
2592
2593         * reflection.c: patch from Rolf Bjarne Kvinge to fix
2594         getting a token for an EnumBuilder.
2595
2596 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
2597
2598         * reflection.c: be more careful in case resource generation
2599         fails to create the data array.
2600
2601 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
2602
2603         * sgen-gc.c: write barrier for clone and fix unregister handles.
2604
2605 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
2606
2607         * reflection.c: some fixes needed in the generics code for the moving GC.
2608
2609 2006-12-22  Robert Jordan  <robertj@gmx.net>
2610
2611         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
2612         account. Fixes bug #80299.
2613
2614 2006-12-21  Raja R Harinath  <rharinath@novell.com>
2615
2616         Fix WaitHandle usage in delegates.
2617         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
2618         * object.c (mono_wait_handle_new): Use the property set method to
2619         initialize the handle.
2620         (mono_wait_handle_get_handle): New.
2621         * threadpool.c (mono_async_invoke): Use it.
2622         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
2623         Likewise.
2624         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
2625
2626 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
2627
2628         * marshal.c (emit_marshal): Call emit_marshal_variant and
2629         emit_marshal_com_interface when applicable.
2630         (emit_marshal_variant, emit_marshal_com_interface): Add
2631         methods for this case and remove if's from emit_marshal_object.
2632         
2633 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
2634
2635         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
2636
2637 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
2638
2639         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
2640         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
2641         and GlobalFree on Windows. Remove FIXME.
2642
2643 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
2644
2645         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
2646         implementation for managed objects.
2647
2648 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
2649
2650         * object.c: implemented code to be used for checking
2651         that no reference field overlaps with non-references.
2652
2653 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2654
2655         * threadpool.c: fix queue code to be compatible with the
2656         moving GC.
2657
2658 2006-12-18  Miguel de Icaza  <miguel@novell.com>
2659
2660         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
2661         in structures by throwing ArgumentNullException.
2662
2663         (emit_marshal_safehandle): Also when they are null parameters.
2664
2665         (emit_marshal_safehandle): Add support for ref
2666         SafeHandles parameters
2667
2668 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
2669
2670         * profiler.c: updated to use the mono-dl API instead of
2671         gmodule.
2672
2673 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2674
2675         * profiler.c: updated to use the mono-dl dynamic loading
2676         API instead of gmodule.
2677
2678 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
2679
2680         * profiler.c: use readlink, older versions of glib don't have
2681         g_file_read_link ().
2682
2683 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2684
2685         * profiler.c: try to detect the path to mono if libc fails to provide
2686         a useful name (bug #80286).
2687
2688 2006-12-16  Raja R Harinath  <rharinath@novell.com>
2689
2690         Fix #80242
2691         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
2692         instance, use the generic type definition instead.
2693         (ves_icall_Type_GetNestedTypes): Likewise.
2694         * class.c (mono_class_create_generic): Always set the
2695         nested_classes of a generic instance to NULL, even if the generic
2696         type definition has nested types.
2697
2698 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
2699
2700         * marshal.c (mono_string_from_bstr): Revert previous Windows change
2701         and fix on Linux.
2702         
2703 2006-12-15  Miguel de Icaza  <miguel@novell.com>
2704
2705         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
2706         my arguments were in the wrong order.   I also fixed the Windows
2707         version which seems to have had the same issue.
2708
2709         (mono_free_bstr): On Unix, this is g_free.
2710         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
2711         conversions (for the tests in corlib to pass).
2712
2713 2006-12-14  Miguel de Icaza  <miguel@novell.com>
2714
2715         * marshal.c (emit_ptr_to_object_conv): For now, ignore
2716         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
2717         exception if a ref SafeHandle in a struct has changed).
2718         
2719         (emit_struct_conv): Do not perform layout checks for classes
2720         derived from SafeHandle, as those are specially handled. 
2721
2722         (emit_object_to_ptr_conv): Add support for
2723         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
2724
2725         (emit_marshal_safehandle): Implement conversion of return values
2726         of safehandles (MARSHAL_ACTION_CONV_RESULT).
2727         
2728         * threads.c: WaitHandle now is compiled with two different handles
2729         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
2730         for 2.0.
2731         
2732         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
2733         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
2734         these routines to cope with both kinds of fields.
2735
2736 2006-12-12  Miguel de Icaza  <miguel@novell.com>
2737
2738         * metadata.c (mono_type_to_unmanaged): Handle the case where
2739         type->data.klass is a SafeHandle, and in that case, return the
2740         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
2741         MONO_MARSHAL_CONV_SAFEHANDLE. 
2742
2743 2006-12-11  Miguel de Icaza  <miguel@novell.com>
2744
2745         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
2746         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
2747         calling emit_marshal_object.
2748
2749         (emit_marshal_safehandle): Implement marshalling of
2750         SafeHandle parameters (no ref support yet).
2751
2752         (MarshalAction): Document the defines as I implement
2753         them for SafeHandle.
2754
2755         (emit_marshal_object): indentation police.
2756
2757         * class-internals.h: Define MonoSafeHandle.
2758         Add safehandle_class to MonoDefaults type.
2759
2760         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
2761         list of classes to check for fields. 
2762
2763         * domain.c (mono_init_internal): Add SafeHandle to the list of
2764         mono_defaults loaded.
2765
2766 2006-12-15  Raja R Harinath  <rharinath@novell.com>
2767
2768         Fix #80253
2769         * reflection.c (mono_reflection_bind_generic_parameters): If the
2770         generic type definition is a type builder, ensure that it is fully
2771         initialized before instantiating it.  Kill some dead code.
2772
2773 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
2774
2775         * object.c: clear the loader_error () before loading
2776         more metadata stuff (bug #80258).
2777
2778 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
2779
2780         * icall.c, icall-defs.h: type modifiers icalls for
2781         parameters and properties.
2782
2783 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
2784
2785         * object.c, icall.c: fixed warnings.
2786
2787 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
2788
2789         * marshal.c: fixed a couple of leaks and coding style in a few places.
2790
2791 2006-12-08  Dick Porter  <dick@ximian.com>
2792
2793         * process.c: Cope with NULL ProcessStartInfo arguments on windows
2794         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
2795         80173.
2796
2797 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
2798
2799         * process.c: ProcessStartInfo may have only filename set and
2800         arguments can be NULL.
2801
2802 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2803
2804         * icall.c: fix leak found by Robert Jordan.
2805
2806 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
2807
2808         * marshal.c, marshal.h: generate managed method to access an element
2809         of a multi-dimensional array.
2810
2811 2006-11-30  Paolo Molaro (lupus@ximian.com)
2812
2813         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
2814
2815 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2816
2817         * icall.c: back out GetFields () fix until the serialization code is
2818         fixed to not depend on the incorrect behaviour.
2819
2820 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
2821
2822         * profiler.c: provide defaults if none are set.
2823
2824 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
2825
2826         * Makefile.am, attrdefs.h: new public header file with
2827         constants for attributes for use by embedders.
2828
2829 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
2830
2831         * icall.c: GetFields () fix for bug #80064.
2832
2833 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
2834
2835         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
2836         removed long unused icalls.
2837
2838 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
2839   
2840         * marshal.c: 
2841                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
2842                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
2843                 can be generated without a delegate class.
2844                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
2845         
2846         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
2847
2848 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2849
2850         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
2851         #80069.
2852
2853 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
2854
2855         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
2856         icall-def.h: added icalls needed by System.GC.
2857
2858 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
2859
2860         * loader.c: ensure the class in catch clauses is handled
2861         correctly for generics methods (fixes bug#79980).
2862
2863 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
2864
2865         * monitor.h, monitor.c: added mono_locks_dump () function
2866         to help debug deadlocks involving managed locks.
2867
2868 2006-11-13  Dick Porter  <dick@ximian.com>
2869
2870         * file-io.c (get_file_attributes): If the file is a symlink try
2871         and get the stat data for the target, but also add the
2872         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
2873         the specs for the windows symlink support, but will probably have
2874         to be reworked when I have test data from a vista machine.  Fixes
2875         bug 79887.
2876
2877 2006-11-13  Dick Porter  <dick@ximian.com>
2878
2879         * gc.c (mono_domain_finalize): 
2880         * marshal.c (mono_delegate_begin_invoke): 
2881         * threadpool.c (socket_io_init, mono_thread_pool_init)
2882         (mono_thread_pool_finish): 
2883         * monitor.c (mono_monitor_try_enter_internal): 
2884         * threads.c (mono_thread_resume, mono_thread_init)
2885         (mono_thread_suspend_all_other_threads)
2886         (mono_thread_execute_interruption): 
2887         * appdomain.c (mono_domain_unload): Check for NULL error returns
2888         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
2889         75733.
2890
2891 2006-11-11  Miguel de Icaza  <miguel@novell.com>
2892
2893         * process.c
2894         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
2895         Only close the handle if the value of the handle is not
2896         INVALID_HANDLE_VALUE.  This just makes the process a bit more
2897         robust.
2898
2899         Improvement for #75733, so that we do not run into this problem. 
2900
2901         
2902         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
2903         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
2904         internal variables.  Fixes #79462 
2905         
2906
2907 2006-11-09  Dick Porter  <dick@ximian.com>
2908
2909         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
2910         Use poll() not select().  Fixes bug 79397.
2911
2912 2006-11-09  Raja R Harinath  <rharinath@novell.com>
2913
2914         Fix #79872
2915         * assembly.c (mono_assembly_load_from_full): Check that the given
2916         image has an assembly manifest.
2917
2918 2006-11-09  Ankit Jain  <jankit@novell.com>
2919
2920         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
2921         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
2922         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
2923
2924 2006-11-07  Dick Porter  <dick@ximian.com>
2925
2926         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
2927         Put the old resolver behaviour back for pre-2.0 profiles.
2928
2929 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
2930
2931         * threadpool.c: precise GC and locking fixes.
2932
2933 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
2934
2935         * class.c: don't load types that have an explicit unaligned
2936         managed reference. Provide better info in the TypeLoad exception.
2937         Part of the fix for bug #79744.
2938         * object.c: use the correct check for class type load issues.
2939
2940 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
2941
2942         * class.c: enforce alignment of fields with managed references
2943         even when Pack=1 is forced by the user (bug #77788).
2944
2945 2006-11-03  Dick Porter  <dick@ximian.com>
2946
2947         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
2948         If the address reverse lookup fails, return it as the hostname
2949         anyway.  Fixes bug 79721.
2950
2951 2006-11-03  Dick Porter  <dick@ximian.com>
2952
2953         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
2954         Fix build on Windows.
2955
2956 2006-11-02  Dick Porter  <dick@ximian.com>
2957
2958         * icall-def.h: 
2959         * object-internals.h: 
2960         * exception.c (mono_get_exception_thread_interrupted): 
2961         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
2962         Fixes bug 74525.
2963
2964         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
2965         Check for pending Thread.Interrupt.
2966
2967 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
2968         * loader.c: Fixed bug 79684.
2969
2970 2006-10-27  Dick Porter  <dick@ximian.com>
2971
2972         * file-io.c (get_file_attributes): Force symlinks to directories
2973         to be returned as a regular file.  Fixes bug 79733.
2974 2006-10-26  Dick Porter  <dick@ximian.com>
2975
2976         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
2977         CreateFile to open a directory then we need to set the
2978         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
2979
2980 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
2981
2982         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
2983         friends.
2984
2985 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
2986
2987         * sgengc.c: small cleanup of timer code.
2988
2989 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
2990
2991         * sgen-gc.c: fix some warnings and start adding support for
2992         complete object removal on domain unload.
2993
2994 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
2995
2996         * assembly.c: build_assembly_name should not consider a version
2997         number without build or revision number invalid. Fixes bug #79715.
2998
2999 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
3000
3001         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
3002         call kernel32 function OutputDebugString directly.
3003         
3004         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
3005         
3006 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
3007
3008         * reflection.c: small cleanup, using a function to insert a MonoString
3009         in the string heap.
3010
3011 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
3012
3013         * reflection.c: moving GC fixes.
3014
3015 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
3016
3017         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
3018         all the objects with finalizers belonging to an unloading appdomain.
3019
3020 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
3021
3022         * sgen-gc.c: added ability to allocate even when the nursery is fully
3023         pinned and fixed a couple of bugs.
3024
3025 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
3026
3027         * threads.h: Revert the last change for now.
3028
3029         * threads.h (mono_thread_get_pending_exception): Rename this to
3030         mono_thread_get_undeniable_exception ().
3031
3032 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
3033
3034         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
3035         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
3036         when fname does not refer to valid assembly. This result in a more
3037         meaningful error message.
3038         * exception.c: added mono_get_exception_bad_image_format2 which 
3039         constructs a BadImageFormatException using the ctor taking a custom
3040         message and the file name. Passing in a NULL msg results in a default
3041         message.
3042         * exception.h: define mono_get_exception_bad_image_format2 function.
3043         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
3044         when file name pointed to an invalid IL image. Use 
3045         mono_get_exception_file_not_found2 to construct FileNotFoundException,
3046         as this results in a more meaningful error message.
3047
3048 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
3049
3050         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
3051         #79465.
3052
3053 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
3054
3055         * metadata.c (mono_type_size): Change the align parameter to guint32 for
3056         consistency with the other _size functions.
3057         (mono_type_stack_size): Ditto.
3058
3059         * class.c object.c icall.c: Fix warnings caused by the above change.
3060
3061         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
3062
3063         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
3064
3065         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
3066
3067 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
3068
3069         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
3070         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
3071         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
3072         threadpool.h, threads-types.h: mark more internal functions.
3073
3074 2006-10-11  Dick Porter  <dick@ximian.com>
3075
3076         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
3077         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
3078         reproduce the bug even before applying the fix.)
3079
3080 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
3081
3082         * reflection.c: allow retrieving attributes for arguments in generic
3083         methods (bug #79241).
3084
3085 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
3086
3087         * debug-mono-symfile.c: properly check fopen () result (found by
3088         coverity).
3089
3090 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
3091
3092         * reflection.c: make error message clearer and fixed two
3093         issuelets found by Coverity.
3094
3095 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
3096
3097         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
3098
3099 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
3100
3101         * object-internals.h, gc-internal.h, profiler-private.h:
3102         mark internal functions.
3103
3104 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
3105
3106         * reflection.c: put data in the text section.
3107         * icall.c: recognize more types in type_from_typename ().
3108         * process.c, marshal.c: added some GC FIXMEs.
3109
3110 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
3111
3112         * loader.c: check for NULL before initializing.
3113
3114 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
3115
3116         * gc.c (finalizer_thread): Use a non-alertable wait here.
3117
3118         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
3119         until the correct solution is found.
3120
3121 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
3122
3123         * reflection.c (mono_module_get_object): Avoid an assert when operating on
3124         modules with no metadata. Fixes #79596.
3125
3126         * image.c (load_metadata_ptrs): Put back the error message when
3127         the #- heap is encountered since the support is not complete yet.
3128
3129 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
3130
3131         * gc.c: do not allow the user to SuppressFinalize () a
3132         delegate because it would leak the trampoline if present.
3133
3134 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
3135
3136         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
3137         PropertyPtr table.
3138
3139 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
3140
3141         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
3142
3143         * metadata.c (mono_metadata_get_param_attrs): Ditto.
3144
3145         * row-indexes.h: Add definitions for *Ptr tables.
3146
3147         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
3148
3149         * metadata.c (mono_metadata_translate_token_index): New helper function to
3150         translate table indexes used in uncompressed metadata.
3151         (mono_metadata_decode_table_row): Ditto.
3152         (mono_metadata_decode_table_row_col): Ditto.
3153
3154         * metadata.c: Add table schema for *Ptr tables.
3155
3156         * class.c loader.c: Use the new helper function to access the affected metadata
3157         tables.
3158         
3159         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
3160         #38532.
3161         
3162 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
3163
3164         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
3165         sequences which can be unbounded in size. Fixes #79583.
3166
3167 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
3168
3169         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
3170         static initialization.
3171
3172         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
3173
3174         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
3175
3176         * domain.c (mono_domain_free): Free up type_init_exception_hash.
3177
3178         * object.c (mono_runtime_class_init): Implement correct semantics when a static
3179         ctor fails, i.e. throw the same exception on subsequent accesses.
3180         
3181 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
3182
3183         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
3184         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
3185         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
3186         Handle marshalling of interfaces and VARIANTs contained in structs.
3187         
3188         Code is contributed under MIT/X11 license.
3189         
3190 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
3191
3192         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
3193         
3194         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
3195         mempool.
3196
3197 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3198
3199         * console-io.c: ignore previous SIGINT handler.
3200
3201 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
3202
3203         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
3204         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
3205         #79460, #79461, #79485.
3206
3207         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
3208
3209         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
3210         #79217.
3211
3212 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
3213
3214         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
3215         could be generated from it.
3216
3217 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
3218
3219         * rand.c: fix read loop to correctly handle EINTR.
3220
3221 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
3222
3223         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
3224         internal calls are defined to keep methods closer to the declaring
3225         type and allow a significant reduction in runtime relocations and
3226         memory usage.
3227
3228 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
3229
3230         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
3231         exception message to have FileNotFoundException use the default
3232         assembly load error message. Fixes bug #79426.
3233         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
3234
3235 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3236
3237         * threadpool.c: (start_thread_or_queue) use the root domain when
3238         creating the thread instead of the async object one.
3239
3240 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
3241
3242         * class.c, object.c, class-internals.h, reflection.c:
3243         for arrays, store element_size inside MonoClass (speedup
3244         for array object creation).
3245
3246 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
3247
3248         * icall.c: fixed CodeBase to use the file name and not the module
3249         name (bug #79365).
3250
3251 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
3252
3253         * mono-debug.c, mono-debug.h: export find_method as
3254         mono_debug_find_method ().
3255
3256 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
3257
3258         * debug-helpers.c, class-internals.h: added a few functions useful
3259         when debugging under gdb.
3260
3261 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3262
3263         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
3264         characters that need special handling.
3265
3266 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
3267
3268         * mono-config.c: make the os/cpu specification more flexible,
3269         allowing lists and negation.
3270
3271 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
3272
3273         * marshal.c: COM Interop fixes. Handle case where method->klass.
3274         is interface. Handle BSTR/MonoString when null. Use CDECL as 
3275         calling convention on non-windows platforms. This is for
3276         compatibility with XPCOM and MainWin COM.
3277         
3278         Code is contributed under MIT/X11 license.
3279         
3280
3281 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
3282
3283         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
3284         correctly. Fixes #79217.
3285
3286         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
3287
3288 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
3289
3290         * mono-config.c: allow both an os and cpu attribute for dllmap
3291         and dllentry elemnets to enable a single config file to be used
3292         for multiple architectures.
3293
3294 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
3295
3296         * loader.c: MonoLoaderError was cleared too soon on load failure.
3297         Fixes bug #79424.
3298
3299 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
3300
3301         * icall.c: use the defining class vtable when accessing a
3302         static field, not a pobblibly derived class.
3303
3304 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
3305
3306         * icall.c string-icalls.c: Remove references to unicode.h.
3307
3308         * unicode.h unicode.c Makefile.am: Remove these unused source files.
3309
3310         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
3311
3312         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
3313         indicating the image where custom marshaller types should be looked up.
3314         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
3315         custom marshallers, instead of corlib. Fixes #79425.
3316
3317 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
3318
3319         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
3320
3321 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
3322
3323         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
3324         Implement Environment.ProcessorCount.
3325         
3326         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
3327         Implement Environment.ProcessorCount.
3328         
3329         * icall.c: 
3330         Add Environment.ProcessorCount icall.
3331         
3332         Patch by Jason McFall.
3333
3334 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3335
3336         * assembly.c: don't append .exe/.dll when the filename already contains
3337         one of those extensions.
3338
3339 2006-09-12  Martin Baulig  <martin@ximian.com>
3340
3341         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
3342         to array interfaces.
3343
3344 2006-09-11  Martin Baulig  <martin@ximian.com>
3345
3346         * reflection.c (mono_image_build_metadata): Create the
3347         MethodImpl's after emitting all types and methods, so we don't
3348         need another fixup pass for them.
3349
3350 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
3351
3352         * class.c (mono_class_from_name_case): Fix regression introduced by the last
3353         change.
3354
3355 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
3356
3357         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
3358         unload.
3359
3360 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
3361
3362         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
3363         args is not set. Fixes #78926.
3364
3365 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
3366
3367         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
3368
3369         * image.c (load_class_names): Move this to class.c, and rename it to 
3370         'mono_image_init_name_cache'.
3371         (load_modules): Fix a warning.
3372
3373         * class.c icall.c image.c: Initialize image->name_cache lazily.
3374
3375         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
3376         on its name using information in the AOT file.
3377
3378         * class.c (mono_class_from_name): Use the new hook function.
3379
3380 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
3381
3382         * reflection.c (mono_param_get_objects): Handle enum default parameter values
3383         correctly.
3384
3385         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
3386         Fixes #79289.
3387         
3388 2006-09-06  Martin Baulig  <martin@ximian.com>
3389
3390         * icall.c (mono_lookup_internal_call): Small fix.
3391
3392 2006-09-05  Raja R Harinath  <rharinath@novell.com>
3393
3394         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
3395         double g_free.
3396
3397 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
3398
3399         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
3400         when --debug is specified.
3401
3402 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
3403
3404         * class.c (setup_generic_array_ifaces): Fix a warning.
3405
3406 2006-09-04  Miguel de Icaza  <miguel@novell.com>
3407
3408         * Temporarily remove the patch to assemly.c that checks the
3409         assembly versions as it breaks our gacutil.
3410
3411 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
3412
3413         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
3414
3415         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
3416         a net 1.0 runtime.
3417
3418         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
3419         created using the default ctor. Fixes #79152.
3420         (mono_string_builder_to_utf16): Ditto.
3421
3422 2006-09-01  Martin Baulig  <martin@ximian.com>
3423
3424         Fix handling of the generic array interfaces.
3425
3426         * class-internals.h
3427         (MonoDefaults): Removed `generic_array_class' and added
3428         `generic_ilist' class.
3429
3430         * class.c
3431         (mono_bounded_array_class_get): Add the new generic array interfaces.
3432         (setup_generic_array_ifaces): New static method; create vtable
3433         entries for each method in the generic array interfaces.
3434
3435         * metadata.c
3436         (select_container): Allow "parent-less" generic methods.
3437
3438         * marshal.c
3439         (mono_marshal_get_generic_array_helper): New public method.
3440
3441         * icall.c
3442         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
3443         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
3444         moved the interncall into System.Array.
3445
3446 2006-09-01  Raja R Harinath  <rharinath@novell.com>
3447
3448         A few more cases of avoiding work on types with ->byref set.
3449         Has the real fix for #79238
3450         * icall.c (is_generic_parameter): New helper.
3451         (ves_icall_Type_GetGenericParameterPosition): Use it.
3452         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
3453         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
3454         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
3455         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
3456         reference types.
3457         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
3458         reference types.
3459         (ves_icall_Type_get_IsGenericInstance): Likewise.
3460         (ves_icall_Type_get_IsGenericType): Likewise.
3461
3462 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
3463
3464         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
3465         class if possible.
3466
3467         * mempool.h (mono_mempool_get_allocated): New helper function.
3468
3469         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
3470         change.
3471
3472         * mempool.c: Fix warnings and the calculation of stats.
3473
3474         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
3475
3476         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
3477
3478         * loader.c (mono_get_method_from_token): Update method_count stat.
3479
3480         * class-internals.h (MonoStats): Add some stats.
3481
3482 2006-08-31 Robert Jordan  <robertj@gmx.net>
3483
3484         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
3485         with managed variants.
3486         All code is contributed under the MIT/X11 license.
3487         
3488 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
3489
3490         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
3491         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
3492
3493         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
3494
3495         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
3496         with cycles in classes.
3497
3498         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
3499
3500         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
3501         missing a [MarshalAs] directive. Fixes #79203.
3502
3503         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
3504         klass->marshal_info. Fixes #79217.
3505
3506 2006-08-30  Martin Baulig  <martin@ximian.com>
3507
3508         Committing a patch from Joachim Ante <joe@otee.dk>:
3509         Add support for binary data symbol stores.
3510
3511         * debug-mono-symfile.c
3512         (mono_debug_open_mono_symbol_file): Renamed into
3513         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
3514         arguments.
3515
3516         * mono-debug.c
3517         (mono_debug_open_image): Added `raw_contents' and `size' args.
3518         (mono_debug_init_2_memory): New public function.
3519
3520 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
3521
3522         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
3523
3524 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3525
3526         * appdomain.c: implement support for ShadowCopyFiles.
3527
3528 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
3529
3530         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
3531         when value is NULL (and should remove CID #51).
3532
3533 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3534
3535         * image.c: moved 2 functions to ../utils.
3536
3537 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
3538
3539         * gc.c: cope with the target object of a GC handle being NULL
3540         (bug #78877).
3541
3542 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
3543
3544         * class.c: recursively check parent's explicit implementations
3545         of interface methods (fixes bug #79125).
3546
3547 2006-08-19  Miguel de Icaza  <miguel@novell.com>
3548
3549         * filewatcher.c: Avoid warnings when building, do not redefine
3550         constants that are defined.
3551
3552         Remove warnings.
3553
3554 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3555
3556         * image.c: don't fail when the link points to an absolute path.
3557
3558 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
3559
3560         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
3561         Fix CID #3.
3562
3563 2006-08-17  Miguel de Icaza  <miguel@novell.com>
3564
3565         * image.c (full_path): A new method used to obtain the actual path
3566         of an assembly even in the presence of symbolic links.  
3567
3568         This is necessary for the case where we are running a binary that
3569         has been GACed, but we are using the "published" path name
3570         ($prefix/mono/1.0/blah.exe) which happens to point to the real
3571         file in the GAC.
3572
3573         This was the source of the failure for the `xsp' command with the
3574         recent AppDomain changes, as far as the runtime was concerned,
3575         there were two different assemblies: $prefix/mono/1.0/blah.exe and
3576         $prefix/mono/gac/blah/version/blah.exe.
3577
3578         (do_mono_image_open): use full path
3579
3580 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3581
3582         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
3583
3584 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
3585
3586         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
3587         domain_id is supplied. Fix CID #241 and corlib's unit tests.
3588
3589 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3590
3591         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
3592         small structures. Fixes #78990.
3593
3594 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3595
3596         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
3597
3598         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
3599
3600 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3601
3602         * appdomain.c:
3603         * marshal.c: don't load all the assemblies from a domain into newly
3604         created ones. The new domains might have different rules and load
3605         assemblies from different locations. Fixes bug #76757.
3606
3607         Patch by Lluis. Conflicts resolved by Brian Crowell.
3608
3609 2006-08-16  Alp Toker  <alp@atoker.com>
3610
3611         * socket-io.c: First half of the fix for #79084.
3612         Set sa_size to the length of the content, not that of the struct.
3613         Don't add NULL suffix to the content, this should be done in
3614         managed code if needed.
3615
3616 2006-08-14  Raja R Harinath  <rharinath@novell.com>
3617
3618         Fix part of #79012
3619         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
3620         mono_metadata_parse_type returns NULL.
3621
3622 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
3623
3624         * normalization-tables.h : new file for string normalization data.
3625         * locales.c, locales.h, icall.c :
3626           added load_normalization_resource() for string normalization,
3627           and icall as well.
3628         * Makefile.am : added normalization-tables.h to the sources.
3629
3630 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
3631
3632         * marshal.c: Add more helper functions to reduce code duplication and use them
3633         everywhere.
3634
3635 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
3636
3637         * marshal.c: Fix non-x86 stdcall warnings.
3638         
3639         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
3640         them everywhere.
3641
3642 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
3643
3644         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
3645         type check on multi-dimensional arrays. Fixes #79000.
3646
3647 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
3648
3649         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
3650         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
3651         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
3652         * class-internals.h: add is_com_object to class structure.
3653         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
3654         null checks to COM object marshalling. Fix .ctor call on RCW.
3655         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
3656         
3657         All code is contributed under the MIT/X11 license.
3658
3659 2006-08-09  Dick Porter  <dick@ximian.com>
3660
3661         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
3662         racing mono_monitor_allocator_lock() somewhere, so don't delete
3663         the critical section for now.  Found by running and exiting
3664         monodevelop.
3665
3666 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
3667
3668         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
3669         (ves_icall_System_ComObject_FindInterface): Ditto.
3670         (ves_icall_System_ComObject_CacheInterface): Ditto.
3671
3672         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
3673         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
3674
3675 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3676
3677         * threadpool.c: treat pipes from process asynchronous reads as sockets
3678         when reading from them, so we get select/poll or epoll to wait for
3679         data.
3680
3681 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
3682
3683         * loader.c: Fix a typo (CID #233) in the null check.
3684
3685 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
3686
3687         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
3688         Hopefully fixes #78949.
3689         
3690         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
3691         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
3692         bytes. Fixes #78972.
3693
3694 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3695
3696         * filewatcher.c: we need to set errno here.
3697
3698 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3699
3700         * filewatcher.c: let Win32Exception get the error value.
3701
3702 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3703
3704         * filewatcher.c: translate errno into win32 errors for Win32Exception
3705         to know what happened.
3706
3707 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
3708
3709         * threadpool.c: Fix more warnings.
3710
3711         * assembly.c (search_loaded): Fix warnings.
3712
3713         * threadpool.c (mono_thread_pool_finish): Fix warnings.
3714         (mono_async_invoke): Ditto.
3715
3716 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
3717
3718         * object.c (mono_remote_class_vtable): Need to create proxy vtable
3719         entries for __ComObject type in addition to ComImport types.
3720         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
3721         about hash table.
3722         
3723         All code is contributed under the MIT/X11 license.
3724
3725 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
3726
3727         * image.c: avoid tentative loading of modulerefs that contain
3728         no metadata (P/Invoke library names).
3729
3730 2006-07-28  Dick Porter  <dick@ximian.com>
3731
3732         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
3733         mono_loader_lock() somewhere, so don't delete the critical section
3734         for now.  Found by running and exiting monodevelop.
3735
3736 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3737
3738         * filewatcher.c: define the inotify syscalls when we're building on
3739         linux and have sys/syscall.h. The build system might not have support
3740         for inotify but the target system might have it.
3741
3742 2006-07-26  Miguel de Icaza  <miguel@novell.com>
3743
3744         * domain.c: Documentation updates.
3745
3746         * loader.c (mono_free_method): Do not release the method
3747         information if we are being profiled, as profilers will use this
3748         information at shut down to present some data to the user.
3749
3750         This is needed so that the profiler does not crash, as the
3751         profiler tends to keep MonoMethods around, and they might become
3752         invalid if we free these.
3753
3754         (mono_get_method_constrained): Return the original CIL stream
3755         method as well, so verification can be performed against it.
3756
3757 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3758
3759         * filewatcher.[ch]: support for inotify file system watcher.
3760         * icall.c: add new internal calls for the inotify file system watcher.
3761
3762 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3763
3764         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
3765         #78888.
3766
3767 2006-07-20  Dick Porter  <dick@ximian.com>
3768
3769         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
3770         warning.
3771
3772 2006-07-20  Dick Porter  <dick@ximian.com>
3773
3774         * threads.c (start_wrapper): Do the thread cleanup while we still
3775         hold a reference to its object.  Fixes bug 78123.
3776
3777 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
3778
3779         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
3780         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
3781           "managed-to-managed".
3782         * icall.c: Redirect string constructors that take sbyte* to
3783           ves_icall_System_String_ctor_RedirectToCreateString.
3784         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
3785           to CreateString () methods with matching signature.
3786         * reflection.c: Use original security informations for
3787           MONO_WRAPPER_MANAGED_TO_MANAGED.
3788         * security-manager.c: Use original security informations for
3789           MONO_WRAPPER_MANAGED_TO_MANAGED.
3790         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
3791           that is a placeholder and only its address should be used.
3792         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
3793           that is a placeholder and only its address should be used.
3794
3795 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
3796
3797         Begin implementing COM Interop.
3798         * appdomain.c: Increment corlib version.
3799         * class.c: Set ComImport classes' parent to __ComObject.
3800         * loader.c: Mark cominterop methods as such.
3801         * domain.c: Add __ComObject class to MonoDefaults structure.
3802         * image.c: Add 2 hashtables to the image for COM Interop related methods
3803         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
3804         using the mempool allocator
3805         
3806         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
3807         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
3808         declaration for mono_metadata_type_dup_mp.
3809         
3810         * debug-helpers.c: Added strings for two additional wrapper types
3811         * object.c: Create proxy objects for ComImport classes
3812         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
3813         and added __ComObject class to MonoDefaults structure.
3814         
3815         * object-internals.h: Finish MonoRealProxy definition, and add definition of
3816         MonoComInteropProxy and MonoComObject.
3817         
3818         * marshal.c: Added support for COM Interop
3819         (signature_cominterop): Converts managed signature to corresponding
3820         unmanaged COM signature.
3821         (cominterop_get_function_pointer): gets unmanaged function pointer via
3822         COM object vtable
3823         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
3824         (cominterop_get_method_interface): returns interface type that method is defined on
3825         (mono_mb_emit_cominterop_call): emits native call to function pointer
3826         gotten from vtable
3827         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
3828         that matches signature of unmanaged function.
3829         (cominterop_get_native_wrapper): wrapper around adjusted method call.
3830         (cominterop_get_invoke): forwards call from proxy to __ComObject
3831         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
3832         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
3833         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
3834         
3835         * marshal.h: Added Marshal icall declarations.
3836         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
3837         so we can access them in finalizer
3838         
3839 2006-07-14  Dick Porter  <dick@ximian.com>
3840
3841         * object.c (mono_type_initialization_cleanup): Fix a race
3842         condition by temporarily commenting out the critical section
3843         deletion.
3844
3845 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
3846
3847         * reflection.c (create_custom_attr): Fix some warnings.
3848         (create_custom_attr_data): Ditto.
3849         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
3850         types. Fixes #78855.
3851
3852 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
3853
3854         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
3855
3856         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
3857
3858 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
3859
3860         * reflection.c (resolve_object): Add support for DynamicMethod.
3861
3862         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
3863         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
3864
3865 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
3866
3867         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
3868         don't leak GPtrArray's pdata has we have no use (nor free) for it.
3869
3870 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
3871
3872         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
3873         Fixes #77888.
3874
3875 2006-06-30  Raja R Harinath  <rharinath@novell.com>
3876
3877         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
3878         slightly: remove a shadow local variable.
3879
3880 2006-06-29  Raja R Harinath  <rharinath@novell.com>
3881
3882         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
3883         definition that introduces the virtual function slot.
3884         Also fix Coverity #105.
3885
3886 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
3887
3888         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
3889         for dynamic assemblies. Fixes #78724.
3890
3891 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
3892
3893         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
3894         Fixes #78722.
3895
3896 2006-06-21  Martin Baulig  <martin@ximian.com>
3897
3898         * reflection.c
3899         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
3900         fixes #76484.
3901
3902 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
3903
3904         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
3905
3906 2006-06-20  Raja R Harinath  <rharinath@novell.com>
3907
3908         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
3909         nor TYPEREFs.
3910         * class.c (mono_class_create_from_typespec): Add 'context' argument.
3911         Inflate result if necessary.
3912         (mono_class_get_full): Remove old version.  Rename from
3913         'mono_class_get' and add 'context' argument.  Pass it to
3914         ..._create_from_typespec.
3915         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
3916         (mono_ldtoken): Revert change below.
3917
3918 2006-06-20  Martin Baulig  <martin@ximian.com>
3919
3920         * class.c (mono_ldtoken): Don't pass the generic context to
3921         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
3922
3923 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
3924
3925         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
3926         and later freeing it. Fixes #78638.
3927
3928 2006-06-15  Miguel de Icaza  <miguel@novell.com>
3929
3930         * icall.c (mono_class_get_throw): Revert over-zealous error
3931         throwing, the caller for mono_class_get_throw will cope with
3932         errors when classes are not properly initialized already.
3933
3934         The code still copes with loader exceptions though.
3935
3936         Fixes the regression in reftype1 and reftype3 from the CAS tests.
3937         
3938 2006-06-14  Miguel de Icaza  <miguel@novell.com>
3939
3940         Fixes the `make run1' version of RuntimeAbort (to be commited,
3941         source is in Bugzilla).
3942         
3943         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
3944         FALSE on class loading failure instead of returning true.
3945
3946         * class.c (mono_class_create_from_typedef): It is possible for
3947         mono_metadata_interfaces_from_typedef_full to fail if a class is
3948         not found, cope with this.
3949         
3950
3951 2006-06-14  Dick Porter  <dick@ximian.com>
3952
3953         * socket-io.c: 
3954         * process.c: Fix a bunch of signed/unsigned warnings from gcc
3955         4.1.1
3956
3957 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
3958
3959         * culture-info-table.h : oops, forgot to make it nsync with r61548.
3960
3961 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
3962
3963         * icall.c: Another fix for building mono in Visual Studio.
3964
3965 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
3966
3967         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
3968         
3969 2006-06-09  Martin Baulig  <martin@ximian.com>
3970
3971         * debug-mono-symfile.c: Put this back and really fix it this
3972         time. Sorry for all the trouble.
3973
3974 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
3975
3976         * icall.c (mono_class_get_throw): Fix a warning.
3977         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
3978         ReflectionTypeLoadException if needed. Fixes #78606.
3979
3980         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
3981         (mono_class_init): Ditto.
3982
3983         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
3984         ref_only exceptions.
3985         (mono_loader_clear_error): Make this work even if there is no error.
3986
3987 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
3988
3989         * object-internals.h marshal.c marshal.h icall.c: Implement method 
3990         Marshal.GetComSlotForMethodInfo using internal call.
3991
3992 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
3993
3994         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
3995         a function for signalling it.
3996
3997         * class.c (mono_class_from_typeref): Use the new kind of loader error when
3998         a referenced assembly is not found.
3999
4000         * loader.c (mono_loader_error_prepare_exception): Add support for 
4001         LOADER_ERROR_ASSEMBLY. Fix formatting.
4002
4003 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
4004
4005         * domain.c appdomain.c class-internals.h marshal.c: Add support 
4006         for VARIANT marshalling on windows and increment corlib version
4007         since Variant struct was added.
4008
4009 2006-06-03  Miguel de Icaza  <miguel@novell.com>
4010
4011         * debug-mono-symfile.c: Revert Martin's previous patch which broke
4012         stack trace line information:
4013
4014         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
4015         (Martin) when looking up B which is between A and C, return A not C.
4016
4017         Bug is #78573.
4018
4019         Thanks to Alexander Olk for tracking this down.
4020
4021 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
4022
4023         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
4024         
4025         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
4026         avoid clobbering its value.
4027         (mono_string_to_lpstr): Fix a warning on windows.
4028
4029 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
4030
4031         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
4032
4033         * reflection.c loader.c: Removed references to 'dummy' flag.
4034
4035         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
4036
4037         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
4038         it gets GC tracking.
4039
4040         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
4041         GC tracking.
4042         
4043         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
4044
4045         * marshal.c threadpool.c: Update callers of mono_async_result_new.
4046
4047         * appdomain.c: Bump corlib version.
4048
4049 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
4050
4051         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
4052         CEE_STIND_REF when working with object references.
4053
4054 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
4055
4056         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
4057         Fixes #78539.
4058
4059 2006-05-30  Miguel de Icaza  <miguel@novell.com>
4060
4061         * loader.c (method_from_memberref): Fix argument value for
4062         mono_loader_set_error_method_load (I was passing the MonoClass
4063         instead of the class name char *).
4064
4065 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
4066
4067         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
4068         CEE_STIND_REF when working with object references.
4069
4070 2006-05-30  Martin Baulig  <martin@ximian.com>
4071
4072         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
4073         mono_method_full_name() change and replace the ':' with a '.'
4074         here.
4075
4076 2006-05-30  Martin Baulig  <martin@ximian.com>
4077
4078         * debug-mono-symfile.c
4079         (mono_debug_symfile_lookup_location): Fix the algorithm:
4080         when looking up B which is between A and C, return A not C.
4081
4082 2006-05-29  Martin Baulig  <martin@ximian.com>
4083
4084         * mono-debug.h
4085         (MonoDebugMethodInfo): Make the typedef public.
4086         (MonoDebugSourceLocation): New public struct.
4087
4088         * mono-debug.c
4089         (mono_debug_source_location_from_address): Removed.
4090         (mono_debug_source_location_from_il_offset): Removed.
4091         (mono_debug_il_offset_from_address): Removed.
4092         (mono_debug_address_from_il_offset): Removed.
4093         (mono_debug_lookup_method): New public function.
4094         (mono_debug_lookup_source_location): New public function; replaces
4095         the old mono_debug_source_location_from_*() functions; see the
4096         inline documentation.
4097         (mono_debug_free_source_location): New public function.
4098         (mono_debug_print_stack_frame): New public function; see the
4099         inline documentation.
4100
4101         * debug-mono-symfile.c
4102         (mono_debug_find_source_location): Renamed into
4103         mono_debug_symfile_lookup_location(); only take a
4104         `MonoDebugMethodInfo *' and an `offset' argument; added inline
4105         documentation.
4106         (mono_debug_find_method): Renamed into
4107         mono_debug_symfile_lookup_method().
4108
4109 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
4110
4111         * assembly.c (mono_assembly_open_full): Dont overwrite the status
4112         returned by mono_image_open_full ().
4113
4114         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
4115         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
4116         #78517.
4117
4118         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
4119         #78518.
4120
4121 2006-05-27  Miguel de Icaza  <miguel@novell.com>
4122
4123         * class.c (mono_class_from_typeref): handle missing images
4124         earlier, deals with bug #78418.   Refactor code; 
4125
4126         Fix a warning introduced in my previous commit (some stale code
4127         from before I revisited my patch).
4128
4129         * class.c (mono_class_create_from_typedef): On failure, remove the
4130         class from the MonoImage->class_cache as the class is not
4131         initialized;   Fixes the leak pointed out by Paolo.
4132
4133 2006-05-25  Dick Porter  <dick@ximian.com>
4134
4135         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
4136         DeleteCriticalSections until I figure out which one may still be
4137         sometimes locked when mono_thread_cleanup is called.
4138
4139 2006-05-24  Dick Porter  <dick@ximian.com>
4140
4141         * threads.c (mono_thread_cleanup): Move the threading cleanup out
4142         of mono_thread_manage and back into its own function, so it can be
4143         called after the finalizer thread has finished.
4144
4145         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
4146
4147 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
4148
4149         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
4150         Fixes #78495.
4151
4152         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
4153         with non-blittable elements.
4154         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
4155
4156 2006-05-24  Martin Baulig  <martin@ximian.com>
4157
4158         * mono-debug-debugger.h (MonoDebuggerEvent): Added
4159         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
4160
4161         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
4162         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
4163         `mono_debugger_event_handler' to NULL.
4164
4165 2006-05-24  Martin Baulig  <martin@ximian.com>
4166
4167         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
4168
4169 2006-05-24  Martin Baulig  <martin@ximian.com>
4170
4171         * mono-debug-debugger.h
4172         (mono_debugger_create_notification_function): Added
4173         `MonoCodeManager *' argument.
4174
4175 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
4176
4177         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
4178
4179 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
4180
4181         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
4182         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
4183         implementation.
4184
4185 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
4186
4187         * icall.c: precise GC support: objects can't be stored in unmanaged
4188         memory anymore, even if they are kept alive by other references: since
4189         they can move the GC needs to be able to always find them.
4190
4191 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
4192
4193         * object.c: precise GC support for static fields. Support
4194         for moving GCs: write barriers and pinned allocation for interned
4195         strings.
4196
4197 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
4198
4199         * domain.c, domain-internals.h: precise GC support for the MonoDomain
4200         structure.
4201
4202 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
4203
4204         * class.c, gc.c: sgen and precise GC updates.
4205
4206 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
4207
4208         * marshal.h, marshal.c: added write barrier wrapper and precise type
4209         fixes.
4210
4211 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
4212
4213         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
4214         support.
4215
4216 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
4217
4218         * reflection.c: precise and sgen GC updates.
4219
4220 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
4221
4222         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
4223
4224 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
4225
4226         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
4227
4228 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
4229
4230         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
4231         MONO_TYPE_OBJECT. Fixes #78462.
4232
4233 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
4234
4235         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
4236         and blittable types.
4237
4238 2006-05-17  Miguel de Icaza  <miguel@novell.com>
4239
4240         * class.c (mono_class_get_exception_for_failure): Implement parts
4241         of a TODO: if the loader error is set (instead of the class
4242         error), we return a Loader exception that can be properly thrown
4243         elsewhere.
4244
4245         This was exposed by some Winforms 2.0 code that I tried to run
4246         (Atsushi pointed me to it).
4247
4248 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
4249
4250         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
4251         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
4252         
4253         * marshal.c (emit_marshal_vtype): Add limited support for 
4254         UnmanagedType.LPStruct. Fixes #78427.
4255
4256         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
4257         Applied a patch from kangaroo to fix #77523.
4258
4259 2006-05-17  Martin Baulig  <martin@ximian.com>
4260
4261         * threads.c
4262         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
4263         (debugger_thread_created): Removed.
4264         (debugger_thread_exited): Removed.
4265
4266 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
4267
4268         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4269
4270         * object-internals.h (MonoReflectionResource): Sync with managed version.
4271
4272 2006-05-12  Wade Berrier <wberrier@novell.com>
4273
4274         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
4275
4276 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
4277
4278         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
4279         functions try to allocate from the image mempool.
4280
4281 2006-05-12  Dick Porter  <dick@ximian.com>
4282
4283         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
4284
4285 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
4286
4287         * object.c: The FieldGetter and FieldSetter methods require the full
4288         name of the class, not only the name. Fixes bug #78277.
4289
4290 2006-05-11  Miguel de Icaza  <miguel@novell.com>
4291
4292         * loader.c (method_from_memberref): Do not pass the NULL klass to
4293         mono_loader_set_error_() methods.  Pass the non-NULL value
4294         (class). 
4295
4296 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
4297
4298         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
4299         (mono_assembly_close): Null out assembly->image->references after freeing it.
4300
4301         * image.c (mono_image_close): Free image->references.
4302         
4303         * reflection.c (mono_image_basic_init): Fix a small memory leak.
4304
4305 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
4306
4307         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
4308         before checking if it's NULL (g_assert).
4309
4310 2006-05-10  Martin Baulig  <martin@ximian.com>
4311
4312         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
4313         I thought I already killed that two months ago, but now it somehow reappeared.
4314
4315 2006-05-10  Martin Baulig  <martin@ximian.com>
4316
4317         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
4318
4319 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
4320
4321         * reflection.c: Allocate memory for dynamically created methods in the image
4322         mempools.
4323
4324 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
4325
4326         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
4327         don't use the ad pointer before checking if it's NULL (g_assert).
4328
4329 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
4330
4331         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
4332         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
4333
4334         * marshal.c: Allocate all signatures from mempools.
4335
4336         * marshal.c: Allocate some more signatures from mempools.
4337
4338 2006-05-09  Miguel de Icaza  <miguel@novell.com>
4339
4340         * object.c (mono_load_remote_field): The code used to provide a
4341         temporary variable for returning results if the user did not
4342         provide a result pointer.  But our temporary variable was allocted
4343         on the satck.
4344
4345         Fix calling code to always pass a result area.   Coverity ID 103.
4346
4347 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
4348
4349         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
4350         value, not the old. Fixes #78312.
4351         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
4352
4353         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
4354         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
4355         per-image cache.
4356
4357         * assembly.c (mono_assembly_close): Free image->references.
4358
4359         * assembly.c (mono_assembly_names_equal): Fix a warning.
4360         (mono_assemblies_cleanup): Cleanup more global data.
4361
4362         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
4363
4364         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
4365         ptr_cache and image->modules.
4366
4367         * image.c (mono_image_init): Allocate array_cache lazily.
4368         
4369 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4370
4371         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
4372         behavior was changed recently and has bad side effects.
4373
4374 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
4375
4376         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
4377         
4378         * assembly.c (mono_assembly_close): Remove a debug printf.
4379
4380         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
4381
4382         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
4383         to also allow for temporary references between mono_image_open ()/close ().
4384
4385         * domain.c (get_runtimes_from_exe): Add a FIXME.        
4386
4387 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
4388
4389         * marshal.c: Fix support for dynamic methods.
4390
4391         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
4392
4393         * marshal.c (mono_marshal_cleanup): New cleanup function.
4394
4395         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
4396         image mempools.
4397
4398         * class.c (mono_class_init): Fix leaking class->nested_classes.
4399
4400         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
4401
4402         * image.c (mono_image_init): Initialize the new cashes.
4403
4404         * image.c (mono_image_close): Destroy the new cashes.
4405
4406         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
4407
4408         * mempool.c (mono_mempool_strdup): New helper function.
4409
4410         * class-internals.h: Add prototype for mono_loader_unlock ().
4411
4412         * domain.c (mono_jit_info_table_find): Fix a warning.
4413         (mono_debugger_check_runtime_version): Ditto.
4414
4415         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
4416         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
4417         functions to these modules.
4418
4419         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
4420         metadata modules.
4421         
4422         * marshal.c (mono_free_bstr): Fix a warning.
4423
4424         * assembly.c (mono_assembly_open_full): Fix another small leak.
4425
4426         * object.c: Fix some unload leaks in the remoting code.
4427
4428         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
4429         function.
4430
4431         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
4432
4433         * reflection.c: Fix some unload leaks in dynamic assemblies.
4434
4435 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
4436
4437         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
4438         * marshal.h: Add BSTR support on Win32
4439         * icall.c: Add BSTR icalls
4440         * metadata.h: Add BSTR enums
4441
4442 2006-04-28  Miguel de Icaza  <miguel@novell.com>
4443
4444         Work to catch the crash from #76795 and turn it into an
4445         exception.   As I stubbed out pieces of the VisualBasic support,
4446         I found a number of places where the code was failing and I added
4447         checks to those places. 
4448         
4449         * metadata.c (do_mono_metadata_parse_generic_class): Make this
4450         function return a status code.  If we fail to parse the signature
4451         from mono_metadata_parse_generic_inst, return FALSE.
4452
4453         * loader.c (mono_get_method_from_token): If we fail to load the
4454         method (mono_class_get) return NULL.   
4455
4456         * (method_from_memberref): Return NULL if we are unable to parse
4457         the method signature
4458
4459         (mono_loader_error_prepare_exception): Since we now use the
4460         loader_error flag internally to stop processing, and obtaining
4461         exceptions that might be thrown will walk this code path the
4462         proper way of going from a MonoLoaderError into a
4463         MonoException was convoluted.   This new routine encapsulates the
4464         process of turning the error into an exception and *clearing* the
4465         error afterwards.
4466         
4467 2006-04-27  Miguel de Icaza  <miguel@novell.com>
4468
4469         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
4470         with missing assemblies), and to cope with:
4471
4472                 * Missing fieldref from a non-existing assembly.
4473                 * Missing methodref from a non-existing assembly.
4474
4475         The first batch of work to address *some* of the issues from 76661.
4476         
4477         * object.c (mono_class_create_runtime_vtable): If we fail to
4478         initialize the class raise the exception here. 
4479
4480         * metadata.c (mono_class_get_overrides_full): If any methods fail
4481         to load return the failure to the caller.
4482
4483         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
4484         flagging assemblies that failed to load.   
4485
4486         Do not crash if we are unable to load the assembly.
4487
4488         (mono_assembly_close): Do nothing with REFERENCE_MISSING
4489         assemblies. 
4490
4491         * loader.c (mono_loader_set_error_type_load): Change the
4492         convention to always pass unallocated strings, so we make our own
4493         copies (I know our own code had duplicated strings before, but
4494         this keeps the normal conventions).
4495         (method_from_memberref): Call mono_loader_set_error_method_load
4496         for all possible failures of loading the class. 
4497         Remove assert, turn into a loader error.
4498
4499         (mono_loader_error_to_exception): Move this routine from mini
4500         (mini_loader_error_to_exception) there was no need to have that in
4501         mini. 
4502
4503         * class.c (mono_class_from_typeref): If we were not able to load
4504         the assembly with mono_assembly_load_reference, call the
4505         mono_loader_set_error_type_load to register the problem.
4506
4507         (mono_class_setup_fields): If we fail to load the type from
4508         mono_metadata_parse_type_full, call mono_class_set_failure and
4509         break from the loop.
4510
4511         If class->exception_type is set, we do not layout the fields as
4512         that might crash the runtime, and instead return (from breaking
4513         from the previous loop).
4514
4515         (mono_class_setup_vtable): This now returns a boolean indicating
4516         whether the table was properly setup.   The decision is driven by
4517         mono_class_get_overrides_full which might run into non-existing
4518         methods. 
4519         
4520         (mono_class_init): Returns TRUE on success or FALSE if there was a
4521         problem in loading the type (incorrect assemblies, missing
4522         assemblies, methods, etc).
4523
4524         When we call mono_class_setup_fields we also check for a potential
4525         error inside this call (either a class exception or a general
4526         loader exception).
4527
4528         (mono_class_create_from_typedef): If the parent fails to load
4529         (calling mono_class_get_full) return NULL.
4530         
4531         ** Important **
4532
4533         calls to mono_metadata_parse_type_full should be checked
4534         everywhere and set the mono_class_set_failure
4535         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
4536
4537         The current patch checks the places where my manually constructed
4538         tests show the errors are showing up, but we should do it
4539         everywhere. 
4540
4541         ** Important2 **
4542
4543         mono_class_init return values should be tested everywhere, like
4544         the previous case this is something that we should audit
4545         everywhere and not only on the cases exposed by the tests I
4546         created. 
4547
4548 2006-04-26  Miguel de Icaza  <miguel@novell.com>
4549
4550         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
4551         boolean parameter and instead pass the information on `options'
4552         parameter (FileOptions).
4553
4554         * icall.c: Register the new signature for MonoIO.Open.
4555
4556         * debug-helpers.c (dis_one): Trying to understand how coverity
4557         works.  Fix Run 5, item 78.
4558
4559 2006-04-26  Dick Porter  <dick@ximian.com>
4560
4561         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
4562         dereference.
4563
4564 2006-04-25  Martin Baulig  <martin@ximian.com>
4565
4566         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
4567
4568         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
4569         debugger_thread_created().
4570         (debugger_gc_push_all_stacks): Don't handle the main thread in any
4571         special way.
4572         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
4573         (mono_debugger_finalize_threads): New function; undo the effects
4574         of mono_debugger_init_threads().
4575         (mono_debugger_create_all_threads): Removed.
4576
4577 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
4578
4579         * image.c (mono_image_close): Tidy up trace messages.
4580
4581         * assembly.c (mono_assembly_close): Ditto.
4582
4583         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
4584         no longer references an already freed assembly. Fixes #78168.
4585
4586 2006-04-21  Dick Porter  <dick@ximian.com>
4587
4588         * threads.c (mono_thread_detach): Fix reference counting when
4589         detaching threads.
4590
4591 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
4592
4593         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
4594         #78155.
4595
4596 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
4597
4598         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
4599         (mono_type_to_stind): Ditto.
4600
4601         * marshal.c: Use the new helper functions to simplify code.
4602
4603         * image.c (mono_image_close): Add some code for help debug assembly unloading
4604         problems.
4605
4606         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
4607         image mempool.
4608
4609         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
4610         assembly was already loaded in another appdomain. Fixes #78083.
4611
4612 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
4613
4614         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
4615         referenced assemblies.
4616         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
4617
4618         * domain.c (mono_domain_free): Add a trace message.
4619
4620         * appdomain.c (add_assemblies_to_domain): Ditto.        
4621
4622         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
4623         field.  
4624
4625 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
4626
4627         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
4628
4629 2006-04-12  Martin Baulig  <martin@ximian.com>
4630
4631         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
4632         `USE_INCLUDED_LIBGC'.   
4633
4634 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
4635
4636         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
4637         the patch contains ../ and a small directory name later. Hopefully fixes
4638         #78035.
4639
4640 2006-04-10  Martin Baulig  <martin@ximian.com>
4641
4642         Clean up the debugger's thread-handling code.
4643
4644         The debugger's thread-handling code has been moved from
4645         ../mini/debug-debugger.c to threads.c.  We now iterate directly
4646         over the `threads' hash, keep track of exiting threads and also
4647         use proper locking.
4648
4649         We can now debug XSP and XSP based applications with the debugger.
4650
4651         * object-internals.h (MonoThread): Added `gpointer end_stack'.
4652
4653         * threads.h
4654         (MonoThreadCallbacks): Removed; this was only used by the debugger.
4655         (mono_install_thread_callbacks): Likewise.      
4656
4657         * threads.c (mono_thread_callbacks): Removed.
4658         (debugger_thread_created, debugger_thread_exited): New static functions.
4659         (start_wrapper): Call debugger_thread_created().
4660         (thread_cleanup): Call debugger_thread_exited().
4661         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
4662         (mono_debugger_init_threads): New public function.
4663         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
4664         iterate directly over the `threads' hash and also use proper locking.
4665
4666         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
4667
4668         * mono-debug-debugger.h
4669         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
4670
4671 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
4672
4673         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
4674         argument type=array. Fixes #78057.
4675
4676 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
4677
4678         * culture-info-table.h : regenerated. Fixed bug #69652.
4679
4680 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
4681
4682         * loader.c metadata.c: Reapply a variant r59116.
4683         
4684         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
4685
4686         * class.c (mono_class_setup_interface_offsets): New internal function.
4687
4688         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
4689         interfaces too. Fixes #77398.
4690
4691         * reflection.c (encode_cattr_value): Add support for 
4692         parameter type=object, argument type=array.
4693         (load_cattr_value): Ditto. Fixes #77916.
4694
4695         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
4696         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
4697
4698         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
4699         a byval char array and CharSet is Ansi.
4700
4701         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
4702
4703 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
4704
4705         * metadata.c: Add some locking comments.
4706         
4707         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
4708         mempool.
4709         (mono_metadata_free_method_signature): Don't free the signature itself.
4710
4711         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
4712
4713         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
4714         reference the same MonoImage.
4715         (mono_assembly_load_from_full): Add an assert.
4716
4717 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
4718
4719         * image.c (mono_image_close): Don't put the image we are about to free into the
4720         loaded_images_guid_hash.
4721
4722         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
4723         to reduce code duplication.
4724
4725         * marshal.c: Register the native functions called by this module as icalls, to
4726         somewhat centralize the creation of MonoMethodSignature's.
4727
4728         * loader.c (mono_method_signature): Add a cache for method signatures.
4729
4730         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
4731         the parameter attributes of a method.
4732         (mono_metadata_parse_method_signature_full): Refactored the computation of
4733         parameter attributes into a separate function. Also avoid one allocation in
4734         most cases.
4735
4736         * assembly.c (mono_assembly_close): Ditto.
4737
4738         * image.c (mono_image_close): Log trace messages with INFO level.
4739
4740         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
4741
4742         * image.c reflection.c: Correct reference counting of image modules.
4743         
4744         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
4745         of this function from the image mempool.
4746         
4747         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
4748         to allow more cached types to be used.
4749
4750         * mono-debug.c (mono_debug_add_method): Appled patch from
4751         David S. Miller  <davem@sunset.davemloft.net>: Access 
4752         minfo->lexical_blocks[] entry elements using read32().
4753
4754 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
4755
4756         * loader.c (mono_free_method): No longer free the method header for non-dynamic
4757         methods as it is allocated from the mempool.
4758
4759         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
4760         image mempool.
4761
4762         * metadata-internals.h: Add comments describing the reference counting scheme
4763         used for MonoImage and MonoAssembly.
4764
4765         * image.c assembly.c reflection.c: Rework reference counting of images and 
4766         assemblies so they are freed when the runtime is shut down. Free some 
4767         additional memory structures when an image is unloaded.
4768         
4769 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
4770
4771         * class.c loader.c reflection.c: Allocate more data structures in
4772         the image mempool.
4773
4774 2006-03-31  Miguel de Icaza  <miguel@novell.com>
4775
4776         * icall.c
4777         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
4778         build on pre glib 2.4 systems.
4779
4780 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
4781
4782         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
4783
4784         * icall.c: Fix some warnings.
4785
4786 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
4787
4788         * culture-info-table.h : regenerated.
4789
4790 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
4791
4792         * threads.c, object-internals.h, verify.c: changed the culture caching
4793         code to use a normal MonoArray for storage so the GC can keep track of
4794         them easily. Fixed bits of the cache logic, too and simplified the
4795         code.
4796
4797 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
4798
4799         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
4800         thread for non-Boehm GCs.
4801
4802 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
4803
4804         * domain.c, object.c, domain-internals.h: reduce the amount of memory
4805         needed to keep track of the data for static fields.
4806
4807 2006-03-29  Raja R Harinath  <rharinath@novell.com>
4808
4809         Fix #75172
4810         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
4811         for interface classes.  Use 'num_methods' instead.
4812         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
4813         before using '->vtable_size' field.
4814
4815 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
4816
4817         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
4818         doesn't contain managed pointers, so use a normal hashtable.
4819
4820 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
4821
4822         * reflection.c, class-internals.h, domain.c: fixed handling of types
4823         used as values for objects in custom attributes (bug #77915):
4824
4825 2006-03-24  Martin Baulig  <martin@ximian.com>
4826
4827         * class.c (mono_class_setup_fields): Added support for generic
4828         instances; fixes #77580.
4829
4830 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4831
4832         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
4833
4834 2006-03-24  Dick Porter  <dick@ximian.com>
4835
4836         * file-io.c (get_file_attributes): More stat macro breakage.
4837         Fixes bug 77759.
4838
4839 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
4840
4841         * profiler.c: added the file=filename option in the default profiler
4842         to output the profile data to filename.
4843
4844 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4845
4846         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
4847         bug #77877.
4848
4849 2006-03-22  Martin Baulig  <martin@ximian.com>
4850
4851         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
4852         allocated `MonoClassField *' in `fb->handle'.
4853
4854 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
4855
4856         * class.c, image.c, metadata-internals.h: implemented new mechanism to
4857         allocate interface ID to save memory and allow better ID reuse on
4858         appdomain unload. setup_generic_vtable () removal from Martin.
4859
4860 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
4861
4862         * object.h, appdomain.c, domain.c, exception.c, icall.c,
4863         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
4864         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
4865         write barriers for reference stores with managed objects accessed with
4866         C structures in the runtime and in embedding programs.
4867
4868 2006-03-20  Raja R Harinath  <rharinath@novell.com>
4869
4870         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
4871         'interface_id' and 'max_interface_id' fields of MonoClasses
4872         representing open generic types.
4873
4874 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
4875
4876         * object.h, object.c, icall.c: added functions to deal with
4877         storing valuetypes that contain references in managed objects.
4878         * reflection.c, string-icalls.c, threads.c, marshal.c: small
4879         fixes and comments around uses of mono_array_addr ().
4880
4881 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
4882
4883         * object.h, icall.c, monitor.c: object.GetHashCode ()
4884         implementation that supports the moving garbage collector.
4885
4886 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
4887
4888         * icall.c, threads-types.h, threads.c: implemented finalizer for
4889         LocalDataStoreSlot.
4890
4891 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
4892
4893         * metadata.c (mono_type_size): Add a fixme.
4894         (mono_type_stack_size): Ditto.
4895
4896         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
4897         'type_forwarders' field.
4898
4899         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
4900         attribute from net 2.0.
4901
4902         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
4903         from class.c.
4904
4905         * class.c (mono_class_setup_fields): Fix a warning.
4906         
4907         * class.c (mono_class_from_name): Add support for assemblyref entries
4908         in the EXPORTEDTYPE table.
4909
4910         * reflection.c: Add support for handling type forwarders under net 2.0.
4911
4912         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
4913         
4914 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
4915
4916         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
4917         overwriting entries in ModuleBuild->types, also clean up the code
4918         a little. Fixes #77774.
4919
4920 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
4921
4922         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
4923         load friend assembly info when present.
4924
4925 2006-03-14  Raja R Harinath  <rharinath@novell.com>
4926
4927         Fix crasher on gtest-158.cs.
4928         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
4929         the return value if the MonoClass we want is yet in an
4930         inconsistent state.
4931         * class.c (mono_class_create_from_typedef): Add an comment
4932         explaining an order dependency between mono_class_setup_parent and
4933         mono_class_setup_mono_type.
4934
4935 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
4936
4937         * class.c: documentation updates and events bug fix.
4938
4939 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
4940
4941         * class.c: some cleanup, locking fixes.
4942
4943 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
4944
4945         * class.c: fix the generics code to setup nested
4946         type info to the instantiated type (bug #77770).
4947
4948 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
4949
4950         * marshal.c: fixed a few type correctness issues.
4951
4952 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
4953
4954         * loader.c: the Set/Get/Addrtess array methods should be public.
4955
4956 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
4957
4958         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
4959         
4960         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
4961         info->wrapper.
4962
4963 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
4964
4965         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
4966
4967         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
4968
4969         * mempool.c (mono_mempool_alloc): Speed this up a bit.
4970         (mono_mempool_alloc0): Ditto.
4971
4972 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4973
4974         * socket-io.c:
4975         (create_object_from_sockaddr): it was allocating 4 extra bytes
4976         for the AF_UNIX data. Fixes bug #77747.
4977
4978 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
4979
4980         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
4981
4982 2006-03-09  Dick Porter  <dick@ximian.com>
4983
4984         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
4985         Fixes bug 76966 again.
4986
4987 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
4988
4989         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
4990         names from r57532
4991         * appdomain.c: Bumped corlib version to 48 (due to r57532)
4992
4993 2006-03-07  Martin Baulig  <martin@ximian.com>
4994
4995         * object.c
4996         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
4997
4998 2006-03-07  Martin Baulig  <martin@ximian.com>
4999
5000         * class.c
5001         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
5002         regression introduced in r56970; see gtest-252.cs.
5003
5004         * loader.c (mono_get_method_constrained): Correctly handle generic
5005         methods; see gtest-253.cs.
5006
5007 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
5008
5009         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
5010
5011 2006-03-04  Martin Baulig  <martin@ximian.com>
5012
5013         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
5014         compute the parent type at runtime, just like we're already doing
5015         it for interfaces.
5016
5017         * reflection.c
5018         (mono_reflection_bind_generic_parameters): Don't compute the
5019         parent type anymore.
5020
5021         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
5022
5023 2006-03-04  Martin Baulig  <martin@ximian.com>
5024
5025         * mono-debug-debugger.h
5026         (mono_debugger_create_notification_function): Allocate memory at
5027         runtime and return a pointer to it.
5028
5029 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
5030
5031         * assembly.c: Fix windows build.
5032         
5033         * assembly.c: Fix build.
5034
5035         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
5036
5037         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
5038         
5039 2006-03-03  Dick Porter  <dick@ximian.com>
5040
5041         * process.c
5042         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
5043         Check parameters before dereferencing them.  Fixes Aaron's part of
5044         bug 77393.
5045
5046 2006-03-03  Raja R Harinath  <rharinath@novell.com>
5047
5048         Fix performance regression.
5049         * loader.c (find_method_in_class): Add 'from_class' argument.
5050         Rename 'klass' argument to 'in_class'.  The signature is compared
5051         against the method in 'in_class', and the corresponding method is
5052         returned from 'from_class'.
5053         (find_method): Walk both 'in_class' and 'from_class' in parallel.
5054         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
5055         type definition and generic instantiation in parallel.
5056         (mono_get_method_constrained): Update to changes.
5057
5058 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
5059
5060         * threads.c: make sure the domain is correct, too when doing
5061         mono_thread_attach ().
5062
5063 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
5064
5065         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
5066         windows. Fixes #77683.
5067
5068 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
5069
5070         * object.h, *: introduced specific way to set elements of an array
5071         of references to be used as write barrier. Still need to audit the
5072         uses of mono_array_addr.
5073
5074 2006-03-01  Miguel de Icaza  <miguel@novell.com>
5075
5076         * object-internals.h: New field to cache the assmebly name, patch
5077         from Tambet Ingo (tambet@ximian.com)
5078
5079 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
5080
5081         * decimal.h, class-internals.h, metadata-internals.h,
5082         file-io.h: mark a few function declarations as internal, to
5083         reduce the number of PLT entries.
5084
5085 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5086
5087         * file-io.c: fix typo in warning message.
5088
5089 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
5090
5091         * loader.c: on unix, lookup the "*A" version of a function
5092         if charset is auto as a second option before failing.
5093
5094 2006-02-28  Raja R Harinath  <rharinath@novell.com>
5095
5096         * class.h (mono_class_inflate_generic_method): Revert to two
5097         argument version.
5098         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
5099         (mono_class_inflate_generic_method_full): Add.
5100         * class.c (mono_class_inflate_generic_method_full): Rename from
5101         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
5102         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
5103         * loader.c, reflection.c: Update to changes.
5104
5105 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
5106
5107         * icall.c: const fixes and small improvements.
5108
5109 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5110
5111         * threadpool.c: for asynchronous connect(), enable the same workaround
5112         for BSD 6 as for the Mac. Fixes bug #77637.
5113
5114 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
5115
5116         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
5117         formatted classes. Fixes #77524.
5118
5119 2006-02-24  Raja R Harinath  <rharinath@novell.com>
5120
5121         * class.c (inflate_generic_type): Add a couple more
5122         micro-optimizations.
5123         (inflate_generic_context): Don't use the 'gmethod' from
5124         'inflate_with'.
5125         (mono_class_inflate_generic_method): If the method has generic
5126         parameters, but the passed-in context doesn't have a 'gmethod',
5127         create one.  Use the possibly simplified generic instantiation
5128         from the declaring class instead of the one passed in.
5129
5130 2006-02-24  Raja R Harinath  <harinath@gmail.com>
5131
5132         Make generic method signature and method header handling lazy.
5133         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
5134         (inflate_generic_header): Likewise.
5135         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
5136         parameter to avoid inflating types.
5137         (mono_get_inflated_method): Empty out.
5138         * class.h (mono_class_inflate_generic_method): Update to changes.
5139         * loader.c (mono_get_method_from_token): Don't parse signature for
5140         generic methods, nor methods of generic classes.
5141         (mono_method_signature): Rename from 'mono_method_signature'.
5142         Inflate signature on demand.
5143         (mono_method_get_header): Inflate method header on demand.
5144         * reflection.c: Update to changes.
5145
5146 2006-02-23  Raja R Harinath  <rharinath@novell.com>
5147
5148         * metadata.c (mono_metadata_inflate_generic_inst): If the
5149         instantiation is closed, don't bother expanding it in the new
5150         context.
5151         * class.c (inflate_generic_class): If the generic instantiation
5152         doesn't change after inflation, return the argument itself.
5153         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
5154         Add bounds checks.
5155         (inflate_generic_context): If neither the generic class nor the
5156         generic method instantiations change, return the original context.
5157         * reflection.c (mono_method_get_object): Do
5158         'mono_get_inflated_method' before accessing the ->klass field.
5159         (inflate_mono_method): Don't create a MonoGenericMethod unless
5160         necessary.
5161         (inflate_method): Don't pass a constructed type as the declaring
5162         type of a methodbuilder.
5163
5164 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
5165
5166         * object.c: fix memory overwrite.
5167
5168 2006-02-22  Dick Porter  <dick@ximian.com>
5169
5170         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
5171         it doesn't work any more.
5172         (mono_threads_request_thread_dump): Fix unused variable warnings.
5173
5174 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
5175
5176         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
5177         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
5178         the public header file.
5179
5180 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
5181
5182         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
5183
5184 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
5185
5186         * class-internals.h, object.c: reduce the size of MonoVTable
5187         and store the interface_offsets array at negative offsets.
5188
5189 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
5190
5191         * metadata.c: tweak table descriptors data structures to reduce
5192         size and runtime relocations.
5193
5194 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
5195
5196         * marshal.c: fix some types and opcodes to be type-safe
5197         in marshaling wrappers.
5198
5199 2006-02-21  Ankit Jain  <jankit@novell.com>
5200
5201         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
5202
5203 2006-02-21  Raja R Harinath  <rharinath@novell.com>
5204
5205         * metadata.c (get_constraints): Relax debugging checks for monodis.
5206
5207 2006-02-21  Ankit Jain  <jankit@novell.com>
5208
5209         * metadata.c (mono_metadata_load_generic_params): Move the code
5210         checking for ambiguous generic params from here to mono/dis/get.c
5211         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
5212
5213 2006-02-21  Raja R Harinath  <harinath@gmail.com>
5214
5215         Fix assertion triggered when compiling nemerle.
5216         * class.c (mono_get_shared_generic_inst): Rename from
5217         get_shared_inst and make non-static.
5218         * loader.c (mono_get_shared_generic_method): New.  Used to create
5219         the MonoGenericContext-equivalent of a MonoGenericContainer.
5220         (mono_get_method_from_token): Initialize the 'context' field of
5221         the created MonoGenericContainer.
5222         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
5223         * metadata.c (get_constraints): Add sanity check.
5224         * class-internals.h: Add new internal methods.
5225
5226         * reflection.c (verify_safe_for_managed_space): New sanity check.
5227         Currently checks that owner-less generic parameters aren't allowed
5228         in managed space.
5229         (mono_type_get_object): Use it.
5230         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
5231         that are now in mono_type_get_object.
5232         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
5233
5234 2006-02-19  Raja R Harinath  <harinath@gmail.com>
5235
5236         * metadata.c (mono_type_create_from_typespec): Rename from
5237         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
5238         argument and caching of types in the generic container.
5239         (unwrap_arrays, find_generic_param): Remove.
5240         * metadata-internals.h: Update.
5241         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
5242
5243 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
5244
5245         * class.c (mono_class_get_exception_for_failure): Fix a warning.
5246
5247         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
5248         return values. Fixes #77581.
5249
5250         * class.c (mono_fnptr_class_get): Switch name and name_space.
5251
5252         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
5253         classes and add support for [In, Out] attributes.
5254         (mono_marshal_free_asany): Ditto. Fixes #77524.
5255
5256 2006-02-18  Raja R Harinath  <harinath@gmail.com>
5257
5258         * class.c (mono_class_from_generic_parameter): Make more robust to
5259         incomplete MonoGenericContainers from monodis.
5260
5261 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
5262
5263         * class-internals.h: added some more exception types.
5264         * class.c, metadata.c: added a few checks to handle missing
5265         types.
5266
5267 2006-02-17  Raja R Harinath  <rharinath@novell.com>
5268
5269         Use owner-less generic-params some more.
5270         * class.c (my_mono_class_from_generic_parameter): Remove.
5271         (mono_class_from_generic_parameter): Handle null image,
5272         param->name and param->owner.
5273         (mono_class_from_mono_type): Update.
5274         (mono_class_create_from_typespec): Remove 'container' parameter.
5275         If that parameter is non-null, the result is always inflated by
5276         'mono_class_get_full' anyway.
5277         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
5278         parameter.
5279         (mono_class_get_full): Update.
5280
5281         * class.c (inflate_generic_type) [GENERICINST]: If the generic
5282         instance is not open, don't bother inflating.
5283         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
5284         parse metadata for inflated classes.
5285         (_mono_class_get): Change GenericContext* parameter to
5286         GenericContainer*.
5287         (mono_class_create_from_typespec): Likewise.  Simplify, and
5288         implement trivially.  All the cases are handled in
5289         mono_class_from_mono_type.  Don't inflate returned class.
5290         (mono_class_get_full): Delegate GENERICINST optimization to
5291         inflate_generic_type.
5292         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
5293
5294 2006-02-16  Dick Porter  <dick@ximian.com>
5295
5296         * socket-io.c (create_object_from_sockaddr): Fix typo.
5297         (create_sockaddr_from_object): Check array lengths before
5298         potentially accessing items off the end.
5299         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
5300         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
5301         (ves_icall_System_Net_Sockets_Socket_Send_internal)
5302         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
5303         length checks to avoid wraparound overflows.
5304         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
5305         contents of the array of sockets
5306         (hostent_to_IPHostEntry2)
5307         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
5308         Check return value of inet_ntop ().
5309         (addrinfo_to_IPHostEntry): Fix typo
5310
5311 2006-02-16  Raja R Harinath  <rharinath@novell.com>
5312
5313         Type metadata parsing doesn't use generic-instantiation information.
5314         * metadata.c (mono_metadata_parse_array_full): Change
5315         MonoGenericContext* parameter to MonoGenericContainer*.
5316         (mono_metadata_parse_type_full): Likewise.
5317         (mono_type_create_from_typespec_full): Likewise.
5318         (mono_metadata_parse_mh_full): Likewise.
5319         (mono_metadata_parse_generic_inst): Likewise.
5320         (do_mono_metadata_parse_generic_class): Likewise.
5321         (do_mono_metadata_parse_type): Likewise.
5322         * metadata-internals.h: Update to changes.
5323         * class.c (mono_class_find_enum_basetype): Likewise.
5324         (mono_class_setup_fields): Likewise.
5325         (mono_class_create_from_typespec): Likewise.
5326         * loader.c (method_from_methodspec): Likewise.
5327         (mono_get_method_from_token): Likewise.
5328         (mono_method_get_header): Likewise.
5329
5330 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
5331
5332         * marshal.c: handle additional GENERICINST case (patch from
5333         Thong Nguyen <tum@veridicus.com>).
5334         Fix a few cases where LDIND_I/STIND_I was used for references.
5335
5336 2006-02-16  Raja R Harinath  <rharinath@novell.com>
5337
5338         * reflection.c (mono_reflection_get_token): Remove unused variable.
5339
5340 2006-02-16  Martin Baulig  <martin@ximian.com>
5341
5342         * reflection.c (mono_reflection_get_token): Add support for fields
5343         in instantiated generic types.
5344
5345         * icall.c
5346         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
5347
5348 2006-02-15  Martin Baulig  <martin@ximian.com>
5349
5350         * icall.c
5351         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
5352         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
5353         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
5354         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
5355
5356 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
5357
5358         * class.c, metadata.c, metadata.h, object.c, icall.c,
5359         marshal.c: changed mono_type_get_underlying_type () to do
5360         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
5361         Fixed handling of instantiated generic valuetypes (bug #75479).
5362
5363 2006-02-15  Raja R Harinath  <rharinath@novell.com>
5364
5365         * metadata.c (mono_metadata_decode_signed_value): Simplify.
5366         Delegate to mono_metadata_decode_value, and work on the returned value.
5367
5368         * icall.c (ves_icall_MonoType_GetGenericArguments):
5369         Add consistency check here too.
5370         
5371 2006-02-15  Ankit Jain  <jankit@novell.com>
5372
5373         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
5374         char/short etc.
5375
5376 2006-02-15  Ankit Jain  <jankit@novell.com>
5377
5378         * metadata.c (mono_metadata_decode_signed_value): New function to decode
5379         signed values, used only for representing lower bounds of arrays.
5380         (mono_metadata_parse_array_full): Use new
5381         mono_metadata_decode_signed_value to decode lower bounds.
5382
5383 2006-02-14  Martin Baulig  <martin@ximian.com>
5384
5385         * reflection.c
5386         (mono_reflection_get_token): Support "MonoGenericMethod" and
5387         "MonoGenericCMethod" and allow generic instances / methods.
5388
5389 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
5390
5391         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
5392         to obtain the terminal size using an ioctl.
5393
5394         * object.c (mono_nullable_init): Revert this as nullable reference
5395         types are not valid.
5396         (mono_nullable_box): Ditto.
5397
5398 2006-02-09  Dick Porter  <dick@ximian.com>
5399
5400         * threads.c (mono_thread_detach): Drop a reference to the thread
5401         we're detaching.
5402
5403 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
5404
5405         * object.c (mono_nullable_init): Handle nullable reference types.
5406         (mono_nullable_box): Ditto. Fixes #77446.
5407
5408 2006-02-07  Martin Baulig  <martin@ximian.com>
5409
5410         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
5411
5412 2006-02-07  Ankit Jain  <jankit@novell.com>
5413
5414         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
5415         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
5416         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
5417         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
5418         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
5419         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
5420
5421 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
5422
5423         * class.c (mono_class_create_generic): Set type_token as well.
5424
5425         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
5426         compatible with MS.
5427
5428 2006-02-02  Martin Baulig  <martin@ximian.com>
5429
5430         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
5431         has never been used so far.
5432
5433 2006-02-02  Martin Baulig  <martin@ximian.com>
5434
5435         * mono-debug-debugger.h: Changed comment at the top of this file;
5436         the header is not installed, but it's safe to #include it from
5437         within the JIT.
5438
5439         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
5440         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
5441
5442 2006-02-02  Martin Baulig  <martin@ximian.com>
5443
5444         * mono-debug.h
5445         (MonoSymbolTable): Removed the `metadata_info' field.
5446
5447         * mono-debug.c
5448         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
5449
5450         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
5451         (mono_debugger_add_builtin_types): Removed.
5452         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
5453         (mono_debugger_create_notification_function): We now operate on a
5454         pre-allocated area; take a `gpointer' and return `void'.
5455
5456         * mono-debug-debugger.c
5457         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
5458         (mono_debugger_add_builtin_types): Removed.
5459
5460 2006-02-02  Martin Baulig  <martin@ximian.com>
5461
5462         * threads.c (mono_debugger_create_all_threads): New public method.
5463
5464 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
5465
5466         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
5467         breaks on several platforms.
5468
5469 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
5470
5471         * assembly.c: the VS.NET build doesn't supply default values for
5472         MONO_ASSEMBLIES and MONO_CFG_DIR.
5473
5474 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
5475
5476         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
5477         helper function.
5478
5479         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
5480
5481         * loader.c (method_from_memberref): Fix a warning.
5482
5483         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
5484
5485         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
5486         with explicit layout. Fixes #77433.
5487
5488 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
5489
5490         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
5491         max_interface_id is initialized before using it. Fixes #77398.
5492         (ves_icall_Type_GetInterfaces): Ditto.
5493
5494 2006-01-30  Raja R Harinath  <rharinath@novell.com>
5495
5496         * metadata.c (mono_metadata_parse_method_signature_full): Don't
5497         allocate memory for parameter attributes when parsing memberref
5498         signatures.
5499         * loader.c (mono_loader_set_error_method_load): Don't warn.
5500         (method_from_memberref): Ensure MissingMethodException gets thrown
5501         if method is not found.  Make warning more informative.
5502
5503 2006-01-29  Raja R Harinath  <harinath@gmail.com>
5504
5505         Fix #77397
5506         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
5507         return true if is byref.
5508         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
5509         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
5510         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
5511
5512 2006-01-27  Raja R Harinath  <rharinath@novell.com>
5513
5514         Fix tests/find-method.2.il
5515         * loader.c (find_method, find_method_in_class): Remove is_inflated
5516         argument.  Revert 2006-01-18 change.
5517         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
5518         is generic, search for method in its generic definition.
5519         * class.c (mono_class_setup_vtable_general): Print generic
5520         arguments of generic types in debugging printf.
5521
5522 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
5523
5524         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
5525
5526         * threads.c (mono_threads_request_thread_dump): New helper function.
5527
5528 2006-01-25  Raja R Harinath  <rharinath@novell.com>
5529
5530         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
5531
5532 2006-01-25  Ankit Jain  <jankit@novell.com>
5533
5534         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
5535         move definition to ..
5536         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
5537         
5538 2006-01-25  Ankit Jain  <jankit@novell.com>
5539             Raja R Harinath  <rharinath@novell.com>
5540
5541         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
5542         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
5543         as necessary.
5544
5545 2006-01-25  Martin Baulig  <martin@ximian.com>
5546
5547         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
5548         `MonoDebuggerThread' into debug-debugger.c.
5549
5550 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
5551
5552         * profiler.c: fix printing of data.
5553
5554 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
5555
5556         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
5557           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
5558
5559 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
5560
5561         * object.c: fix deadlock related to string interning.
5562
5563 2006-01-23  Martin Baulig  <martin@ximian.com>
5564
5565         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
5566
5567         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
5568
5569 2006-01-23  Martin Baulig  <martin@ximian.com>
5570
5571         * mono-debug.h: Moved the prototypes of some functions which are
5572         used by the JIT here from mono-debug-debugger.h.
5573
5574 2006-01-21  Martin Baulig  <martin@ximian.com>
5575
5576         * Makefile.am: Don't install mono-debug-debugger.h.
5577
5578 2006-01-21  Martin Baulig  <martin@ximian.com>
5579
5580         * mono-debug-debugger.h: Enforce the private status of this header
5581         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
5582         Moved some stuff from mono-debugger-jit-wrapper.h here.
5583
5584 2006-01-20  Raja R Harinath  <rharinath@novell.com>
5585
5586         * class.c (mono_class_from_typeref): Add a sanity test to help
5587         catch lack of assembly load/search hooks.
5588
5589 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
5590
5591         * marshal.c (emit_struct_conv): Relax the fields with same offset
5592         check even more. Fixes #77230.
5593
5594 2006-01-18  Martin Baulig  <martin@ximian.com>
5595
5596         * loader.c (find_method_in_class): Added `gboolean is_inflated'
5597         argument; if false, we compare the uninstantiated signatures.
5598         (method_from_memberref): Compare the uninstantiated signatures;
5599         fixes #76417.
5600
5601 2006-01-18  Robert Jordan  <robertj@gmx.net>
5602
5603         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
5604         Clear the weak link. Fixes bug #77170.
5605
5606         * gc.c (mono_gchandle_free):
5607         Reflect *-gc.c changes (tiny optimization).
5608
5609 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
5610
5611         * metadata.c (mono_metadata_signature_dup): Applied patch from
5612         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
5613         Fixes #77288.
5614
5615 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
5616
5617         * marshal.c (emit_struct_conv): Allow fields with the same offset when
5618         marshalling from native to managed code. Fixes #77230.
5619
5620 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5621
5622         * threadpool.c: fix problem (Mac only) when more than one asynchronous
5623         connect. Fixes bug #77020.
5624
5625 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
5626
5627         * class.c: fixed id assignement for nested interfaces (bug #77275).
5628         Added also better info for --print-vtable debugging.
5629
5630 2006-01-12  Martin Baulig  <martin@ximian.com>
5631
5632         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
5633         interfaces on-the-fly; fixes #76625.
5634
5635         * class-internals.h
5636         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
5637         don't need that anymore.
5638
5639 2006-01-12  Miguel de Icaza  <miguel@novell.com>
5640
5641         * socket-io.c
5642         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
5643         To avoid initing the nested_classes when not needed I turned the
5644         PeerCredData as a toplevel internal class, as it has to be shared
5645         anyways. 
5646
5647         Fixes the CASA issue.
5648
5649 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
5650
5651         * domain.c: Accessors for MonoJitInfo
5652
5653         * profiler-private.h: Add jitinfo to the end jit hook
5654
5655         * profiler.[ch]: Define new hooks, called after jitting which give
5656         the MonoJitInfo that was compiled
5657
5658 2006-01-10  Martin Baulig  <martin@ximian.com>
5659
5660         * class.c (mono_class_setup_events): Add support for generic
5661         classes; fixes #76440.
5662
5663 2006-01-06  Raja R Harinath  <rharinath@novell.com>
5664
5665         Fix #77160.
5666         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
5667         on passed-in method.
5668
5669 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
5670
5671         * object.c (mono_runtime_invoke_array): Add Nullable support.
5672
5673         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
5674
5675 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
5676
5677         * file-io.c: Don't consider sockets as directory and avoid an endless
5678         loop. Fix bug #76966.
5679
5680 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
5681
5682         * object.c (mono_nullable_init): New helper function.
5683         (mono_nullable_box): Ditto.
5684
5685         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
5686
5687         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
5688
5689         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
5690         
5691 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
5692
5693         * class.c (mono_class_is_assignable_from): Make T assignable to 
5694         Nullable<T>.
5695
5696 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
5697
5698         * appdomain.c: Bump corlib version to 46.
5699         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
5700         serialization purpose) and changed ves_icall_System_Reflection_
5701         Assembly_get_code_base signature to accept a boolean (to escape, or 
5702         not, the assembly code base).
5703
5704 2005-12-23  Dick Porter  <dick@ximian.com>
5705
5706         * icall.c: 
5707         * threads-types.h: 
5708         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
5709         CreateEvent icall now returns "created" boolean parameter.
5710
5711 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
5712
5713         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
5714         #76967.
5715
5716         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
5717         when attr_klass is an interface. Fixes #77045.
5718
5719 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
5720
5721         * marshal.c (emit_struct_conv): Fix previous patch.
5722         
5723         * marshal.c (emit_struct_conv): Add a check for fields with the same
5724         offset.
5725
5726 2005-12-20  Raja R Harinath  <rharinath@novell.com>
5727
5728         Fix regression in Mono.C5.
5729         * class.c (mono_class_create_generic): If 'klass' is an interface
5730         set up the interface offsets.
5731         (mono_class_is_assignable_from): Don't throw away generic arguments.
5732
5733 2005-12-19  Raja R Harinath  <rharinath@novell.com>
5734
5735         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
5736         type parameters.
5737
5738 2005-12-15  Raja R Harinath  <rharinath@novell.com>
5739
5740         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
5741         dead store.
5742         (do_mono_metadata_parse_generic_class): Don't pass the current
5743         generic context when parsing the type being instantiated: it
5744         cannot use it, anyway.
5745
5746         * loader.c (method_from_memberref): Don't inflate a signature if
5747         it doesn't contain any type parameters.
5748
5749 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
5750
5751         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
5752
5753 2005-12-14  Martin Baulig  <martin@ximian.com>
5754
5755         * class.c
5756         (mono_type_get_name_recurse): Don't return null for type
5757         parameters and open generic classes.
5758         (mono_class_setup_methods): Don't exclude generic instances.
5759         (mono_get_unique_iid): Use different IDs for different
5760         instantiations of the same generic type.
5761         (mono_class_setup_vtable): Only use setup_generic_vtable() for
5762         open generic instances; create a normal vtable for closed generic
5763         instances.
5764         (mono_class_setup_vtable_general): We're now also called for
5765         closed generic instances.
5766
5767         * reflection.c
5768         (mono_reflection_bind_generic_parameters): Correctly use
5769         mono_metadata_lookup_generic_inst() everywhere.
5770
5771 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
5772
5773         * object.c (mono_class_create_runtime_vtable): Call 
5774         mono_class_setup_vtable ().
5775
5776         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
5777         function.
5778         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
5779         #76959.
5780
5781         * loader.c (mono_loader_set_error_type_load): Print the type load
5782         warnings to the console so they are more visible to the user.
5783         (mono_loader_set_error_method_load): Ditto.
5784
5785         * reflection.c (ensure_runtime_vtable): Revert the last change as it
5786         is still broken.
5787         
5788         * reflection.c (ensure_runtime_vtable): Fix build.
5789
5790         * reflection.c (ensure_runtime_vtable): Disable an optimization which
5791         doesn't work in all cases.
5792
5793 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
5794
5795         * object.c (mono_array_new_full): Treat a single dimensional array
5796         with 0 lower bounds as an szarray. Fixes #76973.
5797
5798         * reflection.c (custom_attr_visible): Really fix this.
5799
5800 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
5801
5802         * reflection.c (custom_attr_visible): Allow nested public attributes
5803         as well.
5804
5805         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
5806         interface check.
5807
5808 2005-12-12  Raja R Harinath  <harinath@gmail.com>
5809
5810         * class.c (set_generic_param_owner): Delete.
5811         (mono_class_create_from_typedef): Don't set ->owner field of
5812         generic parameters to "param containers" of enclosing classes.
5813         * reflection.c (mono_reflection_initialize_generic_parameter):
5814         Likewise.
5815
5816 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
5817
5818         * reflection.c (custom_attr_visible): Fix build.
5819
5820 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
5821
5822         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
5823         private attributes.
5824         
5825         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
5826         handling of null parameter defaults.
5827
5828 2005-12-09  Raja R Harinath  <rharinath@novell.com>
5829
5830         * class.c (mono_class_from_generic_parameter): Don't set
5831         klass->generic_container.
5832         (my_mono_class_from_generic_parameter): Likewise.
5833
5834 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
5835
5836         * reflection.c (load_public_key): Fix a warning.
5837         (method_encode_code): Fix unaligned accesses.
5838
5839 2005-12-07  Martin Baulig  <martin@ximian.com>
5840
5841         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
5842
5843         * reflection.c
5844         (write_generic_param_entry): Encode our custom attrs.
5845
5846         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
5847
5848 2005-12-07  Martin Baulig  <martin@ximian.com>
5849
5850         * reflection.c (encode_new_constraint): Removed; we don't use the
5851         `NewConstraintAttribute' anymore.
5852
5853 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
5854
5855         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
5856         not fire a TypeResolve event when Assembly.GetType () is called.
5857
5858 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
5859
5860         Beginning of support for nullable types in the runtime. Parts of
5861         this patch are from Martin.
5862
5863         * appdomain.c (MONO_CORLIB_VERSION): Bump
5864
5865         * domain.c (mono_init_internal): get the nullable type
5866
5867         * class.c (mono_class_is_nullable): New method
5868         (mono_class_get_nullable_param): New mehod
5869         (mono_class_create_generic): In types T? set cast_class to T
5870
5871         * class-internals.h (MonoDefaults): new nullable default class
5872         (mono_class_get_nullable_param, mono_class_get_nullable_param):
5873         new methods.
5874
5875 2005-12-05  Raja R Harinath  <rharinath@novell.com>
5876
5877         * metadata.c (select_container): New.  Refactor code to select the
5878         appropriate GenericContainer given the type of generic parameter
5879         we are looking for.
5880         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
5881         not a MonoGenericContext.  Use select_container.  Update parameters.
5882         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
5883         and MONO_TYPE_MVAR.
5884         (unwrap_arrays): Remove duplicate tests.
5885         (find_generic_param): Rename from 'has_same_context'.  Now walks a
5886         generic instantiated class to find any arguments that are generic
5887         parameters.
5888         (mono_type_create_from_typespec_full): Use find_generic_param to
5889         avoid evicting some generic instantiations from the typespec
5890         cache.
5891
5892 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
5893
5894         * reflection.c: fixed writing of doubles on ARM FPA.
5895
5896 2005-12-02  Robert Jordan  <robertj@gmx.net>
5897
5898         * icall.c: Fixed EventInfo.ReflectedType (#76829).
5899
5900 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5901
5902         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
5903         least on SUSE 10 they are not the same (on debian, they are just the
5904         same thing).
5905
5906 2005-12-01  Raja R Harinath  <rharinath@novell.com>
5907
5908         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
5909         DeclaringType for VARs and MVARs.
5910         * class.c (set_generic_param_owner): Fix initialization of owner
5911         fields.
5912
5913 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
5914
5915         * icall.c: fixed Enum.ToObject() to correctly convert the values.
5916
5917 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5918
5919         * threadpool.c: workaround for a bug that shows up on the Mac:
5920         select()+connect() on a blocking socket is not like it should
5921         be, so we proceed to connect() in that case, wasting the I/O
5922         threadpool thread until connect succeedes. Fixes bug #75436.
5923
5924 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5925
5926         * threadpool.c: fix typo when setting file descriptor states.
5927
5928 2005-11-28  Raja R Harinath  <rharinath@novell.com>
5929
5930         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
5931         * metadata.c (mono_metadata_parse_method_signature_full): Don't
5932         create a temporary signature container.
5933         (mono_metadata_parse_generic_param): Update to changes.
5934         (mono_type_create_from_typespec_full): Update to changes.
5935         * loader.c (method_from_memberref): Don't use a
5936         MonoGenericContainer while parsing a memberref signature.
5937         (method_from_methodspec): Remove dead-store of the 'container'
5938         variable.  It's overwritten before use.
5939
5940         * metadata.c (mono_type_create_from_typespec_full): Make debugging
5941         checks tighter.
5942         (mono_metadata_parse_generic_param): Likewise.
5943         * loader.c (find_method_in_class): Does not need a
5944         MonoGenericContainer.  Use 'mono_method_signature' rather than
5945         'mono_method_signature_full'.
5946         (find_method, mono_get_method_constrained, method_from_memberref):
5947         Update to changes.
5948
5949         * metadata.c (mono_type_create_from_typespec_full): Ensure that
5950         owner-less generic-parameters are never evicted from the typespec
5951         cache.
5952
5953         * loader.c (method_from_memberref): Don't use the current context
5954         when parsing signatures.
5955         (method_from_methodspec, mono_get_method_from_token): Update to changes.
5956
5957         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
5958         side-effects in g_assert.
5959         * loader.c (mono_get_method_from_token): Resolve klass earlier so
5960         that we don't potentially lose information.
5961
5962 2005-11-26  Dick Porter  <dick@ximian.com>
5963
5964         * icall.c:
5965         * threads.c: icalls to implement basic (ie, not named)
5966         System.Threading.Semaphore.
5967
5968 2005-11-24  Dick Porter  <dick@ximian.com>
5969
5970         * process.c
5971         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
5972         Use GetProcessId() if it's available.
5973
5974 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
5975
5976         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
5977
5978 2005-11-23  Raja R Harinath  <rharinath@novell.com>
5979             Ankit Jain  <jankit@novell.com>
5980
5981         * loader.c (mono_get_method_from_token): Initialize 'method' field
5982         of all generic parameters before parsing the signature.  Remove
5983         code that "fixed"-up MVAR references.
5984
5985 2005-11-23  Ankit Jain  <jankit@novell.com>
5986
5987         * metadata.c (mono_metadata_has_generic_params):
5988         (mono_metadata_load_generic_param_constraints):
5989         (mono_metadata_load_generic_params): Move duplicate code ...
5990         (mono_metadata_get_generic_param_row): ... here. Returns the
5991         first row-id in GenericParam table for a given owner (token).
5992         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
5993         prototype.
5994
5995 2005-11-23  Raja R Harinath  <rharinath@novell.com>
5996             Ankit Jain  <jankit@novell.com>
5997
5998         * metadata.c (mono_metadata_class_equal): Pass signature_only when
5999         comparing VARs too.
6000         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
6001         type->data.generic_param only if the type is an MVAR.
6002         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
6003         leak owner-less VARs and MVARs into managed space.
6004
6005 2005-11-21  Martin Baulig  <martin@ximian.com>
6006
6007         * class-internals.h
6008         (MonoMethod): Moved the `generic_container' here from
6009         `MonoMethodNormal' since we now also need it for
6010         `MonoMethodPInvoke';
6011         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
6012         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
6013         an union containing both `MonoMethodNormal' and
6014         `MonoMethodPInvoke'.
6015
6016         * loader.c
6017         (mono_get_method_from_token): Allow implementing generic methods
6018         as interncalls.
6019
6020         * threads.c
6021         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
6022         icall.
6023
6024 2005-11-17  Dick Porter  <dick@ximian.com>
6025
6026         * icall.c: 
6027         * process.h: 
6028         * process.c: Split the Process Start_internal icall into
6029         ShellExecuteEx_internal and CreateProcess_internal, which are
6030         called depending on whether UseShellExecute is true.  Fixes bug
6031         76670.
6032
6033         * appdomain.c (MONO_CORLIB_VERSION): Incremented
6034
6035 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
6036
6037         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
6038         'msize' parameters, use the information in 'mspec' instead.
6039         (emit_object_to_ptr_conv): Ditto.
6040
6041         * marshal.c (emit_struct_conv): Handle explicit layout structs with
6042         fields out of order. Fixes #76733.
6043
6044 2005-11-17  Ankit Jain  <jankit@novell.com>
6045
6046         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
6047
6048 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
6049
6050         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
6051           bug #76575.
6052
6053 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
6054
6055         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
6056         for types with non-auto layout. Fixes #76717.
6057
6058 2005-11-16  Ankit Jain  <jankit@novell.com>
6059
6060         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
6061         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
6062         if generic_context is null.
6063           (mono_metadata_generic_param_equal): param->owner can be null.
6064           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
6065         null.
6066
6067 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
6068
6069         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
6070         the correct value.
6071
6072 2005-11-15  Martin Baulig  <martin@ximian.com>
6073
6074         * object.c (set_value): Use mono_class_from_mono_type() instead of
6075         the hack for generic instances; fixes #76136.
6076
6077 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
6078
6079         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
6080         fields.
6081
6082         * image.c (load_metadata_ptrs): Initialize the new fields.
6083
6084         * reflection.c (create_dynamic_mono_image): Ditto.
6085
6086         * reflection.c (build_compressed_metadata): Use the new fields.
6087
6088         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
6089         icall.
6090
6091         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
6092         icall.
6093         
6094 2005-11-15  Ankit Jain  <jankit@novell.com>
6095             Raja R Harinath  <harinath@gmail.com>
6096
6097         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
6098         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
6099         new per-generic_container cache if the cached MonoType's context matches
6100         the current context.
6101           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
6102         to the expected context.
6103           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
6104
6105 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6106
6107         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
6108         we changed the signature of an icall.
6109         * icall.c: Modify to mono_double_ParseImpl return true/false 
6110         depending on the success, instead of throwing the exception. This will
6111         help us in Double.TryParse methods.
6112         
6113 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
6114
6115         * marshal.c (emit_marshal_object): Throw an exception when
6116         marshalling 'object' instead of crashing. Fixes #76696.
6117
6118 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
6119
6120         * class-internals.h: Add prototype for mono_type_get_full_name ().
6121
6122 2005-11-11  Dick Porter  <dick@ximian.com>
6123
6124         * threads.c (mono_thread_manage): Make sure the main thread has
6125         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
6126
6127 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
6128
6129         * loader.c (mono_loader_set_error_type_load): Log a warning to the
6130         console about the missing type.
6131         (mono_loader_set_error_method_load): Ditto.
6132
6133 2005-11-09  Miguel de Icaza  <miguel@novell.com>
6134
6135         * mono-config.c (mono_get_config_dir): Set the system defaults if
6136         none is specified.
6137
6138         * assembly.c (mono_set_dirs): New API entry point to set the
6139         assembly and the config directory in one call
6140
6141 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
6142
6143         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
6144         the ftnptr was created from a delegate in a domain other than the
6145         current domain. Fixes #75377.
6146
6147         * exception.h exception.c: Add mono_get_exception_not_supported ().
6148
6149 2005-11-08  Martin Baulig  <martin@ximian.com>
6150
6151         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
6152
6153 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
6154
6155         * security-manager.h: Added definitions to deal with strongname key 
6156         pairs bigger (and smaller) than 1024 bits.
6157         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
6158         adjust wrt the public key length being used.
6159
6160 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
6161
6162         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
6163           Windows build (r51396-51397).
6164
6165 2005-11-03  Martin Baulig  <martin@ximian.com>
6166
6167         * class.c (mono_class_setup_vtable_general): Also add generic
6168         methods to the vtable; fixes #76581.
6169
6170 2005-11-01  Miguel de Icaza  <miguel@novell.com>
6171
6172         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
6173         sure that we lookup GetString method from the System.Text.Encoding
6174         class, not the derived class or we get an empty method.
6175
6176         Fixed class #76612.
6177
6178 2005-10-25  Miguel de Icaza  <miguel@novell.com>
6179
6180         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
6181         if it has been previously set (embedders). 
6182
6183         Make mono_set_rootdir available also on Unix.
6184
6185 005-10-24  Robert Jordan  <robertj@gmx.net>
6186
6187         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
6188
6189 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
6190
6191         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
6192         only calls which are made to native code use this flag.
6193
6194         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
6195
6196 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
6197
6198         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
6199         Add support for FieldBuilders.
6200
6201 2005-10-29  Martin Baulig  <martin@ximian.com>
6202
6203         * mono-debug.c
6204         (mono_debug_using_mono_debugger): New public method; returns
6205         whether we're running inside the debugger.
6206
6207 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
6208
6209         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
6210         for Method/Constructor/FieldBuilders.
6211
6212 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
6213
6214         * reflection.c (module_add_cattrs): Save custom attributes for global methods
6215         and fields as well.
6216
6217 2005-10-26  Martin Baulig  <martin@ximian.com>
6218
6219         * mono-debug-debugger.c
6220         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
6221
6222 2005-10-24  Raja R Harinath  <harinath@gmail.com>
6223
6224         * icall.c (base64_to_byte_array): Don't pass an out-of-range
6225         integer to isspace.
6226
6227 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
6228
6229         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
6230         when passing valuetypes byref. Fixes #76502.
6231
6232 2005-10-19  Jackson Harper  <jackson@ximian.com>
6233
6234         * profiler.c: Don't put a . in front of types that are not in a
6235         namespace.
6236
6237 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
6238
6239         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
6240
6241 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
6242
6243         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
6244         #76436.
6245         (mono_marshal_get_ldflda_wrapper): Fix a warning.
6246
6247 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6248
6249         * assembly.c metadata-internals.h icall.c: Define an additional
6250         parameter for mono_assembly_name_parse_full, so we can avoid creating
6251         S.R.AssemblyName.Version when no version info wasn't passed.
6252         
6253 2005-10-09  Miguel de Icaza  <miguel@novell.com>
6254
6255         * class.c (mono_type_get_full_name): Reimplement method that was
6256         removed. 
6257
6258         * image.c: Some docs
6259
6260 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
6261
6262         * profiler.c (output_newobj_profile): Fix printing of Total memory
6263         on x86.
6264
6265 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
6266
6267         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
6268
6269 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
6270
6271         * threads.c: remove debug output.
6272
6273 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
6274
6275         * threads.c (mono_thread_manage): Fix crashes if more than 64
6276         threads need to be aborted. Hopefully fixes #75899.
6277
6278         * assembly.c (mono_stringify_assembly_name): New helper function.
6279
6280         * class.c: Use mono_stringify_assembly_name instead of the similar
6281         static function.
6282
6283         * assembly.h assembly.c: Add support for calling a postload search 
6284         hook if an assembly cannot be loaded.
6285
6286         * appdomain.c: Register new search hooks which call the AssemblyResolve
6287         events in AppDomain. Fixes #75231
6288
6289 2005-10-07  Martin Baulig  <martin@ximian.com>
6290
6291         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
6292         methods without debug info.
6293
6294 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
6295
6296         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
6297         wrappers.
6298
6299 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6300
6301         * file-io.c: now that we return symlinks, use lstat and, when the file
6302         is a symbolic link, stat, to get the file attributes. Also avoid the
6303         conversion to/from utf16/external.
6304
6305 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
6306
6307         * class.c (mono_class_layout_fields): Compute klass->has_references
6308         correctly if an embedded valuetype is not yet initialized. Fixes
6309         #76331.
6310
6311 2005-10-04  Martin Baulig  <martin@ximian.com>
6312
6313         * metadata.c
6314         (mono_metadata_load_generic_param_constraints): New public
6315         function; splitted the constraints loading out from
6316         mono_metadata_load_generic_params().
6317
6318         * class.c (mono_class_create_from_typedef): Call
6319         mono_metadata_load_generic_param_constraints() after setting up
6320         the type and creating our parent; fixes #75329.
6321
6322 2005-10-04  Martin Baulig  <martin@ximian.com>
6323
6324         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
6325         non-dynamic parent classes.
6326
6327 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
6328
6329         * file-io.c : win32 build fix (ETXTBSY seems not found).
6330
6331 2005-10-04  Martin Baulig  <martin@ximian.com>
6332
6333         * reflection.c
6334         (mono_image_get_methodspec_token): Make the cache actually work;
6335         fixes #75974.
6336
6337 2005-10-04  Martin Baulig  <martin@ximian.com>
6338
6339         * class.c (mono_class_name_from_token): Removed the unneccessary
6340         `MonoGenericContext *' argument.
6341
6342 2005-10-04  Martin Baulig  <martin@ximian.com>
6343
6344         * loader.c
6345         (method_from_methodspec): Make the caching work again; fixes the
6346         performance regression from #76262.
6347
6348 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6349
6350         * file-io.c:
6351         * file-io.h:
6352         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
6353         GetFileSystemEntries that performs the same work but without going
6354         into io-layer, locking, etc.
6355
6356 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
6357
6358         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
6359         ThreadState_Stopped as well. Fixes #76047.
6360
6361 2005-09-29  Martin Baulig  <martin@ximian.com>
6362
6363         * class.c
6364         (inflate_generic_context): If the new context has a `gmethod', set
6365         its `container' that that gmethod's `container'.
6366
6367         * metadata.c
6368         (mono_metadata_parse_generic_param): Simplify things;
6369         `generic_container = generic_context->container;' is just fine.
6370
6371         * loader.c (method_from_methodspec): Code cleanups.
6372
6373 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
6374
6375         * decimal.c: fix warning (and let gcc generate correct
6376         code on ARM with optimizations).
6377
6378 2005-09-28  Martin Baulig  <martin@ximian.com>
6379
6380         * loader.c
6381         (method_from_memberref): Added `MonoGenericContext *class_context'
6382         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
6383         (method_from_methodspec): If we're a memberref, use the enclosing
6384         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
6385
6386 2005-09-28  Martin Baulig  <martin@ximian.com>
6387
6388         * object.c (mono_runtime_invoke_array): Added support for
6389         MONO_TYPE_GENERICINST; fixes #75917.
6390
6391 2005-09-27  Martin Baulig  <martin@ximian.com>
6392
6393         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
6394         `k->byval_arg.type' to determine the actual type.
6395
6396         * loader.c (method_from_methodspec): Removed some hacks.
6397
6398 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
6399
6400         * class-internals.h (mono_field_is_deleted): Do the test for
6401         rtspecialname before we check the actual name of the field. This
6402         prevents us from dereferencing a pointer into the string table,
6403         saving us from accessing a few pages
6404
6405         * *.c: Replace the use of {Enter,Leave}CriticalSection with
6406         macros. This will allow a deadlock debugger to easily be plugged
6407         in.
6408
6409 2005-09-27  Martin Baulig  <martin@ximian.com>
6410
6411         * loader.c (method_from_methodspec): Create a "signature"
6412         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
6413
6414 2005-09-27  Martin Baulig  <martin@ximian.com>
6415
6416         * class.c
6417         (inflate_generic_class): Correctly set the new context's
6418         container.
6419
6420         * loader.c
6421         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
6422         instead of a `MonoGenericContext *'.
6423         (mono_method_signature_full): Take a `MonoGenericContainer *'
6424         instead of a `MonoGenericContext *'.
6425
6426         * metadata.c
6427         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
6428         instead of a `MonoGenericContext *'.
6429         (mono_metadata_parse_method_signature_full): Likewise.
6430
6431 2005-09-26  Martin Baulig  <martin@ximian.com>
6432
6433         * class.c
6434         (mono_class_from_generic_parameter): Set `klass->generic_container'
6435         (mono_class_from_generic_parameter): Likewise.
6436         (mono_bounded_array_class_get): We inherit the generic container
6437         from the element class.
6438
6439         * loader.c
6440         (find_method, find_method_in_class): Take a `MonoGenericContext *'
6441         argument rather than computing it here.
6442         (method_from_memberref): Correctly set the generic context before
6443         parsing the signature.  Fixes #75681.
6444
6445 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
6446
6447         * object.c (mono_class_has_special_static_fields): Fix warnings.
6448
6449 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6450
6451         * assembly.c: Add parse_public_key function, to
6452         par the public keys. Also added mono_assembly_name_parse_full,
6453         to define it the parsed key should be freed or not.
6454         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
6455         to parse a long format assembly name.
6456         * metadata-internals.h: Keep mono_assembly_name_parse_full as
6457         private, since calling it to preserve the key requires
6458         freeing it manually.
6459         
6460 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
6461
6462         * locales.c : removed HAVE_ICU part.
6463
6464 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
6465
6466         * object.c (mono_class_create_runtime_vtable): Avoid calling 
6467         field_is_special_static if the klass has no special static fields.
6468
6469         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
6470         (MonoCachedClassInfo): Likewise.
6471
6472         * object.c (mono_class_has_special_static_fields): New helper function.
6473
6474 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6475
6476         * class.c (mono_class_create_from_typedef): Don't call 
6477         interfaces_from_typedef_full for enums.
6478         (mono_class_create_from_typedef): Compute the base types of enums directly
6479         without calling mono_class_setup_fields ().
6480         (mono_class_find_enum_basetype): New helper function.
6481
6482         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
6483         one place inside the string heap.
6484         
6485 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
6486
6487         * class.c: locking fixes, code cleanups, some docs added.
6488         Allocate some data structures in the image mempool.
6489
6490 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6491
6492         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
6493         the example code.
6494         
6495 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
6496
6497         * class-internals.h, class.c, reflection.c: reduce memory taken by
6498         MonoClass.
6499
6500 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
6501
6502         * metadata.c, metadata.h, loader.h: documentation updates, code and
6503         API cleanups.
6504
6505 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6506
6507         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
6508         the example code.
6509
6510         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
6511         page faults caused by the runtime while reading metadata.
6512
6513 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6514
6515         * socket-io.c: the field names were changed 3 months ago and no one
6516         realized until bug #76077 got filed!
6517
6518 2005-09-20  Martin Baulig  <martin@ximian.com>
6519
6520         * icall.c (assembly_icalls): Removed some unused debugger icalls.
6521
6522 2005-09-20  Martin Baulig  <martin@ximian.com>
6523
6524         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
6525         write the rank into the class entry.
6526
6527 2005-09-20  Martin Baulig  <martin@ximian.com>
6528
6529         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
6530
6531 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
6532
6533         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6534
6535         * icall.c (custom_attrs_defined_internal): New icall.
6536
6537         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
6538         function.
6539         (mono_custom_attrs_construct_by_type): New helper function.
6540
6541 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
6542
6543         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
6544         terminate the resulting string. Fixes #76123.
6545
6546 2005-09-16  Martin Baulig  <martin@ximian.com>
6547
6548         * mono-debug.c
6549         (mono_debug_add_method): Ignore inflated methods for the moment.
6550
6551 2005-09-14  Martin Baulig  <martin@ximian.com>
6552
6553         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
6554
6555 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
6556
6557         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
6558         return a success/failure indication.
6559         (mono_metadata_interfaces_from_typedef_full): Ditto.
6560         (get_constraints): Ditto.
6561
6562 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
6563
6564         * marshal.c (emit_marshal_array): Fix handling of null arrays.
6565         
6566         * marshal.c (emit_marshal_array): Add support for returning string
6567         arrays from delegates. Fixes #76063.
6568
6569         * marshal.c: Use the emit_ldloc/stloc macros where possible.
6570
6571 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
6572
6573         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
6574         icall.
6575
6576 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
6577
6578         * reflection.c icall.c: Fix after mono_get_exception_type_load
6579         signature change.
6580
6581         * assembly.c (mono_assembly_get_assemblyref): New helper function.
6582         (mono_assembly_load_reference): Use the new helper.
6583
6584         * class-internals.h (MonoLoaderError): New structure containing 
6585         information about type loading errors.
6586
6587         * class-internals.h loader.c: Add APIs to store per-thread loader
6588         error information.
6589
6590         * loader.c class.c: Set the loader error if needed.
6591
6592         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
6593
6594 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
6595
6596         * decimal.c: fixed to handle the broken ARM fp format.
6597
6598 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
6599
6600         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
6601         broken.
6602
6603 2005-09-06  Martin Baulig  <martin@ximian.com>
6604
6605         * domain.c (supported_runtimes): Added v2.0.50727.
6606
6607 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
6608
6609         * culture-info.h: reduce the size of some structures.
6610
6611 2005-09-05  Martin Baulig  <martin@ximian.com>
6612
6613         Reflect latest API changes in the August CTP.
6614
6615         * icall.c
6616         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
6617         ("MonoType.HasGenericArguments"): Removed.
6618         ("MonoMethod.BindGenericParameters"): Renamed to
6619         "MakeGenericMethod".
6620         ("MethodBuilder.BindGenericParameters"): Renamed to
6621         "MakeGenericMethod".    
6622
6623 2005-09-05  Martin Baulig  <martin@ximian.com>
6624
6625         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
6626
6627 2005-09-05  Martin Baulig  <martin@ximian.com>
6628
6629         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6630
6631         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
6632         generic_container is non-NULL.
6633
6634 2005-09-05  Martin Baulig  <martin@ximian.com>
6635
6636         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6637
6638         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
6639
6640 2005-08-29  Michal Moskal  <malekith@nemerle.org>
6641
6642         * reflection.c (encode_locals,
6643         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
6644         for large generic types.
6645
6646 2005-09-05  Martin Baulig  <martin@ximian.com>
6647
6648         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6649
6650         * class.c (mono_dup_array_type): New public method.
6651         (mono_metadata_signature_deep_dup): New public method.
6652         (dup_type): Correctly duplicate array and function types.
6653
6654 2005-09-05  Martin Baulig  <martin@ximian.com>
6655
6656         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6657
6658         * reflection.c (get_default_param_value_blobs): Handle generic types
6659         and generic methods.
6660
6661 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
6662
6663         * class.c: Fixed error reporting (method/class were inversed) for 
6664         inheritance demands.
6665         * security-manager.c|h: Added the AppDomain when calling the managed
6666         System.Security.SecurityManager.InheritanceDemand method.
6667
6668 2005-09-01  Raja R Harinath  <rharinath@novell.com>
6669
6670         * reflection.c (encode_marshal_blob): 'marshaltype' and
6671         'marshaltyperef' are alternate sources for the custom marshaler
6672         name.
6673
6674 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
6675
6676         * class.c: fix creation of array classes with rank == 1
6677         (patch by Ankit Jain <jankit@novell.com>).
6678
6679 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
6680
6681         * object.c: fix check for creating the bound data for arrays vs
6682         szarrays.
6683
6684 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6685
6686         * object.c: configuration file name is now based on the executable name,
6687         not the image name. Fixes bug #75931.
6688
6689 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
6690
6691         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
6692         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
6693
6694 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
6695
6696         * rand.c: Use wincrypt.h instead of WinCrypt.h.
6697
6698 2005-08-24  Ankit Jain  <jankit@novell.com>
6699             Raja R Harinath  <rharinath@novell.com>
6700
6701         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
6702           called by it recursively.
6703           (mono_class_init): Remove special case in pending_init handling, since it's
6704           superseded by the fix to mono_class_from_typeref.
6705
6706 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
6707
6708         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
6709         BROKEN_THREAD_START stuff.
6710
6711 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
6712
6713         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
6714         trampoline.
6715
6716         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
6717         
6718         * object.c (mono_delegate_ctor): Replace the original function address with
6719         a delegate trampoline.
6720
6721 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
6722
6723         * icall.c: add boolean argument to base64_to_byte_array and 
6724         InternalFromBase64String to control whether a whitespace-only string
6725         is allowed (or should casue a FormatException to be thrown). We need
6726         this as the behavior has changed between MS.NET 1.x and 2.0, and we
6727         to match the MS behaviour in both profiles.
6728         * appdomain.c: Bump corlib version.
6729
6730 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6731
6732         This patch implements a big portion of publisher policy
6733         support, used to bind assembly versions and redirect
6734         one assembly from version A to version B.
6735
6736         * assembly.c:
6737         New GSList loaded_assembly_bindings, for storing the cached
6738         assembly bindings.
6739         (assembly_binding_maps_name): New static function for checking if a 
6740         assembly binding information maps an assembly name.
6741         (mono_assembly_binding_info_free): New function for freeing
6742         assembly binding information resources.
6743         (get_publisher_policy_info): New static function for retrieving 
6744         assembly binding information from a MonoImage.
6745         (compare_versions): New static function for comparing an assembly
6746         binding information data and the version of an assembly name.
6747         (check_policy_versions): New static function for checking if an
6748         assembly binding info mapping an assembly name is valid for it.
6749         (mono_assembly_load_publisher_policy): New static function for
6750         loading the 'policy.major.minor.MyAssembly' image for an assembly
6751         with an assembly name 'aname'.
6752         (mono_assembly_bind_version): New static function for updating
6753         assembly redirection.
6754         (mono_assembly_apply_binding): New static function for applying
6755         assembly binding.
6756         (search_binding_loaded): New static function for searching 
6757         loaded assembly binding infos in the cache domain.
6758         (mono_assembly_load_full): Don't apply assembly binding for
6759         reflection only assemblies.
6760
6761         * metadata-internals.h: Add MonoAssemblyBindingInfo,
6762         which contains information about assembly binding. Also
6763         declare signature for mono_config_parse_publisher_policy ()
6764         function, used to retrieve pub policy info.
6765         
6766         * mono-config.c:
6767         (publisher_policy_start): New static function used to parse publisher 
6768         policy config files.
6769         (publisher_policy_parser): New static MonoParseHandler containing 
6770         the functions used when parsing config files.
6771         (mono_config_parse_publisher_policy): New function for parsing
6772         publisher policy files.
6773         
6774 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
6775
6776         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
6777
6778         * marshal.c (mono_delegate_free_ftnptr): Ditto.
6779
6780         * object.c (mono_get_addr_from_ftnptr): New helper function.
6781
6782         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
6783
6784         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6785
6786 2005-08-19  Dick Porter  <dick@ximian.com>
6787
6788         * threads.c, threads.h, appdomain.c, appdomain.h,
6789         profiler-private.h, monitor.c, object.c, object-internals.h,
6790         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
6791         store the thread ID, so it can hold a 64 bit value if needed.
6792
6793 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
6794
6795         * reflection.c (mono_reflection_create_dynamic_method): Store the
6796         handle class into the method references as well so ldtoken works in
6797         dynamic methods.
6798
6799         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
6800         types.
6801
6802 2005-08-19  Ankit Jain <jankit@novell.com>
6803
6804         Fix #75847.
6805         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
6806           here rather than using the method signature of a arbitrary function
6807           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
6808           two arguments.
6809           Hack done with Harinath.
6810
6811 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6812
6813         * threadpool.c: disable printing stack traces when we get a exception
6814         in a threadpool thread. I need to do more testing to figure out which
6815         cases actually print this. Fixes bug #75828.
6816
6817 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6818
6819         * icall.c: there might be ignored whitespace after the last '='. This
6820         fixes length computation and bug #75840.
6821
6822 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
6823
6824         * assembly.c (mono_assembly_load_full): Consider .exe extension as
6825         well. Fixes #75809.
6826
6827         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
6828         #75784.
6829         
6830         * reflection.c (create_custom_attr_data): Ditto.
6831
6832 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
6833
6834         * locales.c, culture-info.h : removed RegionLCIDMap.
6835         * culture-info-tables.h : regenerated.
6836
6837 2005-08-16  Martin Baulig  <martin@ximian.com>
6838
6839         * class.c (mono_type_get_name_recurse): Small fix.
6840
6841 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
6842
6843         * locales.c : indentation fixie.
6844
6845 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
6846
6847         * object-internals.h,
6848           locales.h,
6849           locales.c,
6850           culture-info.h,
6851           icall.c : added RegionInfo table support.
6852         * culture-info-table.h : regenerated for region support.
6853
6854 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
6855
6856         * reflection.c (resolve_object): handle all kinds of MonoMethod
6857         including generic ones
6858
6859 2005-08-12  Ankit Jain <jankit@novell.com>
6860
6861         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
6862           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
6863
6864 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
6865
6866         * process.c: Don't close a thread handle when it's NULL. This is a
6867         workaround for bug #75733.
6868
6869 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
6870
6871         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
6872
6873 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
6874
6875         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
6876
6877 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6878
6879         * threadpool.c: if a work item in the thread pool has a callback that
6880         catches a exception, don't propagate it after invoking the callback.
6881         Fixes bug #75336.
6882
6883 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
6884
6885         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
6886
6887         * class-internals.h (MonoCachedClassInfo): Add some new fields.
6888
6889         * class.c (mono_class_init): Load field info lazily in the AOT case.    
6890
6891         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
6892
6893 2005-08-03  Ankit Jain  <jankit@novell.com>
6894
6895         Fix #75683.
6896         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
6897           PInvoke calling convention is 0.
6898
6899 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
6900
6901         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
6902         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
6903
6904 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
6905
6906         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
6907         to handle threads not started by the GC (patch by Michael Meeks
6908         <michael.meeks@novell.com>).
6909
6910 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
6911
6912         * reflection.c: Make buffer used in emitting types larger for some
6913         big generic types (patch by Michal Moskal).
6914
6915 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
6916
6917         * mono-debug.c: Fix some (not all) alignment problems.
6918
6919 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6920
6921         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
6922         Invoke mono_image_load_from_data_full passing the refonly
6923         parameter.
6924
6925         * assembly.c
6926         (mono_assembly_open_from_bundle): Add the refonly argument, 
6927         in order to pass it to other methods it calls to.
6928         (do_mono_assembly_open): Add the refonly argument, in order 
6929         to pass it to other methods it calls to.
6930         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
6931         the refonly parameter to it.
6932
6933         * image.c: Add loaded_images_refonly_hash and
6934         loaded_images_refonly_guid_hash to cache the reflection
6935         only loaded images.
6936         (mono_images_init): Initialize the hash tables used for
6937         caching the reflection only images.
6938         (load_modules): Invoke mono_image_open_full passing the refonly
6939         parameter to load the modules the correct way.
6940         (build_guid_table): Add the refonly argument, to re-build the 
6941         correct hash table.
6942         (do_mono_image_open): Added the refonly argument, in order to
6943         define it for the loaded image.
6944         (mono_image_loaded_full): New function, which receives an
6945         additional parameter to look for the image in the refonly or
6946         non-refonly section.
6947         (mono_image_loaded): Updated, using mono_image_loaded_full.
6948         (mono_image_loaded_by_guid_full): The same case that happens
6949         with mono_image_loaded_full.
6950         (mono_image_loaded_by_guid): Likewise.
6951         (register_image): Use the ref_only variable inside MonoImage
6952         to decide in which hash table store the current image.
6953         (mono_image_open_from_data_full): Rename
6954         mono_image_open_from_data to mono_image_open_from_data_full,
6955         adding the refonly argument, to define the ref_only variable 
6956         inside MonoImage.
6957         (mono_image_open_from_data): Return 
6958         mono_image_open_from_data_full.
6959         (mono_image_open_full): Rename mono_image_open to
6960         mono_image_open_full, receiving the new refonly argument,
6961         to pass it to inner methods.
6962         (mono_pe_file_open): Update this function, to open
6963         a MonoImage as a non-refonly image.
6964         (mono_image_close): Use the refonly variable inside
6965         MonoImage to remove the image from the correct caches.
6966
6967         * image.h: Add the signatures of mono_image_open_full,
6968         mono_image_open_from_data_full, mono_image_loaded_full,
6969         mono_image_loaded_by_guid_full.
6970
6971         * metadata-internals.h: Add the ref_only field to 
6972         MonoImage.
6973         
6974 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6975
6976         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
6977         Fix the last behavior, which used to load the assemblies and
6978         extract MonoReflectionAssemblyName information, instead of
6979         extract it from the metadata tables. Needed for Reflection
6980         Only assemblies.
6981         
6982 2005-07-29  Martin Baulig  <martin@ximian.com>
6983
6984         * mono-debug-debugger.c
6985         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
6986         not initialized.
6987
6988         * mono-debug.c
6989         (mono_debug_address_from_il_offset): Check whether we have
6990         debugging support before attempting to take the lock.
6991         (mono_debug_source_location_from_address): Likewise.
6992         (mono_debug_source_location_from_il_offset): Likewise.
6993         (mono_debug_il_offset_from_address): Likewise.
6994         (mono_debug_address_from_il_offset): Likewise.
6995
6996 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
6997
6998         * class.c (mono_class_from_name_case): Add support for dynamic images.
6999         Fixes #75650.
7000
7001         * object.c (mono_class_compute_gc_descriptor): Add a workaround
7002         for #75479.
7003
7004 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
7005         
7006         * reflection.c (mono_method_get_object): Fix warning.
7007
7008 2005-07-28  Martin Baulig  <martin@ximian.com>
7009
7010         * mono-debug.c
7011         (mono_debug_add_wrapper): Also write the wrapper type.
7012
7013 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
7014
7015         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
7016         
7017         * class.c (mono_class_init): Avoid reading nested classes if the AOT
7018         data indicates the class has none.
7019
7020 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
7021
7022         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
7023         loader lock with the debugger lock. Prevents deadlocks for beagle.
7024
7025         Beagle can now run on an smp box for a weekend without any
7026         issues. Woohoo!
7027
7028 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
7029
7030         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
7031         in a module. Fixes #75629.
7032
7033 2005-07-26  Martin Baulig  <martin@ximian.com>
7034
7035         * mono-debug.c (mono_debug_add_wrapper): New static method.
7036         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
7037         interncall or a wrapper.
7038
7039         * mono-debug.h (MonoDebugWrapperData): New public typedef.
7040         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
7041         (MONO_DEBUGGER_VERSION): Bump to 51.
7042
7043         * mono-debug-debugger.c
7044         (mono_debugger_add_type): Removed this empty function.
7045         (mono_debugger_add_method): Likewise.
7046
7047 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
7048
7049         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
7050         before accessing method->slot.
7051
7052 2005-07-21  Jb Evain  <jbevain@gmail.com>
7053
7054         * reflection.c (method_encode_clauses/class): Handle filters clauses.
7055         Fixes #75010.
7056
7057 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
7058
7059         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
7060         #75587.
7061
7062 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
7063
7064         * image.h image.c: Add mono_image_get_guid () API function.
7065
7066 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
7067
7068         There were issues when multiple threads tried to load
7069         assemblies. A deadlock was created between assemblies_mutex and
7070         mono_domain_assemblies_lock. This fixes the issue by making the
7071         assembly ref counting be lock free. See bug 75586.
7072         
7073         * image.c (mono_image_close): The add ref function here was using
7074         Interlocked operations while the unref was using a mutex and a
7075         --. I don't think this was ever a bug that would be exposed in a
7076         non-pendantic way (ie, by an embedder doing a ref on one thread
7077         and an unref on another), but for the sake of correctness, this is
7078         now Interlocked.
7079
7080         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
7081         (mono_assembly_load_reference): Call mono_assembly_addref rather
7082         than touching the refcount ourselves.
7083         (mono_assembly_close): Use InterlockedDecrement to unref the
7084         assembly. Don't acquire the lock unless it is actually needed.
7085
7086 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
7087
7088         * class.c (mono_class_layout_fields): Fix calculation of has_references
7089         for generic types.
7090
7091 2005-07-12  Martin Baulig  <martin@ximian.com>
7092
7093         Applying a patch from Michal Moskal <malekith@nemerle.org>.
7094
7095         * metadata.c
7096         (mono_type_hash): Provide better hashing for generic instances.
7097         (mono_generic_inst_hash): Improve hashing.
7098         (mono_generic_class_hash): Likewise.
7099
7100         * reflection.c (mymono_metadata_type_hash): Improve hashing for
7101         generic instances.
7102
7103 2005-07-12  Martin Baulig  <martin@ximian.com>
7104
7105         * reflection.c (mono_reflection_create_runtime_class): Remove the
7106         hack for generic type definitions and non-`Run' assemblies.
7107         (mono_reflection_bind_generic_parameters): Also use
7108         `klass->wastypebuilder' to check for TypeBuilders.
7109
7110 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
7111
7112         * class.c (mono_class_layout_fields): Fix calculation of has_references
7113         for generic types.
7114
7115         * class.c (inflate_generic_class): Fix a leak.
7116         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
7117         for generic types.
7118
7119 2005-07-11  Martin Baulig  <martin@ximian.com>
7120
7121         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
7122         on error.
7123
7124 2005-07-11  Martin Baulig  <martin@ximian.com>
7125
7126         * loader.c (find_method): Also lookup in
7127         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
7128
7129 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
7130
7131         * appdomain.c (mono_domain_unload): Don't free the error message
7132         before passing it to mono_get_exception_...
7133
7134         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
7135         
7136 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
7137
7138         * threads.c: try to better guess an available RT signal (bug #75387).
7139
7140 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
7141
7142         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
7143         and CACHE_OBJECT.
7144
7145 2005-07-07  Martin Baulig  <martin@ximian.com>
7146
7147         * class.c (mono_type_get_name_full): Return NULL for
7148         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
7149         fixes #75408.
7150
7151 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
7152
7153         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
7154         exit the appdomain as well being aborted.
7155
7156         * threadpool.c: Create all threadpool threads inside the root appdomain, and
7157         change back to the root domain after calling managed code. This enables
7158         appdomains using threadpools to be unloaded.
7159
7160 2005-07-07  Martin Baulig  <martin@ximian.com>
7161
7162         * class-internals.h
7163         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
7164         into `MonoDynamicGenericClass' since we only need it for dynamic
7165         types.
7166
7167         * reflection.c (mono_class_bind_generic_parameters): We don't need
7168         to compute the `parent' here.
7169
7170 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
7171
7172         * culture-info-table.h : regenerated.
7173
7174 2005-07-06  Martin Baulig  <martin@ximian.com>
7175
7176         * icall.c
7177         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
7178
7179         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
7180
7181 2005-07-06  Martin Baulig  <martin@ximian.com>
7182
7183         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
7184         we're doing a signature-only comparision; fixes #74945.
7185
7186 2005-07-06  Martin Baulig  <martin@ximian.com>
7187
7188         * class-internals.h (MonoGenericClass): Moved some things out into
7189         a new `MonoInflatedGenericClass' type.  
7190         (MonoInflatedGenericClass): New type; the `klass' of a
7191         `MonoGenericClass' is now computed lazyly in
7192         mono_get_inflated_generic_class().      
7193
7194         * class.c (mono_get_inflated_generic_class): New public function.
7195         (mono_class_inflate_generic_method): Removed the unused
7196         `MonoClass *' argument.
7197         (setup_generic_vtable): Don't call mono_get_inflated_method() on
7198         all the methods.
7199         (mono_class_create_generic): Make this static and merge it with
7200         mono_class_create_generic_2(); we're now called automatically from
7201         mono_get_inflated_generic_class().
7202
7203         * loader.c (mono_method_signature): Call
7204         mono_get_inflated_method() here.
7205
7206 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
7207
7208         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
7209         type of fields with RVA.
7210
7211         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
7212         for this pseudo class.
7213         (my_mono_class_from_generic_parameter): Likewise.
7214         (mono_class_init): Allow interfaces to have cctors.
7215
7216 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
7217
7218         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
7219         lazily for AOT methods.
7220
7221 2005-07-05  Martin Baulig  <martin@ximian.com>
7222
7223         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
7224         returns FALSE for a successful match, not TRUE.
7225
7226 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
7227
7228         * loader.c (mono_method_get_index): Optimize this a bit.
7229
7230 2005-07-04  Martin Baulig  <martin@ximian.com>
7231
7232         * class.c
7233         (class_compute_field_layout): Move the check for generic type
7234         definitions into mono_class_layout_fields().  Fixes #74684.
7235         (mono_class_from_generic_parameter): Correctly compute
7236         `klass->parent'; fixes #75457.
7237
7238         * reflection.c (register_assembly, register_module): Make sure
7239         `domain->rejobject_hash' is already created.
7240
7241 2005-07-02  Martin Baulig  <martin@ximian.com>
7242
7243         * class-internals.h
7244         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
7245         `MonoDynamicGenericClass'.      
7246
7247 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
7248
7249         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
7250         returned by a field getter is null, since null is a valid value.
7251
7252 2005-07-01  Martin Baulig  <martin@ximian.com>
7253
7254         * reflection.c (mono_reflection_generic_class_initialize): Update
7255         the `dgclass->fields [i].parent' to the correct class.
7256         (mono_image_get_fieldref_token): Use the declaring type, not the
7257         reflected type.
7258
7259 2005-07-01  Martin Baulig  <martin@ximian.com>
7260
7261         * loader.c (find_method): Also look in the interfaces; fixes #75429.
7262
7263 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
7264
7265         * threads.c (thread_cleanup): assert that thread != NULL
7266         (wait_for_tids_or_state_change): We were using the wrong variable
7267         when accessing wait->threads. `i' was always out of the bounds of
7268         the array.
7269
7270 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7271
7272         * loader.c: map user32 and kernel32 to libMonoSupportW
7273
7274 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
7275
7276         * appdomain.c (unload_thread_main): Mark this as WINAPI.
7277
7278 2005-06-28  Martin Baulig  <martin@ximian.com>
7279
7280         * loader.c (method_from_methodspec): Fix #75334.
7281
7282 2005-06-28  Martin Baulig  <martin@ximian.com>
7283
7284         Fix #74953 - Arrays now implement the generic IList<T> interface
7285         on the 2.0 platform.
7286
7287         * class-internals.h (MonoDefaults): Added `generic_array_class'.
7288
7289         * reflection.c (mono_class_bind_generic_parameters): New public
7290         function; similar to mono_reflection_bind_generic_parameters(),
7291         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
7292
7293         * domain.c (mono_init_internal): Try to initialize.
7294         `mono_defaults.generic_array_class' here; this'll only succeed if
7295         we're using the 2.0 corlib.
7296
7297         * icall.c
7298         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
7299         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
7300         (mono_lookup_internal_call): Added support for nested classes.
7301
7302         * loader.c
7303         (mono_get_method_from_token): Set `result->signature->pinvoke' if
7304         we're an interncall and have generic arguments.
7305
7306         * class.c
7307         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
7308         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
7309         instance of System.Array.InternalArray<T> for arrays, so they
7310         implement the generic IList<T> interface.
7311
7312 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
7313
7314         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
7315         (chastamar@yahoo.com). Fixes #75374.    
7316
7317 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
7318
7319         * culture-info-table.h: regenerated.
7320
7321 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7322
7323         * icall.c: handle spaces correctly for base64 strings.
7324
7325 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
7326
7327         * *.c: Kill some warnings.
7328
7329 2005-06-23  Duncan Mak  <duncan@novell.com>
7330
7331         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
7332         that this builds on Solaris 10 (x86).
7333
7334 2005-06-23  Martin Baulig  <martin@ximian.com>
7335
7336         * class.c
7337         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
7338         generic type definitions.
7339
7340 2005-06-23  Martin Baulig  <martin@ximian.com>
7341
7342         Fix #75331.
7343
7344         * metadata.c (mono_class_get_overrides): Renamed to
7345         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
7346         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
7347         pass it to mono_get_method_full().
7348
7349 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
7350
7351         * reflection.c (mono_reflection_create_runtime_class): take the
7352         mono_domain_lock in this method. Prevents deadlocks
7353
7354 2005-06-22  Martin Baulig  <martin@ximian.com>
7355
7356         * loader.c (method_from_methodspec): Fix #75330.
7357
7358 2005-06-22  Martin Baulig  <martin@ximian.com>
7359
7360         * reflection.c (type_get_qualified_name): Use
7361         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
7362         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
7363         argument; use it if we don't have an assembly name.
7364
7365 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
7366
7367         * object.c: In mono_message_init, set "copy out" flag for in
7368         parameters with the [Out] flag.
7369
7370 2005-06-21  Martin Baulig  <martin@ximian.com>
7371
7372         * class.c
7373         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
7374         and MONO_TYPE_PTR.
7375
7376 2005-06-21  Martin Baulig  <martin@ximian.com>
7377
7378         * class.c (mono_class_init): Don't initialize `class->fields' for
7379         generic instances since they're initialized again in
7380         compute_field_layout(). 
7381         (compute_field_layout): Set the field's `generic_info' here; fix
7382         #75320. 
7383
7384 2005-06-21  Martin Baulig  <martin@ximian.com>
7385
7386         * class-internals.h
7387         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
7388
7389         * metadata.c (mono_metadata_generic_method_equal): Also
7390         distinguish the `generic_class'; fixes #75334.
7391
7392 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7393
7394         * domain.c:
7395         * appdomain.c:
7396         * domain-internals.h:
7397         * reflection.c: 'domain_assemblies' field is now protected by its own
7398         lock. Don't call into managed code to run the AssemblyLoad event if we
7399         now there are no registered delegates for it.
7400
7401 2005-06-20  Martin Baulig  <martin@ximian.com>
7402
7403         * class.c (mono_class_is_assignable_from): Use a custom version of
7404         mono_class_has_parent() to make things work for generic instances;
7405         fix #75300.
7406
7407 2005-06-20  Martin Baulig  <martin@ximian.com>
7408
7409         * loader.c (method_from_methodspec): Apply a patch from
7410         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
7411
7412 2005-06-20  Martin Baulig  <martin@ximian.com>
7413
7414         * class.c (mono_class_init): Reverted Zoltan's last change; it
7415         breaks generics.
7416
7417 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
7418
7419         * threads.c (wait_for_tids_or_state_change): Add missing locking.
7420
7421 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7422
7423         * socket-io.c: fix the index in the socket array for writable/error
7424         sockets. Fixes bug #75306.
7425
7426 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
7427
7428         * class.c (mono_class_init): Allow interfaces to have static ctors.
7429
7430 2005-06-17  Martin Baulig  <martin@ximian.com>
7431
7432         * loader.c (method_from_methodspec): Use `context->container' when
7433         parsing the `gmethod->inst'.
7434
7435 2005-06-17  Martin Baulig  <martin@ximian.com>
7436
7437         * class.c (mono_type_get_name_recurse): Don't add the assembly
7438         name for type arguments.
7439
7440 2005-06-15  Martin Baulig  <martin@ximian.com>
7441
7442         * reflection.c (mono_image_get_inflated_method_token): Encode
7443         correct klass; fixes #75260.
7444
7445 2005-06-13 Michal Moskal <malekith@nemerle.org>
7446
7447         * icall.c: Make GetCorrespondingMethod/Constructor take
7448         MonoReflectionMethod method not MonoMethod. Removed
7449         MonoType.GetCorrespondingField, and make
7450         MonoGenericType.GetCorrespondingField take name not
7451         MonoClassField.
7452
7453 2005-06-13  Michal Moskal <malekith@nemerle.org>
7454
7455         * reflection.c (field_encode_signature, encode_locals):
7456          Make sizes of buffers for types larger (for big generic types).
7457          (create_generic_typespec,
7458          mono_reflection_sighelper_get_signature_local,
7459          mono_reflection_sighelper_get_signature_field):
7460          Add asserts for too small buffers.
7461
7462 2005-06-15  Martin Baulig  <martin@ximian.com>
7463
7464         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
7465         if our parent is not a dynamic type.
7466
7467 2005-06-15  Martin Baulig  <martin@ximian.com>
7468
7469         * class-internals.h (MonoTypeNameFormat): New enum.
7470
7471         * class.c
7472         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
7473         (mono_type_get_full_name): Removed.
7474         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
7475         argument instead of the boolean's.
7476
7477         * icall.c (ves_icall_System_MonoType_getFullName):
7478         Added `gboolean assembly_qualified'.    
7479
7480         * reflection.h
7481         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
7482
7483         * reflection.c (mono_reflection_parse_type): Parse the new type
7484         name format.
7485
7486 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7487
7488         * icall.c: no need to convert from utf16 to utf8 and then back again
7489         after the call to GetLogicalDrives.
7490
7491 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7492
7493         * icall.c: frombase64. Fix problems exposed by new tests.
7494
7495 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7496
7497         * icall.c: added internal calls for converting char [] and strings in
7498         base64 into byte [].
7499
7500 2005-06-10  Martin Baulig  <martin@ximian.com>
7501
7502         * class.c (mono_class_create_generic_2): Read the nested classes
7503         from the metadata rather than from `gklass->nested_classes' since
7504         `gklass' might not be initialized yet.
7505
7506 2005-06-09  Duncan Mak  <duncan@novell.com>
7507
7508         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
7509         all public headers. Fixes #74919.
7510
7511 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
7512
7513         * domain.c: The key for proxy_vtable_hash is now a pointer
7514         array. Added new GHashFunc and GCompareFunc functions for this.
7515
7516         * class.h: The list of interfaces in MonoRemoteClass is known in
7517         advance and can't grow (we create a new MonoRemoteClass if needed),
7518         so now the interface array can be allocated together with
7519         MonoRemoteClass.
7520         
7521         * object.c: Added a new method create_remote_class_key.
7522         Fixed mono_remote_class so it does not depend on
7523         mono_upgrade_remote_class.
7524         Removed extend_interface_array.
7525         Added new method clone_remote_class(), which makes a copy of a remote
7526         class and adds a new interface or class to it.
7527         mono_upgrade_remote_class() now creates a new remote class (or gets
7528         it from the cache) if an vtable upgrade is needed. In this way
7529         we make sure that other objects sharing the same remote class
7530         don't get the new vtable with unwanted interfaces.
7531         
7532         * object-internals.h:
7533         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
7534         
7535         * marshal.c: Track changes in mono_upgrade_remote_class().
7536
7537 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
7538         * icall.c: Add runtime methods for obtaining members of inflated
7539         class, which were created from supplied non-inflated members. It
7540         is used in internal Get{Method,Constructor,Field} methods in
7541         System.Type
7542
7543 2005-06-09  Martin Baulig  <martin@ximian.com>
7544
7545         * reflection.c
7546         (mono_reflection_bind_generic_method_parameters): Fix #75169.
7547
7548 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7549         * reflection.c (mono_image_basic_init): Define
7550         Version in MonoDynamicAssembly. 
7551         
7552 2005-06-08  Martin Baulig  <martin@ximian.com>
7553
7554         Fix #75136.
7555
7556         * loader.c
7557         (mono_method_signature_full): New public method; takes a
7558         `MonoGenericContext *'.
7559         (find_method): Use mono_method_signature_full() and pass the
7560         klass'es context to it.
7561
7562         * class.c (mono_class_is_inflated_method): Use
7563         mono_method_signature_full() and pass the context to it.
7564
7565 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
7566
7567         * object.c: add proper locking in mono_remote_class_vtable(),
7568         fixes possible memory corruption.
7569
7570 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
7571
7572         * marshal.c (mono_remoting_marshal_init): set
7573         initialized after initialization.
7574
7575 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
7576
7577         * locales.c : hush.
7578
7579 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
7580
7581         * object.c (extend_interface_array): fix really silly
7582         memory corrupting / comparison bug.
7583
7584 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7585
7586         * reflection.c: Functions added to support the creation
7587         of CustomAttributeData, which includes Attribute data
7588         used by ReflectionOnly methods.
7589
7590         * reflection.h:  mono_reflection_get_custom_attrs_data and
7591          mono_custom_attrs_data_construct added (functions exposed).
7592
7593          * icall.c: Added mono_reflection_get_custom_attrs_data
7594          as icall.
7595         
7596 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
7597
7598         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
7599         lupus's request.
7600
7601 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
7602
7603         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
7604
7605         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
7606         dynamic DllImportAttribute.
7607
7608         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
7609         dynamic DllImportAttribute.
7610
7611         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
7612         Fixes #75162.
7613
7614 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7615
7616         * threads.c: avoid segfault when an unstarted thread is aborted.
7617
7618 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
7619
7620         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
7621         Returns the name and version of the runtime for reporting.
7622
7623 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7624
7625         * appdomain.c: bump corlib version.
7626         * object-internals.h: new field in MonoReflectionAssembly.
7627
7628 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7629
7630         * object-internals.h: Carlos forgot to add this field.
7631
7632 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7633
7634         * icall.c: Added create_version to create instances
7635         of Version of MonoReflectionAssemblyName. This change helps
7636         the AssemblyName tests to keep running fine.
7637         
7638 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
7639   
7640         * object.c (mono_method_return_message_restore): A somehow less
7641         intrusive fix for #75138.
7642
7643 2005-06-03  Raja R Harinath  <rharinath@novell.com>
7644
7645         * object.c (mono_method_return_message_restore): Fix computation
7646         of expected number of out args.
7647
7648 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
7649
7650         * reflection.c (mono_image_get_method_info): Fix the case when the
7651         charset is empty.
7652
7653 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
7654
7655         * object.c: Added missing null check in
7656           mono_method_return_message_restore.
7657
7658 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
7659
7660         * reflection.c (mono_image_get_method_info): Handle the case when
7661         dllentry is empty.
7662
7663 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
7664
7665         * object.c: When creating the vtable for a proxy, take into account
7666         all inherited interfaces, not only the ones registered in
7667         iclass->interfaces. This fixs bug #74996.
7668         Also, in mono_method_return_message_restore, verify that the array
7669         of out args has the expected lengh.
7670
7671 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7672
7673         * socket-io.c: update the timeout in Poll when the call is interrupte.
7674
7675 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7676
7677         * socket-io.c: support abort/suspend in Select_internal after last
7678         change.
7679
7680 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7681
7682         * threadpool.c: remove warning.
7683
7684 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7685
7686         * icall.c:
7687         * socket-io.[ch]: Select_internal uses poll() now when available, thus
7688         removing the 1024 limit from select(). Runtime part of the fix for
7689         bug #71203.
7690
7691 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7692
7693         * socket-io.c: when resolving the addresses for the same
7694         host returned by gethostname(), get the local IPs from the interface
7695         list. Loopback addresses are discarded if the are interfaces up with
7696         non-loopback ones. Fixes bug #63265.
7697
7698 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
7699
7700         * appdomain.c, verify.c, object-internals.h, reflection.c:
7701         bumped corlib number to 36, and added new extra_flags field
7702         to ReflectionMethodBuilder and friends.  Fixes #75060.
7703
7704 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
7705
7706         * gc.c: register a new weak link only if the object is non-null
7707         (fixes bug#75047).
7708
7709 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
7710
7711         * culture-info.h : short time pattern too.
7712
7713 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
7714
7715         * culture-info.h : expand long time pattern string length.
7716
7717 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7718
7719         * culture-info-table.h : update (more French date format; #72788).
7720
7721 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
7722
7723         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
7724         the method is static. Fixes #75029.
7725
7726 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
7727
7728         * reflection.c: Update the table_idx field of method builders after
7729         saving the module, since it can change. This is a workaround for
7730         bug #74914. 
7731
7732 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7733
7734         * culture-info-table.h : update (additional French date format).
7735
7736 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
7737
7738         * icall.c (ves_icall_type_Equals): Revert last change.
7739         
7740         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
7741
7742         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
7743
7744 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
7745
7746         * class-internals.h: Added executioncontext_class field to 
7747         MonoDefaults structure.
7748         * domain.c: Cache System.Threading.ExecutionContext class in 
7749         mono_defaults.
7750         * object.c: Capture the ExecutionContext for asynchroneous calls in
7751          mono_async_result_new.
7752         * object-internals.h: Added execution_context and original_context 
7753         fields to MonoAsyncResult. Added execution_context to MonoThread.
7754         * security-manager.c|.h: Added mono_get_context_capture_method to 
7755         return the capture method (if required by the security manager or by
7756         the framework version used).
7757         * threadpool.c: Apply capture (if present) ExecutionContext in 
7758         mono_async_invoke and revert to original context after it completes.
7759
7760 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
7761
7762         * culture-info-table.h : updated (real hacky solution for zh-CHT).
7763
7764 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
7765
7766         * culture-info-table.h : zh-CHT related workaround.
7767
7768 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
7769
7770         * marshal.c (emit_marshal_custom): Add some error checking and call the
7771         methods in the ICustomMarshaler interface. Fixes #74875.
7772         
7773         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
7774         native->managed wrappers.
7775
7776 2005-05-12  Martin Baulig  <martin@ximian.com>
7777
7778         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
7779         here and use the loader lock.
7780
7781         * mono-debug.c: Properly lock when the debugger is not attached.
7782         (mono_debug_init): Release the initial lock if we're not running
7783         in the debugger.
7784
7785 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
7786
7787         * marshal.c (emit_marshal_custom): Pass through NULL values without
7788         calling the custom marshalling routines.
7789
7790         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
7791         conversion in structures. Fixes #74882.
7792
7793 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
7794
7795         * culture-info-table.h : zh-* cultures were missing.
7796
7797 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
7798
7799         * threads.c: Added a new event background_change_event which is signaled
7800         when a thread changes its background mode.
7801         Moved here several checks previously done in managed code. The checks
7802         require the thread lock, and using the thread lock in managed code
7803         can result in deadlocks.
7804         Merged Start_internal and Thread_internal into a single method. Now 
7805         Thread_internal does all work of creating and starting a thread.
7806         Added icalls for setting and getting the state of the object. Moved from
7807         managed code to avoid locking there.
7808         Added wait_for_tids_or_state_change() which is called instad of
7809         wait_for_tids when waiting for non-backround threads to end. This method
7810         will return if one of the threads ends or the background_change_event
7811         is signaled.
7812         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
7813         the background mode. This method signals the background_change_event
7814         event.
7815         * icall.c:
7816         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
7817         removed Start_internal.
7818         
7819 2005-05-11  Martin Baulig  <martin@ximian.com>
7820
7821         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
7822         to order of some fields to get proper alignment on 64-bit machines.
7823
7824 2005-05-11  Martin Baulig  <martin@ximian.com>
7825
7826         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
7827         changes as they're broken and completely fuck up the debugger.
7828
7829         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
7830
7831 2005-05-10  Martin Baulig  <martin@ximian.com>
7832
7833         * reflection.c (mono_reflection_generic_class_initialize): Don't
7834         call mono_class_setup_parent() here.
7835
7836 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7837
7838         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
7839         send/receive timeout use an integer in milliseconds. We were using a
7840         struct timeval.
7841
7842 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7843
7844         * locales.c:
7845         (internal_get_cultures): reserve the first slot of the array for the
7846         InvariantCulture, which will be filled in managed code.
7847
7848 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
7849
7850         * reflection.c (mono_image_fill_module_table): Initialize the
7851         GENERATION field as well.
7852
7853 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7854
7855         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
7856         Monitor.Enter on the object.
7857
7858 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
7859
7860         * threads.c: Enable the wait for running threads when exiting.
7861         * icall.c: Suspend all threads before exiting.
7862
7863 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
7864
7865         * assembly.c (mono_assembly_load_reference): Fix warning.
7866
7867 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7868
7869         * threadpool.c: changed the default number of threads per cpu. From now
7870         on, the default will be 20 + (5 * number of cpus) instead of 50.
7871
7872 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
7873
7874         * loader.c (mono_method_get_signature_full): Add locking here.
7875
7876 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
7877
7878         * appdomain.c: Moved methods for parsing and freeing assembly
7879         names to assembly.c.
7880         * assembly.c, domain-internals.h: Created public methods for parsing
7881         assembly names. Fixed mono_assembly_load_with_partial_name:
7882         it now finds the best match, taking into account the version,
7883         token and culture specified in the partial name. Also return
7884         the latest version if no version information is specified.
7885
7886 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
7887
7888         * threadpool.c: replace check for SocketAsyncCall class.
7889
7890 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7891
7892         * threadpool-internals.h:
7893         * Makefile.am: added threadpool-internals.h
7894
7895         * threadpool.c: call mono_unhandled_exception on exceptions not handled
7896         that happen in threadpool threads (tested on MS).
7897         (mono_thread_pool_remove_socket): new function that dispatch any pending
7898         AIO call on a socket that is closing. By now only epoll really needs it,
7899         as select/poll wake up when the socket closes.
7900
7901
7902         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
7903
7904 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
7905
7906         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
7907
7908 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
7909
7910         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
7911
7912 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
7913
7914         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
7915         has an abort request, convert it into a suspend request.
7916
7917 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
7918
7919         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
7920         warning for the usage of `UnmanagedFunctionPointerAttribute' which
7921         is not supported yet.
7922
7923 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7924
7925         * image.c: register assemblies loaded from data (bundles) in the loaded
7926         assemblies hash. Fixes bug #74772.
7927
7928 2005-04-29  Martin Baulig  <martin@ximian.com>
7929
7930         * class.c (mono_type_get_name_recurse): Update to the new naming
7931         schema from the latest .NET 2.x beta2.
7932         (mono_class_setup_vtable_general): If we're a generic instance,
7933         copy the vtable from our generic type definition and inflate all
7934         the methods in it.
7935
7936         * loader.c (find_method): Update to the new naming schema from the
7937         latest .NET 2.x beta2.
7938
7939 2005-04-29  Raja R Harinath  <harinath@gmail.com>
7940
7941         * class.c (mono_class_init): Add a mono_loader_unlock to the
7942         #74734 fix.
7943
7944 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
7945
7946         * icall.c (ves_icall_System_Environment_Exit): Remove the 
7947         suspend_all_other_threads () call for the time being, since it can hang.
7948
7949         * threads.c (mono_thread_manage): Similarly, disable the waiting for
7950         the background threads to exit, since it can also hang.
7951
7952         * class.c (mono_class_init): Applied patch from Ankit Jain 
7953         (radical@gmail.com). Avoid pending init errors when a field refers
7954         to a nested class using a typeref. Fixes #74734.
7955
7956         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
7957         this for dynamic modules.
7958
7959 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7960
7961         * threads.c: don't wait for threads that are in the process of aborting
7962         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
7963         and waiting for background threads to finish. This makes xsp and
7964         mod-mono-server exit without random length delays and/or hangs.
7965
7966 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7967
7968         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
7969
7970 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
7971
7972         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
7973         dynamic types to prevent infinite loops. Fixes #74727.
7974
7975         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
7976         ..._is_assignable_to.
7977
7978 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
7979
7980         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
7981
7982 2005-04-25  Martin Baulig  <martin@ximian.com>
7983
7984         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
7985
7986         * domain.c
7987         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
7988
7989         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
7990
7991         * reflection.c (build_compressed_metadata): Set metadata header
7992         version to 2.0.
7993
7994 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
7995
7996         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
7997         number into an integral and a decimal part. Fixes #70473.
7998
7999         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
8000
8001 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
8002
8003         * culture-info-table.h : reflected the latest locale-builder output.
8004
8005 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8006
8007         * threadpool.c: check for SuspendRequested too when deciding if
8008         mono_thread_interruption_checkpoint should be called.
8009
8010 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8011
8012         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
8013         * threads.c: remove interruption_mutex and use Interlocked instead. When
8014         suspending all the threads, wait for all the suspended events at once.
8015         If we're shutting down and get an APC that is going to be queued,
8016         call mono_thread_execute_interruption immediately, as the thread might
8017         be sleeping on a pthread condition or mutex.
8018
8019         * icall.c: call mono_runtime_set_shutting_down before suspending the
8020         threads.
8021
8022         Fixes bug #74693. And now xsp is happier when exiting.
8023
8024 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
8025
8026         * loader.c (mono_stack_walk): Fix #74690.
8027
8028 2005-04-22  Martin Baulig  <martin@ximian.com>
8029
8030         * mono-debug.h (MonoDebugMethodJitInfo): Added
8031         `MonoDebugMethodJitInfo *jit'.
8032
8033         * mono-debug.c (mono_debug_read_method): Cache the
8034         MonoDebugMethodJitInfo in `address->jit'.
8035         (mono_debug_free_method_jit_info): New public method.
8036
8037 2005-04-22  Martin Baulig  <martin@ximian.com>
8038
8039         * class.c (mono_class_is_assignable_from): Disallow
8040         type parameter -> interface.
8041
8042 2005-04-21  Dick Porter  <dick@ximian.com>
8043
8044         * threads.c (mono_thread_create): Turn an assertion into an error.
8045
8046 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
8047
8048         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
8049         
8050         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
8051         Fix some gcc 4.0 warnings.
8052
8053 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
8054
8055         * file-io.c: fix alt dir separator char on unix systems
8056         and cleanup (fixes bug #71214).
8057
8058 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
8059
8060         * marshal.c: Use CALLVIRT instead of CALL when dispatching
8061         a call to a remote domain, since the method may be an
8062         interface method in the client domain. This fixes bug #74192.
8063
8064 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8065
8066         * threadpool.c: recv/send are now performed before going back to managed
8067         code to save one transition.
8068
8069 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8070
8071         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
8072
8073         * metadata/threadpool.c: removed hack to workaround the bug above.
8074
8075         Fixes bug #74618.
8076
8077 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
8078
8079         * reflection.c reflection.h: Fix handling of parameter defaults in
8080         dynamic methods. Also fixes handling of parameter attributes.
8081         Fixes #74609.
8082
8083         * mono-debug.c (mono_debug_close_image): Fix warning.
8084
8085 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8086
8087         * socket-io.h: replaced old unused field with new 'blocking'.
8088         * threadpool.c: restore socket blocking state on windows(tm).
8089
8090 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
8091
8092         * icall.c: don't return the codebase in the AssemblyName[] returned by
8093         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
8094         * object-internals.h: Removed FIXME (fields were presents) and fixed
8095         versioncompat declaration.
8096
8097 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8098
8099         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
8100         not closed, so don't cleanup when it happens.
8101
8102 2005-04-13  Chris Toshok  <toshok@ximian.com>
8103
8104         * mono-debug-debugger.h: change prototype for
8105         mono_debugger_lookup_type.
8106
8107         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
8108         this function, although it should probably be named
8109         mono_debugger_init_type.
8110
8111 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8112
8113         * threadpool.c: fix non-AIO case.
8114
8115 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
8116
8117         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
8118         the built-in profiler to measure just JIT compilation times.
8119
8120 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8121
8122         * threadpool.c: the epollfd might be closed by another thread at
8123         any time, so ignore EBADF at treat it as a "we're closing" sign.
8124
8125 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8126
8127         * threadpool.c: release the semaphores with a count equals to the number
8128         of working threads in both IO and regular pools. Fixed typo that messed
8129         up the count of IO pool threads. Don't initialize the pipe handles if
8130         we're using epoll.
8131
8132 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8133
8134         * threadpool.c: some systems don't like a NULL when deleting the socket
8135         from epoll.
8136
8137 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8138
8139         * threadpool.c: fix semaphore allocation.
8140
8141 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8142
8143         * threadpool.c: added epoll() based implementation for asynchronous IO
8144         that is used instead of the default poll() when available.
8145         It can be disabled by setting MONO_DISABLE_AIO.
8146
8147 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8148
8149         * threadpool.c: windows needs 'closesocket' and instead of returning
8150         0 when the stream is closed while in select, it returns -1. Fixes bug
8151         #74573.
8152
8153 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
8154
8155         * class.c (class_compute_field_layout): Fix the regression caused by
8156         the previous try.
8157
8158 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8159
8160         * threadpool.c: separate pool for socket async. IO.
8161         * threadpool.h: mono_max_worker_threads is not a global any more.
8162
8163 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
8164
8165         * class.c (class_compute_field_layout): Fix #74549.
8166
8167 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8168
8169         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
8170         use 2 connected sockets instead.
8171
8172 2005-04-08  Miguel de Icaza  <miguel@novell.com>
8173
8174         * mono-config.c: Add new entry point for mkbundle
8175         mono_config_parse_memory. 
8176
8177 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8178
8179         * threadpool.c: removed another unused function.
8180
8181 2005-04-08  Ankit Jain  <radical@corewars.org>
8182
8183         * reflection.c (get_default_param_value_blobs): Add 'types'
8184         parameter to get the types encoded in the constant table.
8185         (mono_param_get_objects): Use the type from the constant table,
8186         not the type of the parameter, when creating default values.
8187         Handle null default values correctly.
8188
8189 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8190
8191         * file-io.c:
8192         * file-io.h:
8193         * threadpool.c:
8194         * threadpool.h:
8195         * icall.c:
8196         * socket-io.c: removed dead code for async IO.
8197
8198 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8199
8200         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
8201
8202         * threadpool.c: intercept socket async. calls and pass them to a thread
8203         that is polling and dispatching the job items to the threadpool as
8204         socket become ready. Fixes bugs #71217, #71933.
8205
8206         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
8207         between char and short/ushort arrays.
8208
8209         * socket-io.c: remove dead code.
8210
8211 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
8212
8213         * locales.c,
8214           icall.c : removed InternalToUpper_Comp() and
8215           InternalToLower_Comp().
8216
8217 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
8218
8219         * char-conversions.h : The tables were incorrectly generated. Should
8220           be generated against invariant culture.
8221
8222 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
8223
8224         * object.c (mono_runtime_invoke_array): Fix return value when 
8225         passing pre-created valuetype objects to ctors.
8226
8227         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
8228         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
8229         Fixes #74338.
8230
8231 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
8232
8233         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
8234         only used with --security and hides the wrong corlib version error.
8235
8236 2005-03-30  Joshua Tauberer  <tauberer@for.net>
8237
8238         * class.c: Changed mono_class_name_from_token so that types
8239         outside of a namespace don't have an initial period.  Improved
8240         the g_warning message used in _mono_class_get when loading
8241         fails.
8242         * assembly.c: In mono_assembly_load_reference, when an assembly
8243         can't be found, "No such file or directory" is misleading and
8244         unhelpful because a few paths were checked for the presence of
8245         the assembly.  When that happens (ENOENT), display a nicer
8246         message indicating the directories that were searched.  In all
8247         cases, the warning is made easier to read for non-hackers.
8248
8249 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
8250
8251         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
8252         project/solution.
8253         * appdomain.h|domain.c: Removed inline from functions.
8254         * appdomain.c: Reduced warnings when compiling on windows.
8255         * icall.c: Fixed output_debug declaration to gunichar2*.
8256         * mono-config.c: Reduced warnings when compiling on windows.
8257         * rand.c: Added missing "windows.h". Added missing return value.
8258         * rawbuffer.c: Added missing winsock2.h for windows.
8259         * sysmath.h: Added mono-compiler.h header to allow/ease 
8260         compilation with non-GCC compilers.
8261         * threads.c: Fixed declarations to compile with VS.NET C compiler.
8262         Removed cast warnings.
8263
8264         Adapted from the work of J Lothian (for VC6).
8265
8266 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
8267
8268         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
8269         from default_path.
8270
8271 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
8272
8273         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
8274         the 2.0 profile.
8275
8276 2005-03-27  Raja R Harinath  <harinath@gmail.com>
8277
8278         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
8279         has to be in $(exec_prefix).  $(prefix) is for arch-independent
8280         stuff, and it would probably use $(prefix)/share rather than
8281         $(prefix)/lib.
8282
8283 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8284
8285         * console-io.c: added 2 includes that might be missing.
8286
8287 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
8288
8289         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
8290         profile.
8291
8292         * reflection.c (create_custom_attr): Allocate the params array using
8293         alloca so it gets GC tracking.
8294
8295 2005-03-23  Chris Toshok  <toshok@ximian.com>
8296
8297         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
8298         out some spew.
8299
8300 2005-03-24  Raja R Harinath  <rharinath@novell.com>
8301
8302         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
8303         changes to pick up any changes in prefix, etc.
8304
8305 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
8306
8307         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
8308         
8309         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
8310         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
8311
8312 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
8313
8314         * class-internals.h object-internals.h class.c reflection.c: Extend the
8315         mono_lookup_dynamic_token () function to return the class of the
8316         token as well. 
8317
8318         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
8319         well. Fixes #73848.
8320
8321 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
8322
8323         * security-manager.c: Skip inheritance checks for intra-corlib
8324         class inheritance and method overrides. This skips a lot of checks
8325         and (anyway) permissions cannot work until corlib is loaded.
8326
8327 2005-03-23  Martin Baulig  <martin@ximian.com>
8328
8329         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
8330         MONO_TYPE_GENERICINST.  
8331
8332 2005-03-23  Martin Baulig  <martin@ximian.com>
8333
8334         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
8335
8336 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8337
8338         * class.c: added locking comments to some functions.
8339         Cache the interface offsets arrays (saves about 20 KB
8340         of runtime memory in a typical app).
8341         Reduce the time overhead in mono_class_setup_supertypes ().
8342
8343 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
8344
8345         * icall.c: speedup and fix leaks in GetMethodsByName and
8346         GetPropertiesByName.
8347
8348 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8349
8350         * reflection.c: some locking fixes.
8351
8352 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
8353
8354         * metadata.c: added missing break in case statement.
8355
8356 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
8357
8358         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
8359         typedbyref return values. Fixes #73941.
8360
8361 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
8362
8363         * security-manager.c|h: Added demandunmanaged method and 
8364         suppressunmanagedcodesecurity class to MonoSecurityManager.
8365         Renamed aptc class to allowpartiallytrustedcallers.
8366
8367 2005-03-17  Martin Baulig  <martin@ximian.com>
8368
8369         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
8370
8371 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8372
8373         * file-io.c: disabled file async. IO using aio_*. It uses the
8374         threadpool now. Workaround for bug #73718.
8375
8376 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8377
8378         * assembly.h, mono-config.c: added code to deal with bundled configs
8379         for bundled assemblies.
8380
8381 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
8382
8383         * *.c, private.h: cleanup, removing old private.h header file.
8384
8385 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
8386
8387         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
8388         and throw_on_unmappable_char attributes.
8389
8390 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
8391
8392         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
8393         _ProcessName_internal.
8394
8395 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
8396
8397         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
8398         #73631.
8399
8400         * icall.c threads.c threads-types.h: Remove slothash icalls as they
8401         are no longer used.
8402
8403 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
8404
8405         * object.c (compute_class_bitmap): Add support for generics. Fixes
8406         #73527.
8407
8408 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
8409
8410         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
8411
8412 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8413
8414         * filewatcher.c: commented out the code for windows watcher, as we don't
8415         use it (we use the managed implementation instead).
8416
8417 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
8418
8419         * object-internals.h (MonoThread): Remove 'unused1' field.
8420
8421         * appdomain.c: Bump corlib version.
8422
8423         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
8424
8425         * reflection.c (mono_reflection_create_runtime_class): Remove the
8426         AssemblyBuilder.Save optimization since it causes too many problems.
8427
8428 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
8429
8430         * exception.c|h: Added mono_get_exception_reflection_type_load to
8431         create a ReflectionTypeLoadException object.
8432         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
8433         to return NULL is a InheritanceDemand fails during reflection. Updated
8434         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
8435         ReflectionTypeLoadException if an InheritanceDemand fails during 
8436         reflection. Added icall mapping for GetLinkDemandSecurity.
8437         * security-manager.c|h: Added ves_icall_System_Security_
8438         SecurityManager_GetLinkDemandSecurity internal call to return the
8439         class and methods permissions set for a LinkDemand. Removed unused
8440         fields in MonoSecurityManager.
8441
8442 2005-03-10  Martin Baulig  <martin@ximian.com>
8443
8444         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
8445         it's a generic instance.
8446
8447 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
8448
8449         * reflection.c (mono_get_object_from_blob): Applied patch from
8450         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
8451
8452         * class.c (mono_class_is_assignable_from): Another try at fixing 
8453         #73469 without breaking anything.
8454
8455 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
8456
8457         * class.c: (mono_class_is_assignable_from): Revert the last changes
8458         since they don't work with generics.
8459         
8460         * class.c (mono_class_is_assignable_from): Fix build bustage.
8461
8462         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
8463         the managed IsAssignableFrom method. Fixes #73469.
8464
8465         * reflection.c (mono_reflection_call_is_assignable_from): New helper
8466         function.
8467
8468 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
8469
8470         * object.c (mono_load_remote_field_new): Fix returning uninitialized
8471         memory when the remoting callback does not sets the out arguments.
8472         Fixes #73007.
8473
8474         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
8475         by mistake.
8476
8477         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
8478
8479         * object-internals.h (MonoStackFrame): Sync with managed object layout.
8480
8481         * appdomain.c: Bump corlib version.
8482
8483 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
8484
8485         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
8486         function.
8487
8488         * threads.c (mono_thread_attach): Detect threads which are not started
8489         by the GC pthread wrappers.
8490
8491 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
8492
8493         * icall.c: Added new icall for RNG.
8494         * rand.c|h: Added new icall to open the RNG. This allows to share a 
8495         single handle on Linux to access /dev/urandom and fix #73183.
8496
8497 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
8498
8499         * object.c: setting the new vtable in a transparent proxy object must
8500         not change the GC descriptor.
8501
8502 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8503
8504         * object.c: fixed compilation without GCJ support.
8505         * reflection.c: for runtime-created types ensure klass->has_references
8506         is correct (bug #73215).
8507
8508 2005-03-02  Martin Baulig  <martin@ximian.com>
8509
8510         * class.c (mono_class_is_assignable_from): Make this work if
8511         `oklass' is a generic instance; fixes #72831.
8512
8513 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
8514
8515         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
8516         with hasthis set.
8517         
8518         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
8519
8520         * marshal.c: Reorganize native->managed marshalling code to also use
8521         the emit_marshal_... functions.
8522
8523 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
8524
8525         * object.c: typed allocs have issues with bitmap sizes > 30,
8526         so check for max_set >= 30.
8527
8528 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
8529
8530         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
8531         managed code. Fixes #73012.
8532
8533         * metadata.h (MonoMarshalSpec): Add elem_mult field.
8534
8535         * metadata.c reflection.c: Load/Emit elem_mult as well.
8536         
8537         * metadata.h (MonoMarshalSpec): Add comment.
8538
8539         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
8540
8541         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
8542         num_elem to -1 if not given.
8543
8544         * object-internals.h (MonoReflectionMarshal): Add has_size field.
8545
8546         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
8547         given values.
8548
8549 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
8550
8551         * null-gc.c (mono_gc_free_fixed): Was not compilable.
8552
8553 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
8554
8555         * reflection.c (encode_marshal_blob): Encode param_num field as well.
8556
8557         * object-internals.h (MonoReflectionMarshal): Add param_num field.
8558
8559 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
8560
8561         * object.c: generalized the reference bitmap creation
8562         and added hooks for the new GC.
8563         * class-internals.c: removed the gc_bitmap field from MonoClass.
8564
8565 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8566
8567         * domain.c: help the compiler to produce better code
8568         in mono_jit_info_table_find ().
8569
8570 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
8571
8572         * object.c: make all allocations look typed.
8573
8574 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8575
8576         * socket-io.c: load Mono.Posix if it's not loaded already
8577         (fixes bug#73033).
8578
8579 2005-02-24  Martin Baulig  <martin@ximian.com>
8580
8581         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
8582         * reflection.c (dup_type): Likewise.
8583
8584 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
8585
8586         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
8587         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
8588
8589 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
8590
8591         * domain.c, threads.c, object-internals.h: make the critical thread
8592         local vars use the fast access mode (even when we're compiled in
8593         a lib). Provide accessors to be used by the jit during codegen.
8594
8595 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8596
8597         * appdomain.c: Changed hook functios behavior to include
8598         support for the reflection only assemblies. Some icalls were changed
8599         to support the mentioned assemblies too. Signatures of static methods
8600         try_assembly_resolve and real_load now have an additional parameter:
8601         refonly.
8602
8603         * assembly.c: General changes to mono_assembly_ methods to support
8604         reflection only api. Functions mono_assembly_open, mono_assembly_load,
8605         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
8606         suffix, to support an additional gbool parameter to specify whether
8607         the assembli is reflection only or not. Created some new hook functions 
8608         to add support for reflection only assemblies. Signatures of static 
8609         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
8610         have now an additional parameter: refonly.
8611
8612         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
8613         indicating whether the assembly is reflection only or not.
8614
8615         * exception.c: Add mono_get_exception_invalid_operation.
8616
8617         * icall.c: Throw an InvalidOperationException when trying to invoke
8618         a property/method/event, or trying to set/get the value of a field.
8619         Also add an icall to retrieve the ref_only flag to the
8620         MonoReflectionAssembly.
8621
8622 2005-02-23  Chris Toshok  <toshok@ximian.com>
8623
8624         Part of fix for #72827.
8625         * mono-debug.c (mono_debug_add_method): add lexical block data to
8626         the info we write.  Kind of a hack at the moment - we copy the
8627         lexical block info from the MonoDebugMethodInfo to the
8628         MonoDebugMethodJitInfo here, before writing it.
8629         (mono_debug_read_method): read the lexical block info.
8630
8631         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
8632
8633         * debug-mono-symfile.h: add lexical block support.
8634
8635         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
8636         support.
8637
8638 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
8639
8640         * loader.c (mono_lookup_pinvoke_call): Fix warning.
8641
8642         * object.c (mono_runtime_free_method): Call mono_free_method () and
8643         put the TODOs there.
8644
8645         * loader.c (mono_free_method): Free up most memory allocated for 
8646         dynamic methods.
8647
8648 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
8649
8650         * reflection.c: properly flag a Type argument to a
8651         named custom attr value (bug #72248).
8652
8653 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
8654
8655         * reflection.c: reduce code duplication in named custom
8656         attribute encoding.
8657
8658 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
8659
8660         * reflection.c: properly encode custom attrs of type object
8661         (bug #72649).
8662
8663 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
8664
8665         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
8666
8667 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
8668
8669         * socket-io.c: load System.dll if it's not loaded already
8670         (bug #72850 and #70477).
8671
8672 2005-02-21  Martin Baulig  <martin@ximian.com>
8673
8674         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
8675         generic instances.
8676
8677 2005-02-21  Martin Baulig  <martin@ximian.com>
8678
8679         * reflection.c (mono_image_build_metadata): We also need to
8680         "fixup" the MethodImpl table after we computed the final method
8681         indices.  Call fixup_methodimpl() to do that.
8682         (fixup_methodimpl): New private method.
8683
8684 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
8685
8686         * assembly.c: special case mscorlib.dll (bug#72536),
8687         patch from Carlos Alberto Cortez.
8688
8689 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
8690
8691         * threads-types.h threads.c: Fix build bustage.
8692
8693         * threads.c: Use a union for long<->double conversions.
8694
8695         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
8696         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
8697
8698         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
8699         containing the checkpoint call with NOT_TAKEN.
8700         
8701         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
8702         checkpoint before pushing the arguments, so they won't have to be
8703         spilled to stack.
8704
8705 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8706
8707         * domain.c, assembly.c, domain-internals.h: make some data
8708         const and relocation-free.
8709
8710 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
8711
8712         * object.c, appdomain.c, class-internals.h: introduce the
8713         MonoClassRuntimeInfo structure to hold the info needed to
8714         use a class at runtime. Made mono_class_vtable() lock-free
8715         for all the appdomains.
8716
8717 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
8718
8719         * metadata-internals.h, image.c: introduce a per-image mempool to
8720         be used for memory that has the same lifetime as the image.
8721
8722 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
8723
8724         * domain.c: In mono_init_internal(), instead of selecting the first
8725         runtime version supported by an executable, get a list of all
8726         supported versions and select the one for which an mscorlib exists
8727         (since even if the runtime supports a given version, it doesn't mean
8728         that the framework for that version is installed).
8729         Modified get_runtimes_from_exe to support this behavior.
8730         In supported_runtimes, added information about additional system
8731         assembly versions.
8732         
8733         * assembly.c: Added support for more than one system assembly version
8734         per runtime version. Updated the assembly list.
8735         In mono_assembly_remap_version, removed the initial version check,
8736         since we don't know to which version we need to compare until we
8737         get the version set on which the assembly is based.
8738         Moved the code for loading corlib into the new method
8739         mono_assembly_load_corlib(), so it can be used by the initialization
8740         code.
8741         
8742         * domain-internals.h: Updated data structures and added declaration
8743         for mono_assembly_load_corlib.
8744
8745 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
8746
8747         * reflection.c (resolve_object): Fix the creation of the signature in 
8748         the SignatureHelper case.
8749
8750         * assembly.c (mono_assembly_remap_version): Fix binary search.
8751         
8752 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
8753  
8754         * class.c: Added inheritance check when a method is overloaded (from a
8755         virtual method or when implementing an interface) and when a class is
8756         inherited. Added functions to set a failure for a class and to 
8757         retreive the exception from a failure.
8758         * class-internals.h: Added fields to MonoClass to keep the exception
8759         information status for inheritance (or other exceptions) to be thrown
8760         later (i.e. not at load time).
8761         * object.c: Throw the inheritance SecurityException when a type is to 
8762         be created with either class or method inheritance violations.
8763         * reflection.c|h: Fix when getting declsec from a class. Removed 
8764         unrequired code for class. Improved sanity in parameter naming.
8765         * security-manager.c|h: Added functions to check for class and method
8766         inheritance.
8767
8768 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
8769
8770         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
8771         and has_finalize in dynamic types as well.
8772
8773 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
8774
8775         * culture-info-table.h : fixed currency format for en-GB (and so on).
8776
8777 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
8778
8779         * gc.c: ensure the GC handles never have 0 as a value.
8780
8781 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
8782
8783         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
8784         a pointer to a struct to unmanaged code. Fixes #72625.
8785
8786 2005-02-16  Martin Baulig  <martin@ximian.com>
8787
8788         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
8789
8790 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
8791
8792         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
8793
8794 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
8795
8796         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
8797
8798         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
8799         UnmanagedFunctionPointerAttribute, use it for determining calling convention
8800         etc. Fixes #71471.
8801
8802         * reflection.c (mono_custom_attrs_get_attr): New helper function.
8803
8804         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
8805
8806 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
8807
8808         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
8809         changes to make the current context a field in MonoThread.
8810
8811 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
8812
8813         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
8814         the last change.
8815         
8816         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
8817         extracted from mono_marshal_get_native_wrapper.
8818
8819         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
8820         to create wrappers around native functions.
8821
8822         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
8823         delegates for arbitrary function pointers. Fixes #71472.
8824
8825 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
8826
8827         * threads.c: cleaned up the code a little.
8828
8829 2005-02-15  Martin Baulig  <martin@ximian.com>
8830
8831         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
8832         the data table.
8833
8834         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
8835         allocate larger chunks if needed.
8836
8837 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
8838
8839         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
8840         in by mistake.
8841
8842 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
8843
8844         * domain.c: keep the domains in an array and ensure the domain ids
8845         are kept small, so they can be used as indexes to domain-specific data
8846         with a small memory overhead.
8847
8848 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
8849
8850         * icall.c: Handle byref types in Type icalls. Fixes #72544.
8851
8852 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
8853
8854         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
8855
8856 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
8857
8858         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
8859
8860         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
8861         values.
8862
8863         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
8864         
8865 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
8866
8867         * domain-internals.h: add the hashtable here.
8868
8869         * class-internals.h: Remove `info' from MonoMethod
8870
8871         * domain.c: Add a new hashtable, jit_trampoline_hash
8872
8873 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
8874
8875         * object.c: don't set the value of static fields
8876         (fixes bug#72494).
8877
8878 2005-02-11  Martin Baulig  <martin@ximian.com>
8879
8880         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
8881         (mono_debug_add_method): Silently ignore the method if it's too big.
8882         (mono_debug_add_type): Likewise.
8883
8884 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
8885
8886         * threads.c, appdomain.c: remove #ifdefs from the code.
8887
8888 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
8889
8890         * metadata-internals.h: Added flags to MonoAssembly to cache the most
8891         common security informations. This allows us to stay in unmanaged code
8892         when doing LinkDemand and it's special cases (except for the first 
8893         time for initialization). The flags a very much used with --security.
8894         * reflection.c|h: Added code to get declarative security attributes 
8895         for LinkDemand and InheritanceDemand. This required to refactor the
8896         existing code for Demand.
8897         * security-manager.c|h: Added new method fields for the special cases
8898         of LinkDemand.
8899
8900 2005-02-10  Martin Baulig  <martin@ximian.com>
8901
8902         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
8903         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
8904
8905 2005-02-10  Martin Baulig  <martin@ximian.com>
8906
8907         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
8908         debugging code; this is almost a complete rewrite.
8909
8910         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
8911
8912 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8913
8914         * domain.c, object.h: expose mono_string_equal () and 
8915         mono_string_hash ().
8916         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
8917         it's implemented in managed code.
8918
8919 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8920
8921         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
8922         lo leak objects between appdomains.
8923
8924 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8925
8926         * assembly.c: old compilers compilation fix from 
8927         robertj@gmx.net (Robert Jordan).
8928
8929 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
8930
8931         * class-internals.h: Little reminder for the future.
8932
8933         * debug-helpers.c: Fix up wrapper_type_names
8934
8935 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8936
8937         * image.c, metadata-internals.h: when loading an image from a file,
8938         mmap all of it and use the same codepaths as when using a
8939         in-memory image: the code is simpler and we use less memory
8940         (both writable and readonly).
8941
8942 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
8943
8944         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
8945         API to alloc runtime data structures that need to be tracked by the
8946         GC and contain pointers.
8947         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
8948         make the code more readable and eventually use a different GC.
8949
8950 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
8951
8952         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
8953         for out arguments.
8954         
8955 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
8956
8957         * object.c: In release_type_locks(), don't release the cctor lock
8958         if it has already been released. This fixes a crash in the
8959         thread5 test.
8960
8961 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8962
8963         * gc.c, marshal.c, icall.c: register a delegate for finalization
8964         only when the native function pointer has been allocated for it.
8965
8966 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
8967
8968         * object.c: cleaned up some code, allocate objects that are
8969         pointer free with the atomic malloc variant. Allocate memory
8970         for static data from the mempool if it's pointer-free.
8971         Allocate the bounds array at the end of the array data, when needed.
8972         * object-internals.h, object.h: move a private function in a private
8973         header.
8974         * class.c: handle missing case in tracking references in fields.
8975
8976 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
8977
8978         * class.c, class-internals.h: keep track if a type has
8979         reference fields in either the instance or static fields.
8980
8981 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
8982
8983         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
8984         and renamed to MonoRuntimeInfo. Added fields to store the expected
8985         framework assembly version. Changed mono_get_framework_version and
8986         mono_get_runtime_version for a single mono_get_runtime_info method.
8987         
8988         * assembly.c: Added method to remap system assembly versions to the
8989         current executing runtime version. Removed old mapping code.
8990         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
8991         
8992         * icall.c, reflection.c: Track api changes.
8993
8994 2005-02-06  Miguel de Icaza  <miguel@novell.com>
8995
8996         * loader.c (method_from_memberref): Improve error reporting,
8997         produce the class name instead of the typeref/typedef index. 
8998
8999 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
9000
9001         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
9002
9003 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
9004
9005         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
9006         stdcall and charset name mangling.  Reorganize the code and add
9007         some tracing stuff.
9008
9009 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
9010
9011         * monodiet.c: More iters!
9012
9013         * marshal.c: Iter usage.
9014
9015         * icall.c: Iter usage.
9016
9017         * object.c: Use iters.
9018
9019         * debug-helpers.c: More iters
9020
9021 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
9022
9023         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
9024         under win32.
9025
9026 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
9027
9028         * mono-debug-debugger.c: use iters
9029
9030         * class.c, class-internals.h: mono_class_setup_events is static
9031         now
9032
9033         * All callers: use iters
9034
9035 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
9036
9037         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
9038         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
9039
9040 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
9041
9042         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
9043
9044         * marshal.h: Add prototypes for ldfld/stfld_remote.
9045
9046         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
9047         this is called during startup.
9048         
9049 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
9050
9051         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
9052         MonoThreadsSync struct private in monitor.c. Changed the way
9053         MonoThreadsSync is allocated so it's faster and there is no
9054         need to keep track of it with a finalizer and it uses less memory.
9055         This also finally allows us to allocate mono objects as ptrfree when
9056         there are no reference fields.
9057
9058 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
9059
9060         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
9061         disappearing link to the GC interface and use them to simplify
9062         the gchandles code.
9063
9064 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
9065
9066         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
9067         stfld_remote which call mono_load/store_field_new. This allows methods
9068         calling ldfld/stfld wrappers to be AOTed.
9069
9070         * console-io.c: Include sys/filio.h under solaris.
9071         
9072         * console-io.c: Include curses.h if needed correctly.
9073
9074 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
9075         
9076         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
9077         method->klass as well.
9078
9079         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
9080
9081         * class.c (mono_class_init): Switch on lazy initialization of 
9082         methods.
9083
9084         * class.c (mono_class_get_finalizer): Handle the case when the 
9085         finalizer is inherited.
9086
9087 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9088
9089         * console-io.c: <curses.h> is needed by term.h on solaris.
9090
9091 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
9092
9093         * icall.c, class-internals.h, monodiet.c, class.c: Remove
9094         mono_class_setup_properties where possible. Remove this ftn from
9095         the header file, and make it static.
9096
9097 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
9098
9099         * loader.c: Add missing setup_... call.
9100
9101         * class.c: Add missing setup_... calls.
9102
9103         * class.c (mono_class_init): Switch on lazy initialization of 
9104         the generic vtable.
9105         
9106         * class.c (mono_class_init): Fix generics broken by the recent changes.
9107
9108         * monodiet.c (handle_type): Add missing setup_... calls.
9109
9110         * class.c: Back out garbage in previous patch.
9111         
9112         * class.c: Add missing setup_... calls.
9113
9114         * class.c (mono_class_get_method_from_name_flags): Avoid calling
9115         mono_class_setup_methods () if possible.
9116
9117         * class-internals.h (MonoClass): Add 'has_cctor' flag.
9118
9119         * class-internals.h (MonoCachedClassInfo): New structure.
9120
9121         * class.c: Initialize properties and events fields of MonoClass lazily.
9122
9123         * class.c: Add infrastructure for lazily initializing the methods and
9124         vtable fields of MonoClass. Not yet used.
9125
9126         * class.c (mono_class_get_finalizer): New helper function.
9127
9128         * class.c: Add infrastructure for loading some class related data from
9129         an AOT file.
9130
9131         * object.c: Add infrastructure for initializing the vtable from data
9132         in the AOT file.
9133
9134         * gc.c (run_finalize): Use mono_class_get_finalizer ().
9135
9136         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
9137         appropriate initialization function before accessing parts of the
9138         MonoClass structure.
9139
9140         * marshal.c: Fix warnings.
9141         
9142         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
9143
9144         * mono-debug-debugger.c (get_exception_message): Use 
9145         mono_class_get_method_from_name_flags ().
9146
9147 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
9148
9149         * reflection.c, appdomain.c: Replace a few manual searches that
9150         Zoltan missed. (Paolo approved this part of my initial patch).
9151
9152 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
9153
9154         * profiler.c: disable recording statistical events at report time.
9155
9156 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
9157
9158         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
9159         to byteswap arrays of enum values, too (bug #72080).
9160
9161 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
9162
9163         * appdomain.c (set_domain_search_path): Allow this to be called if
9164         domain->setup is not yet set.
9165
9166         * loader.c (mono_method_get_index): New helper function.
9167
9168         * loader.c reflection.c: Use mono_method_get_index ().
9169
9170         * class.c (mono_class_get_method_from_name_flags): New helper method.
9171
9172         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
9173         this.
9174
9175         * class.c (mono_class_get_cctor): New helper method.
9176
9177         * string-icalls.c object.c class.c marshal.c reflection.c: Use
9178         mono_class_get_method () to look up methods.
9179
9180 2005-02-01  Miguel de Icaza  <miguel@novell.com>
9181
9182         * console-io.c: Fix the build, this should work on Windows.
9183
9184 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
9185
9186         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
9187         be set to null to keep things valid
9188
9189 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9190
9191         * icall.c: added Console 2.0 icalls.
9192         * Makefile.am: added console-io.[ch]
9193         * console-io.[ch]: internal calls for Console 2.0 API.
9194
9195 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
9196
9197         * class.c: make sure we consider all the interfaces
9198         when calculating max_interface_id (bug found by
9199         Jeroen Frijters running ikvm).
9200
9201 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
9202
9203         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
9204         valuetype fields to null.
9205
9206         * object.c (set_value): Ditto. Fixes #71669.    
9207
9208 2005-01-31  Martin Baulig  <martin@ximian.com>
9209
9210         * metadata.c (mono_metadata_has_generic_params): New public
9211         function; checks whether something is a generic method.
9212
9213 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
9214
9215         * appdomain.c: fix infinite recursion when adding assemblies.
9216
9217 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
9218
9219         * object.c: Fix small typo to return all items for Environment.
9220         GetCommandLineArgs.
9221
9222 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
9223
9224         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
9225         reflection.c: more domain and assembly-unload related fixes
9226         and memory leaks plugs.
9227
9228 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
9229
9230         * 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.
9231
9232 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
9233
9234         * loader.c (mono_method_signature): Make this method lazy
9235         (mono_get_method_from_token): Don't computate the signature here.
9236
9237         Doing this saves quite a bit of memory. I got 90 kb on starting up
9238         monodoc. It should also save some disk reads on startup.
9239
9240         * *: MonoMethod->signature might be NULL now. You *MUST* use
9241         mono_method_signature.
9242
9243 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
9244
9245         * object.c (mono_runtime_get_main_args): Return an array from the
9246         current domain here. Fixes #71938.
9247
9248 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
9249
9250         * monitor.c: formatting changes to comply with the
9251         mono coding style and remove #ifdefs from the code.
9252
9253 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
9254
9255         * metadata.c, private.h: remove some unneeded data
9256         and use a more compact representation for table schemas.
9257
9258 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
9259
9260         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
9261         to get a better distribution in hash tables.
9262         * *.c: use mono_aligned_addr_hash() where appropriate.
9263         * assembly.c: make var static.
9264
9265 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
9266
9267         * domain-internals.h: Put MonoJitInfo on a diet.
9268
9269         * domain.c: Fix a warning.
9270
9271 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9272
9273         * gc.c: rework the gc handles code to reuse handles
9274         when freed.
9275
9276 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
9277
9278         * domain.c: fixed long standing bug in mono_string_equal() which
9279         was brought to light with the ldstr changes.
9280
9281 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
9282
9283         * reflection.c: Remove warning by adding missing include for marshal.h
9284
9285 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
9286
9287         * domain.c, object.c: change the ldstr_table to hold
9288         MonoString* as keys: makes the runtime isinterned lookup
9289         faster and simplifies memory management.
9290
9291 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
9292  
9293         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
9294         possible to add imperative security checks before calling the icall.
9295         * reflection.c: Return security attributes on the original MonoMethod
9296         (and not the wrapped one). This fix permissions on icalls.
9297
9298 2005-01-25  Dick Porter  <dick@ximian.com>
9299
9300         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
9301         the check for mktime() support actually test the mktime() return
9302         value.  "Fixes" bug 71682, though the output is still different to
9303         MS.
9304
9305 2005-01-25  Martin Baulig  <martin@ximian.com>
9306
9307         * class.c (mono_class_is_assignable_from): Make this work for
9308         generic instances.
9309
9310 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
9311
9312         * marshal.c (mono_string_utf8_to_builder)
9313         (mono_string_builder_to_utf16): We might not have ownership of the
9314         string. In thise case, we need to create a new buffer.
9315
9316         * object-internals.h (mono_stringbuilder_capacity): sb->str might
9317         be null, in which case, use the default capacity.
9318
9319 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
9320
9321         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
9322         GC events to the profiler.
9323
9324 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
9325
9326         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
9327         if you don't want the GC to run.
9328
9329 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
9330
9331         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
9332         start providing a GC API and keeping different implementations in
9333         their own file.
9334         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
9335
9336 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
9337
9338         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
9339         mmap rather than allocating a huge buffer.
9340         (mono_debug_close_mono_symbol_file): Free the buffer allocated
9341         above.
9342
9343 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
9344
9345         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
9346         and CheckExecutionRights.
9347         * reflection.c|h: Keep the index of the declarative security to be 
9348         used, instead of the pointer, when AOT compiler is used. Also add 
9349         class initialization when requesting demands.
9350         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
9351         CheckExecutionRights. Both properties are now FALSE by default, and
9352         unmodifiable, unless the --security option is used.
9353
9354 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
9355
9356         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
9357         reflection.c: properly refcount images and assemblies, many leaks fixed.
9358
9359 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9360
9361         * threadpool.c: increase the timeout for threads in the thread pool to
9362         10s.  Fixes bug #67159.
9363
9364 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
9365
9366         * class-internals.h: Sun's compiler insists on explicit
9367         signed on bit fields to handle then correctly.
9368
9369 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
9370
9371         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
9372         Make the size of the array fit only the number of invalid path
9373         chars that we have.
9374
9375         * class.c (_mono_class_get): Improve the error reporting when a
9376         class referenced is not found, to assist debugging. 
9377
9378 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
9379
9380         * threads.c: fix off-by-one error.
9381         * domain.c: free data allocated in the domain.
9382
9383 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
9384
9385         * reflection.c (mono_method_body_get_object): Fill out exception info
9386         as well.
9387
9388         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
9389         structure.
9390         
9391 2005-01-19  Martin Baulig  <martin@ximian.com>
9392
9393         * loader.c (mono_get_method_constrained): Make this work again.
9394
9395 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
9396
9397         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
9398         guint16 to match the managed side.
9399
9400         * reflection.c (mono_reflection_body_get_object): Fill out local
9401         variables array.
9402
9403         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
9404         as well.
9405
9406         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
9407         'local_var_sig_token'.
9408
9409 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
9410
9411         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
9412         System.Drawing.
9413
9414         * reflection.c (mono_method_body_get_object): Handle abstract and
9415         runtime methods.
9416
9417 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
9418
9419         * marshal.c, loader.c, class-internals.h, reflection.c:
9420         store the emthod data for a wrapper in an array instead of a list.
9421
9422 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
9423
9424         * marshal.c: change the code to allocate memory more
9425         conservatively for method wrappers.
9426
9427 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
9428
9429         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
9430         fields from MonoClass to the marshal info structure where they belong.
9431
9432 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9433
9434         * class.c, object.c, class-internals.h, marshal.c: rearrange
9435         some fields and tweak some types to lower memory usage.
9436
9437 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
9438
9439         * threads.c (signal_thread_state_change): Handle the case when the
9440         target thread is the current thread.
9441
9442         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
9443
9444         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
9445         emit_ptr_to_object_conv. 
9446
9447         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
9448         marshalling. Fixes #71352.
9449
9450 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
9451
9452         * metadata.h, blob.h: move table enum to blob.h so it can be included
9453         in any header.
9454         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
9455         cut the size of MonoImage/MonoDynamicImage.
9456
9457 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
9458
9459         * profiler.c (mono_profiler_install_simple): Fix default arguments.
9460
9461 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
9462
9463         * reflection.c, reflection.h, icall.c: add a function to check
9464         if an attribute type is defined for a metadata object.
9465
9466 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
9467
9468         * object-internals.h: Added some needed fields from StringBuilder class.
9469         * marshal.c: Set the maxCapacity when creating a StringBuilder.
9470
9471 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
9472
9473         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
9474         threads before shutting down the runtime.
9475
9476         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
9477
9478 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
9479
9480         * object-internal.h, threads.c: implement stacksize and 
9481         parameterized thread start functionality (requires
9482         matching corlib). Marked broken code for later removal.
9483
9484 2005-01-12  Martin Baulig  <martin@ximian.com>
9485
9486         * class-internals.h (MonoGenericClass): Moved the `initialized'
9487         flag to MonoDynamicGenericClass, removed `init_pending'.
9488         (MonoGenericInst): Added `is_reference' flag.
9489
9490 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
9491
9492         * reflection.c (mono_image_create_pefile): Only set the pe_offset
9493         inside the MSDOS header. Fixes #71201.
9494
9495         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
9496         gc thread.
9497         (mono_domain_finalize): Ditto.
9498
9499 2005-01-12  Martin Baulig  <martin@ximian.com>
9500
9501         * class.c (mono_get_shared_generic_class): Use the cache for
9502         non-dynamic generic classes.
9503
9504         * class-internals.h (mono_class_create_generic_2): Removed
9505         function prototype, this function is now static inside class.c.
9506
9507         * class.c (mono_class_create_generic_2): Made this static, only
9508         call it from mono_class_init() and mono_class_setup_parent().
9509         (collect_implemented_interfaces_aux): Call mono_class_init() on
9510         the interfaces we collect.
9511         (mono_class_setup_vtable): Call mono_class_init (class->parent).
9512
9513 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
9514
9515         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
9516         it a real thread handle.
9517
9518         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
9519         MonoJitExceptionInfo, since each catch clause needs its own variable.
9520         
9521 2005-01-11  Dick Porter  <dick@ximian.com>
9522
9523         * image.c (mono_pe_file_open): New variant on mono_image_open()
9524         that does not set up the CLI metadata; used for FileVersionInfo so
9525         it can get the data for windows binaries too.
9526         
9527         * process.c (process_read_string_block): Don't read off the end of
9528         the StringTable block.
9529
9530         These both fix bug 70766.
9531
9532 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
9533
9534         * gc.c: set some fields to NULL at GC cleanup time.
9535         * threads.c: if we quit the main thread, call exit ().
9536
9537 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
9538
9539         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
9540
9541 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
9542
9543         * threads.h, threads.c, object.c: added accessor and settor for
9544         main_thread. Handle it specially when exiting from it: wait
9545         for other foreground threads to exit.
9546
9547 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
9548
9549         * process.c, verify.c: remove some bloat.
9550
9551 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
9552
9553         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
9554         the calling convention to cdecl under win32.
9555
9556 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
9557
9558         * object.c (mono_object_get_size): New function to get the size of
9559         an object instance.
9560
9561         * profiler.c (simple_allocation): Use above.
9562
9563 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
9564
9565         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
9566         ves_icall_System_AppDomain_getRootDomain (as it's not required to
9567         get an appdomain by it's id and we can't assume the root's id is 0).
9568         * domain-internals.h: Change the function prototype to match.
9569         * icall.c: Change the icall table for AppDomain.
9570
9571 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
9572
9573         * locales.c (string_invariant_compare_char): Only compute
9574         GUnicodeTypes in the case where we need them.  Test for ordinality
9575         first and return if so.
9576
9577         From the commit:
9578
9579                 /*
9580                  * FIXME: here we must use the information from c1type and c2type
9581                  * to find out the proper collation, even on the InvariantCulture, the
9582                  * sorting is not done by computing the unicode values, but their
9583                  * actual sort order.
9584                  */
9585
9586 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
9587
9588         * loader.c: for P/Invoke methods, allow the "Internal" shared
9589         library name to refer to the calling process symbol namespace.
9590
9591 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
9592
9593         * Makefile.am: Add the security manager to the build.
9594         * security-manager.c|h: New. Initialization of the security manager.
9595
9596 2005-01-07  Dick Porter  <dick@ximian.com>
9597
9598         * threads.c: 
9599         * monitor.c: Update thread state during Monitor and WaitHandle
9600         waits.  Fixes bug 71031.
9601
9602 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
9603
9604         * reflection.c (property_encode_signature): Correctly handle when the
9605         property has no methods.
9606
9607 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
9608
9609         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
9610         
9611         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
9612         fields from mb, not rmb. Fixes #71017.
9613
9614         * marshal.c (emit_ptr_to_str_conv): Add support for 
9615         ByValTStr -> string conversion. Fixes #71015.
9616
9617         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
9618
9619         * mempool.c (mono_mempool_contains_addr): New helper function.
9620
9621 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
9622
9623         * metadata.c (mono_metadata_compute_size): Fix size calculation of
9624         HasSematics encoded fields.
9625         
9626         * metadata.c (mono_type_to_unmanaged): Improve error message for 
9627         invalid string marshalling.
9628
9629         * metadata.c: Fix warnings.
9630         
9631 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
9632
9633         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
9634         profiler support.
9635
9636 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
9637
9638         * domain.c object.c domain-internals.h: Revert part of r38077 since the
9639         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
9640         tests.
9641
9642 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
9643
9644         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
9645         so methods containing these can be AOTed.
9646
9647 2005-01-03  Martin Baulig  <martin@ximian.com>
9648
9649         * loader.c (find_method): Removed the hack for generic instances.
9650         (method_from_memberref): If our parent is a generic instance, pass
9651         its generic type definition to find_method() and then inflate the
9652         method.
9653         (mono_get_method_constrained): Pass the generic type definition to
9654         find_method() and inflate the method later.
9655
9656         * class-internals.h (MonoStats): Added `generic_class_count'.
9657
9658         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
9659         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
9660
9661         * reflection.c (mono_custom_attrs_from_params): Don't ignore
9662         generic type definitions.
9663
9664 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
9665
9666         * loader.c icall.c: Fix warnings.
9667
9668 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
9669
9670         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
9671         blittable types. Fixes #70864.
9672
9673 2004-12-29  Martin Baulig  <martin@ximian.com>
9674
9675         * icall.c
9676         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
9677
9678         * reflection.c (mono_method_get_object): Create a
9679         "System.Reflection.MonoGenericMethod" for inflated methods; don't
9680         call mono_get_inflated_method().
9681
9682         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
9683
9684 2004-12-27  Martin Baulig  <martin@ximian.com>
9685
9686         * class-internals.h (MonoMethod): Added `is_inflated' flag.
9687         (MonoMethodInflated): Added `inflated' field.
9688
9689         * class.c (mono_class_inflate_generic_method): Don't really
9690         inflate the method here; just set the `is_inflated' flag in the
9691         MonoMethod.
9692         (mono_class_get_inflated_method): Actually inflate the method here
9693         if it's not already inflated; we use the MonoMethodInflated's new
9694         `inflated' field as a cache.
9695
9696 2004-12-26  Martin Baulig  <martin@ximian.com>
9697
9698         * class.c
9699         (inflate_generic_class): Moved some code out of inflate_generic_type().
9700         (mono_class_inflate_generic_method): If we're already inflated,
9701         inflate the context and use the declaring method; ie. make sure
9702         the declaring method of an inflated method is always the generic
9703         method definition.
9704         (mono_class_create_from_typedef): Create
9705         `class->generic_container->context->gclass'.
9706
9707 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
9708
9709         * metadata-internals.h, marshal.c, reflection.c: More
9710         MonoGHashTable->GHashTable.
9711
9712         * domain-internals.h, class.c: Change MonoGHashTable's into
9713         GHashTables for some cases where no gc stuff is used
9714
9715         All users: update apis
9716
9717 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
9718
9719         * metadata.c (builtin_types): Make this `const'. Makes this get
9720         put into the shareable section.
9721         (mono_metadata_init): Casts to make gcc happy.
9722
9723 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
9724
9725         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
9726
9727 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
9728
9729         * icall.c: Added an internal call to retrieve the position and length
9730         of assembly-level declarative security attributes (RequestMinimum, 
9731         RequestOptional and RequestRefuse). This is used by the Assembly class
9732         to re-create the corresponding permission sets.
9733
9734 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
9735
9736         * marshal.c: fix the stelemref wrapper to be type correct
9737         (and faster).
9738
9739 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
9740
9741         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
9742         to do key & 0x7fffffff. Hashtable already does this. It just
9743         results in longer code.
9744
9745 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
9746
9747         * appdomain.c: Bump corlib version.
9748         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
9749         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
9750         * reflection.c|h: Add functions to get declarative security infos
9751         (blob position and length) for assemblies, classes and methods.
9752
9753 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
9754
9755         * reflection.c: sort the constant table (bug #70693).
9756
9757 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
9758
9759         * object-internals.h, threads.c, domain.c: add accessors for
9760         the MonoThread and MonoDomain tls keys.
9761
9762 2004-12-18  Martin Baulig  <martin@ximian.com>
9763
9764         * class.c (inflate_generic_type): If we're inflating a generic
9765         instance, set `ngclass->context->container = context->container';
9766         ie. the container we inflated into.
9767
9768         * metadata.c (mono_metadata_parse_generic_param): Reflect above
9769         inflate_generic_type() changes.
9770
9771 2004-12-17  Martin Baulig  <martin@ximian.com>
9772
9773         * class-internals.h
9774         (MonoGenericClass): Replaced `MonoType *generic_type' with
9775         `MonoClass *generic_class'.  Removed `dynamic_info'; if
9776         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
9777         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
9778
9779 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
9780
9781         * exception.c (mono_exception_from_token): New helper function.
9782
9783 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
9784
9785         * assembly.c (mono_assembly_load_with_partial_name): Call 
9786         mono_assembly_loaded before invoking the preload hooks. Fixes
9787         #70564.
9788
9789         * object-internals.h (MonoThread): Change culture_info and 
9790         ui_culture_info into an array.
9791
9792         * threads.c: Cache culture info objects from more than one appdomain.
9793
9794         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
9795         current UI culture.
9796
9797 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
9798
9799         * threads.h threads.c appdomain.c: Clear the culture_info field of
9800         all threads during unloading if they point to an object in the dying
9801         appdomain.
9802
9803 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
9804
9805         * culture-info.h (TextInfoEntry): New struct
9806         * object-internals.h: sync with managed
9807         * locales.c: fill the `text_info_data' field
9808         * culture-info-tables.h: update
9809
9810 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
9811
9812         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
9813         collector.
9814
9815 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
9816
9817         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
9818         (ves_icall_ModuleBuilder_getMethodToken): Ditto
9819
9820 2004-12-12  Martin Baulig  <martin@ximian.com>
9821
9822         * mono-debug-debugger.c (write_type): If we're an enum and the
9823         builtin types have already been initialized, call mono_class_init().
9824
9825 2004-12-11  Martin Baulig  <martin@ximian.com>
9826
9827         * metadata.c (mono_metadata_load_generic_params): Added
9828         `MonoGenericContainer *parent_container' argument; automatically
9829         compute `container->is_method'; pass the correct owner to
9830         get_constraints().      
9831
9832         * reflection.c (compare_genericparam): Sort the GenericParam table
9833         according to increasing owners. 
9834
9835 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
9836
9837         * profiler.c: allow disabling the default profiler.
9838
9839 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
9840
9841         * decimal.c, icall.c: allow disabling System.Decimal support.
9842
9843 2004-12-09  Marek Safar <marek.safar@seznam.cz>
9844
9845         * reflection.c: Add support for null attribute arguments.
9846
9847 2004-12-09  Martin Baulig  <martin@ximian.com>
9848
9849         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
9850         names to get rid of compiler warnings.
9851
9852 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
9853
9854         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
9855         mono_marshal_load_type_info (). Fixes #69625.
9856         (mono_marshal_get_ptr_to_struct): Likewise.
9857
9858 2004-12-08  Martin Baulig  <martin@ximian.com>
9859
9860         * mono-debug.h: Bumped version number to 47.
9861
9862         * mono-debug-debugger.c
9863         (mono_debugger_event_handler, mono_debugger_event): Take two
9864         guint64 arguments insteed of a gpointer and a guint32.  
9865
9866 2004-12-08  Martin Baulig  <martin@ximian.com>
9867
9868         * debug-mono-symfile.h
9869         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
9870         `address' to `native_offset'.
9871
9872 2004-12-08  Martin Baulig  <martin@ximian.com>
9873
9874         * class.c (mono_class_create_from_typespec): Only inflate if we
9875         either have `context->gclass' or `context->gmethod'.
9876
9877 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
9878
9879         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
9880
9881         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
9882
9883         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
9884
9885         * reflection.c (mono_assembly_get_object): Remove the workaround put
9886         in for the release.
9887         
9888         * appdomain.c: Use the corlib_internal field from MonoAssembly.
9889
9890         * appdomain.c: Bump corlib version.
9891
9892         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
9893         be visible in other appdomains.
9894
9895 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
9896
9897         * threads.c: Interlocked inc and dec for longs were messed up,
9898         use a KISS based impl for this. Fixes 70234
9899
9900 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
9901
9902         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
9903
9904 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
9905
9906         * icall.c: fix to follow policy not to allow struct
9907         arguments in icalls.
9908
9909 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9910
9911         * process.c: make the patch that handles spaces in file paths work
9912         on mono/windows too.
9913
9914 2004-12-06  Martin Baulig  <martin@ximian.com>
9915
9916         * class.c (mono_class_create_generic): Call
9917         mono_class_setup_supertypes() if we're dynamic.
9918         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
9919
9920 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
9921
9922         * object-internals.h: Add new fields to MonoThread.
9923
9924         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
9925
9926         * icall.c threads-types.h threads.c: Add new icalls.
9927
9928         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
9929
9930         * object-internals.h (MonoReflectionAssembly): Sync object layout with
9931         managed side.
9932
9933         * appdomain.c: Bump corlib version.
9934
9935         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
9936         internal assemblies. Fixes #69181.
9937
9938 2004-12-05  Martin Baulig  <martin@ximian.com>
9939
9940         * class.c (mono_class_inflate_generic_signature): Make this a
9941         no-op if `context' is NULL or we don't have any type parameters;
9942         also copy `sentinelpos'.        
9943
9944 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
9945
9946         * image.c: Add unbox_wrapper_cache.
9947
9948         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
9949
9950         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
9951         function generator.
9952         
9953         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
9954         Fixes #70173.
9955
9956         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
9957         
9958 2004-12-04  Martin Baulig  <martin@ximian.com>
9959
9960         * loader.c (mono_method_get_signature_full): New public function;
9961         like mono_method_get_signature(), but with an additional
9962         `MonoGenericContext *' argument.
9963
9964         * class.c (mono_class_inflate_generic_signature): Formerly known
9965         as inflate_generic_signature(); make this public.
9966
9967 2004-12-04  Martin Baulig  <martin@ximian.com>
9968
9969         * metadata.c
9970         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
9971         instead of a `MonoGenericContainer *'.  
9972         (mono_metadata_parse_array_full): Likewise.
9973         (mono_metadata_parse_signature_full): Likewise.
9974         (mono_metadata_parse_method_signature_full): Likewise.
9975         (mono_metadata_parse_generic_inst): Likewise.
9976         (mono_metadata_parse_generic_param): Likewise.
9977         (mono_metadata_parse_mh_full): Likewise.
9978         (mono_type_create_from_typespec_full): Likewise.
9979
9980 2004-12-03  Martin Baulig  <martin@ximian.com>
9981
9982         * class-internals.h (MonoGenericContainer): Replaced the
9983         `MonoGenericContext * pointer with a `MonoGenericContext'
9984         structure and made it the first element.
9985
9986 2004-12-03  Martin Baulig  <martin@ximian.com>
9987
9988         * class.c
9989         (inflate_generic_type): Set the `context->container' when creating
9990         a new MonoGenericContext.
9991         (mono_class_inflate_generic_method): Likewise.
9992         (mono_class_create_from_typespec): Just use `context->container'
9993         to get the container.
9994
9995         * loader.c (method_from_methodspec): Set `context->parent' from
9996         `context->container' - and if that's a method container, use its
9997         parent.  Also set the `context->container' when creating a new
9998         MonoGenericContext.
9999         (mono_get_method_from_token): Use just `context->container' to get
10000         the container.
10001
10002         * metadata.c (do_mono_metadata_parse_generic_class): Also set
10003         `gclass->context->container'.
10004
10005         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
10006         the `context->container' when creating a new MonoGenericContext.
10007
10008 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
10009
10010         * reflection.c (compare_genericparam): Sort params with identical
10011         owner by their number. Fixes gen-111 on sparc.
10012
10013 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
10014
10015         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
10016         around the domain changes.
10017
10018         * appdomain.c (mono_domain_unload): Handle the case when the thread
10019         calling Unload is itself being aborted during unloading. Fixes #70022.
10020
10021         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
10022
10023         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
10024         checkpoint_func as an icall so it gets a wrapper.
10025         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
10026         in the cross-appdomain wrappers too.
10027
10028         * threads.c (mono_thread_has_appdomain_ref): Make this public.
10029
10030         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
10031
10032         * reflection.c: Fix some memory leaks.
10033         
10034 2004-12-02  Martin Baulig  <martin@ximian.com>
10035
10036         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
10037
10038         * metadata.c (generic_class_cache): New static hashtable.
10039         (mono_metadata_lookup_generic_class): New public method.
10040
10041 2004-12-02  Martin Baulig  <martin@ximian.com>
10042
10043         * class.c (mono_class_create_from_typedef): Call
10044         mono_class_setup_parent() and mono_class_create_mono_type() before
10045         parsing the interfaces.
10046
10047 2004-12-02  Martin Baulig  <martin@ximian.com>
10048
10049         * metadata.c (generic_inst_cache): New static hashtable.
10050         (mono_metadata_lookup_generic_inst): New public function.
10051         (mono_metadata_inflate_generic_inst): New public function.
10052         (mono_metadata_parse_generic_inst): New public function.
10053         (do_mono_metadata_parse_generic_class): Use the new
10054         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
10055         since this'll also use the cache.
10056
10057         * reflection.c (mono_reflection_bind_generic_method_parameters):
10058         Use mono_metadata_lookup_generic_inst() to use the new cache.
10059
10060         * class.c (inflate_mono_type): Use
10061         mono_metadata_inflate_generic_inst() to inflate a generic
10062         instance; this'll also use the new cache.
10063
10064         * loader.c (method_from_methodspec): Use
10065         mono_metadata_parse_generic_inst() and
10066         mono_metadata_inflate_generic_inst() rather than parsing it
10067         manually, so we can use the new cache.
10068
10069 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
10070
10071         * threads.c (wait_for_tids): Do not incorrectly free threads when 
10072         the wait times out.
10073
10074 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
10075
10076         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
10077         iter->args based on whether parameters are passed in registers (i.e.
10078         MONO_ARCH_REGPARMS is defined)
10079
10080 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
10081
10082         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
10083         the exception message. Fixes #70070.
10084         (method_from_methodspec): Fix warnings.
10085
10086 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10087
10088         * process.c: (complete_path) return the path quoted
10089
10090 2004-12-01  Martin Baulig  <martin@ximian.com>
10091
10092         * class-internals.h (MonoGenericInst): New structure.
10093         (MonoGenericClass): Replaced `type_argc', `type_argv' and
10094         `is_open' with `MonoGenericInst *inst'.
10095         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
10096         `is_open' with `MonoGenericInst *inst'.
10097
10098 2004-11-30  Martin Baulig  <martin@ximian.com>
10099
10100         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
10101
10102         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
10103         to `generic_class_cache'.
10104
10105         * metadata.c
10106         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
10107         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
10108         (mono_generic_inst_is_valuetype): Renamed to
10109         mono_generic_class_is_valuetype().
10110
10111         * class-internals.h
10112         (MonoGenericInst): Renamed to MonoGenericClass.
10113         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
10114         (MonoClass): Renamed `generic_inst' to `generic_class'.
10115         (MonoGenericContext): Renamed `ginst' to `gclass'.
10116
10117         * object-internals.h
10118         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
10119
10120         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
10121         mono_reflection_generic_class_initialize().
10122
10123         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
10124         now known as "System.Reflection.MonoGenericClass".
10125         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
10126
10127 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
10128
10129         * class-internals.h: Added a flag field to MonoClass to cache the
10130         declarative security attributes actions associated with the class.
10131         * domain-internals.h: Added booleans to MonoJitInfo to cache the
10132         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
10133         applicable to the JITted method.
10134         * reflection.c|h: Added functions to extract (as flags) which security
10135         actions are available (declaratively) for a method, class or assembly.
10136         * metadata.c|h: Added functions to search the declarative security
10137         table in the metadata.
10138         
10139 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
10140
10141         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
10142         EXPORTEDTYPES are already in the class name cache, so there is no
10143         need to add extra code here to look at them. Just removes a bit of
10144         cruft.
10145
10146         (ves_icall_System_Environment_get_TickCount): No need for #if
10147         WINDOWS. We already have the code in io-layer.
10148
10149 2004-11-28  Martin Baulig  <martin@ximian.com>
10150
10151         * loader.c
10152         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
10153         Fixes gen-112.cs.
10154
10155 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
10156
10157         * assembly.c (do_mono_assembly_open): Instead of having a
10158         conditional WITH_BUNDLE, incorporate support for bundles here, by
10159         having a global `bundles' variable holding a pointer to the actual
10160         bundles. 
10161
10162         (mono_register_bundled_assemblies): New API call used by the
10163         bundle code. 
10164
10165         See mkbundle.1 for details.
10166         
10167 2004-11-27  Martin Baulig  <martin@ximian.com>
10168
10169         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
10170         the vtable for generic methods.
10171
10172 2004-11-26  Martin Baulig  <martin@ximian.com>
10173
10174         * metadata.c
10175         (mono_metadata_generic_method_hash): New public function.
10176         (mono_metadata_generic_method_equal): Likewise.
10177
10178         * class-internals.h
10179         (MonoGenericContainer): Added `GHashTable *method_hash'.
10180
10181         * reflection.c (ReflectionMethodBuilder): Added
10182         `MonoGenericContainer *generic_container'.
10183         (reflection_methodbuilder_to_mono_method): Don't create a new
10184         MonoGenericContainer each time we're called.
10185         (mono_reflection_bind_generic_method_parameters): Use
10186         `container->method_hash' to cache the results so we don't create a
10187         different method if we're called several times with the same
10188         arguments.
10189
10190         * loader.c (method_from_methodspec): Use the new
10191         `container->method_hash' here, too.
10192
10193 2004-11-26  Martin Baulig  <martin@ximian.com>
10194
10195         * class.c (inflate_generic_signature): Correctly compute
10196         `res->has_type_parameters'.
10197         (mono_class_vtable): Use the `has_type_parameters' flag to
10198         determine whether we're a generic method.
10199
10200         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
10201
10202 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
10203
10204         * object.c (mono_runtime_run_main): Fix a small memory leak.
10205
10206 2004-11-25  Martin Baulig  <martin@ximian.com>
10207
10208         * class.c (set_generic_param_owner): Fixed the loop.
10209
10210 2004-11-25  Martin Baulig  <martin@ximian.com>
10211
10212         * object.c (mono_class_vtable): Don't create any JIT wrappers for
10213         generic methods.
10214
10215 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
10216
10217         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
10218         names. Fixes #69787.
10219
10220 2004-11-24  Martin Baulig  <martin@ximian.com>
10221
10222         * class.c (mono_class_create_generic_2): If we don't have a
10223         `ginst->parent', inflate `gklass->parent' to get our parent.
10224
10225 2004-11-24  Martin Baulig  <martin@ximian.com>
10226
10227         * reflection.c (compare_genericparam): Correctly sort the
10228         GenericParam table; fixes #69779.
10229
10230 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
10231
10232         * reflection.c: When writing a PE file, don't create a huge
10233         buffer in memory. Just write the arrays we have to the file.
10234         This reduces memory usage.
10235
10236         * metadata-internals.h: MonoDynamicStream pefile is no longer used
10237         globally.
10238
10239 2004-11-17  Martin Baulig  <martin@ximian.com>
10240
10241         * class.c (mono_class_init): Don't setup `class->parent' for
10242         dynamic instances; moved this to mono_class_generic_2().
10243         (mono_class_create_generic): Also set `klass->inited' for dynamic
10244         generic instances.
10245         (mono_class_create_generic_2): Don't do anything for dynamic
10246         generic instances.  Set `klass->parent' here and also call
10247         mono_class_setup_parent() here. 
10248
10249         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
10250         `MonoType *parent' argument; set `ginst->parent' before calling
10251         mono_class_create_generic_2(), so we set the correct parent.
10252
10253 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
10254
10255         * reflection.c: allow getting attributes from ModuleBuilder
10256         (used by ikvm).
10257
10258 2004-11-17  Martin Baulig  <martin@ximian.com>
10259
10260         * class.c (mono_class_create_from_typedef): If a type parameter is
10261         inherited from an outer class, set its owner to that class.
10262
10263 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
10264
10265         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
10266           for (int*) written size. This fixes bug #69592.
10267
10268 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
10269
10270         * icall.c: Added IsAuthenticodePresnet internal call.
10271         * image.c|h: New function that check a MonoImage for an Authenticode
10272         signature in the certificate PE data directory.
10273         * security.c|h: New internal call to ask the runtime if an 
10274         Authenticode signature seems referenced in the PE header.
10275
10276 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
10277
10278         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
10279
10280         * reflection.c (mono_image_create_pefile): Free the assembly streams
10281         after writing out the assembly file.
10282
10283         * object.c (mono_runtime_run_main): Fix small memory leak.
10284
10285         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
10286         property access modifiers. Fixes #69389.
10287
10288 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
10289
10290         * domain.c, object.c, object-internals.h, domain-internals.h,
10291         object.h, marshal.c: keep dynamic code info per domain.
10292
10293 2004-11-15  Martin Baulig  <martin@ximian.com>
10294
10295         * class.c (mono_type_get_name_recurse): Put type arguments in
10296         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
10297         see bug #68387.
10298
10299 2004-11-15  Martin Baulig  <martin@ximian.com>
10300
10301         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
10302         (mono_class_setup_vtable): When computing `the_cname' for a
10303         generic instance, don't include the namespace since we'd otherwise
10304         add it twice.
10305
10306 2004-11-15  Martin Baulig  <martin@ximian.com>
10307
10308         * class.c (mono_class_create_generic): Changed return type to void.
10309         (mono_class_create_generic_2): New public function; setup
10310         `class->method', `class->field' and `class->interfaces' here
10311         instead of in mono_class_init().
10312
10313         * class.h (mono_class_create_generic): Moved to class-internals.h.
10314
10315 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
10316
10317         * reflection.c (mono_image_create_pefile): take a file HANDLE.
10318         rather than writing to memory, write to this file. Right now,
10319         we are just writting into a buffer, and copying that. However
10320         we can avoid the buffer later.
10321
10322         (mono_dynamic_stream_reset): new function
10323
10324         * icall.c, object-internals.h: update for the above.
10325
10326 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
10327
10328         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
10329         have been using gc'd memory. First it is slower, unlikely
10330         the comment in the source code said, secondly, it increases
10331         our footprint to do it in the gc.
10332
10333         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
10334         the method so that it does not have to copy to managed code.
10335
10336 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
10337
10338         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
10339
10340 2004-11-12  Martin Baulig  <martin@localhost>
10341
10342         * reflection.c (mono_image_create_token): Allow generic method
10343         definitions here, since they may appear in an `.override'; see
10344         gen-98/gen-99 for an example.
10345
10346 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
10347
10348         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
10349         #69365.
10350
10351         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
10352         descriptive.
10353
10354 2004-11-11  Martin Baulig  <martin@ximian.com>
10355
10356         * class.c (mono_class_setup_vtable): In an explicit interface
10357         implementation, the method name now includes the arity.
10358
10359 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
10360
10361         * object.c (mono_array_full_copy): Fix warning.
10362
10363 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
10364
10365         * appdomain.c: Removed look_for_method_by_name(). Use the new method
10366         mono_class_get_method_from_name() instead.
10367         
10368         * class-internals.h: Added two new types of wrappers. 
10369         Added MonoRemotingTarget enum. Added new trampoline function type, which
10370         takes an additional MonoRemotingTarget value as parameter, so it is
10371         possible to request a trampoline for a specific target.
10372         
10373         * class.c: Added new mono_class_get_method_from_name() method.
10374         
10375         * class.h: In MonoRemoteClass, we can have now to vtables, one for
10376         general remoting sinks and one specific for cross domain calls.
10377         
10378         * debug-helpers.c: Added new wrapper names.
10379         
10380         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
10381         of a remote class.
10382         
10383         * image.c: Porperly delete value objects form the remoting invoke hashtable.
10384         
10385         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
10386         with several other methods (mono_marshal_get_xappdomain_dispatch,
10387         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
10388         and others) can generate a fast remoting wrapper for cross domain calls.
10389         More information can be found in docs/remoting.
10390         Other changes: Removed mono_find_method_by_name, and used
10391         mono_class_get_method_from_name instead.
10392         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
10393         is stored in the remoting invoke hashtable.
10394         
10395         * marshal.h: published the new method for getting the xdomain wrapper,
10396         and also added a method for getting the adequate wrapper for a given
10397         method and target.
10398         
10399         * object-internals.h, object.c: Added a couple of methods for capying and
10400         cloning arrays.
10401         Modified mono_install_remoting_trampoline, which takes the new remoting
10402         trampoline that has a remoting target as parameter.
10403         mono_class_proxy_vtable now also takes a remoting target as parameter, and
10404         will return the most suitable vtable for the target.
10405         Added mono_remote_class_vtable, which returns the vtable of a remote class
10406         (which can be the normal remoting vtable or the xdomain vtable).
10407         
10408         * threads.c: the xdomain invoke and dispatch wrappers must also be
10409         protected against interruptions.
10410
10411 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10412
10413         * icall.c: use memmove in BlockCopyInternal when the source and
10414         destination arrays are the same.
10415
10416 2004-11-09  Martin Baulig  <martin@ximian.com>
10417
10418         * class-internals.h (MonoGenericContainer): Removed `method' and
10419         `signature', replaced them with `is_method' and `is_signature'
10420         flags.  Added `context'.
10421
10422         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
10423         instead of a `MonoGenericContainer *'.
10424
10425         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
10426         for dynamic type parameters.
10427         (mono_metadata_load_generic_params): Setup `container->context'.
10428
10429         * reflection.c (mono_reflection_setup_generic_class): Setup
10430         `tb->generic_container->context'.
10431         (do_mono_reflection_bind_generic_parameters): Use
10432         mono_class_inflate_generic_type() to correctly inflate types,
10433         rather than using our own hack just for MONO_TYPE_VAR.
10434
10435 2004-11-09  Martin Baulig  <martin@ximian.com>
10436
10437         * class.c (mono_class_inflate_generic_method): Small fix; don't
10438         crash here.
10439
10440         * icall.c
10441         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
10442         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
10443         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
10444         (ves_icall_Type_BindGenericParameters): Likewise.
10445         (ves_icall_Type_get_IsGenericInstance): Likewise.
10446         (ves_icall_Type_GetGenericParameterPosition): Likewise.
10447         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
10448         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
10449         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
10450
10451 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
10452
10453         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
10454         assembly versions and public key tokens. Fixes #69113.
10455
10456 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
10457
10458         * metadata.c: fix bug introduced with the type cache changes
10459         on 2004-11-06.
10460
10461 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
10462
10463         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
10464         the MonoClass pointer instead of the token in exception clauses.
10465         * reflection.c: updates for the above and make the code not depend
10466         on the structure of MonoExceptionClause.
10467
10468 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
10469
10470         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10471         Add support for dynamic assemblies. Fixes #69114.
10472
10473         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
10474
10475 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
10476
10477         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
10478         since most only those methods use it. the code member of
10479         MonoMethodPInvoke was dead, so that can be removed too. Also,
10480         remove inline_count (again, not used), and move slot so that it
10481         can share bits with some other flags. This saves 8 bytes in the
10482         structure and gives us about 50 kb back for mcs helloworld.cs
10483
10484         * *.[ch]: Do naming changes for the above.
10485
10486         * loader.c (mono_method_get_header): Lazily init the header
10487         on first access.
10488         (mono_get_method_from_token): don't init the header here
10489         (mono_free_method): the header may never be allocated
10490
10491         Overall, this saves 150 kb of unmanaged allocations
10492         for mcs helloworld.cs. That accounts for 10% of the unmanaged
10493         memory at runtime.
10494         
10495         * loader.c, loader.h (mono_method_get_header): new accessor.
10496
10497         * *.[ch]: use the above method. Prepares us to lazily load
10498         the header.
10499
10500         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
10501         three warnings, which are actual bugs (see 69206).
10502
10503         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
10504         unused. Saves a cool 4 bytes / method.
10505
10506 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
10507
10508         * metadata.c (builtin_types): Add types for System.Object here.
10509         (mono_metadata_parse_type_full): Cache MonoType*'s that are
10510         for a class or valuetype from klass->this_arg or klass->byval_arg.
10511
10512         On mcs for a hello world, this gets us down from 21836 MonoType's
10513         to 14560.
10514
10515         (mono_metadata_free_type): Account for the above change.
10516
10517 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
10518
10519         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
10520         exception instead of asserting if name is null.
10521         (ves_icall_System_AppDomain_GetData): Ditto.
10522
10523 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
10524
10525         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
10526         EnumBuilder.
10527
10528         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
10529         Return NULL when the domain does not have entry_assembly set.
10530
10531         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
10532         Add a 'resource_modules' argument.
10533         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
10534
10535         * reflection.c (mono_reflection_create_runtime_class): Move setting
10536         of wastypebuilder here, so mono_get_type_object () returns a MonoType
10537         for enums too.
10538
10539         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
10540         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
10541         Throw an ArgumentNullException if 'ptr' is null.
10542
10543         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
10544         assemblies here. Fixes #69020.
10545
10546 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
10547
10548         * reflection.c (build_compressed_metadata): Fix the previous patch for
10549         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
10550         the stack.
10551
10552 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
10553
10554         * assembly.c (mono_assembly_names_equal): Allow a match if one of
10555         the cultures is false. Fixes #69090.
10556
10557         * reflection.c (build_compressed_metadata): Fix invalid memory read 
10558         detected by valgrind.
10559         
10560         * reflection.c (mono_reflection_get_type): Avoid triggering a 
10561         TypeResolve multiple times for the same type. Fixes #65577.
10562
10563 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
10564
10565         * marshal.c: Avoid using ldftn to call managed functions. It is
10566         much slower than just a call.
10567
10568         * reflection.c (mono_module_get_object): free the basename we
10569         allocate here from glib.
10570         
10571         * reflection.c (ensure_runtime_vtable): make sure to free
10572         overrides.  Also, we were allocating an array of MonoMethod not an
10573         array of MonoMethod*.
10574
10575         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
10576
10577         * image.c (mono_image_close): free image->guid here.
10578
10579 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
10580
10581         * reflection.c: Fix some spec conformance issues with the PE file
10582         structures so mcs compiled apps run on the Net 2.0 beta.
10583
10584 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
10585
10586         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
10587         Implement this. Fixes #67264.
10588
10589         * debug-helpers.h debug-helpers.c marshal.c: Move 
10590         mono_find_method_by_name to debug-helpers.c.
10591
10592 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
10593
10594         * object.c (mono_release_type_locks): type_initialization_hash is
10595         a GHashTable.
10596
10597         * reflection.c object.c object-internals.h: Fix warnings.
10598
10599         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
10600         without accessors. Fixes #61561.
10601
10602         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
10603         application base from the root domain if not set. Fixes #65641.
10604         (mono_runtime_init): Fix warning.
10605
10606 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10607
10608         * appdomain.c: call mono_thread_pool_init.
10609         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
10610         of worker threads based on the number of CPUs and the environment
10611         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
10612         for non-windows (windows) systems.
10613
10614 2004-10-27  Chris Toshok  <toshok@ximian.com>
10615
10616         * mono-debug-debugger.c (write_class): don't call mono_class_init
10617         here, as even with the check for (!klass->init_pending), we get
10618         into a situation where we're hitting cycles in class
10619         initialization.  Fixes #68816.
10620
10621 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
10622
10623         * image.c: Avoid overwriting values in the loaded_images_hash when an
10624         assembly is loaded multiple times. Fixes #61152.
10625
10626         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
10627         so multiple satellite assemblies for the same name can be loaded.
10628         Fixes #68259.
10629
10630         * mono_domain_assembly_preload: Actually return the loaded assembly, 
10631         not NULL.
10632
10633         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
10634         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
10635
10636         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
10637         pending finalizers are not invoked after the appdomain has been 
10638         unloaded. Fixes #67862.
10639
10640 2004-10-22  Martin Baulig  <martin@ximian.com>
10641
10642         * mono-debug-debugger.c
10643         (mono_debugger_runtime_invoke): Don't box valuetypes.
10644
10645 2004-10-22  Chris Toshok  <toshok@ximian.com>
10646
10647         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
10648         don't hide private methods.
10649
10650 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
10651
10652         * icall.c: Allows the runtime to "share" (when known) the public key
10653         token of an assembly. This avoid the need to recalculate the token 
10654         (from the public key) in managed code.
10655
10656 2004-10-21  Chris Toshok  <toshok@ximian.com>
10657
10658         * debug-helpers.c (append_class_name): argh, revert last patch.
10659         
10660 2004-10-21  Chris Toshok  <toshok@ximian.com>
10661
10662         * debug-helpers.c (append_class_name): use '+' as the delimiter,
10663         not '/', so that it matches what the debugger uses to look up
10664         methods.
10665
10666 2004-10-21  Martin Baulig  <martin@ximian.com>
10667
10668         * mono-debug-debugger.c (mono_debugger_throw_exception): New
10669         public method; this is called each time an exception is thrown and
10670         allows the debugger to use exception catch points.
10671
10672 2004-10-21  Martin Baulig  <martin@ximian.com>
10673
10674         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
10675         the stack pointer and the exception object in some struct and pass
10676         that to the debugger.
10677
10678 2004-10-21  Chris Toshok  <toshok@ximian.com>
10679
10680         * mono-debug-debugger.c (do_write_class): add instance/static
10681         event support.  We don't expose "raise" or "other" yet.
10682         (event_is_static): new method.
10683
10684 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
10685
10686         * mono-debug-debugger.c
10687         (mono_debugger_handle_exception): Remove
10688         bogus return value for fussy compilers.
10689
10690 2004-10-20  Martin Baulig  <martin@ximian.com>
10691
10692         * mono-debug-debugger.c
10693         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
10694         (mono_debugger_handled_exception): Likewise.
10695
10696 2004-10-20  Martin Baulig  <martin@ximian.com>
10697
10698         * mono-debug-debugger.h (MonoDebuggerEvent): Added
10699         MONO_DEBUGGER_EVENT_EXCEPTION.
10700
10701         * mono-debug-debugger.c (mono_debugger_handle_exception): New
10702         public function to send the debugger a notification for an
10703         exception and inform it about a catch/finally clause.
10704
10705 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
10706
10707         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
10708         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
10709         fix 2.95 build. 
10710
10711         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
10712
10713 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
10714
10715         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
10716         marshalled as [In,Out]. Fixes #58325.
10717
10718 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
10719
10720         * reflection.c (mono_method_body_get_object): Implement some fields.
10721
10722 2004-10-12  Martin Baulig  <martin@ximian.com>
10723
10724         * reflection.c (mono_reflection_bind_generic_parameters): Small
10725         fix, correctly retrieve our parent from a generic instance.
10726
10727 2004-10-12  Martin Baulig  <martin@ximian.com>
10728
10729         * metadata.c (mono_metadata_generic_param_equal): We always have
10730         an owner.
10731
10732         * class.c
10733         (mono_class_from_generic_parameter): We need to have an owner.
10734         (my_mono_class_from_generic_parameter): Likewise.
10735
10736         * reflection.c (mono_reflection_setup_generic_class): Renamed to
10737         mono_reflection_create_generic_class() and added a new
10738         mono_reflection_setup_generic_class().  
10739         (mono_reflection_initialize_generic_param): If we're a nested
10740         generic type and inherited from the containing class, set our
10741         owner to the outer class.
10742
10743 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
10744
10745         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
10746
10747         * reflection.c (mono_method_body_get_object): New function to create
10748         a MethodBody object.
10749
10750         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
10751
10752 2004-10-11  Martin Baulig  <martin@ximian.com>
10753
10754         * metadata.c (_mono_metadata_type_equal): Renamed to
10755         do_mono_metadata_type_equal() and made static.
10756
10757 2004-10-11  Martin Baulig  <martin@ximian.com>
10758
10759         * appdomain.c: Bump corlib version number to 28.
10760
10761 2004-10-10  Martin Baulig  <martin@ximian.com>
10762
10763         * class-internals.h
10764         (MonoGenericInst): Added `MonoGenericContainer *container'.
10765         (MonoGenericMethod): Likewise.
10766         (MonoGenericContext): Likewise.
10767         (MonoGenericParam): Added `MonoGenericContainer *owner'.
10768
10769         * metadata.c
10770         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
10771         (do_mono_metadata_parse_generic_inst): Likewise.
10772         (mono_metadata_parse_type_full): New public method.  This is the actual
10773         mono_metadata_parse_type() implementation - with an additional
10774         `MonoGenericContainer *' argument.
10775         (mono_metadata_parse_array_full): Likewise.
10776         (mono_metadata_parse_signature_full): Likewise.
10777         (mono_metadata_parse_method_signature_full): Likewise.
10778         (mono_metadata_parse_mh_full): Likewise.
10779         (mono_type_create_from_typespec): Likewise.
10780         (mono_metadata_interfaces_from_typedef_full): New public method;
10781         this is similar to the other _full() methods, but we take a
10782         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
10783         (mono_metadata_parse_generic_param): Take an additional
10784         `MonoGenericContainer *' argument and lookup the MonoGenericParam
10785         from that container.
10786         (mono_metadata_generic_param_equal): New static method to compare
10787         two type parameters.
10788         (_mono_metadata_type_equal): New static method; takes an
10789         additional `gboolean signature_only' argument - if true, we don't
10790         compare the owners of generic parameters.
10791         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
10792         with a TRUE argument - do a signature-only comparision.
10793
10794         * loader.c: Use the new _full() methods and pass the
10795         MonoGenericContainer to them.
10796
10797         * object-internals.h (MonoReflectionTypeBuilder): Added
10798         `MonoGenericContainer *generic_container' field.
10799         (MonoReflectionMethodBuilder): Likewise.
10800
10801 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
10802
10803         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
10804         case initial images of dynamic assemblies.
10805
10806         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
10807
10808         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
10809
10810         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
10811         length of event->other array.
10812         (typebuilder_setup_events): Ditto.
10813
10814         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
10815         'assembly_by_name' and add an 'assemblies' list.
10816
10817         * assembly.h assembly.c: Add a new search hook for determining whenever
10818         an assembly is already loaded. Use this instead of searching in the
10819         loaded_assemblies list.
10820
10821         * domain.c appdomain.c: Implement the new search hook so loaded 
10822         assemblies are now scoped by appdomain. Fixes #67727.
10823
10824 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
10825
10826         * threads.c (mono_thread_attach): Initialize synch_lock field so
10827         mono_thread_detach works again.
10828
10829         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
10830         'lib' too. Fixes #63130.
10831
10832 2004-10-06  Jackson Harper  <jackson@ximian.com>
10833
10834         * culture-info-tables.h: regenerated.
10835
10836 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
10837
10838         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
10839         implemented by other interfaces in the result. Fixes #65764.
10840         
10841         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10842         Handle unloadable modules without crashing.
10843
10844         * image.c (load_modules): Revert the previous patch since modules must
10845         have a fixed index inside the array.
10846         
10847         * image.c (load_modules): Don't include native modules in the modules
10848         array.
10849
10850 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
10851
10852         * reflection.h: Add param_defaults field.
10853
10854         * reflection.c: Add support for parameter defaults in dynamic methods.
10855         Fixes #64595.
10856
10857         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
10858         an empty string when a type has no namespace. Fixes #64230.
10859
10860 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
10861
10862         * tabledefs.h: Added "internal" security actions to support non-CAS
10863         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
10864         Note: they do not seems to be used anymore in 2.0 (new metadata format)
10865
10866 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
10867
10868         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
10869         constructor of abstract class. Fixes #61689.
10870
10871 2004-10-04  Martin Baulig  <martin@ximian.com>
10872
10873         * class-internals.h (MonoGenericContainer): New type.
10874         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
10875         `MonoGenericContainer *generic_container'.
10876         (MonoClass): Replaced `gen_params' and `num_gen_params' with
10877         `MonoGenericContainer *generic_container'.
10878
10879         * metadata.c (mono_metadata_load_generic_params): Return a
10880         `MonoGenericContainer *' instead of a `MonoGenericParam *';
10881         removed the `num' argument.
10882
10883 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
10884
10885         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
10886         for dynamic images.
10887
10888         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
10889         machine fields.
10890
10891         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
10892
10893         * reflection.c: Save pe_kind and machine values into the generated
10894         image file.
10895
10896         * appdomain.c: Bump corlib version number.
10897
10898         * object-internals.h: Reorganize layout of LocalBuilder.
10899
10900         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
10901         New helper function.
10902
10903         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
10904         created MonoType for dynamic types. Fixes #66180.
10905
10906 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
10907
10908         * threadpool.c: the ares hashtable needs a critical section around it.
10909         this prevents some nasty segfaults
10910
10911 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
10912
10913         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
10914         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
10915         bug 67324).
10916         
10917 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
10918
10919         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
10920         
10921 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
10922
10923         * image.c: Always canonicalize image file names, to avoid loading
10924         the same assembly twice when referenced using a relative path.
10925
10926 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
10927
10928         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
10929
10930         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
10931
10932         * marshal.c: Fix warnings.
10933
10934 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
10935
10936         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
10937         attempting to marshal the delegate_trampoline as the method_addr.
10938         This patch has a static hashtable of marshalled delegates so that 
10939         we can map delegate_trampoline addresses back to delegates.  This
10940         allows a delegate passed to managed code to be passed back into native
10941         code.  Fixes #67039
10942
10943 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
10944
10945         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
10946
10947         * reflection.c (method_encode_code): Align method headers properly.
10948         Fixes #66025.
10949
10950 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
10951
10952         * marshal.c: In the runtime invoke wrapper, reset the abort
10953         exception if it is cached. This avoids the automatic rethrowal of 
10954         the exception after the catch of the wrapper. Also check for pending
10955         interruptions before calling the managed method. This is done using
10956         the new method emit_thread_force_interrupt_checkpoint, since the
10957         normal checkpoint method is ignored when running the invoke wrapper.
10958         * object.c: If the abort exception is rethrown, set the abort_exc
10959         field of the thread, so it will be rethrown aftere every catch.
10960         * threadpool.c: Only run an interruption checkpoint if what has been
10961         requested is a stop of the thread (aborts will be ignored).
10962         * threads.c: By default, a thread will now never be interrumped while
10963         running the runtime invoke wrapper (this ensures that runtime_invoke
10964         will always return to the caller if an exception pointer is provided).
10965         There is a new special method mono_thread_force_interruption_checkpoint()
10966         to force an interruption checkpoint even if running a protected
10967         wrapper, which is used by the same runtime invoke wrapper to do a check
10968         at a safe point.
10969
10970 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
10971
10972         * object.c, object-internals.h: Implemented mono_release_type_locks,
10973         which releases the cctor locks held by a thread.
10974         * threads.c, threads.h: In thread_cleanup, release cctor locks held
10975         by a thread. Added mono_thread_exit() method to be used to safely stop
10976         a thread.
10977
10978 2004-09-28  Raja R Harinath  <rharinath@novell.com>
10979
10980         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10981         Move null check before dereference.  Avoid indexing beyond the end
10982         of the 'modules' array.
10983
10984 2004-09-28  Raja R Harinath  <rharinath@novell.com>
10985
10986         * metadata-internals.h (MonoImage): Add module_count field.
10987         * image.c (load_modules): Set image->module_count.
10988         (mono_image_load_file_for_image): Use image->module_count.
10989         * reflection.c (mono_image_load_module): Append to image->modules array 
10990         of dynamic assembly.
10991         (mono_module_get_object): Fix loop to actually increment index.
10992         Use image->module_count.
10993         * assembly.c (mono_assembly_load_references): Use image->module_count.
10994         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
10995         Likewise.
10996
10997 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
10998
10999         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
11000         Avoid assert on generic types.
11001
11002 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
11003
11004         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
11005
11006         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
11007
11008         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
11009         function to convert a MarshalSpec structure to its managed counterpart.
11010
11011         * reflection.c: Fix warnings.
11012         
11013         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
11014         field.
11015
11016         * icall.c (mono_create_icall_signature): Fix build.
11017
11018 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
11019
11020         * icall.c: Add MakePointType icall.
11021
11022         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
11023         warnings.
11024
11025 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11026
11027         * threadpool.c: reuse allocated slots in the queue.
11028
11029 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
11030
11031         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
11032
11033         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
11034
11035         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
11036         previous change.
11037
11038         * tabledefs.h: Add constants for pinvoke attributes BestFit and
11039         ThrowOnUnmappableChar.
11040
11041         * icall.c (ves_icall_Type_GetPacking): New icall.
11042
11043 2004-09-24  Martin Baulig  <martin@ximian.com>
11044
11045         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
11046
11047 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11048
11049         * appdomain.c:
11050         (mono_domain_set): allow setting a domain that is being unloaded.
11051         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
11052         being unloaded.
11053
11054 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
11055
11056         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
11057         the GetCustomAttributes icall.
11058
11059 2004-09-23  Martin Baulig  <martin@ximian.com>
11060
11061         * object-internals.h (MonoReflectionGenericParam): Replaced
11062         'has_ctor_constraint', `has_reference_type' and `has_value_type'
11063         with `guint32 attrs'.
11064
11065 2004-09-23  Martin Baulig  <martin@ximian.com>
11066
11067         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
11068
11069 2004-09-23  Martin Baulig  <martin@ximian.com>
11070
11071         * object-internals.h (GenericParameterAttributes): New enum.
11072
11073 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
11074
11075         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
11076         
11077         * class.c (init_events): Fill out event->other field.
11078
11079         * class.c: Fix warnings.
11080
11081         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
11082
11083 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
11084
11085         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
11086         walk which doesn't supply the IL offset.
11087
11088 2004-09-22  Martin Baulig  <martin@ximian.com>
11089
11090         * reflection.c (mono_reflection_setup_internal_class): If we're
11091         System.ValueType, System.Object or System.Enum, set
11092         `klass->instance_size' and create the vtable.
11093         (mono_reflection_create_internal_class): If we're an enum type,
11094         get the base class from our current corlib.
11095
11096 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
11097
11098         * reflection.h (MonoResolveTokenError): New type.
11099
11100         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
11101         icall.
11102
11103         * icall.c: Add an 'error' argument to the ResolveToken icalls.
11104
11105 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
11106
11107         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
11108         Support also calling constructors, but only for already allocated objects.
11109
11110 2004-09-17  Geoff Norton <gnorton@customerdna.com>
11111
11112         * reflection.c (type_get_qualified_name): If the klass is null
11113         return the typename to avoid a NullRefEx.
11114         (encode_cattr_value): Get the qualified name of the boxed type,
11115         not the underlying enumtype.  Fixes #62984.
11116
11117 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
11118
11119         * marshal.c: Fix problems with previous checkin.
11120
11121 2004-09-21    <vargaz@freemail.hu>
11122
11123         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
11124         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
11125
11126         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
11127
11128 2004-09-21  Geoff Norton <gnorton@customerdna.com>
11129
11130         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
11131         should only return a type for pointers, arrays, and passbyref types.
11132         Fixes bug #63841.
11133
11134 2004-09-21  Martin Baulig  <martin@ximian.com>
11135
11136         * domain.c (mono_debugger_check_runtime_version): New public
11137         function.
11138
11139         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
11140
11141 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
11142
11143         * reflection.c: Added missing sort to the declarative security 
11144         attributes table. MS implementation stops seeing the attributes if the
11145         token number regress in the table (as shown by ildasm and permview).
11146
11147 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
11148
11149         * object-internals.h (MonoReflectionModule): Add 'token' field.
11150         
11151         * reflection.c (mono_reflection_get_token): Add support for Module
11152         and Assembly.
11153         (mono_module_get_object): Set 'token' field.
11154         (mono_module_file_get_object): Set 'token' field.
11155
11156         * icall.c: Add new Assembly and Module icalls.
11157
11158         * appdomain.c: Bump corlib version.
11159
11160 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
11161
11162         * loader.h loader.c class.h class.c: Add helper functions for obtaining
11163         tokens of metadata objects.
11164
11165         * reflection.h reflection.c (mono_reflection_get_token): New function
11166         to obtain the token of a metadata object.
11167
11168         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
11169
11170 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
11171
11172         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
11173         
11174         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
11175
11176 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
11177
11178         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
11179         * object-internals.h: Added 3 MonoArray* members to MonoReflection
11180         AssemblyBuilder to access the permissions set in the class lib.
11181         * reflection.c: Added security attributes encoding step in 
11182         mono_image_build_metadata.
11183         * tabledefs.h: Added new security actions defined in 2.0:
11184         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
11185
11186 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
11187
11188         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
11189         macro parameter.
11190
11191 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
11192  
11193         * locales.c: nullify the ICU_collator member of CompareInfo when it is
11194           finalized. There where random SIGSEVs at program termination, when
11195           an object being finalized was trying to do a string comparison and
11196           the current culture was already finalized.
11197  
11198 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11199
11200         * threads.c: call thread_cleanup before finishing the thread if we get
11201         there.
11202
11203 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
11204
11205         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
11206         assemblies from the parent. Fixes #65665.
11207
11208 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
11209
11210         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
11211         modifiers.
11212
11213 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
11214
11215         * reflection.h: add prototype for mono_get_dbnull_object
11216         * reflection.c: add prototypes for get_default_param_value_blobs 
11217         and mono_get_object_from_blob for fussier compilers
11218
11219 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
11220  
11221         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
11222         false deadlock checks in class initialization.
11223  
11224 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
11225
11226         * image.c (mono_image_addref): Fix comment.
11227
11228         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
11229         possible.
11230
11231 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
11232
11233         * reflection.c (mono_param_get_objects): Modified to return
11234         ParameterInfo.DefaultValue object.
11235
11236         (get_default_param_value_blobs):
11237         (mono_get_object_from_blob):
11238         (mono_get_dbnull_object): New helper routines. 
11239
11240         * object.c (mono_get_constant_value_from_blob): New helper routine
11241         carved out from get_default_field_value ()
11242
11243         * object-internals.h (mono_get_constant_value_from_blob): Added
11244         function declaration.
11245
11246 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
11247
11248         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
11249         referenced assemblies. Fixes #62135.
11250
11251         * exception.h exception.c (mono_get_exception_file_not_found2): New
11252         helper function.
11253
11254 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
11255
11256         * class.h class.c: Add mono_type_get_underlying_type ().
11257
11258 2004-09-09  Geoff Norton <gnorton@customerndna.com>
11259
11260         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
11261         Fix GetTypes() to support dynamically created assemblies.
11262
11263 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
11264
11265         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
11266         
11267         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
11268         previous patch.
11269
11270         * reflection.h reflection.c loader.c: Allow dynamic construction of
11271         pinvoke methods. Fixes #65571.
11272         
11273         * reflection.c (mono_reflection_get_type): Revert previous change since
11274         it causes regressions.
11275
11276 2004-09-08  Martin Baulig  <martin@ximian.com>
11277
11278         * class.c (class_compute_field_layout): Don't call
11279         mono_class_layout_fields() for open generic instances.
11280
11281 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
11282         * threads.c appdomain.c: fix typo in GC macro
11283
11284 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11285
11286         * threads.c: don't call mono_thread_detach() in start_wrapper(),
11287         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
11288
11289 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
11290
11291         * image.c (mono_image_close): Applied patch from 
11292         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
11293         assembly is loaded multiple times from data.
11294         
11295         * image.c (mono_image_open): Fix warning.
11296
11297 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11298
11299         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
11300         once. Fixes #58334.
11301         
11302         * reflection.c (mono_reflection_create_runtime_class): Initialize
11303         klass->nested_classes. Fixes #61224.
11304
11305 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
11306
11307         * threads.c: sched_yield() on exit, to allow threads to quit.
11308
11309 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11310
11311         * object.c (mono_unhandled_exception): Remove leftover debug code.
11312
11313 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
11314
11315         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
11316
11317 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11318
11319         * marshal.c (emit_marshal_array): Really null terminate string arrays.
11320         
11321         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
11322
11323 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11324
11325         * marshal.c (emit_marshal_array): Null terminate string arrays.
11326         
11327         * marshal.c (raise_auto_layout_exception): Fix warning.
11328
11329         * reflection.c (mono_param_get_objects): Initialize the default value
11330         with DBNull.Value, not null. Fixes #62123.
11331
11332 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
11333
11334         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
11335         throw an exception with a cute explanation.
11336
11337 2004-09-06  Dick Porter  <dick@ximian.com>
11338
11339         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
11340         Close the new process's thread handle, as we don't use it.  The
11341         handle stays around forever otherwise.
11342
11343 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11344
11345         * object.c (arith_overflow): Fix warning.
11346
11347         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
11348         calling conventions in method refs. Fixes #65352.
11349
11350         * reflection.c: Fix warnings.
11351
11352 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
11353
11354         * icall.c: Add a new icall for Array.Clear
11355
11356 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
11357
11358         * object.c: When allocating an array, we have to throw
11359         an overflow exception if any of the lengths are < 0.
11360
11361 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11362
11363         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
11364         properly. Also move implementation of string array marshalling to 
11365         managed code. Fixes #42316.
11366
11367 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11368
11369         * assembly.c: provide more information when loading an assembly fails.
11370
11371 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11372
11373         * filewatcher.c: don't expect the development fam package to be
11374         installed.
11375
11376 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
11377
11378         * marshal.c: Make a copy of the signature cookie since it will be
11379         freed by the caller.
11380         
11381         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
11382
11383         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
11384
11385         * metadata.c (mono_metadata_free_marshal_spec): New function to free
11386         marshal specs.
11387
11388         * marshal.c: More refactoring.
11389         
11390         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
11391         smaller functions.
11392
11393 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
11394
11395         * object.c: In mono_message_invoke, fill the output parameter array after
11396           calling the managed method (it was done before the call). This fixes
11397           bug #59299.
11398
11399 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
11400
11401         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
11402         as well.
11403
11404 2004-09-02  Martin Baulig  <martin@ximian.com>
11405
11406         * class.c (mono_class_instance_size): Don't allow generic type
11407         definitions or open generic instances.
11408         (mono_class_array_element_size): If we're a value type, call
11409         mono_class_instance_size() on the original class.
11410
11411         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
11412         handle generic instances.
11413
11414         * mono-debug-debugger.c (write_type): Handle generic instances
11415         like classes.
11416
11417 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
11418
11419         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
11420         the allocation request fails. Fixes #65089.
11421
11422         * object.c (mono_runtime_free_method): Do not call mono_free_method.
11423         
11424         * object.c (mono_runtime_free_method): New function to free a dynamic
11425         method.
11426
11427         * marshal.c (mono_delegate_free_ftnptr): New function to free the
11428         delegate trampoline.
11429
11430         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
11431         with hasthis as dynamic,
11432
11433         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
11434
11435         * domain.c (mono_jit_info_table_remove): New function to remove an
11436         entry from the jit info table.
11437
11438         * class-internals.h (MonoMethod): Add 'dynamic' field.
11439
11440         * loader.c: Fix warnings.
11441
11442 2004-09-01  Martin Baulig  <martin@ximian.com>
11443
11444         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
11445         instead of mono_debugger_lock() because the latter one is a no-op
11446         unless running in the debugger.
11447
11448 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
11449
11450         * class.c (class_compute_field_layout): Classes with auto-layout or
11451         reference fields are not blittable.
11452         
11453 2004-09-01  Dick Porter  <dick@ximian.com>
11454
11455         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
11456         mono_image_get_filename() to get the assembly location.
11457
11458         * icall.c:
11459         * metadata.h: Fix compile warnings
11460
11461 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
11462
11463         * class.c (class_compute_field_layout): System.Object is blittable.
11464
11465         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
11466         as in/out. Fixes #59909.
11467
11468 2004-09-01  Martin Baulig  <martin@ximian.com>
11469
11470         * metadata.h (MONO_TYPE_ISREFERENCE): Call
11471         mono_metadata_generic_inst_is_valuetype() if we're a generic
11472         instance to check whether our underlying type is a reference type.
11473
11474 2004-09-01  Martin Baulig  <martin@ximian.com>
11475
11476         * metadata.c (mono_type_size): If we're a generic instance, call
11477         mono_class_value_size() for value types.
11478
11479 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
11480
11481         * marshal.c: Implement more custom marshalling functionality. Fixes
11482         #64915.
11483
11484 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
11485
11486         * mono-debug.c, debug-mono-symfile.c: add some locking love.
11487
11488 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
11489
11490         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
11491
11492         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
11493
11494         * icall.c: Fix some warnings.
11495
11496         * threads.c (abort_appdomain_thread): Fix unref errors.
11497         (mono_thread_current): Fix THREAD_DEBUG define.
11498
11499 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
11500
11501         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
11502
11503         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
11504
11505 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
11506
11507         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
11508         string arrays.
11509
11510 2004-08-28  Martin Baulig  <martin@ximian.com>
11511
11512         * metadata.c
11513         (mono_metadata_generic_inst_is_valuetype): New public function.
11514
11515         * metadata.h (MONO_TYPE_ISSTRUCT): Call
11516         mono_metadata_generic_inst_is_valuetype() if we're a generic
11517         instance to check whether our underlying type is a valuetype.
11518
11519 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
11520
11521         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
11522         #63768.
11523
11524 2004-08-25  Martin Baulig  <martin@ximian.com>
11525
11526         * loader.c (mono_get_method_from_token): Abstract methods can also
11527         be generic and thus have type parameters.
11528
11529         * metadata-internals.h
11530         (MonoDynamicImage): Added `GPtrArray *gen_params'.
11531
11532         * reflection.c (mono_image_get_generic_param_info): Don't create a
11533         metadata row, just add an entry to the `gen_params' array.
11534         (build_compressed_metadata): Sort the `gen_params' array and then
11535         actually create the metadata.
11536
11537 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11538
11539         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
11540
11541 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
11542
11543         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
11544
11545 2004-08-24  Martin Baulig  <martin@ximian.com>
11546
11547         * class.cs (mono_class_is_subclass_of): Like an interface, a
11548         generic instance also derives from System.Object.
11549
11550 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
11551
11552         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
11553         custom modifiers to be in any order. Fixes #61990.
11554
11555 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
11556
11557         * object.c: Register mono_object_new_fast icall.
11558         
11559         * object.c (mono_class_get_allocation_ftn): Return to calling
11560         mono_object_new_fast, since it seems faster to compute the object 
11561         size in unmanaged code than passing it as a parameter.
11562
11563         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
11564
11565         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
11566         this function with Boehm as the oom handler, so we don't have to check
11567         the result of GC_malloc.
11568
11569         * object.c: Remove checks for oom.
11570
11571         * object.h object.c (mono_class_get_allocation_ftn): New function to
11572         return the icall which can be used to allocate an instance of a given
11573         class. 
11574
11575         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
11576
11577         * class-internals.h: Add 'enabled' field.
11578
11579 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
11580
11581         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
11582
11583 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
11584         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
11585         value 0x0010.
11586
11587 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
11588
11589         * appdomain.c: use the Tls function for appdomain too,
11590         at Zoltan's request. Actually return in mono_context_get
11591
11592         * appdomain.c, profiler.c, threads.c: use __thread
11593
11594 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
11595
11596         * appdomain.c threads.c: Call GC_CreateThread on windows.
11597
11598         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
11599         multiple libraries since this don't work on windows.
11600
11601 2004-08-18  Martin Baulig  <martin@ximian.com>
11602
11603         * class-internals.h
11604         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
11605         MonoMethodHeader.
11606
11607         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
11608         MonoMethodNormal since we also need it for abstract and interface
11609         methods.
11610
11611         * reflection.c
11612         (build_compressed_metadata): Sort the GenericParam table.
11613         (mono_image_create_token): Added `gboolean create_methodspec'
11614         argument; this is false when generating a MethodImpl token.
11615         (reflection_methodbuilder_to_mono_method): Abstract and interface
11616         methods may also have generic parameters.
11617
11618 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
11619
11620         * appdomain.c: thread local alloc
11621
11622 2004-08-17  Martin Baulig  <martin@ximian.com>
11623
11624         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
11625
11626         * icall.c
11627         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
11628         argument.
11629
11630         * class.c (mono_type_get_full_name): New public function.
11631         (mono_type_get_name): Don't include the type arguments.
11632
11633 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
11634
11635         * Makefile.am: Build static versions of libmetadata and libmonoruntime
11636         for inclusion into the mono executable.
11637
11638 2004-08-16  Martin Baulig  <martin@ximian.com>
11639
11640         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
11641         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
11642
11643 2004-08-14  Martin Baulig  <martin@ximian.com>
11644
11645         * class.c (dup_type): Also copy the `byref' field.
11646
11647 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
11648
11649         * reflection.c (create_dynamic_mono_image): Revert the last change 
11650         since it breaks bootstrap.
11651
11652 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
11653
11654         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
11655
11656         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
11657         not free them with g_free.
11658
11659 2004-08-11  Martin Baulig  <martin@ximian.com>
11660
11661         * reflection.c (mono_reflection_setup_internal_class): Also call
11662         mono_class_setup_mono_type() if we already have a `tb->type.type'.
11663
11664 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
11665
11666         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
11667         called during default (first) AppDomain creation. Keep track of
11668         Evidence when loading assemblies.
11669
11670 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
11671
11672         * opcodes.c, opcodes.h: reduce runtime relocations.
11673
11674 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
11675
11676         * culture-info.h, locales.c: fixes and chages to sue the new
11677         optimized format of the locale data.
11678         * culture-info-tables.h: regenerated.
11679
11680 2004-08-06  Geoff Norton <gnorton@customerdna.com>
11681         
11682         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
11683
11684 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
11685
11686         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
11687         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
11688         * domain-internals.h: icall declaration.
11689         * icall.c: icall registration.
11690         * object-internals.h: New fields in MonoAssembly for CAS.
11691
11692 2004-08-05  Duncan Mak  <duncan@ximian.com>
11693
11694         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
11695         CEE_LDELEM_ANY.
11696
11697 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
11698
11699         * reflection.c: fix to deal with object[] arrays in custom ctors
11700         (bug #62550).
11701
11702 2004-08-05  Martin Baulig  <martin@ximian.com>
11703
11704         * class.c (mono_class_array_element_size): Added support for
11705         generic instances and correctly handle "recursive" types.
11706
11707 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
11708
11709         * assembly.c: Fix warnings.
11710
11711 2004-08-04  Martin Baulig  <martin@ximian.com>
11712
11713         * class.c
11714         (mono_type_get_name_recurse): Added `gboolean include_arity'
11715         argument specifying whether or not we should include the generic
11716         arity in the type name.
11717         (_mono_type_get_name): New static function.
11718         (mono_class_setup_vtable): If we're a generic instance, don't
11719         include the generic arity in the names of explicit method
11720         implementations.        
11721
11722 2004-08-03  Martin Baulig  <martin@ximian.com>
11723
11724         * class.c (mono_type_get_name_recurse): Enclose the generic type
11725         arguments in `<', '>'.
11726
11727 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11728
11729         * gc.c: make GC warning messages use the trace API, they are just
11730         noise to most of the users.
11731
11732 2004-08-03  Martin Baulig  <martin@ximian.com>
11733
11734         * debug-mono-symfile.c (read_string): Correctly read the string.
11735
11736 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
11737
11738         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
11739         
11740         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
11741         icalls.
11742         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
11743
11744 2004-07-30  Martin Baulig  <martin@ximian.com>
11745
11746         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
11747         Reflect latest symbol writer changes.   
11748
11749 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
11750
11751         * object.c: always create an object if null is passed
11752         to Invoke() where a valuetype is expected.
11753
11754 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
11755
11756         * marshal.c (mono_marshal_init): make managed
11757         signatures match native ones better for 64bits.
11758
11759 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11760
11761         * appdomain.c: hack to build correctly the private bin path on windows.
11762         Fixes bug #61991.
11763
11764 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
11765
11766         * assembly.c: Load mscorlib from the correct framework directory
11767           (mono/<version>/mscorlib.dll).
11768         * appdomain.h: Added prototypes for new functions.
11769         * internals.h: Added some prototypes.
11770         * domain.c: When initializing the runtime, get from the executable and
11771           the configuration files the runtime version that the app supports.
11772           Added support methods for reading app.exe.config. Added list of versions
11773           supported by the JIT. Added two new methods: mono_init_from_assembly,
11774           which initializes the runtime and determines the required version from
11775           the provided exe file, and mono_init_version, which initializes
11776           the runtime using the provided version.
11777         * icall.c: Get machine.config from version-specific directory.
11778         * reflection.c: When generating an image, embed the version number
11779           of the current runtime.
11780
11781 2004-07-28  Dick Porter  <dick@ximian.com>
11782
11783         * socket-io.c
11784         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
11785         returned sockaddr size before creating the remote address object.
11786         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
11787         61608.
11788
11789 2004-07-28  Dick Porter  <dick@ximian.com>
11790
11791         * locales.c (string_invariant_compare_char): Fix invariant char
11792         compares between upper and lower cases.  Fixes bug 61458.
11793
11794 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
11795         
11796         * marshal.c: actually cache stelem.ref wrappers.
11797         
11798 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
11799
11800         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
11801         sections and remove the mono_cli_rva_map () function.
11802
11803 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
11804
11805         * debug-mono-symfile.c: fix one more endianess issue, from a patch
11806         by Geoff Norton (<gnorton@customerdna.com>).
11807
11808 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11809
11810         * class.c: fix class loads for pointer types (typeof(int) !=
11811         typeof(int*)).
11812
11813 2004-07-27  Martin Baulig  <martin@ximian.com>
11814
11815         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
11816         reading the debugging information from an external ".mdb" file.
11817
11818 2004-07-24  Martin Baulig  <martin@ximian.com>
11819
11820         * reflection.c (mono_image_get_type_info): Only write a class
11821         layout entry if we actually have a size or a packing size.
11822
11823 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
11824
11825         * reflection.c (type_get_fully_qualified_name): 
11826         insert cast to get type checking of ?: with non-gcc compilers
11827
11828 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
11829
11830         * rand.c: use g_getenv for both lookups of
11831         MONO_EGD_SOCKET
11832
11833 2004-07-17  Martin Baulig  <martin@ximian.com>
11834
11835         * reflection.c (mono_reflection_bind_generic_method_parameters):
11836         Set `gmethod->reflection_info'.
11837
11838 2004-07-17  Martin Baulig  <martin@ximian.com>
11839
11840         * class.c (mono_class_create_from_typedef): Insert the newly
11841         created class into the hash table before computing the interfaces
11842         since we could be called recursively.
11843
11844 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
11845
11846         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
11847         function to implement stelem.ref in managed code
11848         * class-internals.h, debug-helpers.c: a new wrapper type
11849         for the above.
11850
11851 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
11852
11853         * gc.c: allow GC handles to work even when no GC is compiled in.
11854         Fix part of bug #61134 (GetAddrOfPinnedObject).
11855
11856 2004-07-13  Peter Williams  <peter@newton.cx>
11857  
11858         * process.c (complete_path): Make sure we don't attempt to execute
11859         directories.
11860  
11861 2004-07-12  Geoff Norton <gnorton@customerdna.com>
11862
11863         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
11864           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
11865           and will add/subtract the hour if needed
11866
11867 2004-07-12  Martin Baulig  <martin@ximian.com>
11868
11869         * reflection.c (mono_field_get_object): If we have
11870         `field->generic_info', take the attributes from
11871         `field->generic_info->generic_type'.    
11872
11873 2004-07-12  Martin Baulig  <martin@ximian.com>
11874
11875         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
11876         This function must be called before initializing the runtime.
11877         (mono_debug_init_1): New function; call this after initializing
11878         the runtime, but before loading the assembly.  It tells the
11879         debugger to load corlib and the builtin types.
11880
11881         * mono-debug-debugger.c: Did some larger changes in the debugging
11882         code; support recursive class declarations, make sure we actually
11883         add all classes.
11884
11885 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11886
11887         * debug-helpers.c: undo my previous patch and fixed the real issue in
11888         ../mini/exceptions-x86.c
11889
11890 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11891
11892         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
11893         when no HOME env. variable was set and a NullRef was thrown in a .cctor
11894         called from other .cctors.
11895
11896 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
11897
11898         * loader.c: Removed the mono_loader_wine_init hack now that we are
11899         doing a managed version of Windows.Forms.
11900
11901 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
11902
11903         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
11904         threadpool.c, threads.c: remove static data from rootset.
11905
11906 2004-07-09  Dick Porter  <dick@ximian.com>
11907
11908         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
11909         Don't do any more processing if the matched length was 0.  It was
11910         increasing the size of the string before.  Fixes bug 61167.
11911
11912 2004-07-09  Dick Porter  <dick@ximian.com>
11913
11914         * socket-io.h:
11915         * socket-io.c
11916         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
11917         Add support for SO_PEERCRED if its available.
11918
11919 2004-07-09  Peter Bartok <pbartok@novell.com>
11920         * loader.c: winelib.exe.so error message is now only displayed if
11921         MONO_DEBUG is set. To help us avoid questions when people are trying
11922         out the new Managed.Windows.Forms.
11923
11924 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
11925
11926         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
11927         for isinst and castclass wrappers.
11928
11929         * class-internals.h icall.c: Move registration and lookup of JIT icalls
11930         to libmetadata from the JIT, so they could be used by the marshalling
11931         code and the interpreter.
11932
11933         * marshal.c: Register marshalling related JIT icalls here instead of
11934         in mini.c. Use CEE_MONO_ICALL instead of the family of 
11935         CEE_MONO_PROC<x> opcodes to call marshalling functions.
11936
11937         * metadata.h: Remove unneeded marshalling conversions.
11938
11939         * opcodes.c: Update for new opcodes.
11940         
11941 2004-07-08  Martin Baulig  <martin@ximian.com>
11942
11943         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
11944         (mono_debug_get_domain_data): Make this function static.
11945
11946 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
11947
11948         * gc.c, object.h: add nice GC handle API for embedders.
11949
11950 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
11951
11952         * reflection.c: more changes for the new api
11953
11954         * object.c: When we reflect on a field w/ a constant value, it
11955         will not have a memory location, so we must access metadata. Also,
11956         allow easier reading of strings so that we can read them from
11957         the constant data.
11958
11959         * class.c (mono_class_layout_fields): no need for literal fields here.
11960
11961         * class-internals.h: api changes for const fields
11962
11963         * icall.c (ves_icall_get_enum_info): use new apis for const fields
11964
11965 2004-07-06  Martin Baulig  <martin@ximian.com>
11966
11967         * mono-debug.h: Increment version number to 44.
11968
11969         * mono-debug.c (mono_debug_add_wrapper): The second argument is
11970         now a gpointer, rewrote this whole method.
11971
11972         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
11973         function.  Add information about the wrapper in a new "misc table".
11974
11975         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
11976         for the new misc table.
11977
11978 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
11979
11980         * metadata-internals.h image.c: Add a cache for helper signatures.
11981
11982         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
11983
11984 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
11985
11986         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
11987         delegates from a delegate. Fixes #61033.
11988         
11989         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
11990         marshalling of stringbuilder arrays. Fixes #59900.
11991
11992 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
11993
11994         * icall.c: Add EnumBuilder:setup_enum_type icall.
11995
11996 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
11997
11998         * icall.c: Added a new icall for the property version of
11999         OffsetOfStringData.
12000
12001 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
12002
12003         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
12004         it has a constant size across platforms.
12005
12006         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
12007         stack trace.
12008
12009 2004-06-29  Martin Baulig  <martin@ximian.com>
12010
12011         * mono-debug.c (mono_debug_add_method): Protect the whole function
12012         in mono_debugger_lock(), not just parts of it.
12013
12014 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
12015
12016         * reflection.c: make sure padding bytes in heaps are zeroed.
12017
12018 2004-06-24  David Waite  <mass@akuma.org>
12019
12020         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
12021         image.c, loader.c, locales.c, marshal.c, metadata.c,
12022         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
12023         string-icalls.c, threads.c: change to C90-style comments from C99 /
12024         C++ -style
12025
12026 2004-06-24  Dick Porter  <dick@ximian.com>
12027
12028         * threads.c
12029         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
12030         return createdNew.  Fixes bug 60412.
12031
12032         * threads-types.h: 
12033         * icall.c: Add createdNew parameter to CreateMutex icall
12034
12035 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
12036
12037         * reflection.c, object-internals.h: save default value in params.
12038
12039 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12040
12041         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
12042         no need to build a new path combining that with the application base.
12043         Fixes bug #60442.
12044
12045 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
12046
12047         * reflection.c: fixed minor standard compliance issues.
12048
12049 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
12050
12051         * reflection.c: fixed issue with encoding some custom attributes
12052         (arrays in properties and fields, bug #60411).
12053
12054 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12055
12056         * reflection.c: fix start address when copying the public key token.
12057
12058 2004-06-23  Martin Baulig  <martin@ximian.com>
12059
12060         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
12061         the `exc' object in a static object to put it into the GC's root set.
12062
12063 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
12064
12065         * reflection.c: make mono_reflection_setup_internal_class ()
12066         callable a second time to setup a new parent class.
12067
12068 2004-06-23  Dick Porter  <dick@ximian.com>
12069
12070         * threads.c: Check for WAIT_IO_COMPLETION return values.
12071
12072 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
12073
12074         * appdomain.c: Removed the g_free on the public key token. Now copy 
12075         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
12076         * assembly.c: Added public key token string value when loading 
12077         assemblies. Fix bug #60439.
12078         * icall.c: Added missing informations (like public key) in 
12079         GetReferencedAssemblies. Fix #60519.
12080         * image.h: Changed definition for public key token from const char*
12081         public_tok_value to guchar public_key_token [17];
12082         * reflection.c: Updated for changes to public key token.
12083
12084 2004-06-22  Lluis Sanchez Gual
12085
12086         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
12087         for the field in base classes.
12088
12089 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
12090
12091         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
12092         mark headers as not supported, they are installed only for use by the
12093         debugger.
12094
12095 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
12096
12097         * *.c, *.h: avoid namespace pollution in public headers.
12098
12099 2004-06-21  Martin Baulig  <martin@ximian.com>
12100
12101         * exception.c (mono_get_exception_security): It's in
12102         "System.Security", not in "System".
12103
12104         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
12105         the exception classes.
12106
12107 2004-06-21  Martin Baulig  <martin@ximian.com>
12108
12109         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
12110         Protect the exception object from being finalized.
12111
12112 2004-06-21  Martin Baulig  <martin@ximian.com>
12113
12114         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
12115         public function.
12116
12117 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
12118
12119         * reflection.c: Load the assembly in mono_reflection_type_from_name,
12120         if it was not loaded before. Fix parts of #60439.
12121
12122 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
12123
12124         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
12125         code that was broken since Ben's change: wrappers are now
12126         dependent on the method signature only again.
12127
12128 2004-06-21  Martin Baulig  <martin@ximian.com>
12129
12130         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
12131         added interface support.
12132
12133 2004-06-21  Martin Baulig  <martin@ximian.com>
12134
12135         * class.c (mono_vtable_get_static_field_data): New public method.
12136
12137 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
12138
12139         * filewatcher.c : Windows build fix to be compliant with API changes.
12140
12141 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
12142
12143         * class.h, class.c: more accessors.
12144         * metadata.h, metadata.c: prepare for hiding MonoType and
12145         MonoMethodSignature: people should use the accessors from now on
12146         outside of the tree.
12147
12148 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
12149
12150         * *.c, *.h: more API cleanups.
12151
12152 2004-06-18  Jackson Harper  <jackson@ximian.com>
12153
12154         * assembly.c: Trace loading assemblies.
12155         * loader.c: Trace loading native libraries.
12156         * mono-config.c: Trace loading config files.
12157         
12158 2004-06-18  Dick Porter  <dick@ximian.com>
12159
12160         * locales.c: Tell ICU the lengths of strings, it can cope with
12161         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
12162
12163 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
12164
12165         * image.c: swapped name/filename;
12166
12167 2004-06-18  Martin Baulig  <martin@ximian.com>
12168
12169         * mono-debug-debugger.c (write_class): Write the parent class at
12170         the end of the header.
12171
12172 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
12173
12174         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
12175
12176 2004-06-17  Raja R Harinath  <rharinath@novell.com>
12177
12178         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
12179         (bundle_obj): New conditional define.
12180         (BUILT_SOURCES): Remove.
12181         ($(bundle_srcs)): Make parallel-make safe.
12182         (libmonoruntime_la_LIBADD): Make unconditional.
12183         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
12184         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
12185
12186 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
12187
12188         * culture-info-tables.h: It was inconsistent with the latest
12189           supp info files.
12190
12191 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
12192
12193         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
12194         be loaded.
12195
12196         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
12197         with gcc 2.95.
12198
12199 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
12200
12201         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
12202         cleaned up public header threads.h.
12203
12204 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
12205
12206         * Makefile.am, *.c, *.h: more API cleanups.
12207
12208 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
12209
12210         * Makefile.am: removed monosn from compilation.
12211         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
12212         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
12213         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
12214         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
12215         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
12216         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
12217
12218 2004-06-15  Jackson Harper  <jackson@ximian.com>
12219
12220         * assembly.c: Make locales lower case when searching the GAC for
12221         assemblies. gacutil will always make locales lowercase when
12222         installing so this effectively makes them case insensitive.
12223         
12224 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
12225
12226         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
12227         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
12228           parameter which allows to choose whether the wait can be interrupted or 
12229           not. Also added the method mono_monitor_enter(), which locks the monitor
12230           using an infinite wait and without allowing interruption.
12231           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
12232           interrupted.
12233         * object.h: Added new fields in MonoThread. suspend_event holds the event
12234           used to susped/resume the thread. synch_lock is the lock object to use for
12235           modifying the thread state.
12236         * threads.c: Use the new synch_lock object for locking, instead of "this",
12237           which can generate deadlocks.
12238           Moved thread state change in Thread.Sleep and Thread.Join from managed
12239           to unmanaged code. This avoids a deadlock when the thread was suspended
12240           just after acquiring the thread lock.
12241           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
12242           Implemented Thread.Suspend using an event instead of ThreadSuspend,
12243           which is not fully implemented in the io-layer.
12244         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
12245
12246 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
12247
12248         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
12249         threads-types.h: more API cleanups.
12250
12251 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
12252
12253         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
12254         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
12255         threadpool.c, threads.c: first pass at the exported API cleanup.
12256
12257 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
12258
12259         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
12260
12261 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12262
12263         * icall.c: added internalGetHome.
12264
12265 2004-06-14  Dick Porter  <dick@ximian.com>
12266
12267         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
12268         possible to return successfully when '.' or '..' were the only
12269         entries in a directory, but were skipped.  The MonoIOStat was not
12270         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
12271         Fixes bug 59574.
12272
12273 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
12274
12275         * reflection.c: make binaries run on .Net 1.1 by default.
12276
12277 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
12278
12279         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
12280
12281 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
12282
12283         * marshal.c: keep track of struct size with explicit layout
12284         (bug #59979).
12285
12286 2004-06-12  Martin Baulig  <martin@ximian.com>
12287
12288         * mono-debug-debugger.c: Comment out a debugging g_message().
12289
12290 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
12291
12292         * reflection.c, reflection.h: do not free custom attrs that are cached.
12293         * icall.c: use braces to make code clearer.
12294
12295 2004-06-11  Martin Baulig  <martin@ximian.com>
12296
12297         * class.h (MonoInflatedField): New type.
12298         (MonoClassField): Replaced `MonoType *generic_type' with
12299         `MonoInflatedField *generic_info'.
12300
12301         * icall.c
12302         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
12303
12304 2004-06-11  Martin Baulig  <martin@ximian.com>
12305
12306         * reflection.c (mono_image_create_method_token): Correctly encode
12307         varargs methods.
12308
12309 2004-06-11  Martin Baulig  <martin@ximian.com>
12310
12311         * metadata.c (mono_metadata_parse_method_signature): When parsing
12312         a MethodDef which has VarArgs, also set sentinelpos if we don't
12313         have any parameters.
12314
12315 2004-06-11  Martin Baulig  <martin@ximian.com>
12316
12317         * verify.c (mono_method_verify): In CEE_CALL, use
12318         mono_method_get_signature() to get the method's signature, unless
12319         we're a PInvoke method.
12320
12321 2004-06-10  Jackson Harper  <jackson@ximian.com>
12322
12323         * assembly.c: Use <path>/lib/mono/gac for the extra paths
12324         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
12325         logical name as the supplied path is just a prefix to the gac not
12326         the direct path to it.
12327         
12328 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
12329
12330         * reflection.c: make the token for a created method match
12331         the token of the MethodBuilder it was created from
12332         (IKVM requires this behaviour now).
12333
12334 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
12335
12336         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
12337         reflection.c, socket-io.c: leak fixes.
12338
12339 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
12340
12341         * icall.c: handle sentinel pos in vararg methods in position different
12342         from 0.
12343
12344 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12345
12346         * culture-info-tables.h: freshly generated.
12347
12348 2004-06-09  Martin Baulig  <martin@ximian.com>
12349
12350         * loader.c (mono_get_method_constrained): Call `mono_class_init
12351         (constrained_class)'.   
12352
12353 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
12354
12355         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
12356         any methods. Fixes #59629.
12357
12358 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12359
12360         * culture-info-tables.h: reflecting locale-builder updates.
12361
12362 2004-06-08  Dick Porter  <dick@ximian.com>
12363
12364         * object.h:
12365         * locales.c: Fixed compile warnings, including a real bug in
12366         CompareInfo_internal_compare.
12367         
12368 2004-06-08  Dick Porter  <dick@ximian.com>
12369
12370         * locales.c
12371         (ves_icall_System_Globalization_CompareInfo_internal_index):
12372         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
12373         Double-check the resuls of usearches, because ICU currently
12374         ignores most of the collator settings here.  Fixes bug 59720.
12375         
12376 2004-06-08  Dick Porter  <dick@ximian.com>
12377
12378         * locales.c
12379         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
12380         Fix memory leak and segfault-causing typo.  No idea how this one
12381         lasted so long without being noticed.
12382
12383 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
12384
12385         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
12386         any methods. Fixes #59629.
12387
12388 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12389
12390         * assembly.c:
12391         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
12392         own the critical section before). Removed dead code (that's done
12393         in the preload hook).
12394
12395         (mono_assembly_load_with_partial_name): call the preload hook.
12396
12397 2004-06-08  Martin Baulig  <martin@ximian.com>
12398
12399         * metadata.c (mono_metadata_signature_alloc): Default
12400         `sentinelpos' to -1.
12401
12402         * reflection.c (mono_image_get_array_token): Likewise.
12403
12404 2004-06-08  Martin Baulig  <martin@ximian.com>
12405
12406         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
12407
12408         * metadata.c (mono_metadata_parse_method_signature): When parsing
12409         a MethodDef which has VarArgs, set sentinelpos.
12410
12411         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
12412         `gint16' since we're using -1 for non-varargs methods.
12413
12414         * reflection.c
12415         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
12416         (method_encode_signature): Added varargs support.
12417         (method_builder_encode_signature): Likewise.
12418         (mono_image_get_varargs_method_token): New static method.
12419         (mono_image_create_method_token): New public method; this is
12420         called via an icall instead of mono_image_create_token() when
12421         calling a varargs method.       
12422
12423 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
12424
12425         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
12426
12427 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12428
12429         * culture-info-tables.h : Reflecting the latest locale-builder that
12430           fixed empty array representation ({} to {0}).
12431
12432 2004-06-07  Jackson Harper  <jackson@ximian.com>
12433
12434         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
12435         looking up extra gac paths. This allows MONO_GAC_PATH to act
12436         exactly like a prefix.
12437         
12438 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
12439
12440         * reflection.c (mono_reflection_type_from_name): Make a copy of the
12441         type name before modifying it. Fixes #59405.
12442
12443 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12444
12445         * culture-info.h: added fields for "all datetime patterns".
12446         * locales.c: (  ves_icall_System_Globalization_CultureInfo
12447           _construct_datetime_format ()): fill xxx_patterns fields.
12448         * object.h: added fields for "all datetime patterns" to
12449           MonoDateTimeFormatInfo.
12450         * culture-info-tables.h: reflecting locale-builder updates.
12451
12452 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
12453
12454         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
12455         the event has no add and remove methods. Fixes #59629.
12456
12457 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
12458
12459         * object.c: Fixed possible integer overflow when allocating large
12460         strings.
12461
12462 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
12463
12464         * culture-info-tables.h: reflecting locale-builder updates.
12465
12466 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
12467
12468         * culture-info-tables.h: reflecting locale-builder updates.
12469
12470 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
12471
12472         * culture-info-tables.h: reflecting locale-builder updates.
12473
12474 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
12475
12476         * threads.c: Made Thread.Sleep abortable.
12477
12478 2004-06-02  Martin Baulig  <martin@ximian.com>
12479
12480         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
12481
12482         * debug-mono-symfile.h: Bumped symbol file version number to 37.
12483
12484 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
12485
12486         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
12487
12488 2004-05-30  Jackson Harper  <jackson@ximian.com>
12489
12490         * reflection.c: Do not hardcode assembly versions or public key
12491         tokens anymore. All of this except the corlib section was dead
12492         code anyways.
12493         
12494 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
12495
12496         * object.c (mono_runtime_invoke_array): Automatically create boxed
12497         objects for byref valuetypes if needed. Fixes #59300.
12498         
12499         * object.c (mono_method_return_message_restore): Handle 
12500         MONO_TYPE_OBJECT as well.
12501
12502 2004-05-28  Jackson Harper  <jackson@ximian.com>
12503
12504         * reflection.c: The modified type encoding was causing build
12505         problems. Reverted for now.
12506         
12507 2004-05-28  Jackson Harper  <jackson@ximian.com>
12508
12509         * reflection.c/h: Take an assembly ref so that we dont create
12510         fully qualified names when encoding types in the same assembly as
12511         the custom attribute being emitted.
12512         * appdomain.c: Increment version number.
12513         
12514 2004-05-26  Duncan Mak  <duncan@ximian.com>
12515
12516         * icall.c
12517         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
12518         Set the full version number (major, minor, build, revision).
12519
12520 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
12521
12522         * marshal.c (emit_struct_conv): increment src/dst after blit
12523         (mono_marshal_get_managed_wrapper,
12524         mono_marshal_get_native_wrapper): make sure we have marshalling
12525         info before marshalling params (info computation affects
12526         blittable)
12527
12528         * class.c (class_compute_field_layout): correctly deal with
12529         blittable
12530         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
12531         value types (as per what windows dows by default)
12532         (mono_class_setup_mono_type): System.ValueType is blittable
12533         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
12534         blittable
12535
12536         * marshal.c (mono_marshal_load_type_info): flag types  as
12537         non-blittable if the native layout doesn't match the managed
12538         layout
12539
12540 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12541
12542         * appdomain.c: don't add stuff in the private search path that is
12543         above the application base. If application base is not set, there's
12544         no private search path.
12545
12546 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
12547
12548         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
12549         byref struct arguments in native->managed marshalling.
12550
12551 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
12552
12553         * marshal.c (mono_marshal_get_runtime_invoke): correctly
12554         cache methods using signature (special case for methods
12555         that are value type or string class)
12556         
12557         * image.c (mono_image_close): clean up allocated GSList's
12558         in runtime_invoke_cache.
12559
12560 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12561
12562         * mono-config.c: set the correct path for mono_cfg_dir on windows when
12563         there's no MONO_CFG_DIR environment variable defined.
12564
12565 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12566
12567         * threads.c: windows version must be >= 0x0500 to include OpenThread.
12568
12569 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
12570
12571         * threadpool.c: Really wait for 500ms after the async call, even if the wait
12572           is interrumped.
12573         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
12574           before waiting for it, and call CloseHandle after the wait to unref it.
12575           This will make sure that handles are not disposed too early.
12576
12577 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12578
12579         * appdomain.c:
12580         * appdomain.h:
12581         * icall.c: removed
12582         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
12583         needed now.
12584
12585         * object.c: se the application_base only for the domain that runs
12586         Main. Fixes bug #59216,
12587
12588 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12589
12590         * appdomain.c:
12591         * object.c: only the domain in which Main is run have
12592         SetupInformation.ConfigurationFile set, so moved a few lines from
12593         appdomain.c to object.c.
12594
12595 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12596
12597         * appdomain.c: we tried to load [name].(dll|exe), but according
12598         to bug #57710, we must also try [culture]/[name].(dll|exe) and
12599         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
12600         There's a test case attached to bug #58922.
12601
12602 2004-05-27  Dick Porter  <dick@ximian.com>
12603
12604         * icall.c:
12605         * file-io.c: Implemented icalls for locking and unlocking regions
12606         in a file.
12607         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
12608         FALSE on error (fixes both compiler warning and real bug.)
12609
12610 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
12611
12612         * culture-info-tables.h: reflecting locale-builder updates.
12613
12614           (Added missing ChangeLog entry for 05/26)
12615
12616 2004-05-27  Jackson Harper  <jackson@ximian.com>
12617
12618         * locales.c: Fix some cut and paste errors.
12619         
12620 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12621
12622         * mono-config.c: set the correct path for config. directory on windows.
12623
12624 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
12625
12626         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
12627           on win32.
12628
12629 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
12630
12631         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
12632         from pinvoke functions.
12633         
12634         * marshal.c (mono_ftnptr_to_delegate): Implement this.
12635
12636 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
12637
12638         * culture-info-tables.h: reflecting locale-builder updates.
12639
12640 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
12641
12642         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
12643         #59086.
12644
12645 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
12646
12647         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
12648         * icall.c: Modified icalls for RNG.
12649         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
12650         Windows (CryptoAPI).
12651
12652 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
12653
12654         * locales.c: Fix build.
12655
12656 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
12657
12658         * culture-info-tables.h: reflecting locale-builder updates.
12659
12660 2004-05-25  Jackson Harper  <jackson@ximian.com>
12661
12662         * locales.c: When creating the current culture use the $LANGs
12663         specific culture. So DateTimeFormat and NumberFormat entries are created.
12664         
12665 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
12666
12667         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
12668         a char array as parameter.
12669
12670 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
12671
12672         * image.c: In mono_image_open(), always use an absolute path name to
12673           look for already loaded images.
12674
12675 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
12676
12677         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
12678         missing in the windows build (like older cygwin include files).
12679
12680 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
12681
12682         * icall.c: Fixed check for possible integer overflow in Buffer_
12683         BlockCopy icall. Replaced comments style // by /* */.
12684
12685 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
12686
12687         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
12688         
12689         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
12690         check after MONO_VTADDR. Fixes pinvoke2.exe.
12691
12692         * marshal.h marshal.c metadata.h: Add beginnings of support for
12693         ftnptr -> delegate marshalling.
12694
12695 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
12696
12697         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
12698         * threads.c: Fix warnings.
12699
12700 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
12701
12702         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
12703         * icall.c: Registered icalls for Suspend and Resume.
12704         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
12705           Thread.Abort.
12706         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
12707         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
12708         * process.c: Use WaitForSingleObjectEx.
12709         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
12710           checkpoints.
12711         * threads.c, threads.h: Make use of new Ex wait methods. Improved
12712           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
12713           for Suspend and Resume. Added new mono_thread_stop, used for stoping
12714           background threads. Added basic support for Abort in Windows.
12715           Start new threads using a managed delegate invoke wrapper. This wrapper
12716           has an interruption checkpoint that is needed since an interruption
12717           can be requested before the thread leaves the unmanaged code that starts 
12718           the thread.
12719         * marshal.c: Added interruption checkpoint after every native call, and
12720           also before managed calls for wrappers called from unmanaged code to
12721           go into managed code.
12722         * object.h: Added new field in MonoThread to keep track of interruption
12723           requests.
12724
12725 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
12726
12727         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
12728         calls.
12729
12730 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12731
12732         * appdomain.c:
12733         * assembly.c:
12734         * gc.c:
12735         * locales.c:
12736         * mono-config.c:
12737         * rand.c: getenv -> g_getenv (windows!)
12738
12739         * process.c: complete_path is also used on non-windows platforms.
12740
12741 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12742
12743         * icall.c: new signature for Process_Start.
12744
12745         * process.[ch]: new signature for Process_Start. If we're on windows
12746         and UseShellExecute is false, we have to search for the program by
12747         ourselves if we don't get a full path.
12748
12749 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
12750
12751         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
12752         marshalling and call CleanUpNativeData if needed. Fixes #58646.
12753
12754 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12755
12756         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
12757         Fixes bug #58373.
12758
12759 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12760
12761         * process.c: use double quotes to quote program name and arguments on
12762         windows. Fixes bug #58575.
12763
12764 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12765
12766         * file-io.c: don't return "." and ".." when using windows Find*File.
12767
12768 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
12769
12770         * marshal.c: Don't pass wrappers to message init because method 
12771         addressed used to lookup metadata. part of remoting[2|3] fix.
12772
12773 2004-05-15  Jackson Harper  <jackson@ximian.com>
12774
12775         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
12776         path is essentially the same as MONO_PATH except that it points to
12777         GACs instead of lib directories.
12778         * loader.h: The user gac is gone so we dont need function to
12779         enable/disable it.
12780         * mono-config.c: user gac option is now gone.
12781         
12782 2004-05-15  Jackson Harper  <jackson@ximian.com>
12783
12784         * culture-info.h: Make defines more consistent, add calendar data
12785         to the culture info table.
12786         * culture-info-tables.h: Add basic calendar data. Basically
12787         everyone gets default gregorian until all the data is
12788         updated.
12789         * locales.c: Use the new consistent defines. Set calendar data for
12790         culture info objects.
12791         * object.h: add a field for calendar data to CultureInfo
12792         
12793 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
12794
12795         * image.c: image->runtime_invoke_cache is keyed on signatures now.
12796         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
12797         a signature.
12798         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
12799         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
12800         an extra param that is the pointer of the method to invoke. The IL for
12801         the invoke method is no longer specific to the method, but to the
12802         signature of the method. Thus, we can share the same code for multiple
12803         methods. This reduces the number of methods that have to be compiled.
12804
12805 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
12806
12807         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
12808
12809         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12810
12811         * icall.c: Optimize Buffer.BlockCopy.
12812
12813 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12814
12815         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
12816         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
12817         quote). Changed them to "MMMM yyyy".
12818
12819 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
12820
12821         * rand.c
12822         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
12823
12824 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
12825
12826         * reflection.h: Updated after changes to managed structures.
12827
12828         * appdomain.c: Bump corlib version.
12829
12830 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12831
12832         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
12833         windows.
12834
12835 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12836
12837         * Makefile.am: link to ../os/libmonoos.la on windows.
12838
12839         * assembly.c:
12840                 -If MONO_DEBUG, warn about non-existing directories in
12841                 MONO_PATH.
12842                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
12843                 compile time variable.
12844                 -Removed init_default_path and call mono_set_rootdir from
12845                 libmonoos.a instead (windows only).
12846
12847         * assembly.h: declare mono_assembly_getrootdir().
12848
12849         * domain.c:
12850         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
12851
12852         * loader.c: s/getenv/g_getenv/
12853
12854 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
12855
12856         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
12857
12858         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
12859
12860         * metadata.h: Add new marshalling conversions.
12861
12862         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
12863         function.
12864
12865         * reflection.c (mono_reflection_get_type): Lookup the type in all
12866         modules of a multi-module assembly. Fixes #58291.
12867
12868 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
12869
12870         * threads.c: Before aborting a background, set the StopRequested
12871         state.  This avoids throwing the Abort exception.
12872         In mono_thread_manage, don't continue with the shutdown until all
12873         aborted threads have actually stopped.
12874
12875 2004-05-10  Jackson Harper  <jackson@ximian.com>
12876
12877         * locales.c: Remove the modifier from culture names.
12878         
12879 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12880
12881         * Makefile.am: monosn is not installed any more. It has been deprecated
12882         in favor of sn.
12883
12884 2004-05-07  Jackson Harper  <jackson@ximian.com>
12885
12886         * locales.c
12887         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
12888         Fix array construction, add bailout if the length is 0.
12889
12890 2004-05-07  Dick Porter  <dick@ximian.com>
12891
12892         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
12893         machine doesn't have a DNS entry.  Patch by Urs Muff
12894         (umuff@quark.com), fixes bug 57928.
12895
12896 2004-05-06  Jackson Harper  <jackson@ximian.com>
12897
12898         * reflection.c: Handle null PublicTokens properly. alloc mem for
12899         assembly names culture so we dont crash when freeing it.
12900         
12901 2004-05-06  Jackson Harper  <jackson@ximian.com>
12902
12903         * assembly.c: Check the usergac when loading with partial names.
12904         
12905 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
12906
12907         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
12908         does nothing for now (not required for Linux/Windows) but the class
12909         library can call it (and a newer or modified runtime could need it).
12910         * icall.c: Registred icall.
12911
12912 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12913
12914         * loader.c: prints a message on module loading error we set MONO_DEBUG
12915         environment variable.
12916
12917 2004-05-05  Jackson Harper  <jackson@ximian.com>
12918
12919         * appdomain.c: Handle PublicKeyToken=null properly.
12920         
12921 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
12922
12923         * environment.c|h: Added icall ves_icall_System_Environment_
12924         GetOSVersionString to get the current OS version as a string.
12925         * icall.c: Registred icall.
12926
12927 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
12928
12929         * object.c: in mono_object_get_virtual_method(), take into account that
12930         non-virtual methods don't have a slot in the vtable. Check needed when
12931         the object is a proxy.
12932
12933 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
12934
12935         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
12936         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
12937
12938         * object.c (mono_class_compute_gc_descriptor): Fix warning.
12939
12940         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
12941         passed when a valuetype is expected.
12942
12943         * object.c (mono_unhandled_exception): Only set the exit code if the
12944         exception happens in the main thread. Fixes thread5.exe.
12945
12946         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
12947         invalid names. Fixes #58047.
12948
12949 2004-05-03  Jackson Harper  <jackson@ximian.com>
12950
12951         * assembly.c: This line was committed accidently and is unneeded.
12952         
12953 2004-05-03  Jackson Harper  <jackson@ximian.com>
12954
12955         * icall.c: Add new icall for Assembly::LoadWithPartialName
12956         * assembly.c/.h: new function that probes the GAC to load partial
12957         assembly names by Paolo Molaro.
12958         
12959 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12960
12961         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
12962         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
12963         (type_get_fully_qualified_name): Added PublicKeyToken when building a
12964         full type name.
12965
12966 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12967
12968         * appdomain.c: fixed check for 'neutral' culture and removed warning.
12969         * reflection.c: fix bug when parsing a full type name and Version is not
12970         the last thing in the string.
12971
12972 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
12973
12974         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
12975         crashes when it is freed.
12976
12977 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12978
12979         * assembly.c: print the compat warning to stderr.
12980
12981 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
12982
12983         * assembly.c (mono_assembly_load_references): Add a compatibility
12984         hack to run old applications that might be still referencing the
12985         3300-based assemblies, only do this for System.xxx.
12986
12987 2004-05-01  Jackson Harper  <jackson@ximian.com>
12988
12989         * appdomain.c: If the culture is neutral we set it to "".
12990         
12991 2004-04-29  Jackson Harper  <jackson@ximian.com>
12992
12993         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
12994
12995 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
12996  
12997         * string-icalls.c: added low overhead function for copying chars
12998         * icall.c: added needed icall for the above function
12999  
13000 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13001
13002         * icall.c: fix return value of get_global_assembly_cache.  Implemented
13003         Environment.GetLogicalDrives.
13004
13005 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
13006
13007         * rand.c: try and talk to egd or prngd
13008         for random bytes if opening devices fail.
13009
13010 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
13011
13012         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
13013         alignment for the type using the native alignment of its members 
13014         instead of using klass->min_align.
13015
13016         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
13017
13018 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13019
13020         * file-io.c:
13021         * socket-io.c: added check for sys/aio.h.
13022
13023 2004-04-28  Dick Porter  <dick@ximian.com>
13024
13025         * threads.c: Don't abort a thread thats already aborting, when
13026         terminating everything.
13027
13028 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13029
13030         * icall.c: added 2 new async calls for Socket.
13031
13032         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
13033         IO on *nix systems.
13034
13035         * threadpool.c: removed unused variable.
13036
13037 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
13038
13039         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
13040
13041 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
13042
13043         * locales.c: put back string_invariant_tolower () and
13044         string_invariant_toupper ().
13045
13046 2004-04-26 David Waite <mass@akuma.org>
13047
13048         * file-io.h:
13049         * socket-io.h:
13050         * threads.h:
13051         * unicode.h: remove comma from end of enumeration declarations
13052
13053 2004-04-26 David Waite <mass@akuma.org>
13054
13055         * debug-mono-symfile.h:
13056         * decimal.c:
13057         * mono_debug.h:
13058         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
13059
13060
13061 2004-04-26  Jackson Harper  <jackson@ximian.com>
13062
13063         * appdomain.c: Increment version number.
13064         
13065 2004-04-26  Jackson Harper  <jackson@ximian.com>
13066
13067         * appdomain.c: Set assembly references public token value when
13068         PublicKeyToken is specified, not the hash_value. Free public token
13069         values when free assembly name data. Previously the public key
13070         token was hex decoded, however we are using hex encoded public key
13071         tokens, so this is not neccasary.
13072         * assembly.c: Lookup assemblies in the gac if their public token
13073         value is set. Add function to allow enabling user gac
13074         lookups. Specify whether or not the assembly was loaded from the
13075         GAC. Compare full assembly names when checking the cache for
13076         assemblies (Temporarily disabled see comment in code). Remove
13077         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
13078         specifies trace-loader they get extra info to stdout on the
13079         loading of assemblies.
13080         * image.h: Add a field for an assembly references public token
13081         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
13082         whether an assembly has been loaded from the GAC.
13083         * image.c: Remove a corlib -> mscorlib name mapping.
13084         * loader.h: Add function to enable/disable the user gac.
13085         * mono-config.c: Check if the usergac is enabled in the config
13086         file.
13087         * icall.c: New icall to determine whether or not an assembly has
13088         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
13089         * tabldefs.h: Add constant for assemblyref flag that specifies a
13090         full public key is used instead of a public token.
13091         * reflection.c: Remove mscorlib -> corlib mappings. Set
13092         PublicTokenValue instead of hash value. This value is a hex
13093         string so it does not need to be expanded.
13094
13095 2004-04-26  Martin Baulig  <martin@ximian.com>
13096
13097         * mono-debug-debugger.c (mono_debugger_initialize): Set
13098         `mono_debugger_initialized' before calling mono_debug_lock().
13099
13100 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
13101
13102         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
13103           InternalToUpper/InternalToLower.
13104         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
13105           removed invariant culture shortcut.  This is now done in managed code.
13106         * locales.c: (string_invariant_toupper/tolower) removed.
13107
13108 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13109
13110         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
13111         Added Poll internal call.
13112
13113         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
13114         call for Poll. Select was too heavy for polling a single socket.
13115
13116         * threadpool.[ch]: added mono_threadpool_cleanup.
13117         * threads.c: use it. Don't use Thread_Abort on windows.
13118
13119 2004-04-23  Martin Baulig  <martin@ximian.com>
13120
13121         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
13122
13123 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
13124
13125         * icall.c: Registred new icalls for key pair protection and added an
13126         icall for Environment.GetFolderPath on Windows.
13127         * security.c|h: Added new icalls for key pair protection.
13128
13129 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13130
13131         * socket-io.c: don't display the non-supported family warning for known
13132         families. Now this is not displayed on windows when checking support
13133         for IPv4/IPv6.
13134
13135 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13136
13137         * class.c: don't display the layout warning for static fields.
13138
13139 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
13140
13141         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
13142         * locales.c, locales.h: Added new icalls for culture-specific
13143         Char.ToLower and Char.ToUpper.
13144
13145 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13146
13147         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
13148         by David Waite.
13149
13150 2004-04-20  Martin Baulig  <martin@ximian.com>
13151
13152         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
13153         of the type name before passing it to mono_reflection_type_from_name().
13154
13155 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
13156
13157         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
13158         encodings here. Fixes #56965.
13159
13160 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
13161
13162         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
13163         fix test on strstr result not that I can see anything that
13164         relies on the result.
13165
13166 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
13167
13168         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
13169         Fixes #57081.
13170
13171         * marshal.c (mono_marshal_get_string_encoding): New helper function.
13172
13173         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
13174         function to determine which marshalling to use for strings. Fixes
13175         #56965.
13176
13177         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
13178
13179         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
13180
13181 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
13182
13183         * icall.c: #include mono-config.h
13184
13185 2004-04-15  Jackson Harper  <jackson@ximian.com>
13186
13187         * culture-info-tables.h: Fix date formats for en-US culture.
13188         
13189 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
13190
13191         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
13192         ThreadPool.SetMinThreads.
13193         * threadpool.c: Implemented ThreadPool.GetMinThreads and
13194         ThreadPool.SetMinThreads.
13195
13196 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
13197
13198         * mono-config.c: also load the .config file in the directory
13199         where the assembly was found.
13200
13201 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
13202
13203         * assembly.c: load per-assembly config files.
13204         * icall.c: decrapified code to get the config dir and moved to
13205         mono-config.c.
13206         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
13207         per-assembly config files. When doing a dll map lookup give precedence
13208         to the per-assembly data.
13209
13210 2004-04-14  Martin Baulig  <martin@ximian.com>
13211
13212         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
13213         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
13214         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
13215
13216         * mono-debugger-debugger.c: While the debugger is locked, remember
13217         whether the symbol tables have changes and send one single
13218         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
13219
13220 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
13221
13222         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
13223
13224         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
13225         function.
13226
13227         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
13228         account when marshalling string arrays. Fixes #56965.
13229
13230 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
13231
13232         * icall.c: Add new icalls mapping for security.
13233         * security.c|h: Add internal calls for WindowsIdentity,
13234         WindowsImpersonationContext and WindowsPrincipal.
13235
13236 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
13237
13238         * class.c: Added comment to ensure the System.MonoDummy class
13239         is removed when no longer necessary
13240
13241 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
13242
13243         * appdomain.c: Pass arguments to the bootstraping exceptions to
13244         minimize JITed methods at boot
13245
13246         * metadata.c (mono_exception_from_name_two_strings): Allow for the
13247         second string to be null.
13248
13249         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
13250         Change the protocol to minimize the JIT methods at startup.  Now
13251         it Returns the internal codepage, if the value of "int_code_page"
13252         is 1 at entry, and we can not compute a suitable code page
13253         number, returns the code page as a string.
13254
13255 2004-04-13  Jackson Harper  <jackson@ximian.com>
13256
13257         * culture-info-tables.h: Fix number of decimal digits for all
13258         english locales.
13259
13260 2004-04-13  Jackson Harper  <jackson@ximian.com>
13261
13262         * icall.c: Clairfy out of sync error message. It is not always
13263         your corlib that is out of sync.
13264
13265 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
13266
13267         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
13268         properties when only the set accessor is overriden. Fixes #55874.
13269
13270 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
13271
13272         * assembly.c (mono_assembly_load_references): Make this thread safe.
13273         Fixes #56327.
13274
13275 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
13276
13277         * monosn.c: Add missing initialization calls.
13278
13279 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
13280
13281         * locales.c:
13282         ves_icall_System_Globalization_CultureInfo_construct_number_format
13283         Fix g_assert so it compiles on fussier compilers re int/ptr
13284         mismatch
13285
13286 2004-04-08  Dick Porter  <dick@ximian.com>
13287
13288         * socket-io.h:
13289         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
13290         53992.  Also rearrange the code so that the internal calls return
13291         an error value and exceptions are thrown from managed code.
13292
13293         * icall.c: Add type info to the socket icalls.
13294
13295 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13296
13297         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
13298         owes me a beer.
13299
13300 2004-04-07  Martin Baulig  <martin@ximian.com>
13301
13302         * class.c (mono_class_from_generic_parameter): Don't default
13303         `klass->parent' to `mono_defaults.object_type'.
13304
13305 2004-04-07  Martin Baulig  <martin@ximian.com>
13306
13307         * reflection.c (mono_reflection_initialize_generic_parameter): Set
13308         `param->pklass->reflection_info'.       
13309
13310 2004-04-07  Jackson Harper  <jackson@ximian.com>
13311
13312         * culture-info-tables.h: Fix date separator symbol.
13313         
13314 2004-04-07  Martin Baulig  <martin@ximian.com>
13315
13316         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
13317         from System.Type to System.MonoType.
13318
13319 2004-04-07  Martin Baulig  <martin@ximian.com>
13320
13321         * reflection.h
13322         (MonoReflectionGenericParam): Added `has_reference_type' and
13323         `has_value_type' fields.
13324
13325         * reflection.c (mono_image_get_generic_param_info): Encode the
13326         correct flags if we have the `class' or `struct' constraint.
13327
13328 2004-04-07  Martin Baulig  <martin@ximian.com>
13329
13330         * reflection.h
13331         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
13332
13333 2004-04-07  Jackson Harper  <jackson@ximian.com>
13334
13335         * appdomain.c: Revert extra patches, just wanted to bump the
13336         version number.
13337         
13338 2004-04-07  Jackson Harper  <jackson@ximian.com>
13339
13340         * Makefile.am: Add culture-info private headers.
13341         * icall.c: Add new icalls for contructing locales.
13342         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
13343         * locales.h: Declare new culture info construction methods.
13344         * object.h: Add new fields used to avoid the CultureMap to
13345         MonoCultureInfo.
13346         * culture-info.h: Definition of structs used in the culture info
13347         tables.
13348         * culture-info-tables.h: Autogenerated tables that contain culture
13349         info data. This file was generated with the locale-builder tool.
13350         * appdomain.c: Incement corlib version number.
13351         
13352 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
13353
13354         * appdomain.c: (mono_runtime_init) move mono_thread_init
13355         to before mono_object_new calls so critical sections
13356         are initialized before use.
13357
13358 2004-04-07  Martin Baulig  <martin@ximian.com>
13359
13360         * icall.c
13361         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
13362         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
13363         (ves_icall_MonoGenericParam_initialize): Removed.
13364         (monogenericparam_icalls): Removed.
13365         (generictypeparambuilder_icalls): Added new table for
13366         System.Reflection.Emit.GenericTypeParameterBuilder.
13367
13368         * reflection.c
13369         (mono_reflection_define_generic_parameter): Removed.
13370         (mono_reflection_initialize_generic_parameter): This is now called
13371         from GenericTypeParameterBuilder's .ctor.
13372
13373 2004-04-06  Martin Baulig  <martin@ximian.com>
13374
13375         * class.c (mono_class_init): Don't inflate nested classes in a
13376         generic instance.
13377         (mono_type_get_name_recurse): Include the generic arguments for
13378         generic instances and generic type declarations.
13379         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
13380         (_mono_class_get_instantiation_name): Removed.
13381         (mono_class_create_generic): Always use `gklass->name' as our name.
13382
13383         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
13384
13385         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
13386         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
13387         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
13388         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
13389         closed generic methods here.
13390
13391         * reflection.c
13392         (mono_reflection_generic_inst_get_nested_types): Removed.
13393         (inflate_mono_method): Copy the generic parameters from the
13394         MonoMethodHeader into out MonoGenericMethod.
13395
13396 2004-04-06  Martin Baulig  <martin@ximian.com>
13397
13398         * row-indexes.h
13399         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
13400
13401         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
13402
13403         * reflection.c (build_compressed_metadata): If we have any entries
13404         in the GenericParam, MethodSpec or GenericParamConstraint tables,
13405         set the header version to 1.1.
13406
13407 2004-04-06  Martin Baulig  <martin@ximian.com>
13408
13409         * class.c (mono_class_init): If we're a generic instance,
13410         initialize our nested classes, too.
13411         (_mono_class_get_instantiation_name): Deal with the new `!%d'
13412         suffix. 
13413
13414 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13415
13416         * process.c: quote the argument passed to the shell on windows.
13417
13418 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
13419
13420         * threads.c (mono_alloc_special_static_data): Allow this to be
13421         called during startup.
13422
13423 2004-04-02  Martin Baulig  <martin@ximian.com>
13424
13425         * icall.c
13426         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
13427
13428 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
13429
13430         * icall.c: Fix build.
13431
13432 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
13433
13434         * Makefile.am: Added security.c|h.
13435         * icall.c: Added icall for get_UserName;
13436         * security.c: New file for security related icalls. Added function
13437         get_UserName for System.Environment (fix #56144).
13438         * security.h: New. Header file for security.c
13439
13440 2004-04-02  Dick Porter  <dick@ximian.com>
13441
13442         * icall.c: Deleted the icalls that were obsoleted some time ago
13443         by the ICU string code, and which were mixed into the icall
13444         rearranging.  Fixes bug 55969.
13445
13446         * string-icalls.h: 
13447         * string-icalls.c: Deleted the code that those icalls reference.
13448
13449 2004-04-01  Martin Baulig  <martin@ximian.com>
13450
13451         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
13452
13453         * class.c (mono_class_from_generic_parameter): Don't set 
13454         TYPE_ATTRIBUTE_INTERFACE.
13455         (my_mono_class_from_generic_parameter): Likewise.
13456
13457 2004-04-01  Martin Baulig  <martin@ximian.com>
13458
13459         * loader.c (find_method): Added an optional `MonoClass *ic'
13460         argument to search in a specific interface.
13461         (mono_get_method_constrained): New public function.
13462
13463 2004-04-01  Martin Baulig  <martin@ximian.com>
13464
13465         * reflection.c (mono_image_get_generic_field_token): Use the
13466         `handleref' cache here.
13467
13468 2004-04-01  Martin Baulig  <martin@ximian.com>
13469
13470         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
13471
13472         * reflection.c (create_generic_typespec): Use the `typespec' hash
13473         here, not the `typeref' one.    
13474
13475 2004-04-01  Martin Baulig  <martin@ximian.com>
13476
13477         * class.c (mono_class_inflate_generic_type): Moved the
13478         functionality into a new static inflate_generic_type() which
13479         returns NULL if it didn't do anything.  Only increment the
13480         `mono_stats.inflated_type_count' if we actually inflated
13481         something.
13482         (mono_class_get_full): Check the classes type to see whether we
13483         need to inflate it; also inflate MONO_TYPE_(M)VAR.
13484
13485 2004-04-01  Jackson Harper  <jackson@ximian.com>
13486
13487         * reflection.c: Set culture for assembly references.
13488         
13489 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
13490
13491         * reflection.[ch], icall.[ch], Fix support for pinning variables.
13492
13493 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13494
13495         * assembly.c:
13496         (do_mono_assembly_open): the critical section also covers
13497         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
13498
13499 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13500
13501         * threads.c:
13502         (mono_manage_threads): abort the background threads when finishing.
13503         Fixes bug #47232.
13504
13505 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13506
13507         * gc.c: only close the done_event handle if there was no timeout.
13508         C-ified comments.
13509
13510 2004-03-30  Martin Baulig  <martin@ximian.com>
13511
13512         * icall.c (icall_entries): It's called "System.Activator", not
13513         "System.Activation".    
13514
13515 2004-03-30  Martin Baulig  <martin@ximian.com>
13516
13517         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
13518         (mono_class_create_from_typespec): Likewise.
13519
13520 2004-03-30  Martin Baulig  <martin@ximian.com>
13521
13522         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
13523         `has_ctor_constraint' and `initialized'.
13524
13525 2004-03-30  Martin Baulig  <martin@ximian.com>
13526
13527         * reflection.c (encode_new_constraint): New static function to add
13528         the constructor constraint attribute to a type parameter.
13529         (encode_constraints): Call encode_new_constraint() if necessary.
13530
13531         * reflection.h
13532         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
13533
13534         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
13535         
13536 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
13537
13538         * reflection.c, icall.c: add support for pinning variables. 
13539
13540 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
13541
13542         * marshal.c (mono_marshal_get_managed_wrapper):
13543         init bool local with zero rather than null.
13544
13545 2004-03-29  Martin Baulig  <martin@ximian.com>
13546
13547         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
13548         the "official" behavior here.
13549         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
13550
13551 2004-03-29  Martin Baulig  <martin@ximian.com>
13552
13553         * icall.c: Reflect latest API changes.
13554
13555 2004-03-29  Martin Baulig  <martin@ximian.com>
13556
13557         * loader.c (mono_get_method_from_token): Also call
13558         mono_metadata_load_generic_params () for abstract and interface
13559         methods; replace the type arguments in the method signature with
13560         the ones which are loaded from the metadata.
13561
13562 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
13563
13564         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
13565         of the lock is not the current thread. MS.NET don't do it, in spite of
13566         what the documentation says. See bug #56157.
13567
13568 2004-03-28  Martin Baulig  <martin@ximian.com>
13569
13570         * class.c (mono_class_init): Don't call init_properties() and
13571         init_events() for generic instances; set `prop->parent' when
13572         inflating properties.
13573
13574         * reflection.c (mono_generic_inst_get_object): Call
13575         `mono_class_init (ginst->klass)'.
13576         (mono_type_get_object): Only create a MonoGenericInst if your
13577         generic type is a TypeBuilder.
13578         (do_mono_reflection_bind_generic_parameters): Only set
13579         `ginst->is_dynamic' if our generic type is a TypeBuilder.
13580
13581 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
13582
13583         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
13584         Fixes #56091.
13585
13586 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13587
13588         * icall.c: added Kill_internal icall.
13589         * process.[ch]: added Kill_internal icall.
13590
13591 2004-03-25  Martin Baulig  <martin@ximian.com>
13592
13593         * class.h (MonoStats): Added `generic_instance_count',
13594         `inflated_method_count', `inflated_type_count' and
13595         `generics_metadata_size'.       
13596
13597 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13598
13599         * reflection.c: no warnings now.
13600
13601 2004-03-25  Martin Baulig  <martin@ximian.com>
13602
13603         * class.c (mono_class_get_full): New public function; does a
13604         mono_class_get(), but also takes a `MonoGenericContext *'.
13605
13606         * loader.c (mono_field_from_memberref): Renamed to
13607         `field_from_memberref', made static and added `MonoGenericContext *'
13608         argument.
13609         (mono_field_from_token): Added `MonoGenericInst *' argument.
13610         (method_from_memberef): Likewise.
13611         (mono_get_method_from_token): Likewise.
13612         (mono_get_method_full): New public function; does a
13613         mono_get_method(), but also takes a `MonoGenericContext *'.
13614
13615         * verify.c (mono_method_verify): Get the method's generic context
13616         and pass it to mono_field_from_token(), mono_get_method_full() and
13617         mono_class_get_full().
13618
13619 2004-03-25  Martin Baulig  <martin@ximian.com>
13620
13621         * class.c (mono_class_inflate_generic_type): Take a
13622         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
13623         `MonoGenericMethod *'.
13624
13625 2004-03-25  Martin Baulig  <martin@ximian.com>
13626
13627         * loader.h (MonoMethodInflated): Store the MonoGenericContext
13628         instead of the MonoGenericMethod here.
13629
13630 2004-03-25  Martin Baulig  <martin@ximian.com>
13631
13632         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
13633         each time we create a new MonoGenericInst, we also create a new
13634         context which points back to us.
13635
13636         * class.c (inflate_method): Use `ginst->context' instead of
13637         creating a new context.
13638
13639         * loader.c (method_from_memberref): Use
13640         `klass->generic_inst->context' instead of creating a new context.
13641
13642 2004-03-25  Martin Baulig  <martin@ximian.com>
13643
13644         * class.h (MonoGenericContext): New struct.
13645         (MonoGenericMethod): Removed `generic_inst'.
13646
13647         * class.c (mono_class_inflate_generic_method): Take a
13648         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
13649
13650 2004-03-25  Martin Baulig  <martin@ximian.com>
13651
13652         * loader.h (MonoMethodInflated): New typedef.
13653
13654         * metadata.h (MonoMethodSignature): Removed `gen_method', make
13655         `generic_param_count' consume just 30 bits, added `is_inflated'
13656         and `has_type_parameters' flags (one bit each).
13657
13658         * class.c (mono_class_inflate_generic_method): Create a
13659         MonoMethodInflated instead of a MonoMethodNormal and set
13660         `is_inflated' in the method signature.
13661
13662         * class.h (MonoGenericMethod): Removed `generic_method'.
13663
13664 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
13665
13666         * image.c: Make sure the name of a MonoImage is always an absolute path.
13667           This fixes bug #54415.
13668
13669 2004-03-24  Martin Baulig  <martin@ximian.com>
13670
13671         * class.c (mono_class_setup_vtable): If we're a generic instance,
13672         use our generic type's vtable size.
13673
13674 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
13675
13676         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
13677         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
13678         problems.
13679
13680 2004-03-23  Martin Baulig  <martin@ximian.com>
13681
13682         * class.h (MonoDynamicGenericInst): Added `int count_events' and
13683         `MonoEvent *events'.
13684
13685         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
13686         (typebuilder_icalls): Added "get_event_info"; calls
13687         mono_reflection_event_builder_get_event_info(). 
13688
13689         * reflection.c (mono_reflection_generic_inst_initialize): Added
13690         `MonoArray *events'.
13691         (mono_reflection_event_builder_get_event_info): New function.
13692
13693 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
13694
13695         * object.h: add mono_type_initialization_init
13696
13697         * object.c (mono_runtime_class_init): 
13698         implement class constructor synchronization rules
13699         to cope with threading issues.  
13700         add mono_type_initialization_init
13701
13702         * appdomain.c (mono_runtime_init): call 
13703         mono_type_initialization_init
13704
13705         * class.h: removing initializing field from MonoVTable
13706
13707 2004-03-23  Martin Baulig  <martin@ximian.com>
13708
13709         * class.c (my_mono_class_from_generic_parameter): Use
13710         `param->name' if it's not NULL. 
13711
13712 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
13713
13714         * class.c: do not insert non-virtual methods in the vtable.
13715         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
13716         that means the method is non-virtual. This never would have
13717         happened before.
13718
13719 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
13720
13721         * profiler.c: Added lock for accessing coverage_hash.
13722
13723 2004-03-22  Martin Baulig  <martin@ximian.com>
13724
13725         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
13726         `method->method->signature->generic_param_count != 0' to make it
13727         work for interface methods.
13728
13729 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13730
13731         * process.c: quote the string passed to the shell using g_shell_quote.
13732
13733 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13734
13735         * threads.c:
13736         (mono_threads_manage): don't remove the finalizer thread and self
13737         from the threads hash table so that mono_thread_manage can be called
13738         more than once.
13739
13740 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13741
13742         * process.c: quote the arguments when UseShellExecute is true. Fixes
13743         bug #55790.
13744
13745 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13746
13747         * threads.c: set mono_thread_detach as a cleanup routine for every
13748         thread. This way it's always executed upon thread termination, either
13749         aborted or finished normally. No more xsp hangs!
13750
13751 2004-03-17  Martin Baulig  <martin@ximian.com>
13752
13753         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
13754         `int count_nested' and a `MonoType **nested'.
13755
13756         * reflection.c (mono_reflection_bind_generic_parameters): Moved
13757         most of the functionality into a new static
13758         do_mono_reflection_bind_generic_parameters() and don't take a
13759         `MonoType *nested_in' argument any more.  Don't compute nested
13760         types here.
13761         (mono_reflection_generic_inst_get_nested_types): New public method
13762         to get nested types.
13763
13764         * class.c (mono_class_create_generic): Set `klass->nested_in' if
13765         we're a nested class.
13766
13767         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
13768         mono_reflection_generic_inst_get_nested_types() to compute the
13769         nested types.
13770
13771 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
13772
13773         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
13774         descriptive error message under windows.
13775         
13776 2004-03-17  Martin Baulig  <martin@ximian.com>
13777
13778         * class.c (dup_type): Added `const MonoType *original' argument;
13779         copy the attrs from the original type.
13780
13781 2004-03-17  Martin Baulig  <martin@ximian.com>
13782
13783         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
13784         `m->generic_inst_cache' here.
13785
13786 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
13787
13788         * exception.h exception.c: Add stack_overflow_exception.
13789
13790 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13791
13792         * threadpool.c:
13793         (overlapped_callback): call SetEvent *after* invoking the callback.
13794         No need to call CloseHandle.
13795
13796 2004-03-16  Martin Baulig  <martin@ximian.com>
13797
13798         * reflection.c (mono_image_get_fieldref_token): Take a
13799         `MonoReflectionField *' instead of a `MonoClassField *' and a
13800         `MonoClass *'; store the `MonoReflectionField *' in the hash.
13801
13802 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13803
13804         * appdomain.c: don't add the culture to the filename we're looking for
13805         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
13806
13807 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13808
13809         * locales.c: don't ignore symbols when doing case insensitive compares.
13810         Thanks Dick! Fixes bug #54046.
13811
13812         * threads.c: surround 'threads' usage with enter/leave in
13813         mono_thread_manage.
13814
13815 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
13816
13817         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
13818         implicitly marshalled as [Out]. Fixes #55450.
13819
13820         (mono_marshal_get_runtime_invoke): Zero out the result if there is
13821         an exception.
13822
13823 2004-03-16  Martin Baulig  <martin@ximian.com>
13824
13825         * class.c (mono_class_from_generic_parameter): Use the actual
13826         parameter name. 
13827
13828 2004-03-16  Martin Baulig  <martin@ximian.com>
13829
13830         * reflection.c (type_get_signature_size): New static function.
13831         Compues the size of the type in a method signature.
13832         (method_get_signature_size): New static function; calls
13833         type_get_signature_size() to compute the actual size of the
13834         method's signature.
13835         (method_encode_signature): Use method_get_signature_size() to get
13836         the signature's size rather than using `nparams * 10'.
13837
13838 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13839
13840         * file-io.h: define here WapiOverlapped on windows. I don't want the
13841         regular OVERLAPPED one.
13842
13843         * file-io.c:
13844         * threadpool.c: somehow, BindIoCompletionCallback is not found.
13845         Disabling AIO on windows.
13846
13847 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13848
13849         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
13850         bug #55385.
13851
13852 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13853
13854         * appdomain.c: upgraded corlib version.
13855
13856         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
13857         and BeginWrite. Allow opening files for asynchrnous operations.
13858
13859         * file-io.h: new struct that maps FileStreamAsyncResult.
13860         * icall.c: added new icalls.
13861         * process.[ch]: support setting child process environment variables
13862         and use the SHELL or COMSPEC when UseShellExecute is true.
13863
13864         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
13865         callback for async. IO is here and also BindHandle.
13866
13867         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
13868         from here.
13869
13870 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
13871
13872         * reflection.c (create_custom_attr): Allow len == 0.
13873
13874         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
13875         computation on big-endian machines.
13876
13877 2004-03-13  Martin Baulig  <martin@ximian.com>
13878
13879         * class.h (MonoGenericInst): Added `int count_ifaces'.
13880
13881         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
13882         `ginst->count_ifaces' instead `klass->interface_count' since we
13883         may get called before the vtable is created.
13884
13885         * loader.c (mono_method_get_param_names): If we're a generic
13886         instance, return and don't initialize the class.
13887
13888         * reflection.c (mono_reflection_setup_generic_class): Don't call
13889         ensure_runtime_vtable().
13890         (mono_reflection_bind_generic_parameters): Set
13891         `ginst->count_ifaces'.
13892
13893 2004-03-11  Jackson Harper <jackson@ximian.com>
13894
13895         * icall.c:
13896         * unicode.c:
13897         * unicode.h: Remove unused System.Char icalls.
13898         
13899 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
13900
13901         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
13902         code when we P/Invoke the first library in Windows.Forms, instead
13903         of when we first open the assembly.
13904
13905         * assembly.c: Drop the lookup from here.
13906
13907 2004-03-10  Martin Baulig  <martin@ximian.com>
13908
13909         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
13910         class for properties, fields and events.  Finally fixes #54945.
13911
13912 2004-03-10  Martin Baulig  <martin@ximian.com>
13913
13914         * metadata.c (mono_metadata_class_equal): New static function;
13915         checks whether two generic instances or two generic parameters are
13916         equal.
13917         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
13918         compare classes.        
13919
13920 2004-03-10  Martin Baulig  <martin@ximian.com>
13921
13922         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
13923
13924         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
13925         argument and write it into the `reflection_info' field.
13926
13927         * icall.c
13928         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
13929         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
13930
13931 2004-03-09  Jackson Harper  <jackson@ximian.com>
13932
13933         * char-conversions.h: use 8 bits for numeric data its all we need
13934         * icall.c: numeric data is only 8 bits now.
13935
13936 2004-03-09  Martin Baulig  <martin@ximian.com>
13937
13938         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
13939
13940         * class.c (init_properties, init_events): Initialize the new
13941         `parent' field.
13942
13943         * reflection.c (typebuilder_setup_properties): Likewise.
13944         (typebuilder_setup_events): Likewise.
13945
13946         * reflection.h (MonoEventInfo): Replaced `parent with
13947         `declaring_type' and `reflected_type'.
13948
13949         * icall.c (ves_icall_get_property_info): Distinguish between
13950         declaring and reflected type.
13951         (ves_icall_get_event_info): Likewise.
13952
13953 2004-03-09  Martin Baulig  <martin@ximian.com>
13954
13955         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
13956         (ves_icall_Type_GetField): Correctly set field->klass.
13957
13958 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
13959
13960         * loader.h: Fix warning.
13961
13962 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
13963
13964         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
13965         library routine if present.  Notice that it will still continue
13966         executing even if its missing, for those working on the Gtk#
13967         edition of Windows.Forms.
13968
13969         * assembly.c (do_mono_assembly_open): If loading the
13970         System.Windows.Forms call mono_loader_wini_init.
13971
13972 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
13973
13974         * class.h: Added MonoRemoteClass struct.
13975         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
13976         function for MonoStrings.
13977         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
13978         Added internal call for getting the proxy type.
13979         * marshal.c: Get the type of transparent proxies from its remote_class.
13980         Added methods that generate the IL for type checks and casts:
13981         mono_marshal_get_isinst, mono_marshal_get_castclass, 
13982         mono_marshal_get_proxy_cancast.
13983         * marshal.h: Declaration of the previous new methods.
13984         * object.c: Added new moethods for creating and updating MonoRemoteClass
13985         instances: mono_remote_class, mono_upgrade_remote_class, 
13986         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
13987         * verify.c: FIx transparent_proxy_fields layout.
13988         * appdomain.c: Bump corlib version.
13989
13990 2004-03-04  Jackson Harper  <jackson@ximian.com>
13991
13992         * icall.c: Add icall to access char conversion tables.
13993         * char-conversions.h: Character conversion tables.
13994         * Makefile.am: Add char-conversions.h private header file.
13995         
13996 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
13997
13998         * appdomain.c (unload_thread_main): Increase unloading timeout to
13999         10 sec as a temporary workaround for Nant problems.
14000
14001 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
14002
14003         * gc.c: Add checks for GC_enable and GC_disable.
14004
14005         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
14006         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
14007         (bug #54988).
14008         
14009 2004-02-27  Martin Baulig  <martin@ximian.com>
14010
14011         * reflection.c (mono_reflection_bind_generic_parameters): Take a
14012         `MonoReflectionType *' instead of a `MonoType *'.
14013
14014 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
14015
14016         * gc.c (run_finalize): Avoid finalizing the object representing the
14017         finalizer thread.
14018         (finalizer_thread): Fix warning.
14019
14020 2004-02-25  Martin Baulig  <martin@ximian.com>
14021
14022         * class.c (_mono_class_get_instantiation_name): Added `int offset'
14023         argument for nested types.
14024         (mono_class_create_generic): Added support for nested generictypes.
14025
14026         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
14027         `GList *nested'.
14028
14029         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
14030
14031         * reflection.c (method_encode_signature): Increase the minimum
14032         value of `size' from 10 to 11.
14033         (mono_reflection_bind_generic_parameters): Take `int type_argc'
14034         and `MonoType **types' arguments instead of the `MonoArray
14035         *types'; added `MonoType *nested_in'.  Recursively instantiate
14036         nested classes. 
14037
14038 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
14039
14040         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
14041         stack_overflow_ex members which are used by exception handling.
14042
14043         * appdomain.c (mono_runtime_init): Initialize the new members.
14044
14045         * gc.c (mono_gc_enable): New helper function.
14046         * gc.c (mono_gc_disable): New helper function.
14047
14048 2004-02-23  Martin Baulig  <martin@ximian.com>
14049
14050         * icall.c: I must have been really stupid - make it actually work
14051         this time ;-)
14052
14053 2004-02-23  Martin Baulig  <martin@ximian.com>
14054
14055         * loader.c (method_from_memberref): Only inflate the method if
14056         it's in another klass.
14057
14058 2004-02-23  Martin Baulig  <martin@ximian.com>
14059
14060         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
14061         (mono_class_init): If we're a generic instance and an interface,
14062         compute `class->interface_id'; also create `class->interfaces'
14063         here and inflate them.
14064
14065         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
14066         `ginst->is_open'.
14067         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
14068
14069         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
14070
14071 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
14072
14073         * reflection.c (method_encode_code): Improved the error message
14074         generated by the exception.
14075
14076 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14077
14078         * icall.c: Martin did not do what he said in the ChangeLog for
14079         2004-02-18, but put back the changes for properties and events.
14080         Commenting those changes out again and adding comment to bug #54518.
14081         
14082         * process.c: removed warning.
14083
14084 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
14085
14086         * marshal.c (emit_struct_conv): Print an error message instead of
14087         asserting when a type does not have the StructLayout attribute.
14088
14089 2004-02-20  Martin Baulig  <martin@ximian.com>
14090
14091         * reflection.c (mono_type_get_object): Also use the cache for
14092         generic instances.
14093         (mono_reflection_bind_generic_parameters): Always compute
14094         `ginst->ifaces'.        
14095
14096 2004-02-20  Martin Baulig  <martin@ximian.com>
14097
14098         * class.h (MonoGenericMethod): Removed `klass'.
14099
14100         * class.c (mono_class_inflate_generic_method): Added `MonoClass
14101         *klass' argument.
14102
14103 2004-02-20  Martin Baulig  <martin@ximian.com>
14104
14105         * reflection.c (method_encode_methodspec): Actually use the
14106         uninflated signature for the memberref.
14107
14108 2004-02-20  Martin Baulig  <martin@ximian.com>
14109
14110         * class.h (MonoGenericMethod): Removed `declaring'.
14111
14112         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
14113         is NULL, compute it here.
14114
14115 2004-02-20  Martin Baulig  <martin@ximian.com>
14116
14117         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
14118
14119         * metadata.c (mono_metadata_generic_inst_hash): New method.
14120         (mono_metadata_generic_inst_equal): New method.
14121
14122         * reflection.c (mono_reflection_bind_generic_parameters): Use the
14123         `klass->image->generic_inst_cache' cache to avoid creating
14124         duplicate MonoGenericInst's.
14125
14126         * class.c (mono_class_inflate_generic_type): Use the cache.
14127
14128 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
14129
14130         * object.c: fixed gc descriptor calculation for embedded valuetypes.
14131
14132 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14133
14134         * icall.c: added Socket.WSAIoctl icall.
14135
14136         * socket-io.[ch]: implemented
14137         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
14138
14139 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
14140
14141         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
14142
14143 2004-02-18  Urs C Muff  <umuff@quark.com>
14144
14145         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
14146         this work on PPC and other big-endian architectures.
14147
14148         * debug-mono-symfile.h: Prepended the names of all the `guint32'
14149         fields with an underscore to make sure they're only accessed by
14150         the read32() macro.
14151
14152 2004-02-18  Martin Baulig  <martin@ximian.com>
14153
14154         * icall.c: Put the klass->refclass changes back for methods and
14155         fields, but not for properties and events.  We're currently not
14156         distinguishing between DeclaringType and ReflectedType for
14157         properties and events, that's what caused the regressions.
14158
14159 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14160
14161         * object.c:
14162         (mono_async_result_new): the handle can be NULL.
14163
14164         * threadpool.c: Use an event instead of a semaphore, don't initialize
14165         it until needed. This saves quite a few semaphores from being created
14166         when using the threadpool.
14167
14168 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
14169
14170         * object.c (mono_string_is_interned_lookup): Fix interning of long
14171         strings. Fixes #54473.
14172
14173         * domain.c (ldstr_equal): Optimize if the two strings are equal.
14174
14175         * icall.c: Revert the klass->refclass changes since they introduce
14176         regressions (bug #54518).
14177
14178 2004-02-18  Martin Baulig  <martin@ximian.com>
14179
14180         * class.c (mono_class_init): If we're a generic instance and don't
14181         come from a TypeBuilder, inflate our members here.
14182         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
14183         (mono_class_create_generic): New public method.
14184         (mono_class_initialize_generic): Removed.
14185         (get_instantiation_name): Renamed to
14186         _mono_class_get_instantiation_name() and made it public.
14187
14188 2004-02-18  Martin Baulig  <martin@ximian.com>
14189
14190         * class.c (mono_class_inflate_generic_type): Clear the new
14191         instance's `nginst->klass' when inflating a generic instance.
14192         (mono_class_is_subclass_of): Added (basic) support for generic
14193         instances.
14194
14195 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
14196
14197         * appdomain.h, domain.c: use a MonoCodeManager instead of a
14198         MonoMempool to hold compiled native code.
14199
14200 2004-02-17  Martin Baulig  <martin@ximian.com>
14201
14202         * class.h (MonoDynamicGenericInst): Added `count_properties' and
14203         `properties'.
14204
14205         * reflection.c (mono_reflection_generic_inst_initialize): Added
14206         `MonoArray *properties' argument.
14207
14208         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
14209
14210 2004-02-17  Martin Baulig  <martin@ximian.com>
14211
14212         * icall.c (ves_icall_Type_GetFields): Renamed to
14213         ves_icall_Type_GetFields_internal() and added a
14214         `MonoReflectionType *rtype' argument; pass it to
14215         mono_field_get_object() to set the field's "reflected" type.
14216         (ves_icall_Type_GetConstructors): Likewise.
14217         (ves_icall_Type_GetEvents): Likewise.
14218         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
14219         argument; pass it to mono_method_get_object() to set the method's
14220         "reflected" type.       
14221
14222 2004-02-17  Martin Baulig  <martin@ximian.com>
14223
14224         * class.h (MonoDynamicGenericInst): New type.
14225         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
14226
14227         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
14228         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
14229         (ves_icall_MonoGenericInst_GetFields): New interncall.
14230
14231         * class.c (mono_class_from_generic): Don't call
14232         mono_class_initialize_generic() if this is a dynamic instance;
14233         ie. it's being created from a TypeBuilder.
14234         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
14235         `class->byval_arg.type'.
14236
14237         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
14238         to `inflate_method' and made static.
14239         (mono_reflection_inflate_field): Removed.
14240         (mono_reflection_generic_inst_initialize): New public method.
14241
14242         * reflection.h (MonoReflectionGenericInst): Removed `methods',
14243         `ctors' and `fields'; added `initialized'.
14244
14245 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
14246
14247         * debug-helpers.c (mono_method_full_name): Fix output for empty
14248         namespaces.
14249
14250 2004-02-12  Martin Baulig  <martin@ximian.com>
14251
14252         * class.h (MonoClassField): Added `MonoType *generic_type'.
14253
14254         * reflection.c (mono_image_get_fieldref_token): Added support for
14255         instantiated generic types.
14256         (field_encode_inflated_field): Removed.
14257         (mono_image_get_inflated_field_token): Removed.
14258         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
14259
14260         * reflection.h (MonoReflectionInflatedField): Removed.
14261
14262 2004-02-12  Martin Baulig  <martin@ximian.com>
14263
14264         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
14265         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
14266
14267         * reflection.c (mono_image_get_methodspec_token): Take a
14268         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
14269         (mono_image_create_token): Check whether we have a
14270         `method->signature->gen_method' and call
14271         mono_image_get_methodspec_token() if appropriate.
14272         (inflated_method_get_object): Removed.
14273         (mono_reflection_bind_generic_method_parameters): Return a
14274         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
14275         (mono_reflection_inflate_method_or_ctor): Likewise.
14276
14277         * reflection.h (MonoReflectionInflatedMethod): Removed.
14278
14279 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
14280
14281         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
14282         for custom valuetype marshalling.
14283
14284         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
14285
14286 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14287
14288         * icall.c: fixed WSAGetLastError_internal name.
14289
14290 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
14291
14292         * threads.c (mono_thread_attach): Allow this to be called multiple
14293         times for a thread.
14294         
14295         * threads.c (build_wait_tids): Do not wait for ourselves.
14296
14297         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
14298         appdomain list is empty.
14299
14300         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
14301         memory returned by mono_string_builder_to_utf16, since it points into
14302         managed memory. Thanks to Bernie Solomon for noticing this.
14303
14304         * icall.c: Add AppDomainSetup icalls.
14305
14306         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
14307
14308         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
14309         types.
14310
14311         * reflection.c (reflection_methodbuilder_to_mono_method): Save
14312         custom attributes to the method_aux struct. Also fix array indexes etc.
14313
14314         * loader.c (mono_method_get_param_names): Make dynamic case work again.
14315         
14316 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
14317
14318         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
14319         (both static and runtime) and reduce startup time.
14320
14321 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
14322
14323         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
14324         AsAny marshalling conversion instead of crashing.
14325
14326         * marshal.c: Fix warnings.
14327
14328 2004-02-09  Martin Baulig  <martin@ximian.com>
14329
14330         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
14331
14332         * reflection.h (MonoReflectionInflatedMethod): Removed the
14333         `declaring' field, it's now in the unmanaged MonoGenericMethod.
14334
14335         * reflection.c (method_encode_methodspec): Removed the `method'
14336         argument; we get it from `gmethod->declaring'.
14337         (inflated_method_get_object): Removed the `declaring' argument.
14338
14339 2004-02-09  Martin Baulig  <martin@ximian.com>
14340
14341         * class.h (MonoGenericMethod): New type.
14342         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
14343         `generic_method'.
14344
14345         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
14346         a `MonoGenericMethod *gen_method' one.
14347
14348         * class.c (mono_class_inflate_generic_type): Take an additional
14349         `MonoGenericMethod * argument.  This is only non-NULL if we're
14350         inflating types for a generic method.   
14351         (mono_class_inflate_generic_signature): Renamed to
14352         inflate_generic_signature() and made static; take a
14353         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
14354         (inflate_generic_header): Take a `MonoGenericMethod *' argument
14355         instead of a `MonoGenericInst *' one.
14356         (mono_class_inflate_generic_method): Likewise.
14357
14358         * reflection.c (encode_generic_method_sig): Take a
14359         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
14360         (method_encode_methodspec): Likewise.
14361         (inflated_method_get_object): Likewise. 
14362
14363         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
14364         field with a `MonoGenericMethod *gmethod' one.  
14365
14366 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
14367
14368         * class.h (mono_class_has_parent): add parens to expansion
14369         so you can ! this.
14370
14371 2004-02-08  Martin Baulig  <martin@ximian.com>
14372
14373         * image.h (MonoImage): Removed `generics_cache'.
14374
14375         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
14376         instead of a `MonoType *' argument; removed the `inflate_methods'
14377         argument.  Don't inflate methods here.
14378
14379         * loader.c (find_method): If it's a generic instance, call
14380         mono_class_init() on the `sclass->generic_inst->generic_type'.
14381
14382         * metadata.c (mono_type_size): Make this work on uninitialized
14383         generic instances; call it on the `ginst->generic_type's class.
14384
14385         * reflection.c (mono_reflection_bind_generic_parameters): Call
14386         mono_class_from_generic() to create the `ginst->klass'.
14387
14388 2004-02-08  Martin Baulig  <martin@ximian.com>
14389
14390         * class.h (MonoClass): Changed type of `generic_inst' from
14391         `MonoType *' to `MonoGenericInst *'.
14392
14393 2004-02-08  Martin Baulig  <martin@ximian.com>
14394
14395         * icall.c (ves_icall_Type_BindGenericParameters): Just call
14396         mono_type_get_object(), this is now creating a `MonoGenericInst'
14397         for MONO_TYPE_GENERICINST.
14398         (ves_icall_MonoGenericInst_GetParentType): Likewise.
14399         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
14400
14401         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
14402         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
14403         (inflated_method_get_object): Added `MonoClass *refclass' argument.
14404         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
14405         and reflected type.
14406
14407         * reflection.h (MonoReflectionInflatedMethod): Removed
14408         `declaring_type' and `reflected_type'.
14409
14410 2004-02-08  Martin Baulig  <martin@ximian.com>
14411
14412         * class.h (MonoGenericInst): Added `MonoType *parent' and
14413         `MonoType **ifaces'.
14414
14415         * reflection.h (MonoReflectionGenericInst): Removed `klass',
14416         `parent' and `interfaces'.
14417
14418         * reflection.c (mono_reflection_bind_generic_parameters): Take a
14419         `MonoType *' argument and return a `MonoType *'.
14420
14421         * icall.c
14422         (ves_icall_MonoGenericInst_GetParentType): New interncall.
14423         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
14424
14425 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
14426
14427         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
14428         valuetype marshalling.
14429
14430 2004-02-06  Martin Baulig  <martin@ximian.com>
14431
14432         * class.c
14433         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
14434         (my_mono_class_from_generic_parameter): Likewise.
14435
14436 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
14437
14438         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
14439         contents of the symbol files lazily.
14440
14441         * object.h (MonoThread): Add 'name' and 'name_len' fields.
14442
14443         * threads.h threads.c icall.c: New icalls for getting and setting the
14444         threads name.
14445
14446 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
14447
14448         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
14449         Raise an exception when the domain is not found.
14450
14451 2004-02-03  Martin Baulig  <martin@ximian.com>
14452
14453         * reflection.c (mono_image_get_methodspec_token): Use the
14454         uninflated signature; fixes gen-33.
14455
14456 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
14457
14458         * gc.c threads.c: Make the finalizer thread a normal managed thread so
14459         the finalizer code can use thread functionality.
14460
14461         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
14462         the finalizer thread.
14463
14464         * threads.c: Make some functions more robust.
14465
14466         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
14467
14468         * metadata.h: Add new marshalling conventions.
14469
14470         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
14471         stringbuilder marshalling. Fixes #53700.
14472
14473         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
14474
14475         * reflection.c (mono_image_get_type_info): Save declarative security
14476         info.
14477
14478         * reflection.c (mono_image_get_field_info): Handle uninitialized 
14479         unmanaged fields as well.
14480
14481         * appdomain.c: Bump corlib version.
14482
14483 2004-02-01  Martin Baulig  <martin@ximian.com>
14484
14485         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
14486         method type arguments.  
14487
14488 2004-01-30  Duncan Mak  <duncan@ximian.com>
14489
14490         * marshal.h: Add prototype for
14491         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
14492         and
14493         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
14494         fix the build.
14495
14496 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
14497
14498         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
14499         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
14500
14501 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
14502
14503         * marshal.c (mono_marshal_get_native_wrapper): Add support for
14504         custom marshalling of valuetypes.
14505
14506         * marshal.c: Fix some warnings.
14507
14508 2004-01-29  Martin Baulig  <martin@ximian.com>
14509
14510         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
14511         for generic method parameters.
14512
14513         * reflection.c (method_encode_methodspec): Write the uninflated
14514         signature into the methodspec table.
14515         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
14516         is always the uninflated method.
14517         (reflection_methodbuilder_to_mono_method): Copy the generic
14518         parameters from the MethodBuilder into `header->gen_params'.
14519
14520 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
14521
14522         * class.c (mono_class_from_generic_parameter): Fix warning.
14523
14524 2004-01-27  Martin Baulig  <martin@ximian.com>
14525
14526         * class.c (mono_class_from_generic_parameter): Don't create
14527         `klass->methods' here.  
14528
14529 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
14530
14531         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
14532         extension since it does not work with libraries named lib<FOO>.dll.so.
14533
14534 2004-01-25  Martin Baulig  <martin@ximian.com>
14535
14536         * class.c (mono_class_inflate_generic_type): Added support for
14537         MONO_TYPE_GENERICINST.
14538
14539         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
14540         inflate methods on open constructed types.      
14541
14542 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14543
14544         * object.c: fire ProcessExit event in the root AppDomain after running
14545         Main. Fixes bug #53299.
14546
14547 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
14548
14549         * socket-io.c: include the new socket-wrappers.h header.
14550         Use the wrappers instead of the unix socket functions to make the code
14551         more clear.
14552
14553 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
14554
14555         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
14556
14557         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
14558         Fixes #22532.
14559
14560 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
14561
14562         * reflection.c (mono_image_create_pefile): Handle the case when the
14563         entry point is not a MethodBuilder.
14564
14565         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
14566         field to ReflectionMethod since it is not allways a builder.
14567
14568         * reflection.c (type_get_fully_qualified_name): New helper function to
14569         return the fully qualified name of a type.
14570
14571         * reflection.c (encode_marshal_blob): Always emit the fully qualified
14572         type name for custom marshallers.
14573
14574         * reflection.c (mono_marshal_spec_from_builder): Ditto.
14575
14576         * class.c (mono_class_setup_vtable): If a parent class already 
14577         implements an interface, use the implementing methods from that class.
14578         Fixes #53148.
14579
14580 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14581
14582         * threadpool.c: just return instead of ExitThread to allow for thread
14583         clean up earlier.
14584
14585 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
14586
14587         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
14588         when closing resource modules.
14589
14590         * reflection.c (mono_image_create_pefile): Handle the case when the
14591         entry point is not a MethodBuilder.
14592
14593         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
14594         field to ReflectionMethod since it is not allways a builder.
14595
14596 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
14597
14598         * marshal.c (mono_marshal_get_managed_wrapper): 
14599         mono_marshal_alloc takes native int so CONV_I
14600         the arg for 64bits.
14601
14602 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
14603
14604         * reflection.c (fixup_cattrs): New function to fixup the methoddef
14605         tokens in the cattr table. Fixes #53108.
14606
14607 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14608
14609         * loader.c: don't trim ".dll" before looking up in the config file.
14610         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
14611
14612 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
14613
14614         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
14615         Return the module which contains the resource as well.
14616         (ves_icall_System_Reflection_Module_Close): New icall.
14617
14618         * appdomain.c: Bump corlib version number.
14619
14620         * image.c (mono_image_addref): New public function.
14621
14622         * assembly.c: Call mono_image_addref.
14623
14624         * reflection.c (mono_module_get_object): Increase reference count of 
14625         the image.
14626
14627         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
14628         Fixes #22532.
14629
14630         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
14631         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
14632         proper exceptions on DllImport problems.
14633
14634 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
14635
14636         * class.c, metadata.c: eliminate CSIZE macro.
14637
14638 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
14639
14640         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
14641         * object.h: Added async_callback field in MonoAsyncResult.
14642         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
14643         * verify.c: Added async_callback in MonoAsyncResult layout.
14644
14645 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
14646
14647         * reflection.c (mono_reflection_get_custom_attrs): Add support
14648         for Modules.
14649
14650 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
14651
14652         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
14653         marshalling.
14654         (mono_marshal_method_from_wrapper): Add null pointer check.
14655
14656 2004-01-16  Martin Baulig  <martin@ximian.com>
14657
14658         * debug-mono-symfile.h: Set version number to 36 and reflect
14659         latest symbol writer changes.
14660
14661 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
14662
14663         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
14664         multi-dimensional arrays.
14665         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
14666         (mono_class_from_mono_type): Use bounded_array_class_get.
14667         
14668         * class.c (mono_bounded_array_class_get): New function which takes
14669         a 'bounded' bool argument to distinguish vectors from one dimensional
14670         arrays.
14671
14672         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
14673         bounded_array_class_get if the array has bounds.
14674
14675         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
14676         Search modules loaded using AssemblyBuilder:AddModule as well.
14677
14678 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14679
14680         * appdomain.c: increased corlib version.
14681         * filewatcher.c: removed g_print.
14682         * icall.c:
14683         (get_property_info): only allocate what is actually requested.
14684         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
14685
14686 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14687
14688         * Makefile.am: added filewatcher.[ch]
14689         * filewatcher.[ch]: FileSystemWatcher runtime support.
14690         * icall.c: added new FSW icalls.
14691
14692 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
14693
14694         * string-icalls.c: fix stringbuilder regression as suggested by
14695         Iain McCoy <iain@mccoy.id.au>.
14696
14697 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
14698
14699         * process.c (process_read_stringtable_block): Recognize '007f' as
14700         a language neutral stringtable block.
14701
14702 2004-01-12  Patrik Torstensson
14703
14704         * object.h (MonoStringBuilder) : Changed layout to support our
14705         new stringbuilder class.
14706         * marshal.c: Change marshalling to support the new layout of 
14707         string builder.
14708         * appdomain.c: increased version number because new layout of
14709         string builder.
14710
14711 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
14712
14713         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
14714         assembly name as an string instead of an AssemblyName, since it is
14715         easier to extract info from it.
14716
14717         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
14718         the culture subdirectories too. Fixes #52231.
14719
14720 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14721
14722         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
14723         It takes 2 new parameters with an optional name for the method to look
14724         for and case ignoring info.
14725
14726         * threadpool.c: removed unused variable.
14727
14728 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14729
14730         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
14731         It takes 2 new parameters with an optional name for the property to look
14732         for and case ignoring info.
14733         Fixes bug #52753.
14734
14735 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
14736
14737         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
14738         Fix #52451.
14739
14740 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14741
14742         * appdomain.c:
14743         * assembly.c: escape the uri before passing it to g_filename_from_uri.
14744         Fixes bug #52630.
14745
14746 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
14747
14748         * reflection.c: Add support for more than one unmanaged resource.
14749
14750         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
14751         in field->def_value, as done in all other cases.
14752
14753         * reflection.c (mono_reflection_get_custom_attrs): Add support for
14754         TypeBuilders.
14755
14756         * reflection.c (mono_reflection_create_runtime_class): Remove 
14757         errorneous assignment to klass->element_class, since it is already
14758         done in mono_reflection_setup_internal_class.
14759
14760 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14761
14762         * gc.c: added missing LeaveCriticalSection.
14763         * icall.c: indented a couple of lines.
14764         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
14765         if we call EndInvoke inside a callback. Fixes bug #52601.
14766
14767 2004-01-07  Martin Baulig  <martin@ximian.com>
14768
14769         * mono-debug-debugger.h
14770         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
14771
14772 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
14773
14774         * appdomain.c: Use messages in NotImplementedException.
14775
14776         * exception.c (mono_get_exception_not_implemented): Now this takes
14777         a message argument.
14778
14779         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
14780         exception instead of g_asserting an aborting when something is not
14781         implemented.
14782
14783         Add some inline docs.
14784
14785 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
14786
14787         * reflection.h: Update after changes to object layout.
14788
14789         * reflection.c: Implement saving of unmanaged aka win32 resources.
14790
14791         * appdomain.c: Bump version number.
14792
14793         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
14794         Handle missing domains gracefully.
14795
14796 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
14797
14798         * file-io.c : On Windows, there are much more invalid_path_chars.
14799
14800 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
14801
14802         * class.h, object.c: prepare for GetType () speedup.
14803
14804 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
14805
14806         * profiler.c: workaround for --profile null reference exception on
14807           cygwin. Patch by Patrik Torstensson.
14808
14809 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
14810
14811         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
14812         make work for unaligned access.
14813
14814 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
14815
14816         * class.c: small cleanup (class->fields [i] -> field).
14817         * image.c: check address of metadata is valid.
14818
14819 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
14820
14821         * assembly.h assembly.c (mono_assembly_loaded): New public function to
14822         search the list of loaded assemblies.
14823
14824         * reflection.c (mono_reflection_type_from_name): Use 
14825         mono_assembly_loaded instead of mono_image_loaded.
14826
14827         * reflection.c: Fix warnings.
14828
14829 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
14830
14831         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
14832         is dynamic. This is needed since an assembly can contain both dynamic and
14833         non-dynamic images.
14834
14835         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
14836         assembly->dynamic.
14837
14838         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
14839
14840         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
14841         to store modules loaded using AddModule.
14842
14843         * reflection.c (mono_image_fill_file_table): Generalize this so it works
14844         on Modules.
14845
14846         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
14847
14848         * reflection.c (mono_image_fill_export_table_from_module): New function to
14849         fill out the EXPORTEDTYPES table from a module.
14850
14851         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
14852         into a separate function. Also handle loaded non-dynamic modules.
14853
14854         * reflection.c (mono_image_basic_init): Fix memory allocation.
14855
14856         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14857
14858         * assembly.c (mono_assembly_load_references): Make this public.
14859
14860 2003-12-19  Martin Baulig  <martin@ximian.com>
14861
14862         * class.c (mono_class_initialize_generic): Made this static, take
14863         a `MonoGenericInst *' instead of a `MonoClass *'.
14864         (mono_class_from_generic): Call mono_class_initialize_generic()
14865         unless we're already initialized or being called from
14866         do_mono_metadata_parse_generic_inst().
14867
14868         * class.h (MonoGenericInst): Added `initialized' and
14869         `init_pending' flags.
14870
14871         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
14872         `mono_class_init (gklass)' or mono_class_initialize_generic()
14873         here; set `generic_inst->init_pending' while parsing the
14874         `type_argv'.
14875
14876 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
14877
14878         * locales.c: include string.h for memxxx prototypes
14879
14880 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
14881
14882         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
14883         constructor when accessing literal fields.
14884
14885 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
14886
14887         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14888
14889         * reflection.c (assembly_add_resource_manifest): New function to fill
14890         the MANIFESTRESOURCE table.
14891
14892         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
14893
14894         * reflection.h: Update to changes in class layout.
14895
14896         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
14897         Reenable call to mono_runtime_is_shutting_down ().
14898
14899         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
14900         determine if the runtime is shutting down.
14901
14902 2003-12-16  Jackson Harper <jackson@ximian.com>
14903
14904         * icall.c: comment out call to mono_runtime_is_shutting_down to
14905         fix build.
14906         
14907 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
14908
14909         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
14910         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
14911
14912 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
14913
14914         * reflection.c: move definition of swap_with_size
14915         to before its first call
14916
14917 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
14918
14919         * appdomain.c (mono_runtime_is_shutting_down): New public function.
14920
14921         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
14922         icall.
14923
14924         * object.c: Fix warnings.
14925
14926         * icall.c (ves_icall_Type_Get...): Only consider inherited static
14927         members if FlattenHierarchy is set.
14928
14929         * reflection.c (mono_image_add_decl_security): New function to emit
14930         declarative security.
14931
14932         * reflection.h reflection.c: Add support for declarative security.
14933
14934         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
14935         
14936 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
14937
14938         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
14939         
14940         * appdomain.c verify.c: Moved corlib version checking into its own
14941         function in appdomain.c since it needs to create vtables etc.
14942
14943 2003-12-13  Patrik Torstensson <p@rxc.se>
14944
14945         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
14946         instead of unwrapped server.
14947
14948 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
14949
14950         * verify.c (check_corlib): Fix field index.
14951
14952 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
14953
14954         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
14955         GetGacPath icall.
14956
14957 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
14958
14959         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
14960         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
14961         cope with sizeof(size_t) != sizeof(guint32).
14962
14963 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14964
14965         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
14966         in case of failure.
14967
14968 2003-12-10  Mark Crichton <crichton@gimp.org>
14969
14970         * icall.c: removed the GetNonZeroBytes.  We now handle this case
14971         in managed code.
14972
14973         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
14974
14975 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
14976
14977         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
14978         marked as deleted.
14979
14980 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
14981
14982         * verify.c (check_corlib): Handle the case when the version field is 
14983         initialized by a static constructor.
14984
14985 2003-12-08  Patrik Torstensson  <p@rxc.se>
14986
14987     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
14988
14989 2003-12-08  Martin Baulig  <martin@ximian.com>
14990
14991         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
14992         a MonoReflectionGenericParameter, also take the parameter index
14993         and name as arguments.
14994         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
14995         (ves_icall_MonoGenericParam_initialize): New interncall.
14996         (ves_icall_Type_make_byref_type): New interncall.
14997
14998         * reflection.h (MonoReflectionGenericParam): Derive from
14999         MonoReflectionType, not just from MonoObject.  Added `refobj' and
15000         `index' fields.
15001
15002         * reflection.c (mono_reflection_define_generic_parameter): Create
15003         and return a new MonoReflectionGenericParam; don't initialize the
15004         constraints here.
15005         (mono_reflection_initialize_generic_parameter): New public method;
15006         initializes the constraints and creates the `param->pklass'.
15007
15008 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
15009
15010         * reflection.h reflection.c: Use the new fields 'num_types', 
15011         'num_fields' and 'num_methods' to track the number of types etc.
15012
15013         * verify.c (check_corlib): Check corlib version number.
15014
15015 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
15016
15017         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
15018         function works on all methods.
15019
15020 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
15021
15022         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
15023         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
15024         the custom_type_info flag of the transparent proxy.
15025         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
15026         objects that supports IRemotingTypeInfo.
15027         * object.h: Added custom_type_info field in transparent proxy.
15028
15029 2003-12-06  Martin Baulig  <martin@ximian.com>
15030
15031         * class.c (mono_class_create_from_generic): Removed.
15032         (mono_class_from_generic): Check `ginst->klass' before doing
15033         anything else.  This is important to fully support "recursive"
15034         generic types.
15035
15036         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
15037         empty `generic_inst->klass' before doing anything else.
15038
15039 2003-12-06  Dick Porter  <dick@ximian.com>
15040
15041         * verify.c: 
15042         * object.h:
15043         * icall.c:
15044         * locales.c: Use C structs to access class fields.  Don't do a
15045         conversion between MonoString and UChar because both are
15046         platform-endian UTF-16.  Compare now takes startindex and count
15047         parameters.  Add a char overload for IndexOf.  Speed up the
15048         invariant string IndexOf.
15049
15050 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
15051
15052         * Makefile.am (monosn_LDADD): Fix parallel build.
15053
15054 2003-12-04  Martin Baulig  <martin@ximian.com>
15055
15056         * icall.c
15057         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
15058         (ves_icall_Type_make_array_type): New interncall.       
15059
15060 2003-12-04  Martin Baulig  <martin@ximian.com>
15061
15062         * locales.c: also change it in the !HAVE_ICU case.
15063
15064 2003-12-04  Dick Porter  <dick@ximian.com>
15065
15066         * icall.c:
15067         * locales.c: construct_compareinfo is now in CompareInfo, not
15068         CultureInfo.
15069
15070 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
15071
15072         * image.c (mono_image_load_file_for_image): Cache loaded images in the
15073         image->files array.
15074
15075         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
15076         table as well.
15077
15078         * assembly.c (mono_assembly_load_references): Only load references
15079         once.
15080
15081         * class.c (mono_class_from_name): Avoid linear search of the 
15082         EXPORTEDTYPE table.
15083
15084         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
15085
15086 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
15087
15088         * image.h (MonoImage): Add 'field_cache' field.
15089
15090         * loader.c (mono_field_from_token): Cache field lookups.
15091         
15092         * reflection.c (mono_module_get_object): Fix name property.
15093
15094         * icall.c (ves_icall_get_enum_info): Update after changes to 
15095         mono_metadata_get_constant_index ().
15096
15097         * icall.c: Get rid of get_type_info icall, use a separate icall for
15098         each type property to avoid needless memory allocations. Fixes #51514.
15099
15100         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
15101         to avoid needless binary searches.
15102
15103         * class.c (class_compute_field_layout): Move the initialization of
15104         field->def_value to mono_class_vtable ().
15105
15106         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
15107         non-corlib types.
15108
15109         * object.c (mono_object_allocate): Make it inline.
15110
15111         * object.c (mono_object_allocate_spec): Make it inline.
15112         
15113 2003-12-02  Dick Porter  <dick@ximian.com>
15114
15115         * locales.c (create_NumberFormat): NumberFormatInfo construction.
15116         Patch by Mohammad DAMT (mdamt@cdl2000.com).
15117
15118 2003-12-01  Dick Porter  <dick@ximian.com>
15119
15120         * threads.c: Fix signature and call in CreateMutex and
15121         CreateEvent.
15122
15123 2003-12-01  Dick Porter  <dick@ximian.com>
15124
15125         * icall.c: 
15126         * locales.c: Implement string compares and searching
15127
15128         * object.h: Add extra Thread field
15129
15130 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
15131
15132         * reflection.c (fixup_method): Add support for MonoCMethod.
15133
15134 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
15135
15136         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
15137
15138         * reflection.c (assembly_name_to_aname): Allow extra characters in
15139         assembly names. Fixes #51468.
15140
15141 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
15142
15143         * exception.c (mono_exception_from_name_domain): New helper function.
15144
15145         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
15146         exception object in the correct domain.
15147
15148         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
15149         formatting + make a copy a the input data.
15150
15151         * loader.c (mono_get_method_from_token): Methods which contain
15152         native code do not have entries in the ImplMap.
15153
15154         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
15155         Thanks to Gonzalo for spotting this.
15156         
15157         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
15158         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
15159
15160         * assembly.h (mono_assembly_load_from): Split the second part of 
15161         assembly loading into a new public function.
15162
15163         * exception.h (mono_get_exception_bad_image_format): New function.
15164
15165 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
15166
15167         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
15168         Enumerate all modules inside a dynamic assembly. Fixes #51293.
15169         
15170         * icall.c: Add new icall for creating dynamic methods.
15171
15172         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
15173
15174         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
15175
15176         * reflection.c (mono_reflection_create_dynamic_method): New icall to
15177         create a dynamic method.
15178
15179         * reflection.c (resolve_object): New helper function.
15180
15181         * reflection.c: Generalize ReflectionMethodBuilder and the functions
15182         which manipulate it so they can also work on dynamic methods.
15183
15184         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
15185         creating the MonoReflectionMethodAux structure if it is not needed.
15186         
15187         * reflection.h verify.c: Update after changes to object layout.
15188
15189         * reflection.c (method_builder_encode_signature): Fix compilation on
15190         gcc 2.95.x.
15191
15192 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
15193
15194         * appdomain.h: Added support for context static fields. Added static_data
15195           field to MonoAppContext and renamed thread_static_fields to a more
15196           generic special_static_fields in MonoAppDomain, since it can now contain
15197           context static fields.
15198         * domain.c: Updated hashtable name.
15199         * object.c: Replaced field_is_thread_static() for a more generic
15200           field_is_special_static() which also checks for context static attribute.
15201           In mono_class_vtable(), added support for static context fields.
15202         * threads.c: Changed methods that manage thread static fields to more
15203           generic methods so they can be reused both for thread and context static
15204           data.
15205         * threads.h: Declared some new methods.
15206
15207 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
15208
15209         * reflection.h: Update after changes to the managed types.
15210
15211         * reflection.c (encode_custom_modifiers): New helper function.
15212
15213         * reflection.c (method_encode_signature): Emit custom modifiers.
15214
15215         * reflection.c (field_encode_signature): Emit custom modifiers.
15216
15217 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
15218
15219         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
15220
15221         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
15222         implementation.
15223
15224         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
15225         icall.
15226
15227         * object.c (mono_field_get_value_object): New function.
15228
15229         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
15230         specific.
15231
15232 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
15233
15234         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
15235         return a preallocated out-of-memory exception instance.
15236
15237         * object.c (out_of_memory): Use the new function.
15238
15239         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
15240         flag is before the custom modifiers. Fixes #49802.
15241
15242 2003-11-16  Martin Baulig  <martin@ximian.com>
15243
15244         * class.c (mono_class_is_open_constructed_type): Implemented the
15245         MONO_TYPE_GENERICINST case.
15246
15247 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
15248
15249         * assembly.c (mono_assembly_fill_assembly_name): New function to
15250         fill out the MonoAssemblyName structure.
15251         (mono_assembly_open): Use the new function.
15252
15253         * icall.c (fill_reflection_assembly_name): New helper function.
15254
15255         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
15256         new function.
15257
15258         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
15259
15260 2003-11-15  Martin Baulig  <martin@ximian.com>
15261
15262         * class.c (mono_class_is_open_constructed_type): New public
15263         function; checks whether a type is an open constructed type,
15264         ie. whether it still contains type parameters.
15265         (mono_class_inflate_generic_type): If we're a type parameter and
15266         the inflated type is also a MONO_TYPE_(M)VAR, return the original
15267         type.
15268
15269         * class.h (MonoGenericInst): Added `guint32 is_open'.
15270
15271         * loader.c (method_from_methodspec): Check whether we're an open
15272         or closed constructed type and set `ginst->is_open'.
15273
15274         * reflection.c (mono_reflection_bind_generic_parameters): Check
15275         whether we're an open or closed constructed type and set
15276         `ginst->is_open'.
15277         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
15278         from open constructed types.
15279
15280 2003-11-15  Martin Baulig  <martin@ximian.com>
15281
15282         * reflection.c (mono_reflection_bind_generic_parameters): If we're
15283         a generic instance (instead of a generic type declaration) with
15284         unbound generic parameters, bind them to our actual types.
15285
15286 2003-11-14  Martin Baulig  <martin@ximian.com>
15287
15288         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
15289
15290         * reflection.c (mono_reflection_bind_generic_parameters): If we're
15291         an interface type, populate `res->interfaces' with instantiated
15292         versions of all the interfaces we inherit.
15293
15294 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
15295
15296         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
15297         when MONO_PATH is set but doesn't contain the install dir.
15298
15299 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15300
15301         * icall.c:
15302         (ves_icall_Type_GetInterfaces): don't return an interface twice when
15303         it's also implemented in base classes. Fixes bug #50927.
15304
15305 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
15306
15307         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
15308         if this method is called from a finalizer. Fixes #50913.
15309
15310 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
15311
15312         * threads.c: Implement VolatileRead/VolatileWrite
15313
15314         * icall.c: Add new icalls for VolatileRead/VolatileWrite
15315
15316 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15317
15318         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
15319         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
15320         2.95.3.
15321
15322         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
15323         from Peter Ross (pro@missioncriticalit.com).
15324         
15325 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
15326
15327         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
15328
15329 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15330
15331         * assembly.c (mono_assembly_load_references): Disable check because it
15332         triggers on older corlibs which lots of people have.
15333
15334 2003-11-12  Jackson Harper  <jackson@ximian.com>
15335
15336         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
15337         load corlib.dll if mscorlib.dll is not found.
15338         * assembly.h: Remove corlib name define.
15339         * class.c:
15340         * domain.c:
15341         * image.c: Change corlib name to mscorlib.
15342         
15343 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15344
15345         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
15346
15347 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
15348
15349         * appdomain.h: Added loader_optimization here to sync with the C#
15350         code, and add disallow_binding_redirects field.
15351
15352 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
15353
15354         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
15355
15356         * reflection.c (mono_image_build_metadata): Fix crash on modules
15357         with no types.
15358
15359         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
15360
15361         * icall.c (ves_icall_get_method_info): Return callingConvention as
15362         well.
15363
15364         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
15365         namespaces from the EXPORTEDTYPE table as well.
15366
15367         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
15368         from all modules inside the assembly.
15369         
15370 2003-11-11  Martin Baulig  <martin@ximian.com>
15371
15372         * reflection.c (mono_reflection_bind_generic_parameters): Make
15373         this work for interfaces.
15374
15375 2003-11-11  Martin Baulig  <martin@ximian.com>
15376
15377         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
15378
15379 2003-11-11  Martin Baulig  <martin@ximian.com>
15380
15381         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
15382         "MonoInflatedMethod" and "MonoInflatedCtor".
15383
15384 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
15385
15386         * reflection.c (resolution_scope_from_image): Use the assembly table
15387         from the manifest module, since other modules don't have it.
15388
15389         * debug-helpers.c (mono_type_full_name): New helper function.
15390
15391         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
15392
15393         * image.c (mono_image_load_file_for_image): New public function which
15394         is a replacement for the load_file_for_image in class.c.
15395
15396         * assembly.c (mono_assembly_load_module): A wrapper for the function
15397         above which does assembly association and reference loading too.
15398
15399         * class.c (mono_class_from_name): Call mono_assembly_load_module.
15400
15401 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15402
15403         * appdomain.c: not all of the attributes for the full assembly name
15404         are required and the order doesn't matter. Fixes bug #50787.
15405
15406 2003-11-10  Dick Porter  <dick@ximian.com>
15407
15408         * locales.c: Use platform-endian UTF16
15409
15410 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
15411
15412         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
15413         
15414 2003-11-10  Martin Baulig  <martin@ximian.com>
15415
15416         * metadata.c
15417         (mono_metadata_load_generic_params): Make this actually work.
15418
15419         * reflection.c (mono_reflection_bind_generic_parameters): If our
15420         parent is a generic instance, pass all the `types' to it, no
15421         matter whether it has the same number of type parameters or not.
15422
15423 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
15424
15425         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
15426
15427         * assembly.c (mono_assembly_load_references): Move the image<->assembly
15428         assignment code to this function so it gets called recursively for all
15429         modules.
15430
15431         * image.c (load_modules): Remove the assembly assignment since it is
15432         now done by mono_assembly_load_references.
15433         
15434         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
15435         Add 'module' argument.
15436         (mono_module_get_types): New helper function.
15437         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
15438
15439 2003-11-08  Martin Baulig  <martin@ximian.com>
15440
15441         * class.c (mono_class_inflate_generic_method): Interface method
15442         don't have a header.
15443
15444         * reflection.c (mono_image_get_methodspec_token): Take an
15445         additional `MonoGenericInst *' argument instead of reading it from
15446         the header; this is necessary to support interfaces.
15447         (mono_image_create_token): Pass the `MonoGenericInst *' from the
15448         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
15449         (inflated_method_get_object): Take an additional `MonoGenericInst *'
15450         argument.
15451
15452         * reflection.h (MonoReflectionInflatedMethod): Added
15453         `MonoGenericInst *ginst'.
15454
15455 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
15456
15457         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
15458
15459 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
15460
15461         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
15462
15463 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
15464
15465         * reflection.c 
15466         (reflection_methodbuilder_from_method_builder):
15467         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
15468         initialize a ReflectionMethodBuilder structure.
15469         (mono_image_get_methodbuilder_token):
15470         (mono_image_get_ctorbuilder_token): New functions to emit memberref
15471         tokens which point to types in another module inside the same assembly.
15472
15473         * reflection.c: Use the new helper functions.
15474         
15475         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
15476
15477         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
15478         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
15479
15480         * reflection.c (resolution_scope_from_image): Emit a moduleref if
15481         neccesary.
15482
15483         * reflection.c (mono_image_build_metadata): Emit metadata only for the
15484         current module. Emit the manifest only for the main module.
15485
15486         * reflection.c (mono_image_create_token): Add assertion when a 
15487         memberref needs to be created.
15488
15489         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
15490
15491         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
15492         larger buffer for the custom attribute blob. Fixes #50637.
15493         
15494 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15495
15496         * threadpool.c: notify listener on async processing handles after
15497         invoking the async callback. Thanks to Zoltan.
15498
15499 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15500
15501         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
15502         avoid code duplication.
15503
15504         * reflection.h (MonoDynamicImage): New type which is currently unused,
15505         but will be used through the ref.emit code in place of 
15506         MonoDynamicAssembly.
15507
15508         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
15509         object layout.
15510
15511         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
15512         a MonoDynamicImage instead of just a MonoImage.
15513         
15514         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
15515         icalls to ModuleBuilder but keep their semantics, so they will work
15516         with moduleb->assemblyb. This will change later.
15517         
15518 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15519
15520         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
15521         object layout.
15522
15523         * reflection.c (mono_image_build_metadata): Avoid creation of a default
15524         main module, since it is now done by the managed code.
15525
15526 2003-11-03  Martin Baulig  <martin@ximian.com>
15527
15528         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
15529         `ginst->klass' here.
15530         (method_encode_methodspec): Don't use the `ginst->generic_method's
15531         klass if it's a generic instance, use `ginst->klass' in this case.
15532
15533 2003-11-03  Martin Baulig  <martin@ximian.com>
15534
15535         * reflection.c (mono_image_get_generic_method_param_info):
15536         Removed, use mono_image_get_generic_param_info() instead.
15537         (mono_image_get_type_info): Write the GenericParam table before
15538         the Method table.  This is neccessary because in the GenericParam
15539         table, type parameters of the class (ie. '!0' etc.) must come
15540         before the ones from its generic methods (ie. '!!0' etc).
15541
15542 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15543
15544         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
15545
15546 2003-11-02  Martin Baulig  <martin@ximian.com>
15547
15548         * reflection.c (create_generic_typespec): Take a
15549         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
15550         the generic parameters from it.
15551
15552 2003-11-02  Martin Baulig  <martin@ximian.com>
15553
15554         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
15555         instead of a `MonoClassField *' since we just need the type.
15556         (create_generic_typespec): New static function.  Creates a
15557         TypeSpec token for a generic type declaration.
15558         (mono_image_get_generic_field_token): New static function.
15559         (mono_image_create_token): If we're a FieldBuilder in a generic
15560         type declaration, call mono_image_get_generic_field_token() to get
15561         the token.
15562
15563 2003-11-02  Martin Baulig  <martin@ximian.com>
15564
15565         * reflection.h
15566         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
15567         `MonoReflectionGenericInst *declaring_type' and
15568         `MonoReflectionGenericInst *reflected_type' fields.
15569
15570         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
15571         `MonoReflectionGenericInst *declaring_type' and a
15572         `MonoReflectionGenericInst *reflected_type' argument instead of a
15573         single `MonoReflectionGenericInst *type' one.  Set
15574         `res->declaring_type' and `res->reflected_type' from them.
15575         (mono_reflection_inflate_field): Likewise.      
15576
15577 2003-11-02  Martin Baulig  <martin@ximian.com>
15578
15579         * class.c (mono_class_setup_vtable): Don't store generic methods
15580         in the vtable.  
15581
15582 2003-11-02  Martin Baulig  <martin@ximian.com>
15583
15584         * reflection.h (MonoReflectionGenericInst): Added
15585         `MonoReflectionType *declaring_type'.
15586
15587         * reflection.c (mono_reflection_bind_generic_parameters): Use
15588         `if (tb->parent)' instead of `klass->parent'.
15589
15590 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
15591
15592         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
15593         with an empty ASSEMBLY table.
15594
15595         * reflection.c (mono_image_build_metadata): Avoid using the same loop
15596         variable in the inner and outer loops.
15597
15598 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
15599
15600         * metadata.h (mono_metadata_make_token): Put parentheses around macro
15601         argument.
15602
15603         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
15604         
15605         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
15606         icalls. Instead, do everything in managed code. This is needed since
15607         it is hard to restore the original domain etc. in unmanaged code in the
15608         presence of undeniable exceptions.
15609
15610         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
15611         New icalls to push and pop appdomain refs.
15612
15613 2003-10-31  Martin Baulig  <martin@ximian.com>
15614
15615         * class.c (inflate_generic_type): Renamed to
15616         mono_class_inflate_generic_type() and made it public.
15617
15618         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
15619         New interncall.
15620
15621         * loader.c (mono_field_from_memberref): Also set the retklass for
15622         typespecs.
15623
15624         * fielder.c (mono_image_get_inflated_field_token): New static
15625         method; creates a metadata token for an inflated field.
15626         (mono_image_create_token, fixup_method): Added support for
15627         "MonoInflatedField".
15628         (fieldbuilder_to_mono_class_field): New static function.
15629         (mono_reflection_inflate_field): New public function.
15630
15631         * reflection.h
15632         (MonoReflectionGenericInst): Added `MonoArray *fields'.
15633         (MonoReflectionInflatedField): New typedef.     
15634
15635 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
15636
15637         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
15638         for Solaris and other platforms without s6_addr16
15639
15640 2003-10-30  Martin Baulig  <martin@ximian.com>
15641
15642         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
15643         argument instead of two.
15644         (mono_class_inflate_generic_signature): Likewise.
15645         (inflate_generic_header): Likewise.
15646         (mono_class_inflate_generic_method): Likewise.  In addition, if
15647         `ginst->klass' is set, it becomes the new `method->klass'.
15648
15649         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
15650         field.
15651
15652         * reflection.c (encode_generic_method_sig): Write a 0xa as the
15653         first byte. [FIXME]
15654         (method_encode_methodspec): If we have generic parameters, create
15655         a MethodSpec instead of a MethodRef.
15656         (fixup_method): Added support for "MonoInflatedMethod" and
15657         "MonoInflatedCtor".
15658         (mono_image_create_token): Added support for "MonoInflatedMethod"
15659         and "MonoInflatedCtor".
15660         (inflated_method_get_object): New static function; returns a
15661         managed "System.Reflection.MonoInflatedMethod" object.
15662         (mono_reflection_bind_generic_method_parameters): Return a
15663         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
15664         (mono_reflection_inflate_method_or_ctor): Likewise.
15665         (mono_image_get_generic_method_param_info): Initialize unused
15666         fields to zero.
15667         (mono_image_get_generic_param_info): Likewise.
15668
15669         * reflection.h (MonoReflectionInflatedMethod): New public
15670         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
15671         "S.R.MonoInflatedCtor" classes.
15672
15673         * loader.c (method_from_memberref): If we're a TypeSpec and it
15674         resolves to a generic instance, inflate the method.
15675
15676 2003-10-28  Dick Porter  <dick@ximian.com>
15677
15678         * object.c (mono_runtime_run_main): Convert command-line arguments
15679         into utf8, falling back to the user's locale encoding to do so.
15680
15681 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
15682
15683         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
15684         at this time.
15685
15686         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
15687
15688         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
15689         up icalls at method definition time. Partially fixes #33569.
15690
15691 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
15692
15693         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
15694         marshalling of arrays. Fixes #50116.
15695
15696         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
15697
15698         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
15699         points to a vtable in the dying appdomain.
15700
15701         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
15702         listeners into unmanaged code inside the lock.
15703
15704         * object.c (mono_class_vtable): Turn off typed allocation in non-root
15705         domains and add some comments.
15706
15707 2003-10-25  Martin Baulig  <martin@ximian.com>
15708
15709         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
15710
15711         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
15712
15713         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
15714         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
15715         currently parsing.  Create the generic class and store it in
15716         `generic_inst->klass' before parsing the type arguments.  This is
15717         required to support "recursive" definitions; see mcs/tests/gen-23.cs
15718         for an example.
15719         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
15720         to support recursive typespec entries.
15721
15722         * class.c (mono_class_setup_parent): If our parent is a generic
15723         instance, we may get called before it has its name set.
15724         (mono_class_from_generic): Splitted into
15725         mono_class_create_from_generic() and mono_class_initialize_generic().
15726
15727 2003-10-25  Martin Baulig  <martin@ximian.com>
15728
15729         * icall.c (ves_icall_Type_BindGenericParameters): Return a
15730         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
15731         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
15732         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
15733
15734         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
15735         (create_typespec): Likewise.
15736         (mono_reflection_bind_generic_parameters): Return a
15737         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
15738         (mono_reflection_inflate_method_or_ctor): New public function.
15739
15740         * reflection.h (MonoReflectionGenericInst): New typedef.        
15741
15742 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
15743
15744         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
15745         inside the domain lock. Fixes #49993.
15746         
15747         * object.c (mono_class_vtable): When typed allocation is used, 
15748         allocate vtables in the GC heap instead of in the mempool, since the
15749         vtables contain GC descriptors which are used by the collector even
15750         after the domain owning the mempool is unloaded.
15751
15752         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
15753
15754         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
15755         reflect what it does. Also invalidate mempools instead of freeing
15756         them if a define is set.
15757
15758         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
15759         of the appdomain.
15760         
15761         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
15762         hold the finalizable objects in this domain.
15763
15764         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
15765         appdomain.
15766
15767         * appdomain.c (mono_domain_set): New function to set the current
15768         appdomain, but only if it is not being unloaded.
15769
15770         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
15771         appdomain which is being unloaded.
15772         
15773         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
15774         unloading of the root appdomain.
15775
15776         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
15777         icall to execute a method in another appdomain. Intended as a 
15778         replacement for InternalSetDomain, which can confuse the code 
15779         generation in the JIT.
15780
15781         * appdomain.c (mono_domain_is_unloading): New function to determine
15782         whenever an appdomain is unloading.
15783
15784         * appdomain.c (mono_domain_unload): New function to correctly unload
15785         an appdomain.
15786
15787         * assembly.c (mono_assembly_load_references): Check that an assembly
15788         does not references itself.
15789
15790         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
15791         domain manually, it asks the finalizer thread to do it, then waits for
15792         the result. Also added a timeout.
15793
15794         * icall.c: Register the new icalls.
15795
15796         * threads.h threads.c: Export the mono_gc_stop_world and 
15797         mono_gc_start_world functions.
15798         
15799         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
15800         function to fill out the mempool with 0x2a.
15801
15802 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
15803
15804         * reflection.h (MonoReflectionMethodAux): New structure to store
15805         information which is rarely used, thus is not in the MonoMethod
15806         structure.
15807
15808         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
15809         store the aux info.
15810
15811         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
15812         and marshalling info into the aux structure.
15813
15814         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
15815         from the aux structure.
15816
15817         * loader.c (mono_method_get_param_names): Retrieve the param names from
15818         the aux structure.
15819         
15820 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
15821
15822         * exception.h exception.c: Add AppDomainUnloadedException && fix 
15823         warning.
15824
15825 2003-10-21  Dick Porter  <dick@ximian.com>
15826
15827         * socket-io.c
15828         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
15829         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
15830
15831 2003-10-21  Martin Baulig  <martin@ximian.com>
15832
15833         * reflection.c (mono_reflection_bind_generic_parameters):
15834         `klass->parent' is NULL for interfaces.
15835
15836 2003-10-21  Martin Baulig  <martin@ximian.com>
15837
15838         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
15839
15840 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
15841
15842         * exception.c (mono_exception_from_name_msg): New helper function for
15843         creating exceptions and initializing their message field.
15844
15845         * exception.c: Simplify functions using the new helper.
15846
15847         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
15848         New function.
15849
15850         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
15851         mono_raise_exception, since otherwise gcc doesn't generate the function
15852         epilog for raise_exception, confusing the stack unwinding in the JIT.
15853         Fixes #45043.
15854
15855         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
15856         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
15857         Fixes #49499.
15858
15859 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15860
15861         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
15862         utf8.
15863
15864 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
15865
15866         * icall.c: Removed GetUninitializedObject method because
15867           AllocateUninitializedClassInstance does the same.
15868
15869 2003-10-18  Martin Baulig  <martin@ximian.com>
15870
15871         * class.c (inflate_generic_signature): Renamed to
15872         mono_class_inflate_generic_signature() and made it public.
15873         (my_mono_class_from_generic_parameter): New static function; if we
15874         don't already have the generic parameter's MonoClass, create a
15875         very simple one which is just used internally in the runtime and
15876         not passed back to managed code.
15877
15878         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
15879
15880         * metadata.h (MonoMethodSignature): Moved the
15881         `MonoGenericParam *gen_params' to the MonoMethodHeader.
15882         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
15883
15884         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
15885         ves_icall_MonoMethod_GetGenericArguments(); this is now an
15886         interncall on the MonoMethod class, not on MethodInfo.
15887         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
15888         calling mono_reflection_bind_generic_method_parameters() directly.
15889
15890         * loader.c (mono_method_get_signature): If this is a MethodSpec;
15891         return the already computed `method->signature'.
15892         (method_from_methodspec): New static function to load a method
15893         from a MethodSpec entry.
15894         (mono_get_method_from_token): Call the new method_from_methodspec()
15895         for MethodSpec tokens.  
15896         (mono_get_method_from_token): If we're a generic method, load the
15897         type parameters.
15898
15899         * reflection.c (mono_image_get_memberref_token): Allow
15900         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
15901         table.
15902         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
15903         (mono_image_create_token): First check whether it's a generic
15904         method (so we'd need to create a MethodSpec), then do the other
15905         two alternatives.
15906         (mono_reflection_bind_generic_method_parameters): Return a
15907         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
15908         called directly from the interncall.
15909
15910 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
15911
15912         * reflection.c (load_public_key): Move loading of the public key
15913         into managed code.
15914
15915         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
15916
15917         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
15918         fields.
15919
15920         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
15921         culture, hash_alg and public_key. Fixes #49555.
15922
15923 2003-10-17  Martin Baulig  <martin@ximian.com>
15924
15925         * class.h (MonoGenericInst): Moved this declaration here and added
15926         `MonoMethod *generic_method'.
15927
15928         * icall.c
15929         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
15930         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
15931
15932         * metadata.c (mono_metadata_type_equal): Two types of
15933         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
15934         index; ie. don't compare the address of the `MonoGenericParam'
15935         structure.
15936         (mono_metadata_load_generic_params): Removed the `MonoMethod
15937         *method' argument.
15938
15939         * metadata.h (MonoGenericInst): Moved declaration to class.h.
15940         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
15941
15942         * reflection.c (method_encode_signature): Encode the number of
15943         generic parameters.
15944         (encode_generic_method_sig): New static function.
15945         (method_encode_methodspec): New static function; creates an entry
15946         in the MethodSpec table for a generic method.
15947         (mono_image_get_methodspec_token): New static function.
15948         (mono_image_create_token): Call mono_image_get_methodspec_token()
15949         for generic methods.
15950         (mono_reflection_bind_generic_method_parameters): New public
15951         function.  Instantiates a generic method.
15952
15953 2003-10-16  Martin Baulig  <martin@ximian.com>
15954
15955         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
15956         *gen_params' here from MonoMethodHeader.
15957
15958         * metadata.c (mono_metadata_parse_method_signature): If we have
15959         generic parameters, initialize `method->gen_params' and then set
15960         the correct `type->data.generic_param' in all the parameters.
15961
15962 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
15963
15964         * threads.c (mono_threads_get_default_stacksize): New function to 
15965         return the default stacksize.
15966
15967         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
15968         termination of the finalizer thread, since the previous method had
15969         race conditions. Fixes #49628.
15970
15971         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
15972         as for the other managed threads.
15973
15974 2003-10-16  Martin Baulig  <martin@ximian.com>
15975
15976         * class.c (inflate_generic_signature): Copy `generic_param_count'
15977         and `gen_params'.
15978
15979         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
15980         New interncall.
15981
15982         * metadata.c (mono_metadata_parse_method_signature): Actually set
15983         the `method->generic_param_count' here.
15984         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
15985
15986 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
15987
15988         * object.h: Add a new field to TypedRef to simplify the implementation
15989         of the REFANY opcodes in the JIT.
15990
15991         * icall.c: Make use of the new field.
15992
15993         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
15994         dynamically.
15995
15996 2003-10-15  Martin Baulig  <martin@ximian.com>
15997
15998         * class.c (mono_class_from_gen_param): Renamed to
15999         mono_class_from_generic_parameter() and moved most of the
16000         functionality from mono_reflection_define_generic_parameter()
16001         here; ie. we create a "real" class here.
16002         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
16003         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
16004         previously been called.
16005
16006         * class.h (MonoGenericParam): Moved the declaration of this struct
16007         here from metadata.h and added `MonoMethod *method'.
16008
16009         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
16010         interncall.
16011
16012         * loader.c (mono_get_method_from_token): If we have any generic
16013         parameters, call mono_metadata_load_generic_params() to read them
16014         from the MONO_TABLE_GENERICPAR.
16015
16016         * metadata.c (mono_metadata_load_generic_params): Added
16017         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
16018
16019         * metadata.h (MonoMethodSignature): Replaced
16020         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
16021         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
16022
16023         * reflection.c (mono_reflection_define_generic_parameter): Moved
16024         most of the functionality into the new
16025         mono_class_from_generic_parameter(); set the `method' field if
16026         we're a method parameter.       
16027
16028 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
16029
16030         * marshal.c (emit_struct_conv): if native size is 0
16031         emit no code.
16032
16033 2003-10-14  Martin Baulig  <martin@ximian.com>
16034
16035         * icall.c: The generics API has changed in the spec since it was
16036         added to System.Type; these modifications make it match the spec
16037         again.
16038         (ves_icall_Type_GetGenericParameters): Renamed to
16039         `ves_icall_Type_GetGenericArguments'.
16040         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
16041         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
16042         `ves_icall_MonoType_get_HasGenericArguments'.
16043         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
16044         `ves_icall_MonoType_get_IsGenericParameter'.
16045         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
16046         this is no interncall anymore.
16047         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
16048         `ves_icall_TypeBuilder_get_IsGenericParameter'.
16049
16050 2003-10-14  Martin Baulig  <martin@ximian.com>
16051
16052         * reflection.c (mono_reflection_bind_generic_parameters): Also
16053         inflate generic methods if we're reading the class from IL.
16054
16055 2003-10-13  Martin Baulig  <martin@ximian.com>
16056
16057         * reflection.c (mono_reflection_define_generic_parameter): This
16058         method isn't called directly from the icall anymore; take a
16059         `MonoReflectionAssemblyBuilder *' so we can use this for type and
16060         method generic parameters.
16061         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
16062         (method_builder_encode_signature): Encode generic parameters.
16063         (mono_image_get_method_info): Write generic params to the
16064         MONO_TABLE_GENERICPARAM table.
16065
16066         * reflection.h (MonoReflectionMethodBuilder): Added
16067         `MonoArray *generic_params'.
16068
16069         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
16070
16071         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
16072         wrapper for mono_reflection_define_generic_parameter().
16073         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
16074
16075 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
16076
16077         * marshal.h: Add missing function to fix build.
16078
16079         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
16080         the SetLastError pinvoke attribute.
16081
16082         * marshal.c (mono_marshal_set_last_error): New helper function called
16083         by the generated code.
16084         
16085         * marshal.c (mono_mb_emit_branch): New helper function.
16086
16087         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
16088
16089         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
16090         classes as parameters and return values of delegates. Fixes #29256. 
16091
16092 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
16093
16094         * locales.c: use gint32 in non HAVE_ICU case
16095
16096 2003-10-11  Martin Baulig  <martin@ximian.com>
16097
16098         * mono-debug.c (mono_debug_add_method): Added a workaround for
16099         bug #48591.
16100
16101 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
16102
16103         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
16104         delegates passed to native code must use the STDCALL calling 
16105         convention. Fixes #35987.
16106
16107 2003-10-10  Martin Baulig  <martin@ximian.com>
16108
16109         * class.c (inflate_generic_type): If we're inflating for a generic
16110         type instance (and not for a generic method), return
16111         MONO_TYPE_MVAR unchanged.
16112
16113 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16114
16115         * string-icalls.c: Join ignores null strings in the source array.
16116         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
16117         * threads.c: GetAvailableTheads is slightly more accurate.
16118
16119 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
16120
16121         * threads.h threads.c : add mono_threads_set_default_stacksize
16122         and pass default to CreateThread calls.
16123
16124 2003-10-09  Dick Porter  <dick@ximian.com>
16125
16126         * icall.c:
16127         * locales.h:
16128         * locales.c: Internal calls for constructing CultureInfo and
16129         related objects from libicu (if its available.)
16130
16131 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
16132
16133         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
16134
16135 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16136
16137         * threadpool.c: added an argument to async_invoke_thread that is the
16138         item to process, pass the MonoAsyncResult to the thread start function
16139         when creating a new thread. This way we don't need to acquire any lock
16140         when we're creating a new thread. Readded a semaphore for faster
16141         response times (instead of that Sleep i added).
16142
16143 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
16144
16145         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
16146         get daylight change dates better on Windows, fix handling
16147         of platforms without tm_gmtoff.
16148
16149 2003-10-06  Martin Baulig  <martin@ximian.com>
16150
16151         * class.c (inflate_generic_method): Renamed to
16152         mono_class_inflate_generic_method() and made public.
16153         (mono_class_init): Don't inflate the generic methods here.
16154         (mono_class_from_generic): Added `gboolean inflate_methods'
16155         argument.  Inflate the methods here.
16156
16157         * loader.c (mono_method_get_param_names): Ignore instances of
16158         generic types for the moment.
16159
16160         * reflection.c (fixup_method): Added support for inflated methods.
16161         (mono_image_create_token): Use mono_image_get_methodref_token()
16162         for inflated methods.
16163         (mono_custom_attrs_from_param): Ignore instances of generic types
16164         for the moment.
16165         (mono_reflection_bind_generic_parameters): New public function.
16166         Moved all the functionality from
16167         ves_icall_Type_BindGenericParameters() here and added support for
16168         dynamic types.
16169         (mono_reflection_define_generic_parameter): Initialize
16170         `klass->methods' here.
16171
16172         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
16173         functionality into mono_reflection_define_generic_parameter().
16174         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
16175         TypeBuilder, return that TypeBuilder.
16176
16177 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16178
16179         * appdomain.c: removed mono_delegate_semaphore.
16180
16181         * threadpool.c:
16182         (mono_thread_pool_add): moved hash table creation inside and the thread 
16183         creation outside of the critical region.
16184         (mono_thread_pool_finish): removed obsolete code.
16185         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
16186         continue or exit the thread depending on the queue.
16187
16188 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
16189
16190         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
16191         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
16192         handle more bool marshalling options
16193
16194 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
16195
16196         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
16197         arrays of structs. Also add a more descriptive error message when
16198         a structure member is marshalled as LPArray.
16199
16200 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
16201
16202         * marshal.c (mono_marshal_get_native_wrapper): Add support for
16203         marshalling arrays of complex types. Fixes #29098. Also remove an
16204         usused and incomplete function.
16205
16206 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
16207
16208         * gc.c: report heap_size - free_bytes as total memory allocated
16209         (bug#49362).
16210
16211 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
16212
16213         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
16214         fix timezone handling problems on Windows.
16215         
16216         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
16217         asserts when the year is outside the range handled by ms the functions.
16218
16219         * class.c (setup_interface_offsets): If the class is an interface,
16220         fill out its interface_offsets slot.
16221
16222 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16223
16224         * threadpool.c: mark threadpool threads as background.
16225
16226 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
16227
16228         * decimal.c - define DECINLINE to nothing if not using GCC
16229
16230 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
16231
16232         * assembly.c: More refcount fixes.
16233
16234 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16235
16236         * string-icalls.c: if we're not trimming, return the same string.
16237         When not splitting, don't create a new string.
16238
16239 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16240
16241         * image.c:
16242         (mono_image_open): increment the ref_count inside the critical section.
16243
16244 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
16245
16246         * image.c (mono_image_open): Fix reference counting bug.
16247
16248 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
16249
16250         * marshal.c (mono_marshal_type_size) struct alignment changed for 
16251         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
16252         64bits. Avoid leak in mono_marshal_get_native_wrapper when
16253         mono_lookup_pinvoke_call throws.        
16254
16255 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
16256
16257         * reflection.c (mono_reflection_parse_type): Fix #49114.
16258
16259         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
16260         temporary workaround for cygwin header problem.
16261
16262         * object.c (mono_object_isinst): Synchronize this with the code
16263         generated by the JIT for casts.
16264
16265 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
16266
16267         * reflection.c (encode_type): Fix #38332.
16268
16269 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
16270
16271         * marshal.c (mono_marshal_method_from_wrapper): New function to return
16272         the original method from the wrapper method.
16273
16274 2003-09-25  Martin Baulig  <martin@ximian.com>
16275
16276         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
16277         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
16278         (ves_icall_Type_get_IsGenericInstance): New interncall.
16279
16280 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
16281
16282         * object.c: fix cast warning in big endian code.
16283
16284 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
16285
16286         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
16287         
16288 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16289
16290         * assembly.c: don't call check_env from mono_assembly_load. It's
16291         already done once in mono_assemblies_init and may cause headaches when
16292         multiple threads are loading assemblies.
16293
16294 2003-09-19  Martin Baulig  <martin@ximian.com>
16295
16296         * reflection.c (mono_reflection_define_generic_parameter): Don't
16297         allocate `klass->methods', set `klass->flags' to
16298         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
16299
16300 2003-09-18  Martin Baulig  <martin@ximian.com>
16301
16302         * class.c (mono_class_init): Don't create `class->methods' if it's
16303         already initialized.
16304
16305         * metadata.c (mono_metadata_load_generic_params): Make this
16306         actually work.
16307
16308         * reflection.c (mono_reflection_define_generic_parameter): Set
16309         parent class and interfaces from the constraints.
16310
16311         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
16312         to keep this struct in sync with the declaration in TypeBuilder.cs.
16313
16314 2003-09-17  Martin Baulig  <martin@ximian.com>
16315
16316         * metadata.h (MonoType): Replaced the data's `int type_param'
16317         field with `MonoGenericParam *generic_param'.
16318         (MonoGenericParam): Added `MonoClass *klass'.
16319
16320         * class.c (mono_class_from_gen_param): Removed the
16321         `MonoImage *image' and `int type_num' arguments.
16322
16323         * metadata.c (mono_metadata_parse_generic_param): New static
16324         method; creates a MonoGenericParam which just contains the index.
16325         (do_mono_metadata_parse_type): Call
16326         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
16327         MONO_TYPE_MVAR.
16328
16329         * reflection.c (mono_image_typedef_or_ref): Generic type
16330         parameters may be in the same assembly, but never use a typedef
16331         for them.
16332         (mono_reflection_define_generic_parameter): We're now creating a
16333         "real" class for the type parameter; it's now safe to call
16334         mono_class_from_mono_type() on the class'es type, it'll do the
16335         right thing.
16336
16337 2003-09-16  Martin Baulig  <martin@ximian.com>
16338
16339         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
16340         `symfile->range_entry_size' and `symfile->class_entry_size' here;
16341         the `symfile' data structure must be fully initialized before it
16342         gets added to the table.
16343
16344 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
16345
16346         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
16347
16348         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
16349         class init trampolines.
16350
16351 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
16352
16353         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
16354         to the built-in profiler to turn off time and allocation profiling
16355         respectively.
16356
16357 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
16358
16359         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
16360         g_direct_equal.
16361
16362         * debug-helpers.c (mono_method_full_name): Print the wrapper type
16363         in human readable form.
16364
16365 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
16366
16367         * reflection.c icall.c: Fixed warnings.
16368
16369         * image.c (load_class_names): Use a temporary hash table to hold the
16370         namespaces in order to avoid doing many string comparisons.
16371
16372         * image.h: Fix typo.
16373
16374         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
16375         Pass NULL instead of g_direct_equal to the GHashTable constructor 
16376         since the NULL case is short-circuited inside g_hash_table_lookup, 
16377         leading to better performance.  
16378
16379         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
16380         obtain the first custom attribute for a given index. Depends on the
16381         CustomAttribute table being sorted by the parent field.
16382
16383         * reflection.c (mono_custom_attrs_from_index): Use the new function 
16384         for better performance.
16385
16386 2003-09-07  Martin Baulig  <martin@ximian.com>
16387
16388         * class.c (mono_class_init): If we're a generic instance, inflate
16389         all our methods instead of loading them from the image.
16390         (mono_class_from_generic): Set `class->methods = gklass->methods'.
16391
16392 2003-09-07  Martin Baulig  <martin@ximian.com>
16393
16394         * mono-debug-debugger.c: Added support for constructors.
16395
16396 2003-09-06  Martin Baulig  <martin@ximian.com>
16397
16398         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
16399         New interncall.
16400
16401         * reflection.c (mono_reflection_setup_generic_class): Call
16402         ensure_runtime_vtable() to create the vtable.
16403
16404 2003-09-05  Martin Baulig  <martin@ximian.com>
16405
16406         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
16407         MONO_TYPE_MVAR.
16408
16409 2003-09-04  Martin Baulig  <martin@ximian.com>
16410
16411         * reflection.c (mono_reflection_define_generic_parameter): Generic
16412         parameters start with zero.
16413
16414 2003-09-04  Martin Baulig  <martin@ximian.com>
16415
16416         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
16417
16418         * reflection.h (MonoReflectionGenericParam): New typedef.
16419         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
16420         the generic parameters from the managed TypeBuilder.
16421
16422         * reflection.c (mono_reflection_define_generic_parameter): New function.
16423         (mono_reflection_create_runtime_class): Encode generic parameters.
16424         (mono_reflection_setup_generic_class): New function; this is
16425         called after adding adding all generic params to the TypeBuilder.
16426         (encode_type): Added MONO_TYPE_VAR.
16427
16428 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
16429
16430         * class.h class.c (mono_class_needs_cctor_run): Moved this method
16431         here from the JIT.
16432
16433         * assembly.h assembly.c: Moved the AOT loading code into an assembly
16434         load hook.
16435
16436 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
16437
16438         * reflection.h reflection.c class.h class.c: Delete duplicate 
16439         definition of mono_type_get_name () from reflection.c and export the
16440         one in class.c.
16441
16442         * class.c: Class loading fixes from Bernie Solomon 
16443         (bernard@ugsolutions.com).
16444
16445         * reflection.c: Endianness fixes from Bernie Solomon 
16446         (bernard@ugsolutions.com).
16447         
16448 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
16449
16450         * assembly.h assembly.c: Define a file format version for AOT
16451         libraries.
16452         
16453         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
16454
16455         * appdomain.h (MonoJitInfo): New field to determine whenever the
16456         code is domain neutral.
16457         
16458 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
16459
16460         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
16461
16462 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
16463
16464         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
16465         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
16466         Avoid caching the result since strings must be domain specific. Fixes
16467         #48050.
16468
16469 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
16470
16471         * marshal.c (mono_marshal_init): Make this callable multiple times
16472         since it is hard to find a correct place to call it.
16473
16474         * object.c (mono_runtime_class_init): Execute static constructors in
16475         the correct appdomain.
16476
16477         * image.c (build_guid_table): Handle the case when multiple images have
16478         the same GUID.
16479
16480 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16481
16482         * icall.c: added a couple of icalls for System.Web.
16483
16484 2003-08-28  Martin Baulig  <martin@ximian.com>
16485
16486         * icall.c (ves_icall_Type_BindGenericParameters): Use
16487         `klass->generic_inst' instead of `&klass->byval_arg' in the
16488         mono_type_get_object() call.  The returned type must be
16489         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
16490
16491 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
16492
16493         * NOTES: New file.
16494
16495         * object.c (mono_class_proxy_vtable): Make it thread safe.
16496
16497         * pedump.c: Fix warning.
16498
16499         * object.c appdomain.h: Get rid of metadata_section. 
16500         It is no longer needed and it was causing deadlocks with domain->lock.
16501
16502         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
16503
16504 2003-08-26  Martin Baulig  <martin@ximian.com>
16505
16506         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
16507
16508 2003-08-26  Martin Baulig  <martin@ximian.com>
16509
16510         * pedump.c (main): Call mono_metadata_init(),
16511         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
16512         and mono_loader_init().
16513
16514 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
16515
16516         * loader.h: Add missing include to fix build.
16517
16518         * image.h: mono_image_load_references is no more.
16519
16520         * assembly.c: Reworked assembly loading to make it really thread safe.
16521         After these changes, the assembly returned by mono_assembly_open is
16522         fully initialized, i.e. all its references assemblies are loaded.
16523
16524         * assembly.c (mono_image_load_references): Renamed to 
16525         mono_assembly_load_references, and made private, since clients no
16526         longer need to call it.
16527
16528         * class.c: Removed calls to mono_assembly_load_references, since it was
16529         a source of deadlocks.
16530
16531         * loader.h loader.c class.h class.c: Protect data structures using a 
16532         new lock, the loader lock.
16533
16534         * class.c (mono_class_setup_vtable): Create temporary hash tables and
16535         GPtrArrays only when needed.
16536
16537         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
16538         into empty structures by mcs. Fixes pinvoke7.cs.
16539         
16540         * domain.c (mono_init): Call a new initialization function.
16541
16542         * appdomain.c (mono_runtime_init): Call the new initializer function
16543         of the marshal module.
16544
16545         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
16546         inserted into empty structures by mcs. Fixes pinvoke7.cs.
16547
16548         * marshal.h marshal.c: Added locks around the wrapper caches to make
16549         this module thread safe.
16550
16551         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
16552         this argument. Fixes pinvoke1.exe.
16553
16554 2003-08-25  Lluis Sanchez <lluis@ximian.com>
16555
16556         * object.h: Added call_type field to MonoMethodMessage and the corresponding
16557         enumeration of values. Removed fields to store remote call output values in
16558         MonoAsyncResult. Not needed any more.
16559         * object.c: Initialize call_type and async_result fields in mono_message_init.
16560         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
16561         dispatching the message.
16562         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
16563         async call to finish. To do it use a message with EndInvoke call type.
16564
16565 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
16566
16567         * loader.h loader.c (mono_method_hash_marhal_info): New function which
16568         determines whenever a method has marshalling info.
16569
16570 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16571
16572         * assembly.c: fix the build on windows.
16573
16574 2003-08-22 Lluis Sanchez <lluis@ximian.com>
16575
16576         * object.cs: Fixed bug #47785.
16577
16578 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
16579
16580         * string-icalls.c (StringReplace): If their are no occurances of
16581         the old string found return a reference to the supplied
16582         string. This saves some memory and matches MS behavoir.
16583         
16584 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16585
16586         * socket-io.c: fixed compilation for systems that define AF_INET6
16587         and don't define SOL_IP/SOL_IPV6.
16588
16589 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
16590
16591         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
16592         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
16593
16594         * rawbuffer.c rawbuffer.h: Make this module thread safe.
16595
16596         * domain.c: Make this module thread safe.
16597
16598         * domain.c (mono_init): Call new initialization function.
16599
16600         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
16601         reference types too. Fixes #38812.
16602
16603         * image.c (mono_image_init): Fixed warnings.
16604
16605         * class.c (mono_class_from_typeref): Handle assembly load failure
16606         correctly.
16607
16608         * appdomain.c (add_assemblies_to_domain): Handle the case when
16609         the references of an assembly are not yet loaded.
16610
16611         * metadata.c image.c assembly.c: Moved initialization of global
16612         variables to a separate function called at startup since lazy 
16613         initialization of these variables is not thread safe.
16614         
16615         * image.c assembly.c: Made this module thread safe by adding locks in 
16616         the appropriate places.
16617
16618         * domain.c (mono_init): Call the new initialization functions of the
16619         three modules.
16620
16621 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
16622
16623         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
16624           make a direct call. It is proxy's work to make the call asynchronous.
16625           mono_delegate_end_invoke(): If the targe is a proxy, just collect
16626           the return values.
16627         * object.cs: mono_method_call_message_new(): read AsyncResult and
16628           state object from parameters list, if this info is requested.
16629         * object.h: Added fields to store remote call output values in
16630           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
16631
16632 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16633
16634         * object.h: add needed fields to MonoThread.
16635         * threads.c, threads.h: allow registering a function to cleanup data
16636         allocated per thread by the JIT.
16637
16638 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16639
16640         * loader.h: portability fix by Bernie Solomon
16641         * <bernard@ugsolutions.com>.
16642
16643 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
16644
16645         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
16646         return a MonoArray. This simplifies the code and also ensures that
16647         the cache allways contains an object reference as a value.
16648
16649         * icall.c (ves_icall_get_parameter_info): Simplified using the new
16650         function.
16651
16652 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16653
16654         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
16655         fixes a problem with byte ordering when getting the address family for
16656         a socket.
16657
16658 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
16659
16660         * .cvsignore: Added monosn.
16661
16662         * reflection.h reflection.c loader.c: Added support for parameter
16663         marshalling to dynamically created types. Fixes #47295.
16664
16665 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
16666
16667         * rand.c: remove useless warnings.
16668
16669 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
16670
16671         * class.c: implemented ldtoken for methods and fieldrefs.
16672
16673 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16674
16675         * threadpool.c: when mono_async_invoke was called, no one took care of
16676         monitoring the queue. So if the method invoked took some time and we
16677         got new async invoke requests after 500 ms (the thread created waited
16678         that long in WaitForSingleObject), the new async invoke was not called
16679         until the previous one finished.
16680
16681         This is fixed now. Thanks to Totte for helping with it.
16682
16683 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16684
16685         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
16686
16687 2003-08-11  Martin Baulig  <martin@ximian.com>
16688
16689         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
16690
16691 2003-08-06  Martin Baulig  <martin@ximian.com>
16692
16693         * mono-debug-debugger.c: Added support for static fields,
16694         properties and methods.
16695
16696 2003-08-06  Martin Baulig  <martin@ximian.com>
16697
16698         * mono-debug-debugger.c: Don't store the MonoString's vtable to
16699         make this work for applications with multiple application domains.
16700
16701 2003-08-04  Martin Baulig  <martin@ximian.com>
16702
16703         * mono-debug-debugger.c: Completely reworked the type support; the
16704         most important thing is that we're now just using one single
16705         `MonoType' instance per type.
16706
16707 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
16708
16709         * mono-endian.h, mono-endian.c, icall.c: Added icall
16710         ves_icall_System_Double_AssertEndianity to assert double word endianity
16711         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
16712
16713 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16714
16715         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
16716         support, icalls and fixes.
16717
16718 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
16719
16720         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
16721         classes that are a punctuation character in .NET is not the same a
16722         g_unichar_ispunct.
16723
16724 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16725
16726         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
16727
16728 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
16729
16730         * icall.c: Add new MemCopy internalcall.
16731         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
16732         Simplified code; It is not necessary to handle all the cases here,
16733         as the C# code takes care of it.  Only handle the case of the name
16734         resource embedded into the assembly.
16735
16736         Changed signature to return the data pointer and the size of the
16737         data. 
16738
16739 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
16740
16741         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
16742         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
16743
16744 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
16745
16746         * socket-io.c: ignore EINTR error in select.
16747
16748 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
16749
16750         * class.h, class.c: removed unused subclasses field in MonoClass.
16751
16752 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
16753
16754         * icall.c: improve fix of get_base_definition(). If the parent class
16755           doesn't have the mehod, look at the parent of the parent.
16756         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
16757           to check if a parameter is an in or out parameter
16758           (PARAM_ATTRIBUTE_IN is not set by default).
16759           mono_method_return_message_restore(): Use mono_class_value_size to
16760           get the size of a value type. mono_type_stack_size (parameterType)
16761           does not return the correct value if parameterType is byRef.
16762           mono_load_remote_field(), mono_load_remote_field_new(),
16763           mono_store_remote_field(), mono_store_remote_field_new():
16764           raise exception if the remote call returns an exception.
16765
16766 2003-07-28  Martin Baulig  <martin@ximian.com>
16767
16768         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
16769         method.  This is a wrapper around mono_runtime_invoke() which
16770         boxes the instance object if neccessary.
16771
16772 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16773
16774         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
16775         metadata.h, row-indexes.h, verify.c: first cut of generics support.
16776
16777 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16778
16779         * icall.c: disable mcs bug workaround.
16780
16781 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
16782
16783         * object.c (mono_runtime_class_init): Take the metadata_section
16784         mutex before obtaining the domain mutex.
16785
16786         * appdomain.h: Added definition of metadata_section mutex here. 
16787
16788         * object.c: define metadata_mutex here.
16789
16790 2003-07-24  Ravi Pratap  <ravi@ximian.com>
16791
16792         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
16793         fixed.
16794
16795 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
16796
16797         * reflection.c: Fix bug #46669
16798
16799 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16800
16801         * exception.c:
16802         * exception.h:
16803         * icall.c:
16804         * object.h: fill in the type name for TypeLoadException.
16805
16806 2003-07-23  Ravi Pratap  <ravi@ximian.com>
16807
16808         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
16809         relationship between TypeBuilders while compiling corlib) and bug
16810         45993 (Array types returned from the runtime while compiling
16811         corlib were from the loaded corlib).
16812
16813 2003-07-22  Martin Baulig  <martin@ximian.com>
16814
16815         * mono-debug-debugger.c: Reworked the type support a bit more;
16816         distinguish between types and classes.
16817
16818 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
16819
16820         * icall.c: add IsArrayImpl icall.
16821
16822 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
16823
16824         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
16825         initializing real_size only once. Also fix bug #46602.
16826
16827 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
16828
16829         * object.c: Renamed mono_metadata_section to metadata_section.
16830
16831 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
16832
16833         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
16834           empty array if the type is an array. Fixed.
16835           ves_icall_MonoMethod_get_base_definition: if the base method
16836           is abstract, get the MethodInfo from the list of methods of
16837           the class.
16838         * reflection.c: ParameterInfo.PositionImpl should be zero-based
16839           and it was 1-based. Fixed in mono_param_get_objects.
16840
16841 2003-07-20  Martin Baulig  <martin@ximian.com>
16842
16843         * mono-debug.h: Set version number to 31.
16844         (mono_debug_init): Added `MonoDomain *' argument.
16845
16846         * mono-debug-debugger.c: Reworked the type support; explicitly
16847         tell the debugger about builtin types; pass the `klass' address to
16848         the debugger.
16849
16850 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
16851
16852         * image.c: Allow new metadata tables to be loaded without a
16853         warning. Also update the warning message to give the new constant value.
16854                 
16855 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
16856
16857         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
16858         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
16859         array type representation changes.
16860
16861 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
16862
16863         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
16864         on Environment.Exit () call.
16865
16866 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
16867
16868         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
16869         requires a matching corlib.
16870
16871 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
16872
16873         * Changelog: My editor decided to add a CR to each line. Sorry about that.
16874           Committed again without the CRs.
16875         
16876 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
16877
16878         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
16879           getting it from the "this" socket instance. Did not work
16880           if the socket is a subclass of Socket.
16881           Also fixed bug #35371.
16882
16883 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
16884
16885         * metadata.c: fixed size for TypedByRef.
16886         * loader.c: when searching for a method, consider the vararg amrker.
16887         * unicode.c, decimal.c: constify some arrays.
16888
16889 2003-07-15  Dick Porter  <dick@ximian.com>
16890
16891         * socket-io.c: Fixed compilation for gcc < 3.2.
16892
16893         Fixed compilation for machines that don't have AF_INET6 (thanks to
16894         Bernie Solomon <bernard@ugsolutions.com> for that part.)
16895
16896         Fixed compile warnings.
16897         
16898         Fixed formatting and line endings.
16899
16900 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
16901
16902         * socket-io.h:
16903         * socket-io.c: Added IPv6 support.
16904
16905 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
16906
16907         * class.c (mono_class_is_assignable_from): New function to implement
16908         the is_assignable_from logic. Used by mono_object_isinst, 
16909         Type::IsAssignableFrom () and the interpreter.
16910
16911         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
16912         Object, even interfaces.
16913         
16914         * object.c (mono_object_isinst): Implement in terms of 
16915         is_assignable_from.
16916
16917         * icall.c (ves_icall_type_is_assignable_from): New icall.
16918
16919 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
16920
16921         * domain.c (foreach_domain): fix compiler warning.
16922
16923 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
16924
16925         * image.c (load_metadata_ptrs): use g_strndup because strndup is
16926         not available on all plattforms
16927
16928 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
16929
16930         * image.h image.c: Store the metadata version string in MonoImage.
16931         * icall.c: New icall to retrieve the image version.
16932         * reflection.c (create_dynamic_image): Fill in the image version field
16933         * reflection.c (build_compressed_metadata): Use the image version
16934         from the image structure.
16935
16936 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16937
16938         * appdomain.c: modified comment.
16939         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
16940         That will be its last iteration when mono_gc_cleanup is called from
16941         mono_runtime_cleanup and before the domain is unloaded.
16942
16943         Fixes bug #45962.
16944
16945 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
16946
16947         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
16948         attributes.
16949
16950 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16951
16952         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
16953         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
16954         Bernie Solomon <bernard@ugsolutions.com>.
16955
16956 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
16957
16958         * object.c, object.h: provide mono_object_new_fast() for faster
16959         allocation in some special cases.
16960
16961 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
16962
16963         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
16964         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
16965
16966 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
16967
16968         * threadpool.c: fix leaks.
16969
16970 2003-07-01  Dick Porter  <dick@ximian.com>
16971
16972         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
16973         using MonoGHashTables.  Fixes threadpool bug posted to list.
16974
16975 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
16976
16977         * image.h, image.c: added support to load an assembly from a byte array.
16978         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
16979         assembly bundle support.
16980
16981 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
16982
16983         * threadpool.c (mono_thread_pool_add): keep a reference to the
16984         AsyncResult to prevent GC
16985
16986 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
16987
16988         * class.c: leak fix.
16989
16990 2003-06-25  Dick Porter  <dick@ximian.com>
16991
16992         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
16993         for the async object, the WaitHandle object will close the handle.
16994         Fixes bug 45321.
16995
16996 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
16997
16998         * class.c: in mono_array_class_get (), lookup from the hash with the
16999         same type we insert: this works around a bug in
17000         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
17001         lluis. The real fix will have to wait for after the release.
17002
17003 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
17004
17005         * icall.c: fix memory leak when getting type members.
17006
17007 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
17008
17009         * reflection.c: added more pubtoken special cases.
17010
17011 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
17012
17013         * class.c: handle field offset correctly when class size
17014         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
17015
17016 2003-06-20  Martin Baulig  <martin@ximian.com>
17017
17018         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
17019         *image' field.
17020
17021 2003-06-20  Martin Baulig  <martin@ximian.com>
17022
17023         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
17024
17025 2003-06-20  Martin Baulig  <martin@ximian.com>
17026
17027         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
17028         just distinguish between variables in registers and variables at
17029         an offset relative to a register.
17030
17031 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17032
17033         * icall.c: #ifdef out latest changes until mcs is fixed.
17034
17035 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
17036
17037         * icall.c: return members in metadata order.
17038
17039 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
17040
17041         * icall.c: avoid infinite loop in GetTimeZoneData.
17042
17043 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
17044
17045         * icall.c: added Marshal.Prelink/All icalls.
17046
17047 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
17048
17049         * object.c, object.h: fix warnings and do some overflow checking
17050         when creating arrays.
17051
17052 2003-06-17  Dick Porter  <dick@ximian.com>
17053
17054         * file-io.h:
17055         * file-io.c: File attributes need to be tweaked slightly when
17056         passed from the managed to the w32 world.
17057
17058 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
17059         * profiler.h profiler-private.h profiler.c: Rework last patch
17060         based on suggestion by Paolo.
17061         
17062 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
17063
17064         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
17065         instruction level coverage data collection.
17066         * profiler.h profiler.c (: Added new callback function which can be
17067         used by the profiler to limit which functions should have coverage
17068         instrumentation.
17069         * profiler.c (mono_profiler_load): Call g_module_build_path to
17070         generate the file name of the profiler library.
17071
17072 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
17073
17074         * profiler.c, profiler.h, profiler-private.h: added basic block 
17075         coverage profiling API.
17076
17077 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
17078
17079         * reflection.c (mono_reflection_create_runtime_class): Add support
17080         for events in dynamically generated code.
17081
17082         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
17083         not allocated.
17084
17085 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
17086
17087         * icall.c: when getting timezone info, return reasonable values if we
17088         can't get the actual data.
17089
17090 2003-06-14  Dick Porter  <dick@ximian.com>
17091
17092         * threads.c (start_wrapper): Remove the reference to the thread
17093         object in the TLS data, so the thread object can be finalized.
17094         This won't be reached if the thread threw an uncaught exception,
17095         so those thread handles will stay referenced :-( (This is due to
17096         missing support for scanning thread-specific data in the Boehm GC
17097         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
17098
17099 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
17100
17101         * reflection.c: ensure streams and tables are first allocated with
17102         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
17103
17104 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
17105
17106         * icall.c: fixed GetElementType for byrefs (bug# 44792).
17107
17108 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
17109
17110         * reflection.c (mono_reflection_create_runtime_class): Add support for
17111         properties to dynamically created classes.
17112         * reflection.c: Fix a few places where non-MonoObjects were inserted
17113         into the tokens hashtable.
17114
17115 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
17116
17117         * object.c: some support to handle out of memory exceptions.
17118
17119 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
17120
17121         * marshal.c (mono_marshal_get_native_wrapper): support reference
17122         return types
17123
17124 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
17125
17126         * object.h, object.c: more portability stuff from Bernie Solomon.
17127         Unexport mono_object_allocate(). Added mono_object_unbox ().
17128         Set exitcode when an unhandled exception is thrown.
17129
17130 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
17131
17132         * marshal.c (mono_marshal_get_native_wrapper): use custom
17133         marshaler for return types.
17134
17135 2003-06-10  Dick Porter  <dick@ximian.com>
17136
17137         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
17138         ip_mreq is available
17139
17140 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
17141
17142         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
17143         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
17144         by Bernie Solomon <bernard@ugsolutions.com>.
17145
17146 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
17147
17148         * gc.c (mono_gc_init): Avoid error message on shutdown when
17149         GC_DONT_GC=1 is used.
17150
17151         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
17152         New icall to return the GUID of a module.
17153
17154 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
17155
17156         * class.c: ensure instance size always includes the parent's size
17157         even whem class size is set explicitly (fixes bug#44294).
17158
17159 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
17160
17161         * profiler.h, profiler.c: made the simple profiler thread-safe,
17162         get more accurate timing info. Allow the loading of an
17163         externally-developed profiler module.
17164
17165 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
17166
17167         * marshal.c (mono_marshal_get_native_wrapper): improved
17168         class/byref arguments.
17169         (mono_marshal_get_native_wrapper): better string marshaling support.
17170
17171 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
17172
17173         * class.c: ensure .pack and .size are handled correctly and
17174         simplified layout of static fields.
17175
17176 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
17177
17178         * appdomain.c
17179         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
17180
17181         * loader.c (mono_lookup_pinvoke_call): look for modules in the
17182         current directory (fix bug 44008)
17183
17184 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
17185
17186         * marshal.c (mono_marshal_get_native_wrapper): started support for
17187         custom marshalers.
17188         (mono_delegate_to_ftnptr): consider marshalling specifications
17189
17190 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
17191
17192         * reflection.c, reflection.h: emit custom marshal info.
17193
17194 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17195
17196         * object.c: free the GError.
17197         * icall.c: added CloseEvent_internal.
17198         * threads.[ch]:
17199         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
17200         call.
17201
17202 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
17203
17204         * loader.c (mono_method_get_signature): Add support for dynamic
17205         assemblies.
17206
17207 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
17208
17209         * reflection.c: fixed bug #43905.
17210
17211 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
17212
17213         * class.c, domain.c, icall.c, metadata.h, object.h: support for
17214         handling TypedReference and ArgIterator.
17215         * loader.c, loader.h: added function to get signature at call site.
17216
17217 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
17218
17219         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
17220         data readonly. Buglets and warning fixes. Some MethodSpec support.
17221
17222 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
17223
17224         * class.h, class.c, object.c: remove relative numbering support.
17225
17226 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
17227
17228         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
17229         free the string, until we get a chance to fix Gtk#
17230
17231 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17232
17233         * marshal.c: revert last patch.
17234
17235 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
17236
17237         * icall.c: updates for new mono_class_vtable() not calling
17238         the type constructor anymore.
17239
17240 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
17241
17242         * object.h, object.c: separate vtable creation from type
17243         initialization. Make running the .cctor thread safe.
17244
17245 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
17246
17247         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
17248
17249 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
17250
17251         * loader.c (mono_get_method): consider calling convention
17252
17253 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
17254
17255         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
17256         to return the invisible global type for a module.
17257
17258         * reflection.c (mono_image_build_metadata): Emit global fields too.
17259
17260 2003-05-20  Peter Williams  <peterw@ximian.com>
17261
17262         * loader.c (mono_lookup_internal_call): Add a few newlines.
17263
17264 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
17265
17266         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
17267         literal strings.
17268
17269         * appdomain.c (set_domain_search_path): Recalculate search path when
17270         AppDomainSetup.PrivateBinPath changes.
17271
17272         * object.c (mono_class_compute_gc_descriptor): It turns out some
17273         parts of the class libs (like System.Thread) holds pointers to
17274         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
17275         to treat native int a pointer type here.
17276         
17277 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
17278
17279         * appdomain.h, domain.c: add hashtable for jump target resolution.
17280
17281 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
17282
17283         * reflection.h reflection.c icall.c: Added new icalls 
17284         GetManifestResourceInfoInternal, GetModulesInternal and support
17285         infrastructure.
17286
17287 2003-05-16  Dick Porter  <dick@ximian.com>
17288
17289         * icall.c:
17290         * file-io.h:
17291         * file-io.c: Implement System.IO.MonoIO::GetTempPath
17292
17293 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
17294
17295         * object.c: mono_store_remote_field: little fix to previous patch.
17296
17297 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
17298
17299         * class.c: add constructors to array classes.
17300         * icall.c: special case array construction for InternalInvoke (),
17301
17302 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
17303
17304         * class.h class.c reflection.c object.c: Added support for field
17305         defaults in dynamically generated classes.
17306
17307 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
17308
17309         * reflection.c: properly encode charset for ddlimport.
17310
17311 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
17312
17313         * threads.c: allow compiling without GC.
17314
17315 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
17316
17317         * appdomain.h, object.c, object.h, threads.c, threads.h: added
17318         handling of thread static data.
17319
17320 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
17321
17322         * reflection.h, reflection.c: added mono_custom_attrs_free ().
17323
17324 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
17325
17326         * class.c (mono_array_class_get): always set the serializable flags
17327         (mono_array_class_get): always set the SEALED attribute for array types
17328
17329 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
17330
17331         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
17332         attributes (fix for bug 42021).
17333
17334 2003-05-12  Dick Porter  <dick@ximian.com>
17335
17336         * gc.c: Don't run finalizers when the finalizer thread is
17337         finishing up, because the default domain has already been
17338         destroyed.
17339
17340 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
17341
17342         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
17343         value is null, we should throw an exception.   This is slightly
17344         different than the other conventions used for the constructor.
17345
17346 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17347
17348         * socket-io.c: fixed windows build.
17349
17350 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17351
17352         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
17353
17354 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
17355
17356         * object.c (mono_string_new_wrapper): Compatibility fix for MS
17357         compilers.
17358
17359 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
17360
17361         * class.c (mono_class_layout_fields): Add experimental GC aware
17362         auto layout facility. Requires class library changes to work correctly.
17363
17364         (mono_class_setup_vtable): Avoid overriding explicit interface
17365         method implementations. Fixes iface3.exe test.
17366
17367         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
17368         object reference.
17369         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
17370         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
17371
17372         * metadata.h: Add new type classification macro which determines
17373         whenever the type holds an object reference.
17374
17375 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
17376
17377         * marshal.c (mono_marshal_get_native_wrapper): cleanups
17378
17379 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
17380
17381         * gc.c (finalizer_thread): Work around a GC bug.
17382
17383 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
17384
17385         * marshal.c (emit_struct_conv): allow unions
17386
17387         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
17388
17389 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
17390
17391         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
17392
17393 2003-05-06  Martin Baulig  <martin@ximian.com>
17394
17395         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
17396
17397 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17398
17399         * socket-io.c:
17400         (Select_internal): allow NULLs, don't create arrays if not needed.
17401         Coupled with Socket.cs changes.
17402
17403         * threadpool.c:
17404         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
17405         register a finalizer for it that will close the semaphore handle. This
17406         fixes the leak and make Lupus' test run with > 4080 loops.
17407
17408 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
17409
17410         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
17411         Jerome Laban (bug #42287)
17412
17413 2003-05-02  Martin Baulig  <martin@ximian.com>
17414
17415         * debug-mono-symfile.h
17416         (MonoSymbolFile): Moved declaration into mono-debug.h.
17417         (MonoDebugMethodJitInfo): Likewise.
17418         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
17419         argument.
17420         (_mono_debug_address_from_il_offset): Take a
17421         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
17422
17423         * mono-debug.h
17424         (MonoDebugDomainData): New struct.
17425         (mono_debug_get_domain_data): New function.
17426         (mono_debug_add_method): Take an additional `MonoDomain *'
17427         argument.
17428         (mono_debug_source_location_from_address): Likewise.
17429         (mono_debug_il_offset_from_address): Likewise.
17430         (mono_debug_address_from_il_offset): Likewise.
17431
17432 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
17433
17434         * reflection.c: one more check for null type in custom attrs.
17435
17436 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17437
17438         * reflection.c: avoid warning (comparison is always false due to limited
17439         range of data type).
17440
17441 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17442
17443         * icall.c: throw an exception in Type.GetField if the argument 'name'
17444         is NULL.
17445
17446 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
17447
17448         * reflection.c: fixed handling of enums in named arguments to custom
17449         attributes (bug #42123).
17450
17451 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
17452
17453         * reflection.c: use the right array element type and handle
17454         a null for a Type argument, too.
17455
17456 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
17457
17458         * reflection.c: handle arrays as arguments to custom attributes.
17459
17460 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
17461
17462         * reflection.c: handle a string value in a custom attr
17463         ctor that takes an object.
17464
17465 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
17466
17467         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
17468         (fix bug #42063)
17469
17470 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
17471
17472         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
17473
17474 2003-04-27  Martin Baulig  <martin@ximian.com>
17475
17476         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
17477         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
17478         MONO_DEBUGGER_EVENT_BREAKPOINT.
17479         (mono_breakpoint_trampoline_code): Removed.
17480         (mono_debugger_event_handler): The last argument is now a
17481         `guint32'.
17482         (mono_debugger_insert_breakpoint_full): Removed the
17483         `use_trampoline' argument.
17484         (mono_debugger_method_has_breakpoint): Likewise.
17485         (mono_debugger_trampoline_breakpoint_callback): Renamed to
17486         mono_debugger_breakpoint_callback(); take the method and
17487         breakpoint number as arguments.
17488
17489 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
17490
17491         * metadata.c: fix off by one when loading parameters attributes.
17492
17493 2003-04-24  Martin Baulig  <martin@ximian.com>
17494
17495         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
17496
17497 2003-04-24  Martin Baulig  <martin@ximian.com>
17498
17499         * mono-debug-debugger.c: Moved all code which interacts with the
17500         Mono Debugger here.
17501
17502         * debug-mono-symfile.c: This code now just deals with the symbol
17503         file itself, the debugger code is now in mono-debug-debugger.c.
17504
17505 2003-04-23  Martin Baulig  <martin@ximian.com>
17506
17507         * mono-debug.c (mono_debug_source_location_from_il_offset):
17508         New method; like mono_debug_source_location_from_address(), but
17509         takes an IL offset instead of a machine address.
17510
17511 2003-04-23  Martin Baulig  <martin@ximian.com>
17512
17513         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
17514         `line' field; this is now computed by the debugger.
17515
17516 2003-04-23  Martin Baulig  <martin@ximian.com>
17517
17518         * mono-debug.[ch]: New files.  This is the new debugging interface.
17519
17520         * mono-debug-debugger.[ch]: New files.  Moved all code which
17521         interacts with the Mono Debugger here.
17522
17523 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
17524
17525         * domain.c (mono_init): initialize mono_defaults.monitor_class
17526
17527 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
17528
17529         * reflection.c (method_encode_code): Add a spicy exception to help
17530         future compiler authors.
17531
17532 2003-04-21  Martin Baulig  <martin@ximian.com>
17533
17534         * icall.c
17535         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
17536         Make this work with relative pathnames; g_filename_to_uri() needs
17537         an absolute filename.
17538
17539 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
17540
17541         * icall.c: Track name changes in Object and ValueType.
17542
17543 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
17544
17545         * metadata.c (mono_type_stack_size): size should be a multiple of
17546         sizeof (gpointer)
17547
17548 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17549
17550         * gc.c:
17551         (internal_domain_finalize): moved into mono_domain_finalize. No need
17552         to create another thread because the finalizers will be run in the
17553         finalizer thread.
17554         
17555         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
17556         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
17557         to be run (MS does this too).
17558
17559 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
17560
17561         * object.c (mono_class_compute_gc_descriptor): Update comment.
17562
17563         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
17564
17565         * image.h: Add synchronized wrapper cache.
17566
17567         * image.c (do_mono_image_open): Initialize cache.
17568
17569         * reflection.c (create_dynamic_mono_image): Initialize cache.
17570
17571 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17572
17573         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
17574         ves_icall_System_Buffer_ByteLengthInternal.
17575
17576 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
17577
17578         * reflection.c: setup klass->nested_in earlier. Allow
17579         a dash in the assembly name.
17580
17581 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
17582
17583         * metadata.c (mono_type_to_unmanaged): dont access
17584         type->data.klass for MONO_TYPE_OBJECT
17585         (mono_type_to_unmanaged): consider System.Delegate class
17586
17587 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
17588
17589         * class.c: just setup supertypes in the proper place instead of
17590         initializing the full element class for arrays.
17591
17592 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
17593
17594         * class.c: ensure the element class of arrays is initialized.
17595         Setup the supertype info for array classes, too.
17596
17597 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
17598
17599         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
17600
17601 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17602
17603         * Makefile.am: re-added -m option when running cygpath. This way,
17604         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
17605         separator.
17606         * mono-config.c: same codepath for locating mono config file for WIN32
17607         and the rest.
17608         * assembly.c: if mono_assembly_setrootdir is called, don't override
17609         the value set.
17610
17611 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17612
17613         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
17614         MONO_ASSEMBLIES variable.
17615
17616 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
17617
17618         * icall.c: added Assembly::GetNamespaces() icall.
17619
17620 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17621
17622         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
17623
17624 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
17625
17626         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
17627         * object.c: fixed bug in the construction of vtable for proxies
17628
17629 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
17630
17631         * object.c (mono_array_new): Mark mono_array_new as an icall.
17632
17633 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17634
17635         * class.c: fixed test for public method when overriding interfaces.
17636         Closes bug #40970.
17637
17638 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
17639
17640         * appdomain.h, domain.c: added mono_domain_foreach() to
17641         be able to access the currently loaded appdomains.
17642         * object.c: make string interning work across sppdomains.
17643         Mark some functions for use as icalls.
17644
17645 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
17646
17647         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
17648
17649         * reflection.h reflection.c: Allocate long living data using 
17650         GC_MALLOC_ATOMIC so the collector does not need to scan it.
17651
17652         * reflection.c: Double the allocation size in streams instead of
17653         increasing it, to prevent unneccesary copying on large assemblies.
17654         
17655         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
17656         creation if the assembly does not have the Run flag set.
17657
17658 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
17659
17660         * class.h: avoid the C++ keywords in header files (Jerome Laban
17661         spotted and fixed this).
17662
17663 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17664
17665         * object.c:
17666         (mono_unhandled_exception): fill in the arguments for the
17667         UnhandledException event. Only trigger that event for the default
17668         domain (as MS does).
17669
17670 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
17671
17672         * object.c: Improve typed allocation stuff based on suggestions from
17673         Paolo. Also turn it on if the GC library supports it.
17674
17675 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
17676
17677         * object.c object.h class.h: Added experimental typed allocation
17678         facility using the interfaces in gc_gcj.h.
17679
17680         * os/gc_wrapper.h: Added new include files.
17681         
17682 2003-04-03  Martin Baulig  <martin@ximian.com>
17683
17684         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
17685         which is not yet enabled by default.
17686
17687         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
17688         functions.
17689         (mono_gc_lock, mono_gc_unlock): New static functions.
17690
17691         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
17692         functions; stop/start the world for the garbage collector.  This
17693         is using the windows API; we need to complete the SuspendThread()/
17694         ResumeThread() implementation in the io-layer to make this work on Unix.
17695         (mono_gc_push_all_stacks): New public function; tells the garbage
17696         collector about the stack pointers from all managed threads.
17697
17698 2003-04-03  Martin Baulig  <martin@ximian.com>
17699
17700         * object.h (MonoThread): Added `gpointer stack_ptr'.
17701
17702         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
17703
17704 2003-04-03  Martin Baulig  <martin@ximian.com>
17705
17706         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
17707
17708 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
17709
17710         * reflection.c (typebuilder_setup_fields): Initialize field.first and
17711         field.last.
17712
17713 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
17714
17715         * loader.c (mono_lookup_internal_call): Report the corlib that is
17716         out of sync.
17717
17718 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
17719
17720         * icall.c (ves_icall_type_GetTypeCode): fixed check for
17721         System.DBNull (it's class not valuetype).
17722
17723 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
17724
17725         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
17726         if the array method was already assigned a token (fixes bug#40646).
17727
17728 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
17729
17730         * reflection.c (mono_reflection_get_type): Attempt type resolve even
17731         if no assembly is given.
17732
17733 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
17734
17735         * metadata.h: Added the new tables.
17736
17737         * row-indexes.h: Added definitions for new tables.
17738
17739         * metadata.c: Add schemas for new tables, and add support for
17740         computing the sizes of them.
17741
17742         * class.c: Update for handling the new type cases.
17743
17744 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
17745
17746         * metadata.h (MONO_TYPE_IS_VOID): new macro
17747
17748 2003-03-31  Martin Baulig  <martin@ximian.com>
17749
17750         * threads.h (MonoThreadCallbacks): Added `thread_created'.
17751
17752         * threads.c (mono_thread_new_init): Call `thread_created' in the
17753         mono_thread_callbacks.
17754
17755 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
17756
17757         * loader.h: added marshalbyrefobject_class to mono_defaults
17758         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
17759         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
17760           generation of output parameters.
17761           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
17762         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
17763           contextbound and the target object belongs to the context of the caller.
17764         * object.h: added context and unwrapped_server variables in MonoRealProxy.
17765         * object.c: Implemented support for interfaces and abstract classes
17766           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
17767           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
17768
17769 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
17770
17771         * class.h class.c (mono_class_is_subclass_of): New function.
17772         
17773         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
17774         routines for most common case (calls from ArrayList::ToArray).
17775
17776         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
17777         routine so programs which call Environment::Exit() can be profiled.
17778
17779         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
17780         Added MONO_ARCH_SAVE_REGS.
17781
17782         * icall.c (ves_icall_type_is_subtype_of): Use new function.
17783
17784 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
17785
17786         * blob.h: Add a couple of new MonoType types definitions.
17787
17788         * tabledefs.h: Add a couple of new call convs.
17789
17790 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
17791
17792         * reflection.h (MonoReflectionDynamicAssembly): track changes in
17793         the layout of the class.
17794
17795         * reflection.c (alloc_table): double the size on overflow to avoid
17796         unnecessary copying.
17797
17798         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
17799         avoid filling out metadata tables and blobs. Also set mb->ilgen to
17800         null so it can be garbage collected.
17801         
17802 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
17803
17804         * reflection.c (mono_reflection_get_type): Return the resolved type
17805         only if it is in the assembly we searched.
17806
17807         * reflection.c (ensure_runtime_vtable): Initialize method slots.
17808
17809         * class.c (mono_class_setup_vtable): Set the slot of the overriding
17810         method.
17811
17812 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17813
17814         * appdomain.c:
17815         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
17816         the right one is 'file:///blah', but MS allows it.
17817         * assembly.c:
17818         (mono_assembly_open): allow 'file://blah'
17819
17820         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
17821
17822 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
17823
17824         * socket-io.c: fixes bug #40310.
17825
17826 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
17827
17828         * reflection.c (mono_reflection_parse_type): handle deeply nested
17829         types correctly.
17830
17831         * reflection.c (mono_image_create_token): Use unique token values
17832         since they will be put into a hash table.
17833
17834         * class.c (mono_class_setup_vtable): If a method occurs in more than
17835         one place in the vtable, and it gets overriden, then change the
17836         other occurances too.
17837
17838         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
17839         object as return type.
17840
17841 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17842
17843         * icall.c: Deleted "ToString" implementation for double and float
17844         because they are full implemented in managed code.
17845
17846 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
17847
17848         * reflection.c, reflection.h: implemented and exported functions
17849         to retrieve info about custom attributes.
17850
17851 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17852
17853         * appdomain.c: moved Uri handling to assembly.c
17854         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
17855         work when using a file Uri in *nix and windows.
17856
17857         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
17858         GetReferencedAssemblies.
17859
17860 2003-03-18  Dick Porter  <dick@ximian.com>
17861
17862         * icall.c: Rename a couple of internal calls
17863
17864         * threads.c: Set the thread state to Stopped when a thread exits.
17865         Fixes bug 39377.
17866
17867 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
17868
17869         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
17870         New icall.
17871
17872         * object.c (mono_class_vtable): fix warning.
17873
17874 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
17875
17876         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
17877
17878         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
17879         memory.
17880         (method_encode_clauses): Create exception info structures in the right
17881         order.
17882         (mono_reflection_setup_internal_class): Initialize supertypes field.
17883
17884         * class.c object.c: Handle interfaces which implement other interfaces 
17885         correctly.
17886
17887         * class.h class.c: Move the supertypes array initialization code into 
17888         a separate function so it can be used for dynamic types too. Also call
17889         it earlier, in mono_class_init(), since it can be used before the
17890         type is initialized.
17891
17892 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17893
17894         * Makefile.am:
17895         * assembly.c:
17896         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
17897
17898         * appdomain.c:
17899         * appdomain.h:
17900         * marshal.c:
17901         * object.c: remove warnings.
17902
17903 2003-03-13  Martin Baulig  <martin@ximian.com>
17904
17905         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
17906         (MonoDebugLexicalBlockEntry): New types.
17907
17908         * debug-mono-symfile.c
17909         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
17910
17911 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17912
17913         * process.c: ret can be any non-zero value accroding to MS doc.
17914
17915 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
17916
17917         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
17918         fixing a warning for a miss-used prototype, would have cause
17919         random memory corruption.
17920
17921 2003-03-07  Martin Baulig  <martin@ximian.com>
17922
17923         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
17924         getting really annoying ....
17925
17926 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
17927
17928         * reflection.c (fixup_method): added support for array methods.
17929
17930 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
17931
17932         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
17933         (pointed out by Michael Adams).
17934
17935 2003-03-04  Dick Porter  <dick@ximian.com>
17936
17937         * icall.c: Temporarily reverted the Double and Single ToString()
17938         change, because it broke nunit.
17939
17940 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
17941
17942         * object.h, threads.h: make include files compatible with C++
17943         (patch by Jerome Laban <jlaban@wanadoo.fr>).
17944
17945 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17946
17947         * icall.c: Erased ToString helper functions for Double and Single.
17948         Now, that implementations ar all in managed code (Double and Single
17949         Formatters).
17950
17951 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
17952
17953         * appdomain.c: Added method for initializing the default context of
17954         a domain. Added internal call for getting the default context.
17955         * appdomain.h: Added context variable in MonoDomain struct.
17956         * domain.c: mono_domain_set also sets the default context of the domain
17957         * icall.c: Mapped internal method InternalGetDefaultContext.
17958         * object.c: mono_object_get_virtual_method returns always a remoting
17959         wrapper if the object is a transparent proxy.
17960         mono_runtime_invoke_array: when creating an object by calling the
17961         constructor, if the created object is a proxy, then the constructor should
17962         be called using the a remoting wrapper.
17963
17964 2003-03-03  Dick Porter  <dick@ximian.com>
17965
17966         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
17967         variable so it compiles on solaris.  Problem spotted by
17968         Christopher Taylor <ct@cs.clemson.edu>
17969
17970 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17971
17972         * appdomain.c:
17973         (get_info_from_assembly_name): don't leak value.
17974
17975         * icall.c:
17976         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
17977         result.
17978
17979 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
17980
17981         * assembly.c: export mono_image_load_references ().
17982         * class.c: handle function pointers. mono_class_from_name() now
17983         supports nested type names directly.
17984
17985 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
17986
17987         * reflection.h reflection.c: Encode already created dynamic methods 
17988         and fields correctly as a DEF instead of a REF.
17989
17990         * reflection.c: Get rid of the force_ref argument to 
17991         mono_image_typedef_or_ref since it was wrong in the first place.
17992
17993         * string-icalls.c: add error checking to string constructors according
17994         to the MSDN docs.
17995
17996         * reflection.c: Emit types in the order their TypeBuilders were 
17997         created. Previously, a new table index was assigned to each type before
17998         the tables were emitted. This was wrong because the signature blob
17999         might already refer to a type by its original table index.
18000
18001 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
18002
18003         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
18004         change.
18005         
18006 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18007
18008         * Makefile.am: make assemblies dir have \ instead of / on windows.
18009
18010 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
18011
18012         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
18013         iterate over the NESTEDCLASS table using a linear search since the
18014         table is not guaranteed to be sorted by the secondary key.
18015
18016         * class.c (mono_class_create_from_typedef): fixed up call to
18017         mono_metadata_nesting_typedef.
18018         
18019 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
18020
18021         * marshal.c (mono_string_to_byvalstr): clear the memory as
18022         suggested by Jerome Laban <jlaban@wanadoo.fr>
18023
18024 2003-02-26  Dick Porter  <dick@ximian.com>
18025
18026         * process.c: Cope with padding in .rsrc blocks
18027
18028 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
18029
18030         * metadata.h: reverted the filter_len change, it breaks reflection
18031         
18032 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
18033
18034         * metadata.h: added a new field to store the filter_len
18035         
18036
18037 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
18038
18039         * reflection.c: handle custom attributes for types and members
18040         created with Reflection.Emit (bug#38422).
18041
18042 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
18043
18044         * reflection.c: define RTSpecialName automatically for constructors for
18045         compatibility with MS.NET.
18046
18047         * reflection.c (mono_reflection_create_runtime_class): initialize
18048         nested_in field of dynamically created classes.
18049
18050 2003-02-22  Martin Baulig  <martin@ximian.com>
18051
18052         * debug-mono-symfile.h: Incremented version number.
18053
18054 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
18055
18056         * object.h icall.c process.c: fix warnings.
18057
18058 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
18059
18060         * appdomain.h appdomain.c:
18061         (mono_domain_try_type_resolve): split the 
18062         name_or_tb argument into a name and a tb argument.
18063         (mono_domain_has_type_resolve): new function to check whenever the
18064         application has registered a TypeResolve event handler.
18065         
18066         * icall.c reflection.h reflection.c: move the type resolve logic into
18067         mono_reflection_get_type () so it will be invoked when 
18068         Assembly::GetType () is called.
18069
18070         * reflection.c:
18071         (mono_reflection_get_type): renamed to get_type_internal.
18072         (mono_reflection_get_type): fixed type name generation so it works 
18073         for nested types too.
18074         (mono_reflection_get_type): call has_type_resolve () to avoid the 
18075         costly type name generation if there is no resolve event handler.
18076
18077 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
18078
18079         * class.c, image.c: load exported types from file references.
18080
18081 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
18082
18083         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
18084           used to cache the managed methods used to create proxies and make 
18085           remote invocation of methods.
18086         * class.h: Added in MonoVTable a flag to indicate that a class needs 
18087           to be remotely created.
18088         * object.c: Modified the method mono_class_vtable(). It now initializes 
18089           the remote flag of the vtable. Modified mono_object_new_specific(), 
18090           so now it checks the remote flag.
18091         * icall.c: Added a couple of internal methods, one for enabling instance 
18092           creation interception for a type, and one for creating objects bypassing
18093           the remote check.
18094
18095 2003-02-18  Martin Baulig  <martin@ximian.com>
18096
18097         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
18098         New interncall to get a method's metadata token.
18099
18100         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
18101         New interncall for the debugger.
18102
18103 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
18104
18105         * class.c (mono_class_setup_vtable): allocate supertype array
18106
18107 2003-02-18  Martin Baulig  <martin@ximian.com>
18108
18109         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
18110
18111 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18112
18113         * reflection.c:
18114         (assembly_name_to_aname): jump over unknown properties (i've found
18115         something like: 'type, assembly, version=xxx, custom=null, public...',
18116         so now will ignore custom=null and still get the rest of the values).
18117
18118 2003-02-17  Dick Porter  <dick@ximian.com>
18119
18120         * threads.c: Have Thread.Start() wait for a semaphore to signal
18121         that the thread has set up all its local data.  This fixes bug
18122         34323, where Abort() raced the new thread's TLS data.
18123
18124         Also removes the handle_store() call from start_wrapper, because
18125         threads are now always created suspended and there is no longer a
18126         race between the parent and child threads to store the info.
18127
18128 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
18129
18130         * image.c: explain the #- heap issue in a message, hopefully
18131         avoiding FAQs on mono-list.
18132
18133 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18134
18135         * icall.c:
18136         (GetEntryAssembly): if the domain has not invoked
18137         AppDomain.ExecuteAssembly yet, return the assembly of the default
18138         AppDomain.
18139
18140 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
18141
18142         * class.c (mono_ldtoken): make it work in dynamic assemblies.
18143
18144 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
18145
18146         * metadata.c, reflection.c: simple speedup to type hash
18147         and equals code.
18148
18149 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
18150
18151         * image.c, image.h, class.c, assembly.c: move module loading
18152         to MonoImage. When loading metadata, consider alignemnet from
18153         the start of metadata, not from the metadata address in memory.
18154
18155 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
18156
18157         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
18158         AssemblyBuilder objects. Factored out custom attribute creation into
18159         a separate function.
18160         (create_custom_attr): new function to create custom attributes.
18161
18162 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
18163
18164         * Makefile.am: Got tired of typing the full pathname to pedump.
18165         Until there is another option, am installing this.
18166
18167 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
18168
18169         * class.c (class_compute_field_layout): always set field->parent 
18170         (mono_ldtoken): use mono_defaults.fieldhandle_class;
18171
18172 2003-02-11  Dick Porter  <dick@ximian.com>
18173
18174         * threads-types.h:
18175         * monitor.c: Rewrote Monitor, making lock much faster and
18176         Pulse/Wait work as specified.  Also uses much fewer handles, and only
18177         creates them as needed.
18178
18179         * exception.c: Added SynchronizationLockException
18180
18181         * threads.c: Deleted old Monitor implementation.  The new one is
18182         in a new file.
18183
18184 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
18185
18186         * class.c: handled TypedReference type code. Set the correct size for
18187         class data. Setup interface_offsets for interface classes, too.
18188
18189 2003-02-09  Martin Baulig  <martin@ximian.com>
18190
18191         * debug-mono-symfile.h: Reflect latest symbol writer changes.
18192
18193 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
18194
18195         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
18196         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
18197         * object.c: fixed mono_object_get_virtual_method () for interfaces.
18198         * verify.c: check for code that runs after the end of the method.
18199
18200 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
18201
18202         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
18203         "System.Math::Round2".
18204         * sysmath.h: Added Floor, Round and Round2 definitions.
18205         * sysmath.c: Modified certain functions that were not 100% compliant
18206         with MS.NET (math precision) and added the implementation of Floor,
18207         Round and Round2.
18208
18209 2003-02-07  Martin Baulig  <martin@ximian.com>
18210
18211         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
18212
18213 2003-02-07  Martin Baulig  <martin@ximian.com>
18214
18215         * debug-mono-symfile.c: Reflected latest symwriter changes.
18216         (mono_debug_create_mono_symbol_file): Removed.
18217         (mono_debug_open_mono_symbol_file): Take an argument which
18218         specifies whether to create a dynamic symbol file.
18219
18220 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
18221
18222         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
18223
18224 2003-02-05  Martin Baulig  <martin@ximian.com>
18225
18226         * reflection.c (mono_image_build_metadata): Make this public,
18227         protect it against being called multiple times, don't create
18228         resources and don't build the compressed metadata here.
18229         (mono_image_create_pefile): Do this here.
18230
18231         * icall.c
18232         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
18233
18234 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18235
18236         * socket-io.c: fixed bug #36322.
18237
18238 2003-02-06  Piers Haken <piersh@friskit.com>
18239
18240         * appdomain.[ch]:
18241         * class.h:
18242         * debug-mono-symfile.c:
18243         * icall.c:
18244         * loader.c:
18245         * mono-config.c:
18246         * monosn.c:
18247         * reflection.c:
18248         * socket-io.c: warning cleanups
18249
18250 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
18251
18252         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
18253         function. works like remoting invoke, but does a check for the Proxy first.
18254
18255 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
18256
18257         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
18258
18259 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
18260
18261         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
18262         array of pointers.
18263         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
18264         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
18265
18266         * object.c (mono_store_remote_field_new): used by the new jit
18267         instead of mono_store_remote_field
18268         (mono_load_remote_field_new): used by the new jit
18269         instead of mono_load_remote_field
18270
18271 2003-02-05  Patrik Torstensson
18272
18273         * appdomain.c: changed unload to take the domain id instead
18274         of domain
18275         
18276         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
18277
18278
18279 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18280
18281         * appdomain.c: don't look for assemblies in ApplicationBase if
18282         PrivateBinPathProbe is set.
18283
18284 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18285
18286         * object.c: make the first argument in main_args contain the absolute
18287         path to the assembly. Fixes bug #37511.
18288
18289 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18290
18291         * icall.c: get correct UTC offset for countries not using daylight
18292         time saving. Fixes bug #30030.
18293
18294 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18295
18296         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
18297         and 1 are the family).
18298
18299 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
18300
18301         * icall.c (ves_icall_InternalExecute): removed wrong assertion
18302
18303         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
18304
18305 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
18306
18307         * reflection.c: added support for SignatureHelper tokens, which is
18308         needed by the Calli opcode.
18309
18310         * reflection.h: track changes to SignatureHelper class.
18311
18312         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
18313
18314 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18315
18316         * appdomain.c: fixed loading assemblies from PrivateBinPath.
18317
18318 2003-02-03  Patrik Torstensson
18319         * appdomain.[c|h], domain.c : 
18320          - Added support for getting a domain via domain id
18321          - Support for setting and getting domain from System.AppDomain 
18322            (used in cross appdomain channel)
18323          - Added support for get/set for a MonoAppContext on a thread 
18324            (Context class in System.Runtime.Remoting.Contexts),
18325          - Removed hack in Get/SetData and ExecuteAssembly.
18326         
18327         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
18328         the managed world to get control when a proxy is created.
18329
18330         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
18331         
18332 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
18333
18334         * icall.c
18335         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
18336         Populate the codebase field as well.
18337
18338 2003-02-02  Martin Baulig  <martin@ximian.com>
18339
18340         * debug-mono-symfile.c
18341         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
18342         (mono_debug_symfile_add_method): Allow interncalls.
18343
18344 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18345
18346         * icall.c: throw parse exception if strtod fails or the string is empty.
18347
18348 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
18349
18350         * marshal.c: handle object type separately from defined
18351         class types.
18352
18353 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
18354
18355         * marshal.c: handle NATIVE_LPSTR for strings when it's
18356         explicitly specified.
18357
18358 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
18359
18360         * reflection.c, reflection.h, icall.c: setup the reflection
18361         handle cache for ModuleBuilders and AssemblyBuilders.
18362
18363 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
18364
18365         * reflection.c (reflection_methodbuilder_to_mono_method): set
18366         pinvoke flag
18367
18368 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18369
18370         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
18371
18372 2003-01-29  Dick Porter  <dick@ximian.com>
18373
18374         * threads.c: No need for the fake_thread kludge now that Thread
18375         doesn't run a class constructor
18376         
18377 2003-01-29  Dick Porter  <dick@ximian.com>
18378
18379         * threads.c: Use g_direct_hash instead of the rather bogus
18380         g_int_hash
18381
18382 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
18383
18384         * marshal.c (mono_marshal_get_native_wrapper): add check for null
18385         (fix pinvoke12.exe)
18386         (mono_marshal_get_struct_to_ptr): generate valid IL code
18387         (mono_marshal_get_ptr_to_struct): generate valid IL code
18388         (*): correctly set sig->pinvoke, we need to memdup the signature
18389         to do that
18390
18391 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
18392
18393         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
18394         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
18395
18396 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
18397
18398         * profiler.c: provide more callers information.
18399
18400 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
18401
18402         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
18403
18404         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
18405
18406         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
18407
18408 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18409
18410         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
18411         exception instead of going into an infinite loop on dates which it 
18412         can't yet handle.
18413
18414         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
18415         out-of-range exception if needed.
18416
18417         * class.c (mono_class_setup_vtable): allow a virtual method to provide
18418         an implementation for an interface method and to override an inherited
18419         method at the same time. 
18420         Imagine a scenario when a virtual method is used to override a
18421         virtual abstract method in a parent class, and this same method 
18422         provides an implementation for an method inherited from an interface. 
18423         In this case, the interface resolution code will set im->slot, which 
18424         means that the virtual method override pass will skip this method 
18425         which means a pointer to the abstract method inherited from the parent
18426         will remain in the vtable of this non-abstract class.
18427
18428         * class.c: (mono_class_setup_vtable): continue search for a real 
18429         method if only an abstract method is found.     
18430
18431 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
18432
18433         * reflection.c: add size to encoding for ByValStr and ByValArray
18434         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
18435
18436 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18437
18438         * class.c (mono_class_setup_vtable): pass the override info as an
18439         argument.
18440
18441         * class.c (mono_class_setup_vtable): set the slot of overriding methods
18442         correctly.
18443         
18444         * reflection.c (ensure_runtime_vtable); add support for method 
18445         overrides.
18446         
18447 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18448
18449         * reflection.c (resolution_scope_from_image): Hack to work to work with
18450         dynamic assemblies.
18451
18452         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
18453         added a 'force_ref' argument to force this function to allways return 
18454         a TypeRef. This is needed by mono_image_get_memberref_token ().
18455         
18456 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18457
18458         * reflection.c (mono_image_get_type_info): interfaces really don't have
18459         a parent.
18460
18461         * reflection.c (mono_image_basic_init): fill out missing fields of
18462         image structure.
18463
18464         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
18465         dynamic assemblies. This is required so dynamic assemblies show up in
18466         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
18467         Type::GetType() etc. This is consistent with MS behaviour.
18468
18469         * image.c image.h reflection.c: add newly created classes to the name 
18470         cache so mono_class_get () will find them.      
18471
18472 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18473
18474         First part of changes to get IKVM.NET running under mono.
18475         
18476         * appdomain.h, appdomain.c: added new function 
18477         mono_domain_try_type_resolve() which will emit TypeResolve events. 
18478         This function will call AppDomain::DoTypeResolve to do the actual work.
18479
18480         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
18481         moved existing code dealing with dynamic tokens to a new function 
18482         called mono_reflection_lookup_dynamic_token (). This function will 
18483         raise TypeResolve events when appropriate. Since reflection.c is not 
18484         part of libmetadata, a new hook function called 
18485         mono_lookup_dynamic_token() is added to class.c which will call this.
18486
18487         * assembly.h assembly.c: make the invoke_load_hook function public,
18488         so it can be called for dynamic assemblies.
18489
18490         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
18491
18492         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
18493         type isn't found.
18494
18495         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
18496         MonoGHashTable, since it contains pointers to objects which the GC 
18497         needs to track.
18498
18499         * assembly.c (search_loaded): remove unused variable.
18500         
18501 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
18502
18503         * object.c: fixed issue exposed by gcc-generated IL programs
18504         that use RVA data for pointers.
18505
18506 2003-01-25  Martin Baulig  <martin@ximian.com>
18507
18508         * threads.c (start_wrapper): Moved the initialization of
18509         `start_func' above the mono_new_thread_init() call to which we
18510         pass it as argument.
18511
18512 2003-01-24  Martin Baulig  <martin@ximian.com>
18513
18514         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
18515         the MonoThread pointer.
18516
18517 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
18518
18519         * icall.c: Rename `PowImpl' to Pow.
18520
18521 2003-01-23  Dick Porter  <dick@ximian.com>
18522
18523         * threads.c (start_wrapper): Create a Thread object if needed, so
18524         the Main() thread can do the class initialisation in a subthread
18525         that has been set up to allow managed code execution.
18526
18527         Pass the thread ID instead of the MonoThread pointer to the thread
18528         start and attach callbacks.  This change is required, because the
18529         jit thread start callback must be called _before_ the Thread
18530         object can be created.
18531         
18532         (mono_thread_init): Removed much object creation code that is no
18533         longer needed.  No managed code is called from here now.
18534
18535         * object.c (mono_runtime_exec_managed_code): Create a subthread
18536         for Main, and call back to the runtime to use it.
18537         Set the exit code when Main exits.
18538
18539         * gc.c: Make sure domain finalisation happens in a subthread.
18540         Re-enable threaded GC, fixing bug 31333 (again).
18541
18542         * environment.c: System.Environment internall calls (so far just
18543         ExitCode is here, the others are still in icall.c)
18544
18545         * appdomain.c (mono_runtime_cleanup): All threads running managed
18546         code should have finished before mono_runtime_cleanup() is
18547         reached, so no need to clean up threads.
18548
18549 2003-01-22  Martin Baulig  <martin@ximian.com>
18550
18551         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
18552         `gpointer func' arguments.      
18553         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
18554         but added `MonoThread *thread' argument.
18555         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
18556
18557         * threads.c (mono_new_thread_init): Added `gpointer func' argument
18558         and pass it to the mono_thread_start_cb callback.
18559         (mono_install_thread_callbacks): New public function to install a
18560         set of callbacks which are set by the debugger.
18561         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
18562
18563 2003-01-22  Martin Baulig  <martin@ximian.com>
18564
18565         * Makefile.am: Install debug-mono-symfile.h.
18566
18567 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
18568
18569         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
18570
18571 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
18572
18573         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
18574         * class.c (mono_ptr_class_get): correctly set access levels of pointers
18575         (mono_array_class_get): correctly set access levels of arrays
18576
18577 2003-01-20      Patrik Torstensson
18578         * image.h (MonoAssemblyName): changed major, minor, build, revision
18579         from signed to unsigned.
18580
18581 2003-01-20  sean kasun <skasun@azstarnet.com>
18582
18583         * reflection.c (load_cattr_value): Now this handles
18584         MONO_TYPE_SZARRAY.  Fixes bug #35629
18585
18586 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
18587
18588         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
18589         integer value
18590
18591 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18592
18593         * decimal.c: fixed bug #26056.
18594
18595 2003-01-17  Martin Baulig  <martin@ximian.com>
18596
18597         * gc.c: Raise an ExecutionEngineException instead of using g_error().
18598
18599 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18600
18601         * exception.[ch]:
18602         (mono_get_exception_type_initialization): new function.
18603
18604         * object.c: throw a TypeInitializationException when an exception is
18605         thrown invoking the class constructor.
18606
18607 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18608
18609         * reflection.c: fixed attribute reading.
18610
18611 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18612
18613         * icall.c:
18614         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
18615         provided, look for the type in the calling assembly and then in
18616         mscorlib; if the assembly name is provided, only try that one.
18617
18618 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
18619
18620         * object.c: register the vtable before there is a chance it's
18621         queried again recursively.
18622
18623 2003-01-13  Duncan Mak  <duncan@ximian.com>
18624
18625         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
18626         gc-internal.h. 
18627         
18628 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
18629
18630         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
18631
18632 2003-01-11  Martin Baulig  <martin@ximian.com>
18633
18634         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
18635         this to 20 for the release.
18636
18637 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
18638
18639         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
18640
18641         * loader.c (mono_method_get_marshal_info): bug fix
18642
18643         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
18644         structures with explicit layout
18645
18646 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
18647
18648         * profiler.c: made the output more readable (and sorted). 
18649         Added caller information for the allocation profiler.
18650
18651 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
18652
18653         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
18654
18655 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18656
18657         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
18658         to get value types.
18659         
18660 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
18661
18662         * object.c, profiler.h, profiler.c, profiler-private.h:
18663         Added object allocation profiler.
18664
18665 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
18666
18667         * reflection.h, reflection.c: handle global methods.
18668         Compress blob entries.
18669
18670 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
18671
18672         * marshal.c: fix compilation.
18673
18674 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
18675
18676         * loader.c (mono_method_get_marshal_info): impl.
18677
18678         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
18679
18680 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18681
18682         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
18683         for reference types.
18684
18685 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
18686
18687         * loader.c: fixed off by one error in loaded parameter names.
18688
18689 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
18690
18691         * marshal.c (mono_marshal_get_icall_wrapper): like
18692         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
18693         instead of a MonoMethod.
18694
18695 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18696
18697         * decimal.c: fixed bug #36537.
18698
18699 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
18700
18701         * marshal.c: throw a missing method exception if a
18702         P/Invoke method is not found.
18703
18704 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
18705
18706         * icall.c: allow a null this for constructors.
18707
18708 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
18709
18710         * icall.c: raise the proper exceptions if the arguments to the
18711         internal Invoke are incorrect.
18712
18713 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
18714
18715         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
18716
18717 2003-01-03  Martin Baulig  <martin@ximian.com>
18718
18719         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
18720
18721 2002-12-31  Martin Baulig  <martin@ximian.com>
18722
18723         * debug-mono-symfile.c: Completely rewrote the type section.
18724         Instead of using individual malloc()ed fields, we use one big
18725         continuous memory area and offsets into this area.
18726         See the comments in the source code for details.
18727
18728 2002-12-30  Martin Baulig  <martin@ximian.com>
18729
18730         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
18731
18732 2002-12-30  Martin Baulig  <martin@ximian.com>
18733
18734         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
18735         line number table in this data blob instead of using an external
18736         pointer.
18737
18738 2002-12-28  Martin Baulig  <martin@ximian.com>
18739
18740         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
18741
18742 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
18743
18744         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
18745         as a boxed return type.
18746
18747 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
18748
18749         * appdomain.c
18750         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
18751         g_build_filename to properly get separators on the filename created.
18752
18753         * object.h: Small change, introduce MonoMarshalByRefObject to
18754         track the layout of that structure in the C# universe as we make
18755         changes there.
18756
18757 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
18758
18759         * object.c: removed assert to allow static fields on interfaces.
18760         * loader.c: a TypeSpec may be used for any type, not just arrays.
18761
18762 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
18763
18764         * class.c, class.h: added mono_class_array_element_size ().
18765         Ignore static methods in interfaces.
18766
18767 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18768
18769         * threads.c: fixed the build under cygwin.
18770
18771 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
18772
18773         * reflection.c: handle nullref constants. Allocate keys for
18774         reflection handles with the GC.
18775
18776 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
18777
18778         * threads.c, threads.h: added mono_thread_get_abort_signal()
18779         to get a suitable signal for thread abort.
18780
18781 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
18782
18783         * metadata.c: fix handling of ExportedType table.
18784
18785 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18786
18787         * icall.c: added WriteWindowsDebugString internal call.
18788
18789 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18790
18791         * reflection.h: added fields to match C# implementation.
18792
18793 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18794
18795         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
18796
18797 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
18798
18799         * gc.h, gc-internal.h: Rename header for GC internal calls to
18800         gc-internal.h from gc.h as to not clash with Boehm GC having its
18801         header installed as <gc.h> in outside include paths.
18802         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
18803         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
18804
18805 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18806
18807         * icall.c: assign minor, build and revision in FillName.
18808
18809 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
18810
18811         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
18812         Added support for running code generated by Reflection.Emit.
18813
18814 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18815
18816         * appdomain.c: check for NULL argument in LoadFrom.
18817
18818 2002-12-10  Dick Porter  <dick@ximian.com>
18819
18820         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
18821
18822 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18823
18824         * appdomain.c: fix buglet when building exe file name.  Handle full
18825         assembly name (needed after latest changes to AssemblyName).
18826         * image.c:
18827         (mono_image_close): free some hashtables.
18828
18829 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
18830
18831         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
18832         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
18833         on some systems (redhat 7.3) 
18834
18835 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
18836
18837         * threads.c: delete the critical section of a sync block,
18838         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
18839
18840 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
18841
18842         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
18843
18844 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18845
18846         * appdomain.[ch]: handle the assembly preload event to try loading the
18847         assemblies using the paths we have in the current domain.
18848
18849         * assembly.[ch]: created an assembly preload hook that is called to try
18850         loading the assembly by other means that the ones provided here.
18851
18852         * domain.c: initialize the domain search path.
18853
18854         From now on, assemblies (TODO: except corlib and System) are loaded
18855         according to these rules when using mono_assembly_load ():
18856
18857                 1. It tries to load the assembly from the ApplicationBase
18858                 of the current domain appending .dll and .exe (TODO: have to
18859                 try loading from name/name.dll and name/name.exe).
18860
18861                 2. It tries the search path specified in PrivateBinPath for the
18862                 current domain (if any).
18863
18864                 3. Previous behavior.
18865
18866 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
18867
18868         * icall.c: implemented GetInterfaceMap() related icall.
18869         * domain.c, loader.h: load MethodInfo in mono_defaults.
18870
18871 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
18872
18873         * gc.c: disable the finalizer thread for now, untill all the issues
18874         with it are resolved.
18875
18876 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18877
18878         * string-icalls.c: handle embedded nulls in string ctor when the
18879         length is specified.
18880
18881 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
18882
18883         * class.c: look for explicit interface implementation in parent
18884         classes, too.
18885
18886 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
18887
18888         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
18889
18890 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
18891
18892         * gc.c: protect handles with a critical section.
18893
18894 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18895
18896         * icall.c:
18897         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
18898         parameters. If no assembly specified, try getting the type from all
18899         the assemblies in the current domain, else, load the assembly and get
18900         the type from it.
18901
18902 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18903
18904         * marshal.c: applied patch from Aleksey Demakov that fixes
18905         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
18906
18907 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18908
18909         * icall.c: fixed get_location.
18910
18911 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
18912
18913         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
18914         declarations to make it work with older gcc. 
18915
18916         * loader.c (mono_get_method): set signature->pinvoke for native calls
18917
18918 2002-11-20  Dick Porter  <dick@ximian.com>
18919
18920         * threads.c (mono_thread_init): Set the main thread's handle
18921
18922 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
18923
18924         * gc.c: allow compilation without GC support. Changed to match the
18925         mono coding style.
18926
18927 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
18928
18929         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
18930
18931 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
18932
18933         * reflection.c: set a public key token on the core assemblies.
18934
18935 2002-11-18  Dick Porter  <dick@ximian.com>
18936
18937         * threads.c: Split out some thread initialisation so that other
18938         files can set the start callback function.
18939
18940         * gc.c: Run finalisers in a separate thread, to avoid stack
18941         overflow.  Fixes bug 31333.
18942
18943         * appdomain.c: Set up GC finalisation thread.
18944
18945         * reflection.c: 
18946         * object.c: 
18947         * domain.c: Use gc.h macros for GC_malloc
18948         
18949 2002-11-15  Dick Porter  <dick@ximian.com>
18950
18951         * threadpool.c: 
18952         * threads.c:
18953         * appdomain.c: Removed mono_runtime_init_with_attach(),
18954         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
18955         merging the extra parameter with the existing function.  Removed
18956         unneeded code in mono_thread_attach().
18957
18958 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
18959
18960         * image.c (mono_image_loaded_by_guid): a method to get loaded
18961         images by guid. 
18962         (load_metadata_ptrs): we store the guid as string.
18963
18964 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
18965
18966         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
18967
18968         * metadata.c (mono_guid_to_string): imported method form Zoltan
18969         Varga (slightly modified)
18970
18971         * assembly.c (mono_assembly_open): load precompiled code
18972
18973         * loader.h (MonoMethod): we store the method token for use in the
18974         aot compiler. 
18975
18976 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18977
18978         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
18979         the hook function called when an assembly is loaded.
18980         
18981         * domain.c: Modified file.
18982         (mono_domain_assembly_load): removed hash table insertion of assemblies.
18983
18984         Fixes bug #33196.
18985
18986 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
18987
18988         * reflection.c: Map PEFileKind to the value expected by the WinNT
18989         image loader. 
18990
18991 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18992
18993         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
18994         Read until the buffer is filled completely.
18995
18996 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18997
18998         * icall.c: implemented MonoType.InternalGetEvent ().
18999
19000 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19001
19002         * appdomain.c: implemented InitAppDomainSetup. Delayed
19003         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
19004         the entry_assembly.
19005
19006         * assembly.c: base_dir is now an absolute path ending with
19007         G_DIR_SEPARATOR.
19008
19009         * icall.c: modified get_location according to the above changes.
19010
19011         * object.c: init AppDomain.SetupInformation for the default domain after
19012         we have the entry assembly.
19013
19014         * domain.c: when unloading a domain, setup = NULL.
19015
19016 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
19017
19018         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
19019
19020 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
19021
19022         * object.h, object.c: introduced mono_object_get_virtual_method ()
19023         to lookup the method invoked on an object when a callvirt is done on
19024         a method.
19025         * icall.c: make MethodInfo::Invoke() always do a virtual call.
19026
19027 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19028
19029         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
19030         current domain when loaded an assembly and failed to load it.
19031
19032         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
19033
19034 2002-10-31  Dick Porter  <dick@ximian.com>
19035
19036         * icall.c: 
19037         * file-io.h: 
19038         * file-io.c: Return the error status in a parameter, as the
19039         GetLastError() value has long since been blown away if we try and
19040         look it up in a subsequent internal call invocation.  Delete the
19041         GetLastError() internal call, because it's useless.
19042
19043 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
19044
19045         * class.[ch]: added cast_class to fix bug 29517
19046
19047 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
19048
19049         * marshal.c: create valid IL code in the filter clause:
19050         the new JIT is less forgiving:-)
19051
19052 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19053
19054         * icall.c: removed get_property internal call.
19055
19056 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
19057
19058         * appdomain.h domain.c: Added an ID to appdomains.
19059         
19060         * threads.c threads.h icall.c: Implement icall
19061         Thread:GetDomainID(), and remove unused icall 
19062         CurrentThreadDomain_internal.
19063
19064 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19065
19066         * icall.c: Don't recurse through the base types in GetConstructor.
19067         Fixes bug #32063. 
19068
19069 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
19070
19071         * mempool.h, mempool.c: added mono_mempool_empty() and
19072         mono_mempool_stats().
19073
19074 2002-10-23  Dick Porter  <dick@ximian.com>
19075
19076         * file-io.c: 
19077         * file-io.h: 
19078         * icall.c: Added MonoIO.GetFileType internal call
19079
19080 2002-10-17  Dick Porter  <dick@ximian.com>
19081
19082         * appdomain.c (mono_runtime_cleanup): Don't signal the async
19083         delegate semaphore before waiting for all threads to finish,
19084         because new threads can also call async delegates.  Fixes bug
19085         32004.
19086
19087         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
19088         of 3 seconds, in case another async job is queued.  (This part is
19089         needed because the bug fix reintroduced the 3s exit lag.)  This
19090         makes the mono_runtime_shutdown flag superfluous.
19091
19092 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
19093
19094         * reflection.c: include ehader size in method section headers.
19095         Really check for suplicated modules entries.
19096
19097 2002-10-17  Martin Baulig  <martin@gnome.org>
19098
19099         * debug-mono-symfile.c: Added back support for locals.
19100
19101 2002-10-14  Martin Baulig  <martin@gnome.org>
19102
19103         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
19104         MONO_TYPE_VOID.
19105
19106 2002-10-14  Martin Baulig  <martin@gnome.org>
19107
19108         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
19109         mono_class_get() instead of looking in the class cache. 
19110
19111 2002-10-13  Martin Baulig  <martin@gnome.org>
19112
19113         * debug-mono-symfile.c: Set version number to 28, include the
19114         signature in method names.
19115
19116 2002-10-13  Martin Baulig  <martin@gnome.org>
19117
19118         * debug-mono-symfile.h: Set version number to 27.
19119
19120 2002-10-11  Martin Baulig  <martin@gnome.org>
19121
19122         * gc.c: Don't register/unregister NULL pointers as disappearing links.
19123
19124 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19125
19126         * metadata.c, metadata.h: added helper function to allocate signatures.
19127
19128 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19129
19130         * icall.c: added internal call to get the location of machine.config.
19131
19132 2002-10-08  Martin Baulig  <martin@gnome.org>
19133
19134         * debug-mono-symfile.c: Ignore classes with a pending init for the
19135         moment.
19136
19137 2002-10-03  Dick Porter  <dick@ximian.com>
19138
19139         * threads.c: Freebsd pthread_t is a pointer
19140
19141 2002-10-03  Dick Porter  <dick@ximian.com>
19142
19143         * socket-io.c: Implemented GetHostName_internal
19144
19145 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19146
19147         * mono-config.c:
19148         (mono_config_parse_file): don't leak the text.
19149
19150 2002-10-02  Martin Baulig  <martin@gnome.org>
19151
19152         * debug-mono-symfile.c: Added support for methods.
19153
19154 2002-10-01  Martin Baulig  <martin@gnome.org>
19155
19156         * debug-mono-symfile.c: Don't emit methods and line numbers for
19157         the dynamic symbol file, just write the type table.  We can easily
19158         have an external helper program which creates a symbol file for an
19159         IL file.        
19160
19161 2002-10-01  Dick Porter  <dick@ximian.com>
19162
19163         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
19164         Only add the handle to the cleanup array when we're about to
19165         launch the thread.  Bug 31425 deadlocked when the test was run on
19166         mono under w32.
19167
19168 2002-10-01  Martin Baulig  <martin@gnome.org>
19169
19170         * debug-mono-symfile.c: Added support for properties.
19171
19172 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
19173
19174         * reflection.c: unaligned store fix from Mark Crichton
19175         <crichton@gimp.org>.
19176
19177 2002-09-27  Martin Baulig  <martin@gnome.org>
19178
19179         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
19180         New interncall.
19181
19182 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
19183
19184         * assembly.h, assembly.c: use a sane API to hook into the assembly
19185         loading process instead of a useless special-purpouse hack
19186         (ngen needs a hook, too, for example).
19187
19188 2002-09-27  Dick Porter  <dick@ximian.com>
19189
19190         * threads.c (mono_thread_init): Call GetCurrentProcess() so
19191         io-layer can set up some process handle info.  Not needed on w32,
19192         but doesn't hurt either.
19193
19194         * process.c: Pass the program name in the second parameter to
19195         CreateProcess, so the path is searched.  Include the working
19196         directory. Implemented process name, process enumeration, and some
19197         process detail internal calls.
19198         
19199         * icall.c: Added internal calls for process lookup, and some
19200         process details
19201
19202 2002-09-26  Martin Baulig  <martin@gnome.org>
19203
19204         * assembly.c (mono_install_open_assembly_hook): New global
19205         function to install a function to be invoked each time a new
19206         assembly is loaded.
19207         (mono_assembly_open): Run this callback function if set.
19208
19209         * debug-mono-symfile.c: Put back line numbers for the dynamic
19210         symbol file and also record the .il file as source file.  This
19211         allows us to install the temporary symbol file as `file.dbg' just
19212         like a compiler-generated one.
19213
19214 2002-09-26  Nick Zigarovich <nick@chemlab.org>
19215
19216         * Corrected typo in gc.c (BOHEM vs BOEHM).
19217
19218 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19219
19220         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
19221         GetProperties. Also avoid calling g_slist_length in GetProperties and
19222         GetMethods.
19223
19224 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
19225
19226         * reflection.c: avoid unaligned stores (bug spotted by
19227         Mark Crichton  <crichton@gimp.org>).
19228
19229 2002-09-25  Martin Baulig  <martin@gnome.org>
19230
19231         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
19232         instead of guint64 for addresses and added prologue/epilogue info.
19233
19234 2002-09-25  Martin Baulig  <martin@gnome.org>
19235
19236         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
19237         store line number info.  For the dynamic symbol file, we only need
19238         to provide the JIT generated dynamic line number info for the dynamic
19239         symbol file.
19240
19241 2002-09-25  Martin Baulig  <martin@gnome.org>
19242
19243         * debug-mono-symfile.h: Incremented version number.
19244
19245 2002-09-24  Martin Baulig  <martin@gnome.org>
19246
19247         * class.c (mono_debugger_class_init_func): New global function
19248         pointer variable.
19249         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
19250         call it.
19251
19252         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
19253         function.  This is called via the mono_debugger_class_init_func
19254         hook to add all types to the dynamic type table.
19255         (ves_icall_MonoDebugger_GetType): New interncall to get a class
19256         from its metadata token.
19257
19258         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
19259         New interncall for the debugger.
19260
19261 2002-09-24  Nick Drochak <ndrochak@gol.com>
19262
19263         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
19264         before using it in case it is null.
19265         
19266 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19267
19268         * metadata.c: allow custom modifiers in local var signatures
19269         (bug spotted by Zoltan Varga).
19270
19271 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
19272
19273         * class.c: deal with the <Module> class that may have a NULL vtable.
19274         Eliminate warnings.
19275
19276 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19277
19278         * image.c, image.h: more strong name helpers.
19279         * monosn.c: more work: convert pem keys to cryptoapi format.
19280
19281 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
19282
19283         * string-icalls.c: speedup IndexOf.
19284
19285 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19286
19287         * icall.c: updates from Zoltan.2.Varga@nokia.com.
19288
19289 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19290
19291         * icall.c: cleanup: use mono_object_domain ().
19292
19293 2002-09-23  Martin Baulig  <martin@gnome.org>
19294
19295         * debug-mono-symfile.c: Improved type support.
19296
19297 2002-09-22  Martin Baulig  <martin@gnome.org>
19298
19299         * debug-mono-symfile.c: Added support for reference types and strings.
19300
19301 2002-09-22  Martin Baulig  <martin@gnome.org>
19302
19303         * debug-mono-symfile.c: Started to work on the type table.
19304
19305 2002-09-21  Martin Baulig  <martin@gnome.org>
19306
19307         * debug-mono-symfile.c: Largely reworked the symbol table format.
19308         The symbol table is now incrementally updated each time a new
19309         method is added.  We're now also using our own magic and version
19310         so that you don't need to recompile all your classes if the
19311         dynamic table changes.
19312         (mono_debug_update_mono_symbol_file): Removed.
19313         (mono_debug_symfile_add_method): New function to add a method.
19314
19315 2002-09-21  Martin Baulig  <martin@gnome.org>
19316
19317         * icall.c
19318         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
19319         New interncall.
19320
19321         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
19322         New interncall to get a method from its metadata token.
19323
19324 2002-09-21  Martin Baulig  <martin@gnome.org>
19325
19326         * debug-mono-symfile.c: Create type table.
19327
19328 2002-09-20  Martin Baulig  <martin@gnome.org>
19329
19330         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
19331
19332 2002-09-20  Martin Baulig  <martin@gnome.org>
19333
19334         * debug-mono-symfile.c: Provide information about params and locals.
19335
19336 2002-09-20  Martin Baulig  <martin@gnome.org>
19337
19338         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
19339         New interncall.
19340
19341         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
19342         interncall to get a method from its metadata token.
19343
19344 2002-09-20  Martin Baulig  <martin@gnome.org>
19345
19346         * debug-mono-symfile.c: Added a few checks for method->header
19347         being non-NULL.  This should never happen, but for the moment
19348         let's use a g_warning() rather than a g_assert().
19349
19350 2002-09-19  Mark Crichton  <crichton@gimp.org>
19351
19352         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
19353         even if support for it isn't present.  Added an #ifdef to fix this.
19354
19355         * socket-io.c: Added checks back for Solaris support.
19356
19357 2002-09-19  Martin Baulig  <martin@gnome.org>
19358
19359         * debug-mono-symfile.c (read_string, write_string): Reflect latest
19360         changes in the symbol file format.
19361
19362 2002-09-18  Martin Baulig  <martin@gnome.org>
19363
19364         * debug-mono-symfile.c: Set version number to 21.
19365
19366 2002-09-18  Dick Porter  <dick@ximian.com>
19367
19368         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
19369         on netbsd.  Fixes bug 30051.
19370
19371 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19372
19373         * reflection.c:
19374         (set_version_from_string): little fix.
19375
19376 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19377
19378         * monosn.c, Makefile.am: added strong name utility.
19379         * reflection.h, reflection.c: implemented delayed signing,
19380         locale, version and hash id assembly attributes.
19381
19382 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
19383
19384         * loader.c, metadata.c: load param attributes in signatures.
19385
19386 2002-09-16  Martin Baulig  <martin@gnome.org>
19387
19388         * debug-mono-symfile.c: Added string table with all method names.
19389
19390 2002-09-14  Martin Baulig  <martin@gnome.org>
19391
19392         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
19393         fast method lookup.
19394
19395 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
19396
19397         * reflection.c: record the public key token of referenced assemblies.
19398
19399 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19400
19401         * image.c, image.h: added functions to get the strong name and the
19402         public key of an assembly.
19403         * pedump.c: use them.
19404
19405 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
19406
19407         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
19408
19409 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
19410
19411         * marshal.c (mono_marshal_get_managed_wrapper): Added
19412         MONO_TYPE_BOOLEAN 
19413
19414 2002-09-11  Martin Baulig  <martin@gnome.org>
19415
19416         * gc.c: Call GC_unregister_disappearing_link() on all links when
19417         finalizing them, this is necessary to aviod a crash in boehm's
19418         finalize handler.
19419
19420 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19421
19422         * gc.c: handle GetTarget for finalized objects spotted and fixed by
19423         nick@chemlab.org.
19424
19425 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
19426
19427         * icall.c: implemented MonoType::Module.
19428         * reflection.c, reflection.h: mono_module_get_object () from
19429         Tomi Pakarinen <tomi.pakarinen@welho.com>.
19430
19431 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
19432
19433         * icall.c: ignore overridden methods in GetMethods ().
19434         Fix for FieldInfo::SetValue().
19435         * object.c: handle float/double in runtime invoke.
19436
19437 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
19438
19439         * object.c: allow a constructor to be called again on an object.
19440
19441 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19442
19443         * class.h, class.c: move field layout code to it's own function and
19444         export it. Get an interface id earlier. Move fields in MonoClass
19445         so they are more cache friendly and align the bitfields.
19446         * loader.c: temporary handle get_param_names() for a runtime method.
19447         * reflection.c, reflection.h: more code to handle runtime creation of
19448         types.
19449
19450 2002-09-09  Martin Baulig  <martin@gnome.org>
19451
19452         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
19453         signature with the pinvoke field being set for the actual call.
19454
19455 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19456
19457         * icall.c: removed some unused icalls. Start of map of glib charsets
19458         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
19459
19460 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
19461
19462         * debug-helpers.c: break infinite loop (found and fixed by
19463         Holger Arnold <harnold@gmx.de>).
19464
19465 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
19466
19467         * icall.c: target may be null in create_delegate.
19468
19469 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19470
19471         * marshal.c: handle a boolean return type.
19472
19473 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19474
19475         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
19476
19477 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
19478
19479         * gc.c: fix weakreferences.
19480
19481 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
19482
19483         * icall.c: added icall to get default codepage.
19484
19485 2002-09-03  Dick Porter  <dick@ximian.com>
19486
19487         * threads.h: 
19488         * threads.c: Use MonoThread instead of MonoObject where
19489         apropriate.
19490
19491         Store running thread objects in a hash table, so that we have all
19492         the info to hand when waiting for them to finish
19493         (means we don't need OpenThread() any more, so mingw builds should
19494         be fully functional again.)
19495
19496         * verify.c:
19497         * object.h: Added thread ID to MonoThread
19498
19499 2002-09-03  Martin Baulig  <martin@gnome.org>
19500
19501         * icall.c (System.Reflection.Assembly::get_location): New interncall.
19502
19503 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19504
19505         * icall.c: fixed leak in get_temp_path. Thanks lupus.
19506
19507 2002-09-03  Martin Baulig  <martin@gnome.org>
19508
19509         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
19510         argument to store the end address of the disassembled instruction.
19511
19512         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
19513         here from debug-symfile.h.
19514         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
19515         JIT into this struct.
19516         (MonoSymbolFile): Added `char *image_file' field.
19517         (MonoDebugGetMethodFunc): Removed.
19518         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
19519         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
19520         (mono_debug_find_method): New method.
19521
19522         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
19523         create a full symbol file.
19524         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
19525         and static symbol files.
19526         (mono_debug_find_method): The symbol file keeps an internal method hash,
19527         call this to get a MonoDebugMethodInfo from a MonoMethod.
19528
19529         * debug-symfile.[ch]: Removed.
19530
19531 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
19532
19533         * image.c (do_mono_image_open): Remove linker version check.
19534
19535 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
19536
19537         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
19538         wrappers for instance methods.
19539         
19540 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19541
19542         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
19543
19544 2002-08-28  Dick Porter  <dick@ximian.com>
19545
19546         * Makefile.am: Export HOST_CC for w32 builds
19547
19548 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19549
19550         * file-io.c process.c: MonoString are null terminated, no
19551         need for mono_string_to_utf16() anymore.
19552
19553 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19554
19555         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
19556
19557 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
19558
19559         * icall.c, reflection.h: speedup System.MonoType.
19560
19561 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
19562
19563         * reflection.c: allow null as the value of a string argument in
19564         custom attributes constructors.
19565
19566 2002-08-27  Martin Baulig  <martin@gnome.org>
19567
19568         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
19569         `trampoline_address' field.
19570
19571 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
19572
19573         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
19574         check (fixes bug #29486) 
19575
19576 2002-08-27  Martin Baulig  <martin@gnome.org>
19577
19578         * debug-mono-symfile.c: Changed the file format in a way that allows us
19579         open it read-only and to use a specially malloced area for all the
19580         dynamic data.  We can now also generate a symbol file on-the-fly if we're
19581         debugging IL code and there is no MCS generated symbol file for it.
19582
19583 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
19584
19585         * object.c: added a define for a good string and array
19586         creation speedup (not enabled by default because we need to deal with
19587         the synch stuff).
19588
19589 2002-08-26  Martin Baulig  <martin@gnome.org>
19590
19591         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
19592         function to create a dynamic symbol file.  This is used by the
19593         debugger to create a symbol file for IL code on-the-fly.
19594
19595 2002-08-26  Martin Baulig  <martin@gnome.org>
19596
19597         * loader.c (mono_lookup_pinvoke_call): Include the error message
19598         from g_module_error() in the error message.
19599
19600 2002-08-24  Martin Baulig  <martin@gnome.org>
19601
19602         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
19603         function to update the symbol file.  The symbol file is mmap()ed
19604         writable, but private.  This allows us to install the symbol file
19605         together with the assembly.
19606
19607 2002-08-24  Martin Baulig  <martin@gnome.org>
19608
19609         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
19610         but they can read the new symbol file format which mcs is now creating.
19611
19612         * debug-symfile.c (mono_debug_find_source_location): Moved to
19613         debug-mono-symfile.c; this is now operating on the new symbol file.
19614
19615 2002-08-23  Martin Baulig  <martin@gnome.org>
19616
19617         * debug-helpers.c (mono_method_desc_from_method): New function to get
19618         a MonoMethodDesc from a MonoMethod.
19619
19620 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
19621
19622         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
19623         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
19624
19625 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
19626
19627         * string-icalls.[ch]: make helper methods static.
19628
19629 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19630
19631         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
19632         types to it and to SetValueInternal.
19633
19634         * object.c: Moved handle_enum label to its proper place. This was the
19635         f... bug! ;-)
19636
19637         This time i compiled mcs and gtk-sharp and they both work.
19638
19639 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19640
19641         * icall.c: reverted partially my previous patch until 
19642         object.c:set_value handles enums correcly.
19643
19644 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19645
19646         * icall.c:
19647         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
19648         (ves_icall_System_Environment_get_MachineName): removed warning when
19649         compiling under cygwin.
19650
19651 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19652
19653         * object.c: fixed field_get_value() for reference types.
19654
19655 2002-08-22  Dick Porter  <dick@ximian.com>
19656
19657         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
19658         Don't free a buffer while it's still needed.  Patch from Jonathan
19659         Liger <Jonathan.liger@wanadoo.fr>
19660
19661 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
19662
19663         * icall.c (ves_icall_System_Environment_get_Platform): Add new
19664         internal call.
19665
19666 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
19667
19668         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
19669         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
19670
19671         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
19672         we call unmanaged code which throws exceptions.
19673
19674 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19675
19676         * appdomain.h: added per-domain entry_assembly.
19677         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
19678         arguments.
19679         * icall.c: Assembly::GetEntryAssembly icall.
19680         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
19681         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
19682
19683 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19684
19685         * appdomain.h, gc.c: added mono_domain_finalize ().
19686
19687 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19688
19689         * object.c:
19690         (mono_print_unhandled_exception): changed g_warning by g_printerr
19691         because g_log has a 1024 characters limit (yeah, i got a big stack
19692         trace). Don't print exception name, that should be in ToString 
19693         returned string.
19694
19695 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19696
19697         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
19698         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
19699
19700 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19701
19702         * object.c:
19703         (mono_print_unhandled_exception): after previous commit, i realized
19704         that MS calls ToString on the exception. I changed this function to
19705         do that. This way we get stack_trace for free.
19706
19707 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19708
19709         * object.c:
19710         (mono_print_unhandled_exception): invoke Message property instead of
19711         getting 'message' field from Exception. Don't allocate memory for
19712         'trace' and 'message' if not needed.
19713
19714 2002-08-18  Dick Porter  <dick@ximian.com>
19715
19716         * unicode.c: Fix asserts to match Encoder.cs checks
19717
19718 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19719
19720         * marshal.c: fix unaligned store issue and a few wrong
19721         opcode argument types.
19722
19723 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19724
19725         * icall.c: added GetUninitializedObjectInternal internal call.
19726
19727 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
19728
19729         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
19730         to the right domain.
19731
19732 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
19733
19734         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
19735
19736         * class.c (class_compute_field_layout): set blittable to false for Strings
19737
19738         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
19739
19740 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19741
19742         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
19743         first chunk of code to create types at runtime. Code to
19744         handle ReflectedType/DeclaringType. Make reflection handles
19745         domain specific.
19746
19747 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
19748
19749         * class.c: set correct name in arrays.
19750
19751 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
19752
19753         * appdomain.c (mono_domain_transfer_object): make it work with
19754         valuetypes. bug fixes.
19755
19756 2002-08-12  Dick Porter  <dick@ximian.com>
19757
19758         * object.h: Rename some parameters to avoid c++ keywords (Patch
19759         from Joseph Wenninger <kde@jowenn.at>)
19760
19761 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
19762
19763         * icall.c: added icall to implement Assembly.GetFile*.
19764
19765 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19766
19767         * reflection.h, reflection.c: code to embed managed resources.
19768
19769 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
19770
19771         * class.c: move all the type size stuff into
19772         class_compute_field_layout().
19773
19774 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19775
19776         * class.c: ensure enums have always the correct instance size.
19777         * unicode.c: remove wrong assert.
19778
19779 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
19780
19781         * assembly.c: fix mem corruption issue.
19782         * image.h, image.c: added mono_image_get_resource () to access
19783         managed resources.
19784         * icall.c: implemented Assembly.EntryPoint property and some
19785         Managed Resources related internalcalls.
19786
19787
19788 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
19789
19790         * image.c, image.h: impemented mono_image_get_entry_point ().
19791         * appdomain.c: use mono_image_get_entry_point.
19792
19793 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19794
19795         * reflection.c: support the object type argument when loading
19796         custom attributes.
19797
19798 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
19799
19800         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
19801         String as return type.
19802
19803 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
19804
19805         * reflection.c: fix encoding of named args for custom attrs to match
19806         the ms implementation. Read them back when instantiating custom
19807         attributes.
19808
19809 2002-08-02  Radek Doulik  <rodo@ximian.com>
19810
19811         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
19812         by Dietmar as quick fix
19813         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
19814         16 as stack size, used on more places as quick fix before Dietmar
19815         will fix it properly
19816
19817 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19818
19819         * object.h, object.c: added accessors for fields and properties.
19820
19821 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19822
19823         * class.c, class.h: made mono_class_get_field_from_name ()
19824         loop on parent types.
19825         Added mono_class_get_property_from_name ().
19826
19827 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19828
19829         * class.c, class.h: move the code to setup the type vtable in its own
19830         function so that it can be reused also for types created at runtime.
19831         Eliminate the "class" identifier from the header file.
19832         * reflection.c: setup the vtable for enums so that we can create
19833         objects for use in SetConstant ().
19834
19835 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
19836
19837         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
19838         instead of the delegate itself as this pointer (bug #28383)
19839
19840 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
19841
19842         * marshal.c (mono_marshal_get_managed_wrapper): added return type
19843         conversions.
19844
19845 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19846
19847         * loader.c: don't set the pinvoke bit on icalls.
19848
19849 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
19850
19851         * debug-helpers.c (mono_method_full_name): only print a number to
19852         indicate wrapper type (so that the output is more readable in traces).
19853
19854 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
19855
19856         * class.c (mono_class_init): include method override patch from Paolo
19857
19858 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
19859
19860         * icall.c: fixed GetTypeCode().
19861
19862 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
19863
19864         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
19865         use real delegate invoke function to make it work with multicast
19866         delegates (fix bug# 28291).
19867
19868 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19869
19870         * object.c: load constant strings.
19871
19872 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19873
19874         * reflection.c: no magic numbers.
19875         * tabledefs.h: security action enum.
19876
19877 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19878
19879         * assembly.c: fix possible memory corruption.
19880
19881 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
19882
19883         * reflection.h, reflection.c: added support for linking resources.
19884         * verify.c: check we have an updated corlib.
19885
19886 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
19887
19888         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
19889         string arrays.
19890         (mono_marshal_string_array): null terminate unmanaged string arrays.
19891         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
19892
19893 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19894
19895         * icall.c: Type.GetType () can now return also types from the
19896         calling assembly.
19897
19898 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
19899
19900         * loader.h, loader.c: stack walking support.
19901         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
19902         GetCallingAssembly.
19903
19904 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
19905
19906         * marshal.c: added optimisations for blittable types 
19907
19908         * class.c (mono_array_class_get): do not set blittable attribute on arrays
19909         (mono_class_setup_mono_type): set blittable attribute for single
19910         and double.
19911
19912         * marshal.c (mono_string_utf8_to_builder): impl.
19913         (mono_string_builder_to_utf8): impl.
19914         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
19915
19916 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
19917
19918         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
19919         (mono_marshal_get_managed_wrapper): impl. byref types
19920
19921 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19922
19923         * icall.c:
19924         (search_method): don't display debug message. 
19925
19926 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
19927
19928         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
19929
19930 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
19931
19932         * appdomain.c: set the missing filename when throwing exception.
19933
19934 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
19935
19936         * metadata.c (mono_type_size): code cleanup
19937         (mono_type_stack_size): removed some test code
19938
19939 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
19940
19941         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
19942         mono_get_exception_file_not_found now.
19943
19944         * exception.c (mono_exception_from_name_two_strings): New version
19945         that will call a constructor with two string arguments. 
19946         (mono_get_exception_file_not_found): New helper routine, used to
19947         report file-not-found errors.
19948
19949 2002-07-20  Dick Porter  <dick@ximian.com>
19950
19951         * process.h:
19952         * process.c: Pass file handles to CreateProcess
19953         
19954         * icall.c:
19955         * file-io.h:
19956         * file-io.c: Implemented CreatePipe
19957
19958 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
19959
19960         * metadata.c (mono_get_param_info): set alignment for value types
19961
19962 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19963
19964         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
19965         Constify mono_domain_assembly_open().
19966         * loader.c: handle null namespace in icalls.
19967
19968 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
19969
19970         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
19971         (emit_str_to_ptr_conv): marshal object as structs
19972
19973         * metadata.c (mono_type_to_unmanaged): marshal object as structs
19974
19975         * marshal.c (mono_marshal_get_runtime_invoke): support value types
19976
19977 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
19978
19979         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
19980         (mono_marshal_get_native_wrapper): we an now return value types
19981
19982 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19983
19984         * verify.c: more checks implemented.
19985
19986 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
19987
19988         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
19989         (fix bug #27695)
19990         (mono_marshal_get_native_wrapper): allow byref arguments
19991         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
19992         impl. PtrToStringXXX methods
19993         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
19994         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
19995         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
19996         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
19997         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
19998
19999 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20000
20001         * reflection.c: fix buglet in parsing an assembly name.
20002
20003 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
20004
20005         * marshal.c (emit_ptr_to_str_conv): first impl.
20006
20007 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
20008
20009         * object.c, class.h: cache the vtable in the class as suggested by
20010         vargaz@freemail.hu (Zoltan Varga).
20011
20012 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20013
20014         * class.h, loader.c: added mono_field_from_token().
20015         * verify.c: first cut of type checking code.
20016
20017 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
20018
20019         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
20020
20021 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
20022
20023         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
20024         (fix bug #27782)
20025         (mono_marshal_get_remoting_invoke): impl.
20026         (mono_delegate_begin_invoke): impl.
20027         (mono_mb_emit_save_args): impl.
20028         (mono_delegate_end_invoke): impl.
20029         (mono_marshal_get_delegate_begin_invoke):
20030         (mono_marshal_get_delegate_end_invoke):
20031         (mono_marshal_get_delegate_invoke): generate a special name for
20032         those methods (including the signature) and associate them whith
20033         the delegate class. 
20034
20035 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
20036
20037         * reflection.[ch]: 
20038         (mono_reflection_type_from_name): now it has a MonoImage parameter
20039         which is used as the default image to search the type in. If the image
20040         is NULL or getting the type from it fails, it defaults to corlib.
20041
20042         * icall.c: changed 1 call to mono_reflection_type_from_name to match
20043         new parameter.
20044
20045 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20046
20047         * reflection.c: update the parameter table index.
20048
20049 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
20050
20051         * domain.c: don't include the mark byte in the string hash.
20052
20053 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
20054
20055         * icall.cs: icall for Type.GetTypeCode ().
20056         * verify: a couple of fixes and disabled local initialization checks.
20057
20058 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
20059
20060         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
20061
20062         * debug-helpers.c (mono_method_full_name): print the type of the
20063         runtime wrapper
20064
20065         * metadata.c (mono_signature_hash): a hash function for signatures
20066         (mono_signature_hash): better hash algorithm
20067
20068         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
20069
20070         * debug-helpers.c (mono_method_full_name): this can now generate
20071         method names with signatures
20072
20073         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
20074         method dont have this pointers.
20075
20076 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
20077
20078         * reflection.c: fixup typebuilder tokens.
20079         * image.c: fix buglet.
20080         * marshal.h: remove whitespace.
20081         * metadata.h, metadata.c: reinstate code that was removed.
20082         * verify.c: handle catch directives and fix another couple of bugs.
20083
20084 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
20085
20086         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
20087         (mono_marshal_get_native_wrapper): make it comp. with the old code
20088         (mono_marshal_get_native_wrapper): support boolean
20089         (mono_marshal_get_managed_wrapper): support more types
20090
20091 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
20092
20093         * class.c (class_compute_field_layout): compute class->blittable attribute.
20094
20095 2002-07-09  Dick Porter  <dick@ximian.com>
20096
20097         * threads.c: Make the thread cleaning up cope with threads that
20098         call ExitThread()
20099
20100 2002-07-08  Radek Doulik  <rodo@ximian.com>
20101
20102         * reflection.c (method_encode_code): use non-translated values to
20103         compute finally_start, this fixes exception handling on ppc, yay!
20104
20105         * decimal.h (struct signscale): fix endianess
20106
20107 2002-07-07  Radek Doulik  <rodo@ximian.com>
20108
20109         * reflection.c: swap box_val and not val
20110
20111 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
20112
20113         * reflection.c, reflection.h: handle full assembly info in type name.
20114         Handle Type arguments when loading custom attributes.
20115         * icall.c: updated to use new mono_reflection_type_from_name () method.
20116
20117 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20118
20119         * loader.c:
20120         (method_from_memberref): also print assembly name when method not found.
20121
20122 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20123
20124         * icall.c:
20125         (ves_icall_TypeGetProperties): fixed bug #27473. 
20126
20127 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20128
20129         * reflection.c: display image name and token when cannot find the
20130         .ctor for an attribute.
20131
20132 2002-07-05  Martin Baulig  <martin@gnome.org>
20133
20134         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
20135
20136 2002-07-04  Dick Porter  <dick@ximian.com>
20137
20138         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
20139         compile on mingw.  This will cause mingw builds to not wait for
20140         subthreads to terminate after the main thread does.  I've lodged a
20141         bug with the mingw developers for them to wrap OpenThread().
20142
20143 2002-07-03  Dick Porter  <dick@ximian.com>
20144
20145         * threads.c: Store thread IDs instead of handles, because
20146         GetCurrentThread() returns a pseudohandle and therefore stores
20147         useless values.  mono_thread_cleanup() continues checking the
20148         array of threads until it is empty, to cope with subthreads
20149         spawning new threads after the main thread has finished.
20150
20151         * profiler.h:
20152         * profiler.c:
20153         * profiler-private.h: Pass the thread ID to thread profiler
20154         functions, instead of a handle
20155
20156 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20157
20158         * verify.c: fixes to make it more usable.
20159         * pedump.c: added --verify code to verify IL code in an assembly.
20160
20161 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20162
20163         * reflection.c: turn errors into warnings to allow compiling corlib.
20164
20165 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
20166
20167         * reflection.c: add special cases to compile corlib.
20168
20169 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20170
20171         * reflection.c: handle properties with only a set method.
20172
20173 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20174
20175         * opcodes.h: add enum with opcodes in opval order.
20176
20177 2002-07-01  Dick Porter  <dick@ximian.com>
20178         
20179         * object.h:
20180         * object.c (mono_runtime_run_main): Removed unneeded argument
20181
20182 2002-06-28  Martin Baulig  <martin@gnome.org>
20183
20184         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
20185
20186 2002-06-27  Dick Porter  <dick@ximian.com>
20187
20188         * threads.c: Store the handle in both the parent thread and in the
20189         subthread, to minimise the time between starting a new thread and
20190         storing its ID.
20191
20192 2002-06-26  Dick Porter  <dick@ximian.com>
20193
20194         * appdomain.c (mono_runtime_cleanup): Close the socket library
20195         after all the threads have finished, not before
20196
20197 2002-06-26  Martin Baulig  <martin@gnome.org>
20198
20199         * debug-symfile.c (mono_debug_find_source_location): Added
20200         `guint32 *line_number' argument.  If it's not NULL, store the line number
20201         there and return the file name without the line number.
20202
20203 2002-06-25  Dick Porter  <dick@ximian.com>
20204
20205         * icall.c:
20206         * process.h:
20207         * process.c: Process forking and other support functions
20208
20209 2002-06-25  Dick Porter  <dick@ximian.com>
20210
20211         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
20212         things dont happen when the image is closed.
20213         (mono_image_lookup_resource): Walk the resource section looking
20214         for a particular entry
20215
20216         * cil-coff.h: PE resource section decoding
20217
20218 2002-06-25  Dick Porter  <dick@ximian.com>
20219         
20220         * assembly.h:
20221         * assembly.c: 
20222         (mono_assembly_foreach): Accessor functions to walk the list of
20223         loaded assemblies
20224         (mono_assembly_set_main):
20225         (mono_assembly_get_main): Process methods need to know which
20226         assembly is the "main" one
20227
20228         * object.c (mono_runtime_run_main): Record the main assembly
20229
20230         * debug-helpers.c: Fix typo
20231
20232 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
20233
20234         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
20235         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
20236
20237 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20238
20239         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
20240
20241 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
20242
20243         * image.c (do_mono_image_open): Initialize reference count,
20244         otherwise we leak the MonoImage.
20245
20246 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
20247
20248         * reflection.c: small tweak to handle self-hosting.
20249
20250 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
20251
20252         * reflection.c: fix type name parse code.
20253
20254 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20255
20256         * reflection.c: break out of the loop.
20257         * image.c: special case corlib.
20258
20259 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20260
20261         * reflection.c: add all the custom attrs at the end to ensure the
20262         ctors have been properly initialized when the attributes are defined
20263         in the current assembly.
20264
20265 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20266
20267         * reflection.c: handle correctly multiple-nested types.
20268
20269 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
20270
20271         * row-indexes.h: fix typos.
20272         * reflection.c: adjust for typos and fix method_def_or_ref
20273         encoding in MethodImpl table.
20274
20275 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20276
20277         * reflection.c: fix entry point patching (thanks Serge!).
20278
20279 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
20280
20281         * verify.c: add check for System.Exception
20282
20283 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
20284
20285         * image.c, class.c: minifix for code just c&p'ed.
20286         * reflection.c: warning fix.
20287         * object.h, loader.h, domain.c: load also StringBuilder.
20288
20289 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20290
20291         * marshal.h, marshal.c: some support code to handle complex marshaling.
20292
20293 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20294
20295         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
20296         Better signatures with vtable error dump.
20297
20298 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
20299
20300         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
20301
20302 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
20303
20304         * icall.c (ves_icall_Type_GetField): impl.
20305
20306 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20307
20308         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
20309         to retrieve a marshal description blob for a field or param.
20310
20311 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
20312
20313         * reflection.h, reflection.c: change order of nested type emission
20314         to avoid table corruption. The NestedTypes table is sorted.
20315         * icall.c: change order of GetConstructor results to workaround mcs bug.
20316
20317 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20318
20319         * reflection.h, reflection.c: handle field and param marshal
20320         information.
20321
20322 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20323
20324         * icall.c, marshal.c marshal.h: more Marshal class implementation.
20325
20326 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20327
20328         * reflection.c: fix call convention.
20329
20330 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20331
20332         * reflection.h, reflection.c: mono_image_get_memberref_token()
20333         takes a type instead of a class, now. Added
20334         mono_image_get_array_token() to create tokens for the special
20335         multi-dim array methods.
20336
20337 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20338
20339         * assembly.c: handle modules (no assembly table). Split
20340         loading references in its own function.
20341         * class.c: handle moduleref resolution scope.
20342         * image.c, image.h: cache module name in image.
20343
20344 2002-06-07  Martin Baulig  <martin@gnome.org>
20345
20346         * reflection.c (mono_image_get_type_info): Only add a class layout entry
20347         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
20348
20349 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20350
20351         * icall.c: more signature fixes that used uint instead of int.
20352
20353 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20354
20355         * reflection.c: fixed signature of field refs.
20356
20357 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20358
20359         * class.c, reflection.c: handle typerefs of nested types
20360         (both on read and when writing files).
20361
20362 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
20363
20364         * icall.c: fix method signatures that tried to workaround the previous
20365         typo, d'oh!
20366
20367 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
20368
20369         * debug-helpers.c: fix typo.
20370
20371 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
20372
20373         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
20374         rewrote the PE/COFF writing code (our programs are understood by the
20375         ms runtime, now).
20376
20377 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
20378
20379         * gc.c, gc.h, icall.c: weakreference support.
20380
20381 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20382
20383         * Makefile.am, mono-config.c: use $(sysconfdir).
20384
20385 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20386
20387         * icall.c: changed default precision of Double.ToString() to 15.
20388         Fixed memory leak. Unified with Single.ToString.
20389
20390 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
20391
20392         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
20393
20394 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
20395
20396         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
20397         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
20398         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
20399         and myself.
20400
20401 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20402
20403         * debug-symfile.c, sysmath.c: yet more compilation fixes.
20404
20405 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20406
20407         * reflection.c, socket-io.c: more compilation fixes.
20408
20409 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20410
20411         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
20412         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
20413         unicode.c: warning and compiler compatibility fixes.
20414
20415 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20416
20417         * class.h, metadata.c: fixed warnings/compilation errors.
20418
20419 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20420
20421         * Makefile.am, mono-config.c, mono-config.h: configuration file
20422         support routines.
20423         * loader.c, loader.h: make Dll mapping configurable at runtime in the
20424         config file. Export methods to insert and lookup mappings.
20425
20426 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
20427
20428         * reflection.c: handle types and boxed objects in custom attr
20429         constructors.
20430
20431 2002-05-30  Martin Baulig  <martin@gnome.org>
20432
20433         * debug-symfile.c
20434         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
20435
20436 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
20437
20438         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
20439         to lookup the implmap row for a P/Invoke method.
20440         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
20441         P/Invoke method from the runtime on an as needed basis.
20442
20443 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
20444
20445         * metadata.c (mono_metadata_parse_signature): impl.
20446
20447 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20448
20449         * class.c: handle .pack directive.
20450
20451 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
20452
20453         * object.c: initialize static fields with RVA data.
20454
20455 2002-05-25  Martin Baulig  <martin@gnome.org>
20456
20457         * debug-symfile.c
20458         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
20459
20460 2002-05-24  Martin Baulig  <martin@gnome.org>
20461
20462         * debug-symfile.c
20463         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
20464         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
20465         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
20466
20467 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
20468
20469         * object.c: special case string ctros in invoke.
20470         * gc.c: silly whitespace changes.
20471
20472 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
20473
20474         * threadpool.[ch]: impl. a threadpool that can
20475         be used by mint and mono.
20476
20477 2002-05-22  Martin Baulig  <martin@gnome.org>
20478
20479         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
20480         The first argument is now a `MonoReflectionModuleBuilder *', the return
20481         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
20482         `methods' field to get the method builder.  The `token' argument is the
20483         unfixed token.
20484
20485         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
20486         invalid characters instead of g_assert_not_reached()ing.  This seems
20487         to be the behaviour of mscorlib.
20488
20489 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
20490
20491         * object.c (mono_runtime_invoke_array): applied patch from Rachel
20492         Hestilow to fix bug #25104
20493
20494 2002-05-21  Martin Baulig  <martin@gnome.org>
20495
20496         * debug-symfile.c (mono_debug_find_source_location): New function.
20497         Looks up an IL offset in the line number table and returns the source
20498         location as a string.
20499
20500 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20501
20502         * icall.c:
20503         (mono_double_ToStringImpl): changed %f by %g until we have something
20504         better.
20505
20506 2002-05-21  Nick Drochak  <ndrochak@gol.com>
20507
20508         * icall.c : Use different name for Math.Pow's icall.  Needed to check
20509         parameters first in C#.
20510
20511 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20512
20513         * icall.c, reflection.h: added icall to get info about an event.
20514
20515 2002-05-20  Radek Doulik  <rodo@ximian.com>
20516
20517         * object.c (mono_value_box): don't use memcpy for boxing on BIG
20518         endian
20519         (mono_value_box): don't use memcpy for small sizes on
20520         architectures with unaligned access
20521
20522 2002-05-20  Martin Baulig  <martin@gnome.org>
20523
20524         * reflection.c (mono_reflection_setup_internal_class): Don't crash
20525         if `tb->parent == NULL'.
20526         (mono_reflection_create_internal_class): New function.  This is
20527         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
20528         for enum types.
20529
20530         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
20531         New interncall.
20532
20533 2002-05-19  Martin Baulig  <martin@gnome.org>
20534
20535         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
20536         argument to get the length, don't default to the array length.
20537
20538 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
20539
20540         * assembly.c (mono_assembly_setrootdir): New function used to
20541         override the MONO_ASSEMBLIES directory.
20542
20543 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20544
20545         * icall.c: ValueType_GetHashCode() initialize local var.
20546
20547 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20548
20549         * reflection.c: sort custom attributes table.
20550
20551 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20552
20553         * reflection.c: support named args in custom attributes (write support).
20554
20555 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
20556
20557         * reflection.c: fix finally position calculation.
20558
20559 2002-05-15  Radek Doulik  <rodo@ximian.com>
20560
20561         * reflection.c: fixed endianess at many places
20562
20563         * icall.c (ves_icall_InitializeArray): comment out debug msg
20564
20565 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
20566
20567         * object.c (mono_unhandled_exception): new function to handle
20568         unhandled exceptions.
20569         (mono_unhandled_exception): call the UnhandledException event.
20570         (mono_runtime_delegate_invoke): impl.
20571
20572 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
20573
20574         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
20575         returns the RVA, not the direct pointer to the data. Handle the case
20576         when the class size is fixed.
20577
20578 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
20579
20580         * reflection.c: fix some endianess issues.
20581
20582 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
20583
20584         * object.c (mono_runtime_invoke): is now able to catch exceptions.
20585
20586         * threads.c (mono_thread_init): added a callback which is invoked
20587         at thread start.
20588
20589 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
20590         
20591         * icall.c: make GetHashCode return non-negative values.
20592
20593 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
20594
20595         * object.c, icall.c, gc.c: revert to address-based hashcode.
20596
20597 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
20598
20599         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
20600
20601 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20602
20603         * icall.c, class.c: special case <Module>.
20604
20605 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
20606
20607         * icall.c: fix bug in GetNow().
20608
20609 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
20610
20611         * object.c (mono_runtime_class_init): make sure that we call all
20612         static class constructors.
20613
20614 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20615
20616         * reflection.c: sort methodsemantics table.
20617
20618 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
20619
20620         * reflection.h, reflection.c: honour init locals setting.
20621
20622 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
20623
20624         * icall.c: copied Double ToStringImpl for Single ToStringImpl
20625
20626 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
20627
20628         * reflection.c: support ContructorBuilders in attribute blob creation.
20629
20630 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20631
20632         * reflection.c: some changes to build a binary that can be run
20633         directly in windows.
20634
20635 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
20636
20637         * loader.c: print a big message when an icall can't be found.
20638
20639 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20640
20641         * string-icalls.c: fix bug 24248.
20642
20643 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
20644
20645         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
20646         icall.c, reflection.h: separate assembly loading by pathname and by
20647         assembly name. Use the MONO_PATH env var to search for assemblies.
20648
20649 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20650
20651         * assembly.c, image.h: add some support for assemblies
20652         with multiple modules.
20653         * class.c, class.h: export mono_class_from_typeref().
20654         * loader.c: remove duplicated code and use mono_class_from_typeref(),
20655         instead.
20656
20657 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20658
20659         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
20660         documentation says (the ECMA one is correct).
20661
20662 2002-05-02  Dick Porter  <dick@ximian.com>
20663
20664         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
20665         Don't name the synchronisation mutex.
20666
20667 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
20668
20669         * rand.c
20670         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
20671         Make the prototypes match.
20672         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
20673         Same.
20674
20675         * icall.c
20676         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
20677         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
20678         all systems have tm.tm_zone, so use strftime() with %Z to print
20679         the timezone abreviation into a temp string.
20680
20681         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
20682         rather than mono_array_addr() on a MonoString on Big Endian
20683         machines.
20684
20685 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
20686
20687         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
20688         fix bug 24041
20689
20690 2002-04-30  Dick Porter  <dick@ximian.com>
20691
20692         * socket-io.c: Cope with SOCKET being an integer rather than a
20693         pointer now.
20694
20695         * threads.c: Added Thread_free_internal, to deal with thread
20696         handle cleanup.  Moved calls to handle_store() and handle_remove()
20697         to start_wrapper(), so each can only be called once.  Allocate
20698         synchronisation blocks with GC_malloc(), and use GC finalisation
20699         to close the handles.
20700
20701         * icall.c: added System.Threading.Thread::Thread_free_internal
20702
20703 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20704
20705         * icall.c: support Environment.Exit, CommandLineArgs().
20706
20707 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20708
20709         * object.c, object.h: added mono_runtime_run_main () and
20710         mono_runtime_get_main_args () for use in System.Environment.
20711
20712 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20713
20714         * gc.c: fix thinko, enable actual finalization since the jit is now
20715         fixed.
20716
20717 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20718
20719         * gc.c, object.c: take into account that an object may be offset wrt the address
20720         returned by GC_malloc().
20721
20722 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
20723
20724         * image.c: handle files without entries in the assembly table (modules).
20725
20726 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
20727
20728         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
20729         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
20730         allowed to be null when it's System.Object class setup.
20731
20732 2002-04-27  Martin Baulig  <martin@gnome.org>
20733
20734         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
20735         if `tb->parent == NULL' rather than crashing.
20736
20737 2002-04-28  Nick Drochak  <ndrochak@gol.com>
20738
20739         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
20740         calling acos() where asin() should have been called.
20741
20742 2002-04-26  Martin Baulig  <martin@gnome.org>
20743
20744         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
20745         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
20746         there's a subdirectory called `System', but we don't want to read that
20747         subdirectory as an assembly.
20748
20749 2002-04-25  Martin Baulig  <martin@gnome.org>
20750
20751         * debug-symfile.c: Reflect latest MonoString changes.
20752
20753 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20754
20755         * rand.c, rand.h: instance method icalls need to have an explicit
20756         this pointer as first argument in the C implementation.
20757
20758 2002-04-25  Nick Drochak <ndrochak@gol.com>
20759
20760         * icall.c: Fix typo in map for GetNonZeroBytes
20761
20762 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20763
20764         * string-icalls.c : String does now passes unit tests without any 
20765         errors, the following changes has been made:
20766         
20767         Implemented replace methods.
20768         Renaming of methods to (try) follow the standard.
20769         Fixed compare ordinal
20770         Made all memory allocated directly to function instead of via icall function.
20771         Small performance fix in is_in_array function
20772                         
20773  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
20774
20775         c (mono_string_Internal_ctor_charp_int_int):
20776         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
20777         sindex < 0, throw ArgumentOutOfRangeException instead of
20778         ArgumentNullException.
20779
20780         Added new check for length == 0, however
20781         I need to make it return String.Empty from the C code.
20782         
20783         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
20784         that calculate the length for us here.
20785         
20786         (mono_string_Internal_ctor_sbytep_int_int): Replaced
20787         mono_string_new_utf16 with mono_string_new, since value is utf8.
20788
20789 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20790
20791         * object.c: register the object for finalization if needed.
20792         Allocate one more char in the string for the terminating 0 char.
20793
20794 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20795
20796         * class.c, class.h, image.c: check if a type implemenst a destructor.
20797         Use the proper key for array class lookups.
20798         * icall.c: register the icalls in the System.GC class.
20799         * gc.c, gc.h: GC-related functions and icalls.
20800
20801 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20802
20803         * icall.c:
20804         * socket-io.c:
20805         * unicode.c: free some strings gotten from mono_string_to_utf8 and
20806         changed a couple of free () by g_free ().
20807
20808         * decimal.c: one-liner in the comments for decimal2string ().
20809
20810 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20811
20812         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
20813
20814 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20815
20816         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
20817         * object.c (mono_runtime_invoke_array) : handle null in params
20818
20819 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20820
20821         * string-icalls.c: fixed bug in split (one off bug)
20822
20823 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20824
20825         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
20826         * icalls.c: added String::Equals as internal method
20827
20828 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20829
20830         * threads.c: fixed bug in the double interlocked functions
20831
20832 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
20833
20834         * threads.c: implemented all of the new interlocked icalls.
20835         * string-icalls.c: fix a bug in insert.
20836         * icalls.c: added the icalls for interlocked, removed old string functions.
20837         
20838 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
20839
20840         * loader.c: fix off-by-one error when reading argument names.
20841
20842 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20843
20844         * profiler.c: win32 counter implementation (untested).
20845         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
20846         (the latter needs testing and more complete impl. from win32 folks).
20847
20848 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
20849
20850         * object.c: mono_array_new_full workaround mono_array_class_get
20851         problem.
20852
20853 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20854
20855         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
20856         * object.h (mono_string_chars): Changed casting type.
20857
20858 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20859
20860         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
20861                            method signatures to use gunichar2 instead of gint16.
20862
20863 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
20864
20865         * object.h, object.c: domain-specific versions of mono_object_new and
20866         mono_array_new.
20867
20868 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
20869
20870         * object.c: changed String layout
20871
20872         * string-icalls.c (mono_string_Internal_ctor_chara): added
20873         internal string constructors.
20874
20875 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
20876
20877         * threads.c: pass 'this' to the thread start routine.
20878
20879 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20880
20881         * string-icalls.c: fix IndexOf and LastIndexOf. Now
20882         InternalCompareStr don't call twice mono_string_cmp_char for the last
20883         character. Improved performance in mono_string_cmp_char.
20884
20885 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
20886
20887         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
20888         code into its own library: libmonoruntime.
20889
20890 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
20891
20892         * object.h, object.c: changed array format so that szarrays do not
20893         require a bounds structure.
20894         * icall.c, appdomain.c: support for new szarray format.
20895
20896 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
20897
20898         * metadata.c: compare also the retuns type when comparing signatures:
20899         we didn't do this as an optimization since really overloaded methods
20900         must differ also in the arguments, but this doesn't work with
20901         low-level IL code (or when using explicit conversion operators: see
20902         bug#23498 for an example).
20903
20904 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20905
20906         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
20907
20908 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
20909
20910         * icall.c: make MonoType::GetElementType its own icall.
20911
20912 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20913
20914         * icall.c: remove MonoMethod_get_Name().
20915         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
20916         object.
20917
20918 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20919
20920         * string-icalls.c: optimized a few methods.
20921
20922 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20923
20924         * icall.c: added all new string internal calls
20925         * string-icalls.c: added, new string internal call implementation.
20926         * object.c: added mono_string_new_size for allocating a string a size
20927
20928 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
20929
20930         * object.c (mono_object_isinst): use the same code as in the
20931         optimized x86 version.
20932
20933 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20934
20935         * profiler.c: TSC-based timer code (faster and more accurate).
20936         Not hooked up in configure, yet (set USE_X86TSC to 1).
20937
20938 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
20939
20940         * profiler.c, profiler.h: track time spent compiling methods.
20941         * threads.c: track thread creation/destruction.
20942
20943 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
20944
20945         * profiler.c, profiler.h, profiler-private.h: profiling interface
20946         and sample implementation. Moved here so that it can be used also by
20947         the jit.
20948
20949 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
20950
20951         * reflection.c, reflection.h: keep types and other handles separate in
20952         the hash tables for referred tokens. Add guid for modules.
20953
20954 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
20955
20956         * assembly.c: fix bugs found with valgrind.
20957         * metadata.h, metadata.c: added mono_metadata_guid_heap().
20958
20959 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
20960
20961         * threads: added icall support for getting current domain for
20962                    the thread.
20963  
20964 2002-04-13  Martin Baulig  <martin@gnome.org>
20965
20966         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
20967         (MonoDebugVarInfo): Added `index' field for register based addresses.
20968         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
20969         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
20970         `MonoDebugVarInfo *params' and `guint32 this_offset' with
20971         `MonoDebugVarInfo *this_var'.
20972
20973         * debug-symfile.c (relocate_variable): New static function to write
20974         a location description for a local variable or method parameter.
20975
20976 2002-04-12  Martin Baulig  <martin@gnome.org>
20977
20978         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
20979         stack offset and begin/end scope address of a local variable.
20980         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
20981         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
20982         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
20983
20984         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
20985         Added new relocation types for start/end scope of a local variable.
20986
20987 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20988
20989         * object.h: add mono_object_domain() macro.
20990         * reflection.c: handle typespecs.
20991         * icall.c: MonoMethod::get_Name() implementation.
20992
20993 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20994
20995         * icall.c: String::GetHashCode() icall implementation.
20996
20997 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20998
20999         * icall.c: String::IndexOfAny icall.
21000         * object.c, object.h: make array->max_length more useful.
21001         Intrduced mono_object_class() and mono_string_length() macros.
21002
21003 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21004
21005         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
21006         instead of g_unichar_isdigit.
21007
21008 2002-04-11  Nick Drochak  <ndrochak@gol.com>
21009
21010         * icall.c: Implement a simple Double.ToString().
21011
21012 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
21013
21014         * appdomain.h: only io-layer.h is supposed to be included.
21015         * icall.c: explicitly import environ. Fix warning.
21016
21017 2002-04-10  Nick Drochak  <ndrochak@gol.com>
21018
21019         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
21020                 return true even if it's not Daylight Savings time.
21021                 Only return false for the case where the function isn't
21022                 implemented for a plaform (read Windows).
21023
21024 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
21025
21026         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
21027         data with a mutex.
21028
21029 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
21030
21031         * mempool.c (mono_mempool_alloc): only use g_malloc when
21032         absolutely necessary.
21033
21034 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
21035
21036         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
21037
21038         * class.c (mono_class_vtable): use domain mempool to allocate vtable
21039         (mono_class_proxy_vtable): use domain mempool
21040
21041 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
21042
21043         * appdomain.h, appdomain.c: split initialization that requires the
21044         execution engine support into mono_runtime_init().
21045
21046 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
21047
21048         * class.c (mono_class_init): don't include vtable inside MonoClass
21049         to save some memory, gather some statistics.
21050         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
21051
21052 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
21053
21054         * icall.c: internalcall implementation for ValueType.Equals().
21055
21056 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
21057
21058         * object.c (mono_message_init): moved 
21059         (mono_runtime_exec_main): new arch. independent impl.
21060         (mono_runtime_invoke_array): new method - like
21061         mono_runtime_invoke, but you can pass an array of objects.
21062         (mono_remoting_invoke): new arch. independent impl.
21063         (mono_message_invoke): new arch. independent impl.
21064         (mono_runtime_class_init): new arch. independent impl.
21065         (mono_runtime_object_init): new arch. independent impl.
21066
21067 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
21068
21069         * metadata.c, object.c, reflection.c: documented the exported
21070         functions.
21071
21072 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
21073
21074         * icall.c: simpler code to pass the assembly builder data to corlib.
21075         Implement GetNestedTypes() internalcall.
21076
21077 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
21078
21079         * class.c: warn if a type can't be loaded.
21080
21081 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
21082
21083         * image.h: typedef MonoImageOpenStatus
21084         * types.h: removed unused file
21085         
21086 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
21087
21088         * icall.c: Enum_ToObject accepts enum value arguments.
21089
21090 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
21091
21092         * class.c: move initialization of properties, events and nested
21093         classes, so that they happen for interfaces, too.
21094
21095 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
21096
21097         * icall.c: cleanup some ugly casts in Array_SetValue*.
21098
21099 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
21100
21101         * icall.c: the values array fro enums is of the correct type, now.
21102         Implement (correctly) getFullName instead of assQualifiedName for
21103         MonoType.
21104         * reflection.h, reflection.c: added mono_type_get_name ().
21105
21106 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
21107
21108         * assembly.c, image.h: for each MonoImage, record from wich assembly
21109         it was loaded.
21110         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
21111         Make Type.Assembly work.
21112
21113 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
21114
21115         * debug-symfile.h: use char* instead of gpointer to avoid
21116         unnecessary casts.
21117
21118         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
21119
21120         * icall.c (ves_icall_InternalExecute): impl. FielSetter
21121         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
21122
21123 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
21124
21125         * icall.c (mono_message_init): impl. (code cleanup)
21126         (ves_icall_InternalExecute): impl. FieldGetter
21127
21128         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
21129         defined we call all (non-static)methods through the vtable. 
21130
21131 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
21132
21133         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
21134         finalizer even though the memory is still referenced (and the chunk of
21135         memory is not freed).
21136
21137 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
21138
21139         * assembly.c: fix brokeness.
21140
21141 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
21142
21143         * class.c: kill some warnings. Check explicit interface method
21144         implementation also without considering the namespace.
21145         Load also literal strings in static class data.
21146
21147 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
21148
21149         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
21150         (default_assembly_name_resolver): Make the resolver take the
21151         "base" directory where the assembly was originally defined, so we
21152         can load DLLs that are in the same directory as the assembly that
21153         is being referenced.
21154
21155 2002-03-28  Dick Porter  <dick@ximian.com>
21156
21157         * file-io.h: 
21158         * file-io.c:
21159         * socket-io.c: 
21160         * unicode.h: 
21161         * unicode.c: Warning cleanups
21162
21163 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
21164
21165         * object.h, reflection.h: use the correct type instead of MonoObject.
21166
21167 2002-03-28  Martin Baulig  <martin@gnome.org>
21168
21169         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
21170         (mono_debug_update_symbol_file): Initialize classes if necessary.
21171
21172 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
21173
21174         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
21175         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
21176
21177 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
21178
21179         * assembly.h: fix function prototype.
21180         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
21181         * mono-endian.h: use const cast.
21182
21183 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
21184
21185         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
21186
21187 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
21188
21189         * loader.c: don't assert when a typeref can't be loaded, give
21190         a chance to the runtime to trow an exception instead.
21191         * loader.h: fix warning.
21192
21193 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
21194
21195         * class.c (mono_class_proxy_vtable): added proxy support
21196
21197 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
21198
21199         * icall.c: removed last of PAL calls, added System.Environment
21200         * file-io.h, file-io.c: MonoIO implementation
21201         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
21202
21203 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
21204
21205         * appdomain.c: do not use the byte marker in ldstr table lookup.
21206         * debug-helpers.c: allow two ':' to separate class and method name.
21207         * object.c: allocate arrays bounds with the GC, too.
21208         * verify: add a few more checks.
21209
21210 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
21211
21212         * reflection.c: output also literal strings. Allocate parameter data
21213         with GC_malloc() (thanks, Martin, for catching this!).
21214
21215 2002-03-26  Martin Baulig  <martin@gnome.org>
21216
21217         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
21218         include the `this' offset in the `param_offsets'.
21219
21220 2002-03-25  Martin Baulig  <martin@gnome.org>
21221
21222         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
21223         mono_debug_get_class() function to get the classes. Added new
21224         relocation types for arrays and strings.
21225         (mono_debug_get_class): New static function to search in all
21226         referenced assemblies for a metadata token.
21227
21228         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
21229
21230 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
21231
21232         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
21233         hold gc-allocated objects. Make the string heap a stream like the
21234         others. Removed duplicated code when writing stream info.
21235         Added asserts to catch possible buffer overflows. Set the sorted map
21236         for tables that need sorting. Added some documentation.
21237
21238 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
21239
21240         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
21241         for interned strings and vtables.
21242
21243 2002-03-24  Martin Baulig  <martin@gnome.org>
21244
21245         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
21246         it in the array since it was created with g_slist_prepend().
21247
21248 2002-03-24  Martin Baulig  <martin@gnome.org>
21249
21250         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
21251         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
21252         (mono_debug_method_from_token): Renamed to
21253         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
21254         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
21255
21256         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
21257         relocation types.
21258
21259         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
21260
21261 2002-03-24  Martin Baulig  <martin@gnome.org>
21262
21263         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
21264         (mono_debug_method_from_token): New func.
21265
21266         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
21267         New interncall, calls mono_debug_local_type_from_signature().
21268         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
21269         calls mono_debug_method_from_token().
21270
21271 2002-03-23  Martin Baulig  <martin@gnome.org>
21272
21273         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
21274         specifies the number of bytes to be converted, not the array size.
21275         Return the number of chars, not the number of bytes.
21276         (ves_icall_iconv_get_chars): The `byteCount' argument
21277         specifies the number of bytes to be converted, not the array size.
21278
21279 2002-03-23  Martin Baulig  <martin@gnome.org>
21280
21281         * reflection.h (MonoReflectionSigHelper): New type.
21282
21283         * reflection.c (mono_reflection_sighelper_get_signature_local),
21284         (mono_reflection_sighelper_get_signature_local): New functions.
21285
21286         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
21287         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
21288         interncalls.
21289
21290 2002-03-23  Martin Baulig  <martin@gnome.org>
21291
21292         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
21293         is_writeable is set.
21294         (mono_raw_buffer_update): New function to write the modified map
21295         back to disk.
21296
21297         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
21298
21299         * debug-symfile.c (mono_debug_update_symbol_file): Call
21300         mono_raw_buffer_update() when done writing.
21301
21302 2002-03-23  Martin Baulig  <martin@gnome.org>
21303
21304         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
21305
21306         * debug-symfile.c: Added support for arguments and local variables.
21307
21308 2002-03-23  Dick Porter  <dick@ximian.com>
21309
21310         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
21311         protected by ifdefs, hence breaking the w32 build.
21312
21313 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21314
21315         * object.c: implement is_interned() the right way.
21316
21317 2002-03-21  Martin Baulig  <martin@gnome.org>
21318
21319         * debug-symfile.[ch]: New files to handle debugging information
21320         files. There's also support to dynamically update these symbol
21321         files to include machine dependent information.
21322
21323 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
21324
21325         * threads.c (mono_thread_create): new function to create thread
21326         from C
21327
21328 2002-03-20  Martin Baulig  <martin@gnome.org>
21329
21330         * icall.c (ves_icall_InternalInvoke): Create a new object if the
21331         method is a constructor.
21332         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
21333         points to ves_icall_InternalInvoke().
21334
21335 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
21336
21337         * file-io.c: Flush shouldn't throw exceptions.
21338
21339 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
21340
21341         * file-io.c: FileStream flush support; FileSetLength now
21342         restores file pointer.
21343
21344 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
21345
21346         * class.c: set image for pointer classes.
21347
21348 2002/03/19  Nick Drochak <ndrochak@gol.com>
21349
21350         * sysmath.c: Forgot one.
21351
21352 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
21353
21354         * sysmath.c: Avoid redefining existing names.
21355
21356 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
21357
21358         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
21359         handled by runtime as icall rather than dllimport from libm.so
21360         * file-io.c, file-io.h: fixed handle argument type.
21361
21362 2002-03-18  Dick Porter  <dick@ximian.com>
21363
21364         * reflection.c (mono_image_get_type_info): rename interface to
21365         iface, because of "#define interface struct" on windows.
21366
21367 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
21368
21369         * class.c, class.h: rename and export mono_ptr_class_get().
21370         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
21371         * reflection.c, reflection.h, icall.c: better/saner type name
21372         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
21373         method signatures.
21374
21375 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
21376
21377         * class.c (mono_class_init): removed hardcoded GHC_SLOT
21378
21379         * icall.c (ves_icall_InternalInvoke): impl.
21380
21381 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21382
21383         * reflection.c: output the interface map table, too.
21384
21385 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
21386
21387         * class.c (class_compute_field_layout): separate computation of 
21388         static field layout
21389
21390 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
21391
21392         * icall.c: added System.Buffer support.
21393         * file-io.c: moved file icalls from PAL to FileStream.
21394
21395 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
21396
21397         * icall.c (ves_icall_System_Object_GetHashCode): impl.
21398
21399 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
21400
21401         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
21402
21403 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21404
21405         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
21406
21407 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
21408
21409         * debug-helpers.{c,h}: moved here from monograph some useful functions
21410         to locate a method by name/signature in a class or image. Included
21411         also a small and flexible IL disassembler.
21412
21413 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21414
21415         * reflection.c: fixup tokens in methods with small header size, too.
21416
21417 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
21418
21419         * object.c (mono_string_to_utf8): remove assert(!error), instead
21420         print a warning. 
21421
21422 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
21423
21424         * icall.c: update to the new mono_Array_class_get interface.
21425
21426 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
21427
21428         * appdomain.c, object.c: Boehm-GC enable.
21429         * icall.c: make get_data_chunk() support split data requests.
21430         Ensure a class is initialized in more cases. Return only the first
21431         property found in GetProperties() or the compiler gets confused. 
21432         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
21433         * reflection.h, reflection.c: add fixup mechanism for field and method
21434         tokens. Initialize assembly->typeref in a single place. Output
21435         properties after events. Support custom attributes for events, too.
21436         Typo fix for paramter custom attrs.
21437
21438 2002-03-07  Martin Baulig  <martin@gnome.org>
21439
21440         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
21441
21442 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
21443
21444         * class.c (mono_array_class_get): fix. for multi. dim. arrays
21445
21446 2002-03-06  Martin Baulig  <martin@gnome.org>
21447
21448         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
21449         non-zero lower bounds. See testcases #F10-#F13.
21450
21451 2002-03-05  Martin Baulig  <martin@gnome.org>
21452
21453         * exception.c (mono_get_exception_argument_out_of_range): New exception.
21454
21455         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
21456         ves_icall_System_Array_GetValue(), only calculate the absolute array position
21457         here.
21458         (ves_icall_System_Array_SetValue): Likewise.
21459         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
21460         as argument and does the actual work. This function is used when copying a
21461         multi-dimensional array.
21462         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
21463         now do all the widening conversions of value types.
21464         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
21465
21466 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21467
21468         * class.c: remove some magic numbers and use the smbolic names,
21469         instead. Added init_events() to load event info at class init time.
21470         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
21471         and mono_metadata_methods_from_event().
21472         * reflection.h, reflection.c: added support for writing out the evnets
21473         related information.
21474
21475 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
21476
21477         * reflection.h, icall.c: use a different method (GetInterfaces)
21478         to gather interface info and add isbyref, isprimitive and
21479         ispointer to the ves_icall_get_type_info() return value.
21480
21481 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
21482
21483         * class.h: stared adding support for events.
21484         * icall.c: split find_members implementation. Added debug icall to get
21485         the address of an object.
21486         * reflection.c: handle TypeBuilders in mono_type_get_object().
21487
21488 2002-03-01  Martin Baulig  <martin@gnome.org>
21489
21490         * icall.c (ves_icall_System_Array_GetLength): This must throw an
21491         ArgumentOutOfRangeException(), not an ArgumentException().
21492         (ves_icall_System_Array_GetLowerBound): Likewise.
21493         (ves_icall_System_Array_GetValue): Improved argument checking.
21494         (ves_icall_System_Array_SetValue): Improved argument checking.
21495
21496 2002-03-01  Martin Baulig  <martin@gnome.org>
21497
21498         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
21499         called with invalid arguments rather than just dying with g_assert().
21500         (ves_icall_System_Array_SetValue): Likewise.
21501         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
21502         raise a NotImplementedException instead.
21503         (ves_icall_System_Array_GetLength): Added argument checking.
21504         (ves_icall_System_Array_GetLowerBound): Added argument checking.
21505
21506 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
21507
21508         * object.h (mono_assert): new macros mono_assert and
21509         mono_assert_not_reached
21510
21511 2002-02-28  Martin Baulig  <martin@gnome.org>
21512
21513         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
21514         and "System::String::IsInterned" to "System::String::_IsInterned".
21515
21516 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
21517
21518         * icall.c: remove hacks for typebuilder. Added icall to create a
21519         modified type from a tybebuilder.
21520         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
21521         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
21522         to create a backing MonoClass for a TypeBuilder.
21523
21524 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21525
21526         * class.c, class.h: more refactoring of class init.
21527         Export mono_class_setup_mono_type() and mono_class_setup_parent().
21528
21529 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
21530
21531         * marshal.c, marshal.h: start of marshaling interface.
21532
21533 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
21534
21535         * icall.c: fix order in assembly qualified name icall.
21536
21537 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
21538
21539         * class.c: do not free str, since we store it in the hash table.
21540         * reflection.h: add label field to MonoILExceptionInfo.
21541         * reflection.c: handle references to more than one assembly. Handle
21542         case when there isn't a module created in the assembly.
21543
21544 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
21545
21546         * class.c: Fix typo. Start refactoring of class init code.
21547
21548 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
21549
21550         * appdomain.c: exit with 1 on error.
21551         * class.c: we already have the name in MonoClassField.
21552         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
21553         MonoStreamHeader instead of an offset of image->raw_metadata.
21554
21555 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
21556
21557         * appdomain.c (mono_init): Be even more descriptive about the error.
21558
21559 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
21560
21561         * appdomain.c: give the user an informative message when corlib can't
21562         be loaded.
21563
21564 2002-02-26  Martin Baulig  <martin@gnome.org>
21565
21566         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
21567         New icall to get the time zone data.
21568
21569 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21570
21571         * reflection.c: set virtual and raw size of section correctly.
21572         * threads.c: transfer domain information to newly created threads.
21573
21574 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
21575
21576         * class.c: when instancing a class in a domain, load the default
21577         vaules for static fields from the constant table. Fix System.Enum to
21578         not be an enum.
21579         * icall.c: implement Object::GetType() internalcall. Implemented
21580         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
21581         Fixed checking of binding flags in find_members().
21582         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
21583         * reflection.c: handle enumerations when writing to the constant
21584         table. Use a different object cache for types.
21585
21586
21587 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
21588
21589         * object.c (mono_object_isinst): fix for arrays
21590
21591         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
21592
21593 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
21594
21595         * object.c: don't use mprotect ()  and fix intern pool hash table
21596         lookup for big endian systems.
21597
21598 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21599
21600         * icall.c: change type_is_subtype_of () signature.
21601
21602 2002-02-21  Mark Crichton  <crichton@gimp.org>
21603
21604         * rand.c, rand.h: Added random number generator for
21605         System.Security.Cryptography classes.
21606
21607         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
21608
21609         * icall.c: Added System.Security.Cryptography calls.
21610
21611 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
21612
21613         * class.c, icall.c, metadata.c: better support for pointer types.
21614         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
21615         * reflection.c: Add support for getting custom attrs for properties
21616         and simplify some code.
21617
21618 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21619
21620         * icall.c: change getToken () and add custom attribute GetBlob()helper
21621         method.
21622         * reflection.h: add custom attrs array to the reflection builder structures.
21623         * reflection.c: encode and emit custom attributes for all the relevant
21624         reflection objects. Cache fieldref and methodref tokens. Change
21625         mono_image_create_token() interface to take a MonoDynamicAssembly.
21626         More complete custom attributes decoder. Load custom attributes for
21627         Assembly, Field, Method and Constructor objects, too. Make the
21628         returned array an Attribute[] one, not object[]. Added
21629         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
21630         custom attribute constructor.
21631
21632 2002-02-20  Dick Porter  <dick@ximian.com>
21633
21634         * icall.c:
21635         * rawbuffer.c:
21636         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
21637         problem code out for now).
21638
21639 2002-02-19  Radek Doulik  <rodo@ximian.com>
21640
21641         * object.c (mono_ldstr): use hash table to avoid multiple swapping
21642
21643 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
21644
21645         * icall.c: register the GetCustomAttributes method.
21646         * object.c, object.h: add mono_string_new_len ().
21647         * reflection.h, reflection.c: added mono_runtime_invoke(),
21648         mono_install_runtime_invoke(). Added
21649         mono_reflection_get_custom_attrs () to load custom attributes and
21650         create the attribute objects.
21651
21652 2002-02-19  Dick Porter  <dick@ximian.com>
21653         * threads-dummy-types.c:
21654         * threads-dummy-types.h:
21655         * threads-dummy.c:
21656         * threads-dummy.h:
21657         * threads-pthread-types.c:
21658         * threads-pthread-types.h:
21659         * threads-pthread.c:
21660         * threads-pthread.h:  Deleted obsolete files
21661
21662 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
21663
21664         * class.c (mono_class_vtable): runtime init the class when we
21665         allocate static class data.
21666
21667         * icall.c (ves_icall_System_Array_SetValue): check for null values.
21668
21669         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
21670         and String - but we will need generic marshalling support in the
21671         future. 
21672         (mono_init): set the domain name in a ms compatible way
21673
21674         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
21675         String[].
21676
21677 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
21678
21679         * object.c (mono_array_clone): use alloca() instead of g_malloc  
21680         for sizes
21681
21682         * appdomain.c (mono_domain_unload): impl.
21683
21684 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21685
21686         * appdomain.c, object.c: fix intern pool implementation.
21687         * class.c: fix alignment code.
21688
21689 2002-02-16  Radek Doulik  <rodo@ximian.com>
21690
21691         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
21692         and s2 > s1, just copy lower bytes to be compatible with little
21693         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
21694         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
21695
21696         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
21697         force big_endian to be 1 for big endian machines 
21698         (ves_icall_iconv_new_decoder): ditto
21699
21700 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
21701
21702         * socket-io.c (convert_sockopt_level_and_name): If the system
21703         doesn't define SOL_IP or SOL_TCP, get them by hand using
21704         getprotobyname() and caching the values (because this could be a
21705         slow operation).
21706         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
21707         Use the appropriate struct when the system does support it. Ie,
21708         not all systems have struct ip_mreqn so use struct ip_mreq when
21709         appropriate.
21710
21711 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
21712
21713         * reflection.c: handle finally clauses.
21714
21715 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
21716
21717         * socket-io.c: use g_snprintf() instead of snprintf.
21718
21719 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
21720
21721         * reflection.c (mono_param_get_objects): Cast second argument to
21722         mono_method_get_param_names to a const char** to silence the
21723         compiler warning.
21724
21725         * appdomain.c (mono_domain_assembly_open): Put parens around the
21726         truth statement in the for-loop.
21727
21728         * unicode.c (iconv_convert): Got rid of a compiler warning about
21729         int i being unused when the system has a new iconv.
21730         (iconv_get_length): Same.
21731
21732         * image.c (load_class_names): Cast the second argument to
21733         g_hash_table_insert() to char* to hush compiler warnings about the
21734         arg being a const.
21735         (mono_image_open): Same here.
21736
21737         * socket-io.c: Don't conditionally include sys/filio.h or
21738         sys/sockio.h here anymore since we now get them from
21739         io-layer/io-layer.h
21740         (inet_pton): If the system doesn't support inet_aton, implement
21741         using inet_addr and also #define INADDR_NONE if it isn't defined
21742         by the system.
21743
21744 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
21745
21746         * metadata.c, metadata.h: added function to get packing and size info
21747         of a typedef.
21748         * reflection.h, reflection.c: handle field RVA data. Save info about
21749         the table layout if needed. Assign typedef indexes to all the types
21750         before dumping the info about them to avoid forward reference problems.
21751
21752 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
21753
21754         * socket-io.c (convert_sockopt_level_and_name): ifdef
21755         SO_ACCEPTCONN because it is not defined on my system (old debian)
21756
21757 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21758
21759         * opcode.c: use stddef.h to get NULL.
21760
21761 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
21762
21763         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
21764         for FIONBIO, FIONREAD and SIOCATMARK.
21765         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
21766         define INADDR_NONE and besides, inet_addr() is deprecated and
21767         should not be used. Use inet_pton() instead - it also has the
21768         added bonus that it can easily handle IPv6 addresses as well.
21769         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
21770
21771 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
21772
21773         * decimal.c: remove _MSC_VER conditional.
21774
21775 2002-02-13  Dick Porter  <dick@ximian.com>
21776
21777         * socket-io.c: 
21778         * icall.c: Internal calls for Blocking, Select, Shutdown,
21779         GetSocketOption and SetSocketOption
21780
21781 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21782
21783         * assembly.cs: better resolver: use it instead of some kludgy
21784         code.
21785
21786 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
21787
21788         * reflection.c: the best way to speed-up the compiler is to avoid
21789         infinite loops.
21790
21791 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
21792
21793         * class.c (mono_class_vtable): changed the object layout
21794         (obj->vtable->class). 
21795         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
21796
21797 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21798
21799         * assembly.c: look for assemblies in the assembly dir, too.
21800
21801 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21802
21803         * class.c: fix thinko in mono_class_from_type().
21804
21805 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21806
21807         * exception.h, exception.c: added TypeLoadException.
21808         * object.h, object.c: added mono_array_clone ().
21809         * icall.c: handle throwOnError in AssemblyGetType().
21810         Added Array.Clone().
21811         * opcode.h, opcode.c: use a single value for the opcode val.
21812         Compile fix for non-gcc compilers.
21813
21814 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
21815
21816         * opcodes.c, opcodes.h: export interesting info about opcodes.
21817
21818 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
21819
21820         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
21821         icalls. 
21822
21823         * class.c (class_compute_field_layout): set element_class for enums
21824         (mono_class_create_from_typedef): set element_class for normal classes
21825
21826         * icall.c (ves_icall_System_Enum_get_value): impl.
21827
21828         * class.c (mono_class_create_from_typedef): do not set valuetype
21829         flag for System.ValueType and System.Enum
21830
21831 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
21832
21833         * unicode.c (iconv_convert): fix big endian problem.
21834
21835 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21836
21837         * class.c: add asserts if we are ever going to scribble over memory.
21838         * socket-io.c: not all systems have AF_IRDA defined.
21839
21840 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
21841
21842         * class.c (class_compute_field_layout): do not consider static
21843         fields to compute alignment
21844
21845 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
21846
21847         * appdomain.c (mono_appdomain_get): impl.
21848         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
21849
21850 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
21851
21852         * icall.c: ignore "file://" prefix when loading an assembly.
21853
21854 2002-01-23  Dick Porter  <dick@ximian.com>
21855
21856         * socket-io.c:
21857         * icall.c:
21858         * Makefile.am: Added socket support
21859
21860 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
21861
21862         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
21863         code back.  This should return the assemblies that are loaded by
21864         the runtime on behalf of an application domain. 
21865
21866         The current implementation is still broken, it just returns every
21867         assembly loaded, but until we get real applications domain this
21868         will do.
21869
21870 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
21871
21872         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
21873         AppDomain object.
21874
21875 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
21876
21877         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
21878         the mono_class_from_name lookup.
21879         (ves_icall_get_parameter_info): ditto.
21880         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
21881         method.
21882         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
21883
21884 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
21885
21886         * class.c: load also nested classes on class init.
21887         System.ValueType instance methods gets passed boxed
21888         values, unless methods in derived classed that get a pointer to the
21889         data.
21890         * icall.c: use better name parsing code in GetType().
21891         * image.c, image.h: add mono_image_loaded ().
21892         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
21893         * reflection.c, reflection.h: added mono_reflection_parse_type().
21894
21895 2002-01-22  Veronica De Santis <veron78@interfree.it>
21896
21897         * icall.c : Added mapping of internal calls for Manual and Auto reset events
21898         * threads.c : Added the implementation of internal calls for events
21899         * threads.h : Added prototypes of internal calls for events
21900         
21901 2002-01-21  Radek Doulik  <rodo@ximian.com>
21902
21903         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
21904
21905 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
21906
21907         * class.c (mono_class_init): set min_align to 1 (instead of 0)
21908         (mono_class_value_size): use min_align
21909
21910 2002-01-20  Dick Porter  <dick@ximian.com>
21911
21912         * threads.h:
21913         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
21914         so it compiles on w32.
21915
21916 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
21917
21918         * metadata.c (mono_type_stack_size): impl.
21919
21920         * class.c (mono_class_get_field): impl. memberref token
21921
21922 2002-01-16 Veronica De Santis <veron78@@interfree.it>
21923
21924         * icall.h : Added the internal calls mapping for CreateMutex_internal
21925                     and ReleaseMutex_internal.
21926         * threads.h : Added the prototype of mutexes internal calls.
21927         * threads.c : Added the implementations of mutexes internal calls.
21928
21929 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
21930
21931         * metaparse.h: removed unused file.
21932         * reflection.c, reflection.h: added stream_data_align () function 
21933         to align data in streams and keep stream aligned. Add support for
21934         exception support in method headers.
21935
21936 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
21937
21938         * unicode.c: make iconv_convert () return the number of bytess written
21939         in the output buffer.
21940
21941 2002-01-15  Dick Porter  <dick@ximian.com>
21942         * threads.c: Make the runtime's idea of infinite timeouts coincide
21943         with the class library's
21944
21945         Fix a particularly egregious bug in mono_thread_cleanup(). That
21946         code was so utterly bogus it must have been written on a Monday.
21947
21948 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
21949
21950         * reflection.h: add subtypes field to TypeBuilder.
21951         * reflection.c: encode constants for literal fields.
21952         Handle subtypes. Fix user string token (and add a zero byte)
21953         at the end.
21954         
21955 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
21956
21957         * class.c (mono_class_init): bug fix: assign slot numbers for
21958         abstract methods.
21959
21960 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21961
21962         * reflection.c: don't try to output a code RVA for abstract methods.
21963         Small fixes for method header format. Output parameter info to the
21964         ParamDef table. Save method overriding info to MethodImpl table.
21965         Fix property support. Allow typedef.extends to be a type in the
21966         building assembly.
21967         * verify.c: fix off-by-one error.
21968
21969 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
21970
21971         * class.c: fix mono_class_from_mono_type () for szarray types.
21972         Remove unused cache check in mono_class_from_type_spec().
21973         * icall.c: *type_from_name () functions handle simple arrays and byref.
21974         * reflection.c: handle byref and szarray types. Handle methods without
21975         body (gets P/Invoke compilation working). Handle types and fields in
21976         get_token ().
21977         * reflection.h: add rank to MonoTypeInfo.
21978
21979 2002-01-10  Dick Porter  <dick@ximian.com>
21980
21981         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
21982         internal calls
21983
21984 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
21985
21986         * icall.c: initialize class in type_from_handle ().
21987         Loop also in parent classes for get_method ().
21988         * reflection.c: properly encode class and valuetype types.
21989         Start on encoding TypeBuilder types. Handle fieldrefs.
21990         Use correct length when registering a user string.
21991         Handle ConstructorBuilder and MonoMethod in get_token ().
21992         Make mono_type_get_object () aware of cached types.
21993         * object.c: back out change to mono_string_new ().
21994
21995 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
21996         * object.c: mono_string_new should return a NULL when the string 
21997         passed in is NULL -- not try to deference it.
21998         
21999 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
22000
22001         * icall.c: hack to make IsSubType work for TypeBuilders.
22002         * reflection.c: emit constructors before methods.
22003         Retrieve param names in mono_param_get_objects().
22004
22005 2002/01/05  Nick Drochak  <ndrochak@gol.com>
22006
22007         * Makefile.am: fix list of headers and sources so automake 1.5
22008         doesn't complain. Removed \# at end of list.
22009
22010 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
22011
22012         * reflection.c: get token for a method ref. Set return type of
22013         constructor to void.
22014         * loader.c: debug message.
22015         * class.c: typo fix.
22016
22017 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
22018
22019         * icall.c: fix array init with rank > 1. FindMembers
22020         loops in parent class as well.
22021         * image.c: do not insert nested types in name cache.
22022         * reflection.c: warning fix.
22023         * reflection.h: add override method (for interface impl).
22024
22025 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
22026
22027         * metadata.c: fix customattr decoding.
22028
22029 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
22030
22031         * rawbuffer.cs: Added native Win32 implementation, avoids using
22032         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
22033
22034 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
22035
22036         * class.c: make the low-level routines handle the cache.
22037
22038 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
22039
22040         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
22041
22042 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
22043
22044         * class.c: fix mono_array_element_size() for objects.
22045         * class.h, class.c: add properties to MonoClass and load them
22046         at init time.
22047         * icall.c: check with isinst() when assigning a value to an array
22048         instead of requiring the classes to match exactly.
22049         Implemented icall for System.Type::GetType().
22050         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
22051         enums. Handle bindingflags when looking for methods and fields.
22052         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
22053         and mono_metadata_methods_from_property().
22054         * reflection.h, reflection.c: added structures for propreties,
22055         parameters and enums. Implemented mono_property_get_object() and
22056         mono_param_get_objects().
22057
22058 2001-12-18  Dick Porter  <dick@ximian.com>
22059
22060         * file-io.c: Use mono_string_to_utf16() instead of
22061         mono_string_chars()
22062
22063         * object.c: Added mono_string_to_utf16(), which copies the non
22064         NULL-terminated MonoString into a new double-null-terminated
22065         buffer.
22066
22067 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
22068
22069         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
22070
22071 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
22072
22073         * file-io.c: raise exceptions if handle is invalid.
22074
22075 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
22076
22077         * assembly.c: yet another check for mscorlib.
22078         * class.c, class.h: load nesting info for classes.
22079         * icall.c: many new functions to support the Reflection classes.
22080         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
22081         * reflection.h, reflection.c: mono_image_create_token(),
22082         mono_assembly_get_object(), mono_type_get_object(),
22083         mono_method_get_object(), mono_field_get_object(): methods to return
22084         objects that parallel the C representation of assemblies, types,
22085         methods, fields.
22086
22087 2001-12-11  Dick Porter  <dick@ximian.com>
22088
22089         * icall.c:
22090         * file-io.c: Internal calls for file IO.
22091
22092 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
22093
22094         * tabledefs.h: missing FileAttributes.
22095         * verify.h, verify.c: use is_valid_string () to simplify and check for
22096         valid strings more correctly. Fix warnings and speeling.
22097         Check more tables: Filed, File, ModuleRef, StandAloneSig.
22098         Check code: branches, maxstack, method calls.
22099
22100 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
22101
22102         * object.c (mono_object_allocate): removed static, so that the jit
22103         can allocate value types.
22104
22105         * icall.c (ves_icall_System_DateTime_GetNow): impl.
22106
22107 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
22108
22109         * class.c: init enum types right away and register the
22110         token->MonoClass map in mono_class_create_from_typedef ().
22111         * verify.h, verify.c: first cut of the verifier.
22112         * pedump.c: add --verify switch to verify metadata tables.
22113         * tabledefs.h: add some missing enums.
22114
22115 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
22116
22117         * class.c (mono_install_runtime_class_init): impl.
22118         (mono_class_init): renamed mono_class_metadata_init to
22119         mono_class_init, also removed the metadata_inited flag
22120
22121         * object.c (mono_object_isinst): use faster algorithm
22122
22123 2001-11-30  Radek Doulik  <rodo@ximian.com>
22124
22125         * mono-endian.h: reverted last change
22126         added function prototypes
22127
22128         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
22129         add mono-endian.c back
22130
22131         * mono-endian.c: returned back, as Paolo pointed out, it's needed
22132         for unaligned access, I've mistaked it with endianess. I am
22133         sorry.
22134         (mono_read16): fix reverted endianess
22135         (mono_read64): ditto
22136         (mono_read32): ditto
22137
22138 2001-11-30  Dick Porter  <dick@ximian.com>
22139
22140         * exception.c: Implement mono_exception_from_name()
22141
22142 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
22143
22144         * metadata.h, metadata.c: remove params_size and locals_size and their
22145         calculation from the metadata code: they are only usefult to the
22146         interp.
22147
22148 2001-11-29  Radek Doulik  <rodo@ximian.com>
22149
22150         * object.c (mono_ldstr): swap bytes here, it's probably not the
22151         best place, but works for me now, I'll redo it once I know mono
22152         better, also note that I add PROT_WRITE and don't reset back, also
22153         note that it's only affects big endians, so x86 should be OK
22154
22155         * mono-endian.h (read16): use just glib macros for both endians
22156
22157         * mono-endian.c: removed as glib macros are used in in
22158         mono-endian.h so we don't need to care about endianess for read
22159         macros as glib does that for us already
22160
22161 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
22162
22163         * class.h, class.h: take minimum alignment into consideration so
22164         that the fields of a class remain aligned also when in an array.
22165
22166 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
22167
22168         * loader.h, loader.c: add mono_method_get_param_names().
22169         * class.c: 0-init class fields.
22170
22171 2001-11-26  Dick Porter  <dick@ximian.com>
22172
22173         * icall.c:
22174         * threads-types.h:
22175         * threads.c: New file that handles System.Threading on all platforms
22176
22177         * object.c: 
22178         * object.h: Remove the synchronisation struct from MonoObject,
22179         replace it with a pointer that gets initialised on demand
22180
22181         * Makefile.am: Replace all the system-specific threading code with
22182         a single file that uses the new wrapper library
22183
22184 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
22185
22186         * class.c, class.h: add mono_install_trampoline() so that the runtime
22187         can register a function to create a trampoline: removes the ugly
22188         requirement that a runtime needed to export arch_create_jit_trampoline.
22189         * object.h, object.c: added mono_install_handler() so that the runtime
22190         can install an handler for exceptions generated in C code (with
22191         mono_raise_exception()). Added C struct for System.Delegate.
22192         * pedump.c: removed arch_create_jit_trampoline.
22193         * reflection.c: some cleanups to allow registering user strings and
22194         later getting a token for methodrefs and fieldrefs before the assembly
22195         is built.
22196         * row-indexes.h: updates and fixes from the new ECMA specs.
22197
22198 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
22199
22200         * class.h, class.c: add enum_basetype field to MonoClass.
22201         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
22202         to get index in the constant table reated to a field, param or
22203         property.
22204         * reflection.h, reflection.c: handle constructors. Set public-key and
22205         version number of the built assembly to 0.
22206         * row-indexes.h: update from new ECMA spec.
22207
22208 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
22209
22210         * class.h, class.c: add a max_interface_id to MonoClass.
22211         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
22212         since it's used to do that. Added mono_type_type_from_obj().
22213         Make GetType() return NULL instead of segfaulting if the type was not
22214         found. Handle simple arrays in assQualifiedName.
22215         * object.h: add a struct to represent an Exception.
22216         * reflection.c: output call convention in method signature.
22217         Add code to support P/Invoke methods and fixed offsets for fields.
22218
22219 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
22220
22221         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
22222         the value.
22223         * icall.c: use mono_array_addr instead of array->vector: fixes the
22224         reflection image writing.
22225         * reflection.c: init call convention byte to 0 in method signature.
22226         Encode the property signature. Don't output property-related methods
22227         twice. Really process the properties for a type (don't cast a field to
22228         a property, my mom always told me that).
22229         Fix 64 bit issues in pointer alignment in a different and more
22230         readable way.
22231
22232 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
22233
22234         * loader.h: Removed type class from MonoDefaults, added monotype
22235
22236         * loader.c: Loaded MonoType, removed loading of Type
22237
22238         * icall.c (my_mono_new_object): Now returns a System.MonoType,
22239         and fills in System.Type._impl with a RuntimeTypeHandle rather
22240         than the actual MonoClass *
22241
22242         (ves_icall_type_from_handle): change from type_class to
22243         monotype_class
22244
22245         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
22246         implemented
22247
22248         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
22249         implemented
22250
22251         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
22252
22253         (ves_icall_System_Reflection_Assembly_GetType): implemented
22254
22255         (ves_icall_System_MonoType_assQualifiedName): implemented
22256
22257         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
22258
22259 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
22260
22261         * assembly.c (mono_assembly_open): Implement a cache for the
22262         assemblies. 
22263
22264         (mono_assembly_close): only destroy the assembly when the last
22265         reference is gone.
22266         
22267 2001-11-09  Dick Porter  <dick@ximian.com>
22268
22269         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
22270
22271 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
22272
22273         * class.c (mono_class_metadata_init): bug fix: compute the right slot
22274
22275 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
22276
22277         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
22278         from Martin Weindel.
22279         * object.h: add mono_string_chars ().
22280
22281 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
22282
22283         * reflection.c (build_compressed_metadata): Eliminates warnings
22284         and uses 64-bit clean code.
22285
22286         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
22287         (mono_type_equal): Change signature to eliminate warnings.
22288
22289 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
22290
22291         * icall.c, loader.c: remove the internalcall array constructors.
22292         Changes to match the new MonoArray structure.
22293         * object.h, object.c: an array object doesn't allocate an extra
22294         vector. Add mono_array_new_full () to create jagged arrays easily.
22295
22296 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
22297
22298         * metadata.h, metadata.c: add mono_metadata_field_info () to
22299         retreive all the info about a field from vairous tables.
22300         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
22301         * class.h, class.c: augment MonoClassField with more info.
22302         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
22303         policy and load a field's RVA if needed.
22304
22305 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
22306
22307         * class.c (mono_class_metadata_init): create a trampoline for all
22308         virtual functions instead of actually compiling them.
22309
22310 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
22311
22312         * class.h, class.c: include name in MonoClassField.
22313         * class.c: fix fundamental type of System.Object and System.String.
22314         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
22315         tokens in ldtoken.
22316         * icall.c: remove internalcalls for the Reflection stuff that is now
22317         done in C# code.
22318         * loader.c: mono_field_from_memberref () implementation.
22319         * mono-endian.c: thinko (s/struct/union/g).
22320         * object.c, object.h: make the mono_string_* prototypes actually use
22321         MonoString instead of MonoObject.
22322         * reflection.c, reflection.h: updates for changes in the reflection
22323         code in corlib: we use C structures that map to the actual C# classes.
22324         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
22325         fat method header if needed and use the info from the ILGenerator for
22326         methods. Handle fields in types. Misc fixes.
22327
22328 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
22329
22330         * class.c (mono_class_metadata_init): bug fix: always allocate
22331         space for static class data
22332
22333 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
22334
22335         * class.c (mono_compute_relative_numbering): use relative
22336         numbering to support fast runtime type checks.
22337
22338 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
22339
22340         * class.c (mono_class_create_from_typeref): added debugging output
22341         to print class name when MonoDummy is returned instead of real class
22342
22343 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
22344
22345         * class.c (mono_class_metadata_init): interface offset table now
22346         contains pointers into the vtable - this is more efficient for the jit
22347
22348 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
22349
22350         * class.c (mono_class_metadata_init): use a temporary vtable (the
22351         old algorithm only worked for the interpreter, but not for the jit)
22352
22353 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
22354
22355         * loader.c (method_from_memberref): use mono_class_get to get the
22356         class of an array instead of using System.Array directly.
22357         (mono_get_method): also add MEMBERREF methods to the method cache
22358         which usefull for arrays.
22359
22360 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
22361
22362         * pedump.c (arch_compile_method): added to compute vtable entry
22363
22364         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
22365         number of interfaces.
22366         
22367         * class.h: merged MonoArrayClass into MonoClass
22368
22369         * class.c (mono_class_create_from_typedef): compute the vtable size and
22370         allocate space to include the vtable inside MonoClass
22371         (mono_class_metadata_init): initialize the vtable
22372
22373 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
22374
22375         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
22376         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
22377         * image.c: endian fixes by Laurent Rioux.
22378         * object.h, object.c: rename MonoStringObject to MonoString and
22379         MonoArrayObject to MonoArray. Change some function names to conform to
22380         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
22381         guint16* as first argument, so don't use char*.
22382         Provide macros to do the interesting things on arrays in a portable way.
22383         * threads-pthread.c: updates for the API changes and #include <sched.h>
22384         (required for sched_yield()).
22385         * icall.c: updates for the API changes above.
22386         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
22387         platforms that need them.
22388
22389 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
22390
22391         * class.c: set the correct type for all the fundamental
22392         type when loading the class.
22393
22394 2001-10-05  Dick Porter  <dick@ximian.com>
22395
22396         * threads-pthread.c (pthread_mutex_timedlock): Simple
22397         compatibility version for C libraries that lack this call.
22398
22399 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22400
22401         * class.c: MonoTypes stored in MonoClass are stored as
22402         fundamental MonoTypes when the class represents a
22403         fundamental type (System.Int32, ...).
22404         The TypeHandle return by ldtoken is a MonoType*.
22405         * icall.c: ves_icall_get_data_chunk () write out all the
22406         PE/COFF stuff. Implement ves_icall_define_method (),
22407         ves_icall_set_method_body (), ves_icall_type_from_handle ().
22408         * image.c: properly skip unknown streams.
22409         * loader.h, loader.c: add type_class to mono_defaults.
22410         * metadata.c, metadata.h: export compute_size () as
22411         mono_metadata_compute_size () with a better interface.
22412         Typo and C&P fixes.
22413         * pedump.c: don't try to print the entry point RVA if there is no entry point.
22414         * reflection.c, reflection.h: many cleanups, fixes, output method
22415         signatures and headers, typedef and typeref info, compress the metadata
22416         tables, output all the heap streams, cli header etc.
22417         * row-indexes.h: typo fixes.
22418
22419 2001-10-04  Dick Porter  <dick@ximian.com>
22420
22421         * object.h: Add a synchronisation mutex struct to MonoObject
22422
22423         * object.c (mono_new_object): Initialise the object
22424         synchronisation mutexes
22425
22426         * icall.c: System.Threading.Monitor internal calls
22427         
22428         * threads-pthread.h:
22429         * threads-pthread.c: System.Threading.Monitor internal calls
22430
22431         * threads-types.h: New file, includes the system-specific thread
22432         structures
22433         
22434         * threads-pthread-types.h:
22435         * threads-pthread-types.c: New files, handle pthread-specific
22436         synchronisation types
22437
22438         * threads-dummy-types.h: 
22439         * threads-dummy-types.c: New files of dummy support for
22440         thread-specific types
22441
22442         * metadata.c:
22443         * image.c:
22444         * pedump.c: include mono-endian.h not endian.h
22445         
22446         * Makefile.am: More threads files.
22447         Name mono-endian.h not endian.h
22448
22449 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
22450
22451         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
22452         stuff and implement a few more bits.
22453         * icall.c: a field needs to be dereferenced twice. Do not use the same
22454         name for two variables in the same scope.
22455         * image.c, image.h: cleanups.
22456
22457 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
22458
22459         * class.c (mono_class_metadata_init): bug fix: compute the right size
22460
22461 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
22462
22463         * icall.c: implemented some of the Reflection internalcalls.
22464         * image.c, image.h: start writing out the PE/COFF image.
22465         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
22466         that does the reverse than decode_blob_size ().
22467         * object.c: use mono_metadata_encode_value (). Move here
22468         temporary implementation of mono_string_to_utf8 ().
22469         * rawbuffer.c: make malloc_map static.
22470
22471 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22472
22473         * metadata.c: fix type comparison for arrays.
22474         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
22475         Added a couple of new classes to monodefaults.
22476         * icall.c: added a couple of Reflection-related internalcalls.
22477         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
22478         Added a byval_arg MonoType to MonoClass.
22479
22480 2001-09-28  Dick Porter  <dick@ximian.com>
22481
22482         * icall.c:
22483         * threads-pthread.h: 
22484         * threads-pthread.c: Implemented internal calls for
22485         LocalDataStoreSlot operations.  Applied mutexes around all shared
22486         data.  Reworked the thread creation and Start() operations to
22487         avoid a race condition.
22488         
22489         * threads-dummy.h:
22490         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
22491
22492 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
22493
22494         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
22495
22496 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
22497
22498         * class.c, loader.c: warn and return NULL instead of erroring out.
22499         * icall.c: added System.AppDomain::getCurDomain().
22500         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
22501
22502 2001-09-25  Dick Porter  <dick@ximian.com>
22503
22504         * threads-pthread.h:
22505         * threads-pthread.c: Implemented timed thread joining and added
22506         System.Threading.Thread::Join_internal internal call
22507
22508         * icall.c: Added System.Threading.Thread::Join_internal internal call
22509
22510         * threads-dummy.h:
22511         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
22512
22513 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
22514
22515         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
22516         mono_string_intern () to implement the semantics of the ldstr opcode
22517         and the interning of System.Strings.
22518         * icall.c: provide hooks to make String::IsIntern and String::Intern
22519         internalcalls.
22520
22521 2001-09-23  Dick Porter  <dick@ximian.com>
22522
22523         * threads-dummy.c: 
22524         * threads-dummy.h: New files of dummy threading routines
22525
22526         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
22527         support code based on system specifics
22528
22529         Rename PTHREAD_LIBS to THREAD_LIBS
22530         
22531 2001-09-23  Dick Porter  <dick@ximian.com>
22532
22533         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
22534         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
22535         internal calls.
22536         (mono_thread_init): Set up a Thread object instance to return when
22537         the main thread calls Thread.CurrentThread
22538         (mono_thread_cleanup): Wait for all subthreads to exit
22539
22540         * icall.c: New internal calls for System.Threading.Thread::Sleep
22541         (including Schedule) and CurrentThread
22542
22543         * threads.h: New file, to insulate thread-specific stuff from the
22544         rest of the code
22545
22546 2001-09-21  Dick Porter  <dick@ximian.com>
22547
22548         * threads-pthread.h: 
22549         * threads-pthread.c: New file, for handling pthreads-style
22550         threading support.  Start() now starts a new thread and executes
22551         the ThreadStart delegate instance.
22552
22553         * icall.c: Added the internalcall for
22554         System.Threading.Thread::Start_internal
22555
22556         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
22557
22558 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
22559
22560         * loader.c: work around the different signatures for delegates
22561         constructors csc generates in compiled code vs the ones compiled in mscorlib.
22562
22563 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
22564
22565         * class.h, class.c: add mono_class_get_field_from_name ().
22566         * *: Fix C comments and other ANSI C issues.
22567
22568 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
22569
22570         * endian.h, assembly.c: fix some endianness issues.
22571
22572 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
22573
22574         * loader.h, load.c: add delegate_class to mono_defaults.
22575         Handle runtime provided methods in mono_get_method ().
22576
22577 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
22578
22579         * loader.c (mono_get_method): use pinvoke for internal call
22580
22581         * icall.c: use pinvoke for internal call
22582
22583         * loader.c (method_from_memberref): set the method name
22584
22585 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
22586
22587         * metadata.c: help the compiler generate better code for
22588         mono_class_from_mono_type ().
22589
22590 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
22591
22592         * class.c (mono_class_metadata_init): delayed computing of the
22593         class size to mono_class_metadata_init ()
22594
22595 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
22596
22597         * class.c, class.h: add an interfaces member to MonoClass.
22598         * image.c, image.h: add assembly_name field to MonoImage
22599         from the assembly table.
22600         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
22601
22602 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
22603
22604         * class.c: Handle Array in mono_class_from_mono_type ().
22605         * metadata.c, pedump.c: some endian fixes.
22606
22607 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
22608
22609         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
22610         * metadata.c: fix small problem introduced with the latest commit.
22611
22612 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
22613
22614         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
22615         We don't need a MonoMetadata pointer anymore to compare signatures in
22616         mono_metadata_signature_equal (), update callers.
22617         Reduced memory usage an number of allocations for MonoMethodHeader and
22618         MonoMethodSignature.
22619
22620 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
22621
22622         * metadata.c: added compare for szarray.
22623
22624 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
22625
22626         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
22627         and add a couple more types to it and mono_defaults. Give an hint on
22628         classes that need implementing in our corlib and are referenced
22629         in mscorlib.
22630
22631 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
22632
22633         * class.h, class.c: keep track if a class is also an Enum.
22634         * loader.c: Implement a couple more types for use in libffi
22635         marshalling. Gives better diagnostics when failing to dlopen
22636         a library. Set method->klass for P/Invoke methods, too.
22637
22638 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
22639
22640         * class.c, class.h: add a MonoType this_arg to MonoClass that
22641         represents a pointer to an object of the class' type that
22642         can be used by the interpreter and later the type cache.
22643         Add best guess alignment info for valuetype objects.
22644
22645 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
22646
22647         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
22648         into MonoType: one less level of indirection and allocation and
22649         simplifies quite a bit of code. Added cache for MonoTypes that are
22650         used frequently, so that we don't need to allocate them all the time.
22651
22652 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
22653
22654         * class.c (mono_class_create_from_typedef): System.Enum is also a
22655         value type, although it does not derive from System.ValueType
22656         (maybe a bug in the ms compiler?)
22657
22658         * metadata.c (mono_type_size): return the right size for value types
22659
22660         * loader.c (mono_get_method): only initialize method header if not abstract
22661
22662         * class.c (mono_class_from_mono_type): use mono_default values. 
22663
22664 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
22665
22666         * *: use MonoClass pointers instead of <type_tokens>
22667         
22668         * class.h: new flag: metadata_inited.
22669
22670         * class.c (mono_class_metadata_init): impl.
22671         (mono_class_instance_size): impl.
22672         (mono_class_data_size): impl.
22673
22674 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22675
22676         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
22677         MonoClass now has the name and name_space fields. 
22678         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
22679         mono_get_method () takes and optional MonoClass as argument.
22680         Removed mono_typedef_from_name() and added mono_class_token_from_name()
22681         instead that takes advantage of a map from class names to typedef
22682         tokens in MonoImage.
22683
22684 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
22685
22686         * metadata.c: zero is not a valid alignment boundary.
22687         Merge MONO_TYPE_VOID in default decoding code.
22688
22689 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
22690
22691         * image.h: merged MonoMetadata into MonoImage
22692
22693         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
22694         identify the type of elements.
22695
22696 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
22697
22698         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
22699         * cil-coff.h: split MonoMSDOSHeader and add size info.
22700         * image.c: add some consistency checks.
22701         * metadata.c: fix row size computation: one programmer
22702         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
22703         add explanation for the locator routine.
22704         Fix decoding of size in method header.
22705         
22706 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
22707
22708         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
22709         (g_concat_dir_and_file): Bring g_concat_dir_and_file
22710         function from gnome-libs.  This uses the right path separator
22711         based on the OS, and also works around a bug in some systems where
22712         a double slash is not allowed. 
22713         (default_assembly_name_resolver): Use g_concat_dir_and_file
22714         (mono_assembly_open): ditto.
22715
22716 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
22717
22718         * metadata.c (mono_metadata_signature_equal): impl.
22719
22720         * *: void is now a realy MonoType (instead of using NULL)
22721         
22722         * metadata.c (do_mono_metadata_parse_type): use
22723         mono_metadata_parse_type to parse void value.
22724
22725 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
22726
22727         * metadata.c, metadata.h: in the signature and method header store
22728         only the space required for holding the loca vars and incoming arguments.
22729
22730 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
22731
22732         * metadata.c (do_mono_metadata_parse_type): treat void like any
22733         other type (instead of assigning NULL);
22734
22735 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
22736
22737         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
22738
22739 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
22740
22741         * image.c (do_mono_image_open): added a cache for arrays.
22742
22743 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
22744
22745         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
22746         decode a single column from a row in a metadata table and changes
22747         to take advantage of it in the typedef locator (gives a nice speed up).
22748         Store offset info for function params.
22749
22750 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
22751
22752         * image.h (MONO_IMAGE_IS_CORLIB): removed 
22753
22754 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
22755
22756         * assembly.c: how could mono_assembly_close () had ever worked?
22757         * metadata.c, metadata.h: provide offset info for local vars.
22758         Implement mono_type_size () to take care of alignment as well
22759         as size (it was mono_field_type_size in cli/class.c before).
22760
22761 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
22762
22763         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
22764
22765         * assembly.h (CORLIB_NAME): set to corlib.dll
22766
22767         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
22768
22769 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
22770
22771         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
22772         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
22773         tokentype.h: massive namespace cleanup.
22774
22775 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
22776
22777         * metadata.h, metadata.c: decode exception clauses when parsing method header.
22778
22779 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
22780
22781         * metadata.c (mono_metadata_free_type): added check for type !=
22782         NULL (void) before calling mono_metadata_free_type()
22783
22784 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
22785
22786         * metadata.h, row_indexes.h: added header with enumerations to use
22787         to index in the columns from tables in metadata and to decode coded
22788         tokens: we should start using this instead of embedding magic numbers
22789         all over the code.
22790
22791 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
22792
22793         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
22794         Move metadata_t info from cli_image_info_t to MonoImage, where
22795         it's easily accessible. Changed all the uses accordingly.
22796         Added the method and class caches to MonoImage.
22797         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
22798         and mono_metadata_decode_value () signature to be more consistent
22799         with the other parse functions (and simplify code). Taken advantage
22800         of zero-length array allocation with GCC. Removed reduntant (and
22801         wrong) MonoFieldType struct and use MonoParam instead. Changed
22802         mono_metadata_parse_field_type () to use common code for parsing.
22803         Added mono_metadata_typedef_from_field () and
22804         mono_metadata_typedef_from_method () to lookup a typedef index from a
22805         field or method token.
22806         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
22807
22808 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
22809
22810         * metadata.c (mono_metadata_parse_field_type): Implement. 
22811         (do_mono_metadata_parse_type): Split engine from
22812         mono_metadata_parse_type, so that we can create smaller structures
22813         for things that just have one pointer to the MonoType (look at
22814         the MonoFieldType)
22815
22816 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
22817
22818         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
22819         as Jan Gray found out, it is incorrect. 
22820
22821 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
22822
22823         * assembly.c: Implement asssembly loading.  This loads an image
22824         and loads all the referenced assemblies.  Come to think of it, we
22825         could always do lazy loading of the assemblies. 
22826
22827         * image.c (mono_image_open): Keep loaded images in a hashtable.
22828
22829         * image.h (MonoImage): Add reference count.
22830
22831 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
22832
22833         * assembly.c (mono_assembly_open): Keep track of the file name in
22834         case the assembly has no ASSEMBLY table.
22835
22836         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
22837         from get.c here.
22838
22839 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
22840
22841         * metadata.c, metadata.h: decode local vars in method header
22842         parse function. Change callers accordingly.
22843
22844 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
22845
22846         * metadata.h, cil-coff.h: protect against multiple inclusion.
22847         Added some new structures to hold information decoded from metadata:
22848         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
22849         and relevant decoding/free functions.
22850         * metadata.c: implement decoding functions. Add warning for out of bounds
22851         index in mono_metadata_locate(). Implement mono_get_method () to retreive
22852         all the info about a method signature and invocation. Remove check on
22853         uninitialized local var in parse_mh() and fix memory leak.
22854
22855 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
22856
22857         * metadata.h: More macros.
22858
22859         * tokentype.h: New file.
22860
22861 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
22862
22863         * assembly.c: added a consistency check and initialize
22864         some structures with g_new0().
22865         * metadata.c: fixed a couple more bugs in table size computation
22866         and add other checks for out-of bound access to metadata.
22867
22868 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
22869
22870         * metatada.c: fix bugs computing table sizes. Spew a
22871         warning when index in string heap is out of bounds.
22872
22873 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
22874
22875         * metadata.h: Add a couple of macros to manipulate tokens. 
22876
22877 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
22878
22879         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
22880         cli_section_tables).
22881
22882 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
22883
22884         * metadata.c (mono_metadata_user_string): New function, provides
22885         access to the UserString heap. 
22886
22887 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
22888
22889         * metadata.c: Add inline documentation.
22890
22891 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
22892
22893         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
22894         files. 
22895
22896 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
22897
22898         * typeattr.h: New file, TypeAttribute flags. 
22899
22900 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
22901
22902         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
22903         mono_assembly_ensure_section): Section loading code.
22904         (load_section_tables): Load the sections.
22905
22906         * mono/metadata/metadata.c (mono_metadata_locate_token,
22907         mono_metadata_locate): Functions to locate the information
22908         definition given a token or a table and an index.
22909         (mono_metadata_compute_table_bases): New.
22910         (compute_size): New function to compute the sizes of the various
22911         tables.
22912
22913         * mono/metadata/metadata.h: Finish listing the different index
22914         types. 
22915
22916         * mono/metadata/pedump.c: Improve to dump new information.
22917
22918 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
22919
22920         * mono/metadata/metadata.c: Entered all the tables matching
22921         Beta2. 
22922
22923         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
22924
22925
22926