* metadata.c (type_in_image) <MONO_TYPE_SZARRAY>: Handle arrays of
[mono.git] / mono / metadata / ChangeLog
1 2007-09-21  Raja R Harinath  <harinath@gmail.com>
2
3         * metadata.c (type_in_image) <MONO_TYPE_SZARRAY>: Handle arrays of
4         generic instantiations, etc.
5         <MONO_TYPE_ARRAY>: Likewise.
6
7 2007-09-21  Martin Baulig  <martin@ximian.com>
8
9         * mono-debug.h (MonoSymbolFilePriv, MonoDebugHandlePriv): Removed;
10         these structs were never defined.
11         (MonoDebugHandle): Removed the `_priv' field, it was never used.
12
13 2007-09-21  Martin Baulig  <martin@ximian.com>
14
15         * mono-debug.h (MonoDebugVarInfo): Add `MonoClass *klass'.
16
17 Fri Sep 21 14:39:45 CEST 2007 Paolo Molaro <lupus@ximian.com>
18
19         * image.c: removed the guid hash tables: we can get the same info
20         without the additional memory usage hit (partially fixes also bug #327052).
21
22 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
23
24         * profiler.h, profiler-private.h, profiler.c: add a new profiler
25         event to handle unloading methods. After the event is called, the
26         corresponding MonoMethod* must be considered invalid.
27         * loader.c (mono_free_method): call the new mono_profiler_method_free
28         event.
29
30 2007-09-20  Mark Probst  <mark.probst@gmail.com>
31
32         * domain-internals.h: New flag in MonoJitInfo which marks shared
33         generic methods.  New hash table (shared_generics_hash) in
34         MonoDomain to keep track of shared generic methods.  Prototypes
35         for functions to register and lookup shared generic methods.
36
37         * domain.c: Support for registering and looking up shared generic
38         methods via a hash table (shared_generics_hash) in MonoDomain.
39
40         * class-internals.h: New exception to signal failure of shared
41         compilation of a generic method.  New counters for generics
42         sharing in MonoStats.
43
44 Thu Sep 20 16:59:36 CEST 2007 Paolo Molaro <lupus@ximian.com>
45
46         * image.c, metadata-internals.h: don't keep a file descriptor open
47         for loaded assemblies (bug#325988).
48
49 2007-09-19  Raja R Harinath  <rharinath@novell.com>
50
51         * metadata.c (signature_in_image): New.  Carve out of type_in_image.
52         (ginst_in_image, gclass_in_image): Simplify.  Change signature to
53         use the corresponding datatypes.
54         (type_in_image): Update to changes.
55         (CleanForImageUserData): Simplify.
56         (steal_gclass_in_image): Carved out of old 'gclass_in_image'.
57         Avoid quadratic behaviour in handling the "stolen" list by
58         separating the filter predicate out, and by prepending the stolen
59         items rather than appending them.
60         (steal_ginst_in_image): Likewise.
61         (mono_metadata_clean_for_image): Update to changes.
62
63 2007-09-19  Martin Baulig  <martin@ximian.com>
64
65         * domain.c (mono_cleanup): Call mono_debug_cleanup() here.
66
67 2007-09-19  Martin Baulig  <martin@ximian.com>
68
69         * mono-debug.c (mono_debug_cleanup): Don't call
70         mono_debugger_cleanup(); this is now called earlier from mini_cleanup().
71
72 2007-09-19  Raja R Harinath  <harinath@gmail.com>
73
74         Fix crash on 'make run-test' in mcs/errors
75         * metadata.c (type_in_image): New.  Carve out of ginst_in_image.
76         Avoid more potential allocations in mono_class_from_mono_type.
77         (ginst_in_image): Update to changes.
78         (gclass_in_image): Rearrange slightly.
79
80 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
81
82         * class.c (mono_class_init): Move the code that sets up class->methods to 
83         mono_class_setup_methods () for inflated generic classes too. Ditto for properties.
84
85         * metadata.c (mono_metadata_get_inflated_signature): New function to return a
86         canonical instance of an inflated generic signature.
87         (mono_type_create_from_typespec): Remove an invalid free.
88
89         * loader.c (mono_method_get_signature_full): Use mono_metadata_get_inflated_signature.  
90
91 2007-09-18  Marek Habersack  <mhabersack@novell.com>
92
93         * domain-internals.h: added a declaration of the
94         mono_assembly_load_full_nosearch internal function.
95
96         * assembly.c (mono_assembly_load_with_partial_name): use
97         mono_try_assembly_resolve return value properly.
98         (mono_assembly_load_full_nosearch): copied the function body from
99         mono_assembly_load_full, without the code to invoke assembly
100         search hooks.
101         (mono_assembly_load_full): calls the above new function and if the
102         assembly is not resolved, invokes the search hooks.
103
104         * appdomain.c (mono_runtime_init): restore the global postload
105         assembly search handlers.
106
107 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
108
109         * class.c (mono_class_init): Make sure class->methods and class->properties
110         are never NULL in the generics case.
111
112         * metadata.c (free_generic_class): Enable this again, skip the dynamic case.
113
114 2007-09-17  Zoltan Varga  <vargaz@gmail.com>
115
116         * metadata.c (free_generic_class): Disable some code to fix the build.
117
118         * domain.c (mono_cleanup): Fix a crash introduced by a previous patch.
119
120         * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data
121         from the image mempool.
122
123         * metadata.c (free_generic_class): Free more data from the inflated class.
124
125         * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool.
126
127         * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
128         mempool.
129         (mono_type_create_from_typespec): Ditto.
130
131         * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
132         MonoImage to the caller.
133         (mono_init_internal): Save the opened image in a global variable.
134         (mono_cleanup): Close the image opened in get_runtimes_from_exe.
135
136         * reflection.c (resolve_object): Fix a leak.
137
138         * metadata.c: Fix the freeing of data in the generics caches.
139         
140         * metadata.c (free_generic_inst): Comment this out to fix the build.
141         (free_generic_class): Ditto.
142
143         * metadata.c: Free cached generic methods, instantinations and classes when
144         they are removed from the caches.
145         (mono_metadata_free_type): Free the type itself.
146
147         * class.c: Free the result of mono_class_inflate_generic_type () in a few
148         places.
149
150 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
151
152         * boehm-gc.c: restrict managed allocs to __thread supporting
153         architectures.
154
155 2007-09-16  Zoltan Varga  <vargaz@gmail.com>
156
157         * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
158         (mono_generic_class_get_class): Fix a leak.
159
160         * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
161         mono_metadata_free_type ().
162         (mono_metadata_inflate_generic_inst): Fix a leak.
163
164 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
165
166         * mono-debug.c (free_header_data): Fix a leak missed earlier.
167
168         * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
169         mempool.
170
171         * mono-debug.c (mono_debug_close_image): Fix call to 
172         g_hash_table_remove ().
173
174 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
175
176         * icall-def.h: redirect all the string ctor to the managed
177         CreateString () methods.
178         * string-icalls.c, string-icalls.h: removed dead code for string
179         ctors and icalls.
180
181 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
182
183         * mono-debug.c: Fix memory leaks.
184
185 2007-09-14  Jonathan Chambers <joncham@gmail.com>
186
187         * threads-types.h: Implement mono_hazard_pointer_set and 
188         mono_hazard_pointer_clear macros using do/while(0) to fix
189         compilation with MSVC.
190         
191         Code is contributed under MIT/X11 license.
192
193 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
194
195         * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
196         -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
197
198 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
199
200         * icall-def.h, string-icalls.c: get rid of old, no longer used, string
201         icalls.
202
203 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
204
205         * boehm-gc.c, gc-internal.h, object.c: allow strings to be
206         managed-code allocated as well.
207
208 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
209
210         * class.c (mono_class_is_assignable_from): Add support for generic variance.
211
212 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
213
214         * boehm-gc.c: fixed the build after the AOT changes.
215
216 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
217
218         * wrapper-types.h: Add an ALLOC wrapper type.
219
220         * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
221         reference managed allocator methods.
222
223 2007-09-12  Marek Safar  <marek.safar@gmail.com>
224
225         * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
226         of Type array and not MonoType, a fix suggested by Hari.
227         
228 2007-09-12  Jonathan Chambers <joncham@gmail.com>
229
230         * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
231         and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
232         
233         Code is contributed under MIT/X11 license.
234
235 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
236
237         * domain.c, object.c, mono-config.c, object-internals.h: Fixed  #82416.
238
239 2007-09-12  Marek Habersack  <mhabersack@novell.com>
240
241         * image.c (do_mono_image_open): if assembly file fails to open and
242         MONO_IOMAP is in effect, try to find the path in a
243         case-insensitive way.
244
245         * appdomain.c (mono_runtime_init): do not install postload hooks -
246         tests show that MS.NET doesn't use anything of that sort to
247         trigger the AppDomain.AssemblyResolve event.
248         (mono_try_assembly_resolve): renamed from try_assembly_resolve and
249         made non-static.
250         (mono_runtime_init): init portability helpers here.
251
252         * assembly.c (mono_assembly_load_with_partial_name): if other   
253         attempts fail, trigger the AppDomain.AssemblyResolve event handler
254         to resolve the assembly.
255
256         * domain-internals.h: added mono_try_assembly_resolve and marked
257         it as internal.
258
259 2007-09-11  Jb Evain  <jbevain@novell.com>
260
261         * object-internals.h (MonoReflectionDynamicMethod): add
262         a `MonoReflectionType *owner` field. The owner is used
263         * reflection.c:
264         (mono_reflection_create_dynamic_method): use the owner of the dynamic
265         method as the class declaring the dynamic method.
266         (reflection_methodbuilder_from_dynamic_method): copy the owner of the
267         dynamic method to the declaring type of the methodbuilder.
268
269 2007-09-11  Mark Probst  <mark.probst@gmail.com>
270
271         * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
272         rules for calling methods via reflection.
273
274 2007-09-11  Zoltan Varga  <vargaz@gmail.com>
275
276         * reflection.c (resolve_object): Add support for MonoGenericClass. 
277         Inflate MonoType's.
278
279 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
280
281         * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
282         provide a managed method that does fast allocations without needing
283         a managed->unmanaged transition. Boehm GC implementation currently
284         enabled for ptrfree objects on sane architectures.
285
286 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
287
288         * marshal.c, marshal.h: exported a couple of useful functions and
289         added mono_mb_get_label () to easily handle backward branches.
290
291 2007-09-10  Zoltan Varga  <vargaz@gmail.com>
292
293         * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
294
295 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
296
297         * loader.c (find_method): Fixed the regression introduced while
298         fixing bug #81466.
299
300 2007-09-09  Zoltan Varga  <vargaz@gmail.com>
301
302         * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
303         well.
304         
305         * class.c loader.c metadata.c object.c class-internals.h object-internals.h
306         icall.c reflection.c: Pass a MonoGenericContext argument to 
307         mono_lookup_dynamic_token ().
308
309         * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
310         #82744.
311         
312 2007-09-09  Robert Jordan  <robertj@gmx.net>
313
314         * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
315         for generic methods.
316
317         * object.c (mono_object_get_virtual_method): Handle generic methods.
318         Fixes bug #78882.
319
320         Code is contributed under MIT/X11 license.
321
322 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
323
324         * image.c: fix locking in mono_image_load_file_for_image ().
325
326 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
327
328         * reflection.c, icall.c, icall-def.h: the methodinfos name field is
329         used only as a cache: added an icall to fill it.
330
331 2007-09-16  Rodrigo Kumpera  <rkumpera@novell.com>
332
333         * reflection.h: exposed mono_reflection_free_type_info
334         * reflection.c (mono_reflection_get_type_internal): type_args is always freed
335         since mono_reflection_bind_generic_parameters makes a copy of it.
336         * reflection.c (free_type_info): subinfos should be freed.
337         * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and 
338         made non static.
339         * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
340         replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
341         this fixes #82695 and #81726.
342    
343
344 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
345
346         * process.h, process.c:  added support for user profile/info in
347           ProcessStartInfo. For now only Windows works.
348
349 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
350
351         * metadata.c: consider the generic arguments when comparing
352         signatures (bug #82614).
353
354 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
355
356         * cil-coff.h, image.c: updated assembly loader to cope with the
357         PE32+ 64 bit file format.
358
359 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
360
361         * assembly.c, class.c, domain.c, loader.c: remove useless
362         inclusion of cil-coff.h.
363
364 2007-08-29  Jonathan Chambers  <joncham@gmail.com>
365
366         * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
367         if interface is marked with CoClassAttribute. 
368    
369         Code is contributed under MIT/X11 license.
370
371 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
372
373         * sgen-gc.c: ensure no object from the to space is copied again or finalized
374         if it's seen twice in major collections.
375
376 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
377
378         * sgen-gc.c: big objects are not copied to the gray area, but they
379         need to be considered for scanning, too, if they are brought alive
380         by an object ready for finalizations or a survived one.
381
382 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
383
384         * sgen-gc.c: properly account the number of disappearing links when
385         they are nullified.
386
387 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
388
389         * sgen-gc.c: share the code to scan the registered roots between the
390         different types of collections.
391
392 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
393
394         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
395
396 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
397
398         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
399         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
400
401 2007-08-28  Mark Probst  <mark.probst@gmail.com>
402
403         * security-manager.c (mono_security_manager_get_methods):
404         LinkDemandSecurityException now has 2 arguments instead of 3.
405
406 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
407
408         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
409         platforms which need it.
410
411 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
412
413         * sgen-gc.c: unregister thread data structures with a pthread_key_t
414         dtor.
415
416 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
417
418         * threads.c: free the thread static data on thread exit.
419
420 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
421
422         * class.c: walk the hierarchy to find the generic definition for
423         a class (fixes runtime part of bug #82498).
424
425 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
426
427         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
428         ...
429
430         * image.c (mono_image_close): Here. Hopefully fixes #82510.
431
432 2007-08-24  Mark Probst  <mark.probst@gmail.com>
433
434         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
435
436 2007-08-24  Robert Jordan  <robertj@gmx.net>
437
438         * appdomain.c: don't perform the ':'->';' substitution on Win32.
439
440 2007-08-24  Jb Evain  <jbevain@novell.com>
441
442         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
443         for byref types.
444
445 2007-08-24  Mark Probst  <mark.probst@gmail.com>
446
447         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
448         #82286.
449
450 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
451
452         * assembly.c: Fix a warning.
453         
454 2007-08-23  Marek Habersack  <mhabersack@novell.com>
455
456         * appdomain.c: parse the <runtime> section looking for the probing
457         element with the 'privatePath' attribute, which sets additional
458         directories in which the runtime should look for assemblies.
459
460 2007-08-23  Robert Jordan  <robertj@gmx.net>
461
462         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
463         Fixes #82499.
464
465 2007-08-23  Martin Baulig  <martin@ximian.com>
466
467         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
468         _mono_debug_init_corlib() and remove it from the header file.
469
470 2007-08-23  Martin Baulig  <martin@ximian.com>
471
472         * mono-debug-debugger.c
473         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
474         don't notify the debugger about it.
475
476         * mono-debug-debugger.h
477         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
478
479 2007-08-23  Robert Jordan  <robertj@gmx.net>
480
481         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
482         Code is contributed under MIT/X11 license.
483
484 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
485
486         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
487
488 2007-08-22  Martin Baulig  <martin@ximian.com>
489
490         * mono-debug.c: Store debugging info on a per-domain basis and
491         free it on domain unload.  Add support for unloading symbol files.
492
493         * mono-debug.h
494         (MonoDebugList): New typedef.
495         (MonoSymbolTable):
496         - add `data_tables and `type_table'.
497         - replace 'symbol_files' and `num_symbol_files' with a
498           `MonoDebugList *'.
499         (mono_debug_data_table): Removed.
500         (mono_debug_list_add): New public function.
501         (mono_debug_list_remove): New public function.
502         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
503         (mono_debug_init_2_memory): Renamed into
504         mono_debug_open_image_from_memory().
505         (mono_debug_close_image): New public function.
506         (mono_debug_domain_create): Likewise.
507         (mono_debug_domain_unload): Likewise.
508         (MONO_DEBUGGER_VERSION): Bump to 60.
509
510         * mono-debug-debugger.h
511         (MonoDebuggerEvent):
512         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
513         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
514         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
515         - rename `THREAD_CREATED' and `THREAD_EXITED' into
516           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
517         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
518           meaning.
519         (mono_debugger_add_symbol_file): Removed.
520         (mono_debugger_add_type): Removed.
521         (mono_debugger_lookup_type): Removed.
522         (mono_debugger_lookup_assembly): Removed.
523
524         * domain.c
525         (mono_domain_create): Call mono_debug_domain_create().
526         (mono_init_internal): Call mono_debug_init_corlib().
527
528         * assembly.c
529         (mono_assembly_close): Call mono_debug_close_image().
530
531 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
532
533         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
534         mmap call.
535
536 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
537
538         * sgen-gc.c: ensure section->pin_queue_end is initialized
539         correctly when non pinning objects in the section have been found.
540
541 2007-08-22  Marek Habersack  <mhabersack@novell.com>
542
543         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
544         containing a list of directories separated by ':'. MSDN docs say
545         the directories should be separated with ';'. Part of a bugfix for
546         bug #81446
547
548 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
549
550         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
551         it should MonoType and not MonoClass.
552
553 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
554
555         * culture-info-table.h : regenerated.
556
557 2007-08-20  William Holmes  <billholmes54@gmail.com>
558
559         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
560          to call ReplaceFile Kernel32 on windows or in io-layer.
561         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
562         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
563          as an internal call.
564
565         Code is contributed under MIT/X11 license.
566
567 2007-08-20  Jb Evain  <jbevain@novell.com>
568
569         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
570         and MONO_EXCEPTION_FIELD_ACCESS.
571
572         * debug-helpers.[c|h]: new mono_field_full_name function.
573
574 2007-08-20  Mark Probst  <mark.probst@gmail.com>
575
576         * class.c: Removed class_security_level() and moved it to
577         security-core-clr.c.
578
579         * security-core-clr.c, security-core-clr.h: class_security_level()
580         is now public and renamed to mono_security_core_clr_class_level().
581         It also looks for security attributes in the classes a class is
582         nested in.
583
584 2007-08-20  Mark Probst  <mark.probst@gmail.com>
585
586         * security-core-clr.c, security-core-clr.h: CoreCLR security
587         utility functions.
588
589         * Makefile.am: Added security-core-clr.[ch].
590
591         * security-manager.c, security-manager.h: Functions and enum for
592         setting and getting the security mode.
593
594         * class.c: CoreCLR security checks.
595
596 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
597
598         * icall-def.h, process.c, process.h: implemented icall to get
599         user/system processor times.
600
601 2007-08-17  Mark Probst  <mark.probst@gmail.com>
602
603         * domain.c, threads.c, class-internals.h, domain-internals.h: New
604         reader-lock-free jit_info_table.
605
606 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
607
608         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
609
610         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
611
612         * object-internals.h (MonoException): Add missing _data member.
613
614 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
615
616         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
617         checking that only methods with matching qname or fqname are picked
618         from implemented interfaces.
619
620 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
621
622         * verify.c (do_newarr):added, do type verification of
623         newarr ops, push the right value on the eval stack.
624         * verify.c (mono_method_verify): use do_newarr
625
626
627 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
628
629         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
630         factored the common code into get_boxable_mono_type, which
631         is now using mono_type_get_full, this fixed byref related tests.
632
633 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
634
635         * class.c: added mono_type_get_full, this function has the same
636         behavior of mono_class_get_full but the returned MonoType has
637         all metadata of the associated token in case of a typespec token.
638         * class.c: added mono_type_retrieve_from_typespec, used by 
639         mono_type_get_full to retrieve the token type.
640         * class.c (mono_class_create_from_typespec): changed to use
641         mono_type_retrieve_from_typespec.
642         * class.c (mono_ldtoken): changed to use mono_type_get_full
643         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
644         * class-internals.h: exported mono_type_get_full for internal use.
645
646 2007-08-16  Jb Evain  <jbevain@novell.com>
647
648         * domain.c (supported_runtimes): add entry for
649         the 'moonlight' runtime version.
650
651 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
652
653         * verify.c (mono_method_verify): small typo sliped in.  
654
655 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
656
657         * verify.c (do_unbox_value): added, do type verification of
658         unboxing ops
659         * verify.c (mono_method_verify): use do_unbox_value
660
661
662 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
663
664         * verify.c (dump_stack_value): fixed typo, was printing string
665         instead of object on stack.
666         * verify.c (do_box_value): moved the byref check up as it leads
667         to invalid code and should be done earlier.
668         * verify.c: improved error messages for and ldobj
669
670 2007-08-15  William Holmes  <billholmes54@gmail.com>
671
672         * marshal.c (emit_marshal_custom): Omit the call to 
673           marshal_native_to_managed when calling native to managed 
674           and the argument is specified as an out argument.
675
676         Code is contributed under MIT/X11 license.
677
678 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
679
680         * verify.c: fixed the type checks for generics, function pointers and vectors.
681         Added type verification for ldobj and ldtoken. The verifier
682         would segfault if header or signature of a method contained references
683         to non-existant types.
684
685 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
686
687         * marshal.c (cominterop_get_ccw): Patch from
688         Bill Holmes to no walk up interface hierarchy. 
689         All parent methods should be present in the interface for COM.
690    
691         Code is contributed under MIT/X11 license.
692
693 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
694
695         * marshal.c (emit_marshal_com_interface): Patch from
696         Bill Holmes to handle COM Interfaces as return values
697         for native->managed calls.
698    
699         Code is contributed under MIT/X11 license.
700
701 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
702
703         * marshal.c (cominterop_get_idispatch_for_object): Implement
704         for runtime callable wrappers.
705    
706         Code is contributed under MIT/X11 license.
707
708 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
709
710         * pedump.c (main): changed from mono_init to mono_init_from_assembly
711         so 2.0 types are accessible
712
713
714 2007-08-13  Miguel de Icaza  <miguel@novell.com>
715
716         * domain.c (mono_init_internal): Call mono_assembly_load_friends
717         once we load mscorlib.   Due to the order in which we initialize,
718         the mono_assembly_load_full routine that loads mscorlib did not
719         load friends.   We now load it once we load the
720         mono_defaults.internals_visible_class class. 
721
722         * assembly.c: Expose the mono_load_friend_assemblies method.
723
724 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
725
726         * verify.c: improved the handling of boxing, better
727         type checking for unary ops and conversion. Fix bug
728         regarding managed pointer compatibility checking
729
730 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
731
732         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
733
734         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
735
736 2007-08-09  Raja R Harinath  <rharinath@novell.com>
737
738         * reflection.c (dup_type): Remove.
739         * class.c (dup_type): Remove.
740         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
741         instead of the dodgy 'dup_type'.
742         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
743         handle the case where 'dup_type' needed the second argument.
744
745 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
746
747         * domain.c: Fix a warning.
748
749 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
750
751         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
752         checking that methods with the same fqname are not overridden
753         with a method from an ancestor.
754
755 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
756
757         * threads.c (free_thread_static_data_helper): Avoid a crash if
758         thread->static_data is not yet set.
759
760 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
761
762         * marshal.c: Use correct image when emitting
763         native wrapper for COM calls.
764    
765         Code is contributed under MIT/X11 license.
766
767 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
768
769         * icall-def.h, security.c, security.h :
770           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
771
772 2007-08-07  Martin Baulig  <martin@ximian.com>
773
774         * mono-debug-debugger.h
775         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
776
777         * domain.c (mono_domain_free): Call
778         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
779
780 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
781
782         * verify.c (check_underflow, check_overflow): error message now returns IL offset
783         * verify.c (in_same_block): code should test if either offset is inside the clauses
784         * verify.c (mono_method_verify): push the exception into the eval stack of exception
785         and filter blocks
786
787 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
788
789         * image.c (mono_image_close): Fix a leak.
790
791         * object.c (mono_runtime_invoke_array): Avoid using alloca.
792
793         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
794
795 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
796
797         * domain.c, threads.c, threads-types.h: fix memory retention issue
798         with thread static variables not being cleared on domain unload.
799         Reuse thread static slots after domain unload.
800
801 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
802
803         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
804         nullable type.
805
806         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
807         now done in mono_runtime_invoke_array.
808
809         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
810         receiver is a nullable type.
811
812         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
813         generic parameter.
814
815 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
816
817         * marshal.c: Implement COM Objects as return type for 
818         managed->unmanaged calls. Added Release calls for COM Object
819         out/return values in managed->unmanaged calls.
820
821         Code is contributed under MIT/X11 license.
822
823 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
824
825         * threads.h, threads-type.h: move the hazard pointer declarations
826         to the private header.
827
828 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
829
830         * file-io.c, appdomain.c: memory leak fixes.
831
832 2007-08-02  Dick Porter  <dick@ximian.com>
833
834         * socket-io.c
835         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
836         SO_REUSEADDR setting into io-layer/sockets.c.
837
838 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
839
840         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
841         from Object when called on a generic parameter. Fixes #82211.
842
843 2007-08-01  Dick Porter  <dick@ximian.com>
844
845         * file-io.c (convert_share): Test FileShare values bit-by-bit.
846         Fixes bug 79250 yet again.
847
848 2007-07-30  Martin Baulig  <martin@ximian.com>
849
850         Merged the `debugger-dublin' branch.
851
852         * mono-debug.h
853         (MonoDebugDataTable): New typedef.
854         (MonoDebugMethodAddressList): New typedef.
855         (MonoDebugWrapperData): Removed.
856         (MonoDebugSymbolTable): Removed `current_data_table',
857         `current_data_table_size', `current_data_table_offset'.
858         (MonoDebugDataItemType): Moved into mono-debug.c.
859         (MonoDebugMethodJitInfo): Remove `address'.
860         (mono_debug_data_table): New global variable.
861         (mono_debug_lookup_method_addresses): New public function.
862         (mono_debug_find_method): Take a `MonoMethod *', not a
863         `MonoDebugMethodInfo *'.
864
865         * mono-debug.c: Drop support for the old symbol tables.
866
867 2007-06-28  Martin Baulig  <martin@ximian.com>
868
869         * mono-debug.c (mono_debug_debugger_version): New public variable.
870
871 2007-07-31  William Holmes  <billholmes54@gmail.com>
872
873         * metadata.c Changed mono_type_create_from_typespec to not insert
874           the type into the hash map until after
875           do_mono_metadata_parse_type has completed.
876         Fixes Bug #82194
877         Code is contributed under MIT/X11 license.
878
879 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
880
881         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
882         generic parameter. Fixes #82211.
883
884 2007-07-27  Jb Evain  <jbevain@novell.com>
885
886         * pedump.c (dump_metadata, dump_metadata_header): dump
887         versions contained in the metadata header.
888
889 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
890
891         * threads.c: register small_id_table with the GC.
892
893 2007-07-27  Mark Probst  <mark.probst@gmail.com>
894
895         * threads.c, threads.h, class-internals.h, object-internals.h:
896         Hazard pointers, to be used by lock-free parallel algorithms.
897
898 2007-07-26  Dick Porter  <dick@ximian.com>
899
900         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
901         routine on non-windows platforms, as I've not managed to think of
902         a non-kludgy way of doing this.  Finishes off bug 78739.
903
904 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
905
906         * object.c: properly setup interface_bitmap in proxy vtables.
907
908 2007-07-25  Marek Habersack  <mhabersack@novell.com>
909
910         * appdomain.c (get_shadow_assembly_location): do not use TickCount
911         to create unique shadow copy target directories, use the domain's
912         serial number instead. Each domain gets a unique target directory
913         that way.
914
915         * domain.c (mono_domain_create): added code to increment domain
916         shadow copy serial number and cache the value in the current
917         domain structure.
918
919         * domain-internals.h (struct _MonoDomain): added a new field -
920         shadow_serial to hold the serial number used in generation of
921         shadow-copy directories. This is to make sure that the directory
922         name is unique for each and every domain created. We avoid a race
923         condition with overriding assemblies already in use by other app
924         domains.
925
926 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
927
928         * class.c (mono_bounded_array_class_get): fixed memory leak when 
929         binding generic parameters.
930
931 2007-07-24  Raja R Harinath  <rharinath@novell.com>
932
933         * metadata.c (do_mono_metadata_parse_generic_class): Use
934         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
935         error.
936
937 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
938
939         * loader.c, class-internals.h, reflection.c: removed the per-method
940         generics hashtable: we use the global one through the call of
941         mono_class_inflate_generic_method ().
942
943 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
944
945         * class.c, metadata.c, class-internals.h: introduce yet another
946         generics global cache for inflated methods (fixes 98% of the perf
947         issue in bug #81806).
948
949 2007-07-23  Raja R Harinath  <rharinath@novell.com>
950
951         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
952         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
953         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
954         return a MonoGenericInst containing (a copy) of those types.
955         (mono_metadata_inflate_generic_inst): Update to changes.
956         (mono_metadata_parse_generic_inst): Likewise.
957         (mono_get_shared_generic_inst): Likewise.
958         * reflection.c (mono_class_bind_generic_parameters): Likewise.
959         (mono_reflection_bind_generic_method_parameters): Likewise.
960         * metadata-internals.h: Likewise.
961         * icall.c (free_generic_context): Kill.
962         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
963
964         * reflection.c (reflection_methodbuilder_to_mono_method): Use
965         mono_metadata_type_dup.
966         * marshal.c (mono_mb_create_method): Likewise.
967
968         * metadata.c (mono_metadata_type_dup): Rename from
969         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
970         MonoImage.  Handle a few more cases, esp. when no mempool is given.
971         * marshal.c, metadata-internals.h: Update to changes.
972
973 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
974
975         * class.c: fixed a small leak for array classes and removed warning.
976
977 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
978
979         * loader.c (mono_method_get_param_token): Make this work on generic methods.
980         Return 0x8000000 for return parameters. Fixes #82161.
981
982 2007-07-21  Marek Habersack  <grendello@gmail.com>
983
984         * appdomain.c (get_shadow_assembly_location): append the current
985         ticks value to the path. Avoids overwriting the same assemblies by
986         several threads at the same time.
987
988 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
989         and Raja R Harinath  <rharinath@novell.com>
990
991         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
992         Simplify slightly.
993         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
994         property for testing if a method is a generic method definition.
995
996 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
997
998         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
999
1000 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1001
1002         * verify.c: used function from private branch, reverted to the one in class.h 
1003
1004 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1005
1006         * verify.c: a typo slipped in and the code wont compile
1007
1008 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1009
1010         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
1011         disabled box instruction as it is doing the wrong thing
1012         improved stack dump messages, now it is easier to debug type related issues
1013
1014
1015 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
1016
1017         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
1018
1019 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1020
1021         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
1022         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
1023         grouped with class and valuetype. This change will simply 
1024         the code as it should be handled just like unmanaged pointers.
1025
1026 2007-07-19  Mark Probst  <mark.probst@gmail.com>
1027
1028         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
1029
1030 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1031
1032         * verify.c: several stack merge issues fixed, reference comparisons now
1033         check the type size. strict type check now works correctly.
1034         added more uses of IS_MANAGED_POINTER macro.
1035         fixed issues pointed by running the test suite against .net.
1036         
1037
1038 2007-07-19  Mark Probst  <mark.probst@gmail.com>
1039
1040         * class.c, loader.c, class-internals.h: Removed the
1041         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
1042         defines.
1043
1044         * icall.c: Better error checking in some internal reflection
1045         methods.
1046
1047 2007-07-18  William Holmes  <billholmes54@gmail.com>
1048
1049         * filewatcher.c : removed unused variable 'filename' in 
1050           ves_icall_System_IO_FSW_SupportsFSW
1051
1052 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
1053
1054         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
1055         obsolete, removed.
1056
1057 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
1058
1059         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
1060         
1061         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
1062
1063 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
1064
1065         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
1066         Implement generics support.
1067         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
1068
1069         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
1070         type_args and method_args arguments.
1071         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
1072         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
1073         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
1074
1075 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
1076
1077         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
1078           It adds a rootimage parameter to mono_reflection_get_type_internal,
1079           adds new function mono_reflection_get_type_with_rootimage and use
1080           the rootimage to resolve the types instead of the current image
1081
1082 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1083
1084         * culture-info-table.h: Forgot to update after r78304.
1085
1086 2007-07-13  Raja R Harinath  <rharinath@novell.com>
1087
1088         * class.c (mono_class_is_open_constructed_type)
1089         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
1090
1091 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
1092
1093         * class.c (mono_bounded_array_class_get):  method fails if used with
1094         an incomplete TypeBuilder enum (no basetype field), fixed it by 
1095         avoiding calculating the size for such array as it cannot be instantiated.
1096         Fix bug #82015
1097
1098 2007-07-12  Raja R Harinath  <rharinath@novell.com>
1099
1100         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
1101         field.
1102         * metadata.c, reflection.c: Update to changes.
1103
1104 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
1105
1106         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
1107         mono_class_is_valid_enum, they are used to valide a enum when loading.
1108         * reflection.c: used new functions to throw TypeLoadException when and
1109         invalid enum is build with TypeBuilder. Fixes #82018
1110   
1111 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
1112
1113         * object.c: forgot commit of mono_class_setup_methods () to access
1114         iface->methods.
1115         * object-internals.h: added a few more handy fields to
1116         MonoIMTCheckItem.
1117
1118 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
1119
1120         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
1121         iface->methods.
1122
1123 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
1124
1125         * class-internals.h, object-internals.h, object.c: IMT-based
1126         interface invocation core from Massimiliano Mantione
1127         (massi@ximian.com) with a reworked arch-specific interface,
1128         bsearch implementation and a few bugfixes and memory savings by me.
1129
1130 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
1131
1132         * class.c (mono_class_create_from_typedef): mono would segfault if 
1133         an enum did not have a __value field. It now throws a TypeLoadException
1134         for such cases. Fix bug #82022
1135
1136 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
1137
1138         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
1139
1140 2007-07-09  Mark Probst  <mark.probst@gmail.com>
1141
1142         * class.c (mono_class_init): If a class is already inited but has
1143         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
1144
1145 2007-07-09  Mark Probst  <mark.probst@gmail.com>
1146
1147         * class.c: Properly handle the case of an unimplemented interface
1148         method.  Fixes: 81673.
1149
1150 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
1151
1152         * class-internals.h, object.c: cleanup patch from massi: use
1153         MonoVTable->interface_bitmap since the vtable interfaces offset array
1154         is going away.
1155
1156 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
1157
1158         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
1159         GetMDStreamVersion icall instead.
1160
1161 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
1162
1163         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
1164         not use mono_dl_build_path() with a full library name: makes
1165         fallbacks to libgaim and libfam work.
1166
1167 2007-07-06  William Holmes  <billholmes54@gmail.com>
1168
1169         * assembly.c: Added a continue statement in probe_for_partial_name when
1170          parse_assembly_directory_name fails.  Fixes : 82002
1171
1172 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
1173
1174         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
1175         and added a verification  for TYPEDBYREF.
1176         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
1177         make native int interchangeable with int32 and some small cleanup and formating.
1178         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
1179         handle byref of byref.
1180         * verify.c (push_local): handle byref of byref.
1181         * verify.c (do_binop): invalid mix of values is unverifiable
1182         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
1183         added visibility checks
1184         * verify.c (field related method): added visibility checks
1185         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
1186
1187 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
1188
1189         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
1190         string.
1191
1192 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
1193
1194         * profiler.c (mono_profiler_load): Fix an off-by-one error.
1195
1196         * marshal.c (emit_marshal_string): When returning a string from managed code,
1197         allways make a copy even for unicode strings. Fixes #81990.
1198
1199 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
1200
1201         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
1202         of byref generic inst types (bug #81997).
1203
1204 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
1205
1206         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
1207         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
1208
1209 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
1210
1211         * marshal.c (emit_marshal_string): Add support for unicode strings in
1212         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
1213
1214 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
1215
1216         * verify.c: field load/store are now verified, missing only access checks now
1217
1218 2007-06-28  Martin Baulig  <martin@ximian.com>
1219
1220         * mono-debug.c (mono_debug_debugger_version): New public variable.
1221
1222 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
1223
1224         * locales.c: When constructing DateTimeFormat or NumberFormat for
1225         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
1226         MonoCultureInfo contructed from the current locale is always
1227         read-only and has UseUserOverride set to true. All MonoCultureInfo
1228         instances returned for GetCultures have both IsReadOnly and
1229         UseUserOverride set to true. Fixes part of bug #81930.
1230
1231 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
1232
1233        * icall-def.h: Update System.__ComObject icalls
1234        * marshal.c: Avoid managed transition (and object creation)
1235        when looking up COM interface in RCW.
1236        * marshal.h: Ditto.
1237        
1238        Code is contributed under MIT/X11 license.
1239
1240 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
1241
1242         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
1243         to avoid crashes during assembly unloading.
1244
1245 2007-06-22  Raja R Harinath  <rharinath@novell.com>
1246
1247         Fix MethodInfo.IsGenericMethodDefinition
1248         * reflection.c (mono_reflection_bind_generic_method_parameters):
1249         Rearrange code to ensure we always uses a generic method definition.
1250         * class.c (mono_class_inflate_generic_method_full): Set
1251         'generic_container' field only for generic method definitions.
1252         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
1253         Use presense of 'generic_container' field as indication of being a
1254         generic method definition.
1255
1256 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
1257
1258         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1259
1260         * object-internals.h: Reflect changes in the layout of the managed Delegate
1261         class.
1262         
1263         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
1264         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
1265         runtime memory used by the dynamic method. Fixes #77146.
1266
1267 2007-06-21  Dick Porter  <dick@ximian.com>
1268
1269         * file-io.h: 
1270         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
1271         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
1272         81767.
1273
1274 2007-06-21  Raja R Harinath  <rharinath@novell.com>
1275
1276         * reflection.c (method_encode_methodspec): Add a tripwire.
1277         * class.c (inflate_generic_type): The fully open generic type is
1278         not the same as the generic type definition.
1279
1280 2007-06-21  Martin Baulig  <martin@ximian.com>
1281
1282         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
1283
1284         * mono-debug-debugger.h
1285         (MonoDebuggerBreakpointInfo): Removed.
1286         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
1287         (mono_debugger_remove_breakpoint): Likewise.
1288         (mono_debugger_breakpoint_callback): Likewise.
1289         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
1290
1291 2007-06-21  Raja R Harinath  <rharinath@novell.com>
1292
1293         * metadata.c (mono_metadata_lookup_generic_class): The fully open
1294         generic type is not the same as the generic type definition.
1295         * class.c (mono_generic_class_get_class): Likewise.
1296
1297 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
1298
1299         * icall.c: The second argument to 
1300         System.Reflection.MethodBase.GetMethodFromHandleInternalType
1301         is a MonoType not a MonoClass.
1302
1303 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
1304
1305         * verify.c: support for function pointers in the verifier
1306
1307 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
1308
1309         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
1310
1311 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
1312
1313         * assembly.c: removed Mono.Data.SqliteClient from the list of
1314         forward-compatible assemblies as it breaks the ABI (bug #81899).
1315
1316 2007-06-19  Raja R Harinath  <rharinath@novell.com>
1317
1318         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
1319         lookup/update with the loader lock.
1320         * reflection.c (mono_class_bind_generic_parameters): No need to
1321         protect mono_metadata_lookup_* with the loader lock.
1322         * class.c (inflate_generic_type): Likewise.
1323         
1324         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
1325         on a generic instantiated type.
1326
1327 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
1328
1329         *verify.c: produce meanfull error messages on verification error
1330         *verify.c: fixed some cases of verification errors reported as validation errors
1331         *pedump.c: fixed the error name array, now it shows validation errors properly
1332         *verify.h: fixed the contant that should be used for verification errors
1333
1334 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
1335
1336         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
1337         for bug #77596, 81858 and 80743 (generics data structures on domain
1338         unload).
1339
1340 2007-06-15  Raja R Harinath  <rharinath@novell.com>
1341
1342         Avoid allocating 'MonoGenericContext' on the heap.
1343         * class-internals (_MonoMethodInflated::context): Make field
1344         inline, not a pointer.
1345         * loader.c (method_from_methodspec): Allocate 'new_context' on the
1346         stack.  Use the context embedded within the inflated method as the
1347         hash key, rather than 'new_context'.
1348         * class.c (inflate_generic_context): Simplify.  Return a struct
1349         rather than allocating on the heap.
1350         (mono_class_inflate_generic_method_full): Update to changes.  Now,
1351         doesn't salt away a copy of the context -- simplifying the
1352         lifetime rules of a 'MonoGenericContext *'.
1353         (mono_method_get_context): Return pointer to embedded context.
1354         (setup_generic_array_ifaces): Allocate temporary context on stack.
1355         * reflection.c (inflate_mono_method): Likewise.
1356         (mono_reflection_bind_generic_method_parameters): Likewise.
1357         Use the context embedded within the inflated method as the hash key.
1358
1359         Avoid a source of allocation of 'MonoGenericContext'.
1360         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
1361         and 'cached_context' fields into embedded 'MonoGenericContext' field.
1362         * class.c: Update to changes.
1363         (mono_generic_class_get_context): Simplify drastically.  Now just
1364         returns a pointer to the field.
1365         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
1366         argument as a const pointer.
1367         (mono_metadata_generic_context_equal): Likewise.
1368         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
1369         Update to changes.
1370
1371 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
1372
1373         * verify.c improved the handling of brtrue/brfalse, factored out common code
1374
1375 2007-06-14  Raja R Harinath  <rharinath@novell.com>
1376
1377         Kill MonoGenericMethod.
1378         * class-internals.h (MonoGenericContext::method_inst): Rename from
1379         'gmethod' and convert to a MonoGenericInst.
1380         (MonoGenericMethod): Remove.
1381         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
1382         * loader.c (method_from_methodspec): Update to changes.  Use a
1383         MonoGenericContext as the key to the hashtable.
1384         * metadata.c (mono_metadata_generic_context_equal): Rename from 
1385         'mono_metadata_generic_method_equal' and take MonoGenericContext.
1386         (mono_metadata_generic_context_hash): Likewise from
1387         'mono_metadata_generic_method_hash'.  Change hash function.
1388         (mono_metadata_load_generic_params): Update to changes.
1389         (mono_get_shared_generic_method): Remove.
1390         * metadata-internals.h (mono_get_shared_generic_method): Remove.
1391         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
1392         (inflate_generic_context): Likewise.
1393         (mono_class_inflate_generic_method_full): Likewise.
1394         (setup_generic_array_ifaces): Likewise.
1395         (mono_class_create_from_typespec): Likewise.
1396         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
1397         (method_encode_methodspec): Update callsite.
1398         (reflection_methodbuilder_to_mono_method): Update to changes.
1399         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
1400         MonoGenericContext as the key to the hashtable.
1401         (inflate_mono_method): Update to changes.
1402
1403         * class-internals.h (MonoGenericMethod::container): Remove.
1404         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
1405
1406 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
1407
1408         * profiler-private.h, profiler.c, profiler.h: added API to profile
1409         exception events.
1410
1411 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
1412
1413         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
1414
1415 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
1416
1417         * verify.c: method invocation is now validated, now we verify parameter types on stack.
1418         Fixed overflow and underflow not aborting the verification process.
1419
1420 2007-06-13  Mark Probst  <mark.probst@gmail.com>
1421
1422         * class-internals.h (MonoStats): Added stats entries for dynamic
1423         code allocations.
1424
1425 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
1426
1427         * loader.c (mono_free_method): Free header->locals and header->clauses.
1428
1429         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
1430         dynamic case.
1431
1432         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
1433
1434         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
1435
1436 2007-06-12  Raja R Harinath  <rharinath@novell.com>
1437
1438         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
1439         the tables.
1440
1441 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1442
1443         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
1444
1445 2007-06-11  Raja R Harinath  <harinath@gmail.com>
1446
1447         MonoGenericMethod on a diet
1448         * class-internals.h (_MonoMethodInflated::reflection_info): Move
1449         here ...
1450         (_MonoGenericMethod::reflection_info): ... from here.
1451         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
1452         Update to changes.
1453         * reflection.c (inflate_mono_method): Likewise.
1454         (mono_reflection_bind_generic_method_parameters): Likewise.
1455
1456 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1457
1458         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
1459         *verify.c: factored long ldarg forms to share code with short forms
1460
1461 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1462
1463         *verify.c: fixed code formating factored some duplicate code
1464         into a new function
1465
1466         *verify.h: fixed binary incompatibility introduced earlier
1467
1468         *pedump.c: fixed formating
1469
1470 2007-06-11  Raja R Harinath  <harinath@gmail.com>
1471
1472         Fix assertion when disassembling Mono.C5.dll
1473         * loader.c (method_from_methodspec): Avoid inflating a method
1474         twice with the same context.  If the methodref is inflated, use
1475         the declaring method instead.
1476
1477         * class.c (mono_class_from_generic_parameter): Fix case similar to
1478         bug #81830 handled below, but for method containers.
1479
1480 2007-06-10  Raja R Harinath  <harinath@gmail.com>
1481
1482         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
1483         get_shared_generic_class.  Directly inflate the instance.
1484         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
1485         (inflate_generic_class): Delete.
1486         (get_shared_generic_class): Delete.  Move setting of
1487         'cached_class' and 'cached_context' ...
1488         * metadata.c (mono_metadata_lookup_generic_class): ... here.
1489
1490         * metadata.c (mono_metadata_lookup_generic_class): Change
1491         signature to take the components of a MonoGenericClass rather than
1492         an allocated MonoGenericClass.  Change semantics to be intern-like.
1493         * reflection.c (mono_class_bind_generic_parameters): Update to
1494         changes.  Make locking region tighter.
1495         * class.c (inflate_generic_class): Update to changes.
1496         (get_shared_generic_class): Likewise.
1497         * metadata-internals.h: Likewise.
1498
1499         * reflection.c (mono_class_bind_generic_parameters): Take and
1500         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
1501         (mono_reflection_bind_generic_parameters): Use
1502         'mono_class_bind_generic_parameters' rather than duplicate the code.
1503         * class.c (mono_bounded_array_class_get): Update to changes.
1504         * object-internals.h: Likewise.
1505
1506         * reflection.c (mono_class_bind_generic_parameters): Only support
1507         parameterizing generic type definitions.  Remove support for other
1508         open types.
1509
1510 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
1511
1512         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
1513
1514         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
1515         in the dynamic case.
1516
1517 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
1518
1519         * threads.c: When cleaning up thread, reset the Background bit.
1520         Fixes bug #81720.
1521
1522 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
1523
1524        * metadata.c: Move variable declarations to top of scope.
1525        * verify.c: Move variable declarations to top of scope.
1526
1527        Code is contributed under MIT/X11 license.
1528
1529 2007-06-08  Raja R Harinath  <rharinath@novell.com>
1530
1531         * reflection.c (mono_class_bind_generic_parameters): Replace
1532         open-coded loop with mono_metadata_inflate_generic_inst.
1533
1534         * class.c (get_shared_generic_class): Don't call
1535         mono_get_shared_generic_inst.  Use the container's own
1536         'class_inst'.
1537
1538         * metadata.c (mono_metadata_load_generic_params): Move
1539         initialization of 'context' field here from ...
1540         * class.c (mono_class_create_from_typedef): ... here, and ...
1541         * loader.c (mono_get_method_from_token): ... here.
1542
1543         * class.c (get_shared_generic_class): Rename from
1544         mono_get_shared_generic_class and make static.
1545         (mono_get_shared_generic_inst): Move to metadata.c.
1546         * loader.c (mono_get_shared_generic_method): Likewise.
1547         * class-internals.h, metadata-internals.h: Update to changes.
1548
1549         Fix #81830
1550         * class.c (mono_class_from_generic_parameter): Don't assume a
1551         generic container owner exists.  Generic containers from monodis
1552         don't have any.
1553
1554 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
1555
1556         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
1557         * verify.h: new typedefs to returns the non-verifiable status
1558         * verify.c: initial implementation of generics, stack merging and object compatibility check
1559
1560 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1561
1562         * class.c, image.c, class-internals.h (MonoImage): class_cache is
1563         a MonoInternalHashTable again (fixed bug in internal hash table
1564         code).
1565
1566 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1567
1568         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
1569         MonoInternalHashTable again (fixed bug in internal hash table
1570         code).
1571
1572 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1573
1574         * class.c, image.c, class-internals.h, domain.c,
1575         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
1576         changes.  Have to figure out what makes them break the SWF
1577         regression.
1578
1579 2007-06-04  Mark Probst  <mark.probst@gmail.com>
1580
1581         * class.c, image.c, class-internals.h (MonoImage): class_cache is
1582         a MonoInternalHashTable now.
1583
1584 2007-06-04  Mark Probst  <mark.probst@gmail.com>
1585
1586         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
1587         MonoInternalHashTable now.
1588
1589 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
1590
1591         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
1592         invoke_impl code.
1593
1594         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
1595
1596         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
1597         dependent trampoline.
1598
1599         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1600
1601         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
1602
1603 2007-05-29  Robert Jordan  <robertj@gmx.net>
1604
1605         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
1606
1607 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
1608
1609         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
1610
1611 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
1612
1613        * marshal.c: Fix interface lookup loops for
1614        cominterop_get_com_slot_for_method and 
1615        cominterop_get_method_interface. Only need to lookup
1616        if type is a class, else use interface type method is on.
1617
1618        Code is contributed under MIT/X11 license.
1619
1620 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
1621
1622         * reflection.c: HasSecurity can be present even if no specially 
1623         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
1624         SecurityAttribute). Fix CAS regression tests on buildbot.
1625
1626 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
1627
1628        * appdomain.c: Add configure checks for header files.
1629        * image.c: Add configure checks for header files.
1630        * file-io.c: Add configure checks for header files.
1631        * debug-mono-symfile.c: Add configure checks for header files.
1632        * threadpool.c: Add configure checks for header files.
1633        * console-io.c: Add configure checks for header files.
1634        * profiler.c: Add configure checks for header files.
1635        * rawbuffer.c: Add configure checks for header files.
1636        * icall.c: Add configure checks for header files.
1637        * rand.c: Add configure checks for header files.
1638        * socket-io.c: Add configure checks for header files.
1639
1640        Code is contributed under MIT/X11 license.
1641
1642 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
1643
1644         * reflection.c (mono_custom_attrs_from_builders): Remove the 
1645         assertion as it breaks the build.
1646         
1647         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
1648
1649         * reflection.c (lookup_custom_attr): Make a copy here too.
1650
1651         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
1652         dynamic images.
1653
1654         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
1655         images.
1656
1657         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
1658         info.
1659
1660 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
1661
1662         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
1663         (load_cattr_value): Ditto.
1664
1665 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
1666
1667         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
1668
1669 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
1670
1671         * threads.c: In "start_wrapper", set apartment_state to MTA if
1672         apartment_state is Unknown and we're running on 2.0 profile or
1673         higher.
1674         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
1675         to main method, then set apartment_state to Unknown on 1.0 profile,
1676         and MTA on 2.0 profile.
1677
1678 2007-05-16  Jb Evain  <jb@nurv.fr>
1679
1680         * class-internals.h (MonoDefaults): Add an attribute_class and
1681           customattribute_data_class.
1682         * domain.c (mono_init_internal): Populate them.
1683         * reflection.c: Use them to remove duplicates. Make a vew
1684         MonoClass variables `static'.
1685
1686 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
1687
1688         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
1689         step in implementing IMT, so that all isinst checks now can go
1690         through the bitmap.
1691         This was needed because vtables for TransparentProxy need to look
1692         like the vtable of the "target" class, so they need to point to
1693         its interface bitmap directly.
1694
1695         * object.c: inside "mono_class_create_runtime_vtable" and
1696         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
1697
1698 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
1699
1700         * object-internals.h
1701           culture-info.h : added territory field in MonoCulture and
1702           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
1703         * locales.c : fill territory field above too.
1704         * culture-info-table.h : regenerated.
1705
1706 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
1707
1708         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
1709         Fixes #81599.
1710
1711 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
1712
1713         * object.c: Always initialize apartment, even if 
1714         there is no custom attributes on entry point.
1715         
1716         Code is contributed under MIT/X11 license.
1717
1718 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
1719
1720         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
1721         * metadata.c: If no encoding is set, check for unicode
1722         on class.
1723         
1724         Code is contributed under MIT/X11 license.
1725
1726 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
1727
1728         * threads.c: Handle if mono_thread_current returns NULL 
1729         
1730         Code is contributed under MIT/X11 license.
1731
1732 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
1733
1734         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
1735         in start_wrapper. Added mono_thread_init_apartment_state and
1736         mono_thread_cleanup_apartment_state.
1737         * object.c: Initialize thread apartment state on main thread
1738         by checking for STAThreadAttribute on entry point.
1739         * object-internals.h: Add apartment_state field to MonoThread.
1740         * threads-types.h: Add unmanaged definition of 
1741         System.Threading.ApartmentState, MonoThreadApartmentState.
1742         
1743         Code is contributed under MIT/X11 license.
1744         
1745 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
1746
1747         * class.c: Fix windows build.
1748         * class-internals.h: Fix windows build.
1749         
1750         Code is contributed under MIT/X11 license.
1751
1752 2007-05-08  Robert Jordan  <robertj@gmx.net>
1753
1754         * process.c (CreateProcess_internal):
1755         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
1756         .CreateNoWindow was specified. Fixes #81496.
1757
1758 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
1759
1760         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
1761         step in implementing IMT, replaced it with two compact arrays
1762         (interfaces_packed and interface_offsets_packed) and a bitmap that
1763         is used for isinst checks (interface_bitmap).
1764
1765         * class.c: (compare_interface_ids): compare function to pass to
1766         bsearch when looking for an interface with a given id.
1767         (mono_class_interface_offset): reimplemented using bsearch on
1768         interfaces_packed, getting the offset from interface_offsets_packed.
1769         (print_implemented_interfaces): utility debugging function.
1770         (setup_interface_offsets): reworked to initialize interfaces_packed,
1771         interface_offsets_packed and interface_bitmap.
1772
1773         * object.c: replaced all accesses to "MonoClass.interface_offsets"
1774         with uses of interfaces_packed and interface_offsets_packed.
1775
1776 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
1777
1778         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
1779         mono_class_interface_offset prototype to wrap all accesses to
1780         "MonoClass.interface_offsets".
1781
1782         * class.c: Implemented mono_class_interface_offset, and wrapped all
1783         accesses to "MonoClass.interface_offsets".
1784
1785         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
1786         "MonoClass.interface_offsets".
1787
1788 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
1789
1790         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
1791         GetMethodFromHandle overloads (bug #78637).
1792
1793 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
1794
1795         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
1796         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
1797
1798 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
1799
1800         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
1801         #81498.
1802
1803         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
1804         gracefully.
1805         (mono_custom_attrs_from_index): Ditto.
1806
1807         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
1808         Fixes #81501.
1809
1810 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
1811
1812         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
1813         is now allocated from a mempool.
1814
1815 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
1816
1817         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
1818         caller holds threads_lock, leading to deadlocks. Fixes #81476.
1819
1820 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
1821
1822         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
1823         mono_loader_clear_error () too late. Fixes #81463.
1824
1825 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
1826
1827         * culture-info-table.h : regenerated.
1828
1829 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
1830
1831         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
1832         is missing.
1833
1834 2007-04-25  Dick Porter  <dick@ximian.com>
1835
1836         * Makefile.am: Put the mingw enforced-optimisation back into the
1837         PLATFORM_WIN32 section.
1838
1839 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
1840
1841         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
1842         patch.
1843
1844         * image.c (mono_image_load_module): New API function to load a module reference.
1845
1846         * image.c (load_modules): Load modules lazily. Fixes #80812.
1847
1848         * class.c (mono_class_from_typeref): Use mono_image_load_module.
1849         
1850         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
1851
1852         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
1853         to mono_image_load_module_dynamic.
1854
1855 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
1856
1857         * marshal.c: Fix calling convention for CCW on non-windows
1858         platforms. STDCALL on windows, CDECL everywhere else to work 
1859         with XPCOM and MainWin COM.
1860         
1861         Code is contributed under MIT/X11 license.
1862
1863 2007-04-23  Martin Baulig  <martin@ximian.com>
1864
1865         Fix #80969.
1866
1867         * loader.c
1868         (method_from_memberref): Added `gboolean *used_context' argument.
1869         (mono_get_method_from_token): Likewise.
1870         (mono_get_method_full): Don't insert the method in the cache when
1871         `used_context' is true.
1872
1873 2007-04-23  Raja R Harinath  <rharinath@novell.com>
1874
1875         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
1876
1877         * reflection.c (mono_reflection_bind_generic_parameters): Don't
1878         create new MonoTypes for returned types.
1879         * class.c (mono_generic_class_get_class): Export mono-internal.
1880         * class-internals.h: Update to changes.
1881
1882 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
1883
1884         * threadpool.c, threadpool.h, icall-def.h: patch from
1885         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
1886
1887 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
1888
1889         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
1890         
1891         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
1892
1893         * threads.c (mono_thread_get_stack_bounds): New helper function.
1894
1895         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
1896         Correctly compute stack bounds when attaching. Fixes #81394.
1897
1898 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
1899
1900         * reflection.c: fix handling of doubles in custom attributes
1901         for the arm-fpa format (bug #81368).
1902
1903 2007-04-18  Raja R Harinath  <rharinath@novell.com>
1904
1905         * reflection.c (assembly_add_win32_resources): Mildly relax an
1906         bounds check to let the end pointer point just past the end of the
1907         allocated buffer.  (may fix #81384)
1908
1909 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
1910
1911         * culture-info-table.h : regenerated.
1912
1913 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
1914
1915         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
1916         the thread is aborted early.
1917
1918 2007-04-05  Dick Porter  <dick@ximian.com>
1919
1920         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
1921         FindFirstFile()/FindNextFile() to find entries.  This lets the
1922         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
1923         81038.
1924
1925         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
1926         the parameters of
1927         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
1928
1929 2007-04-04  Martin Baulig  <martin@ximian.com>
1930
1931         * debug-helpers.c
1932         (mono_method_desc_full_match): Add support for nested classes.
1933
1934 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
1935
1936         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
1937
1938 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
1939
1940         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
1941         waiting for too many threads.
1942
1943 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
1944
1945         * environment.c: Fix return value check on uname so we can get the 
1946         executing version on Solaris operating systems.
1947
1948 2007-03-28  Jb Evain  <jbevain@gmail.com>
1949
1950         * class.c (mono_type_get_name_recurse): Complete the
1951         fix for the creation of assembly qualified names for
1952         pointer types. Fixes #81208.
1953
1954 2007-03-27  Dick Porter  <dick@ximian.com>
1955
1956         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
1957         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
1958         changed.
1959
1960         * threads.c
1961         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
1962         the value of ReleaseMutex().
1963
1964 2007-03-27  Dick Porter  <dick@ximian.com>
1965
1966         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
1967         in little-endian order, not network endian, so must be converted
1968         to host endian here.  Fixes bug 80593.
1969
1970 2007-03-22  Jb Evain  <jbevain@gmail.com>
1971
1972         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
1973         qualified names for pointer types. Fixes #81208.
1974
1975 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
1976
1977         * marshal.c: Add support for PreserveSigAttribute. 
1978         
1979         Code is contributed under MIT/X11 license.
1980
1981 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
1982
1983         * process.c: Fix endianness issues. Fixes #81126.
1984
1985         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
1986         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
1987
1988         * image.c (mono_image_lookup_resource): Make this work on big-endian
1989         machines.Change API contract so the caller needs to free the return value.
1990         
1991         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
1992         API change.
1993         
1994 2007-03-14  Martin Baulig  <martin@ximian.com>
1995
1996         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
1997         mono_type_get_desc() as well.
1998
1999 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
2000
2001         * icall.c:  Fix environ access in VS.  
2002         
2003 2007-03-13  Alp Toker  <alp@atoker.com>
2004
2005         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
2006         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
2007         #63841.
2008
2009 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
2010
2011         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
2012         circular references among dynamic methods. Fixes #81091.
2013
2014         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
2015
2016 2007-03-09  Martin Baulig  <martin@ximian.com>
2017
2018         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
2019
2020 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
2021
2022         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
2023         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
2024         
2025         Code is contributed under MIT/X11 license.
2026         
2027 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
2028
2029         * loader.c: Reapply patch for bug #79424.
2030
2031 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
2032
2033         * metadata.c (mono_type_to_unmanaged): Only convert object to
2034         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
2035
2036 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
2037
2038         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
2039         (and incorrectly set) is_reference field from MonoGenericInst.
2040
2041 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
2042
2043         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
2044         a little earlier.
2045
2046         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
2047
2048         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
2049
2050 2007-03-05  Miguel de Icaza  <miguel@novell.com>
2051
2052         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
2053         FileOptions.1 value to mean "temporary", map that to
2054         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
2055
2056         Fixes 80688
2057
2058 2007-03-03  Marek Habersack  <mhabersack@novell.com>
2059
2060         * appdomain.c: implement MS .Net style shadow copying. Copies of
2061         the assemblies are made in a subdirectory of the dynamic base
2062         directory, the assembly names are preserved.
2063         Copy .mdb and .config files along with the assemblies being shadowed.
2064
2065 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
2066
2067         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
2068         (emit_marshal_handleref): Ditto.
2069
2070         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
2071         on Visual C++. Fixes #80671.
2072
2073 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
2074
2075         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
2076         for clone operations.
2077
2078 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
2079
2080         * marshal.c: Fix warnings.
2081
2082 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
2083
2084         * loader.c: allow case-insensitive matching of the dll name
2085         in dllmap handling when prefixed with "i:".
2086
2087 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
2088
2089         * threads.c: Fix #ifdef for dummy_apc function for VS.
2090
2091 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
2092
2093         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
2094
2095 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
2096         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
2097         giving precedence to the methods with a fully qualified name
2098         (InterfaceName.MethodName) when building the interface sections
2099         of the vtable.
2100
2101 2007-02-16  Dick Porter  <dick@ximian.com>
2102
2103         * threadpool.c (append_job): Fix fast-path array handling, so it's
2104         less likely the array will grow exponentially when the load is
2105         heavy.
2106
2107 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
2108
2109         * metadata-internals.h, loader.c: fix dllmap lookup order
2110         for non-function maps, too, and prepare for fallback code.
2111
2112 2007-02-12  Robert Jordan  <robertj@gmx.net>
2113
2114         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
2115         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
2116         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
2117         GlobalFree. Fixes a part of bug #77075.
2118
2119 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
2120
2121         * loader.c: implemented typedef parent in field memberref.
2122
2123 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
2124
2125         * marshal.c: Fix warnings and remember to call Release on
2126         IUnknown of RCW.
2127         
2128         Code is contributed under MIT/X11 license.
2129
2130 2007-02-10  Miguel de Icaza  <miguel@novell.com>
2131
2132         * class-internals.h: Add MonoHandleRef definition, and
2133         handleref_class to mono_defaults. 
2134
2135         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
2136         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
2137
2138         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
2139         (do nothing on this stage)
2140         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
2141         (emit_marshal_handleref): New method, used for argument handling
2142         of HandleRefs. 
2143
2144 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
2145
2146         * class.c (mono_class_setup_parent): Lazily init com types.
2147         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
2148         init com types.
2149         * object.c (mono_remote_class_vtable): Lazily init com types.
2150         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
2151         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
2152         * domain-internals.h: Expose mono_init_com_types.
2153         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
2154         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
2155         Add support for COM Callable Wrapper marshalling.
2156         * marshal.h: Add icall definitions.
2157         * gc.c: Handle freeing of CCWs in finalizer code.
2158         
2159         Code is contributed under MIT/X11 license.
2160
2161 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
2162
2163         * reflection.c: changed all the signature encoding code to use
2164         a variable-sized buffer.
2165
2166 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
2167
2168         * marshal.c: locking fixes: never take the loader lock
2169         or other runtime locks when holding the marshal lock
2170         (fixes bug#80664).
2171
2172 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
2173
2174         * marshal.c: make the delegate function pointer mapping
2175         work for the moving GC.
2176
2177 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
2178
2179         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
2180         for bug #80618.
2181
2182 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
2183
2184         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
2185         gmodule.
2186
2187 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
2188
2189         * threadpool.c: made the code moving-GC safe.
2190
2191 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
2192
2193         * assembly.c, boehm-gc.c, class-internals.h, class.c,
2194         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
2195         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
2196         warning cleanup.
2197         * reflection.c: warning cleanup, some threading and moving GC fixes.
2198
2199 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
2200
2201         * class.c, loader.c: create the needed Set/Get/Address array methods
2202         as well as the .ctors in mono_class_init (), fixes bug #80567.
2203
2204 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
2205
2206         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
2207         we doesn't decrease its alignment. Should fix the sparc build.
2208
2209 2007-01-24  Dick Porter  <dick@ximian.com>
2210
2211         * socket-io.c
2212         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
2213         Create the returned object if we need to ignore an unsupported
2214         socket option.  Fixes a segfault reported by Atsushi.
2215
2216 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
2217
2218         * class.c, object.c: restrict GC-tracked fields to
2219         UIntPtr fields used inside corlib, so we provide better
2220         type info to the GC and also allow broken packing as in
2221         bug #80580.
2222
2223 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
2224
2225         * sgen-gc.c: removed duplicated function.
2226
2227 2007-01-19  Miguel de Icaza  <miguel@novell.com>
2228
2229         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
2230         value that means that the value is not supported, but that we
2231         should not return a failure, but instead report this as a
2232         successful operation.
2233
2234 2007-01-19  Raja R Harinath  <rharinath@novell.com>
2235
2236         Fix tests/bug79956.2.il
2237         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
2238         (mono_generic_class_get_class): If the generic definition in an
2239         enum, copy over other fields related to it.
2240
2241 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
2242
2243         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
2244         genericinst enums (bug #79215).
2245
2246 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
2247         * class.c: Fix bug 80307.
2248
2249 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
2250
2251         * image.c: if the file table is not present, try to load
2252         all the modules, since we don't have info about them
2253         having or not metadata (bug #80517).
2254         * assembly.c: allow mono_assembly_load_references () to
2255         work for netmodules.
2256
2257 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
2258
2259         * image.c, metadata-internals.h, object.c: execute module
2260         cctors when running on the 2 runtime if present (bug #80487).
2261
2262 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
2263
2264         * icall.c: optimized InitializeArray() on bigendian.
2265
2266 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
2267
2268         * icall.c: fix for the broken ARM FPA double format.
2269
2270 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
2271
2272         * icall.c: handle endian issues for r4 and r8 types, too, in
2273         the InitializeArray() icall.
2274
2275 2007-01-15  Miguel de Icaza  <miguel@novell.com>
2276
2277         * loader.c (mono_loader_error_prepare_exception): Clear the error
2278         once we have extracted the information from it, do this before we
2279         call into the JIT's class loading mechanisms.
2280
2281         * object.c (mono_class_create_runtime_vtable): Do not clear the
2282         loader error before calling mono_class_get_exception_for_failure
2283         as the loader error is needed inside
2284         mono_class_get_exception_for_failure to throw the error (thinko).
2285
2286         Fixes #80521
2287         
2288 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
2289
2290         * reflection.c: align fields rva data so it's faster to load at
2291         runtime.
2292
2293 2007-01-12  Raja R Harinath  <rharinath@novell.com>
2294
2295         Prepare to simplify GenericMethod handling.
2296         * class-internals.h (mono_method_get_context): New accessor function.
2297         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
2298         rather than directly accessing '->context' field.
2299
2300         * class-internals.h (_MonoGenericParam.method): Move ...
2301         (_MonoGenericContainer): ... here.  Add into union with klass field.
2302         * class.c, icall.c, loader.c, metadata.c, reflection.c:
2303         Update to changes.
2304
2305 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
2306
2307         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
2308         the wrapper type enum and reduce relocations.
2309
2310 2007-01-12  Raja R Harinath  <rharinath@novell.com>
2311
2312         * reflection.c (inflate_mono_method): Reuse method instantiation
2313         from the generic method, if available.
2314
2315 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2316
2317         * marshal.c (emit_marshal_variant): Fix conv_arg
2318         type in last commit, based on whether parameter is byref.
2319         
2320 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2321
2322         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
2323         marshalling.
2324         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
2325         MONO_TYPE_OBJECT back for VARIANT support.
2326
2327 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2328
2329         * marshal.c, marshal.h, icall-def.h: Implement 
2330         Marshal.ReAllocCoTaskMem.
2331
2332 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
2333
2334         * marshal.c: memory retention fixes: use the proper
2335         image cache for runtime_invoke method lookups.
2336
2337 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
2338
2339         * mempool.c: added code to help debug mempool allocations.
2340
2341 2007-01-11  Dick Porter  <dick@ximian.com>
2342
2343         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
2344         support (experimenting with faking it with IP_MTU_DISCOVER for
2345         systems that don't have IP_DONTFRAGMENT.)
2346         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
2347         icall.
2348
2349         * icall-def.h: new System.Net.Sockets.Disconnect icall.
2350
2351         * socket-io.h: Add new fields to MonoSocketAsyncResult
2352         corresponding to the new ones in Socket.cs.
2353
2354 2007-01-11  Raja R Harinath  <rharinath@novell.com>
2355
2356         Fix IronPython regression mentioned in #80249
2357         * metadata.c (do_mono_metadata_parse_generic_class): Clear
2358         'cached_context' field, since it may have been initialized as a
2359         side-effect of metadata parsing.
2360
2361         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
2362         (_MonoGenericClass.cached_class): Move here and rename from lone
2363         remaining field of ...
2364         (_MonoInflatedGenericClass): ... this.  Remove.
2365         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
2366         to changes.
2367
2368         Fix mcs/tests/test-128.cs regression.
2369         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
2370         2007-01-10 change below.
2371         [MONO_TYPE_OBJECT]: Recurse into array case.
2372
2373 2007-01-11  Raja R Harinath  <harinath@gmail.com>
2374
2375         * class-internals.h (mono_get_inflated_generic_class): Remove.
2376         * class.c (mono_get_inflated_generic_class): Remove.
2377         (mono_generic_class_get_class): Rename from
2378         mono_class_create_generic.
2379         (mono_class_from_mono_type) [GENERICINST]: Use it.
2380         * reflection.c, metadata.c: Update to changes.  Use
2381         'mono_class_from_mono_type'.
2382
2383 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
2384
2385         * reflection.c: use passed type when encoding an array element
2386         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
2387
2388 2007-01-09  Robert Jordan  <robertj@gmx.net>
2389
2390         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
2391         result arguments (someDelegate.EndInvoke (unrelatedAres)).
2392         Fixes bug #80392.
2393
2394 2007-01-09  Raja R Harinath  <rharinath@novell.com>
2395
2396         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
2397
2398         * object.c (set_value): Avoid aliasing between type->data.klass
2399         and type->data.generic_class.
2400
2401         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
2402
2403 2007-01-08  Raja R Harinath  <rharinath@novell.com>
2404
2405         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
2406         between type->data.klass and type->data.generic_class.
2407
2408 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
2409
2410         * marshal.c: In MS.NET, StringBuilder objects are not copied by
2411         value in out parameters.
2412
2413 2007-01-08  Raja R Harinath  <rharinath@novell.com>
2414
2415         Simplify invariant for MonoGenericClass::klass field.
2416         * class.c (mono_class_create_generic): Verify 'klass' is null.
2417         * metadata.c (do_mono_metadata_parse_generic_class): Don't
2418         initialize 'klass' field.
2419
2420 2007-01-05  Raja R Harinath  <rharinath@novell.com>
2421
2422         Ongoing work to avoid redundant data and simplify invariants.
2423         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
2424         'generic_class', and change type to a GenericInst.
2425         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
2426         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
2427
2428 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
2429
2430         * class.c : skip io-layer under PLATFORM_WIN32.
2431
2432 2007-01-03  Tor Lillqvist  <tml@novell.com>
2433
2434         Fix #80305: In a bundled executable, look in the bundled exe
2435         assembly to determine the runtime version. Add the possibility to
2436         bundle also the machine.config file.
2437         
2438         * assembly.c (mono_assembly_open_from_bundle): Make
2439         non-static. Allow being called even if we have no bundled
2440         assemblies, and return NULL right away in that case.
2441
2442         * domain-internals.h: Declare mono_assembly_open_from_bundle()
2443         here.
2444
2445         * domain.c (app_config_parse): Take an assembly exe file name as
2446         parameter instead of a config file name. Check for a bundled
2447         config file for that assembly by calling
2448         mono_config_string_for_assembly_file() (see below) before looking
2449         for one in the file system.
2450         (get_runtimes_from_exe): Corrsponding change to call of
2451         app_config_parse().
2452         (get_runtimes_from_exe): Check for bundled assembly exe file first
2453         by calling mono_assembly_open_from_bundle(). If no bundled
2454         assembly exe file is found, call mono_image_open() as before to
2455         look it up in the file system.
2456
2457         * mono-config.c: Add variable bundled_machinec_onfig.
2458         (mono_config_string_for_assembly_file): New function.
2459         (mono_config_for_assembly): Move code snippet that looks for a
2460         bundled assembly .config file into the above new function. Call
2461         it.
2462         (mono_register_machine_config, mono_get_machine_config): New
2463         functions to set and retrieve
2464
2465         * assembly.h: Declare mono_register_machine_config().
2466
2467         * mono-config.h: Declare mono_get_machine_config() and
2468         mono_config_string_for_assembly_file().
2469
2470         * icall.c: No declaration of environ necessary on Win32. It is
2471         declared (as a macro expanding to a function call) in stdlib.h.
2472         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
2473         New internal mono function. Returns the value of
2474         mono_get_machine_config() as a Mono string.
2475
2476         * icall-def.h: Add get_bundled_machine_config().
2477
2478 2007-01-04  Raja R Harinath  <rharinath@novell.com>
2479
2480         Remove redundant field
2481         * class-internals.h (_MonoGenericContext.container): Remove field.
2482         * loader.c (mono_method_get_signature_full): Don't parse a
2483         "container" for a signature parse when the signature is inflated
2484         immediately.
2485         (method_from_methodspec): Likewise, for a generic_inst.
2486         * class.c, metadata.c, reflection.c: Update to changes.
2487
2488 2006-01-04  Raja R Harinath  <rharinath@novell.com>
2489
2490         * class-internals.h (_MonoGenericClass): Rename 'context' field to
2491         'cached_context', and change semantics -- it starts off NULL, and
2492         is initialized on demand.
2493         * class.c (mono_generic_class_get_context): New accessor to
2494         replace 'context' field accesses.
2495         (mono_class_get_context): New helper.
2496         (*): Update to changes.
2497         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
2498
2499 2007-01-03  Miguel de Icaza  <miguel@novell.com>
2500
2501         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
2502         before the memcpy.   Fixes Marshal2 regression.
2503
2504 2007-01-02  Jb Evain  <jbevain@gmail.com>
2505
2506         * blob.h: add a MONO_TYPE_ENUM definition
2507         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
2508         fix the encoding of arrays of enums in custom attributes.
2509
2510         Fixes #79666.
2511
2512 2007-01-01  Miguel de Icaza  <miguel@novell.com>
2513
2514         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
2515         string is null terminated, but only cut the string short if it
2516         overflows the buffer.   
2517         
2518         (mono_string_to_byvalstr): Also fix this routine.   The code here
2519         was not properly terminating a string (it was only terminated
2520         because of the previous catch-all memset). 
2521
2522         I left the memset, because I do not know if applications expect
2523         the runtime to clear this region. 
2524
2525         Fixes #79944.
2526
2527         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
2528         Clear the error before returning to unmanaged code to prevent the
2529         runtime from being confused later on (fixes  80420).
2530         (ves_icall_type_from_name): Always call mono_loader_clear_error
2531         after parsing a type that could have failed.
2532         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
2533
2534         * loader.c (mono_loader_clear_error): Fix indentation.
2535
2536 2006-12-28  Martin Baulig  <martin@ximian.com>
2537
2538         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
2539
2540 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
2541
2542         * reflection.c: patch from Rolf Bjarne Kvinge to fix
2543         getting a token for an EnumBuilder.
2544
2545 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
2546
2547         * reflection.c: be more careful in case resource generation
2548         fails to create the data array.
2549
2550 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
2551
2552         * sgen-gc.c: write barrier for clone and fix unregister handles.
2553
2554 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
2555
2556         * reflection.c: some fixes needed in the generics code for the moving GC.
2557
2558 2006-12-22  Robert Jordan  <robertj@gmx.net>
2559
2560         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
2561         account. Fixes bug #80299.
2562
2563 2006-12-21  Raja R Harinath  <rharinath@novell.com>
2564
2565         Fix WaitHandle usage in delegates.
2566         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
2567         * object.c (mono_wait_handle_new): Use the property set method to
2568         initialize the handle.
2569         (mono_wait_handle_get_handle): New.
2570         * threadpool.c (mono_async_invoke): Use it.
2571         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
2572         Likewise.
2573         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
2574
2575 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
2576
2577         * marshal.c (emit_marshal): Call emit_marshal_variant and
2578         emit_marshal_com_interface when applicable.
2579         (emit_marshal_variant, emit_marshal_com_interface): Add
2580         methods for this case and remove if's from emit_marshal_object.
2581         
2582 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
2583
2584         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
2585
2586 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
2587
2588         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
2589         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
2590         and GlobalFree on Windows. Remove FIXME.
2591
2592 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
2593
2594         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
2595         implementation for managed objects.
2596
2597 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
2598
2599         * object.c: implemented code to be used for checking
2600         that no reference field overlaps with non-references.
2601
2602 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2603
2604         * threadpool.c: fix queue code to be compatible with the
2605         moving GC.
2606
2607 2006-12-18  Miguel de Icaza  <miguel@novell.com>
2608
2609         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
2610         in structures by throwing ArgumentNullException.
2611
2612         (emit_marshal_safehandle): Also when they are null parameters.
2613
2614         (emit_marshal_safehandle): Add support for ref
2615         SafeHandles parameters
2616
2617 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
2618
2619         * profiler.c: updated to use the mono-dl API instead of
2620         gmodule.
2621
2622 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2623
2624         * profiler.c: updated to use the mono-dl dynamic loading
2625         API instead of gmodule.
2626
2627 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
2628
2629         * profiler.c: use readlink, older versions of glib don't have
2630         g_file_read_link ().
2631
2632 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2633
2634         * profiler.c: try to detect the path to mono if libc fails to provide
2635         a useful name (bug #80286).
2636
2637 2006-12-16  Raja R Harinath  <rharinath@novell.com>
2638
2639         Fix #80242
2640         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
2641         instance, use the generic type definition instead.
2642         (ves_icall_Type_GetNestedTypes): Likewise.
2643         * class.c (mono_class_create_generic): Always set the
2644         nested_classes of a generic instance to NULL, even if the generic
2645         type definition has nested types.
2646
2647 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
2648
2649         * marshal.c (mono_string_from_bstr): Revert previous Windows change
2650         and fix on Linux.
2651         
2652 2006-12-15  Miguel de Icaza  <miguel@novell.com>
2653
2654         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
2655         my arguments were in the wrong order.   I also fixed the Windows
2656         version which seems to have had the same issue.
2657
2658         (mono_free_bstr): On Unix, this is g_free.
2659         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
2660         conversions (for the tests in corlib to pass).
2661
2662 2006-12-14  Miguel de Icaza  <miguel@novell.com>
2663
2664         * marshal.c (emit_ptr_to_object_conv): For now, ignore
2665         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
2666         exception if a ref SafeHandle in a struct has changed).
2667         
2668         (emit_struct_conv): Do not perform layout checks for classes
2669         derived from SafeHandle, as those are specially handled. 
2670
2671         (emit_object_to_ptr_conv): Add support for
2672         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
2673
2674         (emit_marshal_safehandle): Implement conversion of return values
2675         of safehandles (MARSHAL_ACTION_CONV_RESULT).
2676         
2677         * threads.c: WaitHandle now is compiled with two different handles
2678         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
2679         for 2.0.
2680         
2681         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
2682         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
2683         these routines to cope with both kinds of fields.
2684
2685 2006-12-12  Miguel de Icaza  <miguel@novell.com>
2686
2687         * metadata.c (mono_type_to_unmanaged): Handle the case where
2688         type->data.klass is a SafeHandle, and in that case, return the
2689         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
2690         MONO_MARSHAL_CONV_SAFEHANDLE. 
2691
2692 2006-12-11  Miguel de Icaza  <miguel@novell.com>
2693
2694         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
2695         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
2696         calling emit_marshal_object.
2697
2698         (emit_marshal_safehandle): Implement marshalling of
2699         SafeHandle parameters (no ref support yet).
2700
2701         (MarshalAction): Document the defines as I implement
2702         them for SafeHandle.
2703
2704         (emit_marshal_object): indentation police.
2705
2706         * class-internals.h: Define MonoSafeHandle.
2707         Add safehandle_class to MonoDefaults type.
2708
2709         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
2710         list of classes to check for fields. 
2711
2712         * domain.c (mono_init_internal): Add SafeHandle to the list of
2713         mono_defaults loaded.
2714
2715 2006-12-15  Raja R Harinath  <rharinath@novell.com>
2716
2717         Fix #80253
2718         * reflection.c (mono_reflection_bind_generic_parameters): If the
2719         generic type definition is a type builder, ensure that it is fully
2720         initialized before instantiating it.  Kill some dead code.
2721
2722 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
2723
2724         * object.c: clear the loader_error () before loading
2725         more metadata stuff (bug #80258).
2726
2727 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
2728
2729         * icall.c, icall-defs.h: type modifiers icalls for
2730         parameters and properties.
2731
2732 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
2733
2734         * object.c, icall.c: fixed warnings.
2735
2736 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
2737
2738         * marshal.c: fixed a couple of leaks and coding style in a few places.
2739
2740 2006-12-08  Dick Porter  <dick@ximian.com>
2741
2742         * process.c: Cope with NULL ProcessStartInfo arguments on windows
2743         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
2744         80173.
2745
2746 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
2747
2748         * process.c: ProcessStartInfo may have only filename set and
2749         arguments can be NULL.
2750
2751 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2752
2753         * icall.c: fix leak found by Robert Jordan.
2754
2755 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
2756
2757         * marshal.c, marshal.h: generate managed method to access an element
2758         of a multi-dimensional array.
2759
2760 2006-11-30  Paolo Molaro (lupus@ximian.com)
2761
2762         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
2763
2764 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2765
2766         * icall.c: back out GetFields () fix until the serialization code is
2767         fixed to not depend on the incorrect behaviour.
2768
2769 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
2770
2771         * profiler.c: provide defaults if none are set.
2772
2773 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
2774
2775         * Makefile.am, attrdefs.h: new public header file with
2776         constants for attributes for use by embedders.
2777
2778 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
2779
2780         * icall.c: GetFields () fix for bug #80064.
2781
2782 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
2783
2784         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
2785         removed long unused icalls.
2786
2787 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
2788   
2789         * marshal.c: 
2790                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
2791                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
2792                 can be generated without a delegate class.
2793                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
2794         
2795         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
2796
2797 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2798
2799         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
2800         #80069.
2801
2802 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
2803
2804         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
2805         icall-def.h: added icalls needed by System.GC.
2806
2807 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
2808
2809         * loader.c: ensure the class in catch clauses is handled
2810         correctly for generics methods (fixes bug#79980).
2811
2812 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
2813
2814         * monitor.h, monitor.c: added mono_locks_dump () function
2815         to help debug deadlocks involving managed locks.
2816
2817 2006-11-13  Dick Porter  <dick@ximian.com>
2818
2819         * file-io.c (get_file_attributes): If the file is a symlink try
2820         and get the stat data for the target, but also add the
2821         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
2822         the specs for the windows symlink support, but will probably have
2823         to be reworked when I have test data from a vista machine.  Fixes
2824         bug 79887.
2825
2826 2006-11-13  Dick Porter  <dick@ximian.com>
2827
2828         * gc.c (mono_domain_finalize): 
2829         * marshal.c (mono_delegate_begin_invoke): 
2830         * threadpool.c (socket_io_init, mono_thread_pool_init)
2831         (mono_thread_pool_finish): 
2832         * monitor.c (mono_monitor_try_enter_internal): 
2833         * threads.c (mono_thread_resume, mono_thread_init)
2834         (mono_thread_suspend_all_other_threads)
2835         (mono_thread_execute_interruption): 
2836         * appdomain.c (mono_domain_unload): Check for NULL error returns
2837         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
2838         75733.
2839
2840 2006-11-11  Miguel de Icaza  <miguel@novell.com>
2841
2842         * process.c
2843         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
2844         Only close the handle if the value of the handle is not
2845         INVALID_HANDLE_VALUE.  This just makes the process a bit more
2846         robust.
2847
2848         Improvement for #75733, so that we do not run into this problem. 
2849
2850         
2851         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
2852         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
2853         internal variables.  Fixes #79462 
2854         
2855
2856 2006-11-09  Dick Porter  <dick@ximian.com>
2857
2858         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
2859         Use poll() not select().  Fixes bug 79397.
2860
2861 2006-11-09  Raja R Harinath  <rharinath@novell.com>
2862
2863         Fix #79872
2864         * assembly.c (mono_assembly_load_from_full): Check that the given
2865         image has an assembly manifest.
2866
2867 2006-11-09  Ankit Jain  <jankit@novell.com>
2868
2869         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
2870         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
2871         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
2872
2873 2006-11-07  Dick Porter  <dick@ximian.com>
2874
2875         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
2876         Put the old resolver behaviour back for pre-2.0 profiles.
2877
2878 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
2879
2880         * threadpool.c: precise GC and locking fixes.
2881
2882 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
2883
2884         * class.c: don't load types that have an explicit unaligned
2885         managed reference. Provide better info in the TypeLoad exception.
2886         Part of the fix for bug #79744.
2887         * object.c: use the correct check for class type load issues.
2888
2889 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
2890
2891         * class.c: enforce alignment of fields with managed references
2892         even when Pack=1 is forced by the user (bug #77788).
2893
2894 2006-11-03  Dick Porter  <dick@ximian.com>
2895
2896         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
2897         If the address reverse lookup fails, return it as the hostname
2898         anyway.  Fixes bug 79721.
2899
2900 2006-11-03  Dick Porter  <dick@ximian.com>
2901
2902         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
2903         Fix build on Windows.
2904
2905 2006-11-02  Dick Porter  <dick@ximian.com>
2906
2907         * icall-def.h: 
2908         * object-internals.h: 
2909         * exception.c (mono_get_exception_thread_interrupted): 
2910         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
2911         Fixes bug 74525.
2912
2913         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
2914         Check for pending Thread.Interrupt.
2915
2916 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
2917         * loader.c: Fixed bug 79684.
2918
2919 2006-10-27  Dick Porter  <dick@ximian.com>
2920
2921         * file-io.c (get_file_attributes): Force symlinks to directories
2922         to be returned as a regular file.  Fixes bug 79733.
2923 2006-10-26  Dick Porter  <dick@ximian.com>
2924
2925         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
2926         CreateFile to open a directory then we need to set the
2927         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
2928
2929 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
2930
2931         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
2932         friends.
2933
2934 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
2935
2936         * sgengc.c: small cleanup of timer code.
2937
2938 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
2939
2940         * sgen-gc.c: fix some warnings and start adding support for
2941         complete object removal on domain unload.
2942
2943 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
2944
2945         * assembly.c: build_assembly_name should not consider a version
2946         number without build or revision number invalid. Fixes bug #79715.
2947
2948 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
2949
2950         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
2951         call kernel32 function OutputDebugString directly.
2952         
2953         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
2954         
2955 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
2956
2957         * reflection.c: small cleanup, using a function to insert a MonoString
2958         in the string heap.
2959
2960 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
2961
2962         * reflection.c: moving GC fixes.
2963
2964 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
2965
2966         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
2967         all the objects with finalizers belonging to an unloading appdomain.
2968
2969 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
2970
2971         * sgen-gc.c: added ability to allocate even when the nursery is fully
2972         pinned and fixed a couple of bugs.
2973
2974 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
2975
2976         * threads.h: Revert the last change for now.
2977
2978         * threads.h (mono_thread_get_pending_exception): Rename this to
2979         mono_thread_get_undeniable_exception ().
2980
2981 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
2982
2983         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
2984         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
2985         when fname does not refer to valid assembly. This result in a more
2986         meaningful error message.
2987         * exception.c: added mono_get_exception_bad_image_format2 which 
2988         constructs a BadImageFormatException using the ctor taking a custom
2989         message and the file name. Passing in a NULL msg results in a default
2990         message.
2991         * exception.h: define mono_get_exception_bad_image_format2 function.
2992         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
2993         when file name pointed to an invalid IL image. Use 
2994         mono_get_exception_file_not_found2 to construct FileNotFoundException,
2995         as this results in a more meaningful error message.
2996
2997 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
2998
2999         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
3000         #79465.
3001
3002 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
3003
3004         * metadata.c (mono_type_size): Change the align parameter to guint32 for
3005         consistency with the other _size functions.
3006         (mono_type_stack_size): Ditto.
3007
3008         * class.c object.c icall.c: Fix warnings caused by the above change.
3009
3010         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
3011
3012         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
3013
3014         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
3015
3016 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
3017
3018         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
3019         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
3020         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
3021         threadpool.h, threads-types.h: mark more internal functions.
3022
3023 2006-10-11  Dick Porter  <dick@ximian.com>
3024
3025         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
3026         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
3027         reproduce the bug even before applying the fix.)
3028
3029 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
3030
3031         * reflection.c: allow retrieving attributes for arguments in generic
3032         methods (bug #79241).
3033
3034 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
3035
3036         * debug-mono-symfile.c: properly check fopen () result (found by
3037         coverity).
3038
3039 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
3040
3041         * reflection.c: make error message clearer and fixed two
3042         issuelets found by Coverity.
3043
3044 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
3045
3046         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
3047
3048 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
3049
3050         * object-internals.h, gc-internal.h, profiler-private.h:
3051         mark internal functions.
3052
3053 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
3054
3055         * reflection.c: put data in the text section.
3056         * icall.c: recognize more types in type_from_typename ().
3057         * process.c, marshal.c: added some GC FIXMEs.
3058
3059 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
3060
3061         * loader.c: check for NULL before initializing.
3062
3063 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
3064
3065         * gc.c (finalizer_thread): Use a non-alertable wait here.
3066
3067         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
3068         until the correct solution is found.
3069
3070 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
3071
3072         * reflection.c (mono_module_get_object): Avoid an assert when operating on
3073         modules with no metadata. Fixes #79596.
3074
3075         * image.c (load_metadata_ptrs): Put back the error message when
3076         the #- heap is encountered since the support is not complete yet.
3077
3078 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
3079
3080         * gc.c: do not allow the user to SuppressFinalize () a
3081         delegate because it would leak the trampoline if present.
3082
3083 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
3084
3085         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
3086         PropertyPtr table.
3087
3088 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
3089
3090         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
3091
3092         * metadata.c (mono_metadata_get_param_attrs): Ditto.
3093
3094         * row-indexes.h: Add definitions for *Ptr tables.
3095
3096         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
3097
3098         * metadata.c (mono_metadata_translate_token_index): New helper function to
3099         translate table indexes used in uncompressed metadata.
3100         (mono_metadata_decode_table_row): Ditto.
3101         (mono_metadata_decode_table_row_col): Ditto.
3102
3103         * metadata.c: Add table schema for *Ptr tables.
3104
3105         * class.c loader.c: Use the new helper function to access the affected metadata
3106         tables.
3107         
3108         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
3109         #38532.
3110         
3111 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
3112
3113         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
3114         sequences which can be unbounded in size. Fixes #79583.
3115
3116 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
3117
3118         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
3119         static initialization.
3120
3121         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
3122
3123         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
3124
3125         * domain.c (mono_domain_free): Free up type_init_exception_hash.
3126
3127         * object.c (mono_runtime_class_init): Implement correct semantics when a static
3128         ctor fails, i.e. throw the same exception on subsequent accesses.
3129         
3130 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
3131
3132         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
3133         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
3134         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
3135         Handle marshalling of interfaces and VARIANTs contained in structs.
3136         
3137         Code is contributed under MIT/X11 license.
3138         
3139 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
3140
3141         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
3142         
3143         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
3144         mempool.
3145
3146 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3147
3148         * console-io.c: ignore previous SIGINT handler.
3149
3150 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
3151
3152         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
3153         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
3154         #79460, #79461, #79485.
3155
3156         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
3157
3158         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
3159         #79217.
3160
3161 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
3162
3163         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
3164         could be generated from it.
3165
3166 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
3167
3168         * rand.c: fix read loop to correctly handle EINTR.
3169
3170 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
3171
3172         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
3173         internal calls are defined to keep methods closer to the declaring
3174         type and allow a significant reduction in runtime relocations and
3175         memory usage.
3176
3177 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
3178
3179         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
3180         exception message to have FileNotFoundException use the default
3181         assembly load error message. Fixes bug #79426.
3182         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
3183
3184 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3185
3186         * threadpool.c: (start_thread_or_queue) use the root domain when
3187         creating the thread instead of the async object one.
3188
3189 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
3190
3191         * class.c, object.c, class-internals.h, reflection.c:
3192         for arrays, store element_size inside MonoClass (speedup
3193         for array object creation).
3194
3195 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
3196
3197         * icall.c: fixed CodeBase to use the file name and not the module
3198         name (bug #79365).
3199
3200 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
3201
3202         * mono-debug.c, mono-debug.h: export find_method as
3203         mono_debug_find_method ().
3204
3205 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
3206
3207         * debug-helpers.c, class-internals.h: added a few functions useful
3208         when debugging under gdb.
3209
3210 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3211
3212         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
3213         characters that need special handling.
3214
3215 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
3216
3217         * mono-config.c: make the os/cpu specification more flexible,
3218         allowing lists and negation.
3219
3220 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
3221
3222         * marshal.c: COM Interop fixes. Handle case where method->klass.
3223         is interface. Handle BSTR/MonoString when null. Use CDECL as 
3224         calling convention on non-windows platforms. This is for
3225         compatibility with XPCOM and MainWin COM.
3226         
3227         Code is contributed under MIT/X11 license.
3228         
3229
3230 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
3231
3232         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
3233         correctly. Fixes #79217.
3234
3235         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
3236
3237 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
3238
3239         * mono-config.c: allow both an os and cpu attribute for dllmap
3240         and dllentry elemnets to enable a single config file to be used
3241         for multiple architectures.
3242
3243 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
3244
3245         * loader.c: MonoLoaderError was cleared too soon on load failure.
3246         Fixes bug #79424.
3247
3248 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
3249
3250         * icall.c: use the defining class vtable when accessing a
3251         static field, not a pobblibly derived class.
3252
3253 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
3254
3255         * icall.c string-icalls.c: Remove references to unicode.h.
3256
3257         * unicode.h unicode.c Makefile.am: Remove these unused source files.
3258
3259         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
3260
3261         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
3262         indicating the image where custom marshaller types should be looked up.
3263         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
3264         custom marshallers, instead of corlib. Fixes #79425.
3265
3266 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
3267
3268         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
3269
3270 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
3271
3272         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
3273         Implement Environment.ProcessorCount.
3274         
3275         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
3276         Implement Environment.ProcessorCount.
3277         
3278         * icall.c: 
3279         Add Environment.ProcessorCount icall.
3280         
3281         Patch by Jason McFall.
3282
3283 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3284
3285         * assembly.c: don't append .exe/.dll when the filename already contains
3286         one of those extensions.
3287
3288 2006-09-12  Martin Baulig  <martin@ximian.com>
3289
3290         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
3291         to array interfaces.
3292
3293 2006-09-11  Martin Baulig  <martin@ximian.com>
3294
3295         * reflection.c (mono_image_build_metadata): Create the
3296         MethodImpl's after emitting all types and methods, so we don't
3297         need another fixup pass for them.
3298
3299 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
3300
3301         * class.c (mono_class_from_name_case): Fix regression introduced by the last
3302         change.
3303
3304 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
3305
3306         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
3307         unload.
3308
3309 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
3310
3311         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
3312         args is not set. Fixes #78926.
3313
3314 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
3315
3316         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
3317
3318         * image.c (load_class_names): Move this to class.c, and rename it to 
3319         'mono_image_init_name_cache'.
3320         (load_modules): Fix a warning.
3321
3322         * class.c icall.c image.c: Initialize image->name_cache lazily.
3323
3324         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
3325         on its name using information in the AOT file.
3326
3327         * class.c (mono_class_from_name): Use the new hook function.
3328
3329 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
3330
3331         * reflection.c (mono_param_get_objects): Handle enum default parameter values
3332         correctly.
3333
3334         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
3335         Fixes #79289.
3336         
3337 2006-09-06  Martin Baulig  <martin@ximian.com>
3338
3339         * icall.c (mono_lookup_internal_call): Small fix.
3340
3341 2006-09-05  Raja R Harinath  <rharinath@novell.com>
3342
3343         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
3344         double g_free.
3345
3346 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
3347
3348         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
3349         when --debug is specified.
3350
3351 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
3352
3353         * class.c (setup_generic_array_ifaces): Fix a warning.
3354
3355 2006-09-04  Miguel de Icaza  <miguel@novell.com>
3356
3357         * Temporarily remove the patch to assemly.c that checks the
3358         assembly versions as it breaks our gacutil.
3359
3360 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
3361
3362         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
3363
3364         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
3365         a net 1.0 runtime.
3366
3367         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
3368         created using the default ctor. Fixes #79152.
3369         (mono_string_builder_to_utf16): Ditto.
3370
3371 2006-09-01  Martin Baulig  <martin@ximian.com>
3372
3373         Fix handling of the generic array interfaces.
3374
3375         * class-internals.h
3376         (MonoDefaults): Removed `generic_array_class' and added
3377         `generic_ilist' class.
3378
3379         * class.c
3380         (mono_bounded_array_class_get): Add the new generic array interfaces.
3381         (setup_generic_array_ifaces): New static method; create vtable
3382         entries for each method in the generic array interfaces.
3383
3384         * metadata.c
3385         (select_container): Allow "parent-less" generic methods.
3386
3387         * marshal.c
3388         (mono_marshal_get_generic_array_helper): New public method.
3389
3390         * icall.c
3391         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
3392         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
3393         moved the interncall into System.Array.
3394
3395 2006-09-01  Raja R Harinath  <rharinath@novell.com>
3396
3397         A few more cases of avoiding work on types with ->byref set.
3398         Has the real fix for #79238
3399         * icall.c (is_generic_parameter): New helper.
3400         (ves_icall_Type_GetGenericParameterPosition): Use it.
3401         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
3402         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
3403         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
3404         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
3405         reference types.
3406         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
3407         reference types.
3408         (ves_icall_Type_get_IsGenericInstance): Likewise.
3409         (ves_icall_Type_get_IsGenericType): Likewise.
3410
3411 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
3412
3413         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
3414         class if possible.
3415
3416         * mempool.h (mono_mempool_get_allocated): New helper function.
3417
3418         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
3419         change.
3420
3421         * mempool.c: Fix warnings and the calculation of stats.
3422
3423         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
3424
3425         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
3426
3427         * loader.c (mono_get_method_from_token): Update method_count stat.
3428
3429         * class-internals.h (MonoStats): Add some stats.
3430
3431 2006-08-31 Robert Jordan  <robertj@gmx.net>
3432
3433         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
3434         with managed variants.
3435         All code is contributed under the MIT/X11 license.
3436         
3437 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
3438
3439         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
3440         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
3441
3442         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
3443
3444         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
3445         with cycles in classes.
3446
3447         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
3448
3449         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
3450         missing a [MarshalAs] directive. Fixes #79203.
3451
3452         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
3453         klass->marshal_info. Fixes #79217.
3454
3455 2006-08-30  Martin Baulig  <martin@ximian.com>
3456
3457         Committing a patch from Joachim Ante <joe@otee.dk>:
3458         Add support for binary data symbol stores.
3459
3460         * debug-mono-symfile.c
3461         (mono_debug_open_mono_symbol_file): Renamed into
3462         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
3463         arguments.
3464
3465         * mono-debug.c
3466         (mono_debug_open_image): Added `raw_contents' and `size' args.
3467         (mono_debug_init_2_memory): New public function.
3468
3469 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
3470
3471         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
3472
3473 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3474
3475         * appdomain.c: implement support for ShadowCopyFiles.
3476
3477 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
3478
3479         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
3480         when value is NULL (and should remove CID #51).
3481
3482 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3483
3484         * image.c: moved 2 functions to ../utils.
3485
3486 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
3487
3488         * gc.c: cope with the target object of a GC handle being NULL
3489         (bug #78877).
3490
3491 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
3492
3493         * class.c: recursively check parent's explicit implementations
3494         of interface methods (fixes bug #79125).
3495
3496 2006-08-19  Miguel de Icaza  <miguel@novell.com>
3497
3498         * filewatcher.c: Avoid warnings when building, do not redefine
3499         constants that are defined.
3500
3501         Remove warnings.
3502
3503 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3504
3505         * image.c: don't fail when the link points to an absolute path.
3506
3507 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
3508
3509         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
3510         Fix CID #3.
3511
3512 2006-08-17  Miguel de Icaza  <miguel@novell.com>
3513
3514         * image.c (full_path): A new method used to obtain the actual path
3515         of an assembly even in the presence of symbolic links.  
3516
3517         This is necessary for the case where we are running a binary that
3518         has been GACed, but we are using the "published" path name
3519         ($prefix/mono/1.0/blah.exe) which happens to point to the real
3520         file in the GAC.
3521
3522         This was the source of the failure for the `xsp' command with the
3523         recent AppDomain changes, as far as the runtime was concerned,
3524         there were two different assemblies: $prefix/mono/1.0/blah.exe and
3525         $prefix/mono/gac/blah/version/blah.exe.
3526
3527         (do_mono_image_open): use full path
3528
3529 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3530
3531         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
3532
3533 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
3534
3535         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
3536         domain_id is supplied. Fix CID #241 and corlib's unit tests.
3537
3538 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3539
3540         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
3541         small structures. Fixes #78990.
3542
3543 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3544
3545         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
3546
3547         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
3548
3549 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3550
3551         * appdomain.c:
3552         * marshal.c: don't load all the assemblies from a domain into newly
3553         created ones. The new domains might have different rules and load
3554         assemblies from different locations. Fixes bug #76757.
3555
3556         Patch by Lluis. Conflicts resolved by Brian Crowell.
3557
3558 2006-08-16  Alp Toker  <alp@atoker.com>
3559
3560         * socket-io.c: First half of the fix for #79084.
3561         Set sa_size to the length of the content, not that of the struct.
3562         Don't add NULL suffix to the content, this should be done in
3563         managed code if needed.
3564
3565 2006-08-14  Raja R Harinath  <rharinath@novell.com>
3566
3567         Fix part of #79012
3568         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
3569         mono_metadata_parse_type returns NULL.
3570
3571 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
3572
3573         * normalization-tables.h : new file for string normalization data.
3574         * locales.c, locales.h, icall.c :
3575           added load_normalization_resource() for string normalization,
3576           and icall as well.
3577         * Makefile.am : added normalization-tables.h to the sources.
3578
3579 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
3580
3581         * marshal.c: Add more helper functions to reduce code duplication and use them
3582         everywhere.
3583
3584 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
3585
3586         * marshal.c: Fix non-x86 stdcall warnings.
3587         
3588         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
3589         them everywhere.
3590
3591 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
3592
3593         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
3594         type check on multi-dimensional arrays. Fixes #79000.
3595
3596 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
3597
3598         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
3599         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
3600         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
3601         * class-internals.h: add is_com_object to class structure.
3602         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
3603         null checks to COM object marshalling. Fix .ctor call on RCW.
3604         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
3605         
3606         All code is contributed under the MIT/X11 license.
3607
3608 2006-08-09  Dick Porter  <dick@ximian.com>
3609
3610         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
3611         racing mono_monitor_allocator_lock() somewhere, so don't delete
3612         the critical section for now.  Found by running and exiting
3613         monodevelop.
3614
3615 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
3616
3617         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
3618         (ves_icall_System_ComObject_FindInterface): Ditto.
3619         (ves_icall_System_ComObject_CacheInterface): Ditto.
3620
3621         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
3622         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
3623
3624 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3625
3626         * threadpool.c: treat pipes from process asynchronous reads as sockets
3627         when reading from them, so we get select/poll or epoll to wait for
3628         data.
3629
3630 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
3631
3632         * loader.c: Fix a typo (CID #233) in the null check.
3633
3634 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
3635
3636         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
3637         Hopefully fixes #78949.
3638         
3639         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
3640         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
3641         bytes. Fixes #78972.
3642
3643 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3644
3645         * filewatcher.c: we need to set errno here.
3646
3647 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3648
3649         * filewatcher.c: let Win32Exception get the error value.
3650
3651 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3652
3653         * filewatcher.c: translate errno into win32 errors for Win32Exception
3654         to know what happened.
3655
3656 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
3657
3658         * threadpool.c: Fix more warnings.
3659
3660         * assembly.c (search_loaded): Fix warnings.
3661
3662         * threadpool.c (mono_thread_pool_finish): Fix warnings.
3663         (mono_async_invoke): Ditto.
3664
3665 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
3666
3667         * object.c (mono_remote_class_vtable): Need to create proxy vtable
3668         entries for __ComObject type in addition to ComImport types.
3669         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
3670         about hash table.
3671         
3672         All code is contributed under the MIT/X11 license.
3673
3674 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
3675
3676         * image.c: avoid tentative loading of modulerefs that contain
3677         no metadata (P/Invoke library names).
3678
3679 2006-07-28  Dick Porter  <dick@ximian.com>
3680
3681         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
3682         mono_loader_lock() somewhere, so don't delete the critical section
3683         for now.  Found by running and exiting monodevelop.
3684
3685 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3686
3687         * filewatcher.c: define the inotify syscalls when we're building on
3688         linux and have sys/syscall.h. The build system might not have support
3689         for inotify but the target system might have it.
3690
3691 2006-07-26  Miguel de Icaza  <miguel@novell.com>
3692
3693         * domain.c: Documentation updates.
3694
3695         * loader.c (mono_free_method): Do not release the method
3696         information if we are being profiled, as profilers will use this
3697         information at shut down to present some data to the user.
3698
3699         This is needed so that the profiler does not crash, as the
3700         profiler tends to keep MonoMethods around, and they might become
3701         invalid if we free these.
3702
3703         (mono_get_method_constrained): Return the original CIL stream
3704         method as well, so verification can be performed against it.
3705
3706 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3707
3708         * filewatcher.[ch]: support for inotify file system watcher.
3709         * icall.c: add new internal calls for the inotify file system watcher.
3710
3711 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3712
3713         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
3714         #78888.
3715
3716 2006-07-20  Dick Porter  <dick@ximian.com>
3717
3718         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
3719         warning.
3720
3721 2006-07-20  Dick Porter  <dick@ximian.com>
3722
3723         * threads.c (start_wrapper): Do the thread cleanup while we still
3724         hold a reference to its object.  Fixes bug 78123.
3725
3726 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
3727
3728         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
3729         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
3730           "managed-to-managed".
3731         * icall.c: Redirect string constructors that take sbyte* to
3732           ves_icall_System_String_ctor_RedirectToCreateString.
3733         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
3734           to CreateString () methods with matching signature.
3735         * reflection.c: Use original security informations for
3736           MONO_WRAPPER_MANAGED_TO_MANAGED.
3737         * security-manager.c: Use original security informations for
3738           MONO_WRAPPER_MANAGED_TO_MANAGED.
3739         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
3740           that is a placeholder and only its address should be used.
3741         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
3742           that is a placeholder and only its address should be used.
3743
3744 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
3745
3746         Begin implementing COM Interop.
3747         * appdomain.c: Increment corlib version.
3748         * class.c: Set ComImport classes' parent to __ComObject.
3749         * loader.c: Mark cominterop methods as such.
3750         * domain.c: Add __ComObject class to MonoDefaults structure.
3751         * image.c: Add 2 hashtables to the image for COM Interop related methods
3752         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
3753         using the mempool allocator
3754         
3755         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
3756         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
3757         declaration for mono_metadata_type_dup_mp.
3758         
3759         * debug-helpers.c: Added strings for two additional wrapper types
3760         * object.c: Create proxy objects for ComImport classes
3761         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
3762         and added __ComObject class to MonoDefaults structure.
3763         
3764         * object-internals.h: Finish MonoRealProxy definition, and add definition of
3765         MonoComInteropProxy and MonoComObject.
3766         
3767         * marshal.c: Added support for COM Interop
3768         (signature_cominterop): Converts managed signature to corresponding
3769         unmanaged COM signature.
3770         (cominterop_get_function_pointer): gets unmanaged function pointer via
3771         COM object vtable
3772         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
3773         (cominterop_get_method_interface): returns interface type that method is defined on
3774         (mono_mb_emit_cominterop_call): emits native call to function pointer
3775         gotten from vtable
3776         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
3777         that matches signature of unmanaged function.
3778         (cominterop_get_native_wrapper): wrapper around adjusted method call.
3779         (cominterop_get_invoke): forwards call from proxy to __ComObject
3780         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
3781         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
3782         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
3783         
3784         * marshal.h: Added Marshal icall declarations.
3785         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
3786         so we can access them in finalizer
3787         
3788 2006-07-14  Dick Porter  <dick@ximian.com>
3789
3790         * object.c (mono_type_initialization_cleanup): Fix a race
3791         condition by temporarily commenting out the critical section
3792         deletion.
3793
3794 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
3795
3796         * reflection.c (create_custom_attr): Fix some warnings.
3797         (create_custom_attr_data): Ditto.
3798         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
3799         types. Fixes #78855.
3800
3801 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
3802
3803         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
3804
3805         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
3806
3807 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
3808
3809         * reflection.c (resolve_object): Add support for DynamicMethod.
3810
3811         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
3812         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
3813
3814 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
3815
3816         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
3817         don't leak GPtrArray's pdata has we have no use (nor free) for it.
3818
3819 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
3820
3821         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
3822         Fixes #77888.
3823
3824 2006-06-30  Raja R Harinath  <rharinath@novell.com>
3825
3826         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
3827         slightly: remove a shadow local variable.
3828
3829 2006-06-29  Raja R Harinath  <rharinath@novell.com>
3830
3831         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
3832         definition that introduces the virtual function slot.
3833         Also fix Coverity #105.
3834
3835 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
3836
3837         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
3838         for dynamic assemblies. Fixes #78724.
3839
3840 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
3841
3842         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
3843         Fixes #78722.
3844
3845 2006-06-21  Martin Baulig  <martin@ximian.com>
3846
3847         * reflection.c
3848         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
3849         fixes #76484.
3850
3851 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
3852
3853         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
3854
3855 2006-06-20  Raja R Harinath  <rharinath@novell.com>
3856
3857         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
3858         nor TYPEREFs.
3859         * class.c (mono_class_create_from_typespec): Add 'context' argument.
3860         Inflate result if necessary.
3861         (mono_class_get_full): Remove old version.  Rename from
3862         'mono_class_get' and add 'context' argument.  Pass it to
3863         ..._create_from_typespec.
3864         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
3865         (mono_ldtoken): Revert change below.
3866
3867 2006-06-20  Martin Baulig  <martin@ximian.com>
3868
3869         * class.c (mono_ldtoken): Don't pass the generic context to
3870         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
3871
3872 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
3873
3874         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
3875         and later freeing it. Fixes #78638.
3876
3877 2006-06-15  Miguel de Icaza  <miguel@novell.com>
3878
3879         * icall.c (mono_class_get_throw): Revert over-zealous error
3880         throwing, the caller for mono_class_get_throw will cope with
3881         errors when classes are not properly initialized already.
3882
3883         The code still copes with loader exceptions though.
3884
3885         Fixes the regression in reftype1 and reftype3 from the CAS tests.
3886         
3887 2006-06-14  Miguel de Icaza  <miguel@novell.com>
3888
3889         Fixes the `make run1' version of RuntimeAbort (to be commited,
3890         source is in Bugzilla).
3891         
3892         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
3893         FALSE on class loading failure instead of returning true.
3894
3895         * class.c (mono_class_create_from_typedef): It is possible for
3896         mono_metadata_interfaces_from_typedef_full to fail if a class is
3897         not found, cope with this.
3898         
3899
3900 2006-06-14  Dick Porter  <dick@ximian.com>
3901
3902         * socket-io.c: 
3903         * process.c: Fix a bunch of signed/unsigned warnings from gcc
3904         4.1.1
3905
3906 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
3907
3908         * culture-info-table.h : oops, forgot to make it nsync with r61548.
3909
3910 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
3911
3912         * icall.c: Another fix for building mono in Visual Studio.
3913
3914 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
3915
3916         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
3917         
3918 2006-06-09  Martin Baulig  <martin@ximian.com>
3919
3920         * debug-mono-symfile.c: Put this back and really fix it this
3921         time. Sorry for all the trouble.
3922
3923 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
3924
3925         * icall.c (mono_class_get_throw): Fix a warning.
3926         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
3927         ReflectionTypeLoadException if needed. Fixes #78606.
3928
3929         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
3930         (mono_class_init): Ditto.
3931
3932         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
3933         ref_only exceptions.
3934         (mono_loader_clear_error): Make this work even if there is no error.
3935
3936 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
3937
3938         * object-internals.h marshal.c marshal.h icall.c: Implement method 
3939         Marshal.GetComSlotForMethodInfo using internal call.
3940
3941 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
3942
3943         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
3944         a function for signalling it.
3945
3946         * class.c (mono_class_from_typeref): Use the new kind of loader error when
3947         a referenced assembly is not found.
3948
3949         * loader.c (mono_loader_error_prepare_exception): Add support for 
3950         LOADER_ERROR_ASSEMBLY. Fix formatting.
3951
3952 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
3953
3954         * domain.c appdomain.c class-internals.h marshal.c: Add support 
3955         for VARIANT marshalling on windows and increment corlib version
3956         since Variant struct was added.
3957
3958 2006-06-03  Miguel de Icaza  <miguel@novell.com>
3959
3960         * debug-mono-symfile.c: Revert Martin's previous patch which broke
3961         stack trace line information:
3962
3963         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
3964         (Martin) when looking up B which is between A and C, return A not C.
3965
3966         Bug is #78573.
3967
3968         Thanks to Alexander Olk for tracking this down.
3969
3970 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
3971
3972         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
3973         
3974         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
3975         avoid clobbering its value.
3976         (mono_string_to_lpstr): Fix a warning on windows.
3977
3978 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
3979
3980         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
3981
3982         * reflection.c loader.c: Removed references to 'dummy' flag.
3983
3984         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
3985
3986         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
3987         it gets GC tracking.
3988
3989         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
3990         GC tracking.
3991         
3992         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
3993
3994         * marshal.c threadpool.c: Update callers of mono_async_result_new.
3995
3996         * appdomain.c: Bump corlib version.
3997
3998 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
3999
4000         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
4001         CEE_STIND_REF when working with object references.
4002
4003 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
4004
4005         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
4006         Fixes #78539.
4007
4008 2006-05-30  Miguel de Icaza  <miguel@novell.com>
4009
4010         * loader.c (method_from_memberref): Fix argument value for
4011         mono_loader_set_error_method_load (I was passing the MonoClass
4012         instead of the class name char *).
4013
4014 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
4015
4016         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
4017         CEE_STIND_REF when working with object references.
4018
4019 2006-05-30  Martin Baulig  <martin@ximian.com>
4020
4021         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
4022         mono_method_full_name() change and replace the ':' with a '.'
4023         here.
4024
4025 2006-05-30  Martin Baulig  <martin@ximian.com>
4026
4027         * debug-mono-symfile.c
4028         (mono_debug_symfile_lookup_location): Fix the algorithm:
4029         when looking up B which is between A and C, return A not C.
4030
4031 2006-05-29  Martin Baulig  <martin@ximian.com>
4032
4033         * mono-debug.h
4034         (MonoDebugMethodInfo): Make the typedef public.
4035         (MonoDebugSourceLocation): New public struct.
4036
4037         * mono-debug.c
4038         (mono_debug_source_location_from_address): Removed.
4039         (mono_debug_source_location_from_il_offset): Removed.
4040         (mono_debug_il_offset_from_address): Removed.
4041         (mono_debug_address_from_il_offset): Removed.
4042         (mono_debug_lookup_method): New public function.
4043         (mono_debug_lookup_source_location): New public function; replaces
4044         the old mono_debug_source_location_from_*() functions; see the
4045         inline documentation.
4046         (mono_debug_free_source_location): New public function.
4047         (mono_debug_print_stack_frame): New public function; see the
4048         inline documentation.
4049
4050         * debug-mono-symfile.c
4051         (mono_debug_find_source_location): Renamed into
4052         mono_debug_symfile_lookup_location(); only take a
4053         `MonoDebugMethodInfo *' and an `offset' argument; added inline
4054         documentation.
4055         (mono_debug_find_method): Renamed into
4056         mono_debug_symfile_lookup_method().
4057
4058 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
4059
4060         * assembly.c (mono_assembly_open_full): Dont overwrite the status
4061         returned by mono_image_open_full ().
4062
4063         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
4064         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
4065         #78517.
4066
4067         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
4068         #78518.
4069
4070 2006-05-27  Miguel de Icaza  <miguel@novell.com>
4071
4072         * class.c (mono_class_from_typeref): handle missing images
4073         earlier, deals with bug #78418.   Refactor code; 
4074
4075         Fix a warning introduced in my previous commit (some stale code
4076         from before I revisited my patch).
4077
4078         * class.c (mono_class_create_from_typedef): On failure, remove the
4079         class from the MonoImage->class_cache as the class is not
4080         initialized;   Fixes the leak pointed out by Paolo.
4081
4082 2006-05-25  Dick Porter  <dick@ximian.com>
4083
4084         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
4085         DeleteCriticalSections until I figure out which one may still be
4086         sometimes locked when mono_thread_cleanup is called.
4087
4088 2006-05-24  Dick Porter  <dick@ximian.com>
4089
4090         * threads.c (mono_thread_cleanup): Move the threading cleanup out
4091         of mono_thread_manage and back into its own function, so it can be
4092         called after the finalizer thread has finished.
4093
4094         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
4095
4096 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
4097
4098         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
4099         Fixes #78495.
4100
4101         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
4102         with non-blittable elements.
4103         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
4104
4105 2006-05-24  Martin Baulig  <martin@ximian.com>
4106
4107         * mono-debug-debugger.h (MonoDebuggerEvent): Added
4108         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
4109
4110         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
4111         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
4112         `mono_debugger_event_handler' to NULL.
4113
4114 2006-05-24  Martin Baulig  <martin@ximian.com>
4115
4116         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
4117
4118 2006-05-24  Martin Baulig  <martin@ximian.com>
4119
4120         * mono-debug-debugger.h
4121         (mono_debugger_create_notification_function): Added
4122         `MonoCodeManager *' argument.
4123
4124 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
4125
4126         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
4127
4128 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
4129
4130         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
4131         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
4132         implementation.
4133
4134 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
4135
4136         * icall.c: precise GC support: objects can't be stored in unmanaged
4137         memory anymore, even if they are kept alive by other references: since
4138         they can move the GC needs to be able to always find them.
4139
4140 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
4141
4142         * object.c: precise GC support for static fields. Support
4143         for moving GCs: write barriers and pinned allocation for interned
4144         strings.
4145
4146 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
4147
4148         * domain.c, domain-internals.h: precise GC support for the MonoDomain
4149         structure.
4150
4151 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
4152
4153         * class.c, gc.c: sgen and precise GC updates.
4154
4155 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
4156
4157         * marshal.h, marshal.c: added write barrier wrapper and precise type
4158         fixes.
4159
4160 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
4161
4162         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
4163         support.
4164
4165 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
4166
4167         * reflection.c: precise and sgen GC updates.
4168
4169 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
4170
4171         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
4172
4173 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
4174
4175         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
4176
4177 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
4178
4179         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
4180         MONO_TYPE_OBJECT. Fixes #78462.
4181
4182 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
4183
4184         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
4185         and blittable types.
4186
4187 2006-05-17  Miguel de Icaza  <miguel@novell.com>
4188
4189         * class.c (mono_class_get_exception_for_failure): Implement parts
4190         of a TODO: if the loader error is set (instead of the class
4191         error), we return a Loader exception that can be properly thrown
4192         elsewhere.
4193
4194         This was exposed by some Winforms 2.0 code that I tried to run
4195         (Atsushi pointed me to it).
4196
4197 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
4198
4199         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
4200         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
4201         
4202         * marshal.c (emit_marshal_vtype): Add limited support for 
4203         UnmanagedType.LPStruct. Fixes #78427.
4204
4205         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
4206         Applied a patch from kangaroo to fix #77523.
4207
4208 2006-05-17  Martin Baulig  <martin@ximian.com>
4209
4210         * threads.c
4211         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
4212         (debugger_thread_created): Removed.
4213         (debugger_thread_exited): Removed.
4214
4215 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
4216
4217         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4218
4219         * object-internals.h (MonoReflectionResource): Sync with managed version.
4220
4221 2006-05-12  Wade Berrier <wberrier@novell.com>
4222
4223         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
4224
4225 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
4226
4227         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
4228         functions try to allocate from the image mempool.
4229
4230 2006-05-12  Dick Porter  <dick@ximian.com>
4231
4232         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
4233
4234 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
4235
4236         * object.c: The FieldGetter and FieldSetter methods require the full
4237         name of the class, not only the name. Fixes bug #78277.
4238
4239 2006-05-11  Miguel de Icaza  <miguel@novell.com>
4240
4241         * loader.c (method_from_memberref): Do not pass the NULL klass to
4242         mono_loader_set_error_() methods.  Pass the non-NULL value
4243         (class). 
4244
4245 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
4246
4247         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
4248         (mono_assembly_close): Null out assembly->image->references after freeing it.
4249
4250         * image.c (mono_image_close): Free image->references.
4251         
4252         * reflection.c (mono_image_basic_init): Fix a small memory leak.
4253
4254 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
4255
4256         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
4257         before checking if it's NULL (g_assert).
4258
4259 2006-05-10  Martin Baulig  <martin@ximian.com>
4260
4261         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
4262         I thought I already killed that two months ago, but now it somehow reappeared.
4263
4264 2006-05-10  Martin Baulig  <martin@ximian.com>
4265
4266         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
4267
4268 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
4269
4270         * reflection.c: Allocate memory for dynamically created methods in the image
4271         mempools.
4272
4273 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
4274
4275         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
4276         don't use the ad pointer before checking if it's NULL (g_assert).
4277
4278 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
4279
4280         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
4281         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
4282
4283         * marshal.c: Allocate all signatures from mempools.
4284
4285         * marshal.c: Allocate some more signatures from mempools.
4286
4287 2006-05-09  Miguel de Icaza  <miguel@novell.com>
4288
4289         * object.c (mono_load_remote_field): The code used to provide a
4290         temporary variable for returning results if the user did not
4291         provide a result pointer.  But our temporary variable was allocted
4292         on the satck.
4293
4294         Fix calling code to always pass a result area.   Coverity ID 103.
4295
4296 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
4297
4298         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
4299         value, not the old. Fixes #78312.
4300         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
4301
4302         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
4303         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
4304         per-image cache.
4305
4306         * assembly.c (mono_assembly_close): Free image->references.
4307
4308         * assembly.c (mono_assembly_names_equal): Fix a warning.
4309         (mono_assemblies_cleanup): Cleanup more global data.
4310
4311         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
4312
4313         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
4314         ptr_cache and image->modules.
4315
4316         * image.c (mono_image_init): Allocate array_cache lazily.
4317         
4318 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4319
4320         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
4321         behavior was changed recently and has bad side effects.
4322
4323 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
4324
4325         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
4326         
4327         * assembly.c (mono_assembly_close): Remove a debug printf.
4328
4329         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
4330
4331         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
4332         to also allow for temporary references between mono_image_open ()/close ().
4333
4334         * domain.c (get_runtimes_from_exe): Add a FIXME.        
4335
4336 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
4337
4338         * marshal.c: Fix support for dynamic methods.
4339
4340         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
4341
4342         * marshal.c (mono_marshal_cleanup): New cleanup function.
4343
4344         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
4345         image mempools.
4346
4347         * class.c (mono_class_init): Fix leaking class->nested_classes.
4348
4349         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
4350
4351         * image.c (mono_image_init): Initialize the new cashes.
4352
4353         * image.c (mono_image_close): Destroy the new cashes.
4354
4355         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
4356
4357         * mempool.c (mono_mempool_strdup): New helper function.
4358
4359         * class-internals.h: Add prototype for mono_loader_unlock ().
4360
4361         * domain.c (mono_jit_info_table_find): Fix a warning.
4362         (mono_debugger_check_runtime_version): Ditto.
4363
4364         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
4365         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
4366         functions to these modules.
4367
4368         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
4369         metadata modules.
4370         
4371         * marshal.c (mono_free_bstr): Fix a warning.
4372
4373         * assembly.c (mono_assembly_open_full): Fix another small leak.
4374
4375         * object.c: Fix some unload leaks in the remoting code.
4376
4377         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
4378         function.
4379
4380         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
4381
4382         * reflection.c: Fix some unload leaks in dynamic assemblies.
4383
4384 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
4385
4386         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
4387         * marshal.h: Add BSTR support on Win32
4388         * icall.c: Add BSTR icalls
4389         * metadata.h: Add BSTR enums
4390
4391 2006-04-28  Miguel de Icaza  <miguel@novell.com>
4392
4393         Work to catch the crash from #76795 and turn it into an
4394         exception.   As I stubbed out pieces of the VisualBasic support,
4395         I found a number of places where the code was failing and I added
4396         checks to those places. 
4397         
4398         * metadata.c (do_mono_metadata_parse_generic_class): Make this
4399         function return a status code.  If we fail to parse the signature
4400         from mono_metadata_parse_generic_inst, return FALSE.
4401
4402         * loader.c (mono_get_method_from_token): If we fail to load the
4403         method (mono_class_get) return NULL.   
4404
4405         * (method_from_memberref): Return NULL if we are unable to parse
4406         the method signature
4407
4408         (mono_loader_error_prepare_exception): Since we now use the
4409         loader_error flag internally to stop processing, and obtaining
4410         exceptions that might be thrown will walk this code path the
4411         proper way of going from a MonoLoaderError into a
4412         MonoException was convoluted.   This new routine encapsulates the
4413         process of turning the error into an exception and *clearing* the
4414         error afterwards.
4415         
4416 2006-04-27  Miguel de Icaza  <miguel@novell.com>
4417
4418         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
4419         with missing assemblies), and to cope with:
4420
4421                 * Missing fieldref from a non-existing assembly.
4422                 * Missing methodref from a non-existing assembly.
4423
4424         The first batch of work to address *some* of the issues from 76661.
4425         
4426         * object.c (mono_class_create_runtime_vtable): If we fail to
4427         initialize the class raise the exception here. 
4428
4429         * metadata.c (mono_class_get_overrides_full): If any methods fail
4430         to load return the failure to the caller.
4431
4432         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
4433         flagging assemblies that failed to load.   
4434
4435         Do not crash if we are unable to load the assembly.
4436
4437         (mono_assembly_close): Do nothing with REFERENCE_MISSING
4438         assemblies. 
4439
4440         * loader.c (mono_loader_set_error_type_load): Change the
4441         convention to always pass unallocated strings, so we make our own
4442         copies (I know our own code had duplicated strings before, but
4443         this keeps the normal conventions).
4444         (method_from_memberref): Call mono_loader_set_error_method_load
4445         for all possible failures of loading the class. 
4446         Remove assert, turn into a loader error.
4447
4448         (mono_loader_error_to_exception): Move this routine from mini
4449         (mini_loader_error_to_exception) there was no need to have that in
4450         mini. 
4451
4452         * class.c (mono_class_from_typeref): If we were not able to load
4453         the assembly with mono_assembly_load_reference, call the
4454         mono_loader_set_error_type_load to register the problem.
4455
4456         (mono_class_setup_fields): If we fail to load the type from
4457         mono_metadata_parse_type_full, call mono_class_set_failure and
4458         break from the loop.
4459
4460         If class->exception_type is set, we do not layout the fields as
4461         that might crash the runtime, and instead return (from breaking
4462         from the previous loop).
4463
4464         (mono_class_setup_vtable): This now returns a boolean indicating
4465         whether the table was properly setup.   The decision is driven by
4466         mono_class_get_overrides_full which might run into non-existing
4467         methods. 
4468         
4469         (mono_class_init): Returns TRUE on success or FALSE if there was a
4470         problem in loading the type (incorrect assemblies, missing
4471         assemblies, methods, etc).
4472
4473         When we call mono_class_setup_fields we also check for a potential
4474         error inside this call (either a class exception or a general
4475         loader exception).
4476
4477         (mono_class_create_from_typedef): If the parent fails to load
4478         (calling mono_class_get_full) return NULL.
4479         
4480         ** Important **
4481
4482         calls to mono_metadata_parse_type_full should be checked
4483         everywhere and set the mono_class_set_failure
4484         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
4485
4486         The current patch checks the places where my manually constructed
4487         tests show the errors are showing up, but we should do it
4488         everywhere. 
4489
4490         ** Important2 **
4491
4492         mono_class_init return values should be tested everywhere, like
4493         the previous case this is something that we should audit
4494         everywhere and not only on the cases exposed by the tests I
4495         created. 
4496
4497 2006-04-26  Miguel de Icaza  <miguel@novell.com>
4498
4499         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
4500         boolean parameter and instead pass the information on `options'
4501         parameter (FileOptions).
4502
4503         * icall.c: Register the new signature for MonoIO.Open.
4504
4505         * debug-helpers.c (dis_one): Trying to understand how coverity
4506         works.  Fix Run 5, item 78.
4507
4508 2006-04-26  Dick Porter  <dick@ximian.com>
4509
4510         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
4511         dereference.
4512
4513 2006-04-25  Martin Baulig  <martin@ximian.com>
4514
4515         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
4516
4517         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
4518         debugger_thread_created().
4519         (debugger_gc_push_all_stacks): Don't handle the main thread in any
4520         special way.
4521         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
4522         (mono_debugger_finalize_threads): New function; undo the effects
4523         of mono_debugger_init_threads().
4524         (mono_debugger_create_all_threads): Removed.
4525
4526 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
4527
4528         * image.c (mono_image_close): Tidy up trace messages.
4529
4530         * assembly.c (mono_assembly_close): Ditto.
4531
4532         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
4533         no longer references an already freed assembly. Fixes #78168.
4534
4535 2006-04-21  Dick Porter  <dick@ximian.com>
4536
4537         * threads.c (mono_thread_detach): Fix reference counting when
4538         detaching threads.
4539
4540 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
4541
4542         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
4543         #78155.
4544
4545 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
4546
4547         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
4548         (mono_type_to_stind): Ditto.
4549
4550         * marshal.c: Use the new helper functions to simplify code.
4551
4552         * image.c (mono_image_close): Add some code for help debug assembly unloading
4553         problems.
4554
4555         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
4556         image mempool.
4557
4558         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
4559         assembly was already loaded in another appdomain. Fixes #78083.
4560
4561 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
4562
4563         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
4564         referenced assemblies.
4565         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
4566
4567         * domain.c (mono_domain_free): Add a trace message.
4568
4569         * appdomain.c (add_assemblies_to_domain): Ditto.        
4570
4571         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
4572         field.  
4573
4574 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
4575
4576         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
4577
4578 2006-04-12  Martin Baulig  <martin@ximian.com>
4579
4580         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
4581         `USE_INCLUDED_LIBGC'.   
4582
4583 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
4584
4585         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
4586         the patch contains ../ and a small directory name later. Hopefully fixes
4587         #78035.
4588
4589 2006-04-10  Martin Baulig  <martin@ximian.com>
4590
4591         Clean up the debugger's thread-handling code.
4592
4593         The debugger's thread-handling code has been moved from
4594         ../mini/debug-debugger.c to threads.c.  We now iterate directly
4595         over the `threads' hash, keep track of exiting threads and also
4596         use proper locking.
4597
4598         We can now debug XSP and XSP based applications with the debugger.
4599
4600         * object-internals.h (MonoThread): Added `gpointer end_stack'.
4601
4602         * threads.h
4603         (MonoThreadCallbacks): Removed; this was only used by the debugger.
4604         (mono_install_thread_callbacks): Likewise.      
4605
4606         * threads.c (mono_thread_callbacks): Removed.
4607         (debugger_thread_created, debugger_thread_exited): New static functions.
4608         (start_wrapper): Call debugger_thread_created().
4609         (thread_cleanup): Call debugger_thread_exited().
4610         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
4611         (mono_debugger_init_threads): New public function.
4612         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
4613         iterate directly over the `threads' hash and also use proper locking.
4614
4615         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
4616
4617         * mono-debug-debugger.h
4618         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
4619
4620 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
4621
4622         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
4623         argument type=array. Fixes #78057.
4624
4625 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
4626
4627         * culture-info-table.h : regenerated. Fixed bug #69652.
4628
4629 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
4630
4631         * loader.c metadata.c: Reapply a variant r59116.
4632         
4633         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
4634
4635         * class.c (mono_class_setup_interface_offsets): New internal function.
4636
4637         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
4638         interfaces too. Fixes #77398.
4639
4640         * reflection.c (encode_cattr_value): Add support for 
4641         parameter type=object, argument type=array.
4642         (load_cattr_value): Ditto. Fixes #77916.
4643
4644         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
4645         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
4646
4647         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
4648         a byval char array and CharSet is Ansi.
4649
4650         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
4651
4652 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
4653
4654         * metadata.c: Add some locking comments.
4655         
4656         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
4657         mempool.
4658         (mono_metadata_free_method_signature): Don't free the signature itself.
4659
4660         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
4661
4662         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
4663         reference the same MonoImage.
4664         (mono_assembly_load_from_full): Add an assert.
4665
4666 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
4667
4668         * image.c (mono_image_close): Don't put the image we are about to free into the
4669         loaded_images_guid_hash.
4670
4671         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
4672         to reduce code duplication.
4673
4674         * marshal.c: Register the native functions called by this module as icalls, to
4675         somewhat centralize the creation of MonoMethodSignature's.
4676
4677         * loader.c (mono_method_signature): Add a cache for method signatures.
4678
4679         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
4680         the parameter attributes of a method.
4681         (mono_metadata_parse_method_signature_full): Refactored the computation of
4682         parameter attributes into a separate function. Also avoid one allocation in
4683         most cases.
4684
4685         * assembly.c (mono_assembly_close): Ditto.
4686
4687         * image.c (mono_image_close): Log trace messages with INFO level.
4688
4689         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
4690
4691         * image.c reflection.c: Correct reference counting of image modules.
4692         
4693         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
4694         of this function from the image mempool.
4695         
4696         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
4697         to allow more cached types to be used.
4698
4699         * mono-debug.c (mono_debug_add_method): Appled patch from
4700         David S. Miller  <davem@sunset.davemloft.net>: Access 
4701         minfo->lexical_blocks[] entry elements using read32().
4702
4703 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
4704
4705         * loader.c (mono_free_method): No longer free the method header for non-dynamic
4706         methods as it is allocated from the mempool.
4707
4708         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
4709         image mempool.
4710
4711         * metadata-internals.h: Add comments describing the reference counting scheme
4712         used for MonoImage and MonoAssembly.
4713
4714         * image.c assembly.c reflection.c: Rework reference counting of images and 
4715         assemblies so they are freed when the runtime is shut down. Free some 
4716         additional memory structures when an image is unloaded.
4717         
4718 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
4719
4720         * class.c loader.c reflection.c: Allocate more data structures in
4721         the image mempool.
4722
4723 2006-03-31  Miguel de Icaza  <miguel@novell.com>
4724
4725         * icall.c
4726         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
4727         build on pre glib 2.4 systems.
4728
4729 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
4730
4731         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
4732
4733         * icall.c: Fix some warnings.
4734
4735 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
4736
4737         * culture-info-table.h : regenerated.
4738
4739 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
4740
4741         * threads.c, object-internals.h, verify.c: changed the culture caching
4742         code to use a normal MonoArray for storage so the GC can keep track of
4743         them easily. Fixed bits of the cache logic, too and simplified the
4744         code.
4745
4746 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
4747
4748         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
4749         thread for non-Boehm GCs.
4750
4751 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
4752
4753         * domain.c, object.c, domain-internals.h: reduce the amount of memory
4754         needed to keep track of the data for static fields.
4755
4756 2006-03-29  Raja R Harinath  <rharinath@novell.com>
4757
4758         Fix #75172
4759         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
4760         for interface classes.  Use 'num_methods' instead.
4761         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
4762         before using '->vtable_size' field.
4763
4764 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
4765
4766         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
4767         doesn't contain managed pointers, so use a normal hashtable.
4768
4769 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
4770
4771         * reflection.c, class-internals.h, domain.c: fixed handling of types
4772         used as values for objects in custom attributes (bug #77915):
4773
4774 2006-03-24  Martin Baulig  <martin@ximian.com>
4775
4776         * class.c (mono_class_setup_fields): Added support for generic
4777         instances; fixes #77580.
4778
4779 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4780
4781         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
4782
4783 2006-03-24  Dick Porter  <dick@ximian.com>
4784
4785         * file-io.c (get_file_attributes): More stat macro breakage.
4786         Fixes bug 77759.
4787
4788 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
4789
4790         * profiler.c: added the file=filename option in the default profiler
4791         to output the profile data to filename.
4792
4793 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4794
4795         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
4796         bug #77877.
4797
4798 2006-03-22  Martin Baulig  <martin@ximian.com>
4799
4800         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
4801         allocated `MonoClassField *' in `fb->handle'.
4802
4803 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
4804
4805         * class.c, image.c, metadata-internals.h: implemented new mechanism to
4806         allocate interface ID to save memory and allow better ID reuse on
4807         appdomain unload. setup_generic_vtable () removal from Martin.
4808
4809 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
4810
4811         * object.h, appdomain.c, domain.c, exception.c, icall.c,
4812         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
4813         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
4814         write barriers for reference stores with managed objects accessed with
4815         C structures in the runtime and in embedding programs.
4816
4817 2006-03-20  Raja R Harinath  <rharinath@novell.com>
4818
4819         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
4820         'interface_id' and 'max_interface_id' fields of MonoClasses
4821         representing open generic types.
4822
4823 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
4824
4825         * object.h, object.c, icall.c: added functions to deal with
4826         storing valuetypes that contain references in managed objects.
4827         * reflection.c, string-icalls.c, threads.c, marshal.c: small
4828         fixes and comments around uses of mono_array_addr ().
4829
4830 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
4831
4832         * object.h, icall.c, monitor.c: object.GetHashCode ()
4833         implementation that supports the moving garbage collector.
4834
4835 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
4836
4837         * icall.c, threads-types.h, threads.c: implemented finalizer for
4838         LocalDataStoreSlot.
4839
4840 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
4841
4842         * metadata.c (mono_type_size): Add a fixme.
4843         (mono_type_stack_size): Ditto.
4844
4845         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
4846         'type_forwarders' field.
4847
4848         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
4849         attribute from net 2.0.
4850
4851         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
4852         from class.c.
4853
4854         * class.c (mono_class_setup_fields): Fix a warning.
4855         
4856         * class.c (mono_class_from_name): Add support for assemblyref entries
4857         in the EXPORTEDTYPE table.
4858
4859         * reflection.c: Add support for handling type forwarders under net 2.0.
4860
4861         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
4862         
4863 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
4864
4865         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
4866         overwriting entries in ModuleBuild->types, also clean up the code
4867         a little. Fixes #77774.
4868
4869 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
4870
4871         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
4872         load friend assembly info when present.
4873
4874 2006-03-14  Raja R Harinath  <rharinath@novell.com>
4875
4876         Fix crasher on gtest-158.cs.
4877         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
4878         the return value if the MonoClass we want is yet in an
4879         inconsistent state.
4880         * class.c (mono_class_create_from_typedef): Add an comment
4881         explaining an order dependency between mono_class_setup_parent and
4882         mono_class_setup_mono_type.
4883
4884 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
4885
4886         * class.c: documentation updates and events bug fix.
4887
4888 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
4889
4890         * class.c: some cleanup, locking fixes.
4891
4892 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
4893
4894         * class.c: fix the generics code to setup nested
4895         type info to the instantiated type (bug #77770).
4896
4897 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
4898
4899         * marshal.c: fixed a few type correctness issues.
4900
4901 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
4902
4903         * loader.c: the Set/Get/Addrtess array methods should be public.
4904
4905 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
4906
4907         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
4908         
4909         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
4910         info->wrapper.
4911
4912 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
4913
4914         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
4915
4916         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
4917
4918         * mempool.c (mono_mempool_alloc): Speed this up a bit.
4919         (mono_mempool_alloc0): Ditto.
4920
4921 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4922
4923         * socket-io.c:
4924         (create_object_from_sockaddr): it was allocating 4 extra bytes
4925         for the AF_UNIX data. Fixes bug #77747.
4926
4927 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
4928
4929         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
4930
4931 2006-03-09  Dick Porter  <dick@ximian.com>
4932
4933         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
4934         Fixes bug 76966 again.
4935
4936 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
4937
4938         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
4939         names from r57532
4940         * appdomain.c: Bumped corlib version to 48 (due to r57532)
4941
4942 2006-03-07  Martin Baulig  <martin@ximian.com>
4943
4944         * object.c
4945         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
4946
4947 2006-03-07  Martin Baulig  <martin@ximian.com>
4948
4949         * class.c
4950         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
4951         regression introduced in r56970; see gtest-252.cs.
4952
4953         * loader.c (mono_get_method_constrained): Correctly handle generic
4954         methods; see gtest-253.cs.
4955
4956 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
4957
4958         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
4959
4960 2006-03-04  Martin Baulig  <martin@ximian.com>
4961
4962         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
4963         compute the parent type at runtime, just like we're already doing
4964         it for interfaces.
4965
4966         * reflection.c
4967         (mono_reflection_bind_generic_parameters): Don't compute the
4968         parent type anymore.
4969
4970         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
4971
4972 2006-03-04  Martin Baulig  <martin@ximian.com>
4973
4974         * mono-debug-debugger.h
4975         (mono_debugger_create_notification_function): Allocate memory at
4976         runtime and return a pointer to it.
4977
4978 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
4979
4980         * assembly.c: Fix windows build.
4981         
4982         * assembly.c: Fix build.
4983
4984         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
4985
4986         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
4987         
4988 2006-03-03  Dick Porter  <dick@ximian.com>
4989
4990         * process.c
4991         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
4992         Check parameters before dereferencing them.  Fixes Aaron's part of
4993         bug 77393.
4994
4995 2006-03-03  Raja R Harinath  <rharinath@novell.com>
4996
4997         Fix performance regression.
4998         * loader.c (find_method_in_class): Add 'from_class' argument.
4999         Rename 'klass' argument to 'in_class'.  The signature is compared
5000         against the method in 'in_class', and the corresponding method is
5001         returned from 'from_class'.
5002         (find_method): Walk both 'in_class' and 'from_class' in parallel.
5003         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
5004         type definition and generic instantiation in parallel.
5005         (mono_get_method_constrained): Update to changes.
5006
5007 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
5008
5009         * threads.c: make sure the domain is correct, too when doing
5010         mono_thread_attach ().
5011
5012 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
5013
5014         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
5015         windows. Fixes #77683.
5016
5017 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
5018
5019         * object.h, *: introduced specific way to set elements of an array
5020         of references to be used as write barrier. Still need to audit the
5021         uses of mono_array_addr.
5022
5023 2006-03-01  Miguel de Icaza  <miguel@novell.com>
5024
5025         * object-internals.h: New field to cache the assmebly name, patch
5026         from Tambet Ingo (tambet@ximian.com)
5027
5028 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
5029
5030         * decimal.h, class-internals.h, metadata-internals.h,
5031         file-io.h: mark a few function declarations as internal, to
5032         reduce the number of PLT entries.
5033
5034 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5035
5036         * file-io.c: fix typo in warning message.
5037
5038 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
5039
5040         * loader.c: on unix, lookup the "*A" version of a function
5041         if charset is auto as a second option before failing.
5042
5043 2006-02-28  Raja R Harinath  <rharinath@novell.com>
5044
5045         * class.h (mono_class_inflate_generic_method): Revert to two
5046         argument version.
5047         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
5048         (mono_class_inflate_generic_method_full): Add.
5049         * class.c (mono_class_inflate_generic_method_full): Rename from
5050         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
5051         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
5052         * loader.c, reflection.c: Update to changes.
5053
5054 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
5055
5056         * icall.c: const fixes and small improvements.
5057
5058 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5059
5060         * threadpool.c: for asynchronous connect(), enable the same workaround
5061         for BSD 6 as for the Mac. Fixes bug #77637.
5062
5063 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
5064
5065         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
5066         formatted classes. Fixes #77524.
5067
5068 2006-02-24  Raja R Harinath  <rharinath@novell.com>
5069
5070         * class.c (inflate_generic_type): Add a couple more
5071         micro-optimizations.
5072         (inflate_generic_context): Don't use the 'gmethod' from
5073         'inflate_with'.
5074         (mono_class_inflate_generic_method): If the method has generic
5075         parameters, but the passed-in context doesn't have a 'gmethod',
5076         create one.  Use the possibly simplified generic instantiation
5077         from the declaring class instead of the one passed in.
5078
5079 2006-02-24  Raja R Harinath  <harinath@gmail.com>
5080
5081         Make generic method signature and method header handling lazy.
5082         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
5083         (inflate_generic_header): Likewise.
5084         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
5085         parameter to avoid inflating types.
5086         (mono_get_inflated_method): Empty out.
5087         * class.h (mono_class_inflate_generic_method): Update to changes.
5088         * loader.c (mono_get_method_from_token): Don't parse signature for
5089         generic methods, nor methods of generic classes.
5090         (mono_method_signature): Rename from 'mono_method_signature'.
5091         Inflate signature on demand.
5092         (mono_method_get_header): Inflate method header on demand.
5093         * reflection.c: Update to changes.
5094
5095 2006-02-23  Raja R Harinath  <rharinath@novell.com>
5096
5097         * metadata.c (mono_metadata_inflate_generic_inst): If the
5098         instantiation is closed, don't bother expanding it in the new
5099         context.
5100         * class.c (inflate_generic_class): If the generic instantiation
5101         doesn't change after inflation, return the argument itself.
5102         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
5103         Add bounds checks.
5104         (inflate_generic_context): If neither the generic class nor the
5105         generic method instantiations change, return the original context.
5106         * reflection.c (mono_method_get_object): Do
5107         'mono_get_inflated_method' before accessing the ->klass field.
5108         (inflate_mono_method): Don't create a MonoGenericMethod unless
5109         necessary.
5110         (inflate_method): Don't pass a constructed type as the declaring
5111         type of a methodbuilder.
5112
5113 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
5114
5115         * object.c: fix memory overwrite.
5116
5117 2006-02-22  Dick Porter  <dick@ximian.com>
5118
5119         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
5120         it doesn't work any more.
5121         (mono_threads_request_thread_dump): Fix unused variable warnings.
5122
5123 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
5124
5125         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
5126         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
5127         the public header file.
5128
5129 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
5130
5131         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
5132
5133 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
5134
5135         * class-internals.h, object.c: reduce the size of MonoVTable
5136         and store the interface_offsets array at negative offsets.
5137
5138 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
5139
5140         * metadata.c: tweak table descriptors data structures to reduce
5141         size and runtime relocations.
5142
5143 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
5144
5145         * marshal.c: fix some types and opcodes to be type-safe
5146         in marshaling wrappers.
5147
5148 2006-02-21  Ankit Jain  <jankit@novell.com>
5149
5150         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
5151
5152 2006-02-21  Raja R Harinath  <rharinath@novell.com>
5153
5154         * metadata.c (get_constraints): Relax debugging checks for monodis.
5155
5156 2006-02-21  Ankit Jain  <jankit@novell.com>
5157
5158         * metadata.c (mono_metadata_load_generic_params): Move the code
5159         checking for ambiguous generic params from here to mono/dis/get.c
5160         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
5161
5162 2006-02-21  Raja R Harinath  <harinath@gmail.com>
5163
5164         Fix assertion triggered when compiling nemerle.
5165         * class.c (mono_get_shared_generic_inst): Rename from
5166         get_shared_inst and make non-static.
5167         * loader.c (mono_get_shared_generic_method): New.  Used to create
5168         the MonoGenericContext-equivalent of a MonoGenericContainer.
5169         (mono_get_method_from_token): Initialize the 'context' field of
5170         the created MonoGenericContainer.
5171         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
5172         * metadata.c (get_constraints): Add sanity check.
5173         * class-internals.h: Add new internal methods.
5174
5175         * reflection.c (verify_safe_for_managed_space): New sanity check.
5176         Currently checks that owner-less generic parameters aren't allowed
5177         in managed space.
5178         (mono_type_get_object): Use it.
5179         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
5180         that are now in mono_type_get_object.
5181         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
5182
5183 2006-02-19  Raja R Harinath  <harinath@gmail.com>
5184
5185         * metadata.c (mono_type_create_from_typespec): Rename from
5186         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
5187         argument and caching of types in the generic container.
5188         (unwrap_arrays, find_generic_param): Remove.
5189         * metadata-internals.h: Update.
5190         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
5191
5192 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
5193
5194         * class.c (mono_class_get_exception_for_failure): Fix a warning.
5195
5196         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
5197         return values. Fixes #77581.
5198
5199         * class.c (mono_fnptr_class_get): Switch name and name_space.
5200
5201         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
5202         classes and add support for [In, Out] attributes.
5203         (mono_marshal_free_asany): Ditto. Fixes #77524.
5204
5205 2006-02-18  Raja R Harinath  <harinath@gmail.com>
5206
5207         * class.c (mono_class_from_generic_parameter): Make more robust to
5208         incomplete MonoGenericContainers from monodis.
5209
5210 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
5211
5212         * class-internals.h: added some more exception types.
5213         * class.c, metadata.c: added a few checks to handle missing
5214         types.
5215
5216 2006-02-17  Raja R Harinath  <rharinath@novell.com>
5217
5218         Use owner-less generic-params some more.
5219         * class.c (my_mono_class_from_generic_parameter): Remove.
5220         (mono_class_from_generic_parameter): Handle null image,
5221         param->name and param->owner.
5222         (mono_class_from_mono_type): Update.
5223         (mono_class_create_from_typespec): Remove 'container' parameter.
5224         If that parameter is non-null, the result is always inflated by
5225         'mono_class_get_full' anyway.
5226         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
5227         parameter.
5228         (mono_class_get_full): Update.
5229
5230         * class.c (inflate_generic_type) [GENERICINST]: If the generic
5231         instance is not open, don't bother inflating.
5232         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
5233         parse metadata for inflated classes.
5234         (_mono_class_get): Change GenericContext* parameter to
5235         GenericContainer*.
5236         (mono_class_create_from_typespec): Likewise.  Simplify, and
5237         implement trivially.  All the cases are handled in
5238         mono_class_from_mono_type.  Don't inflate returned class.
5239         (mono_class_get_full): Delegate GENERICINST optimization to
5240         inflate_generic_type.
5241         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
5242
5243 2006-02-16  Dick Porter  <dick@ximian.com>
5244
5245         * socket-io.c (create_object_from_sockaddr): Fix typo.
5246         (create_sockaddr_from_object): Check array lengths before
5247         potentially accessing items off the end.
5248         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
5249         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
5250         (ves_icall_System_Net_Sockets_Socket_Send_internal)
5251         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
5252         length checks to avoid wraparound overflows.
5253         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
5254         contents of the array of sockets
5255         (hostent_to_IPHostEntry2)
5256         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
5257         Check return value of inet_ntop ().
5258         (addrinfo_to_IPHostEntry): Fix typo
5259
5260 2006-02-16  Raja R Harinath  <rharinath@novell.com>
5261
5262         Type metadata parsing doesn't use generic-instantiation information.
5263         * metadata.c (mono_metadata_parse_array_full): Change
5264         MonoGenericContext* parameter to MonoGenericContainer*.
5265         (mono_metadata_parse_type_full): Likewise.
5266         (mono_type_create_from_typespec_full): Likewise.
5267         (mono_metadata_parse_mh_full): Likewise.
5268         (mono_metadata_parse_generic_inst): Likewise.
5269         (do_mono_metadata_parse_generic_class): Likewise.
5270         (do_mono_metadata_parse_type): Likewise.
5271         * metadata-internals.h: Update to changes.
5272         * class.c (mono_class_find_enum_basetype): Likewise.
5273         (mono_class_setup_fields): Likewise.
5274         (mono_class_create_from_typespec): Likewise.
5275         * loader.c (method_from_methodspec): Likewise.
5276         (mono_get_method_from_token): Likewise.
5277         (mono_method_get_header): Likewise.
5278
5279 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
5280
5281         * marshal.c: handle additional GENERICINST case (patch from
5282         Thong Nguyen <tum@veridicus.com>).
5283         Fix a few cases where LDIND_I/STIND_I was used for references.
5284
5285 2006-02-16  Raja R Harinath  <rharinath@novell.com>
5286
5287         * reflection.c (mono_reflection_get_token): Remove unused variable.
5288
5289 2006-02-16  Martin Baulig  <martin@ximian.com>
5290
5291         * reflection.c (mono_reflection_get_token): Add support for fields
5292         in instantiated generic types.
5293
5294         * icall.c
5295         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
5296
5297 2006-02-15  Martin Baulig  <martin@ximian.com>
5298
5299         * icall.c
5300         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
5301         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
5302         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
5303         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
5304
5305 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
5306
5307         * class.c, metadata.c, metadata.h, object.c, icall.c,
5308         marshal.c: changed mono_type_get_underlying_type () to do
5309         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
5310         Fixed handling of instantiated generic valuetypes (bug #75479).
5311
5312 2006-02-15  Raja R Harinath  <rharinath@novell.com>
5313
5314         * metadata.c (mono_metadata_decode_signed_value): Simplify.
5315         Delegate to mono_metadata_decode_value, and work on the returned value.
5316
5317         * icall.c (ves_icall_MonoType_GetGenericArguments):
5318         Add consistency check here too.
5319         
5320 2006-02-15  Ankit Jain  <jankit@novell.com>
5321
5322         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
5323         char/short etc.
5324
5325 2006-02-15  Ankit Jain  <jankit@novell.com>
5326
5327         * metadata.c (mono_metadata_decode_signed_value): New function to decode
5328         signed values, used only for representing lower bounds of arrays.
5329         (mono_metadata_parse_array_full): Use new
5330         mono_metadata_decode_signed_value to decode lower bounds.
5331
5332 2006-02-14  Martin Baulig  <martin@ximian.com>
5333
5334         * reflection.c
5335         (mono_reflection_get_token): Support "MonoGenericMethod" and
5336         "MonoGenericCMethod" and allow generic instances / methods.
5337
5338 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
5339
5340         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
5341         to obtain the terminal size using an ioctl.
5342
5343         * object.c (mono_nullable_init): Revert this as nullable reference
5344         types are not valid.
5345         (mono_nullable_box): Ditto.
5346
5347 2006-02-09  Dick Porter  <dick@ximian.com>
5348
5349         * threads.c (mono_thread_detach): Drop a reference to the thread
5350         we're detaching.
5351
5352 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
5353
5354         * object.c (mono_nullable_init): Handle nullable reference types.
5355         (mono_nullable_box): Ditto. Fixes #77446.
5356
5357 2006-02-07  Martin Baulig  <martin@ximian.com>
5358
5359         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
5360
5361 2006-02-07  Ankit Jain  <jankit@novell.com>
5362
5363         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
5364         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
5365         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
5366         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
5367         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
5368         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
5369
5370 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
5371
5372         * class.c (mono_class_create_generic): Set type_token as well.
5373
5374         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
5375         compatible with MS.
5376
5377 2006-02-02  Martin Baulig  <martin@ximian.com>
5378
5379         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
5380         has never been used so far.
5381
5382 2006-02-02  Martin Baulig  <martin@ximian.com>
5383
5384         * mono-debug-debugger.h: Changed comment at the top of this file;
5385         the header is not installed, but it's safe to #include it from
5386         within the JIT.
5387
5388         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
5389         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
5390
5391 2006-02-02  Martin Baulig  <martin@ximian.com>
5392
5393         * mono-debug.h
5394         (MonoSymbolTable): Removed the `metadata_info' field.
5395
5396         * mono-debug.c
5397         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
5398
5399         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
5400         (mono_debugger_add_builtin_types): Removed.
5401         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
5402         (mono_debugger_create_notification_function): We now operate on a
5403         pre-allocated area; take a `gpointer' and return `void'.
5404
5405         * mono-debug-debugger.c
5406         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
5407         (mono_debugger_add_builtin_types): Removed.
5408
5409 2006-02-02  Martin Baulig  <martin@ximian.com>
5410
5411         * threads.c (mono_debugger_create_all_threads): New public method.
5412
5413 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
5414
5415         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
5416         breaks on several platforms.
5417
5418 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
5419
5420         * assembly.c: the VS.NET build doesn't supply default values for
5421         MONO_ASSEMBLIES and MONO_CFG_DIR.
5422
5423 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
5424
5425         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
5426         helper function.
5427
5428         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
5429
5430         * loader.c (method_from_memberref): Fix a warning.
5431
5432         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
5433
5434         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
5435         with explicit layout. Fixes #77433.
5436
5437 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
5438
5439         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
5440         max_interface_id is initialized before using it. Fixes #77398.
5441         (ves_icall_Type_GetInterfaces): Ditto.
5442
5443 2006-01-30  Raja R Harinath  <rharinath@novell.com>
5444
5445         * metadata.c (mono_metadata_parse_method_signature_full): Don't
5446         allocate memory for parameter attributes when parsing memberref
5447         signatures.
5448         * loader.c (mono_loader_set_error_method_load): Don't warn.
5449         (method_from_memberref): Ensure MissingMethodException gets thrown
5450         if method is not found.  Make warning more informative.
5451
5452 2006-01-29  Raja R Harinath  <harinath@gmail.com>
5453
5454         Fix #77397
5455         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
5456         return true if is byref.
5457         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
5458         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
5459         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
5460
5461 2006-01-27  Raja R Harinath  <rharinath@novell.com>
5462
5463         Fix tests/find-method.2.il
5464         * loader.c (find_method, find_method_in_class): Remove is_inflated
5465         argument.  Revert 2006-01-18 change.
5466         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
5467         is generic, search for method in its generic definition.
5468         * class.c (mono_class_setup_vtable_general): Print generic
5469         arguments of generic types in debugging printf.
5470
5471 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
5472
5473         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
5474
5475         * threads.c (mono_threads_request_thread_dump): New helper function.
5476
5477 2006-01-25  Raja R Harinath  <rharinath@novell.com>
5478
5479         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
5480
5481 2006-01-25  Ankit Jain  <jankit@novell.com>
5482
5483         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
5484         move definition to ..
5485         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
5486         
5487 2006-01-25  Ankit Jain  <jankit@novell.com>
5488             Raja R Harinath  <rharinath@novell.com>
5489
5490         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
5491         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
5492         as necessary.
5493
5494 2006-01-25  Martin Baulig  <martin@ximian.com>
5495
5496         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
5497         `MonoDebuggerThread' into debug-debugger.c.
5498
5499 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
5500
5501         * profiler.c: fix printing of data.
5502
5503 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
5504
5505         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
5506           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
5507
5508 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
5509
5510         * object.c: fix deadlock related to string interning.
5511
5512 2006-01-23  Martin Baulig  <martin@ximian.com>
5513
5514         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
5515
5516         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
5517
5518 2006-01-23  Martin Baulig  <martin@ximian.com>
5519
5520         * mono-debug.h: Moved the prototypes of some functions which are
5521         used by the JIT here from mono-debug-debugger.h.
5522
5523 2006-01-21  Martin Baulig  <martin@ximian.com>
5524
5525         * Makefile.am: Don't install mono-debug-debugger.h.
5526
5527 2006-01-21  Martin Baulig  <martin@ximian.com>
5528
5529         * mono-debug-debugger.h: Enforce the private status of this header
5530         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
5531         Moved some stuff from mono-debugger-jit-wrapper.h here.
5532
5533 2006-01-20  Raja R Harinath  <rharinath@novell.com>
5534
5535         * class.c (mono_class_from_typeref): Add a sanity test to help
5536         catch lack of assembly load/search hooks.
5537
5538 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
5539
5540         * marshal.c (emit_struct_conv): Relax the fields with same offset
5541         check even more. Fixes #77230.
5542
5543 2006-01-18  Martin Baulig  <martin@ximian.com>
5544
5545         * loader.c (find_method_in_class): Added `gboolean is_inflated'
5546         argument; if false, we compare the uninstantiated signatures.
5547         (method_from_memberref): Compare the uninstantiated signatures;
5548         fixes #76417.
5549
5550 2006-01-18  Robert Jordan  <robertj@gmx.net>
5551
5552         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
5553         Clear the weak link. Fixes bug #77170.
5554
5555         * gc.c (mono_gchandle_free):
5556         Reflect *-gc.c changes (tiny optimization).
5557
5558 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
5559
5560         * metadata.c (mono_metadata_signature_dup): Applied patch from
5561         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
5562         Fixes #77288.
5563
5564 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
5565
5566         * marshal.c (emit_struct_conv): Allow fields with the same offset when
5567         marshalling from native to managed code. Fixes #77230.
5568
5569 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5570
5571         * threadpool.c: fix problem (Mac only) when more than one asynchronous
5572         connect. Fixes bug #77020.
5573
5574 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
5575
5576         * class.c: fixed id assignement for nested interfaces (bug #77275).
5577         Added also better info for --print-vtable debugging.
5578
5579 2006-01-12  Martin Baulig  <martin@ximian.com>
5580
5581         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
5582         interfaces on-the-fly; fixes #76625.
5583
5584         * class-internals.h
5585         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
5586         don't need that anymore.
5587
5588 2006-01-12  Miguel de Icaza  <miguel@novell.com>
5589
5590         * socket-io.c
5591         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
5592         To avoid initing the nested_classes when not needed I turned the
5593         PeerCredData as a toplevel internal class, as it has to be shared
5594         anyways. 
5595
5596         Fixes the CASA issue.
5597
5598 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
5599
5600         * domain.c: Accessors for MonoJitInfo
5601
5602         * profiler-private.h: Add jitinfo to the end jit hook
5603
5604         * profiler.[ch]: Define new hooks, called after jitting which give
5605         the MonoJitInfo that was compiled
5606
5607 2006-01-10  Martin Baulig  <martin@ximian.com>
5608
5609         * class.c (mono_class_setup_events): Add support for generic
5610         classes; fixes #76440.
5611
5612 2006-01-06  Raja R Harinath  <rharinath@novell.com>
5613
5614         Fix #77160.
5615         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
5616         on passed-in method.
5617
5618 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
5619
5620         * object.c (mono_runtime_invoke_array): Add Nullable support.
5621
5622         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
5623
5624 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
5625
5626         * file-io.c: Don't consider sockets as directory and avoid an endless
5627         loop. Fix bug #76966.
5628
5629 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
5630
5631         * object.c (mono_nullable_init): New helper function.
5632         (mono_nullable_box): Ditto.
5633
5634         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
5635
5636         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
5637
5638         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
5639         
5640 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
5641
5642         * class.c (mono_class_is_assignable_from): Make T assignable to 
5643         Nullable<T>.
5644
5645 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
5646
5647         * appdomain.c: Bump corlib version to 46.
5648         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
5649         serialization purpose) and changed ves_icall_System_Reflection_
5650         Assembly_get_code_base signature to accept a boolean (to escape, or 
5651         not, the assembly code base).
5652
5653 2005-12-23  Dick Porter  <dick@ximian.com>
5654
5655         * icall.c: 
5656         * threads-types.h: 
5657         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
5658         CreateEvent icall now returns "created" boolean parameter.
5659
5660 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
5661
5662         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
5663         #76967.
5664
5665         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
5666         when attr_klass is an interface. Fixes #77045.
5667
5668 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
5669
5670         * marshal.c (emit_struct_conv): Fix previous patch.
5671         
5672         * marshal.c (emit_struct_conv): Add a check for fields with the same
5673         offset.
5674
5675 2005-12-20  Raja R Harinath  <rharinath@novell.com>
5676
5677         Fix regression in Mono.C5.
5678         * class.c (mono_class_create_generic): If 'klass' is an interface
5679         set up the interface offsets.
5680         (mono_class_is_assignable_from): Don't throw away generic arguments.
5681
5682 2005-12-19  Raja R Harinath  <rharinath@novell.com>
5683
5684         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
5685         type parameters.
5686
5687 2005-12-15  Raja R Harinath  <rharinath@novell.com>
5688
5689         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
5690         dead store.
5691         (do_mono_metadata_parse_generic_class): Don't pass the current
5692         generic context when parsing the type being instantiated: it
5693         cannot use it, anyway.
5694
5695         * loader.c (method_from_memberref): Don't inflate a signature if
5696         it doesn't contain any type parameters.
5697
5698 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
5699
5700         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
5701
5702 2005-12-14  Martin Baulig  <martin@ximian.com>
5703
5704         * class.c
5705         (mono_type_get_name_recurse): Don't return null for type
5706         parameters and open generic classes.
5707         (mono_class_setup_methods): Don't exclude generic instances.
5708         (mono_get_unique_iid): Use different IDs for different
5709         instantiations of the same generic type.
5710         (mono_class_setup_vtable): Only use setup_generic_vtable() for
5711         open generic instances; create a normal vtable for closed generic
5712         instances.
5713         (mono_class_setup_vtable_general): We're now also called for
5714         closed generic instances.
5715
5716         * reflection.c
5717         (mono_reflection_bind_generic_parameters): Correctly use
5718         mono_metadata_lookup_generic_inst() everywhere.
5719
5720 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
5721
5722         * object.c (mono_class_create_runtime_vtable): Call 
5723         mono_class_setup_vtable ().
5724
5725         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
5726         function.
5727         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
5728         #76959.
5729
5730         * loader.c (mono_loader_set_error_type_load): Print the type load
5731         warnings to the console so they are more visible to the user.
5732         (mono_loader_set_error_method_load): Ditto.
5733
5734         * reflection.c (ensure_runtime_vtable): Revert the last change as it
5735         is still broken.
5736         
5737         * reflection.c (ensure_runtime_vtable): Fix build.
5738
5739         * reflection.c (ensure_runtime_vtable): Disable an optimization which
5740         doesn't work in all cases.
5741
5742 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
5743
5744         * object.c (mono_array_new_full): Treat a single dimensional array
5745         with 0 lower bounds as an szarray. Fixes #76973.
5746
5747         * reflection.c (custom_attr_visible): Really fix this.
5748
5749 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
5750
5751         * reflection.c (custom_attr_visible): Allow nested public attributes
5752         as well.
5753
5754         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
5755         interface check.
5756
5757 2005-12-12  Raja R Harinath  <harinath@gmail.com>
5758
5759         * class.c (set_generic_param_owner): Delete.
5760         (mono_class_create_from_typedef): Don't set ->owner field of
5761         generic parameters to "param containers" of enclosing classes.
5762         * reflection.c (mono_reflection_initialize_generic_parameter):
5763         Likewise.
5764
5765 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
5766
5767         * reflection.c (custom_attr_visible): Fix build.
5768
5769 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
5770
5771         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
5772         private attributes.
5773         
5774         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
5775         handling of null parameter defaults.
5776
5777 2005-12-09  Raja R Harinath  <rharinath@novell.com>
5778
5779         * class.c (mono_class_from_generic_parameter): Don't set
5780         klass->generic_container.
5781         (my_mono_class_from_generic_parameter): Likewise.
5782
5783 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
5784
5785         * reflection.c (load_public_key): Fix a warning.
5786         (method_encode_code): Fix unaligned accesses.
5787
5788 2005-12-07  Martin Baulig  <martin@ximian.com>
5789
5790         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
5791
5792         * reflection.c
5793         (write_generic_param_entry): Encode our custom attrs.
5794
5795         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
5796
5797 2005-12-07  Martin Baulig  <martin@ximian.com>
5798
5799         * reflection.c (encode_new_constraint): Removed; we don't use the
5800         `NewConstraintAttribute' anymore.
5801
5802 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
5803
5804         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
5805         not fire a TypeResolve event when Assembly.GetType () is called.
5806
5807 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
5808
5809         Beginning of support for nullable types in the runtime. Parts of
5810         this patch are from Martin.
5811
5812         * appdomain.c (MONO_CORLIB_VERSION): Bump
5813
5814         * domain.c (mono_init_internal): get the nullable type
5815
5816         * class.c (mono_class_is_nullable): New method
5817         (mono_class_get_nullable_param): New mehod
5818         (mono_class_create_generic): In types T? set cast_class to T
5819
5820         * class-internals.h (MonoDefaults): new nullable default class
5821         (mono_class_get_nullable_param, mono_class_get_nullable_param):
5822         new methods.
5823
5824 2005-12-05  Raja R Harinath  <rharinath@novell.com>
5825
5826         * metadata.c (select_container): New.  Refactor code to select the
5827         appropriate GenericContainer given the type of generic parameter
5828         we are looking for.
5829         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
5830         not a MonoGenericContext.  Use select_container.  Update parameters.
5831         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
5832         and MONO_TYPE_MVAR.
5833         (unwrap_arrays): Remove duplicate tests.
5834         (find_generic_param): Rename from 'has_same_context'.  Now walks a
5835         generic instantiated class to find any arguments that are generic
5836         parameters.
5837         (mono_type_create_from_typespec_full): Use find_generic_param to
5838         avoid evicting some generic instantiations from the typespec
5839         cache.
5840
5841 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
5842
5843         * reflection.c: fixed writing of doubles on ARM FPA.
5844
5845 2005-12-02  Robert Jordan  <robertj@gmx.net>
5846
5847         * icall.c: Fixed EventInfo.ReflectedType (#76829).
5848
5849 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5850
5851         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
5852         least on SUSE 10 they are not the same (on debian, they are just the
5853         same thing).
5854
5855 2005-12-01  Raja R Harinath  <rharinath@novell.com>
5856
5857         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
5858         DeclaringType for VARs and MVARs.
5859         * class.c (set_generic_param_owner): Fix initialization of owner
5860         fields.
5861
5862 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
5863
5864         * icall.c: fixed Enum.ToObject() to correctly convert the values.
5865
5866 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5867
5868         * threadpool.c: workaround for a bug that shows up on the Mac:
5869         select()+connect() on a blocking socket is not like it should
5870         be, so we proceed to connect() in that case, wasting the I/O
5871         threadpool thread until connect succeedes. Fixes bug #75436.
5872
5873 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5874
5875         * threadpool.c: fix typo when setting file descriptor states.
5876
5877 2005-11-28  Raja R Harinath  <rharinath@novell.com>
5878
5879         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
5880         * metadata.c (mono_metadata_parse_method_signature_full): Don't
5881         create a temporary signature container.
5882         (mono_metadata_parse_generic_param): Update to changes.
5883         (mono_type_create_from_typespec_full): Update to changes.
5884         * loader.c (method_from_memberref): Don't use a
5885         MonoGenericContainer while parsing a memberref signature.
5886         (method_from_methodspec): Remove dead-store of the 'container'
5887         variable.  It's overwritten before use.
5888
5889         * metadata.c (mono_type_create_from_typespec_full): Make debugging
5890         checks tighter.
5891         (mono_metadata_parse_generic_param): Likewise.
5892         * loader.c (find_method_in_class): Does not need a
5893         MonoGenericContainer.  Use 'mono_method_signature' rather than
5894         'mono_method_signature_full'.
5895         (find_method, mono_get_method_constrained, method_from_memberref):
5896         Update to changes.
5897
5898         * metadata.c (mono_type_create_from_typespec_full): Ensure that
5899         owner-less generic-parameters are never evicted from the typespec
5900         cache.
5901
5902         * loader.c (method_from_memberref): Don't use the current context
5903         when parsing signatures.
5904         (method_from_methodspec, mono_get_method_from_token): Update to changes.
5905
5906         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
5907         side-effects in g_assert.
5908         * loader.c (mono_get_method_from_token): Resolve klass earlier so
5909         that we don't potentially lose information.
5910
5911 2005-11-26  Dick Porter  <dick@ximian.com>
5912
5913         * icall.c:
5914         * threads.c: icalls to implement basic (ie, not named)
5915         System.Threading.Semaphore.
5916
5917 2005-11-24  Dick Porter  <dick@ximian.com>
5918
5919         * process.c
5920         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
5921         Use GetProcessId() if it's available.
5922
5923 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
5924
5925         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
5926
5927 2005-11-23  Raja R Harinath  <rharinath@novell.com>
5928             Ankit Jain  <jankit@novell.com>
5929
5930         * loader.c (mono_get_method_from_token): Initialize 'method' field
5931         of all generic parameters before parsing the signature.  Remove
5932         code that "fixed"-up MVAR references.
5933
5934 2005-11-23  Ankit Jain  <jankit@novell.com>
5935
5936         * metadata.c (mono_metadata_has_generic_params):
5937         (mono_metadata_load_generic_param_constraints):
5938         (mono_metadata_load_generic_params): Move duplicate code ...
5939         (mono_metadata_get_generic_param_row): ... here. Returns the
5940         first row-id in GenericParam table for a given owner (token).
5941         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
5942         prototype.
5943
5944 2005-11-23  Raja R Harinath  <rharinath@novell.com>
5945             Ankit Jain  <jankit@novell.com>
5946
5947         * metadata.c (mono_metadata_class_equal): Pass signature_only when
5948         comparing VARs too.
5949         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
5950         type->data.generic_param only if the type is an MVAR.
5951         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
5952         leak owner-less VARs and MVARs into managed space.
5953
5954 2005-11-21  Martin Baulig  <martin@ximian.com>
5955
5956         * class-internals.h
5957         (MonoMethod): Moved the `generic_container' here from
5958         `MonoMethodNormal' since we now also need it for
5959         `MonoMethodPInvoke';
5960         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
5961         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
5962         an union containing both `MonoMethodNormal' and
5963         `MonoMethodPInvoke'.
5964
5965         * loader.c
5966         (mono_get_method_from_token): Allow implementing generic methods
5967         as interncalls.
5968
5969         * threads.c
5970         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
5971         icall.
5972
5973 2005-11-17  Dick Porter  <dick@ximian.com>
5974
5975         * icall.c: 
5976         * process.h: 
5977         * process.c: Split the Process Start_internal icall into
5978         ShellExecuteEx_internal and CreateProcess_internal, which are
5979         called depending on whether UseShellExecute is true.  Fixes bug
5980         76670.
5981
5982         * appdomain.c (MONO_CORLIB_VERSION): Incremented
5983
5984 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
5985
5986         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
5987         'msize' parameters, use the information in 'mspec' instead.
5988         (emit_object_to_ptr_conv): Ditto.
5989
5990         * marshal.c (emit_struct_conv): Handle explicit layout structs with
5991         fields out of order. Fixes #76733.
5992
5993 2005-11-17  Ankit Jain  <jankit@novell.com>
5994
5995         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
5996
5997 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
5998
5999         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
6000           bug #76575.
6001
6002 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
6003
6004         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
6005         for types with non-auto layout. Fixes #76717.
6006
6007 2005-11-16  Ankit Jain  <jankit@novell.com>
6008
6009         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
6010         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
6011         if generic_context is null.
6012           (mono_metadata_generic_param_equal): param->owner can be null.
6013           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
6014         null.
6015
6016 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
6017
6018         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
6019         the correct value.
6020
6021 2005-11-15  Martin Baulig  <martin@ximian.com>
6022
6023         * object.c (set_value): Use mono_class_from_mono_type() instead of
6024         the hack for generic instances; fixes #76136.
6025
6026 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
6027
6028         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
6029         fields.
6030
6031         * image.c (load_metadata_ptrs): Initialize the new fields.
6032
6033         * reflection.c (create_dynamic_mono_image): Ditto.
6034
6035         * reflection.c (build_compressed_metadata): Use the new fields.
6036
6037         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
6038         icall.
6039
6040         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
6041         icall.
6042         
6043 2005-11-15  Ankit Jain  <jankit@novell.com>
6044             Raja R Harinath  <harinath@gmail.com>
6045
6046         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
6047         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
6048         new per-generic_container cache if the cached MonoType's context matches
6049         the current context.
6050           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
6051         to the expected context.
6052           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
6053
6054 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6055
6056         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
6057         we changed the signature of an icall.
6058         * icall.c: Modify to mono_double_ParseImpl return true/false 
6059         depending on the success, instead of throwing the exception. This will
6060         help us in Double.TryParse methods.
6061         
6062 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
6063
6064         * marshal.c (emit_marshal_object): Throw an exception when
6065         marshalling 'object' instead of crashing. Fixes #76696.
6066
6067 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
6068
6069         * class-internals.h: Add prototype for mono_type_get_full_name ().
6070
6071 2005-11-11  Dick Porter  <dick@ximian.com>
6072
6073         * threads.c (mono_thread_manage): Make sure the main thread has
6074         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
6075
6076 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
6077
6078         * loader.c (mono_loader_set_error_type_load): Log a warning to the
6079         console about the missing type.
6080         (mono_loader_set_error_method_load): Ditto.
6081
6082 2005-11-09  Miguel de Icaza  <miguel@novell.com>
6083
6084         * mono-config.c (mono_get_config_dir): Set the system defaults if
6085         none is specified.
6086
6087         * assembly.c (mono_set_dirs): New API entry point to set the
6088         assembly and the config directory in one call
6089
6090 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
6091
6092         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
6093         the ftnptr was created from a delegate in a domain other than the
6094         current domain. Fixes #75377.
6095
6096         * exception.h exception.c: Add mono_get_exception_not_supported ().
6097
6098 2005-11-08  Martin Baulig  <martin@ximian.com>
6099
6100         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
6101
6102 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
6103
6104         * security-manager.h: Added definitions to deal with strongname key 
6105         pairs bigger (and smaller) than 1024 bits.
6106         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
6107         adjust wrt the public key length being used.
6108
6109 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
6110
6111         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
6112           Windows build (r51396-51397).
6113
6114 2005-11-03  Martin Baulig  <martin@ximian.com>
6115
6116         * class.c (mono_class_setup_vtable_general): Also add generic
6117         methods to the vtable; fixes #76581.
6118
6119 2005-11-01  Miguel de Icaza  <miguel@novell.com>
6120
6121         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
6122         sure that we lookup GetString method from the System.Text.Encoding
6123         class, not the derived class or we get an empty method.
6124
6125         Fixed class #76612.
6126
6127 2005-10-25  Miguel de Icaza  <miguel@novell.com>
6128
6129         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
6130         if it has been previously set (embedders). 
6131
6132         Make mono_set_rootdir available also on Unix.
6133
6134 005-10-24  Robert Jordan  <robertj@gmx.net>
6135
6136         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
6137
6138 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
6139
6140         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
6141         only calls which are made to native code use this flag.
6142
6143         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
6144
6145 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
6146
6147         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
6148         Add support for FieldBuilders.
6149
6150 2005-10-29  Martin Baulig  <martin@ximian.com>
6151
6152         * mono-debug.c
6153         (mono_debug_using_mono_debugger): New public method; returns
6154         whether we're running inside the debugger.
6155
6156 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
6157
6158         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
6159         for Method/Constructor/FieldBuilders.
6160
6161 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
6162
6163         * reflection.c (module_add_cattrs): Save custom attributes for global methods
6164         and fields as well.
6165
6166 2005-10-26  Martin Baulig  <martin@ximian.com>
6167
6168         * mono-debug-debugger.c
6169         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
6170
6171 2005-10-24  Raja R Harinath  <harinath@gmail.com>
6172
6173         * icall.c (base64_to_byte_array): Don't pass an out-of-range
6174         integer to isspace.
6175
6176 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
6177
6178         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
6179         when passing valuetypes byref. Fixes #76502.
6180
6181 2005-10-19  Jackson Harper  <jackson@ximian.com>
6182
6183         * profiler.c: Don't put a . in front of types that are not in a
6184         namespace.
6185
6186 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
6187
6188         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
6189
6190 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
6191
6192         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
6193         #76436.
6194         (mono_marshal_get_ldflda_wrapper): Fix a warning.
6195
6196 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6197
6198         * assembly.c metadata-internals.h icall.c: Define an additional
6199         parameter for mono_assembly_name_parse_full, so we can avoid creating
6200         S.R.AssemblyName.Version when no version info wasn't passed.
6201         
6202 2005-10-09  Miguel de Icaza  <miguel@novell.com>
6203
6204         * class.c (mono_type_get_full_name): Reimplement method that was
6205         removed. 
6206
6207         * image.c: Some docs
6208
6209 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
6210
6211         * profiler.c (output_newobj_profile): Fix printing of Total memory
6212         on x86.
6213
6214 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
6215
6216         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
6217
6218 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
6219
6220         * threads.c: remove debug output.
6221
6222 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
6223
6224         * threads.c (mono_thread_manage): Fix crashes if more than 64
6225         threads need to be aborted. Hopefully fixes #75899.
6226
6227         * assembly.c (mono_stringify_assembly_name): New helper function.
6228
6229         * class.c: Use mono_stringify_assembly_name instead of the similar
6230         static function.
6231
6232         * assembly.h assembly.c: Add support for calling a postload search 
6233         hook if an assembly cannot be loaded.
6234
6235         * appdomain.c: Register new search hooks which call the AssemblyResolve
6236         events in AppDomain. Fixes #75231
6237
6238 2005-10-07  Martin Baulig  <martin@ximian.com>
6239
6240         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
6241         methods without debug info.
6242
6243 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
6244
6245         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
6246         wrappers.
6247
6248 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6249
6250         * file-io.c: now that we return symlinks, use lstat and, when the file
6251         is a symbolic link, stat, to get the file attributes. Also avoid the
6252         conversion to/from utf16/external.
6253
6254 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
6255
6256         * class.c (mono_class_layout_fields): Compute klass->has_references
6257         correctly if an embedded valuetype is not yet initialized. Fixes
6258         #76331.
6259
6260 2005-10-04  Martin Baulig  <martin@ximian.com>
6261
6262         * metadata.c
6263         (mono_metadata_load_generic_param_constraints): New public
6264         function; splitted the constraints loading out from
6265         mono_metadata_load_generic_params().
6266
6267         * class.c (mono_class_create_from_typedef): Call
6268         mono_metadata_load_generic_param_constraints() after setting up
6269         the type and creating our parent; fixes #75329.
6270
6271 2005-10-04  Martin Baulig  <martin@ximian.com>
6272
6273         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
6274         non-dynamic parent classes.
6275
6276 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
6277
6278         * file-io.c : win32 build fix (ETXTBSY seems not found).
6279
6280 2005-10-04  Martin Baulig  <martin@ximian.com>
6281
6282         * reflection.c
6283         (mono_image_get_methodspec_token): Make the cache actually work;
6284         fixes #75974.
6285
6286 2005-10-04  Martin Baulig  <martin@ximian.com>
6287
6288         * class.c (mono_class_name_from_token): Removed the unneccessary
6289         `MonoGenericContext *' argument.
6290
6291 2005-10-04  Martin Baulig  <martin@ximian.com>
6292
6293         * loader.c
6294         (method_from_methodspec): Make the caching work again; fixes the
6295         performance regression from #76262.
6296
6297 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6298
6299         * file-io.c:
6300         * file-io.h:
6301         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
6302         GetFileSystemEntries that performs the same work but without going
6303         into io-layer, locking, etc.
6304
6305 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
6306
6307         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
6308         ThreadState_Stopped as well. Fixes #76047.
6309
6310 2005-09-29  Martin Baulig  <martin@ximian.com>
6311
6312         * class.c
6313         (inflate_generic_context): If the new context has a `gmethod', set
6314         its `container' that that gmethod's `container'.
6315
6316         * metadata.c
6317         (mono_metadata_parse_generic_param): Simplify things;
6318         `generic_container = generic_context->container;' is just fine.
6319
6320         * loader.c (method_from_methodspec): Code cleanups.
6321
6322 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
6323
6324         * decimal.c: fix warning (and let gcc generate correct
6325         code on ARM with optimizations).
6326
6327 2005-09-28  Martin Baulig  <martin@ximian.com>
6328
6329         * loader.c
6330         (method_from_memberref): Added `MonoGenericContext *class_context'
6331         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
6332         (method_from_methodspec): If we're a memberref, use the enclosing
6333         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
6334
6335 2005-09-28  Martin Baulig  <martin@ximian.com>
6336
6337         * object.c (mono_runtime_invoke_array): Added support for
6338         MONO_TYPE_GENERICINST; fixes #75917.
6339
6340 2005-09-27  Martin Baulig  <martin@ximian.com>
6341
6342         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
6343         `k->byval_arg.type' to determine the actual type.
6344
6345         * loader.c (method_from_methodspec): Removed some hacks.
6346
6347 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
6348
6349         * class-internals.h (mono_field_is_deleted): Do the test for
6350         rtspecialname before we check the actual name of the field. This
6351         prevents us from dereferencing a pointer into the string table,
6352         saving us from accessing a few pages
6353
6354         * *.c: Replace the use of {Enter,Leave}CriticalSection with
6355         macros. This will allow a deadlock debugger to easily be plugged
6356         in.
6357
6358 2005-09-27  Martin Baulig  <martin@ximian.com>
6359
6360         * loader.c (method_from_methodspec): Create a "signature"
6361         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
6362
6363 2005-09-27  Martin Baulig  <martin@ximian.com>
6364
6365         * class.c
6366         (inflate_generic_class): Correctly set the new context's
6367         container.
6368
6369         * loader.c
6370         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
6371         instead of a `MonoGenericContext *'.
6372         (mono_method_signature_full): Take a `MonoGenericContainer *'
6373         instead of a `MonoGenericContext *'.
6374
6375         * metadata.c
6376         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
6377         instead of a `MonoGenericContext *'.
6378         (mono_metadata_parse_method_signature_full): Likewise.
6379
6380 2005-09-26  Martin Baulig  <martin@ximian.com>
6381
6382         * class.c
6383         (mono_class_from_generic_parameter): Set `klass->generic_container'
6384         (mono_class_from_generic_parameter): Likewise.
6385         (mono_bounded_array_class_get): We inherit the generic container
6386         from the element class.
6387
6388         * loader.c
6389         (find_method, find_method_in_class): Take a `MonoGenericContext *'
6390         argument rather than computing it here.
6391         (method_from_memberref): Correctly set the generic context before
6392         parsing the signature.  Fixes #75681.
6393
6394 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
6395
6396         * object.c (mono_class_has_special_static_fields): Fix warnings.
6397
6398 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6399
6400         * assembly.c: Add parse_public_key function, to
6401         par the public keys. Also added mono_assembly_name_parse_full,
6402         to define it the parsed key should be freed or not.
6403         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
6404         to parse a long format assembly name.
6405         * metadata-internals.h: Keep mono_assembly_name_parse_full as
6406         private, since calling it to preserve the key requires
6407         freeing it manually.
6408         
6409 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
6410
6411         * locales.c : removed HAVE_ICU part.
6412
6413 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
6414
6415         * object.c (mono_class_create_runtime_vtable): Avoid calling 
6416         field_is_special_static if the klass has no special static fields.
6417
6418         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
6419         (MonoCachedClassInfo): Likewise.
6420
6421         * object.c (mono_class_has_special_static_fields): New helper function.
6422
6423 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6424
6425         * class.c (mono_class_create_from_typedef): Don't call 
6426         interfaces_from_typedef_full for enums.
6427         (mono_class_create_from_typedef): Compute the base types of enums directly
6428         without calling mono_class_setup_fields ().
6429         (mono_class_find_enum_basetype): New helper function.
6430
6431         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
6432         one place inside the string heap.
6433         
6434 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
6435
6436         * class.c: locking fixes, code cleanups, some docs added.
6437         Allocate some data structures in the image mempool.
6438
6439 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6440
6441         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
6442         the example code.
6443         
6444 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
6445
6446         * class-internals.h, class.c, reflection.c: reduce memory taken by
6447         MonoClass.
6448
6449 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
6450
6451         * metadata.c, metadata.h, loader.h: documentation updates, code and
6452         API cleanups.
6453
6454 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6455
6456         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
6457         the example code.
6458
6459         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
6460         page faults caused by the runtime while reading metadata.
6461
6462 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6463
6464         * socket-io.c: the field names were changed 3 months ago and no one
6465         realized until bug #76077 got filed!
6466
6467 2005-09-20  Martin Baulig  <martin@ximian.com>
6468
6469         * icall.c (assembly_icalls): Removed some unused debugger icalls.
6470
6471 2005-09-20  Martin Baulig  <martin@ximian.com>
6472
6473         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
6474         write the rank into the class entry.
6475
6476 2005-09-20  Martin Baulig  <martin@ximian.com>
6477
6478         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
6479
6480 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
6481
6482         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6483
6484         * icall.c (custom_attrs_defined_internal): New icall.
6485
6486         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
6487         function.
6488         (mono_custom_attrs_construct_by_type): New helper function.
6489
6490 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
6491
6492         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
6493         terminate the resulting string. Fixes #76123.
6494
6495 2005-09-16  Martin Baulig  <martin@ximian.com>
6496
6497         * mono-debug.c
6498         (mono_debug_add_method): Ignore inflated methods for the moment.
6499
6500 2005-09-14  Martin Baulig  <martin@ximian.com>
6501
6502         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
6503
6504 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
6505
6506         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
6507         return a success/failure indication.
6508         (mono_metadata_interfaces_from_typedef_full): Ditto.
6509         (get_constraints): Ditto.
6510
6511 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
6512
6513         * marshal.c (emit_marshal_array): Fix handling of null arrays.
6514         
6515         * marshal.c (emit_marshal_array): Add support for returning string
6516         arrays from delegates. Fixes #76063.
6517
6518         * marshal.c: Use the emit_ldloc/stloc macros where possible.
6519
6520 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
6521
6522         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
6523         icall.
6524
6525 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
6526
6527         * reflection.c icall.c: Fix after mono_get_exception_type_load
6528         signature change.
6529
6530         * assembly.c (mono_assembly_get_assemblyref): New helper function.
6531         (mono_assembly_load_reference): Use the new helper.
6532
6533         * class-internals.h (MonoLoaderError): New structure containing 
6534         information about type loading errors.
6535
6536         * class-internals.h loader.c: Add APIs to store per-thread loader
6537         error information.
6538
6539         * loader.c class.c: Set the loader error if needed.
6540
6541         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
6542
6543 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
6544
6545         * decimal.c: fixed to handle the broken ARM fp format.
6546
6547 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
6548
6549         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
6550         broken.
6551
6552 2005-09-06  Martin Baulig  <martin@ximian.com>
6553
6554         * domain.c (supported_runtimes): Added v2.0.50727.
6555
6556 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
6557
6558         * culture-info.h: reduce the size of some structures.
6559
6560 2005-09-05  Martin Baulig  <martin@ximian.com>
6561
6562         Reflect latest API changes in the August CTP.
6563
6564         * icall.c
6565         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
6566         ("MonoType.HasGenericArguments"): Removed.
6567         ("MonoMethod.BindGenericParameters"): Renamed to
6568         "MakeGenericMethod".
6569         ("MethodBuilder.BindGenericParameters"): Renamed to
6570         "MakeGenericMethod".    
6571
6572 2005-09-05  Martin Baulig  <martin@ximian.com>
6573
6574         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
6575
6576 2005-09-05  Martin Baulig  <martin@ximian.com>
6577
6578         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6579
6580         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
6581         generic_container is non-NULL.
6582
6583 2005-09-05  Martin Baulig  <martin@ximian.com>
6584
6585         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6586
6587         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
6588
6589 2005-08-29  Michal Moskal  <malekith@nemerle.org>
6590
6591         * reflection.c (encode_locals,
6592         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
6593         for large generic types.
6594
6595 2005-09-05  Martin Baulig  <martin@ximian.com>
6596
6597         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6598
6599         * class.c (mono_dup_array_type): New public method.
6600         (mono_metadata_signature_deep_dup): New public method.
6601         (dup_type): Correctly duplicate array and function types.
6602
6603 2005-09-05  Martin Baulig  <martin@ximian.com>
6604
6605         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6606
6607         * reflection.c (get_default_param_value_blobs): Handle generic types
6608         and generic methods.
6609
6610 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
6611
6612         * class.c: Fixed error reporting (method/class were inversed) for 
6613         inheritance demands.
6614         * security-manager.c|h: Added the AppDomain when calling the managed
6615         System.Security.SecurityManager.InheritanceDemand method.
6616
6617 2005-09-01  Raja R Harinath  <rharinath@novell.com>
6618
6619         * reflection.c (encode_marshal_blob): 'marshaltype' and
6620         'marshaltyperef' are alternate sources for the custom marshaler
6621         name.
6622
6623 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
6624
6625         * class.c: fix creation of array classes with rank == 1
6626         (patch by Ankit Jain <jankit@novell.com>).
6627
6628 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
6629
6630         * object.c: fix check for creating the bound data for arrays vs
6631         szarrays.
6632
6633 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6634
6635         * object.c: configuration file name is now based on the executable name,
6636         not the image name. Fixes bug #75931.
6637
6638 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
6639
6640         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
6641         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
6642
6643 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
6644
6645         * rand.c: Use wincrypt.h instead of WinCrypt.h.
6646
6647 2005-08-24  Ankit Jain  <jankit@novell.com>
6648             Raja R Harinath  <rharinath@novell.com>
6649
6650         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
6651           called by it recursively.
6652           (mono_class_init): Remove special case in pending_init handling, since it's
6653           superseded by the fix to mono_class_from_typeref.
6654
6655 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
6656
6657         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
6658         BROKEN_THREAD_START stuff.
6659
6660 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
6661
6662         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
6663         trampoline.
6664
6665         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
6666         
6667         * object.c (mono_delegate_ctor): Replace the original function address with
6668         a delegate trampoline.
6669
6670 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
6671
6672         * icall.c: add boolean argument to base64_to_byte_array and 
6673         InternalFromBase64String to control whether a whitespace-only string
6674         is allowed (or should casue a FormatException to be thrown). We need
6675         this as the behavior has changed between MS.NET 1.x and 2.0, and we
6676         to match the MS behaviour in both profiles.
6677         * appdomain.c: Bump corlib version.
6678
6679 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6680
6681         This patch implements a big portion of publisher policy
6682         support, used to bind assembly versions and redirect
6683         one assembly from version A to version B.
6684
6685         * assembly.c:
6686         New GSList loaded_assembly_bindings, for storing the cached
6687         assembly bindings.
6688         (assembly_binding_maps_name): New static function for checking if a 
6689         assembly binding information maps an assembly name.
6690         (mono_assembly_binding_info_free): New function for freeing
6691         assembly binding information resources.
6692         (get_publisher_policy_info): New static function for retrieving 
6693         assembly binding information from a MonoImage.
6694         (compare_versions): New static function for comparing an assembly
6695         binding information data and the version of an assembly name.
6696         (check_policy_versions): New static function for checking if an
6697         assembly binding info mapping an assembly name is valid for it.
6698         (mono_assembly_load_publisher_policy): New static function for
6699         loading the 'policy.major.minor.MyAssembly' image for an assembly
6700         with an assembly name 'aname'.
6701         (mono_assembly_bind_version): New static function for updating
6702         assembly redirection.
6703         (mono_assembly_apply_binding): New static function for applying
6704         assembly binding.
6705         (search_binding_loaded): New static function for searching 
6706         loaded assembly binding infos in the cache domain.
6707         (mono_assembly_load_full): Don't apply assembly binding for
6708         reflection only assemblies.
6709
6710         * metadata-internals.h: Add MonoAssemblyBindingInfo,
6711         which contains information about assembly binding. Also
6712         declare signature for mono_config_parse_publisher_policy ()
6713         function, used to retrieve pub policy info.
6714         
6715         * mono-config.c:
6716         (publisher_policy_start): New static function used to parse publisher 
6717         policy config files.
6718         (publisher_policy_parser): New static MonoParseHandler containing 
6719         the functions used when parsing config files.
6720         (mono_config_parse_publisher_policy): New function for parsing
6721         publisher policy files.
6722         
6723 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
6724
6725         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
6726
6727         * marshal.c (mono_delegate_free_ftnptr): Ditto.
6728
6729         * object.c (mono_get_addr_from_ftnptr): New helper function.
6730
6731         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
6732
6733         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6734
6735 2005-08-19  Dick Porter  <dick@ximian.com>
6736
6737         * threads.c, threads.h, appdomain.c, appdomain.h,
6738         profiler-private.h, monitor.c, object.c, object-internals.h,
6739         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
6740         store the thread ID, so it can hold a 64 bit value if needed.
6741
6742 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
6743
6744         * reflection.c (mono_reflection_create_dynamic_method): Store the
6745         handle class into the method references as well so ldtoken works in
6746         dynamic methods.
6747
6748         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
6749         types.
6750
6751 2005-08-19  Ankit Jain <jankit@novell.com>
6752
6753         Fix #75847.
6754         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
6755           here rather than using the method signature of a arbitrary function
6756           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
6757           two arguments.
6758           Hack done with Harinath.
6759
6760 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6761
6762         * threadpool.c: disable printing stack traces when we get a exception
6763         in a threadpool thread. I need to do more testing to figure out which
6764         cases actually print this. Fixes bug #75828.
6765
6766 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6767
6768         * icall.c: there might be ignored whitespace after the last '='. This
6769         fixes length computation and bug #75840.
6770
6771 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
6772
6773         * assembly.c (mono_assembly_load_full): Consider .exe extension as
6774         well. Fixes #75809.
6775
6776         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
6777         #75784.
6778         
6779         * reflection.c (create_custom_attr_data): Ditto.
6780
6781 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
6782
6783         * locales.c, culture-info.h : removed RegionLCIDMap.
6784         * culture-info-tables.h : regenerated.
6785
6786 2005-08-16  Martin Baulig  <martin@ximian.com>
6787
6788         * class.c (mono_type_get_name_recurse): Small fix.
6789
6790 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
6791
6792         * locales.c : indentation fixie.
6793
6794 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
6795
6796         * object-internals.h,
6797           locales.h,
6798           locales.c,
6799           culture-info.h,
6800           icall.c : added RegionInfo table support.
6801         * culture-info-table.h : regenerated for region support.
6802
6803 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
6804
6805         * reflection.c (resolve_object): handle all kinds of MonoMethod
6806         including generic ones
6807
6808 2005-08-12  Ankit Jain <jankit@novell.com>
6809
6810         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
6811           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
6812
6813 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
6814
6815         * process.c: Don't close a thread handle when it's NULL. This is a
6816         workaround for bug #75733.
6817
6818 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
6819
6820         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
6821
6822 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
6823
6824         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
6825
6826 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6827
6828         * threadpool.c: if a work item in the thread pool has a callback that
6829         catches a exception, don't propagate it after invoking the callback.
6830         Fixes bug #75336.
6831
6832 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
6833
6834         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
6835
6836         * class-internals.h (MonoCachedClassInfo): Add some new fields.
6837
6838         * class.c (mono_class_init): Load field info lazily in the AOT case.    
6839
6840         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
6841
6842 2005-08-03  Ankit Jain  <jankit@novell.com>
6843
6844         Fix #75683.
6845         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
6846           PInvoke calling convention is 0.
6847
6848 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
6849
6850         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
6851         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
6852
6853 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
6854
6855         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
6856         to handle threads not started by the GC (patch by Michael Meeks
6857         <michael.meeks@novell.com>).
6858
6859 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
6860
6861         * reflection.c: Make buffer used in emitting types larger for some
6862         big generic types (patch by Michal Moskal).
6863
6864 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
6865
6866         * mono-debug.c: Fix some (not all) alignment problems.
6867
6868 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6869
6870         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
6871         Invoke mono_image_load_from_data_full passing the refonly
6872         parameter.
6873
6874         * assembly.c
6875         (mono_assembly_open_from_bundle): Add the refonly argument, 
6876         in order to pass it to other methods it calls to.
6877         (do_mono_assembly_open): Add the refonly argument, in order 
6878         to pass it to other methods it calls to.
6879         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
6880         the refonly parameter to it.
6881
6882         * image.c: Add loaded_images_refonly_hash and
6883         loaded_images_refonly_guid_hash to cache the reflection
6884         only loaded images.
6885         (mono_images_init): Initialize the hash tables used for
6886         caching the reflection only images.
6887         (load_modules): Invoke mono_image_open_full passing the refonly
6888         parameter to load the modules the correct way.
6889         (build_guid_table): Add the refonly argument, to re-build the 
6890         correct hash table.
6891         (do_mono_image_open): Added the refonly argument, in order to
6892         define it for the loaded image.
6893         (mono_image_loaded_full): New function, which receives an
6894         additional parameter to look for the image in the refonly or
6895         non-refonly section.
6896         (mono_image_loaded): Updated, using mono_image_loaded_full.
6897         (mono_image_loaded_by_guid_full): The same case that happens
6898         with mono_image_loaded_full.
6899         (mono_image_loaded_by_guid): Likewise.
6900         (register_image): Use the ref_only variable inside MonoImage
6901         to decide in which hash table store the current image.
6902         (mono_image_open_from_data_full): Rename
6903         mono_image_open_from_data to mono_image_open_from_data_full,
6904         adding the refonly argument, to define the ref_only variable 
6905         inside MonoImage.
6906         (mono_image_open_from_data): Return 
6907         mono_image_open_from_data_full.
6908         (mono_image_open_full): Rename mono_image_open to
6909         mono_image_open_full, receiving the new refonly argument,
6910         to pass it to inner methods.
6911         (mono_pe_file_open): Update this function, to open
6912         a MonoImage as a non-refonly image.
6913         (mono_image_close): Use the refonly variable inside
6914         MonoImage to remove the image from the correct caches.
6915
6916         * image.h: Add the signatures of mono_image_open_full,
6917         mono_image_open_from_data_full, mono_image_loaded_full,
6918         mono_image_loaded_by_guid_full.
6919
6920         * metadata-internals.h: Add the ref_only field to 
6921         MonoImage.
6922         
6923 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6924
6925         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
6926         Fix the last behavior, which used to load the assemblies and
6927         extract MonoReflectionAssemblyName information, instead of
6928         extract it from the metadata tables. Needed for Reflection
6929         Only assemblies.
6930         
6931 2005-07-29  Martin Baulig  <martin@ximian.com>
6932
6933         * mono-debug-debugger.c
6934         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
6935         not initialized.
6936
6937         * mono-debug.c
6938         (mono_debug_address_from_il_offset): Check whether we have
6939         debugging support before attempting to take the lock.
6940         (mono_debug_source_location_from_address): Likewise.
6941         (mono_debug_source_location_from_il_offset): Likewise.
6942         (mono_debug_il_offset_from_address): Likewise.
6943         (mono_debug_address_from_il_offset): Likewise.
6944
6945 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
6946
6947         * class.c (mono_class_from_name_case): Add support for dynamic images.
6948         Fixes #75650.
6949
6950         * object.c (mono_class_compute_gc_descriptor): Add a workaround
6951         for #75479.
6952
6953 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
6954         
6955         * reflection.c (mono_method_get_object): Fix warning.
6956
6957 2005-07-28  Martin Baulig  <martin@ximian.com>
6958
6959         * mono-debug.c
6960         (mono_debug_add_wrapper): Also write the wrapper type.
6961
6962 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
6963
6964         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
6965         
6966         * class.c (mono_class_init): Avoid reading nested classes if the AOT
6967         data indicates the class has none.
6968
6969 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
6970
6971         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
6972         loader lock with the debugger lock. Prevents deadlocks for beagle.
6973
6974         Beagle can now run on an smp box for a weekend without any
6975         issues. Woohoo!
6976
6977 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
6978
6979         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
6980         in a module. Fixes #75629.
6981
6982 2005-07-26  Martin Baulig  <martin@ximian.com>
6983
6984         * mono-debug.c (mono_debug_add_wrapper): New static method.
6985         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
6986         interncall or a wrapper.
6987
6988         * mono-debug.h (MonoDebugWrapperData): New public typedef.
6989         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
6990         (MONO_DEBUGGER_VERSION): Bump to 51.
6991
6992         * mono-debug-debugger.c
6993         (mono_debugger_add_type): Removed this empty function.
6994         (mono_debugger_add_method): Likewise.
6995
6996 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
6997
6998         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
6999         before accessing method->slot.
7000
7001 2005-07-21  Jb Evain  <jbevain@gmail.com>
7002
7003         * reflection.c (method_encode_clauses/class): Handle filters clauses.
7004         Fixes #75010.
7005
7006 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
7007
7008         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
7009         #75587.
7010
7011 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
7012
7013         * image.h image.c: Add mono_image_get_guid () API function.
7014
7015 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
7016
7017         There were issues when multiple threads tried to load
7018         assemblies. A deadlock was created between assemblies_mutex and
7019         mono_domain_assemblies_lock. This fixes the issue by making the
7020         assembly ref counting be lock free. See bug 75586.
7021         
7022         * image.c (mono_image_close): The add ref function here was using
7023         Interlocked operations while the unref was using a mutex and a
7024         --. I don't think this was ever a bug that would be exposed in a
7025         non-pendantic way (ie, by an embedder doing a ref on one thread
7026         and an unref on another), but for the sake of correctness, this is
7027         now Interlocked.
7028
7029         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
7030         (mono_assembly_load_reference): Call mono_assembly_addref rather
7031         than touching the refcount ourselves.
7032         (mono_assembly_close): Use InterlockedDecrement to unref the
7033         assembly. Don't acquire the lock unless it is actually needed.
7034
7035 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
7036
7037         * class.c (mono_class_layout_fields): Fix calculation of has_references
7038         for generic types.
7039
7040 2005-07-12  Martin Baulig  <martin@ximian.com>
7041
7042         Applying a patch from Michal Moskal <malekith@nemerle.org>.
7043
7044         * metadata.c
7045         (mono_type_hash): Provide better hashing for generic instances.
7046         (mono_generic_inst_hash): Improve hashing.
7047         (mono_generic_class_hash): Likewise.
7048
7049         * reflection.c (mymono_metadata_type_hash): Improve hashing for
7050         generic instances.
7051
7052 2005-07-12  Martin Baulig  <martin@ximian.com>
7053
7054         * reflection.c (mono_reflection_create_runtime_class): Remove the
7055         hack for generic type definitions and non-`Run' assemblies.
7056         (mono_reflection_bind_generic_parameters): Also use
7057         `klass->wastypebuilder' to check for TypeBuilders.
7058
7059 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
7060
7061         * class.c (mono_class_layout_fields): Fix calculation of has_references
7062         for generic types.
7063
7064         * class.c (inflate_generic_class): Fix a leak.
7065         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
7066         for generic types.
7067
7068 2005-07-11  Martin Baulig  <martin@ximian.com>
7069
7070         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
7071         on error.
7072
7073 2005-07-11  Martin Baulig  <martin@ximian.com>
7074
7075         * loader.c (find_method): Also lookup in
7076         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
7077
7078 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
7079
7080         * appdomain.c (mono_domain_unload): Don't free the error message
7081         before passing it to mono_get_exception_...
7082
7083         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
7084         
7085 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
7086
7087         * threads.c: try to better guess an available RT signal (bug #75387).
7088
7089 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
7090
7091         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
7092         and CACHE_OBJECT.
7093
7094 2005-07-07  Martin Baulig  <martin@ximian.com>
7095
7096         * class.c (mono_type_get_name_full): Return NULL for
7097         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
7098         fixes #75408.
7099
7100 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
7101
7102         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
7103         exit the appdomain as well being aborted.
7104
7105         * threadpool.c: Create all threadpool threads inside the root appdomain, and
7106         change back to the root domain after calling managed code. This enables
7107         appdomains using threadpools to be unloaded.
7108
7109 2005-07-07  Martin Baulig  <martin@ximian.com>
7110
7111         * class-internals.h
7112         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
7113         into `MonoDynamicGenericClass' since we only need it for dynamic
7114         types.
7115
7116         * reflection.c (mono_class_bind_generic_parameters): We don't need
7117         to compute the `parent' here.
7118
7119 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
7120
7121         * culture-info-table.h : regenerated.
7122
7123 2005-07-06  Martin Baulig  <martin@ximian.com>
7124
7125         * icall.c
7126         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
7127
7128         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
7129
7130 2005-07-06  Martin Baulig  <martin@ximian.com>
7131
7132         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
7133         we're doing a signature-only comparision; fixes #74945.
7134
7135 2005-07-06  Martin Baulig  <martin@ximian.com>
7136
7137         * class-internals.h (MonoGenericClass): Moved some things out into
7138         a new `MonoInflatedGenericClass' type.  
7139         (MonoInflatedGenericClass): New type; the `klass' of a
7140         `MonoGenericClass' is now computed lazyly in
7141         mono_get_inflated_generic_class().      
7142
7143         * class.c (mono_get_inflated_generic_class): New public function.
7144         (mono_class_inflate_generic_method): Removed the unused
7145         `MonoClass *' argument.
7146         (setup_generic_vtable): Don't call mono_get_inflated_method() on
7147         all the methods.
7148         (mono_class_create_generic): Make this static and merge it with
7149         mono_class_create_generic_2(); we're now called automatically from
7150         mono_get_inflated_generic_class().
7151
7152         * loader.c (mono_method_signature): Call
7153         mono_get_inflated_method() here.
7154
7155 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
7156
7157         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
7158         type of fields with RVA.
7159
7160         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
7161         for this pseudo class.
7162         (my_mono_class_from_generic_parameter): Likewise.
7163         (mono_class_init): Allow interfaces to have cctors.
7164
7165 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
7166
7167         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
7168         lazily for AOT methods.
7169
7170 2005-07-05  Martin Baulig  <martin@ximian.com>
7171
7172         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
7173         returns FALSE for a successful match, not TRUE.
7174
7175 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
7176
7177         * loader.c (mono_method_get_index): Optimize this a bit.
7178
7179 2005-07-04  Martin Baulig  <martin@ximian.com>
7180
7181         * class.c
7182         (class_compute_field_layout): Move the check for generic type
7183         definitions into mono_class_layout_fields().  Fixes #74684.
7184         (mono_class_from_generic_parameter): Correctly compute
7185         `klass->parent'; fixes #75457.
7186
7187         * reflection.c (register_assembly, register_module): Make sure
7188         `domain->rejobject_hash' is already created.
7189
7190 2005-07-02  Martin Baulig  <martin@ximian.com>
7191
7192         * class-internals.h
7193         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
7194         `MonoDynamicGenericClass'.      
7195
7196 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
7197
7198         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
7199         returned by a field getter is null, since null is a valid value.
7200
7201 2005-07-01  Martin Baulig  <martin@ximian.com>
7202
7203         * reflection.c (mono_reflection_generic_class_initialize): Update
7204         the `dgclass->fields [i].parent' to the correct class.
7205         (mono_image_get_fieldref_token): Use the declaring type, not the
7206         reflected type.
7207
7208 2005-07-01  Martin Baulig  <martin@ximian.com>
7209
7210         * loader.c (find_method): Also look in the interfaces; fixes #75429.
7211
7212 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
7213
7214         * threads.c (thread_cleanup): assert that thread != NULL
7215         (wait_for_tids_or_state_change): We were using the wrong variable
7216         when accessing wait->threads. `i' was always out of the bounds of
7217         the array.
7218
7219 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7220
7221         * loader.c: map user32 and kernel32 to libMonoSupportW
7222
7223 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
7224
7225         * appdomain.c (unload_thread_main): Mark this as WINAPI.
7226
7227 2005-06-28  Martin Baulig  <martin@ximian.com>
7228
7229         * loader.c (method_from_methodspec): Fix #75334.
7230
7231 2005-06-28  Martin Baulig  <martin@ximian.com>
7232
7233         Fix #74953 - Arrays now implement the generic IList<T> interface
7234         on the 2.0 platform.
7235
7236         * class-internals.h (MonoDefaults): Added `generic_array_class'.
7237
7238         * reflection.c (mono_class_bind_generic_parameters): New public
7239         function; similar to mono_reflection_bind_generic_parameters(),
7240         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
7241
7242         * domain.c (mono_init_internal): Try to initialize.
7243         `mono_defaults.generic_array_class' here; this'll only succeed if
7244         we're using the 2.0 corlib.
7245
7246         * icall.c
7247         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
7248         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
7249         (mono_lookup_internal_call): Added support for nested classes.
7250
7251         * loader.c
7252         (mono_get_method_from_token): Set `result->signature->pinvoke' if
7253         we're an interncall and have generic arguments.
7254
7255         * class.c
7256         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
7257         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
7258         instance of System.Array.InternalArray<T> for arrays, so they
7259         implement the generic IList<T> interface.
7260
7261 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
7262
7263         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
7264         (chastamar@yahoo.com). Fixes #75374.    
7265
7266 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
7267
7268         * culture-info-table.h: regenerated.
7269
7270 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7271
7272         * icall.c: handle spaces correctly for base64 strings.
7273
7274 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
7275
7276         * *.c: Kill some warnings.
7277
7278 2005-06-23  Duncan Mak  <duncan@novell.com>
7279
7280         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
7281         that this builds on Solaris 10 (x86).
7282
7283 2005-06-23  Martin Baulig  <martin@ximian.com>
7284
7285         * class.c
7286         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
7287         generic type definitions.
7288
7289 2005-06-23  Martin Baulig  <martin@ximian.com>
7290
7291         Fix #75331.
7292
7293         * metadata.c (mono_class_get_overrides): Renamed to
7294         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
7295         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
7296         pass it to mono_get_method_full().
7297
7298 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
7299
7300         * reflection.c (mono_reflection_create_runtime_class): take the
7301         mono_domain_lock in this method. Prevents deadlocks
7302
7303 2005-06-22  Martin Baulig  <martin@ximian.com>
7304
7305         * loader.c (method_from_methodspec): Fix #75330.
7306
7307 2005-06-22  Martin Baulig  <martin@ximian.com>
7308
7309         * reflection.c (type_get_qualified_name): Use
7310         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
7311         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
7312         argument; use it if we don't have an assembly name.
7313
7314 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
7315
7316         * object.c: In mono_message_init, set "copy out" flag for in
7317         parameters with the [Out] flag.
7318
7319 2005-06-21  Martin Baulig  <martin@ximian.com>
7320
7321         * class.c
7322         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
7323         and MONO_TYPE_PTR.
7324
7325 2005-06-21  Martin Baulig  <martin@ximian.com>
7326
7327         * class.c (mono_class_init): Don't initialize `class->fields' for
7328         generic instances since they're initialized again in
7329         compute_field_layout(). 
7330         (compute_field_layout): Set the field's `generic_info' here; fix
7331         #75320. 
7332
7333 2005-06-21  Martin Baulig  <martin@ximian.com>
7334
7335         * class-internals.h
7336         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
7337
7338         * metadata.c (mono_metadata_generic_method_equal): Also
7339         distinguish the `generic_class'; fixes #75334.
7340
7341 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7342
7343         * domain.c:
7344         * appdomain.c:
7345         * domain-internals.h:
7346         * reflection.c: 'domain_assemblies' field is now protected by its own
7347         lock. Don't call into managed code to run the AssemblyLoad event if we
7348         now there are no registered delegates for it.
7349
7350 2005-06-20  Martin Baulig  <martin@ximian.com>
7351
7352         * class.c (mono_class_is_assignable_from): Use a custom version of
7353         mono_class_has_parent() to make things work for generic instances;
7354         fix #75300.
7355
7356 2005-06-20  Martin Baulig  <martin@ximian.com>
7357
7358         * loader.c (method_from_methodspec): Apply a patch from
7359         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
7360
7361 2005-06-20  Martin Baulig  <martin@ximian.com>
7362
7363         * class.c (mono_class_init): Reverted Zoltan's last change; it
7364         breaks generics.
7365
7366 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
7367
7368         * threads.c (wait_for_tids_or_state_change): Add missing locking.
7369
7370 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7371
7372         * socket-io.c: fix the index in the socket array for writable/error
7373         sockets. Fixes bug #75306.
7374
7375 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
7376
7377         * class.c (mono_class_init): Allow interfaces to have static ctors.
7378
7379 2005-06-17  Martin Baulig  <martin@ximian.com>
7380
7381         * loader.c (method_from_methodspec): Use `context->container' when
7382         parsing the `gmethod->inst'.
7383
7384 2005-06-17  Martin Baulig  <martin@ximian.com>
7385
7386         * class.c (mono_type_get_name_recurse): Don't add the assembly
7387         name for type arguments.
7388
7389 2005-06-15  Martin Baulig  <martin@ximian.com>
7390
7391         * reflection.c (mono_image_get_inflated_method_token): Encode
7392         correct klass; fixes #75260.
7393
7394 2005-06-13 Michal Moskal <malekith@nemerle.org>
7395
7396         * icall.c: Make GetCorrespondingMethod/Constructor take
7397         MonoReflectionMethod method not MonoMethod. Removed
7398         MonoType.GetCorrespondingField, and make
7399         MonoGenericType.GetCorrespondingField take name not
7400         MonoClassField.
7401
7402 2005-06-13  Michal Moskal <malekith@nemerle.org>
7403
7404         * reflection.c (field_encode_signature, encode_locals):
7405          Make sizes of buffers for types larger (for big generic types).
7406          (create_generic_typespec,
7407          mono_reflection_sighelper_get_signature_local,
7408          mono_reflection_sighelper_get_signature_field):
7409          Add asserts for too small buffers.
7410
7411 2005-06-15  Martin Baulig  <martin@ximian.com>
7412
7413         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
7414         if our parent is not a dynamic type.
7415
7416 2005-06-15  Martin Baulig  <martin@ximian.com>
7417
7418         * class-internals.h (MonoTypeNameFormat): New enum.
7419
7420         * class.c
7421         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
7422         (mono_type_get_full_name): Removed.
7423         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
7424         argument instead of the boolean's.
7425
7426         * icall.c (ves_icall_System_MonoType_getFullName):
7427         Added `gboolean assembly_qualified'.    
7428
7429         * reflection.h
7430         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
7431
7432         * reflection.c (mono_reflection_parse_type): Parse the new type
7433         name format.
7434
7435 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7436
7437         * icall.c: no need to convert from utf16 to utf8 and then back again
7438         after the call to GetLogicalDrives.
7439
7440 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7441
7442         * icall.c: frombase64. Fix problems exposed by new tests.
7443
7444 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7445
7446         * icall.c: added internal calls for converting char [] and strings in
7447         base64 into byte [].
7448
7449 2005-06-10  Martin Baulig  <martin@ximian.com>
7450
7451         * class.c (mono_class_create_generic_2): Read the nested classes
7452         from the metadata rather than from `gklass->nested_classes' since
7453         `gklass' might not be initialized yet.
7454
7455 2005-06-09  Duncan Mak  <duncan@novell.com>
7456
7457         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
7458         all public headers. Fixes #74919.
7459
7460 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
7461
7462         * domain.c: The key for proxy_vtable_hash is now a pointer
7463         array. Added new GHashFunc and GCompareFunc functions for this.
7464
7465         * class.h: The list of interfaces in MonoRemoteClass is known in
7466         advance and can't grow (we create a new MonoRemoteClass if needed),
7467         so now the interface array can be allocated together with
7468         MonoRemoteClass.
7469         
7470         * object.c: Added a new method create_remote_class_key.
7471         Fixed mono_remote_class so it does not depend on
7472         mono_upgrade_remote_class.
7473         Removed extend_interface_array.
7474         Added new method clone_remote_class(), which makes a copy of a remote
7475         class and adds a new interface or class to it.
7476         mono_upgrade_remote_class() now creates a new remote class (or gets
7477         it from the cache) if an vtable upgrade is needed. In this way
7478         we make sure that other objects sharing the same remote class
7479         don't get the new vtable with unwanted interfaces.
7480         
7481         * object-internals.h:
7482         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
7483         
7484         * marshal.c: Track changes in mono_upgrade_remote_class().
7485
7486 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
7487         * icall.c: Add runtime methods for obtaining members of inflated
7488         class, which were created from supplied non-inflated members. It
7489         is used in internal Get{Method,Constructor,Field} methods in
7490         System.Type
7491
7492 2005-06-09  Martin Baulig  <martin@ximian.com>
7493
7494         * reflection.c
7495         (mono_reflection_bind_generic_method_parameters): Fix #75169.
7496
7497 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7498         * reflection.c (mono_image_basic_init): Define
7499         Version in MonoDynamicAssembly. 
7500         
7501 2005-06-08  Martin Baulig  <martin@ximian.com>
7502
7503         Fix #75136.
7504
7505         * loader.c
7506         (mono_method_signature_full): New public method; takes a
7507         `MonoGenericContext *'.
7508         (find_method): Use mono_method_signature_full() and pass the
7509         klass'es context to it.
7510
7511         * class.c (mono_class_is_inflated_method): Use
7512         mono_method_signature_full() and pass the context to it.
7513
7514 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
7515
7516         * object.c: add proper locking in mono_remote_class_vtable(),
7517         fixes possible memory corruption.
7518
7519 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
7520
7521         * marshal.c (mono_remoting_marshal_init): set
7522         initialized after initialization.
7523
7524 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
7525
7526         * locales.c : hush.
7527
7528 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
7529
7530         * object.c (extend_interface_array): fix really silly
7531         memory corrupting / comparison bug.
7532
7533 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7534
7535         * reflection.c: Functions added to support the creation
7536         of CustomAttributeData, which includes Attribute data
7537         used by ReflectionOnly methods.
7538
7539         * reflection.h:  mono_reflection_get_custom_attrs_data and
7540          mono_custom_attrs_data_construct added (functions exposed).
7541
7542          * icall.c: Added mono_reflection_get_custom_attrs_data
7543          as icall.
7544         
7545 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
7546
7547         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
7548         lupus's request.
7549
7550 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
7551
7552         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
7553
7554         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
7555         dynamic DllImportAttribute.
7556
7557         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
7558         dynamic DllImportAttribute.
7559
7560         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
7561         Fixes #75162.
7562
7563 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7564
7565         * threads.c: avoid segfault when an unstarted thread is aborted.
7566
7567 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
7568
7569         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
7570         Returns the name and version of the runtime for reporting.
7571
7572 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7573
7574         * appdomain.c: bump corlib version.
7575         * object-internals.h: new field in MonoReflectionAssembly.
7576
7577 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7578
7579         * object-internals.h: Carlos forgot to add this field.
7580
7581 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7582
7583         * icall.c: Added create_version to create instances
7584         of Version of MonoReflectionAssemblyName. This change helps
7585         the AssemblyName tests to keep running fine.
7586         
7587 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
7588   
7589         * object.c (mono_method_return_message_restore): A somehow less
7590         intrusive fix for #75138.
7591
7592 2005-06-03  Raja R Harinath  <rharinath@novell.com>
7593
7594         * object.c (mono_method_return_message_restore): Fix computation
7595         of expected number of out args.
7596
7597 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
7598
7599         * reflection.c (mono_image_get_method_info): Fix the case when the
7600         charset is empty.
7601
7602 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
7603
7604         * object.c: Added missing null check in
7605           mono_method_return_message_restore.
7606
7607 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
7608
7609         * reflection.c (mono_image_get_method_info): Handle the case when
7610         dllentry is empty.
7611
7612 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
7613
7614         * object.c: When creating the vtable for a proxy, take into account
7615         all inherited interfaces, not only the ones registered in
7616         iclass->interfaces. This fixs bug #74996.
7617         Also, in mono_method_return_message_restore, verify that the array
7618         of out args has the expected lengh.
7619
7620 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7621
7622         * socket-io.c: update the timeout in Poll when the call is interrupte.
7623
7624 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7625
7626         * socket-io.c: support abort/suspend in Select_internal after last
7627         change.
7628
7629 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7630
7631         * threadpool.c: remove warning.
7632
7633 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7634
7635         * icall.c:
7636         * socket-io.[ch]: Select_internal uses poll() now when available, thus
7637         removing the 1024 limit from select(). Runtime part of the fix for
7638         bug #71203.
7639
7640 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7641
7642         * socket-io.c: when resolving the addresses for the same
7643         host returned by gethostname(), get the local IPs from the interface
7644         list. Loopback addresses are discarded if the are interfaces up with
7645         non-loopback ones. Fixes bug #63265.
7646
7647 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
7648
7649         * appdomain.c, verify.c, object-internals.h, reflection.c:
7650         bumped corlib number to 36, and added new extra_flags field
7651         to ReflectionMethodBuilder and friends.  Fixes #75060.
7652
7653 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
7654
7655         * gc.c: register a new weak link only if the object is non-null
7656         (fixes bug#75047).
7657
7658 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
7659
7660         * culture-info.h : short time pattern too.
7661
7662 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
7663
7664         * culture-info.h : expand long time pattern string length.
7665
7666 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7667
7668         * culture-info-table.h : update (more French date format; #72788).
7669
7670 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
7671
7672         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
7673         the method is static. Fixes #75029.
7674
7675 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
7676
7677         * reflection.c: Update the table_idx field of method builders after
7678         saving the module, since it can change. This is a workaround for
7679         bug #74914. 
7680
7681 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7682
7683         * culture-info-table.h : update (additional French date format).
7684
7685 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
7686
7687         * icall.c (ves_icall_type_Equals): Revert last change.
7688         
7689         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
7690
7691         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
7692
7693 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
7694
7695         * class-internals.h: Added executioncontext_class field to 
7696         MonoDefaults structure.
7697         * domain.c: Cache System.Threading.ExecutionContext class in 
7698         mono_defaults.
7699         * object.c: Capture the ExecutionContext for asynchroneous calls in
7700          mono_async_result_new.
7701         * object-internals.h: Added execution_context and original_context 
7702         fields to MonoAsyncResult. Added execution_context to MonoThread.
7703         * security-manager.c|.h: Added mono_get_context_capture_method to 
7704         return the capture method (if required by the security manager or by
7705         the framework version used).
7706         * threadpool.c: Apply capture (if present) ExecutionContext in 
7707         mono_async_invoke and revert to original context after it completes.
7708
7709 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
7710
7711         * culture-info-table.h : updated (real hacky solution for zh-CHT).
7712
7713 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
7714
7715         * culture-info-table.h : zh-CHT related workaround.
7716
7717 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
7718
7719         * marshal.c (emit_marshal_custom): Add some error checking and call the
7720         methods in the ICustomMarshaler interface. Fixes #74875.
7721         
7722         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
7723         native->managed wrappers.
7724
7725 2005-05-12  Martin Baulig  <martin@ximian.com>
7726
7727         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
7728         here and use the loader lock.
7729
7730         * mono-debug.c: Properly lock when the debugger is not attached.
7731         (mono_debug_init): Release the initial lock if we're not running
7732         in the debugger.
7733
7734 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
7735
7736         * marshal.c (emit_marshal_custom): Pass through NULL values without
7737         calling the custom marshalling routines.
7738
7739         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
7740         conversion in structures. Fixes #74882.
7741
7742 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
7743
7744         * culture-info-table.h : zh-* cultures were missing.
7745
7746 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
7747
7748         * threads.c: Added a new event background_change_event which is signaled
7749         when a thread changes its background mode.
7750         Moved here several checks previously done in managed code. The checks
7751         require the thread lock, and using the thread lock in managed code
7752         can result in deadlocks.
7753         Merged Start_internal and Thread_internal into a single method. Now 
7754         Thread_internal does all work of creating and starting a thread.
7755         Added icalls for setting and getting the state of the object. Moved from
7756         managed code to avoid locking there.
7757         Added wait_for_tids_or_state_change() which is called instad of
7758         wait_for_tids when waiting for non-backround threads to end. This method
7759         will return if one of the threads ends or the background_change_event
7760         is signaled.
7761         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
7762         the background mode. This method signals the background_change_event
7763         event.
7764         * icall.c:
7765         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
7766         removed Start_internal.
7767         
7768 2005-05-11  Martin Baulig  <martin@ximian.com>
7769
7770         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
7771         to order of some fields to get proper alignment on 64-bit machines.
7772
7773 2005-05-11  Martin Baulig  <martin@ximian.com>
7774
7775         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
7776         changes as they're broken and completely fuck up the debugger.
7777
7778         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
7779
7780 2005-05-10  Martin Baulig  <martin@ximian.com>
7781
7782         * reflection.c (mono_reflection_generic_class_initialize): Don't
7783         call mono_class_setup_parent() here.
7784
7785 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7786
7787         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
7788         send/receive timeout use an integer in milliseconds. We were using a
7789         struct timeval.
7790
7791 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7792
7793         * locales.c:
7794         (internal_get_cultures): reserve the first slot of the array for the
7795         InvariantCulture, which will be filled in managed code.
7796
7797 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
7798
7799         * reflection.c (mono_image_fill_module_table): Initialize the
7800         GENERATION field as well.
7801
7802 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7803
7804         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
7805         Monitor.Enter on the object.
7806
7807 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
7808
7809         * threads.c: Enable the wait for running threads when exiting.
7810         * icall.c: Suspend all threads before exiting.
7811
7812 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
7813
7814         * assembly.c (mono_assembly_load_reference): Fix warning.
7815
7816 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7817
7818         * threadpool.c: changed the default number of threads per cpu. From now
7819         on, the default will be 20 + (5 * number of cpus) instead of 50.
7820
7821 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
7822
7823         * loader.c (mono_method_get_signature_full): Add locking here.
7824
7825 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
7826
7827         * appdomain.c: Moved methods for parsing and freeing assembly
7828         names to assembly.c.
7829         * assembly.c, domain-internals.h: Created public methods for parsing
7830         assembly names. Fixed mono_assembly_load_with_partial_name:
7831         it now finds the best match, taking into account the version,
7832         token and culture specified in the partial name. Also return
7833         the latest version if no version information is specified.
7834
7835 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
7836
7837         * threadpool.c: replace check for SocketAsyncCall class.
7838
7839 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7840
7841         * threadpool-internals.h:
7842         * Makefile.am: added threadpool-internals.h
7843
7844         * threadpool.c: call mono_unhandled_exception on exceptions not handled
7845         that happen in threadpool threads (tested on MS).
7846         (mono_thread_pool_remove_socket): new function that dispatch any pending
7847         AIO call on a socket that is closing. By now only epoll really needs it,
7848         as select/poll wake up when the socket closes.
7849
7850
7851         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
7852
7853 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
7854
7855         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
7856
7857 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
7858
7859         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
7860
7861 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
7862
7863         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
7864         has an abort request, convert it into a suspend request.
7865
7866 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
7867
7868         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
7869         warning for the usage of `UnmanagedFunctionPointerAttribute' which
7870         is not supported yet.
7871
7872 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7873
7874         * image.c: register assemblies loaded from data (bundles) in the loaded
7875         assemblies hash. Fixes bug #74772.
7876
7877 2005-04-29  Martin Baulig  <martin@ximian.com>
7878
7879         * class.c (mono_type_get_name_recurse): Update to the new naming
7880         schema from the latest .NET 2.x beta2.
7881         (mono_class_setup_vtable_general): If we're a generic instance,
7882         copy the vtable from our generic type definition and inflate all
7883         the methods in it.
7884
7885         * loader.c (find_method): Update to the new naming schema from the
7886         latest .NET 2.x beta2.
7887
7888 2005-04-29  Raja R Harinath  <harinath@gmail.com>
7889
7890         * class.c (mono_class_init): Add a mono_loader_unlock to the
7891         #74734 fix.
7892
7893 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
7894
7895         * icall.c (ves_icall_System_Environment_Exit): Remove the 
7896         suspend_all_other_threads () call for the time being, since it can hang.
7897
7898         * threads.c (mono_thread_manage): Similarly, disable the waiting for
7899         the background threads to exit, since it can also hang.
7900
7901         * class.c (mono_class_init): Applied patch from Ankit Jain 
7902         (radical@gmail.com). Avoid pending init errors when a field refers
7903         to a nested class using a typeref. Fixes #74734.
7904
7905         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
7906         this for dynamic modules.
7907
7908 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7909
7910         * threads.c: don't wait for threads that are in the process of aborting
7911         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
7912         and waiting for background threads to finish. This makes xsp and
7913         mod-mono-server exit without random length delays and/or hangs.
7914
7915 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7916
7917         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
7918
7919 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
7920
7921         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
7922         dynamic types to prevent infinite loops. Fixes #74727.
7923
7924         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
7925         ..._is_assignable_to.
7926
7927 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
7928
7929         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
7930
7931 2005-04-25  Martin Baulig  <martin@ximian.com>
7932
7933         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
7934
7935         * domain.c
7936         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
7937
7938         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
7939
7940         * reflection.c (build_compressed_metadata): Set metadata header
7941         version to 2.0.
7942
7943 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
7944
7945         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
7946         number into an integral and a decimal part. Fixes #70473.
7947
7948         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
7949
7950 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
7951
7952         * culture-info-table.h : reflected the latest locale-builder output.
7953
7954 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7955
7956         * threadpool.c: check for SuspendRequested too when deciding if
7957         mono_thread_interruption_checkpoint should be called.
7958
7959 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7960
7961         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
7962         * threads.c: remove interruption_mutex and use Interlocked instead. When
7963         suspending all the threads, wait for all the suspended events at once.
7964         If we're shutting down and get an APC that is going to be queued,
7965         call mono_thread_execute_interruption immediately, as the thread might
7966         be sleeping on a pthread condition or mutex.
7967
7968         * icall.c: call mono_runtime_set_shutting_down before suspending the
7969         threads.
7970
7971         Fixes bug #74693. And now xsp is happier when exiting.
7972
7973 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
7974
7975         * loader.c (mono_stack_walk): Fix #74690.
7976
7977 2005-04-22  Martin Baulig  <martin@ximian.com>
7978
7979         * mono-debug.h (MonoDebugMethodJitInfo): Added
7980         `MonoDebugMethodJitInfo *jit'.
7981
7982         * mono-debug.c (mono_debug_read_method): Cache the
7983         MonoDebugMethodJitInfo in `address->jit'.
7984         (mono_debug_free_method_jit_info): New public method.
7985
7986 2005-04-22  Martin Baulig  <martin@ximian.com>
7987
7988         * class.c (mono_class_is_assignable_from): Disallow
7989         type parameter -> interface.
7990
7991 2005-04-21  Dick Porter  <dick@ximian.com>
7992
7993         * threads.c (mono_thread_create): Turn an assertion into an error.
7994
7995 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
7996
7997         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
7998         
7999         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
8000         Fix some gcc 4.0 warnings.
8001
8002 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
8003
8004         * file-io.c: fix alt dir separator char on unix systems
8005         and cleanup (fixes bug #71214).
8006
8007 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
8008
8009         * marshal.c: Use CALLVIRT instead of CALL when dispatching
8010         a call to a remote domain, since the method may be an
8011         interface method in the client domain. This fixes bug #74192.
8012
8013 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8014
8015         * threadpool.c: recv/send are now performed before going back to managed
8016         code to save one transition.
8017
8018 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8019
8020         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
8021
8022         * metadata/threadpool.c: removed hack to workaround the bug above.
8023
8024         Fixes bug #74618.
8025
8026 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
8027
8028         * reflection.c reflection.h: Fix handling of parameter defaults in
8029         dynamic methods. Also fixes handling of parameter attributes.
8030         Fixes #74609.
8031
8032         * mono-debug.c (mono_debug_close_image): Fix warning.
8033
8034 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8035
8036         * socket-io.h: replaced old unused field with new 'blocking'.
8037         * threadpool.c: restore socket blocking state on windows(tm).
8038
8039 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
8040
8041         * icall.c: don't return the codebase in the AssemblyName[] returned by
8042         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
8043         * object-internals.h: Removed FIXME (fields were presents) and fixed
8044         versioncompat declaration.
8045
8046 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8047
8048         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
8049         not closed, so don't cleanup when it happens.
8050
8051 2005-04-13  Chris Toshok  <toshok@ximian.com>
8052
8053         * mono-debug-debugger.h: change prototype for
8054         mono_debugger_lookup_type.
8055
8056         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
8057         this function, although it should probably be named
8058         mono_debugger_init_type.
8059
8060 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8061
8062         * threadpool.c: fix non-AIO case.
8063
8064 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
8065
8066         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
8067         the built-in profiler to measure just JIT compilation times.
8068
8069 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8070
8071         * threadpool.c: the epollfd might be closed by another thread at
8072         any time, so ignore EBADF at treat it as a "we're closing" sign.
8073
8074 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8075
8076         * threadpool.c: release the semaphores with a count equals to the number
8077         of working threads in both IO and regular pools. Fixed typo that messed
8078         up the count of IO pool threads. Don't initialize the pipe handles if
8079         we're using epoll.
8080
8081 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8082
8083         * threadpool.c: some systems don't like a NULL when deleting the socket
8084         from epoll.
8085
8086 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8087
8088         * threadpool.c: fix semaphore allocation.
8089
8090 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8091
8092         * threadpool.c: added epoll() based implementation for asynchronous IO
8093         that is used instead of the default poll() when available.
8094         It can be disabled by setting MONO_DISABLE_AIO.
8095
8096 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8097
8098         * threadpool.c: windows needs 'closesocket' and instead of returning
8099         0 when the stream is closed while in select, it returns -1. Fixes bug
8100         #74573.
8101
8102 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
8103
8104         * class.c (class_compute_field_layout): Fix the regression caused by
8105         the previous try.
8106
8107 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8108
8109         * threadpool.c: separate pool for socket async. IO.
8110         * threadpool.h: mono_max_worker_threads is not a global any more.
8111
8112 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
8113
8114         * class.c (class_compute_field_layout): Fix #74549.
8115
8116 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8117
8118         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
8119         use 2 connected sockets instead.
8120
8121 2005-04-08  Miguel de Icaza  <miguel@novell.com>
8122
8123         * mono-config.c: Add new entry point for mkbundle
8124         mono_config_parse_memory. 
8125
8126 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8127
8128         * threadpool.c: removed another unused function.
8129
8130 2005-04-08  Ankit Jain  <radical@corewars.org>
8131
8132         * reflection.c (get_default_param_value_blobs): Add 'types'
8133         parameter to get the types encoded in the constant table.
8134         (mono_param_get_objects): Use the type from the constant table,
8135         not the type of the parameter, when creating default values.
8136         Handle null default values correctly.
8137
8138 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8139
8140         * file-io.c:
8141         * file-io.h:
8142         * threadpool.c:
8143         * threadpool.h:
8144         * icall.c:
8145         * socket-io.c: removed dead code for async IO.
8146
8147 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8148
8149         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
8150
8151         * threadpool.c: intercept socket async. calls and pass them to a thread
8152         that is polling and dispatching the job items to the threadpool as
8153         socket become ready. Fixes bugs #71217, #71933.
8154
8155         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
8156         between char and short/ushort arrays.
8157
8158         * socket-io.c: remove dead code.
8159
8160 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
8161
8162         * locales.c,
8163           icall.c : removed InternalToUpper_Comp() and
8164           InternalToLower_Comp().
8165
8166 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
8167
8168         * char-conversions.h : The tables were incorrectly generated. Should
8169           be generated against invariant culture.
8170
8171 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
8172
8173         * object.c (mono_runtime_invoke_array): Fix return value when 
8174         passing pre-created valuetype objects to ctors.
8175
8176         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
8177         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
8178         Fixes #74338.
8179
8180 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
8181
8182         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
8183         only used with --security and hides the wrong corlib version error.
8184
8185 2005-03-30  Joshua Tauberer  <tauberer@for.net>
8186
8187         * class.c: Changed mono_class_name_from_token so that types
8188         outside of a namespace don't have an initial period.  Improved
8189         the g_warning message used in _mono_class_get when loading
8190         fails.
8191         * assembly.c: In mono_assembly_load_reference, when an assembly
8192         can't be found, "No such file or directory" is misleading and
8193         unhelpful because a few paths were checked for the presence of
8194         the assembly.  When that happens (ENOENT), display a nicer
8195         message indicating the directories that were searched.  In all
8196         cases, the warning is made easier to read for non-hackers.
8197
8198 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
8199
8200         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
8201         project/solution.
8202         * appdomain.h|domain.c: Removed inline from functions.
8203         * appdomain.c: Reduced warnings when compiling on windows.
8204         * icall.c: Fixed output_debug declaration to gunichar2*.
8205         * mono-config.c: Reduced warnings when compiling on windows.
8206         * rand.c: Added missing "windows.h". Added missing return value.
8207         * rawbuffer.c: Added missing winsock2.h for windows.
8208         * sysmath.h: Added mono-compiler.h header to allow/ease 
8209         compilation with non-GCC compilers.
8210         * threads.c: Fixed declarations to compile with VS.NET C compiler.
8211         Removed cast warnings.
8212
8213         Adapted from the work of J Lothian (for VC6).
8214
8215 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
8216
8217         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
8218         from default_path.
8219
8220 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
8221
8222         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
8223         the 2.0 profile.
8224
8225 2005-03-27  Raja R Harinath  <harinath@gmail.com>
8226
8227         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
8228         has to be in $(exec_prefix).  $(prefix) is for arch-independent
8229         stuff, and it would probably use $(prefix)/share rather than
8230         $(prefix)/lib.
8231
8232 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8233
8234         * console-io.c: added 2 includes that might be missing.
8235
8236 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
8237
8238         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
8239         profile.
8240
8241         * reflection.c (create_custom_attr): Allocate the params array using
8242         alloca so it gets GC tracking.
8243
8244 2005-03-23  Chris Toshok  <toshok@ximian.com>
8245
8246         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
8247         out some spew.
8248
8249 2005-03-24  Raja R Harinath  <rharinath@novell.com>
8250
8251         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
8252         changes to pick up any changes in prefix, etc.
8253
8254 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
8255
8256         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
8257         
8258         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
8259         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
8260
8261 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
8262
8263         * class-internals.h object-internals.h class.c reflection.c: Extend the
8264         mono_lookup_dynamic_token () function to return the class of the
8265         token as well. 
8266
8267         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
8268         well. Fixes #73848.
8269
8270 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
8271
8272         * security-manager.c: Skip inheritance checks for intra-corlib
8273         class inheritance and method overrides. This skips a lot of checks
8274         and (anyway) permissions cannot work until corlib is loaded.
8275
8276 2005-03-23  Martin Baulig  <martin@ximian.com>
8277
8278         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
8279         MONO_TYPE_GENERICINST.  
8280
8281 2005-03-23  Martin Baulig  <martin@ximian.com>
8282
8283         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
8284
8285 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8286
8287         * class.c: added locking comments to some functions.
8288         Cache the interface offsets arrays (saves about 20 KB
8289         of runtime memory in a typical app).
8290         Reduce the time overhead in mono_class_setup_supertypes ().
8291
8292 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
8293
8294         * icall.c: speedup and fix leaks in GetMethodsByName and
8295         GetPropertiesByName.
8296
8297 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8298
8299         * reflection.c: some locking fixes.
8300
8301 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
8302
8303         * metadata.c: added missing break in case statement.
8304
8305 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
8306
8307         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
8308         typedbyref return values. Fixes #73941.
8309
8310 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
8311
8312         * security-manager.c|h: Added demandunmanaged method and 
8313         suppressunmanagedcodesecurity class to MonoSecurityManager.
8314         Renamed aptc class to allowpartiallytrustedcallers.
8315
8316 2005-03-17  Martin Baulig  <martin@ximian.com>
8317
8318         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
8319
8320 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8321
8322         * file-io.c: disabled file async. IO using aio_*. It uses the
8323         threadpool now. Workaround for bug #73718.
8324
8325 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8326
8327         * assembly.h, mono-config.c: added code to deal with bundled configs
8328         for bundled assemblies.
8329
8330 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
8331
8332         * *.c, private.h: cleanup, removing old private.h header file.
8333
8334 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
8335
8336         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
8337         and throw_on_unmappable_char attributes.
8338
8339 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
8340
8341         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
8342         _ProcessName_internal.
8343
8344 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
8345
8346         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
8347         #73631.
8348
8349         * icall.c threads.c threads-types.h: Remove slothash icalls as they
8350         are no longer used.
8351
8352 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
8353
8354         * object.c (compute_class_bitmap): Add support for generics. Fixes
8355         #73527.
8356
8357 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
8358
8359         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
8360
8361 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8362
8363         * filewatcher.c: commented out the code for windows watcher, as we don't
8364         use it (we use the managed implementation instead).
8365
8366 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
8367
8368         * object-internals.h (MonoThread): Remove 'unused1' field.
8369
8370         * appdomain.c: Bump corlib version.
8371
8372         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
8373
8374         * reflection.c (mono_reflection_create_runtime_class): Remove the
8375         AssemblyBuilder.Save optimization since it causes too many problems.
8376
8377 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
8378
8379         * exception.c|h: Added mono_get_exception_reflection_type_load to
8380         create a ReflectionTypeLoadException object.
8381         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
8382         to return NULL is a InheritanceDemand fails during reflection. Updated
8383         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
8384         ReflectionTypeLoadException if an InheritanceDemand fails during 
8385         reflection. Added icall mapping for GetLinkDemandSecurity.
8386         * security-manager.c|h: Added ves_icall_System_Security_
8387         SecurityManager_GetLinkDemandSecurity internal call to return the
8388         class and methods permissions set for a LinkDemand. Removed unused
8389         fields in MonoSecurityManager.
8390
8391 2005-03-10  Martin Baulig  <martin@ximian.com>
8392
8393         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
8394         it's a generic instance.
8395
8396 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
8397
8398         * reflection.c (mono_get_object_from_blob): Applied patch from
8399         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
8400
8401         * class.c (mono_class_is_assignable_from): Another try at fixing 
8402         #73469 without breaking anything.
8403
8404 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
8405
8406         * class.c: (mono_class_is_assignable_from): Revert the last changes
8407         since they don't work with generics.
8408         
8409         * class.c (mono_class_is_assignable_from): Fix build bustage.
8410
8411         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
8412         the managed IsAssignableFrom method. Fixes #73469.
8413
8414         * reflection.c (mono_reflection_call_is_assignable_from): New helper
8415         function.
8416
8417 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
8418
8419         * object.c (mono_load_remote_field_new): Fix returning uninitialized
8420         memory when the remoting callback does not sets the out arguments.
8421         Fixes #73007.
8422
8423         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
8424         by mistake.
8425
8426         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
8427
8428         * object-internals.h (MonoStackFrame): Sync with managed object layout.
8429
8430         * appdomain.c: Bump corlib version.
8431
8432 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
8433
8434         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
8435         function.
8436
8437         * threads.c (mono_thread_attach): Detect threads which are not started
8438         by the GC pthread wrappers.
8439
8440 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
8441
8442         * icall.c: Added new icall for RNG.
8443         * rand.c|h: Added new icall to open the RNG. This allows to share a 
8444         single handle on Linux to access /dev/urandom and fix #73183.
8445
8446 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
8447
8448         * object.c: setting the new vtable in a transparent proxy object must
8449         not change the GC descriptor.
8450
8451 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8452
8453         * object.c: fixed compilation without GCJ support.
8454         * reflection.c: for runtime-created types ensure klass->has_references
8455         is correct (bug #73215).
8456
8457 2005-03-02  Martin Baulig  <martin@ximian.com>
8458
8459         * class.c (mono_class_is_assignable_from): Make this work if
8460         `oklass' is a generic instance; fixes #72831.
8461
8462 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
8463
8464         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
8465         with hasthis set.
8466         
8467         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
8468
8469         * marshal.c: Reorganize native->managed marshalling code to also use
8470         the emit_marshal_... functions.
8471
8472 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
8473
8474         * object.c: typed allocs have issues with bitmap sizes > 30,
8475         so check for max_set >= 30.
8476
8477 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
8478
8479         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
8480         managed code. Fixes #73012.
8481
8482         * metadata.h (MonoMarshalSpec): Add elem_mult field.
8483
8484         * metadata.c reflection.c: Load/Emit elem_mult as well.
8485         
8486         * metadata.h (MonoMarshalSpec): Add comment.
8487
8488         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
8489
8490         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
8491         num_elem to -1 if not given.
8492
8493         * object-internals.h (MonoReflectionMarshal): Add has_size field.
8494
8495         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
8496         given values.
8497
8498 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
8499
8500         * null-gc.c (mono_gc_free_fixed): Was not compilable.
8501
8502 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
8503
8504         * reflection.c (encode_marshal_blob): Encode param_num field as well.
8505
8506         * object-internals.h (MonoReflectionMarshal): Add param_num field.
8507
8508 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
8509
8510         * object.c: generalized the reference bitmap creation
8511         and added hooks for the new GC.
8512         * class-internals.c: removed the gc_bitmap field from MonoClass.
8513
8514 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8515
8516         * domain.c: help the compiler to produce better code
8517         in mono_jit_info_table_find ().
8518
8519 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
8520
8521         * object.c: make all allocations look typed.
8522
8523 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8524
8525         * socket-io.c: load Mono.Posix if it's not loaded already
8526         (fixes bug#73033).
8527
8528 2005-02-24  Martin Baulig  <martin@ximian.com>
8529
8530         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
8531         * reflection.c (dup_type): Likewise.
8532
8533 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
8534
8535         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
8536         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
8537
8538 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
8539
8540         * domain.c, threads.c, object-internals.h: make the critical thread
8541         local vars use the fast access mode (even when we're compiled in
8542         a lib). Provide accessors to be used by the jit during codegen.
8543
8544 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8545
8546         * appdomain.c: Changed hook functios behavior to include
8547         support for the reflection only assemblies. Some icalls were changed
8548         to support the mentioned assemblies too. Signatures of static methods
8549         try_assembly_resolve and real_load now have an additional parameter:
8550         refonly.
8551
8552         * assembly.c: General changes to mono_assembly_ methods to support
8553         reflection only api. Functions mono_assembly_open, mono_assembly_load,
8554         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
8555         suffix, to support an additional gbool parameter to specify whether
8556         the assembli is reflection only or not. Created some new hook functions 
8557         to add support for reflection only assemblies. Signatures of static 
8558         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
8559         have now an additional parameter: refonly.
8560
8561         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
8562         indicating whether the assembly is reflection only or not.
8563
8564         * exception.c: Add mono_get_exception_invalid_operation.
8565
8566         * icall.c: Throw an InvalidOperationException when trying to invoke
8567         a property/method/event, or trying to set/get the value of a field.
8568         Also add an icall to retrieve the ref_only flag to the
8569         MonoReflectionAssembly.
8570
8571 2005-02-23  Chris Toshok  <toshok@ximian.com>
8572
8573         Part of fix for #72827.
8574         * mono-debug.c (mono_debug_add_method): add lexical block data to
8575         the info we write.  Kind of a hack at the moment - we copy the
8576         lexical block info from the MonoDebugMethodInfo to the
8577         MonoDebugMethodJitInfo here, before writing it.
8578         (mono_debug_read_method): read the lexical block info.
8579
8580         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
8581
8582         * debug-mono-symfile.h: add lexical block support.
8583
8584         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
8585         support.
8586
8587 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
8588
8589         * loader.c (mono_lookup_pinvoke_call): Fix warning.
8590
8591         * object.c (mono_runtime_free_method): Call mono_free_method () and
8592         put the TODOs there.
8593
8594         * loader.c (mono_free_method): Free up most memory allocated for 
8595         dynamic methods.
8596
8597 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
8598
8599         * reflection.c: properly flag a Type argument to a
8600         named custom attr value (bug #72248).
8601
8602 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
8603
8604         * reflection.c: reduce code duplication in named custom
8605         attribute encoding.
8606
8607 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
8608
8609         * reflection.c: properly encode custom attrs of type object
8610         (bug #72649).
8611
8612 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
8613
8614         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
8615
8616 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
8617
8618         * socket-io.c: load System.dll if it's not loaded already
8619         (bug #72850 and #70477).
8620
8621 2005-02-21  Martin Baulig  <martin@ximian.com>
8622
8623         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
8624         generic instances.
8625
8626 2005-02-21  Martin Baulig  <martin@ximian.com>
8627
8628         * reflection.c (mono_image_build_metadata): We also need to
8629         "fixup" the MethodImpl table after we computed the final method
8630         indices.  Call fixup_methodimpl() to do that.
8631         (fixup_methodimpl): New private method.
8632
8633 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
8634
8635         * assembly.c: special case mscorlib.dll (bug#72536),
8636         patch from Carlos Alberto Cortez.
8637
8638 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
8639
8640         * threads-types.h threads.c: Fix build bustage.
8641
8642         * threads.c: Use a union for long<->double conversions.
8643
8644         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
8645         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
8646
8647         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
8648         containing the checkpoint call with NOT_TAKEN.
8649         
8650         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
8651         checkpoint before pushing the arguments, so they won't have to be
8652         spilled to stack.
8653
8654 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8655
8656         * domain.c, assembly.c, domain-internals.h: make some data
8657         const and relocation-free.
8658
8659 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
8660
8661         * object.c, appdomain.c, class-internals.h: introduce the
8662         MonoClassRuntimeInfo structure to hold the info needed to
8663         use a class at runtime. Made mono_class_vtable() lock-free
8664         for all the appdomains.
8665
8666 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
8667
8668         * metadata-internals.h, image.c: introduce a per-image mempool to
8669         be used for memory that has the same lifetime as the image.
8670
8671 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
8672
8673         * domain.c: In mono_init_internal(), instead of selecting the first
8674         runtime version supported by an executable, get a list of all
8675         supported versions and select the one for which an mscorlib exists
8676         (since even if the runtime supports a given version, it doesn't mean
8677         that the framework for that version is installed).
8678         Modified get_runtimes_from_exe to support this behavior.
8679         In supported_runtimes, added information about additional system
8680         assembly versions.
8681         
8682         * assembly.c: Added support for more than one system assembly version
8683         per runtime version. Updated the assembly list.
8684         In mono_assembly_remap_version, removed the initial version check,
8685         since we don't know to which version we need to compare until we
8686         get the version set on which the assembly is based.
8687         Moved the code for loading corlib into the new method
8688         mono_assembly_load_corlib(), so it can be used by the initialization
8689         code.
8690         
8691         * domain-internals.h: Updated data structures and added declaration
8692         for mono_assembly_load_corlib.
8693
8694 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
8695
8696         * reflection.c (resolve_object): Fix the creation of the signature in 
8697         the SignatureHelper case.
8698
8699         * assembly.c (mono_assembly_remap_version): Fix binary search.
8700         
8701 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
8702  
8703         * class.c: Added inheritance check when a method is overloaded (from a
8704         virtual method or when implementing an interface) and when a class is
8705         inherited. Added functions to set a failure for a class and to 
8706         retreive the exception from a failure.
8707         * class-internals.h: Added fields to MonoClass to keep the exception
8708         information status for inheritance (or other exceptions) to be thrown
8709         later (i.e. not at load time).
8710         * object.c: Throw the inheritance SecurityException when a type is to 
8711         be created with either class or method inheritance violations.
8712         * reflection.c|h: Fix when getting declsec from a class. Removed 
8713         unrequired code for class. Improved sanity in parameter naming.
8714         * security-manager.c|h: Added functions to check for class and method
8715         inheritance.
8716
8717 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
8718
8719         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
8720         and has_finalize in dynamic types as well.
8721
8722 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
8723
8724         * culture-info-table.h : fixed currency format for en-GB (and so on).
8725
8726 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
8727
8728         * gc.c: ensure the GC handles never have 0 as a value.
8729
8730 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
8731
8732         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
8733         a pointer to a struct to unmanaged code. Fixes #72625.
8734
8735 2005-02-16  Martin Baulig  <martin@ximian.com>
8736
8737         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
8738
8739 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
8740
8741         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
8742
8743 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
8744
8745         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
8746
8747         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
8748         UnmanagedFunctionPointerAttribute, use it for determining calling convention
8749         etc. Fixes #71471.
8750
8751         * reflection.c (mono_custom_attrs_get_attr): New helper function.
8752
8753         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
8754
8755 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
8756
8757         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
8758         changes to make the current context a field in MonoThread.
8759
8760 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
8761
8762         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
8763         the last change.
8764         
8765         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
8766         extracted from mono_marshal_get_native_wrapper.
8767
8768         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
8769         to create wrappers around native functions.
8770
8771         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
8772         delegates for arbitrary function pointers. Fixes #71472.
8773
8774 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
8775
8776         * threads.c: cleaned up the code a little.
8777
8778 2005-02-15  Martin Baulig  <martin@ximian.com>
8779
8780         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
8781         the data table.
8782
8783         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
8784         allocate larger chunks if needed.
8785
8786 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
8787
8788         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
8789         in by mistake.
8790
8791 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
8792
8793         * domain.c: keep the domains in an array and ensure the domain ids
8794         are kept small, so they can be used as indexes to domain-specific data
8795         with a small memory overhead.
8796
8797 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
8798
8799         * icall.c: Handle byref types in Type icalls. Fixes #72544.
8800
8801 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
8802
8803         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
8804
8805 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
8806
8807         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
8808
8809         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
8810         values.
8811
8812         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
8813         
8814 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
8815
8816         * domain-internals.h: add the hashtable here.
8817
8818         * class-internals.h: Remove `info' from MonoMethod
8819
8820         * domain.c: Add a new hashtable, jit_trampoline_hash
8821
8822 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
8823
8824         * object.c: don't set the value of static fields
8825         (fixes bug#72494).
8826
8827 2005-02-11  Martin Baulig  <martin@ximian.com>
8828
8829         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
8830         (mono_debug_add_method): Silently ignore the method if it's too big.
8831         (mono_debug_add_type): Likewise.
8832
8833 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
8834
8835         * threads.c, appdomain.c: remove #ifdefs from the code.
8836
8837 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
8838
8839         * metadata-internals.h: Added flags to MonoAssembly to cache the most
8840         common security informations. This allows us to stay in unmanaged code
8841         when doing LinkDemand and it's special cases (except for the first 
8842         time for initialization). The flags a very much used with --security.
8843         * reflection.c|h: Added code to get declarative security attributes 
8844         for LinkDemand and InheritanceDemand. This required to refactor the
8845         existing code for Demand.
8846         * security-manager.c|h: Added new method fields for the special cases
8847         of LinkDemand.
8848
8849 2005-02-10  Martin Baulig  <martin@ximian.com>
8850
8851         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
8852         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
8853
8854 2005-02-10  Martin Baulig  <martin@ximian.com>
8855
8856         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
8857         debugging code; this is almost a complete rewrite.
8858
8859         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
8860
8861 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8862
8863         * domain.c, object.h: expose mono_string_equal () and 
8864         mono_string_hash ().
8865         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
8866         it's implemented in managed code.
8867
8868 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8869
8870         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
8871         lo leak objects between appdomains.
8872
8873 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8874
8875         * assembly.c: old compilers compilation fix from 
8876         robertj@gmx.net (Robert Jordan).
8877
8878 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
8879
8880         * class-internals.h: Little reminder for the future.
8881
8882         * debug-helpers.c: Fix up wrapper_type_names
8883
8884 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8885
8886         * image.c, metadata-internals.h: when loading an image from a file,
8887         mmap all of it and use the same codepaths as when using a
8888         in-memory image: the code is simpler and we use less memory
8889         (both writable and readonly).
8890
8891 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
8892
8893         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
8894         API to alloc runtime data structures that need to be tracked by the
8895         GC and contain pointers.
8896         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
8897         make the code more readable and eventually use a different GC.
8898
8899 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
8900
8901         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
8902         for out arguments.
8903         
8904 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
8905
8906         * object.c: In release_type_locks(), don't release the cctor lock
8907         if it has already been released. This fixes a crash in the
8908         thread5 test.
8909
8910 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8911
8912         * gc.c, marshal.c, icall.c: register a delegate for finalization
8913         only when the native function pointer has been allocated for it.
8914
8915 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
8916
8917         * object.c: cleaned up some code, allocate objects that are
8918         pointer free with the atomic malloc variant. Allocate memory
8919         for static data from the mempool if it's pointer-free.
8920         Allocate the bounds array at the end of the array data, when needed.
8921         * object-internals.h, object.h: move a private function in a private
8922         header.
8923         * class.c: handle missing case in tracking references in fields.
8924
8925 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
8926
8927         * class.c, class-internals.h: keep track if a type has
8928         reference fields in either the instance or static fields.
8929
8930 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
8931
8932         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
8933         and renamed to MonoRuntimeInfo. Added fields to store the expected
8934         framework assembly version. Changed mono_get_framework_version and
8935         mono_get_runtime_version for a single mono_get_runtime_info method.
8936         
8937         * assembly.c: Added method to remap system assembly versions to the
8938         current executing runtime version. Removed old mapping code.
8939         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
8940         
8941         * icall.c, reflection.c: Track api changes.
8942
8943 2005-02-06  Miguel de Icaza  <miguel@novell.com>
8944
8945         * loader.c (method_from_memberref): Improve error reporting,
8946         produce the class name instead of the typeref/typedef index. 
8947
8948 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
8949
8950         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
8951
8952 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8953
8954         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
8955         stdcall and charset name mangling.  Reorganize the code and add
8956         some tracing stuff.
8957
8958 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
8959
8960         * monodiet.c: More iters!
8961
8962         * marshal.c: Iter usage.
8963
8964         * icall.c: Iter usage.
8965
8966         * object.c: Use iters.
8967
8968         * debug-helpers.c: More iters
8969
8970 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8971
8972         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
8973         under win32.
8974
8975 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
8976
8977         * mono-debug-debugger.c: use iters
8978
8979         * class.c, class-internals.h: mono_class_setup_events is static
8980         now
8981
8982         * All callers: use iters
8983
8984 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8985
8986         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
8987         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
8988
8989 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
8990
8991         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
8992
8993         * marshal.h: Add prototypes for ldfld/stfld_remote.
8994
8995         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
8996         this is called during startup.
8997         
8998 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
8999
9000         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
9001         MonoThreadsSync struct private in monitor.c. Changed the way
9002         MonoThreadsSync is allocated so it's faster and there is no
9003         need to keep track of it with a finalizer and it uses less memory.
9004         This also finally allows us to allocate mono objects as ptrfree when
9005         there are no reference fields.
9006
9007 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
9008
9009         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
9010         disappearing link to the GC interface and use them to simplify
9011         the gchandles code.
9012
9013 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
9014
9015         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
9016         stfld_remote which call mono_load/store_field_new. This allows methods
9017         calling ldfld/stfld wrappers to be AOTed.
9018
9019         * console-io.c: Include sys/filio.h under solaris.
9020         
9021         * console-io.c: Include curses.h if needed correctly.
9022
9023 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
9024         
9025         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
9026         method->klass as well.
9027
9028         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
9029
9030         * class.c (mono_class_init): Switch on lazy initialization of 
9031         methods.
9032
9033         * class.c (mono_class_get_finalizer): Handle the case when the 
9034         finalizer is inherited.
9035
9036 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9037
9038         * console-io.c: <curses.h> is needed by term.h on solaris.
9039
9040 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
9041
9042         * icall.c, class-internals.h, monodiet.c, class.c: Remove
9043         mono_class_setup_properties where possible. Remove this ftn from
9044         the header file, and make it static.
9045
9046 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
9047
9048         * loader.c: Add missing setup_... call.
9049
9050         * class.c: Add missing setup_... calls.
9051
9052         * class.c (mono_class_init): Switch on lazy initialization of 
9053         the generic vtable.
9054         
9055         * class.c (mono_class_init): Fix generics broken by the recent changes.
9056
9057         * monodiet.c (handle_type): Add missing setup_... calls.
9058
9059         * class.c: Back out garbage in previous patch.
9060         
9061         * class.c: Add missing setup_... calls.
9062
9063         * class.c (mono_class_get_method_from_name_flags): Avoid calling
9064         mono_class_setup_methods () if possible.
9065
9066         * class-internals.h (MonoClass): Add 'has_cctor' flag.
9067
9068         * class-internals.h (MonoCachedClassInfo): New structure.
9069
9070         * class.c: Initialize properties and events fields of MonoClass lazily.
9071
9072         * class.c: Add infrastructure for lazily initializing the methods and
9073         vtable fields of MonoClass. Not yet used.
9074
9075         * class.c (mono_class_get_finalizer): New helper function.
9076
9077         * class.c: Add infrastructure for loading some class related data from
9078         an AOT file.
9079
9080         * object.c: Add infrastructure for initializing the vtable from data
9081         in the AOT file.
9082
9083         * gc.c (run_finalize): Use mono_class_get_finalizer ().
9084
9085         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
9086         appropriate initialization function before accessing parts of the
9087         MonoClass structure.
9088
9089         * marshal.c: Fix warnings.
9090         
9091         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
9092
9093         * mono-debug-debugger.c (get_exception_message): Use 
9094         mono_class_get_method_from_name_flags ().
9095
9096 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
9097
9098         * reflection.c, appdomain.c: Replace a few manual searches that
9099         Zoltan missed. (Paolo approved this part of my initial patch).
9100
9101 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
9102
9103         * profiler.c: disable recording statistical events at report time.
9104
9105 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
9106
9107         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
9108         to byteswap arrays of enum values, too (bug #72080).
9109
9110 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
9111
9112         * appdomain.c (set_domain_search_path): Allow this to be called if
9113         domain->setup is not yet set.
9114
9115         * loader.c (mono_method_get_index): New helper function.
9116
9117         * loader.c reflection.c: Use mono_method_get_index ().
9118
9119         * class.c (mono_class_get_method_from_name_flags): New helper method.
9120
9121         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
9122         this.
9123
9124         * class.c (mono_class_get_cctor): New helper method.
9125
9126         * string-icalls.c object.c class.c marshal.c reflection.c: Use
9127         mono_class_get_method () to look up methods.
9128
9129 2005-02-01  Miguel de Icaza  <miguel@novell.com>
9130
9131         * console-io.c: Fix the build, this should work on Windows.
9132
9133 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
9134
9135         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
9136         be set to null to keep things valid
9137
9138 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9139
9140         * icall.c: added Console 2.0 icalls.
9141         * Makefile.am: added console-io.[ch]
9142         * console-io.[ch]: internal calls for Console 2.0 API.
9143
9144 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
9145
9146         * class.c: make sure we consider all the interfaces
9147         when calculating max_interface_id (bug found by
9148         Jeroen Frijters running ikvm).
9149
9150 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
9151
9152         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
9153         valuetype fields to null.
9154
9155         * object.c (set_value): Ditto. Fixes #71669.    
9156
9157 2005-01-31  Martin Baulig  <martin@ximian.com>
9158
9159         * metadata.c (mono_metadata_has_generic_params): New public
9160         function; checks whether something is a generic method.
9161
9162 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
9163
9164         * appdomain.c: fix infinite recursion when adding assemblies.
9165
9166 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
9167
9168         * object.c: Fix small typo to return all items for Environment.
9169         GetCommandLineArgs.
9170
9171 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
9172
9173         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
9174         reflection.c: more domain and assembly-unload related fixes
9175         and memory leaks plugs.
9176
9177 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
9178
9179         * 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.
9180
9181 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
9182
9183         * loader.c (mono_method_signature): Make this method lazy
9184         (mono_get_method_from_token): Don't computate the signature here.
9185
9186         Doing this saves quite a bit of memory. I got 90 kb on starting up
9187         monodoc. It should also save some disk reads on startup.
9188
9189         * *: MonoMethod->signature might be NULL now. You *MUST* use
9190         mono_method_signature.
9191
9192 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
9193
9194         * object.c (mono_runtime_get_main_args): Return an array from the
9195         current domain here. Fixes #71938.
9196
9197 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
9198
9199         * monitor.c: formatting changes to comply with the
9200         mono coding style and remove #ifdefs from the code.
9201
9202 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
9203
9204         * metadata.c, private.h: remove some unneeded data
9205         and use a more compact representation for table schemas.
9206
9207 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
9208
9209         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
9210         to get a better distribution in hash tables.
9211         * *.c: use mono_aligned_addr_hash() where appropriate.
9212         * assembly.c: make var static.
9213
9214 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
9215
9216         * domain-internals.h: Put MonoJitInfo on a diet.
9217
9218         * domain.c: Fix a warning.
9219
9220 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9221
9222         * gc.c: rework the gc handles code to reuse handles
9223         when freed.
9224
9225 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
9226
9227         * domain.c: fixed long standing bug in mono_string_equal() which
9228         was brought to light with the ldstr changes.
9229
9230 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
9231
9232         * reflection.c: Remove warning by adding missing include for marshal.h
9233
9234 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
9235
9236         * domain.c, object.c: change the ldstr_table to hold
9237         MonoString* as keys: makes the runtime isinterned lookup
9238         faster and simplifies memory management.
9239
9240 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
9241  
9242         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
9243         possible to add imperative security checks before calling the icall.
9244         * reflection.c: Return security attributes on the original MonoMethod
9245         (and not the wrapped one). This fix permissions on icalls.
9246
9247 2005-01-25  Dick Porter  <dick@ximian.com>
9248
9249         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
9250         the check for mktime() support actually test the mktime() return
9251         value.  "Fixes" bug 71682, though the output is still different to
9252         MS.
9253
9254 2005-01-25  Martin Baulig  <martin@ximian.com>
9255
9256         * class.c (mono_class_is_assignable_from): Make this work for
9257         generic instances.
9258
9259 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
9260
9261         * marshal.c (mono_string_utf8_to_builder)
9262         (mono_string_builder_to_utf16): We might not have ownership of the
9263         string. In thise case, we need to create a new buffer.
9264
9265         * object-internals.h (mono_stringbuilder_capacity): sb->str might
9266         be null, in which case, use the default capacity.
9267
9268 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
9269
9270         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
9271         GC events to the profiler.
9272
9273 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
9274
9275         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
9276         if you don't want the GC to run.
9277
9278 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
9279
9280         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
9281         start providing a GC API and keeping different implementations in
9282         their own file.
9283         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
9284
9285 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
9286
9287         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
9288         mmap rather than allocating a huge buffer.
9289         (mono_debug_close_mono_symbol_file): Free the buffer allocated
9290         above.
9291
9292 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
9293
9294         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
9295         and CheckExecutionRights.
9296         * reflection.c|h: Keep the index of the declarative security to be 
9297         used, instead of the pointer, when AOT compiler is used. Also add 
9298         class initialization when requesting demands.
9299         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
9300         CheckExecutionRights. Both properties are now FALSE by default, and
9301         unmodifiable, unless the --security option is used.
9302
9303 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
9304
9305         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
9306         reflection.c: properly refcount images and assemblies, many leaks fixed.
9307
9308 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9309
9310         * threadpool.c: increase the timeout for threads in the thread pool to
9311         10s.  Fixes bug #67159.
9312
9313 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
9314
9315         * class-internals.h: Sun's compiler insists on explicit
9316         signed on bit fields to handle then correctly.
9317
9318 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
9319
9320         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
9321         Make the size of the array fit only the number of invalid path
9322         chars that we have.
9323
9324         * class.c (_mono_class_get): Improve the error reporting when a
9325         class referenced is not found, to assist debugging. 
9326
9327 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
9328
9329         * threads.c: fix off-by-one error.
9330         * domain.c: free data allocated in the domain.
9331
9332 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
9333
9334         * reflection.c (mono_method_body_get_object): Fill out exception info
9335         as well.
9336
9337         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
9338         structure.
9339         
9340 2005-01-19  Martin Baulig  <martin@ximian.com>
9341
9342         * loader.c (mono_get_method_constrained): Make this work again.
9343
9344 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
9345
9346         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
9347         guint16 to match the managed side.
9348
9349         * reflection.c (mono_reflection_body_get_object): Fill out local
9350         variables array.
9351
9352         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
9353         as well.
9354
9355         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
9356         'local_var_sig_token'.
9357
9358 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
9359
9360         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
9361         System.Drawing.
9362
9363         * reflection.c (mono_method_body_get_object): Handle abstract and
9364         runtime methods.
9365
9366 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
9367
9368         * marshal.c, loader.c, class-internals.h, reflection.c:
9369         store the emthod data for a wrapper in an array instead of a list.
9370
9371 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
9372
9373         * marshal.c: change the code to allocate memory more
9374         conservatively for method wrappers.
9375
9376 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
9377
9378         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
9379         fields from MonoClass to the marshal info structure where they belong.
9380
9381 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9382
9383         * class.c, object.c, class-internals.h, marshal.c: rearrange
9384         some fields and tweak some types to lower memory usage.
9385
9386 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
9387
9388         * threads.c (signal_thread_state_change): Handle the case when the
9389         target thread is the current thread.
9390
9391         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
9392
9393         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
9394         emit_ptr_to_object_conv. 
9395
9396         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
9397         marshalling. Fixes #71352.
9398
9399 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
9400
9401         * metadata.h, blob.h: move table enum to blob.h so it can be included
9402         in any header.
9403         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
9404         cut the size of MonoImage/MonoDynamicImage.
9405
9406 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
9407
9408         * profiler.c (mono_profiler_install_simple): Fix default arguments.
9409
9410 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
9411
9412         * reflection.c, reflection.h, icall.c: add a function to check
9413         if an attribute type is defined for a metadata object.
9414
9415 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
9416
9417         * object-internals.h: Added some needed fields from StringBuilder class.
9418         * marshal.c: Set the maxCapacity when creating a StringBuilder.
9419
9420 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
9421
9422         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
9423         threads before shutting down the runtime.
9424
9425         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
9426
9427 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
9428
9429         * object-internal.h, threads.c: implement stacksize and 
9430         parameterized thread start functionality (requires
9431         matching corlib). Marked broken code for later removal.
9432
9433 2005-01-12  Martin Baulig  <martin@ximian.com>
9434
9435         * class-internals.h (MonoGenericClass): Moved the `initialized'
9436         flag to MonoDynamicGenericClass, removed `init_pending'.
9437         (MonoGenericInst): Added `is_reference' flag.
9438
9439 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
9440
9441         * reflection.c (mono_image_create_pefile): Only set the pe_offset
9442         inside the MSDOS header. Fixes #71201.
9443
9444         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
9445         gc thread.
9446         (mono_domain_finalize): Ditto.
9447
9448 2005-01-12  Martin Baulig  <martin@ximian.com>
9449
9450         * class.c (mono_get_shared_generic_class): Use the cache for
9451         non-dynamic generic classes.
9452
9453         * class-internals.h (mono_class_create_generic_2): Removed
9454         function prototype, this function is now static inside class.c.
9455
9456         * class.c (mono_class_create_generic_2): Made this static, only
9457         call it from mono_class_init() and mono_class_setup_parent().
9458         (collect_implemented_interfaces_aux): Call mono_class_init() on
9459         the interfaces we collect.
9460         (mono_class_setup_vtable): Call mono_class_init (class->parent).
9461
9462 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
9463
9464         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
9465         it a real thread handle.
9466
9467         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
9468         MonoJitExceptionInfo, since each catch clause needs its own variable.
9469         
9470 2005-01-11  Dick Porter  <dick@ximian.com>
9471
9472         * image.c (mono_pe_file_open): New variant on mono_image_open()
9473         that does not set up the CLI metadata; used for FileVersionInfo so
9474         it can get the data for windows binaries too.
9475         
9476         * process.c (process_read_string_block): Don't read off the end of
9477         the StringTable block.
9478
9479         These both fix bug 70766.
9480
9481 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
9482
9483         * gc.c: set some fields to NULL at GC cleanup time.
9484         * threads.c: if we quit the main thread, call exit ().
9485
9486 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
9487
9488         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
9489
9490 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
9491
9492         * threads.h, threads.c, object.c: added accessor and settor for
9493         main_thread. Handle it specially when exiting from it: wait
9494         for other foreground threads to exit.
9495
9496 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
9497
9498         * process.c, verify.c: remove some bloat.
9499
9500 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
9501
9502         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
9503         the calling convention to cdecl under win32.
9504
9505 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
9506
9507         * object.c (mono_object_get_size): New function to get the size of
9508         an object instance.
9509
9510         * profiler.c (simple_allocation): Use above.
9511
9512 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
9513
9514         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
9515         ves_icall_System_AppDomain_getRootDomain (as it's not required to
9516         get an appdomain by it's id and we can't assume the root's id is 0).
9517         * domain-internals.h: Change the function prototype to match.
9518         * icall.c: Change the icall table for AppDomain.
9519
9520 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
9521
9522         * locales.c (string_invariant_compare_char): Only compute
9523         GUnicodeTypes in the case where we need them.  Test for ordinality
9524         first and return if so.
9525
9526         From the commit:
9527
9528                 /*
9529                  * FIXME: here we must use the information from c1type and c2type
9530                  * to find out the proper collation, even on the InvariantCulture, the
9531                  * sorting is not done by computing the unicode values, but their
9532                  * actual sort order.
9533                  */
9534
9535 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
9536
9537         * loader.c: for P/Invoke methods, allow the "Internal" shared
9538         library name to refer to the calling process symbol namespace.
9539
9540 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
9541
9542         * Makefile.am: Add the security manager to the build.
9543         * security-manager.c|h: New. Initialization of the security manager.
9544
9545 2005-01-07  Dick Porter  <dick@ximian.com>
9546
9547         * threads.c: 
9548         * monitor.c: Update thread state during Monitor and WaitHandle
9549         waits.  Fixes bug 71031.
9550
9551 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
9552
9553         * reflection.c (property_encode_signature): Correctly handle when the
9554         property has no methods.
9555
9556 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
9557
9558         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
9559         
9560         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
9561         fields from mb, not rmb. Fixes #71017.
9562
9563         * marshal.c (emit_ptr_to_str_conv): Add support for 
9564         ByValTStr -> string conversion. Fixes #71015.
9565
9566         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
9567
9568         * mempool.c (mono_mempool_contains_addr): New helper function.
9569
9570 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
9571
9572         * metadata.c (mono_metadata_compute_size): Fix size calculation of
9573         HasSematics encoded fields.
9574         
9575         * metadata.c (mono_type_to_unmanaged): Improve error message for 
9576         invalid string marshalling.
9577
9578         * metadata.c: Fix warnings.
9579         
9580 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
9581
9582         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
9583         profiler support.
9584
9585 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
9586
9587         * domain.c object.c domain-internals.h: Revert part of r38077 since the
9588         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
9589         tests.
9590
9591 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
9592
9593         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
9594         so methods containing these can be AOTed.
9595
9596 2005-01-03  Martin Baulig  <martin@ximian.com>
9597
9598         * loader.c (find_method): Removed the hack for generic instances.
9599         (method_from_memberref): If our parent is a generic instance, pass
9600         its generic type definition to find_method() and then inflate the
9601         method.
9602         (mono_get_method_constrained): Pass the generic type definition to
9603         find_method() and inflate the method later.
9604
9605         * class-internals.h (MonoStats): Added `generic_class_count'.
9606
9607         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
9608         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
9609
9610         * reflection.c (mono_custom_attrs_from_params): Don't ignore
9611         generic type definitions.
9612
9613 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
9614
9615         * loader.c icall.c: Fix warnings.
9616
9617 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
9618
9619         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
9620         blittable types. Fixes #70864.
9621
9622 2004-12-29  Martin Baulig  <martin@ximian.com>
9623
9624         * icall.c
9625         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
9626
9627         * reflection.c (mono_method_get_object): Create a
9628         "System.Reflection.MonoGenericMethod" for inflated methods; don't
9629         call mono_get_inflated_method().
9630
9631         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
9632
9633 2004-12-27  Martin Baulig  <martin@ximian.com>
9634
9635         * class-internals.h (MonoMethod): Added `is_inflated' flag.
9636         (MonoMethodInflated): Added `inflated' field.
9637
9638         * class.c (mono_class_inflate_generic_method): Don't really
9639         inflate the method here; just set the `is_inflated' flag in the
9640         MonoMethod.
9641         (mono_class_get_inflated_method): Actually inflate the method here
9642         if it's not already inflated; we use the MonoMethodInflated's new
9643         `inflated' field as a cache.
9644
9645 2004-12-26  Martin Baulig  <martin@ximian.com>
9646
9647         * class.c
9648         (inflate_generic_class): Moved some code out of inflate_generic_type().
9649         (mono_class_inflate_generic_method): If we're already inflated,
9650         inflate the context and use the declaring method; ie. make sure
9651         the declaring method of an inflated method is always the generic
9652         method definition.
9653         (mono_class_create_from_typedef): Create
9654         `class->generic_container->context->gclass'.
9655
9656 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
9657
9658         * metadata-internals.h, marshal.c, reflection.c: More
9659         MonoGHashTable->GHashTable.
9660
9661         * domain-internals.h, class.c: Change MonoGHashTable's into
9662         GHashTables for some cases where no gc stuff is used
9663
9664         All users: update apis
9665
9666 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
9667
9668         * metadata.c (builtin_types): Make this `const'. Makes this get
9669         put into the shareable section.
9670         (mono_metadata_init): Casts to make gcc happy.
9671
9672 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
9673
9674         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
9675
9676 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
9677
9678         * icall.c: Added an internal call to retrieve the position and length
9679         of assembly-level declarative security attributes (RequestMinimum, 
9680         RequestOptional and RequestRefuse). This is used by the Assembly class
9681         to re-create the corresponding permission sets.
9682
9683 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
9684
9685         * marshal.c: fix the stelemref wrapper to be type correct
9686         (and faster).
9687
9688 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
9689
9690         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
9691         to do key & 0x7fffffff. Hashtable already does this. It just
9692         results in longer code.
9693
9694 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
9695
9696         * appdomain.c: Bump corlib version.
9697         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
9698         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
9699         * reflection.c|h: Add functions to get declarative security infos
9700         (blob position and length) for assemblies, classes and methods.
9701
9702 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
9703
9704         * reflection.c: sort the constant table (bug #70693).
9705
9706 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
9707
9708         * object-internals.h, threads.c, domain.c: add accessors for
9709         the MonoThread and MonoDomain tls keys.
9710
9711 2004-12-18  Martin Baulig  <martin@ximian.com>
9712
9713         * class.c (inflate_generic_type): If we're inflating a generic
9714         instance, set `ngclass->context->container = context->container';
9715         ie. the container we inflated into.
9716
9717         * metadata.c (mono_metadata_parse_generic_param): Reflect above
9718         inflate_generic_type() changes.
9719
9720 2004-12-17  Martin Baulig  <martin@ximian.com>
9721
9722         * class-internals.h
9723         (MonoGenericClass): Replaced `MonoType *generic_type' with
9724         `MonoClass *generic_class'.  Removed `dynamic_info'; if
9725         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
9726         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
9727
9728 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
9729
9730         * exception.c (mono_exception_from_token): New helper function.
9731
9732 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
9733
9734         * assembly.c (mono_assembly_load_with_partial_name): Call 
9735         mono_assembly_loaded before invoking the preload hooks. Fixes
9736         #70564.
9737
9738         * object-internals.h (MonoThread): Change culture_info and 
9739         ui_culture_info into an array.
9740
9741         * threads.c: Cache culture info objects from more than one appdomain.
9742
9743         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
9744         current UI culture.
9745
9746 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
9747
9748         * threads.h threads.c appdomain.c: Clear the culture_info field of
9749         all threads during unloading if they point to an object in the dying
9750         appdomain.
9751
9752 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
9753
9754         * culture-info.h (TextInfoEntry): New struct
9755         * object-internals.h: sync with managed
9756         * locales.c: fill the `text_info_data' field
9757         * culture-info-tables.h: update
9758
9759 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
9760
9761         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
9762         collector.
9763
9764 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
9765
9766         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
9767         (ves_icall_ModuleBuilder_getMethodToken): Ditto
9768
9769 2004-12-12  Martin Baulig  <martin@ximian.com>
9770
9771         * mono-debug-debugger.c (write_type): If we're an enum and the
9772         builtin types have already been initialized, call mono_class_init().
9773
9774 2004-12-11  Martin Baulig  <martin@ximian.com>
9775
9776         * metadata.c (mono_metadata_load_generic_params): Added
9777         `MonoGenericContainer *parent_container' argument; automatically
9778         compute `container->is_method'; pass the correct owner to
9779         get_constraints().      
9780
9781         * reflection.c (compare_genericparam): Sort the GenericParam table
9782         according to increasing owners. 
9783
9784 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
9785
9786         * profiler.c: allow disabling the default profiler.
9787
9788 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
9789
9790         * decimal.c, icall.c: allow disabling System.Decimal support.
9791
9792 2004-12-09  Marek Safar <marek.safar@seznam.cz>
9793
9794         * reflection.c: Add support for null attribute arguments.
9795
9796 2004-12-09  Martin Baulig  <martin@ximian.com>
9797
9798         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
9799         names to get rid of compiler warnings.
9800
9801 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
9802
9803         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
9804         mono_marshal_load_type_info (). Fixes #69625.
9805         (mono_marshal_get_ptr_to_struct): Likewise.
9806
9807 2004-12-08  Martin Baulig  <martin@ximian.com>
9808
9809         * mono-debug.h: Bumped version number to 47.
9810
9811         * mono-debug-debugger.c
9812         (mono_debugger_event_handler, mono_debugger_event): Take two
9813         guint64 arguments insteed of a gpointer and a guint32.  
9814
9815 2004-12-08  Martin Baulig  <martin@ximian.com>
9816
9817         * debug-mono-symfile.h
9818         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
9819         `address' to `native_offset'.
9820
9821 2004-12-08  Martin Baulig  <martin@ximian.com>
9822
9823         * class.c (mono_class_create_from_typespec): Only inflate if we
9824         either have `context->gclass' or `context->gmethod'.
9825
9826 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
9827
9828         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
9829
9830         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
9831
9832         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
9833
9834         * reflection.c (mono_assembly_get_object): Remove the workaround put
9835         in for the release.
9836         
9837         * appdomain.c: Use the corlib_internal field from MonoAssembly.
9838
9839         * appdomain.c: Bump corlib version.
9840
9841         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
9842         be visible in other appdomains.
9843
9844 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
9845
9846         * threads.c: Interlocked inc and dec for longs were messed up,
9847         use a KISS based impl for this. Fixes 70234
9848
9849 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
9850
9851         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
9852
9853 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
9854
9855         * icall.c: fix to follow policy not to allow struct
9856         arguments in icalls.
9857
9858 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9859
9860         * process.c: make the patch that handles spaces in file paths work
9861         on mono/windows too.
9862
9863 2004-12-06  Martin Baulig  <martin@ximian.com>
9864
9865         * class.c (mono_class_create_generic): Call
9866         mono_class_setup_supertypes() if we're dynamic.
9867         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
9868
9869 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
9870
9871         * object-internals.h: Add new fields to MonoThread.
9872
9873         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
9874
9875         * icall.c threads-types.h threads.c: Add new icalls.
9876
9877         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
9878
9879         * object-internals.h (MonoReflectionAssembly): Sync object layout with
9880         managed side.
9881
9882         * appdomain.c: Bump corlib version.
9883
9884         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
9885         internal assemblies. Fixes #69181.
9886
9887 2004-12-05  Martin Baulig  <martin@ximian.com>
9888
9889         * class.c (mono_class_inflate_generic_signature): Make this a
9890         no-op if `context' is NULL or we don't have any type parameters;
9891         also copy `sentinelpos'.        
9892
9893 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
9894
9895         * image.c: Add unbox_wrapper_cache.
9896
9897         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
9898
9899         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
9900         function generator.
9901         
9902         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
9903         Fixes #70173.
9904
9905         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
9906         
9907 2004-12-04  Martin Baulig  <martin@ximian.com>
9908
9909         * loader.c (mono_method_get_signature_full): New public function;
9910         like mono_method_get_signature(), but with an additional
9911         `MonoGenericContext *' argument.
9912
9913         * class.c (mono_class_inflate_generic_signature): Formerly known
9914         as inflate_generic_signature(); make this public.
9915
9916 2004-12-04  Martin Baulig  <martin@ximian.com>
9917
9918         * metadata.c
9919         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
9920         instead of a `MonoGenericContainer *'.  
9921         (mono_metadata_parse_array_full): Likewise.
9922         (mono_metadata_parse_signature_full): Likewise.
9923         (mono_metadata_parse_method_signature_full): Likewise.
9924         (mono_metadata_parse_generic_inst): Likewise.
9925         (mono_metadata_parse_generic_param): Likewise.
9926         (mono_metadata_parse_mh_full): Likewise.
9927         (mono_type_create_from_typespec_full): Likewise.
9928
9929 2004-12-03  Martin Baulig  <martin@ximian.com>
9930
9931         * class-internals.h (MonoGenericContainer): Replaced the
9932         `MonoGenericContext * pointer with a `MonoGenericContext'
9933         structure and made it the first element.
9934
9935 2004-12-03  Martin Baulig  <martin@ximian.com>
9936
9937         * class.c
9938         (inflate_generic_type): Set the `context->container' when creating
9939         a new MonoGenericContext.
9940         (mono_class_inflate_generic_method): Likewise.
9941         (mono_class_create_from_typespec): Just use `context->container'
9942         to get the container.
9943
9944         * loader.c (method_from_methodspec): Set `context->parent' from
9945         `context->container' - and if that's a method container, use its
9946         parent.  Also set the `context->container' when creating a new
9947         MonoGenericContext.
9948         (mono_get_method_from_token): Use just `context->container' to get
9949         the container.
9950
9951         * metadata.c (do_mono_metadata_parse_generic_class): Also set
9952         `gclass->context->container'.
9953
9954         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
9955         the `context->container' when creating a new MonoGenericContext.
9956
9957 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
9958
9959         * reflection.c (compare_genericparam): Sort params with identical
9960         owner by their number. Fixes gen-111 on sparc.
9961
9962 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
9963
9964         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
9965         around the domain changes.
9966
9967         * appdomain.c (mono_domain_unload): Handle the case when the thread
9968         calling Unload is itself being aborted during unloading. Fixes #70022.
9969
9970         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
9971
9972         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
9973         checkpoint_func as an icall so it gets a wrapper.
9974         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
9975         in the cross-appdomain wrappers too.
9976
9977         * threads.c (mono_thread_has_appdomain_ref): Make this public.
9978
9979         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
9980
9981         * reflection.c: Fix some memory leaks.
9982         
9983 2004-12-02  Martin Baulig  <martin@ximian.com>
9984
9985         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
9986
9987         * metadata.c (generic_class_cache): New static hashtable.
9988         (mono_metadata_lookup_generic_class): New public method.
9989
9990 2004-12-02  Martin Baulig  <martin@ximian.com>
9991
9992         * class.c (mono_class_create_from_typedef): Call
9993         mono_class_setup_parent() and mono_class_create_mono_type() before
9994         parsing the interfaces.
9995
9996 2004-12-02  Martin Baulig  <martin@ximian.com>
9997
9998         * metadata.c (generic_inst_cache): New static hashtable.
9999         (mono_metadata_lookup_generic_inst): New public function.
10000         (mono_metadata_inflate_generic_inst): New public function.
10001         (mono_metadata_parse_generic_inst): New public function.
10002         (do_mono_metadata_parse_generic_class): Use the new
10003         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
10004         since this'll also use the cache.
10005
10006         * reflection.c (mono_reflection_bind_generic_method_parameters):
10007         Use mono_metadata_lookup_generic_inst() to use the new cache.
10008
10009         * class.c (inflate_mono_type): Use
10010         mono_metadata_inflate_generic_inst() to inflate a generic
10011         instance; this'll also use the new cache.
10012
10013         * loader.c (method_from_methodspec): Use
10014         mono_metadata_parse_generic_inst() and
10015         mono_metadata_inflate_generic_inst() rather than parsing it
10016         manually, so we can use the new cache.
10017
10018 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
10019
10020         * threads.c (wait_for_tids): Do not incorrectly free threads when 
10021         the wait times out.
10022
10023 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
10024
10025         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
10026         iter->args based on whether parameters are passed in registers (i.e.
10027         MONO_ARCH_REGPARMS is defined)
10028
10029 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
10030
10031         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
10032         the exception message. Fixes #70070.
10033         (method_from_methodspec): Fix warnings.
10034
10035 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10036
10037         * process.c: (complete_path) return the path quoted
10038
10039 2004-12-01  Martin Baulig  <martin@ximian.com>
10040
10041         * class-internals.h (MonoGenericInst): New structure.
10042         (MonoGenericClass): Replaced `type_argc', `type_argv' and
10043         `is_open' with `MonoGenericInst *inst'.
10044         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
10045         `is_open' with `MonoGenericInst *inst'.
10046
10047 2004-11-30  Martin Baulig  <martin@ximian.com>
10048
10049         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
10050
10051         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
10052         to `generic_class_cache'.
10053
10054         * metadata.c
10055         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
10056         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
10057         (mono_generic_inst_is_valuetype): Renamed to
10058         mono_generic_class_is_valuetype().
10059
10060         * class-internals.h
10061         (MonoGenericInst): Renamed to MonoGenericClass.
10062         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
10063         (MonoClass): Renamed `generic_inst' to `generic_class'.
10064         (MonoGenericContext): Renamed `ginst' to `gclass'.
10065
10066         * object-internals.h
10067         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
10068
10069         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
10070         mono_reflection_generic_class_initialize().
10071
10072         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
10073         now known as "System.Reflection.MonoGenericClass".
10074         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
10075
10076 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
10077
10078         * class-internals.h: Added a flag field to MonoClass to cache the
10079         declarative security attributes actions associated with the class.
10080         * domain-internals.h: Added booleans to MonoJitInfo to cache the
10081         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
10082         applicable to the JITted method.
10083         * reflection.c|h: Added functions to extract (as flags) which security
10084         actions are available (declaratively) for a method, class or assembly.
10085         * metadata.c|h: Added functions to search the declarative security
10086         table in the metadata.
10087         
10088 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
10089
10090         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
10091         EXPORTEDTYPES are already in the class name cache, so there is no
10092         need to add extra code here to look at them. Just removes a bit of
10093         cruft.
10094
10095         (ves_icall_System_Environment_get_TickCount): No need for #if
10096         WINDOWS. We already have the code in io-layer.
10097
10098 2004-11-28  Martin Baulig  <martin@ximian.com>
10099
10100         * loader.c
10101         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
10102         Fixes gen-112.cs.
10103
10104 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
10105
10106         * assembly.c (do_mono_assembly_open): Instead of having a
10107         conditional WITH_BUNDLE, incorporate support for bundles here, by
10108         having a global `bundles' variable holding a pointer to the actual
10109         bundles. 
10110
10111         (mono_register_bundled_assemblies): New API call used by the
10112         bundle code. 
10113
10114         See mkbundle.1 for details.
10115         
10116 2004-11-27  Martin Baulig  <martin@ximian.com>
10117
10118         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
10119         the vtable for generic methods.
10120
10121 2004-11-26  Martin Baulig  <martin@ximian.com>
10122
10123         * metadata.c
10124         (mono_metadata_generic_method_hash): New public function.
10125         (mono_metadata_generic_method_equal): Likewise.
10126
10127         * class-internals.h
10128         (MonoGenericContainer): Added `GHashTable *method_hash'.
10129
10130         * reflection.c (ReflectionMethodBuilder): Added
10131         `MonoGenericContainer *generic_container'.
10132         (reflection_methodbuilder_to_mono_method): Don't create a new
10133         MonoGenericContainer each time we're called.
10134         (mono_reflection_bind_generic_method_parameters): Use
10135         `container->method_hash' to cache the results so we don't create a
10136         different method if we're called several times with the same
10137         arguments.
10138
10139         * loader.c (method_from_methodspec): Use the new
10140         `container->method_hash' here, too.
10141
10142 2004-11-26  Martin Baulig  <martin@ximian.com>
10143
10144         * class.c (inflate_generic_signature): Correctly compute
10145         `res->has_type_parameters'.
10146         (mono_class_vtable): Use the `has_type_parameters' flag to
10147         determine whether we're a generic method.
10148
10149         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
10150
10151 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
10152
10153         * object.c (mono_runtime_run_main): Fix a small memory leak.
10154
10155 2004-11-25  Martin Baulig  <martin@ximian.com>
10156
10157         * class.c (set_generic_param_owner): Fixed the loop.
10158
10159 2004-11-25  Martin Baulig  <martin@ximian.com>
10160
10161         * object.c (mono_class_vtable): Don't create any JIT wrappers for
10162         generic methods.
10163
10164 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
10165
10166         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
10167         names. Fixes #69787.
10168
10169 2004-11-24  Martin Baulig  <martin@ximian.com>
10170
10171         * class.c (mono_class_create_generic_2): If we don't have a
10172         `ginst->parent', inflate `gklass->parent' to get our parent.
10173
10174 2004-11-24  Martin Baulig  <martin@ximian.com>
10175
10176         * reflection.c (compare_genericparam): Correctly sort the
10177         GenericParam table; fixes #69779.
10178
10179 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
10180
10181         * reflection.c: When writing a PE file, don't create a huge
10182         buffer in memory. Just write the arrays we have to the file.
10183         This reduces memory usage.
10184
10185         * metadata-internals.h: MonoDynamicStream pefile is no longer used
10186         globally.
10187
10188 2004-11-17  Martin Baulig  <martin@ximian.com>
10189
10190         * class.c (mono_class_init): Don't setup `class->parent' for
10191         dynamic instances; moved this to mono_class_generic_2().
10192         (mono_class_create_generic): Also set `klass->inited' for dynamic
10193         generic instances.
10194         (mono_class_create_generic_2): Don't do anything for dynamic
10195         generic instances.  Set `klass->parent' here and also call
10196         mono_class_setup_parent() here. 
10197
10198         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
10199         `MonoType *parent' argument; set `ginst->parent' before calling
10200         mono_class_create_generic_2(), so we set the correct parent.
10201
10202 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
10203
10204         * reflection.c: allow getting attributes from ModuleBuilder
10205         (used by ikvm).
10206
10207 2004-11-17  Martin Baulig  <martin@ximian.com>
10208
10209         * class.c (mono_class_create_from_typedef): If a type parameter is
10210         inherited from an outer class, set its owner to that class.
10211
10212 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
10213
10214         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
10215           for (int*) written size. This fixes bug #69592.
10216
10217 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
10218
10219         * icall.c: Added IsAuthenticodePresnet internal call.
10220         * image.c|h: New function that check a MonoImage for an Authenticode
10221         signature in the certificate PE data directory.
10222         * security.c|h: New internal call to ask the runtime if an 
10223         Authenticode signature seems referenced in the PE header.
10224
10225 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
10226
10227         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
10228
10229         * reflection.c (mono_image_create_pefile): Free the assembly streams
10230         after writing out the assembly file.
10231
10232         * object.c (mono_runtime_run_main): Fix small memory leak.
10233
10234         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
10235         property access modifiers. Fixes #69389.
10236
10237 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
10238
10239         * domain.c, object.c, object-internals.h, domain-internals.h,
10240         object.h, marshal.c: keep dynamic code info per domain.
10241
10242 2004-11-15  Martin Baulig  <martin@ximian.com>
10243
10244         * class.c (mono_type_get_name_recurse): Put type arguments in
10245         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
10246         see bug #68387.
10247
10248 2004-11-15  Martin Baulig  <martin@ximian.com>
10249
10250         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
10251         (mono_class_setup_vtable): When computing `the_cname' for a
10252         generic instance, don't include the namespace since we'd otherwise
10253         add it twice.
10254
10255 2004-11-15  Martin Baulig  <martin@ximian.com>
10256
10257         * class.c (mono_class_create_generic): Changed return type to void.
10258         (mono_class_create_generic_2): New public function; setup
10259         `class->method', `class->field' and `class->interfaces' here
10260         instead of in mono_class_init().
10261
10262         * class.h (mono_class_create_generic): Moved to class-internals.h.
10263
10264 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
10265
10266         * reflection.c (mono_image_create_pefile): take a file HANDLE.
10267         rather than writing to memory, write to this file. Right now,
10268         we are just writting into a buffer, and copying that. However
10269         we can avoid the buffer later.
10270
10271         (mono_dynamic_stream_reset): new function
10272
10273         * icall.c, object-internals.h: update for the above.
10274
10275 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
10276
10277         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
10278         have been using gc'd memory. First it is slower, unlikely
10279         the comment in the source code said, secondly, it increases
10280         our footprint to do it in the gc.
10281
10282         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
10283         the method so that it does not have to copy to managed code.
10284
10285 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
10286
10287         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
10288
10289 2004-11-12  Martin Baulig  <martin@localhost>
10290
10291         * reflection.c (mono_image_create_token): Allow generic method
10292         definitions here, since they may appear in an `.override'; see
10293         gen-98/gen-99 for an example.
10294
10295 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
10296
10297         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
10298         #69365.
10299
10300         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
10301         descriptive.
10302
10303 2004-11-11  Martin Baulig  <martin@ximian.com>
10304
10305         * class.c (mono_class_setup_vtable): In an explicit interface
10306         implementation, the method name now includes the arity.
10307
10308 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
10309
10310         * object.c (mono_array_full_copy): Fix warning.
10311
10312 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
10313
10314         * appdomain.c: Removed look_for_method_by_name(). Use the new method
10315         mono_class_get_method_from_name() instead.
10316         
10317         * class-internals.h: Added two new types of wrappers. 
10318         Added MonoRemotingTarget enum. Added new trampoline function type, which
10319         takes an additional MonoRemotingTarget value as parameter, so it is
10320         possible to request a trampoline for a specific target.
10321         
10322         * class.c: Added new mono_class_get_method_from_name() method.
10323         
10324         * class.h: In MonoRemoteClass, we can have now to vtables, one for
10325         general remoting sinks and one specific for cross domain calls.
10326         
10327         * debug-helpers.c: Added new wrapper names.
10328         
10329         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
10330         of a remote class.
10331         
10332         * image.c: Porperly delete value objects form the remoting invoke hashtable.
10333         
10334         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
10335         with several other methods (mono_marshal_get_xappdomain_dispatch,
10336         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
10337         and others) can generate a fast remoting wrapper for cross domain calls.
10338         More information can be found in docs/remoting.
10339         Other changes: Removed mono_find_method_by_name, and used
10340         mono_class_get_method_from_name instead.
10341         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
10342         is stored in the remoting invoke hashtable.
10343         
10344         * marshal.h: published the new method for getting the xdomain wrapper,
10345         and also added a method for getting the adequate wrapper for a given
10346         method and target.
10347         
10348         * object-internals.h, object.c: Added a couple of methods for capying and
10349         cloning arrays.
10350         Modified mono_install_remoting_trampoline, which takes the new remoting
10351         trampoline that has a remoting target as parameter.
10352         mono_class_proxy_vtable now also takes a remoting target as parameter, and
10353         will return the most suitable vtable for the target.
10354         Added mono_remote_class_vtable, which returns the vtable of a remote class
10355         (which can be the normal remoting vtable or the xdomain vtable).
10356         
10357         * threads.c: the xdomain invoke and dispatch wrappers must also be
10358         protected against interruptions.
10359
10360 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10361
10362         * icall.c: use memmove in BlockCopyInternal when the source and
10363         destination arrays are the same.
10364
10365 2004-11-09  Martin Baulig  <martin@ximian.com>
10366
10367         * class-internals.h (MonoGenericContainer): Removed `method' and
10368         `signature', replaced them with `is_method' and `is_signature'
10369         flags.  Added `context'.
10370
10371         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
10372         instead of a `MonoGenericContainer *'.
10373
10374         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
10375         for dynamic type parameters.
10376         (mono_metadata_load_generic_params): Setup `container->context'.
10377
10378         * reflection.c (mono_reflection_setup_generic_class): Setup
10379         `tb->generic_container->context'.
10380         (do_mono_reflection_bind_generic_parameters): Use
10381         mono_class_inflate_generic_type() to correctly inflate types,
10382         rather than using our own hack just for MONO_TYPE_VAR.
10383
10384 2004-11-09  Martin Baulig  <martin@ximian.com>
10385
10386         * class.c (mono_class_inflate_generic_method): Small fix; don't
10387         crash here.
10388
10389         * icall.c
10390         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
10391         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
10392         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
10393         (ves_icall_Type_BindGenericParameters): Likewise.
10394         (ves_icall_Type_get_IsGenericInstance): Likewise.
10395         (ves_icall_Type_GetGenericParameterPosition): Likewise.
10396         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
10397         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
10398         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
10399
10400 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
10401
10402         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
10403         assembly versions and public key tokens. Fixes #69113.
10404
10405 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
10406
10407         * metadata.c: fix bug introduced with the type cache changes
10408         on 2004-11-06.
10409
10410 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
10411
10412         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
10413         the MonoClass pointer instead of the token in exception clauses.
10414         * reflection.c: updates for the above and make the code not depend
10415         on the structure of MonoExceptionClause.
10416
10417 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
10418
10419         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10420         Add support for dynamic assemblies. Fixes #69114.
10421
10422         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
10423
10424 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
10425
10426         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
10427         since most only those methods use it. the code member of
10428         MonoMethodPInvoke was dead, so that can be removed too. Also,
10429         remove inline_count (again, not used), and move slot so that it
10430         can share bits with some other flags. This saves 8 bytes in the
10431         structure and gives us about 50 kb back for mcs helloworld.cs
10432
10433         * *.[ch]: Do naming changes for the above.
10434
10435         * loader.c (mono_method_get_header): Lazily init the header
10436         on first access.
10437         (mono_get_method_from_token): don't init the header here
10438         (mono_free_method): the header may never be allocated
10439
10440         Overall, this saves 150 kb of unmanaged allocations
10441         for mcs helloworld.cs. That accounts for 10% of the unmanaged
10442         memory at runtime.
10443         
10444         * loader.c, loader.h (mono_method_get_header): new accessor.
10445
10446         * *.[ch]: use the above method. Prepares us to lazily load
10447         the header.
10448
10449         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
10450         three warnings, which are actual bugs (see 69206).
10451
10452         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
10453         unused. Saves a cool 4 bytes / method.
10454
10455 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
10456
10457         * metadata.c (builtin_types): Add types for System.Object here.
10458         (mono_metadata_parse_type_full): Cache MonoType*'s that are
10459         for a class or valuetype from klass->this_arg or klass->byval_arg.
10460
10461         On mcs for a hello world, this gets us down from 21836 MonoType's
10462         to 14560.
10463
10464         (mono_metadata_free_type): Account for the above change.
10465
10466 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
10467
10468         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
10469         exception instead of asserting if name is null.
10470         (ves_icall_System_AppDomain_GetData): Ditto.
10471
10472 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
10473
10474         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
10475         EnumBuilder.
10476
10477         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
10478         Return NULL when the domain does not have entry_assembly set.
10479
10480         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
10481         Add a 'resource_modules' argument.
10482         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
10483
10484         * reflection.c (mono_reflection_create_runtime_class): Move setting
10485         of wastypebuilder here, so mono_get_type_object () returns a MonoType
10486         for enums too.
10487
10488         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
10489         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
10490         Throw an ArgumentNullException if 'ptr' is null.
10491
10492         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
10493         assemblies here. Fixes #69020.
10494
10495 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
10496
10497         * reflection.c (build_compressed_metadata): Fix the previous patch for
10498         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
10499         the stack.
10500
10501 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
10502
10503         * assembly.c (mono_assembly_names_equal): Allow a match if one of
10504         the cultures is false. Fixes #69090.
10505
10506         * reflection.c (build_compressed_metadata): Fix invalid memory read 
10507         detected by valgrind.
10508         
10509         * reflection.c (mono_reflection_get_type): Avoid triggering a 
10510         TypeResolve multiple times for the same type. Fixes #65577.
10511
10512 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
10513
10514         * marshal.c: Avoid using ldftn to call managed functions. It is
10515         much slower than just a call.
10516
10517         * reflection.c (mono_module_get_object): free the basename we
10518         allocate here from glib.
10519         
10520         * reflection.c (ensure_runtime_vtable): make sure to free
10521         overrides.  Also, we were allocating an array of MonoMethod not an
10522         array of MonoMethod*.
10523
10524         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
10525
10526         * image.c (mono_image_close): free image->guid here.
10527
10528 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
10529
10530         * reflection.c: Fix some spec conformance issues with the PE file
10531         structures so mcs compiled apps run on the Net 2.0 beta.
10532
10533 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
10534
10535         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
10536         Implement this. Fixes #67264.
10537
10538         * debug-helpers.h debug-helpers.c marshal.c: Move 
10539         mono_find_method_by_name to debug-helpers.c.
10540
10541 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
10542
10543         * object.c (mono_release_type_locks): type_initialization_hash is
10544         a GHashTable.
10545
10546         * reflection.c object.c object-internals.h: Fix warnings.
10547
10548         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
10549         without accessors. Fixes #61561.
10550
10551         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
10552         application base from the root domain if not set. Fixes #65641.
10553         (mono_runtime_init): Fix warning.
10554
10555 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10556
10557         * appdomain.c: call mono_thread_pool_init.
10558         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
10559         of worker threads based on the number of CPUs and the environment
10560         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
10561         for non-windows (windows) systems.
10562
10563 2004-10-27  Chris Toshok  <toshok@ximian.com>
10564
10565         * mono-debug-debugger.c (write_class): don't call mono_class_init
10566         here, as even with the check for (!klass->init_pending), we get
10567         into a situation where we're hitting cycles in class
10568         initialization.  Fixes #68816.
10569
10570 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
10571
10572         * image.c: Avoid overwriting values in the loaded_images_hash when an
10573         assembly is loaded multiple times. Fixes #61152.
10574
10575         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
10576         so multiple satellite assemblies for the same name can be loaded.
10577         Fixes #68259.
10578
10579         * mono_domain_assembly_preload: Actually return the loaded assembly, 
10580         not NULL.
10581
10582         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
10583         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
10584
10585         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
10586         pending finalizers are not invoked after the appdomain has been 
10587         unloaded. Fixes #67862.
10588
10589 2004-10-22  Martin Baulig  <martin@ximian.com>
10590
10591         * mono-debug-debugger.c
10592         (mono_debugger_runtime_invoke): Don't box valuetypes.
10593
10594 2004-10-22  Chris Toshok  <toshok@ximian.com>
10595
10596         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
10597         don't hide private methods.
10598
10599 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
10600
10601         * icall.c: Allows the runtime to "share" (when known) the public key
10602         token of an assembly. This avoid the need to recalculate the token 
10603         (from the public key) in managed code.
10604
10605 2004-10-21  Chris Toshok  <toshok@ximian.com>
10606
10607         * debug-helpers.c (append_class_name): argh, revert last patch.
10608         
10609 2004-10-21  Chris Toshok  <toshok@ximian.com>
10610
10611         * debug-helpers.c (append_class_name): use '+' as the delimiter,
10612         not '/', so that it matches what the debugger uses to look up
10613         methods.
10614
10615 2004-10-21  Martin Baulig  <martin@ximian.com>
10616
10617         * mono-debug-debugger.c (mono_debugger_throw_exception): New
10618         public method; this is called each time an exception is thrown and
10619         allows the debugger to use exception catch points.
10620
10621 2004-10-21  Martin Baulig  <martin@ximian.com>
10622
10623         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
10624         the stack pointer and the exception object in some struct and pass
10625         that to the debugger.
10626
10627 2004-10-21  Chris Toshok  <toshok@ximian.com>
10628
10629         * mono-debug-debugger.c (do_write_class): add instance/static
10630         event support.  We don't expose "raise" or "other" yet.
10631         (event_is_static): new method.
10632
10633 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
10634
10635         * mono-debug-debugger.c
10636         (mono_debugger_handle_exception): Remove
10637         bogus return value for fussy compilers.
10638
10639 2004-10-20  Martin Baulig  <martin@ximian.com>
10640
10641         * mono-debug-debugger.c
10642         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
10643         (mono_debugger_handled_exception): Likewise.
10644
10645 2004-10-20  Martin Baulig  <martin@ximian.com>
10646
10647         * mono-debug-debugger.h (MonoDebuggerEvent): Added
10648         MONO_DEBUGGER_EVENT_EXCEPTION.
10649
10650         * mono-debug-debugger.c (mono_debugger_handle_exception): New
10651         public function to send the debugger a notification for an
10652         exception and inform it about a catch/finally clause.
10653
10654 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
10655
10656         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
10657         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
10658         fix 2.95 build. 
10659
10660         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
10661
10662 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
10663
10664         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
10665         marshalled as [In,Out]. Fixes #58325.
10666
10667 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
10668
10669         * reflection.c (mono_method_body_get_object): Implement some fields.
10670
10671 2004-10-12  Martin Baulig  <martin@ximian.com>
10672
10673         * reflection.c (mono_reflection_bind_generic_parameters): Small
10674         fix, correctly retrieve our parent from a generic instance.
10675
10676 2004-10-12  Martin Baulig  <martin@ximian.com>
10677
10678         * metadata.c (mono_metadata_generic_param_equal): We always have
10679         an owner.
10680
10681         * class.c
10682         (mono_class_from_generic_parameter): We need to have an owner.
10683         (my_mono_class_from_generic_parameter): Likewise.
10684
10685         * reflection.c (mono_reflection_setup_generic_class): Renamed to
10686         mono_reflection_create_generic_class() and added a new
10687         mono_reflection_setup_generic_class().  
10688         (mono_reflection_initialize_generic_param): If we're a nested
10689         generic type and inherited from the containing class, set our
10690         owner to the outer class.
10691
10692 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
10693
10694         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
10695
10696         * reflection.c (mono_method_body_get_object): New function to create
10697         a MethodBody object.
10698
10699         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
10700
10701 2004-10-11  Martin Baulig  <martin@ximian.com>
10702
10703         * metadata.c (_mono_metadata_type_equal): Renamed to
10704         do_mono_metadata_type_equal() and made static.
10705
10706 2004-10-11  Martin Baulig  <martin@ximian.com>
10707
10708         * appdomain.c: Bump corlib version number to 28.
10709
10710 2004-10-10  Martin Baulig  <martin@ximian.com>
10711
10712         * class-internals.h
10713         (MonoGenericInst): Added `MonoGenericContainer *container'.
10714         (MonoGenericMethod): Likewise.
10715         (MonoGenericContext): Likewise.
10716         (MonoGenericParam): Added `MonoGenericContainer *owner'.
10717
10718         * metadata.c
10719         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
10720         (do_mono_metadata_parse_generic_inst): Likewise.
10721         (mono_metadata_parse_type_full): New public method.  This is the actual
10722         mono_metadata_parse_type() implementation - with an additional
10723         `MonoGenericContainer *' argument.
10724         (mono_metadata_parse_array_full): Likewise.
10725         (mono_metadata_parse_signature_full): Likewise.
10726         (mono_metadata_parse_method_signature_full): Likewise.
10727         (mono_metadata_parse_mh_full): Likewise.
10728         (mono_type_create_from_typespec): Likewise.
10729         (mono_metadata_interfaces_from_typedef_full): New public method;
10730         this is similar to the other _full() methods, but we take a
10731         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
10732         (mono_metadata_parse_generic_param): Take an additional
10733         `MonoGenericContainer *' argument and lookup the MonoGenericParam
10734         from that container.
10735         (mono_metadata_generic_param_equal): New static method to compare
10736         two type parameters.
10737         (_mono_metadata_type_equal): New static method; takes an
10738         additional `gboolean signature_only' argument - if true, we don't
10739         compare the owners of generic parameters.
10740         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
10741         with a TRUE argument - do a signature-only comparision.
10742
10743         * loader.c: Use the new _full() methods and pass the
10744         MonoGenericContainer to them.
10745
10746         * object-internals.h (MonoReflectionTypeBuilder): Added
10747         `MonoGenericContainer *generic_container' field.
10748         (MonoReflectionMethodBuilder): Likewise.
10749
10750 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
10751
10752         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
10753         case initial images of dynamic assemblies.
10754
10755         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
10756
10757         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
10758
10759         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
10760         length of event->other array.
10761         (typebuilder_setup_events): Ditto.
10762
10763         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
10764         'assembly_by_name' and add an 'assemblies' list.
10765
10766         * assembly.h assembly.c: Add a new search hook for determining whenever
10767         an assembly is already loaded. Use this instead of searching in the
10768         loaded_assemblies list.
10769
10770         * domain.c appdomain.c: Implement the new search hook so loaded 
10771         assemblies are now scoped by appdomain. Fixes #67727.
10772
10773 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
10774
10775         * threads.c (mono_thread_attach): Initialize synch_lock field so
10776         mono_thread_detach works again.
10777
10778         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
10779         'lib' too. Fixes #63130.
10780
10781 2004-10-06  Jackson Harper  <jackson@ximian.com>
10782
10783         * culture-info-tables.h: regenerated.
10784
10785 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
10786
10787         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
10788         implemented by other interfaces in the result. Fixes #65764.
10789         
10790         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10791         Handle unloadable modules without crashing.
10792
10793         * image.c (load_modules): Revert the previous patch since modules must
10794         have a fixed index inside the array.
10795         
10796         * image.c (load_modules): Don't include native modules in the modules
10797         array.
10798
10799 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
10800
10801         * reflection.h: Add param_defaults field.
10802
10803         * reflection.c: Add support for parameter defaults in dynamic methods.
10804         Fixes #64595.
10805
10806         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
10807         an empty string when a type has no namespace. Fixes #64230.
10808
10809 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
10810
10811         * tabledefs.h: Added "internal" security actions to support non-CAS
10812         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
10813         Note: they do not seems to be used anymore in 2.0 (new metadata format)
10814
10815 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
10816
10817         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
10818         constructor of abstract class. Fixes #61689.
10819
10820 2004-10-04  Martin Baulig  <martin@ximian.com>
10821
10822         * class-internals.h (MonoGenericContainer): New type.
10823         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
10824         `MonoGenericContainer *generic_container'.
10825         (MonoClass): Replaced `gen_params' and `num_gen_params' with
10826         `MonoGenericContainer *generic_container'.
10827
10828         * metadata.c (mono_metadata_load_generic_params): Return a
10829         `MonoGenericContainer *' instead of a `MonoGenericParam *';
10830         removed the `num' argument.
10831
10832 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
10833
10834         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
10835         for dynamic images.
10836
10837         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
10838         machine fields.
10839
10840         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
10841
10842         * reflection.c: Save pe_kind and machine values into the generated
10843         image file.
10844
10845         * appdomain.c: Bump corlib version number.
10846
10847         * object-internals.h: Reorganize layout of LocalBuilder.
10848
10849         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
10850         New helper function.
10851
10852         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
10853         created MonoType for dynamic types. Fixes #66180.
10854
10855 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
10856
10857         * threadpool.c: the ares hashtable needs a critical section around it.
10858         this prevents some nasty segfaults
10859
10860 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
10861
10862         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
10863         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
10864         bug 67324).
10865         
10866 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
10867
10868         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
10869         
10870 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
10871
10872         * image.c: Always canonicalize image file names, to avoid loading
10873         the same assembly twice when referenced using a relative path.
10874
10875 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
10876
10877         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
10878
10879         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
10880
10881         * marshal.c: Fix warnings.
10882
10883 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
10884
10885         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
10886         attempting to marshal the delegate_trampoline as the method_addr.
10887         This patch has a static hashtable of marshalled delegates so that 
10888         we can map delegate_trampoline addresses back to delegates.  This
10889         allows a delegate passed to managed code to be passed back into native
10890         code.  Fixes #67039
10891
10892 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
10893
10894         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
10895
10896         * reflection.c (method_encode_code): Align method headers properly.
10897         Fixes #66025.
10898
10899 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
10900
10901         * marshal.c: In the runtime invoke wrapper, reset the abort
10902         exception if it is cached. This avoids the automatic rethrowal of 
10903         the exception after the catch of the wrapper. Also check for pending
10904         interruptions before calling the managed method. This is done using
10905         the new method emit_thread_force_interrupt_checkpoint, since the
10906         normal checkpoint method is ignored when running the invoke wrapper.
10907         * object.c: If the abort exception is rethrown, set the abort_exc
10908         field of the thread, so it will be rethrown aftere every catch.
10909         * threadpool.c: Only run an interruption checkpoint if what has been
10910         requested is a stop of the thread (aborts will be ignored).
10911         * threads.c: By default, a thread will now never be interrumped while
10912         running the runtime invoke wrapper (this ensures that runtime_invoke
10913         will always return to the caller if an exception pointer is provided).
10914         There is a new special method mono_thread_force_interruption_checkpoint()
10915         to force an interruption checkpoint even if running a protected
10916         wrapper, which is used by the same runtime invoke wrapper to do a check
10917         at a safe point.
10918
10919 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
10920
10921         * object.c, object-internals.h: Implemented mono_release_type_locks,
10922         which releases the cctor locks held by a thread.
10923         * threads.c, threads.h: In thread_cleanup, release cctor locks held
10924         by a thread. Added mono_thread_exit() method to be used to safely stop
10925         a thread.
10926
10927 2004-09-28  Raja R Harinath  <rharinath@novell.com>
10928
10929         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10930         Move null check before dereference.  Avoid indexing beyond the end
10931         of the 'modules' array.
10932
10933 2004-09-28  Raja R Harinath  <rharinath@novell.com>
10934
10935         * metadata-internals.h (MonoImage): Add module_count field.
10936         * image.c (load_modules): Set image->module_count.
10937         (mono_image_load_file_for_image): Use image->module_count.
10938         * reflection.c (mono_image_load_module): Append to image->modules array 
10939         of dynamic assembly.
10940         (mono_module_get_object): Fix loop to actually increment index.
10941         Use image->module_count.
10942         * assembly.c (mono_assembly_load_references): Use image->module_count.
10943         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
10944         Likewise.
10945
10946 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
10947
10948         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
10949         Avoid assert on generic types.
10950
10951 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
10952
10953         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
10954
10955         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
10956
10957         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
10958         function to convert a MarshalSpec structure to its managed counterpart.
10959
10960         * reflection.c: Fix warnings.
10961         
10962         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
10963         field.
10964
10965         * icall.c (mono_create_icall_signature): Fix build.
10966
10967 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
10968
10969         * icall.c: Add MakePointType icall.
10970
10971         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
10972         warnings.
10973
10974 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10975
10976         * threadpool.c: reuse allocated slots in the queue.
10977
10978 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
10979
10980         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
10981
10982         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
10983
10984         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
10985         previous change.
10986
10987         * tabledefs.h: Add constants for pinvoke attributes BestFit and
10988         ThrowOnUnmappableChar.
10989
10990         * icall.c (ves_icall_Type_GetPacking): New icall.
10991
10992 2004-09-24  Martin Baulig  <martin@ximian.com>
10993
10994         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
10995
10996 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10997
10998         * appdomain.c:
10999         (mono_domain_set): allow setting a domain that is being unloaded.
11000         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
11001         being unloaded.
11002
11003 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
11004
11005         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
11006         the GetCustomAttributes icall.
11007
11008 2004-09-23  Martin Baulig  <martin@ximian.com>
11009
11010         * object-internals.h (MonoReflectionGenericParam): Replaced
11011         'has_ctor_constraint', `has_reference_type' and `has_value_type'
11012         with `guint32 attrs'.
11013
11014 2004-09-23  Martin Baulig  <martin@ximian.com>
11015
11016         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
11017
11018 2004-09-23  Martin Baulig  <martin@ximian.com>
11019
11020         * object-internals.h (GenericParameterAttributes): New enum.
11021
11022 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
11023
11024         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
11025         
11026         * class.c (init_events): Fill out event->other field.
11027
11028         * class.c: Fix warnings.
11029
11030         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
11031
11032 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
11033
11034         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
11035         walk which doesn't supply the IL offset.
11036
11037 2004-09-22  Martin Baulig  <martin@ximian.com>
11038
11039         * reflection.c (mono_reflection_setup_internal_class): If we're
11040         System.ValueType, System.Object or System.Enum, set
11041         `klass->instance_size' and create the vtable.
11042         (mono_reflection_create_internal_class): If we're an enum type,
11043         get the base class from our current corlib.
11044
11045 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
11046
11047         * reflection.h (MonoResolveTokenError): New type.
11048
11049         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
11050         icall.
11051
11052         * icall.c: Add an 'error' argument to the ResolveToken icalls.
11053
11054 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
11055
11056         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
11057         Support also calling constructors, but only for already allocated objects.
11058
11059 2004-09-17  Geoff Norton <gnorton@customerdna.com>
11060
11061         * reflection.c (type_get_qualified_name): If the klass is null
11062         return the typename to avoid a NullRefEx.
11063         (encode_cattr_value): Get the qualified name of the boxed type,
11064         not the underlying enumtype.  Fixes #62984.
11065
11066 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
11067
11068         * marshal.c: Fix problems with previous checkin.
11069
11070 2004-09-21    <vargaz@freemail.hu>
11071
11072         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
11073         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
11074
11075         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
11076
11077 2004-09-21  Geoff Norton <gnorton@customerdna.com>
11078
11079         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
11080         should only return a type for pointers, arrays, and passbyref types.
11081         Fixes bug #63841.
11082
11083 2004-09-21  Martin Baulig  <martin@ximian.com>
11084
11085         * domain.c (mono_debugger_check_runtime_version): New public
11086         function.
11087
11088         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
11089
11090 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
11091
11092         * reflection.c: Added missing sort to the declarative security 
11093         attributes table. MS implementation stops seeing the attributes if the
11094         token number regress in the table (as shown by ildasm and permview).
11095
11096 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
11097
11098         * object-internals.h (MonoReflectionModule): Add 'token' field.
11099         
11100         * reflection.c (mono_reflection_get_token): Add support for Module
11101         and Assembly.
11102         (mono_module_get_object): Set 'token' field.
11103         (mono_module_file_get_object): Set 'token' field.
11104
11105         * icall.c: Add new Assembly and Module icalls.
11106
11107         * appdomain.c: Bump corlib version.
11108
11109 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
11110
11111         * loader.h loader.c class.h class.c: Add helper functions for obtaining
11112         tokens of metadata objects.
11113
11114         * reflection.h reflection.c (mono_reflection_get_token): New function
11115         to obtain the token of a metadata object.
11116
11117         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
11118
11119 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
11120
11121         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
11122         
11123         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
11124
11125 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
11126
11127         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
11128         * object-internals.h: Added 3 MonoArray* members to MonoReflection
11129         AssemblyBuilder to access the permissions set in the class lib.
11130         * reflection.c: Added security attributes encoding step in 
11131         mono_image_build_metadata.
11132         * tabledefs.h: Added new security actions defined in 2.0:
11133         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
11134
11135 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
11136
11137         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
11138         macro parameter.
11139
11140 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
11141  
11142         * locales.c: nullify the ICU_collator member of CompareInfo when it is
11143           finalized. There where random SIGSEVs at program termination, when
11144           an object being finalized was trying to do a string comparison and
11145           the current culture was already finalized.
11146  
11147 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11148
11149         * threads.c: call thread_cleanup before finishing the thread if we get
11150         there.
11151
11152 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
11153
11154         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
11155         assemblies from the parent. Fixes #65665.
11156
11157 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
11158
11159         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
11160         modifiers.
11161
11162 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
11163
11164         * reflection.h: add prototype for mono_get_dbnull_object
11165         * reflection.c: add prototypes for get_default_param_value_blobs 
11166         and mono_get_object_from_blob for fussier compilers
11167
11168 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
11169  
11170         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
11171         false deadlock checks in class initialization.
11172  
11173 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
11174
11175         * image.c (mono_image_addref): Fix comment.
11176
11177         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
11178         possible.
11179
11180 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
11181
11182         * reflection.c (mono_param_get_objects): Modified to return
11183         ParameterInfo.DefaultValue object.
11184
11185         (get_default_param_value_blobs):
11186         (mono_get_object_from_blob):
11187         (mono_get_dbnull_object): New helper routines. 
11188
11189         * object.c (mono_get_constant_value_from_blob): New helper routine
11190         carved out from get_default_field_value ()
11191
11192         * object-internals.h (mono_get_constant_value_from_blob): Added
11193         function declaration.
11194
11195 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
11196
11197         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
11198         referenced assemblies. Fixes #62135.
11199
11200         * exception.h exception.c (mono_get_exception_file_not_found2): New
11201         helper function.
11202
11203 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
11204
11205         * class.h class.c: Add mono_type_get_underlying_type ().
11206
11207 2004-09-09  Geoff Norton <gnorton@customerndna.com>
11208
11209         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
11210         Fix GetTypes() to support dynamically created assemblies.
11211
11212 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
11213
11214         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
11215         
11216         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
11217         previous patch.
11218
11219         * reflection.h reflection.c loader.c: Allow dynamic construction of
11220         pinvoke methods. Fixes #65571.
11221         
11222         * reflection.c (mono_reflection_get_type): Revert previous change since
11223         it causes regressions.
11224
11225 2004-09-08  Martin Baulig  <martin@ximian.com>
11226
11227         * class.c (class_compute_field_layout): Don't call
11228         mono_class_layout_fields() for open generic instances.
11229
11230 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
11231         * threads.c appdomain.c: fix typo in GC macro
11232
11233 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11234
11235         * threads.c: don't call mono_thread_detach() in start_wrapper(),
11236         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
11237
11238 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
11239
11240         * image.c (mono_image_close): Applied patch from 
11241         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
11242         assembly is loaded multiple times from data.
11243         
11244         * image.c (mono_image_open): Fix warning.
11245
11246 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11247
11248         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
11249         once. Fixes #58334.
11250         
11251         * reflection.c (mono_reflection_create_runtime_class): Initialize
11252         klass->nested_classes. Fixes #61224.
11253
11254 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
11255
11256         * threads.c: sched_yield() on exit, to allow threads to quit.
11257
11258 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11259
11260         * object.c (mono_unhandled_exception): Remove leftover debug code.
11261
11262 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
11263
11264         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
11265
11266 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11267
11268         * marshal.c (emit_marshal_array): Really null terminate string arrays.
11269         
11270         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
11271
11272 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11273
11274         * marshal.c (emit_marshal_array): Null terminate string arrays.
11275         
11276         * marshal.c (raise_auto_layout_exception): Fix warning.
11277
11278         * reflection.c (mono_param_get_objects): Initialize the default value
11279         with DBNull.Value, not null. Fixes #62123.
11280
11281 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
11282
11283         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
11284         throw an exception with a cute explanation.
11285
11286 2004-09-06  Dick Porter  <dick@ximian.com>
11287
11288         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
11289         Close the new process's thread handle, as we don't use it.  The
11290         handle stays around forever otherwise.
11291
11292 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11293
11294         * object.c (arith_overflow): Fix warning.
11295
11296         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
11297         calling conventions in method refs. Fixes #65352.
11298
11299         * reflection.c: Fix warnings.
11300
11301 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
11302
11303         * icall.c: Add a new icall for Array.Clear
11304
11305 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
11306
11307         * object.c: When allocating an array, we have to throw
11308         an overflow exception if any of the lengths are < 0.
11309
11310 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11311
11312         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
11313         properly. Also move implementation of string array marshalling to 
11314         managed code. Fixes #42316.
11315
11316 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11317
11318         * assembly.c: provide more information when loading an assembly fails.
11319
11320 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11321
11322         * filewatcher.c: don't expect the development fam package to be
11323         installed.
11324
11325 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
11326
11327         * marshal.c: Make a copy of the signature cookie since it will be
11328         freed by the caller.
11329         
11330         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
11331
11332         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
11333
11334         * metadata.c (mono_metadata_free_marshal_spec): New function to free
11335         marshal specs.
11336
11337         * marshal.c: More refactoring.
11338         
11339         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
11340         smaller functions.
11341
11342 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
11343
11344         * object.c: In mono_message_invoke, fill the output parameter array after
11345           calling the managed method (it was done before the call). This fixes
11346           bug #59299.
11347
11348 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
11349
11350         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
11351         as well.
11352
11353 2004-09-02  Martin Baulig  <martin@ximian.com>
11354
11355         * class.c (mono_class_instance_size): Don't allow generic type
11356         definitions or open generic instances.
11357         (mono_class_array_element_size): If we're a value type, call
11358         mono_class_instance_size() on the original class.
11359
11360         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
11361         handle generic instances.
11362
11363         * mono-debug-debugger.c (write_type): Handle generic instances
11364         like classes.
11365
11366 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
11367
11368         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
11369         the allocation request fails. Fixes #65089.
11370
11371         * object.c (mono_runtime_free_method): Do not call mono_free_method.
11372         
11373         * object.c (mono_runtime_free_method): New function to free a dynamic
11374         method.
11375
11376         * marshal.c (mono_delegate_free_ftnptr): New function to free the
11377         delegate trampoline.
11378
11379         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
11380         with hasthis as dynamic,
11381
11382         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
11383
11384         * domain.c (mono_jit_info_table_remove): New function to remove an
11385         entry from the jit info table.
11386
11387         * class-internals.h (MonoMethod): Add 'dynamic' field.
11388
11389         * loader.c: Fix warnings.
11390
11391 2004-09-01  Martin Baulig  <martin@ximian.com>
11392
11393         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
11394         instead of mono_debugger_lock() because the latter one is a no-op
11395         unless running in the debugger.
11396
11397 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
11398
11399         * class.c (class_compute_field_layout): Classes with auto-layout or
11400         reference fields are not blittable.
11401         
11402 2004-09-01  Dick Porter  <dick@ximian.com>
11403
11404         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
11405         mono_image_get_filename() to get the assembly location.
11406
11407         * icall.c:
11408         * metadata.h: Fix compile warnings
11409
11410 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
11411
11412         * class.c (class_compute_field_layout): System.Object is blittable.
11413
11414         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
11415         as in/out. Fixes #59909.
11416
11417 2004-09-01  Martin Baulig  <martin@ximian.com>
11418
11419         * metadata.h (MONO_TYPE_ISREFERENCE): Call
11420         mono_metadata_generic_inst_is_valuetype() if we're a generic
11421         instance to check whether our underlying type is a reference type.
11422
11423 2004-09-01  Martin Baulig  <martin@ximian.com>
11424
11425         * metadata.c (mono_type_size): If we're a generic instance, call
11426         mono_class_value_size() for value types.
11427
11428 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
11429
11430         * marshal.c: Implement more custom marshalling functionality. Fixes
11431         #64915.
11432
11433 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
11434
11435         * mono-debug.c, debug-mono-symfile.c: add some locking love.
11436
11437 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
11438
11439         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
11440
11441         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
11442
11443         * icall.c: Fix some warnings.
11444
11445         * threads.c (abort_appdomain_thread): Fix unref errors.
11446         (mono_thread_current): Fix THREAD_DEBUG define.
11447
11448 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
11449
11450         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
11451
11452         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
11453
11454 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
11455
11456         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
11457         string arrays.
11458
11459 2004-08-28  Martin Baulig  <martin@ximian.com>
11460
11461         * metadata.c
11462         (mono_metadata_generic_inst_is_valuetype): New public function.
11463
11464         * metadata.h (MONO_TYPE_ISSTRUCT): Call
11465         mono_metadata_generic_inst_is_valuetype() if we're a generic
11466         instance to check whether our underlying type is a valuetype.
11467
11468 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
11469
11470         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
11471         #63768.
11472
11473 2004-08-25  Martin Baulig  <martin@ximian.com>
11474
11475         * loader.c (mono_get_method_from_token): Abstract methods can also
11476         be generic and thus have type parameters.
11477
11478         * metadata-internals.h
11479         (MonoDynamicImage): Added `GPtrArray *gen_params'.
11480
11481         * reflection.c (mono_image_get_generic_param_info): Don't create a
11482         metadata row, just add an entry to the `gen_params' array.
11483         (build_compressed_metadata): Sort the `gen_params' array and then
11484         actually create the metadata.
11485
11486 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11487
11488         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
11489
11490 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
11491
11492         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
11493
11494 2004-08-24  Martin Baulig  <martin@ximian.com>
11495
11496         * class.cs (mono_class_is_subclass_of): Like an interface, a
11497         generic instance also derives from System.Object.
11498
11499 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
11500
11501         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
11502         custom modifiers to be in any order. Fixes #61990.
11503
11504 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
11505
11506         * object.c: Register mono_object_new_fast icall.
11507         
11508         * object.c (mono_class_get_allocation_ftn): Return to calling
11509         mono_object_new_fast, since it seems faster to compute the object 
11510         size in unmanaged code than passing it as a parameter.
11511
11512         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
11513
11514         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
11515         this function with Boehm as the oom handler, so we don't have to check
11516         the result of GC_malloc.
11517
11518         * object.c: Remove checks for oom.
11519
11520         * object.h object.c (mono_class_get_allocation_ftn): New function to
11521         return the icall which can be used to allocate an instance of a given
11522         class. 
11523
11524         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
11525
11526         * class-internals.h: Add 'enabled' field.
11527
11528 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
11529
11530         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
11531
11532 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
11533         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
11534         value 0x0010.
11535
11536 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
11537
11538         * appdomain.c: use the Tls function for appdomain too,
11539         at Zoltan's request. Actually return in mono_context_get
11540
11541         * appdomain.c, profiler.c, threads.c: use __thread
11542
11543 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
11544
11545         * appdomain.c threads.c: Call GC_CreateThread on windows.
11546
11547         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
11548         multiple libraries since this don't work on windows.
11549
11550 2004-08-18  Martin Baulig  <martin@ximian.com>
11551
11552         * class-internals.h
11553         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
11554         MonoMethodHeader.
11555
11556         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
11557         MonoMethodNormal since we also need it for abstract and interface
11558         methods.
11559
11560         * reflection.c
11561         (build_compressed_metadata): Sort the GenericParam table.
11562         (mono_image_create_token): Added `gboolean create_methodspec'
11563         argument; this is false when generating a MethodImpl token.
11564         (reflection_methodbuilder_to_mono_method): Abstract and interface
11565         methods may also have generic parameters.
11566
11567 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
11568
11569         * appdomain.c: thread local alloc
11570
11571 2004-08-17  Martin Baulig  <martin@ximian.com>
11572
11573         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
11574
11575         * icall.c
11576         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
11577         argument.
11578
11579         * class.c (mono_type_get_full_name): New public function.
11580         (mono_type_get_name): Don't include the type arguments.
11581
11582 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
11583
11584         * Makefile.am: Build static versions of libmetadata and libmonoruntime
11585         for inclusion into the mono executable.
11586
11587 2004-08-16  Martin Baulig  <martin@ximian.com>
11588
11589         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
11590         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
11591
11592 2004-08-14  Martin Baulig  <martin@ximian.com>
11593
11594         * class.c (dup_type): Also copy the `byref' field.
11595
11596 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
11597
11598         * reflection.c (create_dynamic_mono_image): Revert the last change 
11599         since it breaks bootstrap.
11600
11601 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
11602
11603         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
11604
11605         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
11606         not free them with g_free.
11607
11608 2004-08-11  Martin Baulig  <martin@ximian.com>
11609
11610         * reflection.c (mono_reflection_setup_internal_class): Also call
11611         mono_class_setup_mono_type() if we already have a `tb->type.type'.
11612
11613 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
11614
11615         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
11616         called during default (first) AppDomain creation. Keep track of
11617         Evidence when loading assemblies.
11618
11619 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
11620
11621         * opcodes.c, opcodes.h: reduce runtime relocations.
11622
11623 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
11624
11625         * culture-info.h, locales.c: fixes and chages to sue the new
11626         optimized format of the locale data.
11627         * culture-info-tables.h: regenerated.
11628
11629 2004-08-06  Geoff Norton <gnorton@customerdna.com>
11630         
11631         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
11632
11633 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
11634
11635         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
11636         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
11637         * domain-internals.h: icall declaration.
11638         * icall.c: icall registration.
11639         * object-internals.h: New fields in MonoAssembly for CAS.
11640
11641 2004-08-05  Duncan Mak  <duncan@ximian.com>
11642
11643         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
11644         CEE_LDELEM_ANY.
11645
11646 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
11647
11648         * reflection.c: fix to deal with object[] arrays in custom ctors
11649         (bug #62550).
11650
11651 2004-08-05  Martin Baulig  <martin@ximian.com>
11652
11653         * class.c (mono_class_array_element_size): Added support for
11654         generic instances and correctly handle "recursive" types.
11655
11656 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
11657
11658         * assembly.c: Fix warnings.
11659
11660 2004-08-04  Martin Baulig  <martin@ximian.com>
11661
11662         * class.c
11663         (mono_type_get_name_recurse): Added `gboolean include_arity'
11664         argument specifying whether or not we should include the generic
11665         arity in the type name.
11666         (_mono_type_get_name): New static function.
11667         (mono_class_setup_vtable): If we're a generic instance, don't
11668         include the generic arity in the names of explicit method
11669         implementations.        
11670
11671 2004-08-03  Martin Baulig  <martin@ximian.com>
11672
11673         * class.c (mono_type_get_name_recurse): Enclose the generic type
11674         arguments in `<', '>'.
11675
11676 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11677
11678         * gc.c: make GC warning messages use the trace API, they are just
11679         noise to most of the users.
11680
11681 2004-08-03  Martin Baulig  <martin@ximian.com>
11682
11683         * debug-mono-symfile.c (read_string): Correctly read the string.
11684
11685 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
11686
11687         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
11688         
11689         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
11690         icalls.
11691         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
11692
11693 2004-07-30  Martin Baulig  <martin@ximian.com>
11694
11695         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
11696         Reflect latest symbol writer changes.   
11697
11698 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
11699
11700         * object.c: always create an object if null is passed
11701         to Invoke() where a valuetype is expected.
11702
11703 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
11704
11705         * marshal.c (mono_marshal_init): make managed
11706         signatures match native ones better for 64bits.
11707
11708 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11709
11710         * appdomain.c: hack to build correctly the private bin path on windows.
11711         Fixes bug #61991.
11712
11713 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
11714
11715         * assembly.c: Load mscorlib from the correct framework directory
11716           (mono/<version>/mscorlib.dll).
11717         * appdomain.h: Added prototypes for new functions.
11718         * internals.h: Added some prototypes.
11719         * domain.c: When initializing the runtime, get from the executable and
11720           the configuration files the runtime version that the app supports.
11721           Added support methods for reading app.exe.config. Added list of versions
11722           supported by the JIT. Added two new methods: mono_init_from_assembly,
11723           which initializes the runtime and determines the required version from
11724           the provided exe file, and mono_init_version, which initializes
11725           the runtime using the provided version.
11726         * icall.c: Get machine.config from version-specific directory.
11727         * reflection.c: When generating an image, embed the version number
11728           of the current runtime.
11729
11730 2004-07-28  Dick Porter  <dick@ximian.com>
11731
11732         * socket-io.c
11733         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
11734         returned sockaddr size before creating the remote address object.
11735         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
11736         61608.
11737
11738 2004-07-28  Dick Porter  <dick@ximian.com>
11739
11740         * locales.c (string_invariant_compare_char): Fix invariant char
11741         compares between upper and lower cases.  Fixes bug 61458.
11742
11743 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
11744         
11745         * marshal.c: actually cache stelem.ref wrappers.
11746         
11747 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
11748
11749         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
11750         sections and remove the mono_cli_rva_map () function.
11751
11752 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
11753
11754         * debug-mono-symfile.c: fix one more endianess issue, from a patch
11755         by Geoff Norton (<gnorton@customerdna.com>).
11756
11757 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11758
11759         * class.c: fix class loads for pointer types (typeof(int) !=
11760         typeof(int*)).
11761
11762 2004-07-27  Martin Baulig  <martin@ximian.com>
11763
11764         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
11765         reading the debugging information from an external ".mdb" file.
11766
11767 2004-07-24  Martin Baulig  <martin@ximian.com>
11768
11769         * reflection.c (mono_image_get_type_info): Only write a class
11770         layout entry if we actually have a size or a packing size.
11771
11772 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
11773
11774         * reflection.c (type_get_fully_qualified_name): 
11775         insert cast to get type checking of ?: with non-gcc compilers
11776
11777 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
11778
11779         * rand.c: use g_getenv for both lookups of
11780         MONO_EGD_SOCKET
11781
11782 2004-07-17  Martin Baulig  <martin@ximian.com>
11783
11784         * reflection.c (mono_reflection_bind_generic_method_parameters):
11785         Set `gmethod->reflection_info'.
11786
11787 2004-07-17  Martin Baulig  <martin@ximian.com>
11788
11789         * class.c (mono_class_create_from_typedef): Insert the newly
11790         created class into the hash table before computing the interfaces
11791         since we could be called recursively.
11792
11793 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
11794
11795         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
11796         function to implement stelem.ref in managed code
11797         * class-internals.h, debug-helpers.c: a new wrapper type
11798         for the above.
11799
11800 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
11801
11802         * gc.c: allow GC handles to work even when no GC is compiled in.
11803         Fix part of bug #61134 (GetAddrOfPinnedObject).
11804
11805 2004-07-13  Peter Williams  <peter@newton.cx>
11806  
11807         * process.c (complete_path): Make sure we don't attempt to execute
11808         directories.
11809  
11810 2004-07-12  Geoff Norton <gnorton@customerdna.com>
11811
11812         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
11813           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
11814           and will add/subtract the hour if needed
11815
11816 2004-07-12  Martin Baulig  <martin@ximian.com>
11817
11818         * reflection.c (mono_field_get_object): If we have
11819         `field->generic_info', take the attributes from
11820         `field->generic_info->generic_type'.    
11821
11822 2004-07-12  Martin Baulig  <martin@ximian.com>
11823
11824         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
11825         This function must be called before initializing the runtime.
11826         (mono_debug_init_1): New function; call this after initializing
11827         the runtime, but before loading the assembly.  It tells the
11828         debugger to load corlib and the builtin types.
11829
11830         * mono-debug-debugger.c: Did some larger changes in the debugging
11831         code; support recursive class declarations, make sure we actually
11832         add all classes.
11833
11834 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11835
11836         * debug-helpers.c: undo my previous patch and fixed the real issue in
11837         ../mini/exceptions-x86.c
11838
11839 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11840
11841         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
11842         when no HOME env. variable was set and a NullRef was thrown in a .cctor
11843         called from other .cctors.
11844
11845 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
11846
11847         * loader.c: Removed the mono_loader_wine_init hack now that we are
11848         doing a managed version of Windows.Forms.
11849
11850 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
11851
11852         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
11853         threadpool.c, threads.c: remove static data from rootset.
11854
11855 2004-07-09  Dick Porter  <dick@ximian.com>
11856
11857         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
11858         Don't do any more processing if the matched length was 0.  It was
11859         increasing the size of the string before.  Fixes bug 61167.
11860
11861 2004-07-09  Dick Porter  <dick@ximian.com>
11862
11863         * socket-io.h:
11864         * socket-io.c
11865         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
11866         Add support for SO_PEERCRED if its available.
11867
11868 2004-07-09  Peter Bartok <pbartok@novell.com>
11869         * loader.c: winelib.exe.so error message is now only displayed if
11870         MONO_DEBUG is set. To help us avoid questions when people are trying
11871         out the new Managed.Windows.Forms.
11872
11873 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
11874
11875         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
11876         for isinst and castclass wrappers.
11877
11878         * class-internals.h icall.c: Move registration and lookup of JIT icalls
11879         to libmetadata from the JIT, so they could be used by the marshalling
11880         code and the interpreter.
11881
11882         * marshal.c: Register marshalling related JIT icalls here instead of
11883         in mini.c. Use CEE_MONO_ICALL instead of the family of 
11884         CEE_MONO_PROC<x> opcodes to call marshalling functions.
11885
11886         * metadata.h: Remove unneeded marshalling conversions.
11887
11888         * opcodes.c: Update for new opcodes.
11889         
11890 2004-07-08  Martin Baulig  <martin@ximian.com>
11891
11892         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
11893         (mono_debug_get_domain_data): Make this function static.
11894
11895 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
11896
11897         * gc.c, object.h: add nice GC handle API for embedders.
11898
11899 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
11900
11901         * reflection.c: more changes for the new api
11902
11903         * object.c: When we reflect on a field w/ a constant value, it
11904         will not have a memory location, so we must access metadata. Also,
11905         allow easier reading of strings so that we can read them from
11906         the constant data.
11907
11908         * class.c (mono_class_layout_fields): no need for literal fields here.
11909
11910         * class-internals.h: api changes for const fields
11911
11912         * icall.c (ves_icall_get_enum_info): use new apis for const fields
11913
11914 2004-07-06  Martin Baulig  <martin@ximian.com>
11915
11916         * mono-debug.h: Increment version number to 44.
11917
11918         * mono-debug.c (mono_debug_add_wrapper): The second argument is
11919         now a gpointer, rewrote this whole method.
11920
11921         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
11922         function.  Add information about the wrapper in a new "misc table".
11923
11924         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
11925         for the new misc table.
11926
11927 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
11928
11929         * metadata-internals.h image.c: Add a cache for helper signatures.
11930
11931         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
11932
11933 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
11934
11935         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
11936         delegates from a delegate. Fixes #61033.
11937         
11938         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
11939         marshalling of stringbuilder arrays. Fixes #59900.
11940
11941 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
11942
11943         * icall.c: Add EnumBuilder:setup_enum_type icall.
11944
11945 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
11946
11947         * icall.c: Added a new icall for the property version of
11948         OffsetOfStringData.
11949
11950 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
11951
11952         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
11953         it has a constant size across platforms.
11954
11955         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
11956         stack trace.
11957
11958 2004-06-29  Martin Baulig  <martin@ximian.com>
11959
11960         * mono-debug.c (mono_debug_add_method): Protect the whole function
11961         in mono_debugger_lock(), not just parts of it.
11962
11963 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
11964
11965         * reflection.c: make sure padding bytes in heaps are zeroed.
11966
11967 2004-06-24  David Waite  <mass@akuma.org>
11968
11969         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
11970         image.c, loader.c, locales.c, marshal.c, metadata.c,
11971         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
11972         string-icalls.c, threads.c: change to C90-style comments from C99 /
11973         C++ -style
11974
11975 2004-06-24  Dick Porter  <dick@ximian.com>
11976
11977         * threads.c
11978         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
11979         return createdNew.  Fixes bug 60412.
11980
11981         * threads-types.h: 
11982         * icall.c: Add createdNew parameter to CreateMutex icall
11983
11984 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
11985
11986         * reflection.c, object-internals.h: save default value in params.
11987
11988 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11989
11990         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
11991         no need to build a new path combining that with the application base.
11992         Fixes bug #60442.
11993
11994 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
11995
11996         * reflection.c: fixed minor standard compliance issues.
11997
11998 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
11999
12000         * reflection.c: fixed issue with encoding some custom attributes
12001         (arrays in properties and fields, bug #60411).
12002
12003 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12004
12005         * reflection.c: fix start address when copying the public key token.
12006
12007 2004-06-23  Martin Baulig  <martin@ximian.com>
12008
12009         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
12010         the `exc' object in a static object to put it into the GC's root set.
12011
12012 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
12013
12014         * reflection.c: make mono_reflection_setup_internal_class ()
12015         callable a second time to setup a new parent class.
12016
12017 2004-06-23  Dick Porter  <dick@ximian.com>
12018
12019         * threads.c: Check for WAIT_IO_COMPLETION return values.
12020
12021 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
12022
12023         * appdomain.c: Removed the g_free on the public key token. Now copy 
12024         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
12025         * assembly.c: Added public key token string value when loading 
12026         assemblies. Fix bug #60439.
12027         * icall.c: Added missing informations (like public key) in 
12028         GetReferencedAssemblies. Fix #60519.
12029         * image.h: Changed definition for public key token from const char*
12030         public_tok_value to guchar public_key_token [17];
12031         * reflection.c: Updated for changes to public key token.
12032
12033 2004-06-22  Lluis Sanchez Gual
12034
12035         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
12036         for the field in base classes.
12037
12038 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
12039
12040         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
12041         mark headers as not supported, they are installed only for use by the
12042         debugger.
12043
12044 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
12045
12046         * *.c, *.h: avoid namespace pollution in public headers.
12047
12048 2004-06-21  Martin Baulig  <martin@ximian.com>
12049
12050         * exception.c (mono_get_exception_security): It's in
12051         "System.Security", not in "System".
12052
12053         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
12054         the exception classes.
12055
12056 2004-06-21  Martin Baulig  <martin@ximian.com>
12057
12058         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
12059         Protect the exception object from being finalized.
12060
12061 2004-06-21  Martin Baulig  <martin@ximian.com>
12062
12063         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
12064         public function.
12065
12066 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
12067
12068         * reflection.c: Load the assembly in mono_reflection_type_from_name,
12069         if it was not loaded before. Fix parts of #60439.
12070
12071 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
12072
12073         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
12074         code that was broken since Ben's change: wrappers are now
12075         dependent on the method signature only again.
12076
12077 2004-06-21  Martin Baulig  <martin@ximian.com>
12078
12079         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
12080         added interface support.
12081
12082 2004-06-21  Martin Baulig  <martin@ximian.com>
12083
12084         * class.c (mono_vtable_get_static_field_data): New public method.
12085
12086 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
12087
12088         * filewatcher.c : Windows build fix to be compliant with API changes.
12089
12090 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
12091
12092         * class.h, class.c: more accessors.
12093         * metadata.h, metadata.c: prepare for hiding MonoType and
12094         MonoMethodSignature: people should use the accessors from now on
12095         outside of the tree.
12096
12097 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
12098
12099         * *.c, *.h: more API cleanups.
12100
12101 2004-06-18  Jackson Harper  <jackson@ximian.com>
12102
12103         * assembly.c: Trace loading assemblies.
12104         * loader.c: Trace loading native libraries.
12105         * mono-config.c: Trace loading config files.
12106         
12107 2004-06-18  Dick Porter  <dick@ximian.com>
12108
12109         * locales.c: Tell ICU the lengths of strings, it can cope with
12110         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
12111
12112 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
12113
12114         * image.c: swapped name/filename;
12115
12116 2004-06-18  Martin Baulig  <martin@ximian.com>
12117
12118         * mono-debug-debugger.c (write_class): Write the parent class at
12119         the end of the header.
12120
12121 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
12122
12123         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
12124
12125 2004-06-17  Raja R Harinath  <rharinath@novell.com>
12126
12127         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
12128         (bundle_obj): New conditional define.
12129         (BUILT_SOURCES): Remove.
12130         ($(bundle_srcs)): Make parallel-make safe.
12131         (libmonoruntime_la_LIBADD): Make unconditional.
12132         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
12133         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
12134
12135 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
12136
12137         * culture-info-tables.h: It was inconsistent with the latest
12138           supp info files.
12139
12140 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
12141
12142         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
12143         be loaded.
12144
12145         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
12146         with gcc 2.95.
12147
12148 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
12149
12150         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
12151         cleaned up public header threads.h.
12152
12153 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
12154
12155         * Makefile.am, *.c, *.h: more API cleanups.
12156
12157 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
12158
12159         * Makefile.am: removed monosn from compilation.
12160         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
12161         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
12162         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
12163         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
12164         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
12165         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
12166
12167 2004-06-15  Jackson Harper  <jackson@ximian.com>
12168
12169         * assembly.c: Make locales lower case when searching the GAC for
12170         assemblies. gacutil will always make locales lowercase when
12171         installing so this effectively makes them case insensitive.
12172         
12173 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
12174
12175         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
12176         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
12177           parameter which allows to choose whether the wait can be interrupted or 
12178           not. Also added the method mono_monitor_enter(), which locks the monitor
12179           using an infinite wait and without allowing interruption.
12180           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
12181           interrupted.
12182         * object.h: Added new fields in MonoThread. suspend_event holds the event
12183           used to susped/resume the thread. synch_lock is the lock object to use for
12184           modifying the thread state.
12185         * threads.c: Use the new synch_lock object for locking, instead of "this",
12186           which can generate deadlocks.
12187           Moved thread state change in Thread.Sleep and Thread.Join from managed
12188           to unmanaged code. This avoids a deadlock when the thread was suspended
12189           just after acquiring the thread lock.
12190           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
12191           Implemented Thread.Suspend using an event instead of ThreadSuspend,
12192           which is not fully implemented in the io-layer.
12193         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
12194
12195 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
12196
12197         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
12198         threads-types.h: more API cleanups.
12199
12200 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
12201
12202         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
12203         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
12204         threadpool.c, threads.c: first pass at the exported API cleanup.
12205
12206 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
12207
12208         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
12209
12210 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12211
12212         * icall.c: added internalGetHome.
12213
12214 2004-06-14  Dick Porter  <dick@ximian.com>
12215
12216         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
12217         possible to return successfully when '.' or '..' were the only
12218         entries in a directory, but were skipped.  The MonoIOStat was not
12219         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
12220         Fixes bug 59574.
12221
12222 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
12223
12224         * reflection.c: make binaries run on .Net 1.1 by default.
12225
12226 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
12227
12228         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
12229
12230 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
12231
12232         * marshal.c: keep track of struct size with explicit layout
12233         (bug #59979).
12234
12235 2004-06-12  Martin Baulig  <martin@ximian.com>
12236
12237         * mono-debug-debugger.c: Comment out a debugging g_message().
12238
12239 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
12240
12241         * reflection.c, reflection.h: do not free custom attrs that are cached.
12242         * icall.c: use braces to make code clearer.
12243
12244 2004-06-11  Martin Baulig  <martin@ximian.com>
12245
12246         * class.h (MonoInflatedField): New type.
12247         (MonoClassField): Replaced `MonoType *generic_type' with
12248         `MonoInflatedField *generic_info'.
12249
12250         * icall.c
12251         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
12252
12253 2004-06-11  Martin Baulig  <martin@ximian.com>
12254
12255         * reflection.c (mono_image_create_method_token): Correctly encode
12256         varargs methods.
12257
12258 2004-06-11  Martin Baulig  <martin@ximian.com>
12259
12260         * metadata.c (mono_metadata_parse_method_signature): When parsing
12261         a MethodDef which has VarArgs, also set sentinelpos if we don't
12262         have any parameters.
12263
12264 2004-06-11  Martin Baulig  <martin@ximian.com>
12265
12266         * verify.c (mono_method_verify): In CEE_CALL, use
12267         mono_method_get_signature() to get the method's signature, unless
12268         we're a PInvoke method.
12269
12270 2004-06-10  Jackson Harper  <jackson@ximian.com>
12271
12272         * assembly.c: Use <path>/lib/mono/gac for the extra paths
12273         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
12274         logical name as the supplied path is just a prefix to the gac not
12275         the direct path to it.
12276         
12277 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
12278
12279         * reflection.c: make the token for a created method match
12280         the token of the MethodBuilder it was created from
12281         (IKVM requires this behaviour now).
12282
12283 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
12284
12285         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
12286         reflection.c, socket-io.c: leak fixes.
12287
12288 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
12289
12290         * icall.c: handle sentinel pos in vararg methods in position different
12291         from 0.
12292
12293 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12294
12295         * culture-info-tables.h: freshly generated.
12296
12297 2004-06-09  Martin Baulig  <martin@ximian.com>
12298
12299         * loader.c (mono_get_method_constrained): Call `mono_class_init
12300         (constrained_class)'.   
12301
12302 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
12303
12304         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
12305         any methods. Fixes #59629.
12306
12307 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12308
12309         * culture-info-tables.h: reflecting locale-builder updates.
12310
12311 2004-06-08  Dick Porter  <dick@ximian.com>
12312
12313         * object.h:
12314         * locales.c: Fixed compile warnings, including a real bug in
12315         CompareInfo_internal_compare.
12316         
12317 2004-06-08  Dick Porter  <dick@ximian.com>
12318
12319         * locales.c
12320         (ves_icall_System_Globalization_CompareInfo_internal_index):
12321         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
12322         Double-check the resuls of usearches, because ICU currently
12323         ignores most of the collator settings here.  Fixes bug 59720.
12324         
12325 2004-06-08  Dick Porter  <dick@ximian.com>
12326
12327         * locales.c
12328         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
12329         Fix memory leak and segfault-causing typo.  No idea how this one
12330         lasted so long without being noticed.
12331
12332 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
12333
12334         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
12335         any methods. Fixes #59629.
12336
12337 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12338
12339         * assembly.c:
12340         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
12341         own the critical section before). Removed dead code (that's done
12342         in the preload hook).
12343
12344         (mono_assembly_load_with_partial_name): call the preload hook.
12345
12346 2004-06-08  Martin Baulig  <martin@ximian.com>
12347
12348         * metadata.c (mono_metadata_signature_alloc): Default
12349         `sentinelpos' to -1.
12350
12351         * reflection.c (mono_image_get_array_token): Likewise.
12352
12353 2004-06-08  Martin Baulig  <martin@ximian.com>
12354
12355         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
12356
12357         * metadata.c (mono_metadata_parse_method_signature): When parsing
12358         a MethodDef which has VarArgs, set sentinelpos.
12359
12360         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
12361         `gint16' since we're using -1 for non-varargs methods.
12362
12363         * reflection.c
12364         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
12365         (method_encode_signature): Added varargs support.
12366         (method_builder_encode_signature): Likewise.
12367         (mono_image_get_varargs_method_token): New static method.
12368         (mono_image_create_method_token): New public method; this is
12369         called via an icall instead of mono_image_create_token() when
12370         calling a varargs method.       
12371
12372 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
12373
12374         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
12375
12376 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12377
12378         * culture-info-tables.h : Reflecting the latest locale-builder that
12379           fixed empty array representation ({} to {0}).
12380
12381 2004-06-07  Jackson Harper  <jackson@ximian.com>
12382
12383         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
12384         looking up extra gac paths. This allows MONO_GAC_PATH to act
12385         exactly like a prefix.
12386         
12387 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
12388
12389         * reflection.c (mono_reflection_type_from_name): Make a copy of the
12390         type name before modifying it. Fixes #59405.
12391
12392 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12393
12394         * culture-info.h: added fields for "all datetime patterns".
12395         * locales.c: (  ves_icall_System_Globalization_CultureInfo
12396           _construct_datetime_format ()): fill xxx_patterns fields.
12397         * object.h: added fields for "all datetime patterns" to
12398           MonoDateTimeFormatInfo.
12399         * culture-info-tables.h: reflecting locale-builder updates.
12400
12401 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
12402
12403         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
12404         the event has no add and remove methods. Fixes #59629.
12405
12406 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
12407
12408         * object.c: Fixed possible integer overflow when allocating large
12409         strings.
12410
12411 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
12412
12413         * culture-info-tables.h: reflecting locale-builder updates.
12414
12415 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
12416
12417         * culture-info-tables.h: reflecting locale-builder updates.
12418
12419 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
12420
12421         * culture-info-tables.h: reflecting locale-builder updates.
12422
12423 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
12424
12425         * threads.c: Made Thread.Sleep abortable.
12426
12427 2004-06-02  Martin Baulig  <martin@ximian.com>
12428
12429         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
12430
12431         * debug-mono-symfile.h: Bumped symbol file version number to 37.
12432
12433 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
12434
12435         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
12436
12437 2004-05-30  Jackson Harper  <jackson@ximian.com>
12438
12439         * reflection.c: Do not hardcode assembly versions or public key
12440         tokens anymore. All of this except the corlib section was dead
12441         code anyways.
12442         
12443 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
12444
12445         * object.c (mono_runtime_invoke_array): Automatically create boxed
12446         objects for byref valuetypes if needed. Fixes #59300.
12447         
12448         * object.c (mono_method_return_message_restore): Handle 
12449         MONO_TYPE_OBJECT as well.
12450
12451 2004-05-28  Jackson Harper  <jackson@ximian.com>
12452
12453         * reflection.c: The modified type encoding was causing build
12454         problems. Reverted for now.
12455         
12456 2004-05-28  Jackson Harper  <jackson@ximian.com>
12457
12458         * reflection.c/h: Take an assembly ref so that we dont create
12459         fully qualified names when encoding types in the same assembly as
12460         the custom attribute being emitted.
12461         * appdomain.c: Increment version number.
12462         
12463 2004-05-26  Duncan Mak  <duncan@ximian.com>
12464
12465         * icall.c
12466         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
12467         Set the full version number (major, minor, build, revision).
12468
12469 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
12470
12471         * marshal.c (emit_struct_conv): increment src/dst after blit
12472         (mono_marshal_get_managed_wrapper,
12473         mono_marshal_get_native_wrapper): make sure we have marshalling
12474         info before marshalling params (info computation affects
12475         blittable)
12476
12477         * class.c (class_compute_field_layout): correctly deal with
12478         blittable
12479         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
12480         value types (as per what windows dows by default)
12481         (mono_class_setup_mono_type): System.ValueType is blittable
12482         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
12483         blittable
12484
12485         * marshal.c (mono_marshal_load_type_info): flag types  as
12486         non-blittable if the native layout doesn't match the managed
12487         layout
12488
12489 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12490
12491         * appdomain.c: don't add stuff in the private search path that is
12492         above the application base. If application base is not set, there's
12493         no private search path.
12494
12495 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
12496
12497         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
12498         byref struct arguments in native->managed marshalling.
12499
12500 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
12501
12502         * marshal.c (mono_marshal_get_runtime_invoke): correctly
12503         cache methods using signature (special case for methods
12504         that are value type or string class)
12505         
12506         * image.c (mono_image_close): clean up allocated GSList's
12507         in runtime_invoke_cache.
12508
12509 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12510
12511         * mono-config.c: set the correct path for mono_cfg_dir on windows when
12512         there's no MONO_CFG_DIR environment variable defined.
12513
12514 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12515
12516         * threads.c: windows version must be >= 0x0500 to include OpenThread.
12517
12518 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
12519
12520         * threadpool.c: Really wait for 500ms after the async call, even if the wait
12521           is interrumped.
12522         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
12523           before waiting for it, and call CloseHandle after the wait to unref it.
12524           This will make sure that handles are not disposed too early.
12525
12526 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12527
12528         * appdomain.c:
12529         * appdomain.h:
12530         * icall.c: removed
12531         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
12532         needed now.
12533
12534         * object.c: se the application_base only for the domain that runs
12535         Main. Fixes bug #59216,
12536
12537 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12538
12539         * appdomain.c:
12540         * object.c: only the domain in which Main is run have
12541         SetupInformation.ConfigurationFile set, so moved a few lines from
12542         appdomain.c to object.c.
12543
12544 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12545
12546         * appdomain.c: we tried to load [name].(dll|exe), but according
12547         to bug #57710, we must also try [culture]/[name].(dll|exe) and
12548         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
12549         There's a test case attached to bug #58922.
12550
12551 2004-05-27  Dick Porter  <dick@ximian.com>
12552
12553         * icall.c:
12554         * file-io.c: Implemented icalls for locking and unlocking regions
12555         in a file.
12556         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
12557         FALSE on error (fixes both compiler warning and real bug.)
12558
12559 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
12560
12561         * culture-info-tables.h: reflecting locale-builder updates.
12562
12563           (Added missing ChangeLog entry for 05/26)
12564
12565 2004-05-27  Jackson Harper  <jackson@ximian.com>
12566
12567         * locales.c: Fix some cut and paste errors.
12568         
12569 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12570
12571         * mono-config.c: set the correct path for config. directory on windows.
12572
12573 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
12574
12575         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
12576           on win32.
12577
12578 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
12579
12580         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
12581         from pinvoke functions.
12582         
12583         * marshal.c (mono_ftnptr_to_delegate): Implement this.
12584
12585 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
12586
12587         * culture-info-tables.h: reflecting locale-builder updates.
12588
12589 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
12590
12591         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
12592         #59086.
12593
12594 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
12595
12596         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
12597         * icall.c: Modified icalls for RNG.
12598         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
12599         Windows (CryptoAPI).
12600
12601 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
12602
12603         * locales.c: Fix build.
12604
12605 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
12606
12607         * culture-info-tables.h: reflecting locale-builder updates.
12608
12609 2004-05-25  Jackson Harper  <jackson@ximian.com>
12610
12611         * locales.c: When creating the current culture use the $LANGs
12612         specific culture. So DateTimeFormat and NumberFormat entries are created.
12613         
12614 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
12615
12616         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
12617         a char array as parameter.
12618
12619 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
12620
12621         * image.c: In mono_image_open(), always use an absolute path name to
12622           look for already loaded images.
12623
12624 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
12625
12626         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
12627         missing in the windows build (like older cygwin include files).
12628
12629 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
12630
12631         * icall.c: Fixed check for possible integer overflow in Buffer_
12632         BlockCopy icall. Replaced comments style // by /* */.
12633
12634 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
12635
12636         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
12637         
12638         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
12639         check after MONO_VTADDR. Fixes pinvoke2.exe.
12640
12641         * marshal.h marshal.c metadata.h: Add beginnings of support for
12642         ftnptr -> delegate marshalling.
12643
12644 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
12645
12646         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
12647         * threads.c: Fix warnings.
12648
12649 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
12650
12651         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
12652         * icall.c: Registered icalls for Suspend and Resume.
12653         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
12654           Thread.Abort.
12655         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
12656         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
12657         * process.c: Use WaitForSingleObjectEx.
12658         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
12659           checkpoints.
12660         * threads.c, threads.h: Make use of new Ex wait methods. Improved
12661           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
12662           for Suspend and Resume. Added new mono_thread_stop, used for stoping
12663           background threads. Added basic support for Abort in Windows.
12664           Start new threads using a managed delegate invoke wrapper. This wrapper
12665           has an interruption checkpoint that is needed since an interruption
12666           can be requested before the thread leaves the unmanaged code that starts 
12667           the thread.
12668         * marshal.c: Added interruption checkpoint after every native call, and
12669           also before managed calls for wrappers called from unmanaged code to
12670           go into managed code.
12671         * object.h: Added new field in MonoThread to keep track of interruption
12672           requests.
12673
12674 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
12675
12676         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
12677         calls.
12678
12679 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12680
12681         * appdomain.c:
12682         * assembly.c:
12683         * gc.c:
12684         * locales.c:
12685         * mono-config.c:
12686         * rand.c: getenv -> g_getenv (windows!)
12687
12688         * process.c: complete_path is also used on non-windows platforms.
12689
12690 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12691
12692         * icall.c: new signature for Process_Start.
12693
12694         * process.[ch]: new signature for Process_Start. If we're on windows
12695         and UseShellExecute is false, we have to search for the program by
12696         ourselves if we don't get a full path.
12697
12698 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
12699
12700         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
12701         marshalling and call CleanUpNativeData if needed. Fixes #58646.
12702
12703 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12704
12705         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
12706         Fixes bug #58373.
12707
12708 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12709
12710         * process.c: use double quotes to quote program name and arguments on
12711         windows. Fixes bug #58575.
12712
12713 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12714
12715         * file-io.c: don't return "." and ".." when using windows Find*File.
12716
12717 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
12718
12719         * marshal.c: Don't pass wrappers to message init because method 
12720         addressed used to lookup metadata. part of remoting[2|3] fix.
12721
12722 2004-05-15  Jackson Harper  <jackson@ximian.com>
12723
12724         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
12725         path is essentially the same as MONO_PATH except that it points to
12726         GACs instead of lib directories.
12727         * loader.h: The user gac is gone so we dont need function to
12728         enable/disable it.
12729         * mono-config.c: user gac option is now gone.
12730         
12731 2004-05-15  Jackson Harper  <jackson@ximian.com>
12732
12733         * culture-info.h: Make defines more consistent, add calendar data
12734         to the culture info table.
12735         * culture-info-tables.h: Add basic calendar data. Basically
12736         everyone gets default gregorian until all the data is
12737         updated.
12738         * locales.c: Use the new consistent defines. Set calendar data for
12739         culture info objects.
12740         * object.h: add a field for calendar data to CultureInfo
12741         
12742 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
12743
12744         * image.c: image->runtime_invoke_cache is keyed on signatures now.
12745         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
12746         a signature.
12747         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
12748         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
12749         an extra param that is the pointer of the method to invoke. The IL for
12750         the invoke method is no longer specific to the method, but to the
12751         signature of the method. Thus, we can share the same code for multiple
12752         methods. This reduces the number of methods that have to be compiled.
12753
12754 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
12755
12756         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
12757
12758         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12759
12760         * icall.c: Optimize Buffer.BlockCopy.
12761
12762 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12763
12764         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
12765         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
12766         quote). Changed them to "MMMM yyyy".
12767
12768 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
12769
12770         * rand.c
12771         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
12772
12773 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
12774
12775         * reflection.h: Updated after changes to managed structures.
12776
12777         * appdomain.c: Bump corlib version.
12778
12779 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12780
12781         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
12782         windows.
12783
12784 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12785
12786         * Makefile.am: link to ../os/libmonoos.la on windows.
12787
12788         * assembly.c:
12789                 -If MONO_DEBUG, warn about non-existing directories in
12790                 MONO_PATH.
12791                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
12792                 compile time variable.
12793                 -Removed init_default_path and call mono_set_rootdir from
12794                 libmonoos.a instead (windows only).
12795
12796         * assembly.h: declare mono_assembly_getrootdir().
12797
12798         * domain.c:
12799         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
12800
12801         * loader.c: s/getenv/g_getenv/
12802
12803 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
12804
12805         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
12806
12807         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
12808
12809         * metadata.h: Add new marshalling conversions.
12810
12811         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
12812         function.
12813
12814         * reflection.c (mono_reflection_get_type): Lookup the type in all
12815         modules of a multi-module assembly. Fixes #58291.
12816
12817 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
12818
12819         * threads.c: Before aborting a background, set the StopRequested
12820         state.  This avoids throwing the Abort exception.
12821         In mono_thread_manage, don't continue with the shutdown until all
12822         aborted threads have actually stopped.
12823
12824 2004-05-10  Jackson Harper  <jackson@ximian.com>
12825
12826         * locales.c: Remove the modifier from culture names.
12827         
12828 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12829
12830         * Makefile.am: monosn is not installed any more. It has been deprecated
12831         in favor of sn.
12832
12833 2004-05-07  Jackson Harper  <jackson@ximian.com>
12834
12835         * locales.c
12836         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
12837         Fix array construction, add bailout if the length is 0.
12838
12839 2004-05-07  Dick Porter  <dick@ximian.com>
12840
12841         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
12842         machine doesn't have a DNS entry.  Patch by Urs Muff
12843         (umuff@quark.com), fixes bug 57928.
12844
12845 2004-05-06  Jackson Harper  <jackson@ximian.com>
12846
12847         * reflection.c: Handle null PublicTokens properly. alloc mem for
12848         assembly names culture so we dont crash when freeing it.
12849         
12850 2004-05-06  Jackson Harper  <jackson@ximian.com>
12851
12852         * assembly.c: Check the usergac when loading with partial names.
12853         
12854 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
12855
12856         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
12857         does nothing for now (not required for Linux/Windows) but the class
12858         library can call it (and a newer or modified runtime could need it).
12859         * icall.c: Registred icall.
12860
12861 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12862
12863         * loader.c: prints a message on module loading error we set MONO_DEBUG
12864         environment variable.
12865
12866 2004-05-05  Jackson Harper  <jackson@ximian.com>
12867
12868         * appdomain.c: Handle PublicKeyToken=null properly.
12869         
12870 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
12871
12872         * environment.c|h: Added icall ves_icall_System_Environment_
12873         GetOSVersionString to get the current OS version as a string.
12874         * icall.c: Registred icall.
12875
12876 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
12877
12878         * object.c: in mono_object_get_virtual_method(), take into account that
12879         non-virtual methods don't have a slot in the vtable. Check needed when
12880         the object is a proxy.
12881
12882 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
12883
12884         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
12885         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
12886
12887         * object.c (mono_class_compute_gc_descriptor): Fix warning.
12888
12889         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
12890         passed when a valuetype is expected.
12891
12892         * object.c (mono_unhandled_exception): Only set the exit code if the
12893         exception happens in the main thread. Fixes thread5.exe.
12894
12895         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
12896         invalid names. Fixes #58047.
12897
12898 2004-05-03  Jackson Harper  <jackson@ximian.com>
12899
12900         * assembly.c: This line was committed accidently and is unneeded.
12901         
12902 2004-05-03  Jackson Harper  <jackson@ximian.com>
12903
12904         * icall.c: Add new icall for Assembly::LoadWithPartialName
12905         * assembly.c/.h: new function that probes the GAC to load partial
12906         assembly names by Paolo Molaro.
12907         
12908 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12909
12910         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
12911         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
12912         (type_get_fully_qualified_name): Added PublicKeyToken when building a
12913         full type name.
12914
12915 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12916
12917         * appdomain.c: fixed check for 'neutral' culture and removed warning.
12918         * reflection.c: fix bug when parsing a full type name and Version is not
12919         the last thing in the string.
12920
12921 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
12922
12923         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
12924         crashes when it is freed.
12925
12926 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12927
12928         * assembly.c: print the compat warning to stderr.
12929
12930 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
12931
12932         * assembly.c (mono_assembly_load_references): Add a compatibility
12933         hack to run old applications that might be still referencing the
12934         3300-based assemblies, only do this for System.xxx.
12935
12936 2004-05-01  Jackson Harper  <jackson@ximian.com>
12937
12938         * appdomain.c: If the culture is neutral we set it to "".
12939         
12940 2004-04-29  Jackson Harper  <jackson@ximian.com>
12941
12942         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
12943
12944 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
12945  
12946         * string-icalls.c: added low overhead function for copying chars
12947         * icall.c: added needed icall for the above function
12948  
12949 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12950
12951         * icall.c: fix return value of get_global_assembly_cache.  Implemented
12952         Environment.GetLogicalDrives.
12953
12954 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
12955
12956         * rand.c: try and talk to egd or prngd
12957         for random bytes if opening devices fail.
12958
12959 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
12960
12961         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
12962         alignment for the type using the native alignment of its members 
12963         instead of using klass->min_align.
12964
12965         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
12966
12967 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12968
12969         * file-io.c:
12970         * socket-io.c: added check for sys/aio.h.
12971
12972 2004-04-28  Dick Porter  <dick@ximian.com>
12973
12974         * threads.c: Don't abort a thread thats already aborting, when
12975         terminating everything.
12976
12977 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12978
12979         * icall.c: added 2 new async calls for Socket.
12980
12981         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
12982         IO on *nix systems.
12983
12984         * threadpool.c: removed unused variable.
12985
12986 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
12987
12988         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
12989
12990 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
12991
12992         * locales.c: put back string_invariant_tolower () and
12993         string_invariant_toupper ().
12994
12995 2004-04-26 David Waite <mass@akuma.org>
12996
12997         * file-io.h:
12998         * socket-io.h:
12999         * threads.h:
13000         * unicode.h: remove comma from end of enumeration declarations
13001
13002 2004-04-26 David Waite <mass@akuma.org>
13003
13004         * debug-mono-symfile.h:
13005         * decimal.c:
13006         * mono_debug.h:
13007         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
13008
13009
13010 2004-04-26  Jackson Harper  <jackson@ximian.com>
13011
13012         * appdomain.c: Increment version number.
13013         
13014 2004-04-26  Jackson Harper  <jackson@ximian.com>
13015
13016         * appdomain.c: Set assembly references public token value when
13017         PublicKeyToken is specified, not the hash_value. Free public token
13018         values when free assembly name data. Previously the public key
13019         token was hex decoded, however we are using hex encoded public key
13020         tokens, so this is not neccasary.
13021         * assembly.c: Lookup assemblies in the gac if their public token
13022         value is set. Add function to allow enabling user gac
13023         lookups. Specify whether or not the assembly was loaded from the
13024         GAC. Compare full assembly names when checking the cache for
13025         assemblies (Temporarily disabled see comment in code). Remove
13026         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
13027         specifies trace-loader they get extra info to stdout on the
13028         loading of assemblies.
13029         * image.h: Add a field for an assembly references public token
13030         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
13031         whether an assembly has been loaded from the GAC.
13032         * image.c: Remove a corlib -> mscorlib name mapping.
13033         * loader.h: Add function to enable/disable the user gac.
13034         * mono-config.c: Check if the usergac is enabled in the config
13035         file.
13036         * icall.c: New icall to determine whether or not an assembly has
13037         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
13038         * tabldefs.h: Add constant for assemblyref flag that specifies a
13039         full public key is used instead of a public token.
13040         * reflection.c: Remove mscorlib -> corlib mappings. Set
13041         PublicTokenValue instead of hash value. This value is a hex
13042         string so it does not need to be expanded.
13043
13044 2004-04-26  Martin Baulig  <martin@ximian.com>
13045
13046         * mono-debug-debugger.c (mono_debugger_initialize): Set
13047         `mono_debugger_initialized' before calling mono_debug_lock().
13048
13049 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
13050
13051         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
13052           InternalToUpper/InternalToLower.
13053         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
13054           removed invariant culture shortcut.  This is now done in managed code.
13055         * locales.c: (string_invariant_toupper/tolower) removed.
13056
13057 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13058
13059         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
13060         Added Poll internal call.
13061
13062         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
13063         call for Poll. Select was too heavy for polling a single socket.
13064
13065         * threadpool.[ch]: added mono_threadpool_cleanup.
13066         * threads.c: use it. Don't use Thread_Abort on windows.
13067
13068 2004-04-23  Martin Baulig  <martin@ximian.com>
13069
13070         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
13071
13072 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
13073
13074         * icall.c: Registred new icalls for key pair protection and added an
13075         icall for Environment.GetFolderPath on Windows.
13076         * security.c|h: Added new icalls for key pair protection.
13077
13078 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13079
13080         * socket-io.c: don't display the non-supported family warning for known
13081         families. Now this is not displayed on windows when checking support
13082         for IPv4/IPv6.
13083
13084 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13085
13086         * class.c: don't display the layout warning for static fields.
13087
13088 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
13089
13090         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
13091         * locales.c, locales.h: Added new icalls for culture-specific
13092         Char.ToLower and Char.ToUpper.
13093
13094 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13095
13096         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
13097         by David Waite.
13098
13099 2004-04-20  Martin Baulig  <martin@ximian.com>
13100
13101         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
13102         of the type name before passing it to mono_reflection_type_from_name().
13103
13104 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
13105
13106         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
13107         encodings here. Fixes #56965.
13108
13109 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
13110
13111         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
13112         fix test on strstr result not that I can see anything that
13113         relies on the result.
13114
13115 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
13116
13117         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
13118         Fixes #57081.
13119
13120         * marshal.c (mono_marshal_get_string_encoding): New helper function.
13121
13122         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
13123         function to determine which marshalling to use for strings. Fixes
13124         #56965.
13125
13126         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
13127
13128         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
13129
13130 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
13131
13132         * icall.c: #include mono-config.h
13133
13134 2004-04-15  Jackson Harper  <jackson@ximian.com>
13135
13136         * culture-info-tables.h: Fix date formats for en-US culture.
13137         
13138 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
13139
13140         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
13141         ThreadPool.SetMinThreads.
13142         * threadpool.c: Implemented ThreadPool.GetMinThreads and
13143         ThreadPool.SetMinThreads.
13144
13145 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
13146
13147         * mono-config.c: also load the .config file in the directory
13148         where the assembly was found.
13149
13150 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
13151
13152         * assembly.c: load per-assembly config files.
13153         * icall.c: decrapified code to get the config dir and moved to
13154         mono-config.c.
13155         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
13156         per-assembly config files. When doing a dll map lookup give precedence
13157         to the per-assembly data.
13158
13159 2004-04-14  Martin Baulig  <martin@ximian.com>
13160
13161         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
13162         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
13163         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
13164
13165         * mono-debugger-debugger.c: While the debugger is locked, remember
13166         whether the symbol tables have changes and send one single
13167         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
13168
13169 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
13170
13171         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
13172
13173         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
13174         function.
13175
13176         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
13177         account when marshalling string arrays. Fixes #56965.
13178
13179 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
13180
13181         * icall.c: Add new icalls mapping for security.
13182         * security.c|h: Add internal calls for WindowsIdentity,
13183         WindowsImpersonationContext and WindowsPrincipal.
13184
13185 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
13186
13187         * class.c: Added comment to ensure the System.MonoDummy class
13188         is removed when no longer necessary
13189
13190 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
13191
13192         * appdomain.c: Pass arguments to the bootstraping exceptions to
13193         minimize JITed methods at boot
13194
13195         * metadata.c (mono_exception_from_name_two_strings): Allow for the
13196         second string to be null.
13197
13198         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
13199         Change the protocol to minimize the JIT methods at startup.  Now
13200         it Returns the internal codepage, if the value of "int_code_page"
13201         is 1 at entry, and we can not compute a suitable code page
13202         number, returns the code page as a string.
13203
13204 2004-04-13  Jackson Harper  <jackson@ximian.com>
13205
13206         * culture-info-tables.h: Fix number of decimal digits for all
13207         english locales.
13208
13209 2004-04-13  Jackson Harper  <jackson@ximian.com>
13210
13211         * icall.c: Clairfy out of sync error message. It is not always
13212         your corlib that is out of sync.
13213
13214 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
13215
13216         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
13217         properties when only the set accessor is overriden. Fixes #55874.
13218
13219 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
13220
13221         * assembly.c (mono_assembly_load_references): Make this thread safe.
13222         Fixes #56327.
13223
13224 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
13225
13226         * monosn.c: Add missing initialization calls.
13227
13228 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
13229
13230         * locales.c:
13231         ves_icall_System_Globalization_CultureInfo_construct_number_format
13232         Fix g_assert so it compiles on fussier compilers re int/ptr
13233         mismatch
13234
13235 2004-04-08  Dick Porter  <dick@ximian.com>
13236
13237         * socket-io.h:
13238         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
13239         53992.  Also rearrange the code so that the internal calls return
13240         an error value and exceptions are thrown from managed code.
13241
13242         * icall.c: Add type info to the socket icalls.
13243
13244 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13245
13246         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
13247         owes me a beer.
13248
13249 2004-04-07  Martin Baulig  <martin@ximian.com>
13250
13251         * class.c (mono_class_from_generic_parameter): Don't default
13252         `klass->parent' to `mono_defaults.object_type'.
13253
13254 2004-04-07  Martin Baulig  <martin@ximian.com>
13255
13256         * reflection.c (mono_reflection_initialize_generic_parameter): Set
13257         `param->pklass->reflection_info'.       
13258
13259 2004-04-07  Jackson Harper  <jackson@ximian.com>
13260
13261         * culture-info-tables.h: Fix date separator symbol.
13262         
13263 2004-04-07  Martin Baulig  <martin@ximian.com>
13264
13265         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
13266         from System.Type to System.MonoType.
13267
13268 2004-04-07  Martin Baulig  <martin@ximian.com>
13269
13270         * reflection.h
13271         (MonoReflectionGenericParam): Added `has_reference_type' and
13272         `has_value_type' fields.
13273
13274         * reflection.c (mono_image_get_generic_param_info): Encode the
13275         correct flags if we have the `class' or `struct' constraint.
13276
13277 2004-04-07  Martin Baulig  <martin@ximian.com>
13278
13279         * reflection.h
13280         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
13281
13282 2004-04-07  Jackson Harper  <jackson@ximian.com>
13283
13284         * appdomain.c: Revert extra patches, just wanted to bump the
13285         version number.
13286         
13287 2004-04-07  Jackson Harper  <jackson@ximian.com>
13288
13289         * Makefile.am: Add culture-info private headers.
13290         * icall.c: Add new icalls for contructing locales.
13291         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
13292         * locales.h: Declare new culture info construction methods.
13293         * object.h: Add new fields used to avoid the CultureMap to
13294         MonoCultureInfo.
13295         * culture-info.h: Definition of structs used in the culture info
13296         tables.
13297         * culture-info-tables.h: Autogenerated tables that contain culture
13298         info data. This file was generated with the locale-builder tool.
13299         * appdomain.c: Incement corlib version number.
13300         
13301 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
13302
13303         * appdomain.c: (mono_runtime_init) move mono_thread_init
13304         to before mono_object_new calls so critical sections
13305         are initialized before use.
13306
13307 2004-04-07  Martin Baulig  <martin@ximian.com>
13308
13309         * icall.c
13310         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
13311         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
13312         (ves_icall_MonoGenericParam_initialize): Removed.
13313         (monogenericparam_icalls): Removed.
13314         (generictypeparambuilder_icalls): Added new table for
13315         System.Reflection.Emit.GenericTypeParameterBuilder.
13316
13317         * reflection.c
13318         (mono_reflection_define_generic_parameter): Removed.
13319         (mono_reflection_initialize_generic_parameter): This is now called
13320         from GenericTypeParameterBuilder's .ctor.
13321
13322 2004-04-06  Martin Baulig  <martin@ximian.com>
13323
13324         * class.c (mono_class_init): Don't inflate nested classes in a
13325         generic instance.
13326         (mono_type_get_name_recurse): Include the generic arguments for
13327         generic instances and generic type declarations.
13328         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
13329         (_mono_class_get_instantiation_name): Removed.
13330         (mono_class_create_generic): Always use `gklass->name' as our name.
13331
13332         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
13333
13334         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
13335         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
13336         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
13337         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
13338         closed generic methods here.
13339
13340         * reflection.c
13341         (mono_reflection_generic_inst_get_nested_types): Removed.
13342         (inflate_mono_method): Copy the generic parameters from the
13343         MonoMethodHeader into out MonoGenericMethod.
13344
13345 2004-04-06  Martin Baulig  <martin@ximian.com>
13346
13347         * row-indexes.h
13348         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
13349
13350         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
13351
13352         * reflection.c (build_compressed_metadata): If we have any entries
13353         in the GenericParam, MethodSpec or GenericParamConstraint tables,
13354         set the header version to 1.1.
13355
13356 2004-04-06  Martin Baulig  <martin@ximian.com>
13357
13358         * class.c (mono_class_init): If we're a generic instance,
13359         initialize our nested classes, too.
13360         (_mono_class_get_instantiation_name): Deal with the new `!%d'
13361         suffix. 
13362
13363 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13364
13365         * process.c: quote the argument passed to the shell on windows.
13366
13367 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
13368
13369         * threads.c (mono_alloc_special_static_data): Allow this to be
13370         called during startup.
13371
13372 2004-04-02  Martin Baulig  <martin@ximian.com>
13373
13374         * icall.c
13375         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
13376
13377 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
13378
13379         * icall.c: Fix build.
13380
13381 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
13382
13383         * Makefile.am: Added security.c|h.
13384         * icall.c: Added icall for get_UserName;
13385         * security.c: New file for security related icalls. Added function
13386         get_UserName for System.Environment (fix #56144).
13387         * security.h: New. Header file for security.c
13388
13389 2004-04-02  Dick Porter  <dick@ximian.com>
13390
13391         * icall.c: Deleted the icalls that were obsoleted some time ago
13392         by the ICU string code, and which were mixed into the icall
13393         rearranging.  Fixes bug 55969.
13394
13395         * string-icalls.h: 
13396         * string-icalls.c: Deleted the code that those icalls reference.
13397
13398 2004-04-01  Martin Baulig  <martin@ximian.com>
13399
13400         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
13401
13402         * class.c (mono_class_from_generic_parameter): Don't set 
13403         TYPE_ATTRIBUTE_INTERFACE.
13404         (my_mono_class_from_generic_parameter): Likewise.
13405
13406 2004-04-01  Martin Baulig  <martin@ximian.com>
13407
13408         * loader.c (find_method): Added an optional `MonoClass *ic'
13409         argument to search in a specific interface.
13410         (mono_get_method_constrained): New public function.
13411
13412 2004-04-01  Martin Baulig  <martin@ximian.com>
13413
13414         * reflection.c (mono_image_get_generic_field_token): Use the
13415         `handleref' cache here.
13416
13417 2004-04-01  Martin Baulig  <martin@ximian.com>
13418
13419         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
13420
13421         * reflection.c (create_generic_typespec): Use the `typespec' hash
13422         here, not the `typeref' one.    
13423
13424 2004-04-01  Martin Baulig  <martin@ximian.com>
13425
13426         * class.c (mono_class_inflate_generic_type): Moved the
13427         functionality into a new static inflate_generic_type() which
13428         returns NULL if it didn't do anything.  Only increment the
13429         `mono_stats.inflated_type_count' if we actually inflated
13430         something.
13431         (mono_class_get_full): Check the classes type to see whether we
13432         need to inflate it; also inflate MONO_TYPE_(M)VAR.
13433
13434 2004-04-01  Jackson Harper  <jackson@ximian.com>
13435
13436         * reflection.c: Set culture for assembly references.
13437         
13438 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
13439
13440         * reflection.[ch], icall.[ch], Fix support for pinning variables.
13441
13442 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13443
13444         * assembly.c:
13445         (do_mono_assembly_open): the critical section also covers
13446         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
13447
13448 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13449
13450         * threads.c:
13451         (mono_manage_threads): abort the background threads when finishing.
13452         Fixes bug #47232.
13453
13454 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13455
13456         * gc.c: only close the done_event handle if there was no timeout.
13457         C-ified comments.
13458
13459 2004-03-30  Martin Baulig  <martin@ximian.com>
13460
13461         * icall.c (icall_entries): It's called "System.Activator", not
13462         "System.Activation".    
13463
13464 2004-03-30  Martin Baulig  <martin@ximian.com>
13465
13466         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
13467         (mono_class_create_from_typespec): Likewise.
13468
13469 2004-03-30  Martin Baulig  <martin@ximian.com>
13470
13471         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
13472         `has_ctor_constraint' and `initialized'.
13473
13474 2004-03-30  Martin Baulig  <martin@ximian.com>
13475
13476         * reflection.c (encode_new_constraint): New static function to add
13477         the constructor constraint attribute to a type parameter.
13478         (encode_constraints): Call encode_new_constraint() if necessary.
13479
13480         * reflection.h
13481         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
13482
13483         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
13484         
13485 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
13486
13487         * reflection.c, icall.c: add support for pinning variables. 
13488
13489 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
13490
13491         * marshal.c (mono_marshal_get_managed_wrapper):
13492         init bool local with zero rather than null.
13493
13494 2004-03-29  Martin Baulig  <martin@ximian.com>
13495
13496         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
13497         the "official" behavior here.
13498         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
13499
13500 2004-03-29  Martin Baulig  <martin@ximian.com>
13501
13502         * icall.c: Reflect latest API changes.
13503
13504 2004-03-29  Martin Baulig  <martin@ximian.com>
13505
13506         * loader.c (mono_get_method_from_token): Also call
13507         mono_metadata_load_generic_params () for abstract and interface
13508         methods; replace the type arguments in the method signature with
13509         the ones which are loaded from the metadata.
13510
13511 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
13512
13513         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
13514         of the lock is not the current thread. MS.NET don't do it, in spite of
13515         what the documentation says. See bug #56157.
13516
13517 2004-03-28  Martin Baulig  <martin@ximian.com>
13518
13519         * class.c (mono_class_init): Don't call init_properties() and
13520         init_events() for generic instances; set `prop->parent' when
13521         inflating properties.
13522
13523         * reflection.c (mono_generic_inst_get_object): Call
13524         `mono_class_init (ginst->klass)'.
13525         (mono_type_get_object): Only create a MonoGenericInst if your
13526         generic type is a TypeBuilder.
13527         (do_mono_reflection_bind_generic_parameters): Only set
13528         `ginst->is_dynamic' if our generic type is a TypeBuilder.
13529
13530 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
13531
13532         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
13533         Fixes #56091.
13534
13535 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13536
13537         * icall.c: added Kill_internal icall.
13538         * process.[ch]: added Kill_internal icall.
13539
13540 2004-03-25  Martin Baulig  <martin@ximian.com>
13541
13542         * class.h (MonoStats): Added `generic_instance_count',
13543         `inflated_method_count', `inflated_type_count' and
13544         `generics_metadata_size'.       
13545
13546 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13547
13548         * reflection.c: no warnings now.
13549
13550 2004-03-25  Martin Baulig  <martin@ximian.com>
13551
13552         * class.c (mono_class_get_full): New public function; does a
13553         mono_class_get(), but also takes a `MonoGenericContext *'.
13554
13555         * loader.c (mono_field_from_memberref): Renamed to
13556         `field_from_memberref', made static and added `MonoGenericContext *'
13557         argument.
13558         (mono_field_from_token): Added `MonoGenericInst *' argument.
13559         (method_from_memberef): Likewise.
13560         (mono_get_method_from_token): Likewise.
13561         (mono_get_method_full): New public function; does a
13562         mono_get_method(), but also takes a `MonoGenericContext *'.
13563
13564         * verify.c (mono_method_verify): Get the method's generic context
13565         and pass it to mono_field_from_token(), mono_get_method_full() and
13566         mono_class_get_full().
13567
13568 2004-03-25  Martin Baulig  <martin@ximian.com>
13569
13570         * class.c (mono_class_inflate_generic_type): Take a
13571         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
13572         `MonoGenericMethod *'.
13573
13574 2004-03-25  Martin Baulig  <martin@ximian.com>
13575
13576         * loader.h (MonoMethodInflated): Store the MonoGenericContext
13577         instead of the MonoGenericMethod here.
13578
13579 2004-03-25  Martin Baulig  <martin@ximian.com>
13580
13581         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
13582         each time we create a new MonoGenericInst, we also create a new
13583         context which points back to us.
13584
13585         * class.c (inflate_method): Use `ginst->context' instead of
13586         creating a new context.
13587
13588         * loader.c (method_from_memberref): Use
13589         `klass->generic_inst->context' instead of creating a new context.
13590
13591 2004-03-25  Martin Baulig  <martin@ximian.com>
13592
13593         * class.h (MonoGenericContext): New struct.
13594         (MonoGenericMethod): Removed `generic_inst'.
13595
13596         * class.c (mono_class_inflate_generic_method): Take a
13597         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
13598
13599 2004-03-25  Martin Baulig  <martin@ximian.com>
13600
13601         * loader.h (MonoMethodInflated): New typedef.
13602
13603         * metadata.h (MonoMethodSignature): Removed `gen_method', make
13604         `generic_param_count' consume just 30 bits, added `is_inflated'
13605         and `has_type_parameters' flags (one bit each).
13606
13607         * class.c (mono_class_inflate_generic_method): Create a
13608         MonoMethodInflated instead of a MonoMethodNormal and set
13609         `is_inflated' in the method signature.
13610
13611         * class.h (MonoGenericMethod): Removed `generic_method'.
13612
13613 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
13614
13615         * image.c: Make sure the name of a MonoImage is always an absolute path.
13616           This fixes bug #54415.
13617
13618 2004-03-24  Martin Baulig  <martin@ximian.com>
13619
13620         * class.c (mono_class_setup_vtable): If we're a generic instance,
13621         use our generic type's vtable size.
13622
13623 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
13624
13625         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
13626         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
13627         problems.
13628
13629 2004-03-23  Martin Baulig  <martin@ximian.com>
13630
13631         * class.h (MonoDynamicGenericInst): Added `int count_events' and
13632         `MonoEvent *events'.
13633
13634         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
13635         (typebuilder_icalls): Added "get_event_info"; calls
13636         mono_reflection_event_builder_get_event_info(). 
13637
13638         * reflection.c (mono_reflection_generic_inst_initialize): Added
13639         `MonoArray *events'.
13640         (mono_reflection_event_builder_get_event_info): New function.
13641
13642 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
13643
13644         * object.h: add mono_type_initialization_init
13645
13646         * object.c (mono_runtime_class_init): 
13647         implement class constructor synchronization rules
13648         to cope with threading issues.  
13649         add mono_type_initialization_init
13650
13651         * appdomain.c (mono_runtime_init): call 
13652         mono_type_initialization_init
13653
13654         * class.h: removing initializing field from MonoVTable
13655
13656 2004-03-23  Martin Baulig  <martin@ximian.com>
13657
13658         * class.c (my_mono_class_from_generic_parameter): Use
13659         `param->name' if it's not NULL. 
13660
13661 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
13662
13663         * class.c: do not insert non-virtual methods in the vtable.
13664         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
13665         that means the method is non-virtual. This never would have
13666         happened before.
13667
13668 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
13669
13670         * profiler.c: Added lock for accessing coverage_hash.
13671
13672 2004-03-22  Martin Baulig  <martin@ximian.com>
13673
13674         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
13675         `method->method->signature->generic_param_count != 0' to make it
13676         work for interface methods.
13677
13678 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13679
13680         * process.c: quote the string passed to the shell using g_shell_quote.
13681
13682 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13683
13684         * threads.c:
13685         (mono_threads_manage): don't remove the finalizer thread and self
13686         from the threads hash table so that mono_thread_manage can be called
13687         more than once.
13688
13689 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13690
13691         * process.c: quote the arguments when UseShellExecute is true. Fixes
13692         bug #55790.
13693
13694 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13695
13696         * threads.c: set mono_thread_detach as a cleanup routine for every
13697         thread. This way it's always executed upon thread termination, either
13698         aborted or finished normally. No more xsp hangs!
13699
13700 2004-03-17  Martin Baulig  <martin@ximian.com>
13701
13702         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
13703         `int count_nested' and a `MonoType **nested'.
13704
13705         * reflection.c (mono_reflection_bind_generic_parameters): Moved
13706         most of the functionality into a new static
13707         do_mono_reflection_bind_generic_parameters() and don't take a
13708         `MonoType *nested_in' argument any more.  Don't compute nested
13709         types here.
13710         (mono_reflection_generic_inst_get_nested_types): New public method
13711         to get nested types.
13712
13713         * class.c (mono_class_create_generic): Set `klass->nested_in' if
13714         we're a nested class.
13715
13716         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
13717         mono_reflection_generic_inst_get_nested_types() to compute the
13718         nested types.
13719
13720 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
13721
13722         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
13723         descriptive error message under windows.
13724         
13725 2004-03-17  Martin Baulig  <martin@ximian.com>
13726
13727         * class.c (dup_type): Added `const MonoType *original' argument;
13728         copy the attrs from the original type.
13729
13730 2004-03-17  Martin Baulig  <martin@ximian.com>
13731
13732         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
13733         `m->generic_inst_cache' here.
13734
13735 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
13736
13737         * exception.h exception.c: Add stack_overflow_exception.
13738
13739 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13740
13741         * threadpool.c:
13742         (overlapped_callback): call SetEvent *after* invoking the callback.
13743         No need to call CloseHandle.
13744
13745 2004-03-16  Martin Baulig  <martin@ximian.com>
13746
13747         * reflection.c (mono_image_get_fieldref_token): Take a
13748         `MonoReflectionField *' instead of a `MonoClassField *' and a
13749         `MonoClass *'; store the `MonoReflectionField *' in the hash.
13750
13751 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13752
13753         * appdomain.c: don't add the culture to the filename we're looking for
13754         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
13755
13756 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13757
13758         * locales.c: don't ignore symbols when doing case insensitive compares.
13759         Thanks Dick! Fixes bug #54046.
13760
13761         * threads.c: surround 'threads' usage with enter/leave in
13762         mono_thread_manage.
13763
13764 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
13765
13766         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
13767         implicitly marshalled as [Out]. Fixes #55450.
13768
13769         (mono_marshal_get_runtime_invoke): Zero out the result if there is
13770         an exception.
13771
13772 2004-03-16  Martin Baulig  <martin@ximian.com>
13773
13774         * class.c (mono_class_from_generic_parameter): Use the actual
13775         parameter name. 
13776
13777 2004-03-16  Martin Baulig  <martin@ximian.com>
13778
13779         * reflection.c (type_get_signature_size): New static function.
13780         Compues the size of the type in a method signature.
13781         (method_get_signature_size): New static function; calls
13782         type_get_signature_size() to compute the actual size of the
13783         method's signature.
13784         (method_encode_signature): Use method_get_signature_size() to get
13785         the signature's size rather than using `nparams * 10'.
13786
13787 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13788
13789         * file-io.h: define here WapiOverlapped on windows. I don't want the
13790         regular OVERLAPPED one.
13791
13792         * file-io.c:
13793         * threadpool.c: somehow, BindIoCompletionCallback is not found.
13794         Disabling AIO on windows.
13795
13796 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13797
13798         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
13799         bug #55385.
13800
13801 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13802
13803         * appdomain.c: upgraded corlib version.
13804
13805         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
13806         and BeginWrite. Allow opening files for asynchrnous operations.
13807
13808         * file-io.h: new struct that maps FileStreamAsyncResult.
13809         * icall.c: added new icalls.
13810         * process.[ch]: support setting child process environment variables
13811         and use the SHELL or COMSPEC when UseShellExecute is true.
13812
13813         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
13814         callback for async. IO is here and also BindHandle.
13815
13816         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
13817         from here.
13818
13819 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
13820
13821         * reflection.c (create_custom_attr): Allow len == 0.
13822
13823         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
13824         computation on big-endian machines.
13825
13826 2004-03-13  Martin Baulig  <martin@ximian.com>
13827
13828         * class.h (MonoGenericInst): Added `int count_ifaces'.
13829
13830         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
13831         `ginst->count_ifaces' instead `klass->interface_count' since we
13832         may get called before the vtable is created.
13833
13834         * loader.c (mono_method_get_param_names): If we're a generic
13835         instance, return and don't initialize the class.
13836
13837         * reflection.c (mono_reflection_setup_generic_class): Don't call
13838         ensure_runtime_vtable().
13839         (mono_reflection_bind_generic_parameters): Set
13840         `ginst->count_ifaces'.
13841
13842 2004-03-11  Jackson Harper <jackson@ximian.com>
13843
13844         * icall.c:
13845         * unicode.c:
13846         * unicode.h: Remove unused System.Char icalls.
13847         
13848 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
13849
13850         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
13851         code when we P/Invoke the first library in Windows.Forms, instead
13852         of when we first open the assembly.
13853
13854         * assembly.c: Drop the lookup from here.
13855
13856 2004-03-10  Martin Baulig  <martin@ximian.com>
13857
13858         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
13859         class for properties, fields and events.  Finally fixes #54945.
13860
13861 2004-03-10  Martin Baulig  <martin@ximian.com>
13862
13863         * metadata.c (mono_metadata_class_equal): New static function;
13864         checks whether two generic instances or two generic parameters are
13865         equal.
13866         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
13867         compare classes.        
13868
13869 2004-03-10  Martin Baulig  <martin@ximian.com>
13870
13871         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
13872
13873         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
13874         argument and write it into the `reflection_info' field.
13875
13876         * icall.c
13877         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
13878         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
13879
13880 2004-03-09  Jackson Harper  <jackson@ximian.com>
13881
13882         * char-conversions.h: use 8 bits for numeric data its all we need
13883         * icall.c: numeric data is only 8 bits now.
13884
13885 2004-03-09  Martin Baulig  <martin@ximian.com>
13886
13887         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
13888
13889         * class.c (init_properties, init_events): Initialize the new
13890         `parent' field.
13891
13892         * reflection.c (typebuilder_setup_properties): Likewise.
13893         (typebuilder_setup_events): Likewise.
13894
13895         * reflection.h (MonoEventInfo): Replaced `parent with
13896         `declaring_type' and `reflected_type'.
13897
13898         * icall.c (ves_icall_get_property_info): Distinguish between
13899         declaring and reflected type.
13900         (ves_icall_get_event_info): Likewise.
13901
13902 2004-03-09  Martin Baulig  <martin@ximian.com>
13903
13904         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
13905         (ves_icall_Type_GetField): Correctly set field->klass.
13906
13907 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
13908
13909         * loader.h: Fix warning.
13910
13911 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
13912
13913         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
13914         library routine if present.  Notice that it will still continue
13915         executing even if its missing, for those working on the Gtk#
13916         edition of Windows.Forms.
13917
13918         * assembly.c (do_mono_assembly_open): If loading the
13919         System.Windows.Forms call mono_loader_wini_init.
13920
13921 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
13922
13923         * class.h: Added MonoRemoteClass struct.
13924         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
13925         function for MonoStrings.
13926         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
13927         Added internal call for getting the proxy type.
13928         * marshal.c: Get the type of transparent proxies from its remote_class.
13929         Added methods that generate the IL for type checks and casts:
13930         mono_marshal_get_isinst, mono_marshal_get_castclass, 
13931         mono_marshal_get_proxy_cancast.
13932         * marshal.h: Declaration of the previous new methods.
13933         * object.c: Added new moethods for creating and updating MonoRemoteClass
13934         instances: mono_remote_class, mono_upgrade_remote_class, 
13935         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
13936         * verify.c: FIx transparent_proxy_fields layout.
13937         * appdomain.c: Bump corlib version.
13938
13939 2004-03-04  Jackson Harper  <jackson@ximian.com>
13940
13941         * icall.c: Add icall to access char conversion tables.
13942         * char-conversions.h: Character conversion tables.
13943         * Makefile.am: Add char-conversions.h private header file.
13944         
13945 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
13946
13947         * appdomain.c (unload_thread_main): Increase unloading timeout to
13948         10 sec as a temporary workaround for Nant problems.
13949
13950 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
13951
13952         * gc.c: Add checks for GC_enable and GC_disable.
13953
13954         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
13955         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
13956         (bug #54988).
13957         
13958 2004-02-27  Martin Baulig  <martin@ximian.com>
13959
13960         * reflection.c (mono_reflection_bind_generic_parameters): Take a
13961         `MonoReflectionType *' instead of a `MonoType *'.
13962
13963 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
13964
13965         * gc.c (run_finalize): Avoid finalizing the object representing the
13966         finalizer thread.
13967         (finalizer_thread): Fix warning.
13968
13969 2004-02-25  Martin Baulig  <martin@ximian.com>
13970
13971         * class.c (_mono_class_get_instantiation_name): Added `int offset'
13972         argument for nested types.
13973         (mono_class_create_generic): Added support for nested generictypes.
13974
13975         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
13976         `GList *nested'.
13977
13978         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
13979
13980         * reflection.c (method_encode_signature): Increase the minimum
13981         value of `size' from 10 to 11.
13982         (mono_reflection_bind_generic_parameters): Take `int type_argc'
13983         and `MonoType **types' arguments instead of the `MonoArray
13984         *types'; added `MonoType *nested_in'.  Recursively instantiate
13985         nested classes. 
13986
13987 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
13988
13989         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
13990         stack_overflow_ex members which are used by exception handling.
13991
13992         * appdomain.c (mono_runtime_init): Initialize the new members.
13993
13994         * gc.c (mono_gc_enable): New helper function.
13995         * gc.c (mono_gc_disable): New helper function.
13996
13997 2004-02-23  Martin Baulig  <martin@ximian.com>
13998
13999         * icall.c: I must have been really stupid - make it actually work
14000         this time ;-)
14001
14002 2004-02-23  Martin Baulig  <martin@ximian.com>
14003
14004         * loader.c (method_from_memberref): Only inflate the method if
14005         it's in another klass.
14006
14007 2004-02-23  Martin Baulig  <martin@ximian.com>
14008
14009         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
14010         (mono_class_init): If we're a generic instance and an interface,
14011         compute `class->interface_id'; also create `class->interfaces'
14012         here and inflate them.
14013
14014         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
14015         `ginst->is_open'.
14016         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
14017
14018         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
14019
14020 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
14021
14022         * reflection.c (method_encode_code): Improved the error message
14023         generated by the exception.
14024
14025 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14026
14027         * icall.c: Martin did not do what he said in the ChangeLog for
14028         2004-02-18, but put back the changes for properties and events.
14029         Commenting those changes out again and adding comment to bug #54518.
14030         
14031         * process.c: removed warning.
14032
14033 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
14034
14035         * marshal.c (emit_struct_conv): Print an error message instead of
14036         asserting when a type does not have the StructLayout attribute.
14037
14038 2004-02-20  Martin Baulig  <martin@ximian.com>
14039
14040         * reflection.c (mono_type_get_object): Also use the cache for
14041         generic instances.
14042         (mono_reflection_bind_generic_parameters): Always compute
14043         `ginst->ifaces'.        
14044
14045 2004-02-20  Martin Baulig  <martin@ximian.com>
14046
14047         * class.h (MonoGenericMethod): Removed `klass'.
14048
14049         * class.c (mono_class_inflate_generic_method): Added `MonoClass
14050         *klass' argument.
14051
14052 2004-02-20  Martin Baulig  <martin@ximian.com>
14053
14054         * reflection.c (method_encode_methodspec): Actually use the
14055         uninflated signature for the memberref.
14056
14057 2004-02-20  Martin Baulig  <martin@ximian.com>
14058
14059         * class.h (MonoGenericMethod): Removed `declaring'.
14060
14061         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
14062         is NULL, compute it here.
14063
14064 2004-02-20  Martin Baulig  <martin@ximian.com>
14065
14066         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
14067
14068         * metadata.c (mono_metadata_generic_inst_hash): New method.
14069         (mono_metadata_generic_inst_equal): New method.
14070
14071         * reflection.c (mono_reflection_bind_generic_parameters): Use the
14072         `klass->image->generic_inst_cache' cache to avoid creating
14073         duplicate MonoGenericInst's.
14074
14075         * class.c (mono_class_inflate_generic_type): Use the cache.
14076
14077 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
14078
14079         * object.c: fixed gc descriptor calculation for embedded valuetypes.
14080
14081 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14082
14083         * icall.c: added Socket.WSAIoctl icall.
14084
14085         * socket-io.[ch]: implemented
14086         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
14087
14088 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
14089
14090         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
14091
14092 2004-02-18  Urs C Muff  <umuff@quark.com>
14093
14094         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
14095         this work on PPC and other big-endian architectures.
14096
14097         * debug-mono-symfile.h: Prepended the names of all the `guint32'
14098         fields with an underscore to make sure they're only accessed by
14099         the read32() macro.
14100
14101 2004-02-18  Martin Baulig  <martin@ximian.com>
14102
14103         * icall.c: Put the klass->refclass changes back for methods and
14104         fields, but not for properties and events.  We're currently not
14105         distinguishing between DeclaringType and ReflectedType for
14106         properties and events, that's what caused the regressions.
14107
14108 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14109
14110         * object.c:
14111         (mono_async_result_new): the handle can be NULL.
14112
14113         * threadpool.c: Use an event instead of a semaphore, don't initialize
14114         it until needed. This saves quite a few semaphores from being created
14115         when using the threadpool.
14116
14117 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
14118
14119         * object.c (mono_string_is_interned_lookup): Fix interning of long
14120         strings. Fixes #54473.
14121
14122         * domain.c (ldstr_equal): Optimize if the two strings are equal.
14123
14124         * icall.c: Revert the klass->refclass changes since they introduce
14125         regressions (bug #54518).
14126
14127 2004-02-18  Martin Baulig  <martin@ximian.com>
14128
14129         * class.c (mono_class_init): If we're a generic instance and don't
14130         come from a TypeBuilder, inflate our members here.
14131         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
14132         (mono_class_create_generic): New public method.
14133         (mono_class_initialize_generic): Removed.
14134         (get_instantiation_name): Renamed to
14135         _mono_class_get_instantiation_name() and made it public.
14136
14137 2004-02-18  Martin Baulig  <martin@ximian.com>
14138
14139         * class.c (mono_class_inflate_generic_type): Clear the new
14140         instance's `nginst->klass' when inflating a generic instance.
14141         (mono_class_is_subclass_of): Added (basic) support for generic
14142         instances.
14143
14144 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
14145
14146         * appdomain.h, domain.c: use a MonoCodeManager instead of a
14147         MonoMempool to hold compiled native code.
14148
14149 2004-02-17  Martin Baulig  <martin@ximian.com>
14150
14151         * class.h (MonoDynamicGenericInst): Added `count_properties' and
14152         `properties'.
14153
14154         * reflection.c (mono_reflection_generic_inst_initialize): Added
14155         `MonoArray *properties' argument.
14156
14157         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
14158
14159 2004-02-17  Martin Baulig  <martin@ximian.com>
14160
14161         * icall.c (ves_icall_Type_GetFields): Renamed to
14162         ves_icall_Type_GetFields_internal() and added a
14163         `MonoReflectionType *rtype' argument; pass it to
14164         mono_field_get_object() to set the field's "reflected" type.
14165         (ves_icall_Type_GetConstructors): Likewise.
14166         (ves_icall_Type_GetEvents): Likewise.
14167         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
14168         argument; pass it to mono_method_get_object() to set the method's
14169         "reflected" type.       
14170
14171 2004-02-17  Martin Baulig  <martin@ximian.com>
14172
14173         * class.h (MonoDynamicGenericInst): New type.
14174         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
14175
14176         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
14177         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
14178         (ves_icall_MonoGenericInst_GetFields): New interncall.
14179
14180         * class.c (mono_class_from_generic): Don't call
14181         mono_class_initialize_generic() if this is a dynamic instance;
14182         ie. it's being created from a TypeBuilder.
14183         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
14184         `class->byval_arg.type'.
14185
14186         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
14187         to `inflate_method' and made static.
14188         (mono_reflection_inflate_field): Removed.
14189         (mono_reflection_generic_inst_initialize): New public method.
14190
14191         * reflection.h (MonoReflectionGenericInst): Removed `methods',
14192         `ctors' and `fields'; added `initialized'.
14193
14194 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
14195
14196         * debug-helpers.c (mono_method_full_name): Fix output for empty
14197         namespaces.
14198
14199 2004-02-12  Martin Baulig  <martin@ximian.com>
14200
14201         * class.h (MonoClassField): Added `MonoType *generic_type'.
14202
14203         * reflection.c (mono_image_get_fieldref_token): Added support for
14204         instantiated generic types.
14205         (field_encode_inflated_field): Removed.
14206         (mono_image_get_inflated_field_token): Removed.
14207         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
14208
14209         * reflection.h (MonoReflectionInflatedField): Removed.
14210
14211 2004-02-12  Martin Baulig  <martin@ximian.com>
14212
14213         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
14214         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
14215
14216         * reflection.c (mono_image_get_methodspec_token): Take a
14217         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
14218         (mono_image_create_token): Check whether we have a
14219         `method->signature->gen_method' and call
14220         mono_image_get_methodspec_token() if appropriate.
14221         (inflated_method_get_object): Removed.
14222         (mono_reflection_bind_generic_method_parameters): Return a
14223         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
14224         (mono_reflection_inflate_method_or_ctor): Likewise.
14225
14226         * reflection.h (MonoReflectionInflatedMethod): Removed.
14227
14228 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
14229
14230         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
14231         for custom valuetype marshalling.
14232
14233         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
14234
14235 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14236
14237         * icall.c: fixed WSAGetLastError_internal name.
14238
14239 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
14240
14241         * threads.c (mono_thread_attach): Allow this to be called multiple
14242         times for a thread.
14243         
14244         * threads.c (build_wait_tids): Do not wait for ourselves.
14245
14246         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
14247         appdomain list is empty.
14248
14249         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
14250         memory returned by mono_string_builder_to_utf16, since it points into
14251         managed memory. Thanks to Bernie Solomon for noticing this.
14252
14253         * icall.c: Add AppDomainSetup icalls.
14254
14255         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
14256
14257         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
14258         types.
14259
14260         * reflection.c (reflection_methodbuilder_to_mono_method): Save
14261         custom attributes to the method_aux struct. Also fix array indexes etc.
14262
14263         * loader.c (mono_method_get_param_names): Make dynamic case work again.
14264         
14265 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
14266
14267         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
14268         (both static and runtime) and reduce startup time.
14269
14270 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
14271
14272         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
14273         AsAny marshalling conversion instead of crashing.
14274
14275         * marshal.c: Fix warnings.
14276
14277 2004-02-09  Martin Baulig  <martin@ximian.com>
14278
14279         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
14280
14281         * reflection.h (MonoReflectionInflatedMethod): Removed the
14282         `declaring' field, it's now in the unmanaged MonoGenericMethod.
14283
14284         * reflection.c (method_encode_methodspec): Removed the `method'
14285         argument; we get it from `gmethod->declaring'.
14286         (inflated_method_get_object): Removed the `declaring' argument.
14287
14288 2004-02-09  Martin Baulig  <martin@ximian.com>
14289
14290         * class.h (MonoGenericMethod): New type.
14291         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
14292         `generic_method'.
14293
14294         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
14295         a `MonoGenericMethod *gen_method' one.
14296
14297         * class.c (mono_class_inflate_generic_type): Take an additional
14298         `MonoGenericMethod * argument.  This is only non-NULL if we're
14299         inflating types for a generic method.   
14300         (mono_class_inflate_generic_signature): Renamed to
14301         inflate_generic_signature() and made static; take a
14302         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
14303         (inflate_generic_header): Take a `MonoGenericMethod *' argument
14304         instead of a `MonoGenericInst *' one.
14305         (mono_class_inflate_generic_method): Likewise.
14306
14307         * reflection.c (encode_generic_method_sig): Take a
14308         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
14309         (method_encode_methodspec): Likewise.
14310         (inflated_method_get_object): Likewise. 
14311
14312         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
14313         field with a `MonoGenericMethod *gmethod' one.  
14314
14315 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
14316
14317         * class.h (mono_class_has_parent): add parens to expansion
14318         so you can ! this.
14319
14320 2004-02-08  Martin Baulig  <martin@ximian.com>
14321
14322         * image.h (MonoImage): Removed `generics_cache'.
14323
14324         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
14325         instead of a `MonoType *' argument; removed the `inflate_methods'
14326         argument.  Don't inflate methods here.
14327
14328         * loader.c (find_method): If it's a generic instance, call
14329         mono_class_init() on the `sclass->generic_inst->generic_type'.
14330
14331         * metadata.c (mono_type_size): Make this work on uninitialized
14332         generic instances; call it on the `ginst->generic_type's class.
14333
14334         * reflection.c (mono_reflection_bind_generic_parameters): Call
14335         mono_class_from_generic() to create the `ginst->klass'.
14336
14337 2004-02-08  Martin Baulig  <martin@ximian.com>
14338
14339         * class.h (MonoClass): Changed type of `generic_inst' from
14340         `MonoType *' to `MonoGenericInst *'.
14341
14342 2004-02-08  Martin Baulig  <martin@ximian.com>
14343
14344         * icall.c (ves_icall_Type_BindGenericParameters): Just call
14345         mono_type_get_object(), this is now creating a `MonoGenericInst'
14346         for MONO_TYPE_GENERICINST.
14347         (ves_icall_MonoGenericInst_GetParentType): Likewise.
14348         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
14349
14350         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
14351         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
14352         (inflated_method_get_object): Added `MonoClass *refclass' argument.
14353         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
14354         and reflected type.
14355
14356         * reflection.h (MonoReflectionInflatedMethod): Removed
14357         `declaring_type' and `reflected_type'.
14358
14359 2004-02-08  Martin Baulig  <martin@ximian.com>
14360
14361         * class.h (MonoGenericInst): Added `MonoType *parent' and
14362         `MonoType **ifaces'.
14363
14364         * reflection.h (MonoReflectionGenericInst): Removed `klass',
14365         `parent' and `interfaces'.
14366
14367         * reflection.c (mono_reflection_bind_generic_parameters): Take a
14368         `MonoType *' argument and return a `MonoType *'.
14369
14370         * icall.c
14371         (ves_icall_MonoGenericInst_GetParentType): New interncall.
14372         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
14373
14374 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
14375
14376         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
14377         valuetype marshalling.
14378
14379 2004-02-06  Martin Baulig  <martin@ximian.com>
14380
14381         * class.c
14382         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
14383         (my_mono_class_from_generic_parameter): Likewise.
14384
14385 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
14386
14387         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
14388         contents of the symbol files lazily.
14389
14390         * object.h (MonoThread): Add 'name' and 'name_len' fields.
14391
14392         * threads.h threads.c icall.c: New icalls for getting and setting the
14393         threads name.
14394
14395 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
14396
14397         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
14398         Raise an exception when the domain is not found.
14399
14400 2004-02-03  Martin Baulig  <martin@ximian.com>
14401
14402         * reflection.c (mono_image_get_methodspec_token): Use the
14403         uninflated signature; fixes gen-33.
14404
14405 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
14406
14407         * gc.c threads.c: Make the finalizer thread a normal managed thread so
14408         the finalizer code can use thread functionality.
14409
14410         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
14411         the finalizer thread.
14412
14413         * threads.c: Make some functions more robust.
14414
14415         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
14416
14417         * metadata.h: Add new marshalling conventions.
14418
14419         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
14420         stringbuilder marshalling. Fixes #53700.
14421
14422         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
14423
14424         * reflection.c (mono_image_get_type_info): Save declarative security
14425         info.
14426
14427         * reflection.c (mono_image_get_field_info): Handle uninitialized 
14428         unmanaged fields as well.
14429
14430         * appdomain.c: Bump corlib version.
14431
14432 2004-02-01  Martin Baulig  <martin@ximian.com>
14433
14434         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
14435         method type arguments.  
14436
14437 2004-01-30  Duncan Mak  <duncan@ximian.com>
14438
14439         * marshal.h: Add prototype for
14440         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
14441         and
14442         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
14443         fix the build.
14444
14445 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
14446
14447         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
14448         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
14449
14450 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
14451
14452         * marshal.c (mono_marshal_get_native_wrapper): Add support for
14453         custom marshalling of valuetypes.
14454
14455         * marshal.c: Fix some warnings.
14456
14457 2004-01-29  Martin Baulig  <martin@ximian.com>
14458
14459         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
14460         for generic method parameters.
14461
14462         * reflection.c (method_encode_methodspec): Write the uninflated
14463         signature into the methodspec table.
14464         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
14465         is always the uninflated method.
14466         (reflection_methodbuilder_to_mono_method): Copy the generic
14467         parameters from the MethodBuilder into `header->gen_params'.
14468
14469 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
14470
14471         * class.c (mono_class_from_generic_parameter): Fix warning.
14472
14473 2004-01-27  Martin Baulig  <martin@ximian.com>
14474
14475         * class.c (mono_class_from_generic_parameter): Don't create
14476         `klass->methods' here.  
14477
14478 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
14479
14480         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
14481         extension since it does not work with libraries named lib<FOO>.dll.so.
14482
14483 2004-01-25  Martin Baulig  <martin@ximian.com>
14484
14485         * class.c (mono_class_inflate_generic_type): Added support for
14486         MONO_TYPE_GENERICINST.
14487
14488         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
14489         inflate methods on open constructed types.      
14490
14491 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14492
14493         * object.c: fire ProcessExit event in the root AppDomain after running
14494         Main. Fixes bug #53299.
14495
14496 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
14497
14498         * socket-io.c: include the new socket-wrappers.h header.
14499         Use the wrappers instead of the unix socket functions to make the code
14500         more clear.
14501
14502 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
14503
14504         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
14505
14506         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
14507         Fixes #22532.
14508
14509 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
14510
14511         * reflection.c (mono_image_create_pefile): Handle the case when the
14512         entry point is not a MethodBuilder.
14513
14514         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
14515         field to ReflectionMethod since it is not allways a builder.
14516
14517         * reflection.c (type_get_fully_qualified_name): New helper function to
14518         return the fully qualified name of a type.
14519
14520         * reflection.c (encode_marshal_blob): Always emit the fully qualified
14521         type name for custom marshallers.
14522
14523         * reflection.c (mono_marshal_spec_from_builder): Ditto.
14524
14525         * class.c (mono_class_setup_vtable): If a parent class already 
14526         implements an interface, use the implementing methods from that class.
14527         Fixes #53148.
14528
14529 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14530
14531         * threadpool.c: just return instead of ExitThread to allow for thread
14532         clean up earlier.
14533
14534 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
14535
14536         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
14537         when closing resource modules.
14538
14539         * reflection.c (mono_image_create_pefile): Handle the case when the
14540         entry point is not a MethodBuilder.
14541
14542         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
14543         field to ReflectionMethod since it is not allways a builder.
14544
14545 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
14546
14547         * marshal.c (mono_marshal_get_managed_wrapper): 
14548         mono_marshal_alloc takes native int so CONV_I
14549         the arg for 64bits.
14550
14551 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
14552
14553         * reflection.c (fixup_cattrs): New function to fixup the methoddef
14554         tokens in the cattr table. Fixes #53108.
14555
14556 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14557
14558         * loader.c: don't trim ".dll" before looking up in the config file.
14559         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
14560
14561 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
14562
14563         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
14564         Return the module which contains the resource as well.
14565         (ves_icall_System_Reflection_Module_Close): New icall.
14566
14567         * appdomain.c: Bump corlib version number.
14568
14569         * image.c (mono_image_addref): New public function.
14570
14571         * assembly.c: Call mono_image_addref.
14572
14573         * reflection.c (mono_module_get_object): Increase reference count of 
14574         the image.
14575
14576         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
14577         Fixes #22532.
14578
14579         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
14580         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
14581         proper exceptions on DllImport problems.
14582
14583 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
14584
14585         * class.c, metadata.c: eliminate CSIZE macro.
14586
14587 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
14588
14589         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
14590         * object.h: Added async_callback field in MonoAsyncResult.
14591         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
14592         * verify.c: Added async_callback in MonoAsyncResult layout.
14593
14594 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
14595
14596         * reflection.c (mono_reflection_get_custom_attrs): Add support
14597         for Modules.
14598
14599 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
14600
14601         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
14602         marshalling.
14603         (mono_marshal_method_from_wrapper): Add null pointer check.
14604
14605 2004-01-16  Martin Baulig  <martin@ximian.com>
14606
14607         * debug-mono-symfile.h: Set version number to 36 and reflect
14608         latest symbol writer changes.
14609
14610 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
14611
14612         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
14613         multi-dimensional arrays.
14614         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
14615         (mono_class_from_mono_type): Use bounded_array_class_get.
14616         
14617         * class.c (mono_bounded_array_class_get): New function which takes
14618         a 'bounded' bool argument to distinguish vectors from one dimensional
14619         arrays.
14620
14621         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
14622         bounded_array_class_get if the array has bounds.
14623
14624         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
14625         Search modules loaded using AssemblyBuilder:AddModule as well.
14626
14627 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14628
14629         * appdomain.c: increased corlib version.
14630         * filewatcher.c: removed g_print.
14631         * icall.c:
14632         (get_property_info): only allocate what is actually requested.
14633         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
14634
14635 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14636
14637         * Makefile.am: added filewatcher.[ch]
14638         * filewatcher.[ch]: FileSystemWatcher runtime support.
14639         * icall.c: added new FSW icalls.
14640
14641 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
14642
14643         * string-icalls.c: fix stringbuilder regression as suggested by
14644         Iain McCoy <iain@mccoy.id.au>.
14645
14646 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
14647
14648         * process.c (process_read_stringtable_block): Recognize '007f' as
14649         a language neutral stringtable block.
14650
14651 2004-01-12  Patrik Torstensson
14652
14653         * object.h (MonoStringBuilder) : Changed layout to support our
14654         new stringbuilder class.
14655         * marshal.c: Change marshalling to support the new layout of 
14656         string builder.
14657         * appdomain.c: increased version number because new layout of
14658         string builder.
14659
14660 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
14661
14662         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
14663         assembly name as an string instead of an AssemblyName, since it is
14664         easier to extract info from it.
14665
14666         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
14667         the culture subdirectories too. Fixes #52231.
14668
14669 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14670
14671         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
14672         It takes 2 new parameters with an optional name for the method to look
14673         for and case ignoring info.
14674
14675         * threadpool.c: removed unused variable.
14676
14677 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14678
14679         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
14680         It takes 2 new parameters with an optional name for the property to look
14681         for and case ignoring info.
14682         Fixes bug #52753.
14683
14684 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
14685
14686         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
14687         Fix #52451.
14688
14689 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14690
14691         * appdomain.c:
14692         * assembly.c: escape the uri before passing it to g_filename_from_uri.
14693         Fixes bug #52630.
14694
14695 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
14696
14697         * reflection.c: Add support for more than one unmanaged resource.
14698
14699         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
14700         in field->def_value, as done in all other cases.
14701
14702         * reflection.c (mono_reflection_get_custom_attrs): Add support for
14703         TypeBuilders.
14704
14705         * reflection.c (mono_reflection_create_runtime_class): Remove 
14706         errorneous assignment to klass->element_class, since it is already
14707         done in mono_reflection_setup_internal_class.
14708
14709 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14710
14711         * gc.c: added missing LeaveCriticalSection.
14712         * icall.c: indented a couple of lines.
14713         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
14714         if we call EndInvoke inside a callback. Fixes bug #52601.
14715
14716 2004-01-07  Martin Baulig  <martin@ximian.com>
14717
14718         * mono-debug-debugger.h
14719         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
14720
14721 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
14722
14723         * appdomain.c: Use messages in NotImplementedException.
14724
14725         * exception.c (mono_get_exception_not_implemented): Now this takes
14726         a message argument.
14727
14728         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
14729         exception instead of g_asserting an aborting when something is not
14730         implemented.
14731
14732         Add some inline docs.
14733
14734 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
14735
14736         * reflection.h: Update after changes to object layout.
14737
14738         * reflection.c: Implement saving of unmanaged aka win32 resources.
14739
14740         * appdomain.c: Bump version number.
14741
14742         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
14743         Handle missing domains gracefully.
14744
14745 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
14746
14747         * file-io.c : On Windows, there are much more invalid_path_chars.
14748
14749 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
14750
14751         * class.h, object.c: prepare for GetType () speedup.
14752
14753 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
14754
14755         * profiler.c: workaround for --profile null reference exception on
14756           cygwin. Patch by Patrik Torstensson.
14757
14758 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
14759
14760         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
14761         make work for unaligned access.
14762
14763 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
14764
14765         * class.c: small cleanup (class->fields [i] -> field).
14766         * image.c: check address of metadata is valid.
14767
14768 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
14769
14770         * assembly.h assembly.c (mono_assembly_loaded): New public function to
14771         search the list of loaded assemblies.
14772
14773         * reflection.c (mono_reflection_type_from_name): Use 
14774         mono_assembly_loaded instead of mono_image_loaded.
14775
14776         * reflection.c: Fix warnings.
14777
14778 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
14779
14780         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
14781         is dynamic. This is needed since an assembly can contain both dynamic and
14782         non-dynamic images.
14783
14784         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
14785         assembly->dynamic.
14786
14787         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
14788
14789         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
14790         to store modules loaded using AddModule.
14791
14792         * reflection.c (mono_image_fill_file_table): Generalize this so it works
14793         on Modules.
14794
14795         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
14796
14797         * reflection.c (mono_image_fill_export_table_from_module): New function to
14798         fill out the EXPORTEDTYPES table from a module.
14799
14800         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
14801         into a separate function. Also handle loaded non-dynamic modules.
14802
14803         * reflection.c (mono_image_basic_init): Fix memory allocation.
14804
14805         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14806
14807         * assembly.c (mono_assembly_load_references): Make this public.
14808
14809 2003-12-19  Martin Baulig  <martin@ximian.com>
14810
14811         * class.c (mono_class_initialize_generic): Made this static, take
14812         a `MonoGenericInst *' instead of a `MonoClass *'.
14813         (mono_class_from_generic): Call mono_class_initialize_generic()
14814         unless we're already initialized or being called from
14815         do_mono_metadata_parse_generic_inst().
14816
14817         * class.h (MonoGenericInst): Added `initialized' and
14818         `init_pending' flags.
14819
14820         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
14821         `mono_class_init (gklass)' or mono_class_initialize_generic()
14822         here; set `generic_inst->init_pending' while parsing the
14823         `type_argv'.
14824
14825 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
14826
14827         * locales.c: include string.h for memxxx prototypes
14828
14829 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
14830
14831         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
14832         constructor when accessing literal fields.
14833
14834 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
14835
14836         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14837
14838         * reflection.c (assembly_add_resource_manifest): New function to fill
14839         the MANIFESTRESOURCE table.
14840
14841         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
14842
14843         * reflection.h: Update to changes in class layout.
14844
14845         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
14846         Reenable call to mono_runtime_is_shutting_down ().
14847
14848         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
14849         determine if the runtime is shutting down.
14850
14851 2003-12-16  Jackson Harper <jackson@ximian.com>
14852
14853         * icall.c: comment out call to mono_runtime_is_shutting_down to
14854         fix build.
14855         
14856 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
14857
14858         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
14859         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
14860
14861 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
14862
14863         * reflection.c: move definition of swap_with_size
14864         to before its first call
14865
14866 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
14867
14868         * appdomain.c (mono_runtime_is_shutting_down): New public function.
14869
14870         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
14871         icall.
14872
14873         * object.c: Fix warnings.
14874
14875         * icall.c (ves_icall_Type_Get...): Only consider inherited static
14876         members if FlattenHierarchy is set.
14877
14878         * reflection.c (mono_image_add_decl_security): New function to emit
14879         declarative security.
14880
14881         * reflection.h reflection.c: Add support for declarative security.
14882
14883         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
14884         
14885 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
14886
14887         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
14888         
14889         * appdomain.c verify.c: Moved corlib version checking into its own
14890         function in appdomain.c since it needs to create vtables etc.
14891
14892 2003-12-13  Patrik Torstensson <p@rxc.se>
14893
14894         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
14895         instead of unwrapped server.
14896
14897 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
14898
14899         * verify.c (check_corlib): Fix field index.
14900
14901 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
14902
14903         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
14904         GetGacPath icall.
14905
14906 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
14907
14908         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
14909         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
14910         cope with sizeof(size_t) != sizeof(guint32).
14911
14912 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14913
14914         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
14915         in case of failure.
14916
14917 2003-12-10  Mark Crichton <crichton@gimp.org>
14918
14919         * icall.c: removed the GetNonZeroBytes.  We now handle this case
14920         in managed code.
14921
14922         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
14923
14924 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
14925
14926         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
14927         marked as deleted.
14928
14929 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
14930
14931         * verify.c (check_corlib): Handle the case when the version field is 
14932         initialized by a static constructor.
14933
14934 2003-12-08  Patrik Torstensson  <p@rxc.se>
14935
14936     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
14937
14938 2003-12-08  Martin Baulig  <martin@ximian.com>
14939
14940         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
14941         a MonoReflectionGenericParameter, also take the parameter index
14942         and name as arguments.
14943         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
14944         (ves_icall_MonoGenericParam_initialize): New interncall.
14945         (ves_icall_Type_make_byref_type): New interncall.
14946
14947         * reflection.h (MonoReflectionGenericParam): Derive from
14948         MonoReflectionType, not just from MonoObject.  Added `refobj' and
14949         `index' fields.
14950
14951         * reflection.c (mono_reflection_define_generic_parameter): Create
14952         and return a new MonoReflectionGenericParam; don't initialize the
14953         constraints here.
14954         (mono_reflection_initialize_generic_parameter): New public method;
14955         initializes the constraints and creates the `param->pklass'.
14956
14957 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
14958
14959         * reflection.h reflection.c: Use the new fields 'num_types', 
14960         'num_fields' and 'num_methods' to track the number of types etc.
14961
14962         * verify.c (check_corlib): Check corlib version number.
14963
14964 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
14965
14966         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
14967         function works on all methods.
14968
14969 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
14970
14971         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
14972         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
14973         the custom_type_info flag of the transparent proxy.
14974         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
14975         objects that supports IRemotingTypeInfo.
14976         * object.h: Added custom_type_info field in transparent proxy.
14977
14978 2003-12-06  Martin Baulig  <martin@ximian.com>
14979
14980         * class.c (mono_class_create_from_generic): Removed.
14981         (mono_class_from_generic): Check `ginst->klass' before doing
14982         anything else.  This is important to fully support "recursive"
14983         generic types.
14984
14985         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
14986         empty `generic_inst->klass' before doing anything else.
14987
14988 2003-12-06  Dick Porter  <dick@ximian.com>
14989
14990         * verify.c: 
14991         * object.h:
14992         * icall.c:
14993         * locales.c: Use C structs to access class fields.  Don't do a
14994         conversion between MonoString and UChar because both are
14995         platform-endian UTF-16.  Compare now takes startindex and count
14996         parameters.  Add a char overload for IndexOf.  Speed up the
14997         invariant string IndexOf.
14998
14999 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
15000
15001         * Makefile.am (monosn_LDADD): Fix parallel build.
15002
15003 2003-12-04  Martin Baulig  <martin@ximian.com>
15004
15005         * icall.c
15006         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
15007         (ves_icall_Type_make_array_type): New interncall.       
15008
15009 2003-12-04  Martin Baulig  <martin@ximian.com>
15010
15011         * locales.c: also change it in the !HAVE_ICU case.
15012
15013 2003-12-04  Dick Porter  <dick@ximian.com>
15014
15015         * icall.c:
15016         * locales.c: construct_compareinfo is now in CompareInfo, not
15017         CultureInfo.
15018
15019 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
15020
15021         * image.c (mono_image_load_file_for_image): Cache loaded images in the
15022         image->files array.
15023
15024         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
15025         table as well.
15026
15027         * assembly.c (mono_assembly_load_references): Only load references
15028         once.
15029
15030         * class.c (mono_class_from_name): Avoid linear search of the 
15031         EXPORTEDTYPE table.
15032
15033         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
15034
15035 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
15036
15037         * image.h (MonoImage): Add 'field_cache' field.
15038
15039         * loader.c (mono_field_from_token): Cache field lookups.
15040         
15041         * reflection.c (mono_module_get_object): Fix name property.
15042
15043         * icall.c (ves_icall_get_enum_info): Update after changes to 
15044         mono_metadata_get_constant_index ().
15045
15046         * icall.c: Get rid of get_type_info icall, use a separate icall for
15047         each type property to avoid needless memory allocations. Fixes #51514.
15048
15049         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
15050         to avoid needless binary searches.
15051
15052         * class.c (class_compute_field_layout): Move the initialization of
15053         field->def_value to mono_class_vtable ().
15054
15055         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
15056         non-corlib types.
15057
15058         * object.c (mono_object_allocate): Make it inline.
15059
15060         * object.c (mono_object_allocate_spec): Make it inline.
15061         
15062 2003-12-02  Dick Porter  <dick@ximian.com>
15063
15064         * locales.c (create_NumberFormat): NumberFormatInfo construction.
15065         Patch by Mohammad DAMT (mdamt@cdl2000.com).
15066
15067 2003-12-01  Dick Porter  <dick@ximian.com>
15068
15069         * threads.c: Fix signature and call in CreateMutex and
15070         CreateEvent.
15071
15072 2003-12-01  Dick Porter  <dick@ximian.com>
15073
15074         * icall.c: 
15075         * locales.c: Implement string compares and searching
15076
15077         * object.h: Add extra Thread field
15078
15079 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
15080
15081         * reflection.c (fixup_method): Add support for MonoCMethod.
15082
15083 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
15084
15085         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
15086
15087         * reflection.c (assembly_name_to_aname): Allow extra characters in
15088         assembly names. Fixes #51468.
15089
15090 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
15091
15092         * exception.c (mono_exception_from_name_domain): New helper function.
15093
15094         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
15095         exception object in the correct domain.
15096
15097         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
15098         formatting + make a copy a the input data.
15099
15100         * loader.c (mono_get_method_from_token): Methods which contain
15101         native code do not have entries in the ImplMap.
15102
15103         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
15104         Thanks to Gonzalo for spotting this.
15105         
15106         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
15107         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
15108
15109         * assembly.h (mono_assembly_load_from): Split the second part of 
15110         assembly loading into a new public function.
15111
15112         * exception.h (mono_get_exception_bad_image_format): New function.
15113
15114 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
15115
15116         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
15117         Enumerate all modules inside a dynamic assembly. Fixes #51293.
15118         
15119         * icall.c: Add new icall for creating dynamic methods.
15120
15121         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
15122
15123         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
15124
15125         * reflection.c (mono_reflection_create_dynamic_method): New icall to
15126         create a dynamic method.
15127
15128         * reflection.c (resolve_object): New helper function.
15129
15130         * reflection.c: Generalize ReflectionMethodBuilder and the functions
15131         which manipulate it so they can also work on dynamic methods.
15132
15133         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
15134         creating the MonoReflectionMethodAux structure if it is not needed.
15135         
15136         * reflection.h verify.c: Update after changes to object layout.
15137
15138         * reflection.c (method_builder_encode_signature): Fix compilation on
15139         gcc 2.95.x.
15140
15141 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
15142
15143         * appdomain.h: Added support for context static fields. Added static_data
15144           field to MonoAppContext and renamed thread_static_fields to a more
15145           generic special_static_fields in MonoAppDomain, since it can now contain
15146           context static fields.
15147         * domain.c: Updated hashtable name.
15148         * object.c: Replaced field_is_thread_static() for a more generic
15149           field_is_special_static() which also checks for context static attribute.
15150           In mono_class_vtable(), added support for static context fields.
15151         * threads.c: Changed methods that manage thread static fields to more
15152           generic methods so they can be reused both for thread and context static
15153           data.
15154         * threads.h: Declared some new methods.
15155
15156 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
15157
15158         * reflection.h: Update after changes to the managed types.
15159
15160         * reflection.c (encode_custom_modifiers): New helper function.
15161
15162         * reflection.c (method_encode_signature): Emit custom modifiers.
15163
15164         * reflection.c (field_encode_signature): Emit custom modifiers.
15165
15166 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
15167
15168         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
15169
15170         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
15171         implementation.
15172
15173         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
15174         icall.
15175
15176         * object.c (mono_field_get_value_object): New function.
15177
15178         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
15179         specific.
15180
15181 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
15182
15183         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
15184         return a preallocated out-of-memory exception instance.
15185
15186         * object.c (out_of_memory): Use the new function.
15187
15188         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
15189         flag is before the custom modifiers. Fixes #49802.
15190
15191 2003-11-16  Martin Baulig  <martin@ximian.com>
15192
15193         * class.c (mono_class_is_open_constructed_type): Implemented the
15194         MONO_TYPE_GENERICINST case.
15195
15196 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
15197
15198         * assembly.c (mono_assembly_fill_assembly_name): New function to
15199         fill out the MonoAssemblyName structure.
15200         (mono_assembly_open): Use the new function.
15201
15202         * icall.c (fill_reflection_assembly_name): New helper function.
15203
15204         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
15205         new function.
15206
15207         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
15208
15209 2003-11-15  Martin Baulig  <martin@ximian.com>
15210
15211         * class.c (mono_class_is_open_constructed_type): New public
15212         function; checks whether a type is an open constructed type,
15213         ie. whether it still contains type parameters.
15214         (mono_class_inflate_generic_type): If we're a type parameter and
15215         the inflated type is also a MONO_TYPE_(M)VAR, return the original
15216         type.
15217
15218         * class.h (MonoGenericInst): Added `guint32 is_open'.
15219
15220         * loader.c (method_from_methodspec): Check whether we're an open
15221         or closed constructed type and set `ginst->is_open'.
15222
15223         * reflection.c (mono_reflection_bind_generic_parameters): Check
15224         whether we're an open or closed constructed type and set
15225         `ginst->is_open'.
15226         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
15227         from open constructed types.
15228
15229 2003-11-15  Martin Baulig  <martin@ximian.com>
15230
15231         * reflection.c (mono_reflection_bind_generic_parameters): If we're
15232         a generic instance (instead of a generic type declaration) with
15233         unbound generic parameters, bind them to our actual types.
15234
15235 2003-11-14  Martin Baulig  <martin@ximian.com>
15236
15237         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
15238
15239         * reflection.c (mono_reflection_bind_generic_parameters): If we're
15240         an interface type, populate `res->interfaces' with instantiated
15241         versions of all the interfaces we inherit.
15242
15243 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
15244
15245         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
15246         when MONO_PATH is set but doesn't contain the install dir.
15247
15248 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15249
15250         * icall.c:
15251         (ves_icall_Type_GetInterfaces): don't return an interface twice when
15252         it's also implemented in base classes. Fixes bug #50927.
15253
15254 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
15255
15256         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
15257         if this method is called from a finalizer. Fixes #50913.
15258
15259 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
15260
15261         * threads.c: Implement VolatileRead/VolatileWrite
15262
15263         * icall.c: Add new icalls for VolatileRead/VolatileWrite
15264
15265 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15266
15267         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
15268         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
15269         2.95.3.
15270
15271         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
15272         from Peter Ross (pro@missioncriticalit.com).
15273         
15274 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
15275
15276         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
15277
15278 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15279
15280         * assembly.c (mono_assembly_load_references): Disable check because it
15281         triggers on older corlibs which lots of people have.
15282
15283 2003-11-12  Jackson Harper  <jackson@ximian.com>
15284
15285         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
15286         load corlib.dll if mscorlib.dll is not found.
15287         * assembly.h: Remove corlib name define.
15288         * class.c:
15289         * domain.c:
15290         * image.c: Change corlib name to mscorlib.
15291         
15292 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15293
15294         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
15295
15296 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
15297
15298         * appdomain.h: Added loader_optimization here to sync with the C#
15299         code, and add disallow_binding_redirects field.
15300
15301 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
15302
15303         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
15304
15305         * reflection.c (mono_image_build_metadata): Fix crash on modules
15306         with no types.
15307
15308         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
15309
15310         * icall.c (ves_icall_get_method_info): Return callingConvention as
15311         well.
15312
15313         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
15314         namespaces from the EXPORTEDTYPE table as well.
15315
15316         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
15317         from all modules inside the assembly.
15318         
15319 2003-11-11  Martin Baulig  <martin@ximian.com>
15320
15321         * reflection.c (mono_reflection_bind_generic_parameters): Make
15322         this work for interfaces.
15323
15324 2003-11-11  Martin Baulig  <martin@ximian.com>
15325
15326         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
15327
15328 2003-11-11  Martin Baulig  <martin@ximian.com>
15329
15330         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
15331         "MonoInflatedMethod" and "MonoInflatedCtor".
15332
15333 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
15334
15335         * reflection.c (resolution_scope_from_image): Use the assembly table
15336         from the manifest module, since other modules don't have it.
15337
15338         * debug-helpers.c (mono_type_full_name): New helper function.
15339
15340         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
15341
15342         * image.c (mono_image_load_file_for_image): New public function which
15343         is a replacement for the load_file_for_image in class.c.
15344
15345         * assembly.c (mono_assembly_load_module): A wrapper for the function
15346         above which does assembly association and reference loading too.
15347
15348         * class.c (mono_class_from_name): Call mono_assembly_load_module.
15349
15350 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15351
15352         * appdomain.c: not all of the attributes for the full assembly name
15353         are required and the order doesn't matter. Fixes bug #50787.
15354
15355 2003-11-10  Dick Porter  <dick@ximian.com>
15356
15357         * locales.c: Use platform-endian UTF16
15358
15359 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
15360
15361         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
15362         
15363 2003-11-10  Martin Baulig  <martin@ximian.com>
15364
15365         * metadata.c
15366         (mono_metadata_load_generic_params): Make this actually work.
15367
15368         * reflection.c (mono_reflection_bind_generic_parameters): If our
15369         parent is a generic instance, pass all the `types' to it, no
15370         matter whether it has the same number of type parameters or not.
15371
15372 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
15373
15374         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
15375
15376         * assembly.c (mono_assembly_load_references): Move the image<->assembly
15377         assignment code to this function so it gets called recursively for all
15378         modules.
15379
15380         * image.c (load_modules): Remove the assembly assignment since it is
15381         now done by mono_assembly_load_references.
15382         
15383         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
15384         Add 'module' argument.
15385         (mono_module_get_types): New helper function.
15386         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
15387
15388 2003-11-08  Martin Baulig  <martin@ximian.com>
15389
15390         * class.c (mono_class_inflate_generic_method): Interface method
15391         don't have a header.
15392
15393         * reflection.c (mono_image_get_methodspec_token): Take an
15394         additional `MonoGenericInst *' argument instead of reading it from
15395         the header; this is necessary to support interfaces.
15396         (mono_image_create_token): Pass the `MonoGenericInst *' from the
15397         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
15398         (inflated_method_get_object): Take an additional `MonoGenericInst *'
15399         argument.
15400
15401         * reflection.h (MonoReflectionInflatedMethod): Added
15402         `MonoGenericInst *ginst'.
15403
15404 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
15405
15406         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
15407
15408 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
15409
15410         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
15411
15412 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
15413
15414         * reflection.c 
15415         (reflection_methodbuilder_from_method_builder):
15416         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
15417         initialize a ReflectionMethodBuilder structure.
15418         (mono_image_get_methodbuilder_token):
15419         (mono_image_get_ctorbuilder_token): New functions to emit memberref
15420         tokens which point to types in another module inside the same assembly.
15421
15422         * reflection.c: Use the new helper functions.
15423         
15424         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
15425
15426         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
15427         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
15428
15429         * reflection.c (resolution_scope_from_image): Emit a moduleref if
15430         neccesary.
15431
15432         * reflection.c (mono_image_build_metadata): Emit metadata only for the
15433         current module. Emit the manifest only for the main module.
15434
15435         * reflection.c (mono_image_create_token): Add assertion when a 
15436         memberref needs to be created.
15437
15438         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
15439
15440         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
15441         larger buffer for the custom attribute blob. Fixes #50637.
15442         
15443 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15444
15445         * threadpool.c: notify listener on async processing handles after
15446         invoking the async callback. Thanks to Zoltan.
15447
15448 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15449
15450         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
15451         avoid code duplication.
15452
15453         * reflection.h (MonoDynamicImage): New type which is currently unused,
15454         but will be used through the ref.emit code in place of 
15455         MonoDynamicAssembly.
15456
15457         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
15458         object layout.
15459
15460         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
15461         a MonoDynamicImage instead of just a MonoImage.
15462         
15463         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
15464         icalls to ModuleBuilder but keep their semantics, so they will work
15465         with moduleb->assemblyb. This will change later.
15466         
15467 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15468
15469         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
15470         object layout.
15471
15472         * reflection.c (mono_image_build_metadata): Avoid creation of a default
15473         main module, since it is now done by the managed code.
15474
15475 2003-11-03  Martin Baulig  <martin@ximian.com>
15476
15477         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
15478         `ginst->klass' here.
15479         (method_encode_methodspec): Don't use the `ginst->generic_method's
15480         klass if it's a generic instance, use `ginst->klass' in this case.
15481
15482 2003-11-03  Martin Baulig  <martin@ximian.com>
15483
15484         * reflection.c (mono_image_get_generic_method_param_info):
15485         Removed, use mono_image_get_generic_param_info() instead.
15486         (mono_image_get_type_info): Write the GenericParam table before
15487         the Method table.  This is neccessary because in the GenericParam
15488         table, type parameters of the class (ie. '!0' etc.) must come
15489         before the ones from its generic methods (ie. '!!0' etc).
15490
15491 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15492
15493         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
15494
15495 2003-11-02  Martin Baulig  <martin@ximian.com>
15496
15497         * reflection.c (create_generic_typespec): Take a
15498         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
15499         the generic parameters from it.
15500
15501 2003-11-02  Martin Baulig  <martin@ximian.com>
15502
15503         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
15504         instead of a `MonoClassField *' since we just need the type.
15505         (create_generic_typespec): New static function.  Creates a
15506         TypeSpec token for a generic type declaration.
15507         (mono_image_get_generic_field_token): New static function.
15508         (mono_image_create_token): If we're a FieldBuilder in a generic
15509         type declaration, call mono_image_get_generic_field_token() to get
15510         the token.
15511
15512 2003-11-02  Martin Baulig  <martin@ximian.com>
15513
15514         * reflection.h
15515         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
15516         `MonoReflectionGenericInst *declaring_type' and
15517         `MonoReflectionGenericInst *reflected_type' fields.
15518
15519         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
15520         `MonoReflectionGenericInst *declaring_type' and a
15521         `MonoReflectionGenericInst *reflected_type' argument instead of a
15522         single `MonoReflectionGenericInst *type' one.  Set
15523         `res->declaring_type' and `res->reflected_type' from them.
15524         (mono_reflection_inflate_field): Likewise.      
15525
15526 2003-11-02  Martin Baulig  <martin@ximian.com>
15527
15528         * class.c (mono_class_setup_vtable): Don't store generic methods
15529         in the vtable.  
15530
15531 2003-11-02  Martin Baulig  <martin@ximian.com>
15532
15533         * reflection.h (MonoReflectionGenericInst): Added
15534         `MonoReflectionType *declaring_type'.
15535
15536         * reflection.c (mono_reflection_bind_generic_parameters): Use
15537         `if (tb->parent)' instead of `klass->parent'.
15538
15539 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
15540
15541         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
15542         with an empty ASSEMBLY table.
15543
15544         * reflection.c (mono_image_build_metadata): Avoid using the same loop
15545         variable in the inner and outer loops.
15546
15547 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
15548
15549         * metadata.h (mono_metadata_make_token): Put parentheses around macro
15550         argument.
15551
15552         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
15553         
15554         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
15555         icalls. Instead, do everything in managed code. This is needed since
15556         it is hard to restore the original domain etc. in unmanaged code in the
15557         presence of undeniable exceptions.
15558
15559         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
15560         New icalls to push and pop appdomain refs.
15561
15562 2003-10-31  Martin Baulig  <martin@ximian.com>
15563
15564         * class.c (inflate_generic_type): Renamed to
15565         mono_class_inflate_generic_type() and made it public.
15566
15567         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
15568         New interncall.
15569
15570         * loader.c (mono_field_from_memberref): Also set the retklass for
15571         typespecs.
15572
15573         * fielder.c (mono_image_get_inflated_field_token): New static
15574         method; creates a metadata token for an inflated field.
15575         (mono_image_create_token, fixup_method): Added support for
15576         "MonoInflatedField".
15577         (fieldbuilder_to_mono_class_field): New static function.
15578         (mono_reflection_inflate_field): New public function.
15579
15580         * reflection.h
15581         (MonoReflectionGenericInst): Added `MonoArray *fields'.
15582         (MonoReflectionInflatedField): New typedef.     
15583
15584 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
15585
15586         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
15587         for Solaris and other platforms without s6_addr16
15588
15589 2003-10-30  Martin Baulig  <martin@ximian.com>
15590
15591         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
15592         argument instead of two.
15593         (mono_class_inflate_generic_signature): Likewise.
15594         (inflate_generic_header): Likewise.
15595         (mono_class_inflate_generic_method): Likewise.  In addition, if
15596         `ginst->klass' is set, it becomes the new `method->klass'.
15597
15598         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
15599         field.
15600
15601         * reflection.c (encode_generic_method_sig): Write a 0xa as the
15602         first byte. [FIXME]
15603         (method_encode_methodspec): If we have generic parameters, create
15604         a MethodSpec instead of a MethodRef.
15605         (fixup_method): Added support for "MonoInflatedMethod" and
15606         "MonoInflatedCtor".
15607         (mono_image_create_token): Added support for "MonoInflatedMethod"
15608         and "MonoInflatedCtor".
15609         (inflated_method_get_object): New static function; returns a
15610         managed "System.Reflection.MonoInflatedMethod" object.
15611         (mono_reflection_bind_generic_method_parameters): Return a
15612         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
15613         (mono_reflection_inflate_method_or_ctor): Likewise.
15614         (mono_image_get_generic_method_param_info): Initialize unused
15615         fields to zero.
15616         (mono_image_get_generic_param_info): Likewise.
15617
15618         * reflection.h (MonoReflectionInflatedMethod): New public
15619         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
15620         "S.R.MonoInflatedCtor" classes.
15621
15622         * loader.c (method_from_memberref): If we're a TypeSpec and it
15623         resolves to a generic instance, inflate the method.
15624
15625 2003-10-28  Dick Porter  <dick@ximian.com>
15626
15627         * object.c (mono_runtime_run_main): Convert command-line arguments
15628         into utf8, falling back to the user's locale encoding to do so.
15629
15630 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
15631
15632         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
15633         at this time.
15634
15635         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
15636
15637         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
15638         up icalls at method definition time. Partially fixes #33569.
15639
15640 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
15641
15642         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
15643         marshalling of arrays. Fixes #50116.
15644
15645         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
15646
15647         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
15648         points to a vtable in the dying appdomain.
15649
15650         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
15651         listeners into unmanaged code inside the lock.
15652
15653         * object.c (mono_class_vtable): Turn off typed allocation in non-root
15654         domains and add some comments.
15655
15656 2003-10-25  Martin Baulig  <martin@ximian.com>
15657
15658         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
15659
15660         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
15661
15662         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
15663         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
15664         currently parsing.  Create the generic class and store it in
15665         `generic_inst->klass' before parsing the type arguments.  This is
15666         required to support "recursive" definitions; see mcs/tests/gen-23.cs
15667         for an example.
15668         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
15669         to support recursive typespec entries.
15670
15671         * class.c (mono_class_setup_parent): If our parent is a generic
15672         instance, we may get called before it has its name set.
15673         (mono_class_from_generic): Splitted into
15674         mono_class_create_from_generic() and mono_class_initialize_generic().
15675
15676 2003-10-25  Martin Baulig  <martin@ximian.com>
15677
15678         * icall.c (ves_icall_Type_BindGenericParameters): Return a
15679         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
15680         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
15681         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
15682
15683         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
15684         (create_typespec): Likewise.
15685         (mono_reflection_bind_generic_parameters): Return a
15686         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
15687         (mono_reflection_inflate_method_or_ctor): New public function.
15688
15689         * reflection.h (MonoReflectionGenericInst): New typedef.        
15690
15691 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
15692
15693         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
15694         inside the domain lock. Fixes #49993.
15695         
15696         * object.c (mono_class_vtable): When typed allocation is used, 
15697         allocate vtables in the GC heap instead of in the mempool, since the
15698         vtables contain GC descriptors which are used by the collector even
15699         after the domain owning the mempool is unloaded.
15700
15701         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
15702
15703         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
15704         reflect what it does. Also invalidate mempools instead of freeing
15705         them if a define is set.
15706
15707         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
15708         of the appdomain.
15709         
15710         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
15711         hold the finalizable objects in this domain.
15712
15713         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
15714         appdomain.
15715
15716         * appdomain.c (mono_domain_set): New function to set the current
15717         appdomain, but only if it is not being unloaded.
15718
15719         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
15720         appdomain which is being unloaded.
15721         
15722         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
15723         unloading of the root appdomain.
15724
15725         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
15726         icall to execute a method in another appdomain. Intended as a 
15727         replacement for InternalSetDomain, which can confuse the code 
15728         generation in the JIT.
15729
15730         * appdomain.c (mono_domain_is_unloading): New function to determine
15731         whenever an appdomain is unloading.
15732
15733         * appdomain.c (mono_domain_unload): New function to correctly unload
15734         an appdomain.
15735
15736         * assembly.c (mono_assembly_load_references): Check that an assembly
15737         does not references itself.
15738
15739         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
15740         domain manually, it asks the finalizer thread to do it, then waits for
15741         the result. Also added a timeout.
15742
15743         * icall.c: Register the new icalls.
15744
15745         * threads.h threads.c: Export the mono_gc_stop_world and 
15746         mono_gc_start_world functions.
15747         
15748         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
15749         function to fill out the mempool with 0x2a.
15750
15751 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
15752
15753         * reflection.h (MonoReflectionMethodAux): New structure to store
15754         information which is rarely used, thus is not in the MonoMethod
15755         structure.
15756
15757         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
15758         store the aux info.
15759
15760         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
15761         and marshalling info into the aux structure.
15762
15763         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
15764         from the aux structure.
15765
15766         * loader.c (mono_method_get_param_names): Retrieve the param names from
15767         the aux structure.
15768         
15769 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
15770
15771         * exception.h exception.c: Add AppDomainUnloadedException && fix 
15772         warning.
15773
15774 2003-10-21  Dick Porter  <dick@ximian.com>
15775
15776         * socket-io.c
15777         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
15778         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
15779
15780 2003-10-21  Martin Baulig  <martin@ximian.com>
15781
15782         * reflection.c (mono_reflection_bind_generic_parameters):
15783         `klass->parent' is NULL for interfaces.
15784
15785 2003-10-21  Martin Baulig  <martin@ximian.com>
15786
15787         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
15788
15789 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
15790
15791         * exception.c (mono_exception_from_name_msg): New helper function for
15792         creating exceptions and initializing their message field.
15793
15794         * exception.c: Simplify functions using the new helper.
15795
15796         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
15797         New function.
15798
15799         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
15800         mono_raise_exception, since otherwise gcc doesn't generate the function
15801         epilog for raise_exception, confusing the stack unwinding in the JIT.
15802         Fixes #45043.
15803
15804         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
15805         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
15806         Fixes #49499.
15807
15808 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15809
15810         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
15811         utf8.
15812
15813 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
15814
15815         * icall.c: Removed GetUninitializedObject method because
15816           AllocateUninitializedClassInstance does the same.
15817
15818 2003-10-18  Martin Baulig  <martin@ximian.com>
15819
15820         * class.c (inflate_generic_signature): Renamed to
15821         mono_class_inflate_generic_signature() and made it public.
15822         (my_mono_class_from_generic_parameter): New static function; if we
15823         don't already have the generic parameter's MonoClass, create a
15824         very simple one which is just used internally in the runtime and
15825         not passed back to managed code.
15826
15827         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
15828
15829         * metadata.h (MonoMethodSignature): Moved the
15830         `MonoGenericParam *gen_params' to the MonoMethodHeader.
15831         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
15832
15833         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
15834         ves_icall_MonoMethod_GetGenericArguments(); this is now an
15835         interncall on the MonoMethod class, not on MethodInfo.
15836         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
15837         calling mono_reflection_bind_generic_method_parameters() directly.
15838
15839         * loader.c (mono_method_get_signature): If this is a MethodSpec;
15840         return the already computed `method->signature'.
15841         (method_from_methodspec): New static function to load a method
15842         from a MethodSpec entry.
15843         (mono_get_method_from_token): Call the new method_from_methodspec()
15844         for MethodSpec tokens.  
15845         (mono_get_method_from_token): If we're a generic method, load the
15846         type parameters.
15847
15848         * reflection.c (mono_image_get_memberref_token): Allow
15849         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
15850         table.
15851         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
15852         (mono_image_create_token): First check whether it's a generic
15853         method (so we'd need to create a MethodSpec), then do the other
15854         two alternatives.
15855         (mono_reflection_bind_generic_method_parameters): Return a
15856         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
15857         called directly from the interncall.
15858
15859 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
15860
15861         * reflection.c (load_public_key): Move loading of the public key
15862         into managed code.
15863
15864         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
15865
15866         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
15867         fields.
15868
15869         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
15870         culture, hash_alg and public_key. Fixes #49555.
15871
15872 2003-10-17  Martin Baulig  <martin@ximian.com>
15873
15874         * class.h (MonoGenericInst): Moved this declaration here and added
15875         `MonoMethod *generic_method'.
15876
15877         * icall.c
15878         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
15879         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
15880
15881         * metadata.c (mono_metadata_type_equal): Two types of
15882         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
15883         index; ie. don't compare the address of the `MonoGenericParam'
15884         structure.
15885         (mono_metadata_load_generic_params): Removed the `MonoMethod
15886         *method' argument.
15887
15888         * metadata.h (MonoGenericInst): Moved declaration to class.h.
15889         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
15890
15891         * reflection.c (method_encode_signature): Encode the number of
15892         generic parameters.
15893         (encode_generic_method_sig): New static function.
15894         (method_encode_methodspec): New static function; creates an entry
15895         in the MethodSpec table for a generic method.
15896         (mono_image_get_methodspec_token): New static function.
15897         (mono_image_create_token): Call mono_image_get_methodspec_token()
15898         for generic methods.
15899         (mono_reflection_bind_generic_method_parameters): New public
15900         function.  Instantiates a generic method.
15901
15902 2003-10-16  Martin Baulig  <martin@ximian.com>
15903
15904         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
15905         *gen_params' here from MonoMethodHeader.
15906
15907         * metadata.c (mono_metadata_parse_method_signature): If we have
15908         generic parameters, initialize `method->gen_params' and then set
15909         the correct `type->data.generic_param' in all the parameters.
15910
15911 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
15912
15913         * threads.c (mono_threads_get_default_stacksize): New function to 
15914         return the default stacksize.
15915
15916         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
15917         termination of the finalizer thread, since the previous method had
15918         race conditions. Fixes #49628.
15919
15920         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
15921         as for the other managed threads.
15922
15923 2003-10-16  Martin Baulig  <martin@ximian.com>
15924
15925         * class.c (inflate_generic_signature): Copy `generic_param_count'
15926         and `gen_params'.
15927
15928         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
15929         New interncall.
15930
15931         * metadata.c (mono_metadata_parse_method_signature): Actually set
15932         the `method->generic_param_count' here.
15933         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
15934
15935 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
15936
15937         * object.h: Add a new field to TypedRef to simplify the implementation
15938         of the REFANY opcodes in the JIT.
15939
15940         * icall.c: Make use of the new field.
15941
15942         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
15943         dynamically.
15944
15945 2003-10-15  Martin Baulig  <martin@ximian.com>
15946
15947         * class.c (mono_class_from_gen_param): Renamed to
15948         mono_class_from_generic_parameter() and moved most of the
15949         functionality from mono_reflection_define_generic_parameter()
15950         here; ie. we create a "real" class here.
15951         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
15952         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
15953         previously been called.
15954
15955         * class.h (MonoGenericParam): Moved the declaration of this struct
15956         here from metadata.h and added `MonoMethod *method'.
15957
15958         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
15959         interncall.
15960
15961         * loader.c (mono_get_method_from_token): If we have any generic
15962         parameters, call mono_metadata_load_generic_params() to read them
15963         from the MONO_TABLE_GENERICPAR.
15964
15965         * metadata.c (mono_metadata_load_generic_params): Added
15966         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
15967
15968         * metadata.h (MonoMethodSignature): Replaced
15969         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
15970         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
15971
15972         * reflection.c (mono_reflection_define_generic_parameter): Moved
15973         most of the functionality into the new
15974         mono_class_from_generic_parameter(); set the `method' field if
15975         we're a method parameter.       
15976
15977 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
15978
15979         * marshal.c (emit_struct_conv): if native size is 0
15980         emit no code.
15981
15982 2003-10-14  Martin Baulig  <martin@ximian.com>
15983
15984         * icall.c: The generics API has changed in the spec since it was
15985         added to System.Type; these modifications make it match the spec
15986         again.
15987         (ves_icall_Type_GetGenericParameters): Renamed to
15988         `ves_icall_Type_GetGenericArguments'.
15989         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
15990         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
15991         `ves_icall_MonoType_get_HasGenericArguments'.
15992         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
15993         `ves_icall_MonoType_get_IsGenericParameter'.
15994         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
15995         this is no interncall anymore.
15996         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
15997         `ves_icall_TypeBuilder_get_IsGenericParameter'.
15998
15999 2003-10-14  Martin Baulig  <martin@ximian.com>
16000
16001         * reflection.c (mono_reflection_bind_generic_parameters): Also
16002         inflate generic methods if we're reading the class from IL.
16003
16004 2003-10-13  Martin Baulig  <martin@ximian.com>
16005
16006         * reflection.c (mono_reflection_define_generic_parameter): This
16007         method isn't called directly from the icall anymore; take a
16008         `MonoReflectionAssemblyBuilder *' so we can use this for type and
16009         method generic parameters.
16010         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
16011         (method_builder_encode_signature): Encode generic parameters.
16012         (mono_image_get_method_info): Write generic params to the
16013         MONO_TABLE_GENERICPARAM table.
16014
16015         * reflection.h (MonoReflectionMethodBuilder): Added
16016         `MonoArray *generic_params'.
16017
16018         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
16019
16020         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
16021         wrapper for mono_reflection_define_generic_parameter().
16022         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
16023
16024 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
16025
16026         * marshal.h: Add missing function to fix build.
16027
16028         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
16029         the SetLastError pinvoke attribute.
16030
16031         * marshal.c (mono_marshal_set_last_error): New helper function called
16032         by the generated code.
16033         
16034         * marshal.c (mono_mb_emit_branch): New helper function.
16035
16036         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
16037
16038         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
16039         classes as parameters and return values of delegates. Fixes #29256. 
16040
16041 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
16042
16043         * locales.c: use gint32 in non HAVE_ICU case
16044
16045 2003-10-11  Martin Baulig  <martin@ximian.com>
16046
16047         * mono-debug.c (mono_debug_add_method): Added a workaround for
16048         bug #48591.
16049
16050 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
16051
16052         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
16053         delegates passed to native code must use the STDCALL calling 
16054         convention. Fixes #35987.
16055
16056 2003-10-10  Martin Baulig  <martin@ximian.com>
16057
16058         * class.c (inflate_generic_type): If we're inflating for a generic
16059         type instance (and not for a generic method), return
16060         MONO_TYPE_MVAR unchanged.
16061
16062 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16063
16064         * string-icalls.c: Join ignores null strings in the source array.
16065         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
16066         * threads.c: GetAvailableTheads is slightly more accurate.
16067
16068 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
16069
16070         * threads.h threads.c : add mono_threads_set_default_stacksize
16071         and pass default to CreateThread calls.
16072
16073 2003-10-09  Dick Porter  <dick@ximian.com>
16074
16075         * icall.c:
16076         * locales.h:
16077         * locales.c: Internal calls for constructing CultureInfo and
16078         related objects from libicu (if its available.)
16079
16080 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
16081
16082         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
16083
16084 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16085
16086         * threadpool.c: added an argument to async_invoke_thread that is the
16087         item to process, pass the MonoAsyncResult to the thread start function
16088         when creating a new thread. This way we don't need to acquire any lock
16089         when we're creating a new thread. Readded a semaphore for faster
16090         response times (instead of that Sleep i added).
16091
16092 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
16093
16094         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
16095         get daylight change dates better on Windows, fix handling
16096         of platforms without tm_gmtoff.
16097
16098 2003-10-06  Martin Baulig  <martin@ximian.com>
16099
16100         * class.c (inflate_generic_method): Renamed to
16101         mono_class_inflate_generic_method() and made public.
16102         (mono_class_init): Don't inflate the generic methods here.
16103         (mono_class_from_generic): Added `gboolean inflate_methods'
16104         argument.  Inflate the methods here.
16105
16106         * loader.c (mono_method_get_param_names): Ignore instances of
16107         generic types for the moment.
16108
16109         * reflection.c (fixup_method): Added support for inflated methods.
16110         (mono_image_create_token): Use mono_image_get_methodref_token()
16111         for inflated methods.
16112         (mono_custom_attrs_from_param): Ignore instances of generic types
16113         for the moment.
16114         (mono_reflection_bind_generic_parameters): New public function.
16115         Moved all the functionality from
16116         ves_icall_Type_BindGenericParameters() here and added support for
16117         dynamic types.
16118         (mono_reflection_define_generic_parameter): Initialize
16119         `klass->methods' here.
16120
16121         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
16122         functionality into mono_reflection_define_generic_parameter().
16123         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
16124         TypeBuilder, return that TypeBuilder.
16125
16126 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16127
16128         * appdomain.c: removed mono_delegate_semaphore.
16129
16130         * threadpool.c:
16131         (mono_thread_pool_add): moved hash table creation inside and the thread 
16132         creation outside of the critical region.
16133         (mono_thread_pool_finish): removed obsolete code.
16134         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
16135         continue or exit the thread depending on the queue.
16136
16137 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
16138
16139         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
16140         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
16141         handle more bool marshalling options
16142
16143 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
16144
16145         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
16146         arrays of structs. Also add a more descriptive error message when
16147         a structure member is marshalled as LPArray.
16148
16149 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
16150
16151         * marshal.c (mono_marshal_get_native_wrapper): Add support for
16152         marshalling arrays of complex types. Fixes #29098. Also remove an
16153         usused and incomplete function.
16154
16155 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
16156
16157         * gc.c: report heap_size - free_bytes as total memory allocated
16158         (bug#49362).
16159
16160 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
16161
16162         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
16163         fix timezone handling problems on Windows.
16164         
16165         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
16166         asserts when the year is outside the range handled by ms the functions.
16167
16168         * class.c (setup_interface_offsets): If the class is an interface,
16169         fill out its interface_offsets slot.
16170
16171 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16172
16173         * threadpool.c: mark threadpool threads as background.
16174
16175 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
16176
16177         * decimal.c - define DECINLINE to nothing if not using GCC
16178
16179 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
16180
16181         * assembly.c: More refcount fixes.
16182
16183 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16184
16185         * string-icalls.c: if we're not trimming, return the same string.
16186         When not splitting, don't create a new string.
16187
16188 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16189
16190         * image.c:
16191         (mono_image_open): increment the ref_count inside the critical section.
16192
16193 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
16194
16195         * image.c (mono_image_open): Fix reference counting bug.
16196
16197 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
16198
16199         * marshal.c (mono_marshal_type_size) struct alignment changed for 
16200         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
16201         64bits. Avoid leak in mono_marshal_get_native_wrapper when
16202         mono_lookup_pinvoke_call throws.        
16203
16204 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
16205
16206         * reflection.c (mono_reflection_parse_type): Fix #49114.
16207
16208         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
16209         temporary workaround for cygwin header problem.
16210
16211         * object.c (mono_object_isinst): Synchronize this with the code
16212         generated by the JIT for casts.
16213
16214 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
16215
16216         * reflection.c (encode_type): Fix #38332.
16217
16218 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
16219
16220         * marshal.c (mono_marshal_method_from_wrapper): New function to return
16221         the original method from the wrapper method.
16222
16223 2003-09-25  Martin Baulig  <martin@ximian.com>
16224
16225         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
16226         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
16227         (ves_icall_Type_get_IsGenericInstance): New interncall.
16228
16229 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
16230
16231         * object.c: fix cast warning in big endian code.
16232
16233 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
16234
16235         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
16236         
16237 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16238
16239         * assembly.c: don't call check_env from mono_assembly_load. It's
16240         already done once in mono_assemblies_init and may cause headaches when
16241         multiple threads are loading assemblies.
16242
16243 2003-09-19  Martin Baulig  <martin@ximian.com>
16244
16245         * reflection.c (mono_reflection_define_generic_parameter): Don't
16246         allocate `klass->methods', set `klass->flags' to
16247         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
16248
16249 2003-09-18  Martin Baulig  <martin@ximian.com>
16250
16251         * class.c (mono_class_init): Don't create `class->methods' if it's
16252         already initialized.
16253
16254         * metadata.c (mono_metadata_load_generic_params): Make this
16255         actually work.
16256
16257         * reflection.c (mono_reflection_define_generic_parameter): Set
16258         parent class and interfaces from the constraints.
16259
16260         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
16261         to keep this struct in sync with the declaration in TypeBuilder.cs.
16262
16263 2003-09-17  Martin Baulig  <martin@ximian.com>
16264
16265         * metadata.h (MonoType): Replaced the data's `int type_param'
16266         field with `MonoGenericParam *generic_param'.
16267         (MonoGenericParam): Added `MonoClass *klass'.
16268
16269         * class.c (mono_class_from_gen_param): Removed the
16270         `MonoImage *image' and `int type_num' arguments.
16271
16272         * metadata.c (mono_metadata_parse_generic_param): New static
16273         method; creates a MonoGenericParam which just contains the index.
16274         (do_mono_metadata_parse_type): Call
16275         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
16276         MONO_TYPE_MVAR.
16277
16278         * reflection.c (mono_image_typedef_or_ref): Generic type
16279         parameters may be in the same assembly, but never use a typedef
16280         for them.
16281         (mono_reflection_define_generic_parameter): We're now creating a
16282         "real" class for the type parameter; it's now safe to call
16283         mono_class_from_mono_type() on the class'es type, it'll do the
16284         right thing.
16285
16286 2003-09-16  Martin Baulig  <martin@ximian.com>
16287
16288         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
16289         `symfile->range_entry_size' and `symfile->class_entry_size' here;
16290         the `symfile' data structure must be fully initialized before it
16291         gets added to the table.
16292
16293 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
16294
16295         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
16296
16297         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
16298         class init trampolines.
16299
16300 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
16301
16302         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
16303         to the built-in profiler to turn off time and allocation profiling
16304         respectively.
16305
16306 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
16307
16308         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
16309         g_direct_equal.
16310
16311         * debug-helpers.c (mono_method_full_name): Print the wrapper type
16312         in human readable form.
16313
16314 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
16315
16316         * reflection.c icall.c: Fixed warnings.
16317
16318         * image.c (load_class_names): Use a temporary hash table to hold the
16319         namespaces in order to avoid doing many string comparisons.
16320
16321         * image.h: Fix typo.
16322
16323         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
16324         Pass NULL instead of g_direct_equal to the GHashTable constructor 
16325         since the NULL case is short-circuited inside g_hash_table_lookup, 
16326         leading to better performance.  
16327
16328         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
16329         obtain the first custom attribute for a given index. Depends on the
16330         CustomAttribute table being sorted by the parent field.
16331
16332         * reflection.c (mono_custom_attrs_from_index): Use the new function 
16333         for better performance.
16334
16335 2003-09-07  Martin Baulig  <martin@ximian.com>
16336
16337         * class.c (mono_class_init): If we're a generic instance, inflate
16338         all our methods instead of loading them from the image.
16339         (mono_class_from_generic): Set `class->methods = gklass->methods'.
16340
16341 2003-09-07  Martin Baulig  <martin@ximian.com>
16342
16343         * mono-debug-debugger.c: Added support for constructors.
16344
16345 2003-09-06  Martin Baulig  <martin@ximian.com>
16346
16347         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
16348         New interncall.
16349
16350         * reflection.c (mono_reflection_setup_generic_class): Call
16351         ensure_runtime_vtable() to create the vtable.
16352
16353 2003-09-05  Martin Baulig  <martin@ximian.com>
16354
16355         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
16356         MONO_TYPE_MVAR.
16357
16358 2003-09-04  Martin Baulig  <martin@ximian.com>
16359
16360         * reflection.c (mono_reflection_define_generic_parameter): Generic
16361         parameters start with zero.
16362
16363 2003-09-04  Martin Baulig  <martin@ximian.com>
16364
16365         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
16366
16367         * reflection.h (MonoReflectionGenericParam): New typedef.
16368         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
16369         the generic parameters from the managed TypeBuilder.
16370
16371         * reflection.c (mono_reflection_define_generic_parameter): New function.
16372         (mono_reflection_create_runtime_class): Encode generic parameters.
16373         (mono_reflection_setup_generic_class): New function; this is
16374         called after adding adding all generic params to the TypeBuilder.
16375         (encode_type): Added MONO_TYPE_VAR.
16376
16377 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
16378
16379         * class.h class.c (mono_class_needs_cctor_run): Moved this method
16380         here from the JIT.
16381
16382         * assembly.h assembly.c: Moved the AOT loading code into an assembly
16383         load hook.
16384
16385 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
16386
16387         * reflection.h reflection.c class.h class.c: Delete duplicate 
16388         definition of mono_type_get_name () from reflection.c and export the
16389         one in class.c.
16390
16391         * class.c: Class loading fixes from Bernie Solomon 
16392         (bernard@ugsolutions.com).
16393
16394         * reflection.c: Endianness fixes from Bernie Solomon 
16395         (bernard@ugsolutions.com).
16396         
16397 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
16398
16399         * assembly.h assembly.c: Define a file format version for AOT
16400         libraries.
16401         
16402         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
16403
16404         * appdomain.h (MonoJitInfo): New field to determine whenever the
16405         code is domain neutral.
16406         
16407 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
16408
16409         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
16410
16411 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
16412
16413         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
16414         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
16415         Avoid caching the result since strings must be domain specific. Fixes
16416         #48050.
16417
16418 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
16419
16420         * marshal.c (mono_marshal_init): Make this callable multiple times
16421         since it is hard to find a correct place to call it.
16422
16423         * object.c (mono_runtime_class_init): Execute static constructors in
16424         the correct appdomain.
16425
16426         * image.c (build_guid_table): Handle the case when multiple images have
16427         the same GUID.
16428
16429 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16430
16431         * icall.c: added a couple of icalls for System.Web.
16432
16433 2003-08-28  Martin Baulig  <martin@ximian.com>
16434
16435         * icall.c (ves_icall_Type_BindGenericParameters): Use
16436         `klass->generic_inst' instead of `&klass->byval_arg' in the
16437         mono_type_get_object() call.  The returned type must be
16438         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
16439
16440 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
16441
16442         * NOTES: New file.
16443
16444         * object.c (mono_class_proxy_vtable): Make it thread safe.
16445
16446         * pedump.c: Fix warning.
16447
16448         * object.c appdomain.h: Get rid of metadata_section. 
16449         It is no longer needed and it was causing deadlocks with domain->lock.
16450
16451         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
16452
16453 2003-08-26  Martin Baulig  <martin@ximian.com>
16454
16455         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
16456
16457 2003-08-26  Martin Baulig  <martin@ximian.com>
16458
16459         * pedump.c (main): Call mono_metadata_init(),
16460         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
16461         and mono_loader_init().
16462
16463 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
16464
16465         * loader.h: Add missing include to fix build.
16466
16467         * image.h: mono_image_load_references is no more.
16468
16469         * assembly.c: Reworked assembly loading to make it really thread safe.
16470         After these changes, the assembly returned by mono_assembly_open is
16471         fully initialized, i.e. all its references assemblies are loaded.
16472
16473         * assembly.c (mono_image_load_references): Renamed to 
16474         mono_assembly_load_references, and made private, since clients no
16475         longer need to call it.
16476
16477         * class.c: Removed calls to mono_assembly_load_references, since it was
16478         a source of deadlocks.
16479
16480         * loader.h loader.c class.h class.c: Protect data structures using a 
16481         new lock, the loader lock.
16482
16483         * class.c (mono_class_setup_vtable): Create temporary hash tables and
16484         GPtrArrays only when needed.
16485
16486         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
16487         into empty structures by mcs. Fixes pinvoke7.cs.
16488         
16489         * domain.c (mono_init): Call a new initialization function.
16490
16491         * appdomain.c (mono_runtime_init): Call the new initializer function
16492         of the marshal module.
16493
16494         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
16495         inserted into empty structures by mcs. Fixes pinvoke7.cs.
16496
16497         * marshal.h marshal.c: Added locks around the wrapper caches to make
16498         this module thread safe.
16499
16500         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
16501         this argument. Fixes pinvoke1.exe.
16502
16503 2003-08-25  Lluis Sanchez <lluis@ximian.com>
16504
16505         * object.h: Added call_type field to MonoMethodMessage and the corresponding
16506         enumeration of values. Removed fields to store remote call output values in
16507         MonoAsyncResult. Not needed any more.
16508         * object.c: Initialize call_type and async_result fields in mono_message_init.
16509         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
16510         dispatching the message.
16511         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
16512         async call to finish. To do it use a message with EndInvoke call type.
16513
16514 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
16515
16516         * loader.h loader.c (mono_method_hash_marhal_info): New function which
16517         determines whenever a method has marshalling info.
16518
16519 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16520
16521         * assembly.c: fix the build on windows.
16522
16523 2003-08-22 Lluis Sanchez <lluis@ximian.com>
16524
16525         * object.cs: Fixed bug #47785.
16526
16527 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
16528
16529         * string-icalls.c (StringReplace): If their are no occurances of
16530         the old string found return a reference to the supplied
16531         string. This saves some memory and matches MS behavoir.
16532         
16533 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16534
16535         * socket-io.c: fixed compilation for systems that define AF_INET6
16536         and don't define SOL_IP/SOL_IPV6.
16537
16538 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
16539
16540         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
16541         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
16542
16543         * rawbuffer.c rawbuffer.h: Make this module thread safe.
16544
16545         * domain.c: Make this module thread safe.
16546
16547         * domain.c (mono_init): Call new initialization function.
16548
16549         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
16550         reference types too. Fixes #38812.
16551
16552         * image.c (mono_image_init): Fixed warnings.
16553
16554         * class.c (mono_class_from_typeref): Handle assembly load failure
16555         correctly.
16556
16557         * appdomain.c (add_assemblies_to_domain): Handle the case when
16558         the references of an assembly are not yet loaded.
16559
16560         * metadata.c image.c assembly.c: Moved initialization of global
16561         variables to a separate function called at startup since lazy 
16562         initialization of these variables is not thread safe.
16563         
16564         * image.c assembly.c: Made this module thread safe by adding locks in 
16565         the appropriate places.
16566
16567         * domain.c (mono_init): Call the new initialization functions of the
16568         three modules.
16569
16570 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
16571
16572         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
16573           make a direct call. It is proxy's work to make the call asynchronous.
16574           mono_delegate_end_invoke(): If the targe is a proxy, just collect
16575           the return values.
16576         * object.cs: mono_method_call_message_new(): read AsyncResult and
16577           state object from parameters list, if this info is requested.
16578         * object.h: Added fields to store remote call output values in
16579           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
16580
16581 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16582
16583         * object.h: add needed fields to MonoThread.
16584         * threads.c, threads.h: allow registering a function to cleanup data
16585         allocated per thread by the JIT.
16586
16587 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16588
16589         * loader.h: portability fix by Bernie Solomon
16590         * <bernard@ugsolutions.com>.
16591
16592 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
16593
16594         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
16595         return a MonoArray. This simplifies the code and also ensures that
16596         the cache allways contains an object reference as a value.
16597
16598         * icall.c (ves_icall_get_parameter_info): Simplified using the new
16599         function.
16600
16601 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16602
16603         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
16604         fixes a problem with byte ordering when getting the address family for
16605         a socket.
16606
16607 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
16608
16609         * .cvsignore: Added monosn.
16610
16611         * reflection.h reflection.c loader.c: Added support for parameter
16612         marshalling to dynamically created types. Fixes #47295.
16613
16614 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
16615
16616         * rand.c: remove useless warnings.
16617
16618 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
16619
16620         * class.c: implemented ldtoken for methods and fieldrefs.
16621
16622 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16623
16624         * threadpool.c: when mono_async_invoke was called, no one took care of
16625         monitoring the queue. So if the method invoked took some time and we
16626         got new async invoke requests after 500 ms (the thread created waited
16627         that long in WaitForSingleObject), the new async invoke was not called
16628         until the previous one finished.
16629
16630         This is fixed now. Thanks to Totte for helping with it.
16631
16632 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16633
16634         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
16635
16636 2003-08-11  Martin Baulig  <martin@ximian.com>
16637
16638         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
16639
16640 2003-08-06  Martin Baulig  <martin@ximian.com>
16641
16642         * mono-debug-debugger.c: Added support for static fields,
16643         properties and methods.
16644
16645 2003-08-06  Martin Baulig  <martin@ximian.com>
16646
16647         * mono-debug-debugger.c: Don't store the MonoString's vtable to
16648         make this work for applications with multiple application domains.
16649
16650 2003-08-04  Martin Baulig  <martin@ximian.com>
16651
16652         * mono-debug-debugger.c: Completely reworked the type support; the
16653         most important thing is that we're now just using one single
16654         `MonoType' instance per type.
16655
16656 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
16657
16658         * mono-endian.h, mono-endian.c, icall.c: Added icall
16659         ves_icall_System_Double_AssertEndianity to assert double word endianity
16660         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
16661
16662 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16663
16664         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
16665         support, icalls and fixes.
16666
16667 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
16668
16669         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
16670         classes that are a punctuation character in .NET is not the same a
16671         g_unichar_ispunct.
16672
16673 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16674
16675         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
16676
16677 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
16678
16679         * icall.c: Add new MemCopy internalcall.
16680         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
16681         Simplified code; It is not necessary to handle all the cases here,
16682         as the C# code takes care of it.  Only handle the case of the name
16683         resource embedded into the assembly.
16684
16685         Changed signature to return the data pointer and the size of the
16686         data. 
16687
16688 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
16689
16690         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
16691         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
16692
16693 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
16694
16695         * socket-io.c: ignore EINTR error in select.
16696
16697 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
16698
16699         * class.h, class.c: removed unused subclasses field in MonoClass.
16700
16701 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
16702
16703         * icall.c: improve fix of get_base_definition(). If the parent class
16704           doesn't have the mehod, look at the parent of the parent.
16705         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
16706           to check if a parameter is an in or out parameter
16707           (PARAM_ATTRIBUTE_IN is not set by default).
16708           mono_method_return_message_restore(): Use mono_class_value_size to
16709           get the size of a value type. mono_type_stack_size (parameterType)
16710           does not return the correct value if parameterType is byRef.
16711           mono_load_remote_field(), mono_load_remote_field_new(),
16712           mono_store_remote_field(), mono_store_remote_field_new():
16713           raise exception if the remote call returns an exception.
16714
16715 2003-07-28  Martin Baulig  <martin@ximian.com>
16716
16717         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
16718         method.  This is a wrapper around mono_runtime_invoke() which
16719         boxes the instance object if neccessary.
16720
16721 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16722
16723         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
16724         metadata.h, row-indexes.h, verify.c: first cut of generics support.
16725
16726 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16727
16728         * icall.c: disable mcs bug workaround.
16729
16730 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
16731
16732         * object.c (mono_runtime_class_init): Take the metadata_section
16733         mutex before obtaining the domain mutex.
16734
16735         * appdomain.h: Added definition of metadata_section mutex here. 
16736
16737         * object.c: define metadata_mutex here.
16738
16739 2003-07-24  Ravi Pratap  <ravi@ximian.com>
16740
16741         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
16742         fixed.
16743
16744 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
16745
16746         * reflection.c: Fix bug #46669
16747
16748 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16749
16750         * exception.c:
16751         * exception.h:
16752         * icall.c:
16753         * object.h: fill in the type name for TypeLoadException.
16754
16755 2003-07-23  Ravi Pratap  <ravi@ximian.com>
16756
16757         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
16758         relationship between TypeBuilders while compiling corlib) and bug
16759         45993 (Array types returned from the runtime while compiling
16760         corlib were from the loaded corlib).
16761
16762 2003-07-22  Martin Baulig  <martin@ximian.com>
16763
16764         * mono-debug-debugger.c: Reworked the type support a bit more;
16765         distinguish between types and classes.
16766
16767 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
16768
16769         * icall.c: add IsArrayImpl icall.
16770
16771 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
16772
16773         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
16774         initializing real_size only once. Also fix bug #46602.
16775
16776 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
16777
16778         * object.c: Renamed mono_metadata_section to metadata_section.
16779
16780 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
16781
16782         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
16783           empty array if the type is an array. Fixed.
16784           ves_icall_MonoMethod_get_base_definition: if the base method
16785           is abstract, get the MethodInfo from the list of methods of
16786           the class.
16787         * reflection.c: ParameterInfo.PositionImpl should be zero-based
16788           and it was 1-based. Fixed in mono_param_get_objects.
16789
16790 2003-07-20  Martin Baulig  <martin@ximian.com>
16791
16792         * mono-debug.h: Set version number to 31.
16793         (mono_debug_init): Added `MonoDomain *' argument.
16794
16795         * mono-debug-debugger.c: Reworked the type support; explicitly
16796         tell the debugger about builtin types; pass the `klass' address to
16797         the debugger.
16798
16799 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
16800
16801         * image.c: Allow new metadata tables to be loaded without a
16802         warning. Also update the warning message to give the new constant value.
16803                 
16804 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
16805
16806         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
16807         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
16808         array type representation changes.
16809
16810 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
16811
16812         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
16813         on Environment.Exit () call.
16814
16815 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
16816
16817         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
16818         requires a matching corlib.
16819
16820 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
16821
16822         * Changelog: My editor decided to add a CR to each line. Sorry about that.
16823           Committed again without the CRs.
16824         
16825 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
16826
16827         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
16828           getting it from the "this" socket instance. Did not work
16829           if the socket is a subclass of Socket.
16830           Also fixed bug #35371.
16831
16832 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
16833
16834         * metadata.c: fixed size for TypedByRef.
16835         * loader.c: when searching for a method, consider the vararg amrker.
16836         * unicode.c, decimal.c: constify some arrays.
16837
16838 2003-07-15  Dick Porter  <dick@ximian.com>
16839
16840         * socket-io.c: Fixed compilation for gcc < 3.2.
16841
16842         Fixed compilation for machines that don't have AF_INET6 (thanks to
16843         Bernie Solomon <bernard@ugsolutions.com> for that part.)
16844
16845         Fixed compile warnings.
16846         
16847         Fixed formatting and line endings.
16848
16849 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
16850
16851         * socket-io.h:
16852         * socket-io.c: Added IPv6 support.
16853
16854 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
16855
16856         * class.c (mono_class_is_assignable_from): New function to implement
16857         the is_assignable_from logic. Used by mono_object_isinst, 
16858         Type::IsAssignableFrom () and the interpreter.
16859
16860         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
16861         Object, even interfaces.
16862         
16863         * object.c (mono_object_isinst): Implement in terms of 
16864         is_assignable_from.
16865
16866         * icall.c (ves_icall_type_is_assignable_from): New icall.
16867
16868 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
16869
16870         * domain.c (foreach_domain): fix compiler warning.
16871
16872 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
16873
16874         * image.c (load_metadata_ptrs): use g_strndup because strndup is
16875         not available on all plattforms
16876
16877 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
16878
16879         * image.h image.c: Store the metadata version string in MonoImage.
16880         * icall.c: New icall to retrieve the image version.
16881         * reflection.c (create_dynamic_image): Fill in the image version field
16882         * reflection.c (build_compressed_metadata): Use the image version
16883         from the image structure.
16884
16885 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16886
16887         * appdomain.c: modified comment.
16888         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
16889         That will be its last iteration when mono_gc_cleanup is called from
16890         mono_runtime_cleanup and before the domain is unloaded.
16891
16892         Fixes bug #45962.
16893
16894 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
16895
16896         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
16897         attributes.
16898
16899 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16900
16901         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
16902         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
16903         Bernie Solomon <bernard@ugsolutions.com>.
16904
16905 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
16906
16907         * object.c, object.h: provide mono_object_new_fast() for faster
16908         allocation in some special cases.
16909
16910 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
16911
16912         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
16913         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
16914
16915 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
16916
16917         * threadpool.c: fix leaks.
16918
16919 2003-07-01  Dick Porter  <dick@ximian.com>
16920
16921         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
16922         using MonoGHashTables.  Fixes threadpool bug posted to list.
16923
16924 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
16925
16926         * image.h, image.c: added support to load an assembly from a byte array.
16927         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
16928         assembly bundle support.
16929
16930 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
16931
16932         * threadpool.c (mono_thread_pool_add): keep a reference to the
16933         AsyncResult to prevent GC
16934
16935 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
16936
16937         * class.c: leak fix.
16938
16939 2003-06-25  Dick Porter  <dick@ximian.com>
16940
16941         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
16942         for the async object, the WaitHandle object will close the handle.
16943         Fixes bug 45321.
16944
16945 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
16946
16947         * class.c: in mono_array_class_get (), lookup from the hash with the
16948         same type we insert: this works around a bug in
16949         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
16950         lluis. The real fix will have to wait for after the release.
16951
16952 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
16953
16954         * icall.c: fix memory leak when getting type members.
16955
16956 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
16957
16958         * reflection.c: added more pubtoken special cases.
16959
16960 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
16961
16962         * class.c: handle field offset correctly when class size
16963         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
16964
16965 2003-06-20  Martin Baulig  <martin@ximian.com>
16966
16967         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
16968         *image' field.
16969
16970 2003-06-20  Martin Baulig  <martin@ximian.com>
16971
16972         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
16973
16974 2003-06-20  Martin Baulig  <martin@ximian.com>
16975
16976         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
16977         just distinguish between variables in registers and variables at
16978         an offset relative to a register.
16979
16980 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16981
16982         * icall.c: #ifdef out latest changes until mcs is fixed.
16983
16984 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16985
16986         * icall.c: return members in metadata order.
16987
16988 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
16989
16990         * icall.c: avoid infinite loop in GetTimeZoneData.
16991
16992 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
16993
16994         * icall.c: added Marshal.Prelink/All icalls.
16995
16996 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
16997
16998         * object.c, object.h: fix warnings and do some overflow checking
16999         when creating arrays.
17000
17001 2003-06-17  Dick Porter  <dick@ximian.com>
17002
17003         * file-io.h:
17004         * file-io.c: File attributes need to be tweaked slightly when
17005         passed from the managed to the w32 world.
17006
17007 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
17008         * profiler.h profiler-private.h profiler.c: Rework last patch
17009         based on suggestion by Paolo.
17010         
17011 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
17012
17013         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
17014         instruction level coverage data collection.
17015         * profiler.h profiler.c (: Added new callback function which can be
17016         used by the profiler to limit which functions should have coverage
17017         instrumentation.
17018         * profiler.c (mono_profiler_load): Call g_module_build_path to
17019         generate the file name of the profiler library.
17020
17021 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
17022
17023         * profiler.c, profiler.h, profiler-private.h: added basic block 
17024         coverage profiling API.
17025
17026 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
17027
17028         * reflection.c (mono_reflection_create_runtime_class): Add support
17029         for events in dynamically generated code.
17030
17031         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
17032         not allocated.
17033
17034 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
17035
17036         * icall.c: when getting timezone info, return reasonable values if we
17037         can't get the actual data.
17038
17039 2003-06-14  Dick Porter  <dick@ximian.com>
17040
17041         * threads.c (start_wrapper): Remove the reference to the thread
17042         object in the TLS data, so the thread object can be finalized.
17043         This won't be reached if the thread threw an uncaught exception,
17044         so those thread handles will stay referenced :-( (This is due to
17045         missing support for scanning thread-specific data in the Boehm GC
17046         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
17047
17048 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
17049
17050         * reflection.c: ensure streams and tables are first allocated with
17051         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
17052
17053 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
17054
17055         * icall.c: fixed GetElementType for byrefs (bug# 44792).
17056
17057 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
17058
17059         * reflection.c (mono_reflection_create_runtime_class): Add support for
17060         properties to dynamically created classes.
17061         * reflection.c: Fix a few places where non-MonoObjects were inserted
17062         into the tokens hashtable.
17063
17064 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
17065
17066         * object.c: some support to handle out of memory exceptions.
17067
17068 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
17069
17070         * marshal.c (mono_marshal_get_native_wrapper): support reference
17071         return types
17072
17073 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
17074
17075         * object.h, object.c: more portability stuff from Bernie Solomon.
17076         Unexport mono_object_allocate(). Added mono_object_unbox ().
17077         Set exitcode when an unhandled exception is thrown.
17078
17079 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
17080
17081         * marshal.c (mono_marshal_get_native_wrapper): use custom
17082         marshaler for return types.
17083
17084 2003-06-10  Dick Porter  <dick@ximian.com>
17085
17086         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
17087         ip_mreq is available
17088
17089 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
17090
17091         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
17092         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
17093         by Bernie Solomon <bernard@ugsolutions.com>.
17094
17095 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
17096
17097         * gc.c (mono_gc_init): Avoid error message on shutdown when
17098         GC_DONT_GC=1 is used.
17099
17100         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
17101         New icall to return the GUID of a module.
17102
17103 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
17104
17105         * class.c: ensure instance size always includes the parent's size
17106         even whem class size is set explicitly (fixes bug#44294).
17107
17108 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
17109
17110         * profiler.h, profiler.c: made the simple profiler thread-safe,
17111         get more accurate timing info. Allow the loading of an
17112         externally-developed profiler module.
17113
17114 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
17115
17116         * marshal.c (mono_marshal_get_native_wrapper): improved
17117         class/byref arguments.
17118         (mono_marshal_get_native_wrapper): better string marshaling support.
17119
17120 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
17121
17122         * class.c: ensure .pack and .size are handled correctly and
17123         simplified layout of static fields.
17124
17125 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
17126
17127         * appdomain.c
17128         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
17129
17130         * loader.c (mono_lookup_pinvoke_call): look for modules in the
17131         current directory (fix bug 44008)
17132
17133 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
17134
17135         * marshal.c (mono_marshal_get_native_wrapper): started support for
17136         custom marshalers.
17137         (mono_delegate_to_ftnptr): consider marshalling specifications
17138
17139 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
17140
17141         * reflection.c, reflection.h: emit custom marshal info.
17142
17143 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17144
17145         * object.c: free the GError.
17146         * icall.c: added CloseEvent_internal.
17147         * threads.[ch]:
17148         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
17149         call.
17150
17151 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
17152
17153         * loader.c (mono_method_get_signature): Add support for dynamic
17154         assemblies.
17155
17156 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
17157
17158         * reflection.c: fixed bug #43905.
17159
17160 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
17161
17162         * class.c, domain.c, icall.c, metadata.h, object.h: support for
17163         handling TypedReference and ArgIterator.
17164         * loader.c, loader.h: added function to get signature at call site.
17165
17166 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
17167
17168         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
17169         data readonly. Buglets and warning fixes. Some MethodSpec support.
17170
17171 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
17172
17173         * class.h, class.c, object.c: remove relative numbering support.
17174
17175 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
17176
17177         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
17178         free the string, until we get a chance to fix Gtk#
17179
17180 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17181
17182         * marshal.c: revert last patch.
17183
17184 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
17185
17186         * icall.c: updates for new mono_class_vtable() not calling
17187         the type constructor anymore.
17188
17189 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
17190
17191         * object.h, object.c: separate vtable creation from type
17192         initialization. Make running the .cctor thread safe.
17193
17194 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
17195
17196         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
17197
17198 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
17199
17200         * loader.c (mono_get_method): consider calling convention
17201
17202 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
17203
17204         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
17205         to return the invisible global type for a module.
17206
17207         * reflection.c (mono_image_build_metadata): Emit global fields too.
17208
17209 2003-05-20  Peter Williams  <peterw@ximian.com>
17210
17211         * loader.c (mono_lookup_internal_call): Add a few newlines.
17212
17213 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
17214
17215         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
17216         literal strings.
17217
17218         * appdomain.c (set_domain_search_path): Recalculate search path when
17219         AppDomainSetup.PrivateBinPath changes.
17220
17221         * object.c (mono_class_compute_gc_descriptor): It turns out some
17222         parts of the class libs (like System.Thread) holds pointers to
17223         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
17224         to treat native int a pointer type here.
17225         
17226 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
17227
17228         * appdomain.h, domain.c: add hashtable for jump target resolution.
17229
17230 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
17231
17232         * reflection.h reflection.c icall.c: Added new icalls 
17233         GetManifestResourceInfoInternal, GetModulesInternal and support
17234         infrastructure.
17235
17236 2003-05-16  Dick Porter  <dick@ximian.com>
17237
17238         * icall.c:
17239         * file-io.h:
17240         * file-io.c: Implement System.IO.MonoIO::GetTempPath
17241
17242 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
17243
17244         * object.c: mono_store_remote_field: little fix to previous patch.
17245
17246 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
17247
17248         * class.c: add constructors to array classes.
17249         * icall.c: special case array construction for InternalInvoke (),
17250
17251 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
17252
17253         * class.h class.c reflection.c object.c: Added support for field
17254         defaults in dynamically generated classes.
17255
17256 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
17257
17258         * reflection.c: properly encode charset for ddlimport.
17259
17260 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
17261
17262         * threads.c: allow compiling without GC.
17263
17264 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
17265
17266         * appdomain.h, object.c, object.h, threads.c, threads.h: added
17267         handling of thread static data.
17268
17269 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
17270
17271         * reflection.h, reflection.c: added mono_custom_attrs_free ().
17272
17273 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
17274
17275         * class.c (mono_array_class_get): always set the serializable flags
17276         (mono_array_class_get): always set the SEALED attribute for array types
17277
17278 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
17279
17280         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
17281         attributes (fix for bug 42021).
17282
17283 2003-05-12  Dick Porter  <dick@ximian.com>
17284
17285         * gc.c: Don't run finalizers when the finalizer thread is
17286         finishing up, because the default domain has already been
17287         destroyed.
17288
17289 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
17290
17291         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
17292         value is null, we should throw an exception.   This is slightly
17293         different than the other conventions used for the constructor.
17294
17295 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17296
17297         * socket-io.c: fixed windows build.
17298
17299 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17300
17301         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
17302
17303 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
17304
17305         * object.c (mono_string_new_wrapper): Compatibility fix for MS
17306         compilers.
17307
17308 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
17309
17310         * class.c (mono_class_layout_fields): Add experimental GC aware
17311         auto layout facility. Requires class library changes to work correctly.
17312
17313         (mono_class_setup_vtable): Avoid overriding explicit interface
17314         method implementations. Fixes iface3.exe test.
17315
17316         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
17317         object reference.
17318         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
17319         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
17320
17321         * metadata.h: Add new type classification macro which determines
17322         whenever the type holds an object reference.
17323
17324 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
17325
17326         * marshal.c (mono_marshal_get_native_wrapper): cleanups
17327
17328 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
17329
17330         * gc.c (finalizer_thread): Work around a GC bug.
17331
17332 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
17333
17334         * marshal.c (emit_struct_conv): allow unions
17335
17336         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
17337
17338 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
17339
17340         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
17341
17342 2003-05-06  Martin Baulig  <martin@ximian.com>
17343
17344         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
17345
17346 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17347
17348         * socket-io.c:
17349         (Select_internal): allow NULLs, don't create arrays if not needed.
17350         Coupled with Socket.cs changes.
17351
17352         * threadpool.c:
17353         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
17354         register a finalizer for it that will close the semaphore handle. This
17355         fixes the leak and make Lupus' test run with > 4080 loops.
17356
17357 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
17358
17359         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
17360         Jerome Laban (bug #42287)
17361
17362 2003-05-02  Martin Baulig  <martin@ximian.com>
17363
17364         * debug-mono-symfile.h
17365         (MonoSymbolFile): Moved declaration into mono-debug.h.
17366         (MonoDebugMethodJitInfo): Likewise.
17367         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
17368         argument.
17369         (_mono_debug_address_from_il_offset): Take a
17370         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
17371
17372         * mono-debug.h
17373         (MonoDebugDomainData): New struct.
17374         (mono_debug_get_domain_data): New function.
17375         (mono_debug_add_method): Take an additional `MonoDomain *'
17376         argument.
17377         (mono_debug_source_location_from_address): Likewise.
17378         (mono_debug_il_offset_from_address): Likewise.
17379         (mono_debug_address_from_il_offset): Likewise.
17380
17381 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
17382
17383         * reflection.c: one more check for null type in custom attrs.
17384
17385 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17386
17387         * reflection.c: avoid warning (comparison is always false due to limited
17388         range of data type).
17389
17390 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17391
17392         * icall.c: throw an exception in Type.GetField if the argument 'name'
17393         is NULL.
17394
17395 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
17396
17397         * reflection.c: fixed handling of enums in named arguments to custom
17398         attributes (bug #42123).
17399
17400 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
17401
17402         * reflection.c: use the right array element type and handle
17403         a null for a Type argument, too.
17404
17405 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
17406
17407         * reflection.c: handle arrays as arguments to custom attributes.
17408
17409 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
17410
17411         * reflection.c: handle a string value in a custom attr
17412         ctor that takes an object.
17413
17414 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
17415
17416         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
17417         (fix bug #42063)
17418
17419 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
17420
17421         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
17422
17423 2003-04-27  Martin Baulig  <martin@ximian.com>
17424
17425         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
17426         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
17427         MONO_DEBUGGER_EVENT_BREAKPOINT.
17428         (mono_breakpoint_trampoline_code): Removed.
17429         (mono_debugger_event_handler): The last argument is now a
17430         `guint32'.
17431         (mono_debugger_insert_breakpoint_full): Removed the
17432         `use_trampoline' argument.
17433         (mono_debugger_method_has_breakpoint): Likewise.
17434         (mono_debugger_trampoline_breakpoint_callback): Renamed to
17435         mono_debugger_breakpoint_callback(); take the method and
17436         breakpoint number as arguments.
17437
17438 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
17439
17440         * metadata.c: fix off by one when loading parameters attributes.
17441
17442 2003-04-24  Martin Baulig  <martin@ximian.com>
17443
17444         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
17445
17446 2003-04-24  Martin Baulig  <martin@ximian.com>
17447
17448         * mono-debug-debugger.c: Moved all code which interacts with the
17449         Mono Debugger here.
17450
17451         * debug-mono-symfile.c: This code now just deals with the symbol
17452         file itself, the debugger code is now in mono-debug-debugger.c.
17453
17454 2003-04-23  Martin Baulig  <martin@ximian.com>
17455
17456         * mono-debug.c (mono_debug_source_location_from_il_offset):
17457         New method; like mono_debug_source_location_from_address(), but
17458         takes an IL offset instead of a machine address.
17459
17460 2003-04-23  Martin Baulig  <martin@ximian.com>
17461
17462         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
17463         `line' field; this is now computed by the debugger.
17464
17465 2003-04-23  Martin Baulig  <martin@ximian.com>
17466
17467         * mono-debug.[ch]: New files.  This is the new debugging interface.
17468
17469         * mono-debug-debugger.[ch]: New files.  Moved all code which
17470         interacts with the Mono Debugger here.
17471
17472 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
17473
17474         * domain.c (mono_init): initialize mono_defaults.monitor_class
17475
17476 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
17477
17478         * reflection.c (method_encode_code): Add a spicy exception to help
17479         future compiler authors.
17480
17481 2003-04-21  Martin Baulig  <martin@ximian.com>
17482
17483         * icall.c
17484         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
17485         Make this work with relative pathnames; g_filename_to_uri() needs
17486         an absolute filename.
17487
17488 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
17489
17490         * icall.c: Track name changes in Object and ValueType.
17491
17492 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
17493
17494         * metadata.c (mono_type_stack_size): size should be a multiple of
17495         sizeof (gpointer)
17496
17497 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17498
17499         * gc.c:
17500         (internal_domain_finalize): moved into mono_domain_finalize. No need
17501         to create another thread because the finalizers will be run in the
17502         finalizer thread.
17503         
17504         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
17505         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
17506         to be run (MS does this too).
17507
17508 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
17509
17510         * object.c (mono_class_compute_gc_descriptor): Update comment.
17511
17512         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
17513
17514         * image.h: Add synchronized wrapper cache.
17515
17516         * image.c (do_mono_image_open): Initialize cache.
17517
17518         * reflection.c (create_dynamic_mono_image): Initialize cache.
17519
17520 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17521
17522         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
17523         ves_icall_System_Buffer_ByteLengthInternal.
17524
17525 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
17526
17527         * reflection.c: setup klass->nested_in earlier. Allow
17528         a dash in the assembly name.
17529
17530 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
17531
17532         * metadata.c (mono_type_to_unmanaged): dont access
17533         type->data.klass for MONO_TYPE_OBJECT
17534         (mono_type_to_unmanaged): consider System.Delegate class
17535
17536 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
17537
17538         * class.c: just setup supertypes in the proper place instead of
17539         initializing the full element class for arrays.
17540
17541 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
17542
17543         * class.c: ensure the element class of arrays is initialized.
17544         Setup the supertype info for array classes, too.
17545
17546 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
17547
17548         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
17549
17550 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17551
17552         * Makefile.am: re-added -m option when running cygpath. This way,
17553         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
17554         separator.
17555         * mono-config.c: same codepath for locating mono config file for WIN32
17556         and the rest.
17557         * assembly.c: if mono_assembly_setrootdir is called, don't override
17558         the value set.
17559
17560 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17561
17562         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
17563         MONO_ASSEMBLIES variable.
17564
17565 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
17566
17567         * icall.c: added Assembly::GetNamespaces() icall.
17568
17569 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17570
17571         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
17572
17573 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
17574
17575         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
17576         * object.c: fixed bug in the construction of vtable for proxies
17577
17578 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
17579
17580         * object.c (mono_array_new): Mark mono_array_new as an icall.
17581
17582 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17583
17584         * class.c: fixed test for public method when overriding interfaces.
17585         Closes bug #40970.
17586
17587 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
17588
17589         * appdomain.h, domain.c: added mono_domain_foreach() to
17590         be able to access the currently loaded appdomains.
17591         * object.c: make string interning work across sppdomains.
17592         Mark some functions for use as icalls.
17593
17594 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
17595
17596         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
17597
17598         * reflection.h reflection.c: Allocate long living data using 
17599         GC_MALLOC_ATOMIC so the collector does not need to scan it.
17600
17601         * reflection.c: Double the allocation size in streams instead of
17602         increasing it, to prevent unneccesary copying on large assemblies.
17603         
17604         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
17605         creation if the assembly does not have the Run flag set.
17606
17607 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
17608
17609         * class.h: avoid the C++ keywords in header files (Jerome Laban
17610         spotted and fixed this).
17611
17612 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17613
17614         * object.c:
17615         (mono_unhandled_exception): fill in the arguments for the
17616         UnhandledException event. Only trigger that event for the default
17617         domain (as MS does).
17618
17619 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
17620
17621         * object.c: Improve typed allocation stuff based on suggestions from
17622         Paolo. Also turn it on if the GC library supports it.
17623
17624 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
17625
17626         * object.c object.h class.h: Added experimental typed allocation
17627         facility using the interfaces in gc_gcj.h.
17628
17629         * os/gc_wrapper.h: Added new include files.
17630         
17631 2003-04-03  Martin Baulig  <martin@ximian.com>
17632
17633         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
17634         which is not yet enabled by default.
17635
17636         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
17637         functions.
17638         (mono_gc_lock, mono_gc_unlock): New static functions.
17639
17640         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
17641         functions; stop/start the world for the garbage collector.  This
17642         is using the windows API; we need to complete the SuspendThread()/
17643         ResumeThread() implementation in the io-layer to make this work on Unix.
17644         (mono_gc_push_all_stacks): New public function; tells the garbage
17645         collector about the stack pointers from all managed threads.
17646
17647 2003-04-03  Martin Baulig  <martin@ximian.com>
17648
17649         * object.h (MonoThread): Added `gpointer stack_ptr'.
17650
17651         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
17652
17653 2003-04-03  Martin Baulig  <martin@ximian.com>
17654
17655         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
17656
17657 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
17658
17659         * reflection.c (typebuilder_setup_fields): Initialize field.first and
17660         field.last.
17661
17662 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
17663
17664         * loader.c (mono_lookup_internal_call): Report the corlib that is
17665         out of sync.
17666
17667 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
17668
17669         * icall.c (ves_icall_type_GetTypeCode): fixed check for
17670         System.DBNull (it's class not valuetype).
17671
17672 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
17673
17674         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
17675         if the array method was already assigned a token (fixes bug#40646).
17676
17677 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
17678
17679         * reflection.c (mono_reflection_get_type): Attempt type resolve even
17680         if no assembly is given.
17681
17682 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
17683
17684         * metadata.h: Added the new tables.
17685
17686         * row-indexes.h: Added definitions for new tables.
17687
17688         * metadata.c: Add schemas for new tables, and add support for
17689         computing the sizes of them.
17690
17691         * class.c: Update for handling the new type cases.
17692
17693 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
17694
17695         * metadata.h (MONO_TYPE_IS_VOID): new macro
17696
17697 2003-03-31  Martin Baulig  <martin@ximian.com>
17698
17699         * threads.h (MonoThreadCallbacks): Added `thread_created'.
17700
17701         * threads.c (mono_thread_new_init): Call `thread_created' in the
17702         mono_thread_callbacks.
17703
17704 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
17705
17706         * loader.h: added marshalbyrefobject_class to mono_defaults
17707         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
17708         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
17709           generation of output parameters.
17710           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
17711         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
17712           contextbound and the target object belongs to the context of the caller.
17713         * object.h: added context and unwrapped_server variables in MonoRealProxy.
17714         * object.c: Implemented support for interfaces and abstract classes
17715           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
17716           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
17717
17718 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
17719
17720         * class.h class.c (mono_class_is_subclass_of): New function.
17721         
17722         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
17723         routines for most common case (calls from ArrayList::ToArray).
17724
17725         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
17726         routine so programs which call Environment::Exit() can be profiled.
17727
17728         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
17729         Added MONO_ARCH_SAVE_REGS.
17730
17731         * icall.c (ves_icall_type_is_subtype_of): Use new function.
17732
17733 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
17734
17735         * blob.h: Add a couple of new MonoType types definitions.
17736
17737         * tabledefs.h: Add a couple of new call convs.
17738
17739 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
17740
17741         * reflection.h (MonoReflectionDynamicAssembly): track changes in
17742         the layout of the class.
17743
17744         * reflection.c (alloc_table): double the size on overflow to avoid
17745         unnecessary copying.
17746
17747         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
17748         avoid filling out metadata tables and blobs. Also set mb->ilgen to
17749         null so it can be garbage collected.
17750         
17751 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
17752
17753         * reflection.c (mono_reflection_get_type): Return the resolved type
17754         only if it is in the assembly we searched.
17755
17756         * reflection.c (ensure_runtime_vtable): Initialize method slots.
17757
17758         * class.c (mono_class_setup_vtable): Set the slot of the overriding
17759         method.
17760
17761 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17762
17763         * appdomain.c:
17764         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
17765         the right one is 'file:///blah', but MS allows it.
17766         * assembly.c:
17767         (mono_assembly_open): allow 'file://blah'
17768
17769         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
17770
17771 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
17772
17773         * socket-io.c: fixes bug #40310.
17774
17775 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
17776
17777         * reflection.c (mono_reflection_parse_type): handle deeply nested
17778         types correctly.
17779
17780         * reflection.c (mono_image_create_token): Use unique token values
17781         since they will be put into a hash table.
17782
17783         * class.c (mono_class_setup_vtable): If a method occurs in more than
17784         one place in the vtable, and it gets overriden, then change the
17785         other occurances too.
17786
17787         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
17788         object as return type.
17789
17790 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17791
17792         * icall.c: Deleted "ToString" implementation for double and float
17793         because they are full implemented in managed code.
17794
17795 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
17796
17797         * reflection.c, reflection.h: implemented and exported functions
17798         to retrieve info about custom attributes.
17799
17800 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17801
17802         * appdomain.c: moved Uri handling to assembly.c
17803         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
17804         work when using a file Uri in *nix and windows.
17805
17806         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
17807         GetReferencedAssemblies.
17808
17809 2003-03-18  Dick Porter  <dick@ximian.com>
17810
17811         * icall.c: Rename a couple of internal calls
17812
17813         * threads.c: Set the thread state to Stopped when a thread exits.
17814         Fixes bug 39377.
17815
17816 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
17817
17818         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
17819         New icall.
17820
17821         * object.c (mono_class_vtable): fix warning.
17822
17823 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
17824
17825         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
17826
17827         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
17828         memory.
17829         (method_encode_clauses): Create exception info structures in the right
17830         order.
17831         (mono_reflection_setup_internal_class): Initialize supertypes field.
17832
17833         * class.c object.c: Handle interfaces which implement other interfaces 
17834         correctly.
17835
17836         * class.h class.c: Move the supertypes array initialization code into 
17837         a separate function so it can be used for dynamic types too. Also call
17838         it earlier, in mono_class_init(), since it can be used before the
17839         type is initialized.
17840
17841 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17842
17843         * Makefile.am:
17844         * assembly.c:
17845         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
17846
17847         * appdomain.c:
17848         * appdomain.h:
17849         * marshal.c:
17850         * object.c: remove warnings.
17851
17852 2003-03-13  Martin Baulig  <martin@ximian.com>
17853
17854         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
17855         (MonoDebugLexicalBlockEntry): New types.
17856
17857         * debug-mono-symfile.c
17858         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
17859
17860 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17861
17862         * process.c: ret can be any non-zero value accroding to MS doc.
17863
17864 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
17865
17866         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
17867         fixing a warning for a miss-used prototype, would have cause
17868         random memory corruption.
17869
17870 2003-03-07  Martin Baulig  <martin@ximian.com>
17871
17872         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
17873         getting really annoying ....
17874
17875 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
17876
17877         * reflection.c (fixup_method): added support for array methods.
17878
17879 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
17880
17881         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
17882         (pointed out by Michael Adams).
17883
17884 2003-03-04  Dick Porter  <dick@ximian.com>
17885
17886         * icall.c: Temporarily reverted the Double and Single ToString()
17887         change, because it broke nunit.
17888
17889 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
17890
17891         * object.h, threads.h: make include files compatible with C++
17892         (patch by Jerome Laban <jlaban@wanadoo.fr>).
17893
17894 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17895
17896         * icall.c: Erased ToString helper functions for Double and Single.
17897         Now, that implementations ar all in managed code (Double and Single
17898         Formatters).
17899
17900 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
17901
17902         * appdomain.c: Added method for initializing the default context of
17903         a domain. Added internal call for getting the default context.
17904         * appdomain.h: Added context variable in MonoDomain struct.
17905         * domain.c: mono_domain_set also sets the default context of the domain
17906         * icall.c: Mapped internal method InternalGetDefaultContext.
17907         * object.c: mono_object_get_virtual_method returns always a remoting
17908         wrapper if the object is a transparent proxy.
17909         mono_runtime_invoke_array: when creating an object by calling the
17910         constructor, if the created object is a proxy, then the constructor should
17911         be called using the a remoting wrapper.
17912
17913 2003-03-03  Dick Porter  <dick@ximian.com>
17914
17915         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
17916         variable so it compiles on solaris.  Problem spotted by
17917         Christopher Taylor <ct@cs.clemson.edu>
17918
17919 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17920
17921         * appdomain.c:
17922         (get_info_from_assembly_name): don't leak value.
17923
17924         * icall.c:
17925         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
17926         result.
17927
17928 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
17929
17930         * assembly.c: export mono_image_load_references ().
17931         * class.c: handle function pointers. mono_class_from_name() now
17932         supports nested type names directly.
17933
17934 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
17935
17936         * reflection.h reflection.c: Encode already created dynamic methods 
17937         and fields correctly as a DEF instead of a REF.
17938
17939         * reflection.c: Get rid of the force_ref argument to 
17940         mono_image_typedef_or_ref since it was wrong in the first place.
17941
17942         * string-icalls.c: add error checking to string constructors according
17943         to the MSDN docs.
17944
17945         * reflection.c: Emit types in the order their TypeBuilders were 
17946         created. Previously, a new table index was assigned to each type before
17947         the tables were emitted. This was wrong because the signature blob
17948         might already refer to a type by its original table index.
17949
17950 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
17951
17952         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
17953         change.
17954         
17955 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17956
17957         * Makefile.am: make assemblies dir have \ instead of / on windows.
17958
17959 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
17960
17961         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
17962         iterate over the NESTEDCLASS table using a linear search since the
17963         table is not guaranteed to be sorted by the secondary key.
17964
17965         * class.c (mono_class_create_from_typedef): fixed up call to
17966         mono_metadata_nesting_typedef.
17967         
17968 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
17969
17970         * marshal.c (mono_string_to_byvalstr): clear the memory as
17971         suggested by Jerome Laban <jlaban@wanadoo.fr>
17972
17973 2003-02-26  Dick Porter  <dick@ximian.com>
17974
17975         * process.c: Cope with padding in .rsrc blocks
17976
17977 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
17978
17979         * metadata.h: reverted the filter_len change, it breaks reflection
17980         
17981 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
17982
17983         * metadata.h: added a new field to store the filter_len
17984         
17985
17986 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
17987
17988         * reflection.c: handle custom attributes for types and members
17989         created with Reflection.Emit (bug#38422).
17990
17991 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
17992
17993         * reflection.c: define RTSpecialName automatically for constructors for
17994         compatibility with MS.NET.
17995
17996         * reflection.c (mono_reflection_create_runtime_class): initialize
17997         nested_in field of dynamically created classes.
17998
17999 2003-02-22  Martin Baulig  <martin@ximian.com>
18000
18001         * debug-mono-symfile.h: Incremented version number.
18002
18003 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
18004
18005         * object.h icall.c process.c: fix warnings.
18006
18007 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
18008
18009         * appdomain.h appdomain.c:
18010         (mono_domain_try_type_resolve): split the 
18011         name_or_tb argument into a name and a tb argument.
18012         (mono_domain_has_type_resolve): new function to check whenever the
18013         application has registered a TypeResolve event handler.
18014         
18015         * icall.c reflection.h reflection.c: move the type resolve logic into
18016         mono_reflection_get_type () so it will be invoked when 
18017         Assembly::GetType () is called.
18018
18019         * reflection.c:
18020         (mono_reflection_get_type): renamed to get_type_internal.
18021         (mono_reflection_get_type): fixed type name generation so it works 
18022         for nested types too.
18023         (mono_reflection_get_type): call has_type_resolve () to avoid the 
18024         costly type name generation if there is no resolve event handler.
18025
18026 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
18027
18028         * class.c, image.c: load exported types from file references.
18029
18030 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
18031
18032         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
18033           used to cache the managed methods used to create proxies and make 
18034           remote invocation of methods.
18035         * class.h: Added in MonoVTable a flag to indicate that a class needs 
18036           to be remotely created.
18037         * object.c: Modified the method mono_class_vtable(). It now initializes 
18038           the remote flag of the vtable. Modified mono_object_new_specific(), 
18039           so now it checks the remote flag.
18040         * icall.c: Added a couple of internal methods, one for enabling instance 
18041           creation interception for a type, and one for creating objects bypassing
18042           the remote check.
18043
18044 2003-02-18  Martin Baulig  <martin@ximian.com>
18045
18046         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
18047         New interncall to get a method's metadata token.
18048
18049         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
18050         New interncall for the debugger.
18051
18052 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
18053
18054         * class.c (mono_class_setup_vtable): allocate supertype array
18055
18056 2003-02-18  Martin Baulig  <martin@ximian.com>
18057
18058         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
18059
18060 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18061
18062         * reflection.c:
18063         (assembly_name_to_aname): jump over unknown properties (i've found
18064         something like: 'type, assembly, version=xxx, custom=null, public...',
18065         so now will ignore custom=null and still get the rest of the values).
18066
18067 2003-02-17  Dick Porter  <dick@ximian.com>
18068
18069         * threads.c: Have Thread.Start() wait for a semaphore to signal
18070         that the thread has set up all its local data.  This fixes bug
18071         34323, where Abort() raced the new thread's TLS data.
18072
18073         Also removes the handle_store() call from start_wrapper, because
18074         threads are now always created suspended and there is no longer a
18075         race between the parent and child threads to store the info.
18076
18077 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
18078
18079         * image.c: explain the #- heap issue in a message, hopefully
18080         avoiding FAQs on mono-list.
18081
18082 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18083
18084         * icall.c:
18085         (GetEntryAssembly): if the domain has not invoked
18086         AppDomain.ExecuteAssembly yet, return the assembly of the default
18087         AppDomain.
18088
18089 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
18090
18091         * class.c (mono_ldtoken): make it work in dynamic assemblies.
18092
18093 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
18094
18095         * metadata.c, reflection.c: simple speedup to type hash
18096         and equals code.
18097
18098 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
18099
18100         * image.c, image.h, class.c, assembly.c: move module loading
18101         to MonoImage. When loading metadata, consider alignemnet from
18102         the start of metadata, not from the metadata address in memory.
18103
18104 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
18105
18106         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
18107         AssemblyBuilder objects. Factored out custom attribute creation into
18108         a separate function.
18109         (create_custom_attr): new function to create custom attributes.
18110
18111 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
18112
18113         * Makefile.am: Got tired of typing the full pathname to pedump.
18114         Until there is another option, am installing this.
18115
18116 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
18117
18118         * class.c (class_compute_field_layout): always set field->parent 
18119         (mono_ldtoken): use mono_defaults.fieldhandle_class;
18120
18121 2003-02-11  Dick Porter  <dick@ximian.com>
18122
18123         * threads-types.h:
18124         * monitor.c: Rewrote Monitor, making lock much faster and
18125         Pulse/Wait work as specified.  Also uses much fewer handles, and only
18126         creates them as needed.
18127
18128         * exception.c: Added SynchronizationLockException
18129
18130         * threads.c: Deleted old Monitor implementation.  The new one is
18131         in a new file.
18132
18133 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
18134
18135         * class.c: handled TypedReference type code. Set the correct size for
18136         class data. Setup interface_offsets for interface classes, too.
18137
18138 2003-02-09  Martin Baulig  <martin@ximian.com>
18139
18140         * debug-mono-symfile.h: Reflect latest symbol writer changes.
18141
18142 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
18143
18144         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
18145         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
18146         * object.c: fixed mono_object_get_virtual_method () for interfaces.
18147         * verify.c: check for code that runs after the end of the method.
18148
18149 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
18150
18151         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
18152         "System.Math::Round2".
18153         * sysmath.h: Added Floor, Round and Round2 definitions.
18154         * sysmath.c: Modified certain functions that were not 100% compliant
18155         with MS.NET (math precision) and added the implementation of Floor,
18156         Round and Round2.
18157
18158 2003-02-07  Martin Baulig  <martin@ximian.com>
18159
18160         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
18161
18162 2003-02-07  Martin Baulig  <martin@ximian.com>
18163
18164         * debug-mono-symfile.c: Reflected latest symwriter changes.
18165         (mono_debug_create_mono_symbol_file): Removed.
18166         (mono_debug_open_mono_symbol_file): Take an argument which
18167         specifies whether to create a dynamic symbol file.
18168
18169 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
18170
18171         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
18172
18173 2003-02-05  Martin Baulig  <martin@ximian.com>
18174
18175         * reflection.c (mono_image_build_metadata): Make this public,
18176         protect it against being called multiple times, don't create
18177         resources and don't build the compressed metadata here.
18178         (mono_image_create_pefile): Do this here.
18179
18180         * icall.c
18181         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
18182
18183 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18184
18185         * socket-io.c: fixed bug #36322.
18186
18187 2003-02-06  Piers Haken <piersh@friskit.com>
18188
18189         * appdomain.[ch]:
18190         * class.h:
18191         * debug-mono-symfile.c:
18192         * icall.c:
18193         * loader.c:
18194         * mono-config.c:
18195         * monosn.c:
18196         * reflection.c:
18197         * socket-io.c: warning cleanups
18198
18199 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
18200
18201         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
18202         function. works like remoting invoke, but does a check for the Proxy first.
18203
18204 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
18205
18206         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
18207
18208 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
18209
18210         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
18211         array of pointers.
18212         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
18213         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
18214
18215         * object.c (mono_store_remote_field_new): used by the new jit
18216         instead of mono_store_remote_field
18217         (mono_load_remote_field_new): used by the new jit
18218         instead of mono_load_remote_field
18219
18220 2003-02-05  Patrik Torstensson
18221
18222         * appdomain.c: changed unload to take the domain id instead
18223         of domain
18224         
18225         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
18226
18227
18228 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18229
18230         * appdomain.c: don't look for assemblies in ApplicationBase if
18231         PrivateBinPathProbe is set.
18232
18233 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18234
18235         * object.c: make the first argument in main_args contain the absolute
18236         path to the assembly. Fixes bug #37511.
18237
18238 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18239
18240         * icall.c: get correct UTC offset for countries not using daylight
18241         time saving. Fixes bug #30030.
18242
18243 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18244
18245         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
18246         and 1 are the family).
18247
18248 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
18249
18250         * icall.c (ves_icall_InternalExecute): removed wrong assertion
18251
18252         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
18253
18254 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
18255
18256         * reflection.c: added support for SignatureHelper tokens, which is
18257         needed by the Calli opcode.
18258
18259         * reflection.h: track changes to SignatureHelper class.
18260
18261         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
18262
18263 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18264
18265         * appdomain.c: fixed loading assemblies from PrivateBinPath.
18266
18267 2003-02-03  Patrik Torstensson
18268         * appdomain.[c|h], domain.c : 
18269          - Added support for getting a domain via domain id
18270          - Support for setting and getting domain from System.AppDomain 
18271            (used in cross appdomain channel)
18272          - Added support for get/set for a MonoAppContext on a thread 
18273            (Context class in System.Runtime.Remoting.Contexts),
18274          - Removed hack in Get/SetData and ExecuteAssembly.
18275         
18276         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
18277         the managed world to get control when a proxy is created.
18278
18279         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
18280         
18281 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
18282
18283         * icall.c
18284         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
18285         Populate the codebase field as well.
18286
18287 2003-02-02  Martin Baulig  <martin@ximian.com>
18288
18289         * debug-mono-symfile.c
18290         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
18291         (mono_debug_symfile_add_method): Allow interncalls.
18292
18293 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18294
18295         * icall.c: throw parse exception if strtod fails or the string is empty.
18296
18297 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
18298
18299         * marshal.c: handle object type separately from defined
18300         class types.
18301
18302 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
18303
18304         * marshal.c: handle NATIVE_LPSTR for strings when it's
18305         explicitly specified.
18306
18307 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
18308
18309         * reflection.c, reflection.h, icall.c: setup the reflection
18310         handle cache for ModuleBuilders and AssemblyBuilders.
18311
18312 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
18313
18314         * reflection.c (reflection_methodbuilder_to_mono_method): set
18315         pinvoke flag
18316
18317 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18318
18319         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
18320
18321 2003-01-29  Dick Porter  <dick@ximian.com>
18322
18323         * threads.c: No need for the fake_thread kludge now that Thread
18324         doesn't run a class constructor
18325         
18326 2003-01-29  Dick Porter  <dick@ximian.com>
18327
18328         * threads.c: Use g_direct_hash instead of the rather bogus
18329         g_int_hash
18330
18331 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
18332
18333         * marshal.c (mono_marshal_get_native_wrapper): add check for null
18334         (fix pinvoke12.exe)
18335         (mono_marshal_get_struct_to_ptr): generate valid IL code
18336         (mono_marshal_get_ptr_to_struct): generate valid IL code
18337         (*): correctly set sig->pinvoke, we need to memdup the signature
18338         to do that
18339
18340 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
18341
18342         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
18343         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
18344
18345 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
18346
18347         * profiler.c: provide more callers information.
18348
18349 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
18350
18351         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
18352
18353         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
18354
18355         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
18356
18357 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18358
18359         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
18360         exception instead of going into an infinite loop on dates which it 
18361         can't yet handle.
18362
18363         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
18364         out-of-range exception if needed.
18365
18366         * class.c (mono_class_setup_vtable): allow a virtual method to provide
18367         an implementation for an interface method and to override an inherited
18368         method at the same time. 
18369         Imagine a scenario when a virtual method is used to override a
18370         virtual abstract method in a parent class, and this same method 
18371         provides an implementation for an method inherited from an interface. 
18372         In this case, the interface resolution code will set im->slot, which 
18373         means that the virtual method override pass will skip this method 
18374         which means a pointer to the abstract method inherited from the parent
18375         will remain in the vtable of this non-abstract class.
18376
18377         * class.c: (mono_class_setup_vtable): continue search for a real 
18378         method if only an abstract method is found.     
18379
18380 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
18381
18382         * reflection.c: add size to encoding for ByValStr and ByValArray
18383         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
18384
18385 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18386
18387         * class.c (mono_class_setup_vtable): pass the override info as an
18388         argument.
18389
18390         * class.c (mono_class_setup_vtable): set the slot of overriding methods
18391         correctly.
18392         
18393         * reflection.c (ensure_runtime_vtable); add support for method 
18394         overrides.
18395         
18396 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18397
18398         * reflection.c (resolution_scope_from_image): Hack to work to work with
18399         dynamic assemblies.
18400
18401         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
18402         added a 'force_ref' argument to force this function to allways return 
18403         a TypeRef. This is needed by mono_image_get_memberref_token ().
18404         
18405 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18406
18407         * reflection.c (mono_image_get_type_info): interfaces really don't have
18408         a parent.
18409
18410         * reflection.c (mono_image_basic_init): fill out missing fields of
18411         image structure.
18412
18413         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
18414         dynamic assemblies. This is required so dynamic assemblies show up in
18415         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
18416         Type::GetType() etc. This is consistent with MS behaviour.
18417
18418         * image.c image.h reflection.c: add newly created classes to the name 
18419         cache so mono_class_get () will find them.      
18420
18421 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18422
18423         First part of changes to get IKVM.NET running under mono.
18424         
18425         * appdomain.h, appdomain.c: added new function 
18426         mono_domain_try_type_resolve() which will emit TypeResolve events. 
18427         This function will call AppDomain::DoTypeResolve to do the actual work.
18428
18429         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
18430         moved existing code dealing with dynamic tokens to a new function 
18431         called mono_reflection_lookup_dynamic_token (). This function will 
18432         raise TypeResolve events when appropriate. Since reflection.c is not 
18433         part of libmetadata, a new hook function called 
18434         mono_lookup_dynamic_token() is added to class.c which will call this.
18435
18436         * assembly.h assembly.c: make the invoke_load_hook function public,
18437         so it can be called for dynamic assemblies.
18438
18439         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
18440
18441         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
18442         type isn't found.
18443
18444         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
18445         MonoGHashTable, since it contains pointers to objects which the GC 
18446         needs to track.
18447
18448         * assembly.c (search_loaded): remove unused variable.
18449         
18450 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
18451
18452         * object.c: fixed issue exposed by gcc-generated IL programs
18453         that use RVA data for pointers.
18454
18455 2003-01-25  Martin Baulig  <martin@ximian.com>
18456
18457         * threads.c (start_wrapper): Moved the initialization of
18458         `start_func' above the mono_new_thread_init() call to which we
18459         pass it as argument.
18460
18461 2003-01-24  Martin Baulig  <martin@ximian.com>
18462
18463         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
18464         the MonoThread pointer.
18465
18466 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
18467
18468         * icall.c: Rename `PowImpl' to Pow.
18469
18470 2003-01-23  Dick Porter  <dick@ximian.com>
18471
18472         * threads.c (start_wrapper): Create a Thread object if needed, so
18473         the Main() thread can do the class initialisation in a subthread
18474         that has been set up to allow managed code execution.
18475
18476         Pass the thread ID instead of the MonoThread pointer to the thread
18477         start and attach callbacks.  This change is required, because the
18478         jit thread start callback must be called _before_ the Thread
18479         object can be created.
18480         
18481         (mono_thread_init): Removed much object creation code that is no
18482         longer needed.  No managed code is called from here now.
18483
18484         * object.c (mono_runtime_exec_managed_code): Create a subthread
18485         for Main, and call back to the runtime to use it.
18486         Set the exit code when Main exits.
18487
18488         * gc.c: Make sure domain finalisation happens in a subthread.
18489         Re-enable threaded GC, fixing bug 31333 (again).
18490
18491         * environment.c: System.Environment internall calls (so far just
18492         ExitCode is here, the others are still in icall.c)
18493
18494         * appdomain.c (mono_runtime_cleanup): All threads running managed
18495         code should have finished before mono_runtime_cleanup() is
18496         reached, so no need to clean up threads.
18497
18498 2003-01-22  Martin Baulig  <martin@ximian.com>
18499
18500         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
18501         `gpointer func' arguments.      
18502         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
18503         but added `MonoThread *thread' argument.
18504         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
18505
18506         * threads.c (mono_new_thread_init): Added `gpointer func' argument
18507         and pass it to the mono_thread_start_cb callback.
18508         (mono_install_thread_callbacks): New public function to install a
18509         set of callbacks which are set by the debugger.
18510         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
18511
18512 2003-01-22  Martin Baulig  <martin@ximian.com>
18513
18514         * Makefile.am: Install debug-mono-symfile.h.
18515
18516 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
18517
18518         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
18519
18520 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
18521
18522         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
18523         * class.c (mono_ptr_class_get): correctly set access levels of pointers
18524         (mono_array_class_get): correctly set access levels of arrays
18525
18526 2003-01-20      Patrik Torstensson
18527         * image.h (MonoAssemblyName): changed major, minor, build, revision
18528         from signed to unsigned.
18529
18530 2003-01-20  sean kasun <skasun@azstarnet.com>
18531
18532         * reflection.c (load_cattr_value): Now this handles
18533         MONO_TYPE_SZARRAY.  Fixes bug #35629
18534
18535 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
18536
18537         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
18538         integer value
18539
18540 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18541
18542         * decimal.c: fixed bug #26056.
18543
18544 2003-01-17  Martin Baulig  <martin@ximian.com>
18545
18546         * gc.c: Raise an ExecutionEngineException instead of using g_error().
18547
18548 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18549
18550         * exception.[ch]:
18551         (mono_get_exception_type_initialization): new function.
18552
18553         * object.c: throw a TypeInitializationException when an exception is
18554         thrown invoking the class constructor.
18555
18556 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18557
18558         * reflection.c: fixed attribute reading.
18559
18560 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18561
18562         * icall.c:
18563         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
18564         provided, look for the type in the calling assembly and then in
18565         mscorlib; if the assembly name is provided, only try that one.
18566
18567 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
18568
18569         * object.c: register the vtable before there is a chance it's
18570         queried again recursively.
18571
18572 2003-01-13  Duncan Mak  <duncan@ximian.com>
18573
18574         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
18575         gc-internal.h. 
18576         
18577 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
18578
18579         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
18580
18581 2003-01-11  Martin Baulig  <martin@ximian.com>
18582
18583         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
18584         this to 20 for the release.
18585
18586 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
18587
18588         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
18589
18590         * loader.c (mono_method_get_marshal_info): bug fix
18591
18592         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
18593         structures with explicit layout
18594
18595 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
18596
18597         * profiler.c: made the output more readable (and sorted). 
18598         Added caller information for the allocation profiler.
18599
18600 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
18601
18602         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
18603
18604 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18605
18606         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
18607         to get value types.
18608         
18609 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
18610
18611         * object.c, profiler.h, profiler.c, profiler-private.h:
18612         Added object allocation profiler.
18613
18614 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
18615
18616         * reflection.h, reflection.c: handle global methods.
18617         Compress blob entries.
18618
18619 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
18620
18621         * marshal.c: fix compilation.
18622
18623 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
18624
18625         * loader.c (mono_method_get_marshal_info): impl.
18626
18627         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
18628
18629 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18630
18631         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
18632         for reference types.
18633
18634 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
18635
18636         * loader.c: fixed off by one error in loaded parameter names.
18637
18638 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
18639
18640         * marshal.c (mono_marshal_get_icall_wrapper): like
18641         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
18642         instead of a MonoMethod.
18643
18644 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18645
18646         * decimal.c: fixed bug #36537.
18647
18648 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
18649
18650         * marshal.c: throw a missing method exception if a
18651         P/Invoke method is not found.
18652
18653 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
18654
18655         * icall.c: allow a null this for constructors.
18656
18657 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
18658
18659         * icall.c: raise the proper exceptions if the arguments to the
18660         internal Invoke are incorrect.
18661
18662 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
18663
18664         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
18665
18666 2003-01-03  Martin Baulig  <martin@ximian.com>
18667
18668         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
18669
18670 2002-12-31  Martin Baulig  <martin@ximian.com>
18671
18672         * debug-mono-symfile.c: Completely rewrote the type section.
18673         Instead of using individual malloc()ed fields, we use one big
18674         continuous memory area and offsets into this area.
18675         See the comments in the source code for details.
18676
18677 2002-12-30  Martin Baulig  <martin@ximian.com>
18678
18679         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
18680
18681 2002-12-30  Martin Baulig  <martin@ximian.com>
18682
18683         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
18684         line number table in this data blob instead of using an external
18685         pointer.
18686
18687 2002-12-28  Martin Baulig  <martin@ximian.com>
18688
18689         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
18690
18691 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
18692
18693         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
18694         as a boxed return type.
18695
18696 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
18697
18698         * appdomain.c
18699         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
18700         g_build_filename to properly get separators on the filename created.
18701
18702         * object.h: Small change, introduce MonoMarshalByRefObject to
18703         track the layout of that structure in the C# universe as we make
18704         changes there.
18705
18706 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
18707
18708         * object.c: removed assert to allow static fields on interfaces.
18709         * loader.c: a TypeSpec may be used for any type, not just arrays.
18710
18711 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
18712
18713         * class.c, class.h: added mono_class_array_element_size ().
18714         Ignore static methods in interfaces.
18715
18716 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18717
18718         * threads.c: fixed the build under cygwin.
18719
18720 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
18721
18722         * reflection.c: handle nullref constants. Allocate keys for
18723         reflection handles with the GC.
18724
18725 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
18726
18727         * threads.c, threads.h: added mono_thread_get_abort_signal()
18728         to get a suitable signal for thread abort.
18729
18730 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
18731
18732         * metadata.c: fix handling of ExportedType table.
18733
18734 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18735
18736         * icall.c: added WriteWindowsDebugString internal call.
18737
18738 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18739
18740         * reflection.h: added fields to match C# implementation.
18741
18742 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18743
18744         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
18745
18746 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
18747
18748         * gc.h, gc-internal.h: Rename header for GC internal calls to
18749         gc-internal.h from gc.h as to not clash with Boehm GC having its
18750         header installed as <gc.h> in outside include paths.
18751         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
18752         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
18753
18754 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18755
18756         * icall.c: assign minor, build and revision in FillName.
18757
18758 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
18759
18760         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
18761         Added support for running code generated by Reflection.Emit.
18762
18763 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18764
18765         * appdomain.c: check for NULL argument in LoadFrom.
18766
18767 2002-12-10  Dick Porter  <dick@ximian.com>
18768
18769         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
18770
18771 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18772
18773         * appdomain.c: fix buglet when building exe file name.  Handle full
18774         assembly name (needed after latest changes to AssemblyName).
18775         * image.c:
18776         (mono_image_close): free some hashtables.
18777
18778 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
18779
18780         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
18781         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
18782         on some systems (redhat 7.3) 
18783
18784 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
18785
18786         * threads.c: delete the critical section of a sync block,
18787         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
18788
18789 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
18790
18791         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
18792
18793 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18794
18795         * appdomain.[ch]: handle the assembly preload event to try loading the
18796         assemblies using the paths we have in the current domain.
18797
18798         * assembly.[ch]: created an assembly preload hook that is called to try
18799         loading the assembly by other means that the ones provided here.
18800
18801         * domain.c: initialize the domain search path.
18802
18803         From now on, assemblies (TODO: except corlib and System) are loaded
18804         according to these rules when using mono_assembly_load ():
18805
18806                 1. It tries to load the assembly from the ApplicationBase
18807                 of the current domain appending .dll and .exe (TODO: have to
18808                 try loading from name/name.dll and name/name.exe).
18809
18810                 2. It tries the search path specified in PrivateBinPath for the
18811                 current domain (if any).
18812
18813                 3. Previous behavior.
18814
18815 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
18816
18817         * icall.c: implemented GetInterfaceMap() related icall.
18818         * domain.c, loader.h: load MethodInfo in mono_defaults.
18819
18820 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
18821
18822         * gc.c: disable the finalizer thread for now, untill all the issues
18823         with it are resolved.
18824
18825 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18826
18827         * string-icalls.c: handle embedded nulls in string ctor when the
18828         length is specified.
18829
18830 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
18831
18832         * class.c: look for explicit interface implementation in parent
18833         classes, too.
18834
18835 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
18836
18837         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
18838
18839 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
18840
18841         * gc.c: protect handles with a critical section.
18842
18843 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18844
18845         * icall.c:
18846         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
18847         parameters. If no assembly specified, try getting the type from all
18848         the assemblies in the current domain, else, load the assembly and get
18849         the type from it.
18850
18851 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18852
18853         * marshal.c: applied patch from Aleksey Demakov that fixes
18854         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
18855
18856 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18857
18858         * icall.c: fixed get_location.
18859
18860 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
18861
18862         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
18863         declarations to make it work with older gcc. 
18864
18865         * loader.c (mono_get_method): set signature->pinvoke for native calls
18866
18867 2002-11-20  Dick Porter  <dick@ximian.com>
18868
18869         * threads.c (mono_thread_init): Set the main thread's handle
18870
18871 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
18872
18873         * gc.c: allow compilation without GC support. Changed to match the
18874         mono coding style.
18875
18876 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
18877
18878         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
18879
18880 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
18881
18882         * reflection.c: set a public key token on the core assemblies.
18883
18884 2002-11-18  Dick Porter  <dick@ximian.com>
18885
18886         * threads.c: Split out some thread initialisation so that other
18887         files can set the start callback function.
18888
18889         * gc.c: Run finalisers in a separate thread, to avoid stack
18890         overflow.  Fixes bug 31333.
18891
18892         * appdomain.c: Set up GC finalisation thread.
18893
18894         * reflection.c: 
18895         * object.c: 
18896         * domain.c: Use gc.h macros for GC_malloc
18897         
18898 2002-11-15  Dick Porter  <dick@ximian.com>
18899
18900         * threadpool.c: 
18901         * threads.c:
18902         * appdomain.c: Removed mono_runtime_init_with_attach(),
18903         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
18904         merging the extra parameter with the existing function.  Removed
18905         unneeded code in mono_thread_attach().
18906
18907 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
18908
18909         * image.c (mono_image_loaded_by_guid): a method to get loaded
18910         images by guid. 
18911         (load_metadata_ptrs): we store the guid as string.
18912
18913 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
18914
18915         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
18916
18917         * metadata.c (mono_guid_to_string): imported method form Zoltan
18918         Varga (slightly modified)
18919
18920         * assembly.c (mono_assembly_open): load precompiled code
18921
18922         * loader.h (MonoMethod): we store the method token for use in the
18923         aot compiler. 
18924
18925 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18926
18927         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
18928         the hook function called when an assembly is loaded.
18929         
18930         * domain.c: Modified file.
18931         (mono_domain_assembly_load): removed hash table insertion of assemblies.
18932
18933         Fixes bug #33196.
18934
18935 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
18936
18937         * reflection.c: Map PEFileKind to the value expected by the WinNT
18938         image loader. 
18939
18940 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18941
18942         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
18943         Read until the buffer is filled completely.
18944
18945 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18946
18947         * icall.c: implemented MonoType.InternalGetEvent ().
18948
18949 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18950
18951         * appdomain.c: implemented InitAppDomainSetup. Delayed
18952         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
18953         the entry_assembly.
18954
18955         * assembly.c: base_dir is now an absolute path ending with
18956         G_DIR_SEPARATOR.
18957
18958         * icall.c: modified get_location according to the above changes.
18959
18960         * object.c: init AppDomain.SetupInformation for the default domain after
18961         we have the entry assembly.
18962
18963         * domain.c: when unloading a domain, setup = NULL.
18964
18965 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
18966
18967         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
18968
18969 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
18970
18971         * object.h, object.c: introduced mono_object_get_virtual_method ()
18972         to lookup the method invoked on an object when a callvirt is done on
18973         a method.
18974         * icall.c: make MethodInfo::Invoke() always do a virtual call.
18975
18976 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18977
18978         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
18979         current domain when loaded an assembly and failed to load it.
18980
18981         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
18982
18983 2002-10-31  Dick Porter  <dick@ximian.com>
18984
18985         * icall.c: 
18986         * file-io.h: 
18987         * file-io.c: Return the error status in a parameter, as the
18988         GetLastError() value has long since been blown away if we try and
18989         look it up in a subsequent internal call invocation.  Delete the
18990         GetLastError() internal call, because it's useless.
18991
18992 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
18993
18994         * class.[ch]: added cast_class to fix bug 29517
18995
18996 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
18997
18998         * marshal.c: create valid IL code in the filter clause:
18999         the new JIT is less forgiving:-)
19000
19001 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19002
19003         * icall.c: removed get_property internal call.
19004
19005 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
19006
19007         * appdomain.h domain.c: Added an ID to appdomains.
19008         
19009         * threads.c threads.h icall.c: Implement icall
19010         Thread:GetDomainID(), and remove unused icall 
19011         CurrentThreadDomain_internal.
19012
19013 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19014
19015         * icall.c: Don't recurse through the base types in GetConstructor.
19016         Fixes bug #32063. 
19017
19018 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
19019
19020         * mempool.h, mempool.c: added mono_mempool_empty() and
19021         mono_mempool_stats().
19022
19023 2002-10-23  Dick Porter  <dick@ximian.com>
19024
19025         * file-io.c: 
19026         * file-io.h: 
19027         * icall.c: Added MonoIO.GetFileType internal call
19028
19029 2002-10-17  Dick Porter  <dick@ximian.com>
19030
19031         * appdomain.c (mono_runtime_cleanup): Don't signal the async
19032         delegate semaphore before waiting for all threads to finish,
19033         because new threads can also call async delegates.  Fixes bug
19034         32004.
19035
19036         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
19037         of 3 seconds, in case another async job is queued.  (This part is
19038         needed because the bug fix reintroduced the 3s exit lag.)  This
19039         makes the mono_runtime_shutdown flag superfluous.
19040
19041 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
19042
19043         * reflection.c: include ehader size in method section headers.
19044         Really check for suplicated modules entries.
19045
19046 2002-10-17  Martin Baulig  <martin@gnome.org>
19047
19048         * debug-mono-symfile.c: Added back support for locals.
19049
19050 2002-10-14  Martin Baulig  <martin@gnome.org>
19051
19052         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
19053         MONO_TYPE_VOID.
19054
19055 2002-10-14  Martin Baulig  <martin@gnome.org>
19056
19057         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
19058         mono_class_get() instead of looking in the class cache. 
19059
19060 2002-10-13  Martin Baulig  <martin@gnome.org>
19061
19062         * debug-mono-symfile.c: Set version number to 28, include the
19063         signature in method names.
19064
19065 2002-10-13  Martin Baulig  <martin@gnome.org>
19066
19067         * debug-mono-symfile.h: Set version number to 27.
19068
19069 2002-10-11  Martin Baulig  <martin@gnome.org>
19070
19071         * gc.c: Don't register/unregister NULL pointers as disappearing links.
19072
19073 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19074
19075         * metadata.c, metadata.h: added helper function to allocate signatures.
19076
19077 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19078
19079         * icall.c: added internal call to get the location of machine.config.
19080
19081 2002-10-08  Martin Baulig  <martin@gnome.org>
19082
19083         * debug-mono-symfile.c: Ignore classes with a pending init for the
19084         moment.
19085
19086 2002-10-03  Dick Porter  <dick@ximian.com>
19087
19088         * threads.c: Freebsd pthread_t is a pointer
19089
19090 2002-10-03  Dick Porter  <dick@ximian.com>
19091
19092         * socket-io.c: Implemented GetHostName_internal
19093
19094 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19095
19096         * mono-config.c:
19097         (mono_config_parse_file): don't leak the text.
19098
19099 2002-10-02  Martin Baulig  <martin@gnome.org>
19100
19101         * debug-mono-symfile.c: Added support for methods.
19102
19103 2002-10-01  Martin Baulig  <martin@gnome.org>
19104
19105         * debug-mono-symfile.c: Don't emit methods and line numbers for
19106         the dynamic symbol file, just write the type table.  We can easily
19107         have an external helper program which creates a symbol file for an
19108         IL file.        
19109
19110 2002-10-01  Dick Porter  <dick@ximian.com>
19111
19112         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
19113         Only add the handle to the cleanup array when we're about to
19114         launch the thread.  Bug 31425 deadlocked when the test was run on
19115         mono under w32.
19116
19117 2002-10-01  Martin Baulig  <martin@gnome.org>
19118
19119         * debug-mono-symfile.c: Added support for properties.
19120
19121 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
19122
19123         * reflection.c: unaligned store fix from Mark Crichton
19124         <crichton@gimp.org>.
19125
19126 2002-09-27  Martin Baulig  <martin@gnome.org>
19127
19128         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
19129         New interncall.
19130
19131 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
19132
19133         * assembly.h, assembly.c: use a sane API to hook into the assembly
19134         loading process instead of a useless special-purpouse hack
19135         (ngen needs a hook, too, for example).
19136
19137 2002-09-27  Dick Porter  <dick@ximian.com>
19138
19139         * threads.c (mono_thread_init): Call GetCurrentProcess() so
19140         io-layer can set up some process handle info.  Not needed on w32,
19141         but doesn't hurt either.
19142
19143         * process.c: Pass the program name in the second parameter to
19144         CreateProcess, so the path is searched.  Include the working
19145         directory. Implemented process name, process enumeration, and some
19146         process detail internal calls.
19147         
19148         * icall.c: Added internal calls for process lookup, and some
19149         process details
19150
19151 2002-09-26  Martin Baulig  <martin@gnome.org>
19152
19153         * assembly.c (mono_install_open_assembly_hook): New global
19154         function to install a function to be invoked each time a new
19155         assembly is loaded.
19156         (mono_assembly_open): Run this callback function if set.
19157
19158         * debug-mono-symfile.c: Put back line numbers for the dynamic
19159         symbol file and also record the .il file as source file.  This
19160         allows us to install the temporary symbol file as `file.dbg' just
19161         like a compiler-generated one.
19162
19163 2002-09-26  Nick Zigarovich <nick@chemlab.org>
19164
19165         * Corrected typo in gc.c (BOHEM vs BOEHM).
19166
19167 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19168
19169         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
19170         GetProperties. Also avoid calling g_slist_length in GetProperties and
19171         GetMethods.
19172
19173 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
19174
19175         * reflection.c: avoid unaligned stores (bug spotted by
19176         Mark Crichton  <crichton@gimp.org>).
19177
19178 2002-09-25  Martin Baulig  <martin@gnome.org>
19179
19180         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
19181         instead of guint64 for addresses and added prologue/epilogue info.
19182
19183 2002-09-25  Martin Baulig  <martin@gnome.org>
19184
19185         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
19186         store line number info.  For the dynamic symbol file, we only need
19187         to provide the JIT generated dynamic line number info for the dynamic
19188         symbol file.
19189
19190 2002-09-25  Martin Baulig  <martin@gnome.org>
19191
19192         * debug-mono-symfile.h: Incremented version number.
19193
19194 2002-09-24  Martin Baulig  <martin@gnome.org>
19195
19196         * class.c (mono_debugger_class_init_func): New global function
19197         pointer variable.
19198         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
19199         call it.
19200
19201         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
19202         function.  This is called via the mono_debugger_class_init_func
19203         hook to add all types to the dynamic type table.
19204         (ves_icall_MonoDebugger_GetType): New interncall to get a class
19205         from its metadata token.
19206
19207         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
19208         New interncall for the debugger.
19209
19210 2002-09-24  Nick Drochak <ndrochak@gol.com>
19211
19212         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
19213         before using it in case it is null.
19214         
19215 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19216
19217         * metadata.c: allow custom modifiers in local var signatures
19218         (bug spotted by Zoltan Varga).
19219
19220 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
19221
19222         * class.c: deal with the <Module> class that may have a NULL vtable.
19223         Eliminate warnings.
19224
19225 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19226
19227         * image.c, image.h: more strong name helpers.
19228         * monosn.c: more work: convert pem keys to cryptoapi format.
19229
19230 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
19231
19232         * string-icalls.c: speedup IndexOf.
19233
19234 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19235
19236         * icall.c: updates from Zoltan.2.Varga@nokia.com.
19237
19238 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19239
19240         * icall.c: cleanup: use mono_object_domain ().
19241
19242 2002-09-23  Martin Baulig  <martin@gnome.org>
19243
19244         * debug-mono-symfile.c: Improved type support.
19245
19246 2002-09-22  Martin Baulig  <martin@gnome.org>
19247
19248         * debug-mono-symfile.c: Added support for reference types and strings.
19249
19250 2002-09-22  Martin Baulig  <martin@gnome.org>
19251
19252         * debug-mono-symfile.c: Started to work on the type table.
19253
19254 2002-09-21  Martin Baulig  <martin@gnome.org>
19255
19256         * debug-mono-symfile.c: Largely reworked the symbol table format.
19257         The symbol table is now incrementally updated each time a new
19258         method is added.  We're now also using our own magic and version
19259         so that you don't need to recompile all your classes if the
19260         dynamic table changes.
19261         (mono_debug_update_mono_symbol_file): Removed.
19262         (mono_debug_symfile_add_method): New function to add a method.
19263
19264 2002-09-21  Martin Baulig  <martin@gnome.org>
19265
19266         * icall.c
19267         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
19268         New interncall.
19269
19270         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
19271         New interncall to get a method from its metadata token.
19272
19273 2002-09-21  Martin Baulig  <martin@gnome.org>
19274
19275         * debug-mono-symfile.c: Create type table.
19276
19277 2002-09-20  Martin Baulig  <martin@gnome.org>
19278
19279         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
19280
19281 2002-09-20  Martin Baulig  <martin@gnome.org>
19282
19283         * debug-mono-symfile.c: Provide information about params and locals.
19284
19285 2002-09-20  Martin Baulig  <martin@gnome.org>
19286
19287         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
19288         New interncall.
19289
19290         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
19291         interncall to get a method from its metadata token.
19292
19293 2002-09-20  Martin Baulig  <martin@gnome.org>
19294
19295         * debug-mono-symfile.c: Added a few checks for method->header
19296         being non-NULL.  This should never happen, but for the moment
19297         let's use a g_warning() rather than a g_assert().
19298
19299 2002-09-19  Mark Crichton  <crichton@gimp.org>
19300
19301         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
19302         even if support for it isn't present.  Added an #ifdef to fix this.
19303
19304         * socket-io.c: Added checks back for Solaris support.
19305
19306 2002-09-19  Martin Baulig  <martin@gnome.org>
19307
19308         * debug-mono-symfile.c (read_string, write_string): Reflect latest
19309         changes in the symbol file format.
19310
19311 2002-09-18  Martin Baulig  <martin@gnome.org>
19312
19313         * debug-mono-symfile.c: Set version number to 21.
19314
19315 2002-09-18  Dick Porter  <dick@ximian.com>
19316
19317         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
19318         on netbsd.  Fixes bug 30051.
19319
19320 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19321
19322         * reflection.c:
19323         (set_version_from_string): little fix.
19324
19325 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19326
19327         * monosn.c, Makefile.am: added strong name utility.
19328         * reflection.h, reflection.c: implemented delayed signing,
19329         locale, version and hash id assembly attributes.
19330
19331 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
19332
19333         * loader.c, metadata.c: load param attributes in signatures.
19334
19335 2002-09-16  Martin Baulig  <martin@gnome.org>
19336
19337         * debug-mono-symfile.c: Added string table with all method names.
19338
19339 2002-09-14  Martin Baulig  <martin@gnome.org>
19340
19341         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
19342         fast method lookup.
19343
19344 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
19345
19346         * reflection.c: record the public key token of referenced assemblies.
19347
19348 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19349
19350         * image.c, image.h: added functions to get the strong name and the
19351         public key of an assembly.
19352         * pedump.c: use them.
19353
19354 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
19355
19356         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
19357
19358 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
19359
19360         * marshal.c (mono_marshal_get_managed_wrapper): Added
19361         MONO_TYPE_BOOLEAN 
19362
19363 2002-09-11  Martin Baulig  <martin@gnome.org>
19364
19365         * gc.c: Call GC_unregister_disappearing_link() on all links when
19366         finalizing them, this is necessary to aviod a crash in boehm's
19367         finalize handler.
19368
19369 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19370
19371         * gc.c: handle GetTarget for finalized objects spotted and fixed by
19372         nick@chemlab.org.
19373
19374 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
19375
19376         * icall.c: implemented MonoType::Module.
19377         * reflection.c, reflection.h: mono_module_get_object () from
19378         Tomi Pakarinen <tomi.pakarinen@welho.com>.
19379
19380 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
19381
19382         * icall.c: ignore overridden methods in GetMethods ().
19383         Fix for FieldInfo::SetValue().
19384         * object.c: handle float/double in runtime invoke.
19385
19386 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
19387
19388         * object.c: allow a constructor to be called again on an object.
19389
19390 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19391
19392         * class.h, class.c: move field layout code to it's own function and
19393         export it. Get an interface id earlier. Move fields in MonoClass
19394         so they are more cache friendly and align the bitfields.
19395         * loader.c: temporary handle get_param_names() for a runtime method.
19396         * reflection.c, reflection.h: more code to handle runtime creation of
19397         types.
19398
19399 2002-09-09  Martin Baulig  <martin@gnome.org>
19400
19401         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
19402         signature with the pinvoke field being set for the actual call.
19403
19404 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19405
19406         * icall.c: removed some unused icalls. Start of map of glib charsets
19407         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
19408
19409 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
19410
19411         * debug-helpers.c: break infinite loop (found and fixed by
19412         Holger Arnold <harnold@gmx.de>).
19413
19414 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
19415
19416         * icall.c: target may be null in create_delegate.
19417
19418 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19419
19420         * marshal.c: handle a boolean return type.
19421
19422 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19423
19424         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
19425
19426 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
19427
19428         * gc.c: fix weakreferences.
19429
19430 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
19431
19432         * icall.c: added icall to get default codepage.
19433
19434 2002-09-03  Dick Porter  <dick@ximian.com>
19435
19436         * threads.h: 
19437         * threads.c: Use MonoThread instead of MonoObject where
19438         apropriate.
19439
19440         Store running thread objects in a hash table, so that we have all
19441         the info to hand when waiting for them to finish
19442         (means we don't need OpenThread() any more, so mingw builds should
19443         be fully functional again.)
19444
19445         * verify.c:
19446         * object.h: Added thread ID to MonoThread
19447
19448 2002-09-03  Martin Baulig  <martin@gnome.org>
19449
19450         * icall.c (System.Reflection.Assembly::get_location): New interncall.
19451
19452 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19453
19454         * icall.c: fixed leak in get_temp_path. Thanks lupus.
19455
19456 2002-09-03  Martin Baulig  <martin@gnome.org>
19457
19458         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
19459         argument to store the end address of the disassembled instruction.
19460
19461         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
19462         here from debug-symfile.h.
19463         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
19464         JIT into this struct.
19465         (MonoSymbolFile): Added `char *image_file' field.
19466         (MonoDebugGetMethodFunc): Removed.
19467         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
19468         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
19469         (mono_debug_find_method): New method.
19470
19471         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
19472         create a full symbol file.
19473         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
19474         and static symbol files.
19475         (mono_debug_find_method): The symbol file keeps an internal method hash,
19476         call this to get a MonoDebugMethodInfo from a MonoMethod.
19477
19478         * debug-symfile.[ch]: Removed.
19479
19480 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
19481
19482         * image.c (do_mono_image_open): Remove linker version check.
19483
19484 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
19485
19486         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
19487         wrappers for instance methods.
19488         
19489 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19490
19491         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
19492
19493 2002-08-28  Dick Porter  <dick@ximian.com>
19494
19495         * Makefile.am: Export HOST_CC for w32 builds
19496
19497 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19498
19499         * file-io.c process.c: MonoString are null terminated, no
19500         need for mono_string_to_utf16() anymore.
19501
19502 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19503
19504         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
19505
19506 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
19507
19508         * icall.c, reflection.h: speedup System.MonoType.
19509
19510 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
19511
19512         * reflection.c: allow null as the value of a string argument in
19513         custom attributes constructors.
19514
19515 2002-08-27  Martin Baulig  <martin@gnome.org>
19516
19517         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
19518         `trampoline_address' field.
19519
19520 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
19521
19522         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
19523         check (fixes bug #29486) 
19524
19525 2002-08-27  Martin Baulig  <martin@gnome.org>
19526
19527         * debug-mono-symfile.c: Changed the file format in a way that allows us
19528         open it read-only and to use a specially malloced area for all the
19529         dynamic data.  We can now also generate a symbol file on-the-fly if we're
19530         debugging IL code and there is no MCS generated symbol file for it.
19531
19532 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
19533
19534         * object.c: added a define for a good string and array
19535         creation speedup (not enabled by default because we need to deal with
19536         the synch stuff).
19537
19538 2002-08-26  Martin Baulig  <martin@gnome.org>
19539
19540         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
19541         function to create a dynamic symbol file.  This is used by the
19542         debugger to create a symbol file for IL code on-the-fly.
19543
19544 2002-08-26  Martin Baulig  <martin@gnome.org>
19545
19546         * loader.c (mono_lookup_pinvoke_call): Include the error message
19547         from g_module_error() in the error message.
19548
19549 2002-08-24  Martin Baulig  <martin@gnome.org>
19550
19551         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
19552         function to update the symbol file.  The symbol file is mmap()ed
19553         writable, but private.  This allows us to install the symbol file
19554         together with the assembly.
19555
19556 2002-08-24  Martin Baulig  <martin@gnome.org>
19557
19558         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
19559         but they can read the new symbol file format which mcs is now creating.
19560
19561         * debug-symfile.c (mono_debug_find_source_location): Moved to
19562         debug-mono-symfile.c; this is now operating on the new symbol file.
19563
19564 2002-08-23  Martin Baulig  <martin@gnome.org>
19565
19566         * debug-helpers.c (mono_method_desc_from_method): New function to get
19567         a MonoMethodDesc from a MonoMethod.
19568
19569 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
19570
19571         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
19572         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
19573
19574 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
19575
19576         * string-icalls.[ch]: make helper methods static.
19577
19578 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19579
19580         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
19581         types to it and to SetValueInternal.
19582
19583         * object.c: Moved handle_enum label to its proper place. This was the
19584         f... bug! ;-)
19585
19586         This time i compiled mcs and gtk-sharp and they both work.
19587
19588 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19589
19590         * icall.c: reverted partially my previous patch until 
19591         object.c:set_value handles enums correcly.
19592
19593 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19594
19595         * icall.c:
19596         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
19597         (ves_icall_System_Environment_get_MachineName): removed warning when
19598         compiling under cygwin.
19599
19600 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19601
19602         * object.c: fixed field_get_value() for reference types.
19603
19604 2002-08-22  Dick Porter  <dick@ximian.com>
19605
19606         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
19607         Don't free a buffer while it's still needed.  Patch from Jonathan
19608         Liger <Jonathan.liger@wanadoo.fr>
19609
19610 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
19611
19612         * icall.c (ves_icall_System_Environment_get_Platform): Add new
19613         internal call.
19614
19615 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
19616
19617         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
19618         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
19619
19620         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
19621         we call unmanaged code which throws exceptions.
19622
19623 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19624
19625         * appdomain.h: added per-domain entry_assembly.
19626         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
19627         arguments.
19628         * icall.c: Assembly::GetEntryAssembly icall.
19629         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
19630         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
19631
19632 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19633
19634         * appdomain.h, gc.c: added mono_domain_finalize ().
19635
19636 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19637
19638         * object.c:
19639         (mono_print_unhandled_exception): changed g_warning by g_printerr
19640         because g_log has a 1024 characters limit (yeah, i got a big stack
19641         trace). Don't print exception name, that should be in ToString 
19642         returned string.
19643
19644 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19645
19646         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
19647         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
19648
19649 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19650
19651         * object.c:
19652         (mono_print_unhandled_exception): after previous commit, i realized
19653         that MS calls ToString on the exception. I changed this function to
19654         do that. This way we get stack_trace for free.
19655
19656 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19657
19658         * object.c:
19659         (mono_print_unhandled_exception): invoke Message property instead of
19660         getting 'message' field from Exception. Don't allocate memory for
19661         'trace' and 'message' if not needed.
19662
19663 2002-08-18  Dick Porter  <dick@ximian.com>
19664
19665         * unicode.c: Fix asserts to match Encoder.cs checks
19666
19667 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19668
19669         * marshal.c: fix unaligned store issue and a few wrong
19670         opcode argument types.
19671
19672 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19673
19674         * icall.c: added GetUninitializedObjectInternal internal call.
19675
19676 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
19677
19678         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
19679         to the right domain.
19680
19681 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
19682
19683         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
19684
19685         * class.c (class_compute_field_layout): set blittable to false for Strings
19686
19687         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
19688
19689 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19690
19691         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
19692         first chunk of code to create types at runtime. Code to
19693         handle ReflectedType/DeclaringType. Make reflection handles
19694         domain specific.
19695
19696 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
19697
19698         * class.c: set correct name in arrays.
19699
19700 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
19701
19702         * appdomain.c (mono_domain_transfer_object): make it work with
19703         valuetypes. bug fixes.
19704
19705 2002-08-12  Dick Porter  <dick@ximian.com>
19706
19707         * object.h: Rename some parameters to avoid c++ keywords (Patch
19708         from Joseph Wenninger <kde@jowenn.at>)
19709
19710 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
19711
19712         * icall.c: added icall to implement Assembly.GetFile*.
19713
19714 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19715
19716         * reflection.h, reflection.c: code to embed managed resources.
19717
19718 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
19719
19720         * class.c: move all the type size stuff into
19721         class_compute_field_layout().
19722
19723 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19724
19725         * class.c: ensure enums have always the correct instance size.
19726         * unicode.c: remove wrong assert.
19727
19728 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
19729
19730         * assembly.c: fix mem corruption issue.
19731         * image.h, image.c: added mono_image_get_resource () to access
19732         managed resources.
19733         * icall.c: implemented Assembly.EntryPoint property and some
19734         Managed Resources related internalcalls.
19735
19736
19737 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
19738
19739         * image.c, image.h: impemented mono_image_get_entry_point ().
19740         * appdomain.c: use mono_image_get_entry_point.
19741
19742 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19743
19744         * reflection.c: support the object type argument when loading
19745         custom attributes.
19746
19747 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
19748
19749         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
19750         String as return type.
19751
19752 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
19753
19754         * reflection.c: fix encoding of named args for custom attrs to match
19755         the ms implementation. Read them back when instantiating custom
19756         attributes.
19757
19758 2002-08-02  Radek Doulik  <rodo@ximian.com>
19759
19760         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
19761         by Dietmar as quick fix
19762         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
19763         16 as stack size, used on more places as quick fix before Dietmar
19764         will fix it properly
19765
19766 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19767
19768         * object.h, object.c: added accessors for fields and properties.
19769
19770 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19771
19772         * class.c, class.h: made mono_class_get_field_from_name ()
19773         loop on parent types.
19774         Added mono_class_get_property_from_name ().
19775
19776 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19777
19778         * class.c, class.h: move the code to setup the type vtable in its own
19779         function so that it can be reused also for types created at runtime.
19780         Eliminate the "class" identifier from the header file.
19781         * reflection.c: setup the vtable for enums so that we can create
19782         objects for use in SetConstant ().
19783
19784 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
19785
19786         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
19787         instead of the delegate itself as this pointer (bug #28383)
19788
19789 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
19790
19791         * marshal.c (mono_marshal_get_managed_wrapper): added return type
19792         conversions.
19793
19794 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19795
19796         * loader.c: don't set the pinvoke bit on icalls.
19797
19798 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
19799
19800         * debug-helpers.c (mono_method_full_name): only print a number to
19801         indicate wrapper type (so that the output is more readable in traces).
19802
19803 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
19804
19805         * class.c (mono_class_init): include method override patch from Paolo
19806
19807 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
19808
19809         * icall.c: fixed GetTypeCode().
19810
19811 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
19812
19813         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
19814         use real delegate invoke function to make it work with multicast
19815         delegates (fix bug# 28291).
19816
19817 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19818
19819         * object.c: load constant strings.
19820
19821 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19822
19823         * reflection.c: no magic numbers.
19824         * tabledefs.h: security action enum.
19825
19826 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19827
19828         * assembly.c: fix possible memory corruption.
19829
19830 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
19831
19832         * reflection.h, reflection.c: added support for linking resources.
19833         * verify.c: check we have an updated corlib.
19834
19835 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
19836
19837         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
19838         string arrays.
19839         (mono_marshal_string_array): null terminate unmanaged string arrays.
19840         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
19841
19842 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19843
19844         * icall.c: Type.GetType () can now return also types from the
19845         calling assembly.
19846
19847 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
19848
19849         * loader.h, loader.c: stack walking support.
19850         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
19851         GetCallingAssembly.
19852
19853 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
19854
19855         * marshal.c: added optimisations for blittable types 
19856
19857         * class.c (mono_array_class_get): do not set blittable attribute on arrays
19858         (mono_class_setup_mono_type): set blittable attribute for single
19859         and double.
19860
19861         * marshal.c (mono_string_utf8_to_builder): impl.
19862         (mono_string_builder_to_utf8): impl.
19863         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
19864
19865 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
19866
19867         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
19868         (mono_marshal_get_managed_wrapper): impl. byref types
19869
19870 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19871
19872         * icall.c:
19873         (search_method): don't display debug message. 
19874
19875 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
19876
19877         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
19878
19879 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
19880
19881         * appdomain.c: set the missing filename when throwing exception.
19882
19883 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
19884
19885         * metadata.c (mono_type_size): code cleanup
19886         (mono_type_stack_size): removed some test code
19887
19888 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
19889
19890         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
19891         mono_get_exception_file_not_found now.
19892
19893         * exception.c (mono_exception_from_name_two_strings): New version
19894         that will call a constructor with two string arguments. 
19895         (mono_get_exception_file_not_found): New helper routine, used to
19896         report file-not-found errors.
19897
19898 2002-07-20  Dick Porter  <dick@ximian.com>
19899
19900         * process.h:
19901         * process.c: Pass file handles to CreateProcess
19902         
19903         * icall.c:
19904         * file-io.h:
19905         * file-io.c: Implemented CreatePipe
19906
19907 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
19908
19909         * metadata.c (mono_get_param_info): set alignment for value types
19910
19911 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19912
19913         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
19914         Constify mono_domain_assembly_open().
19915         * loader.c: handle null namespace in icalls.
19916
19917 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
19918
19919         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
19920         (emit_str_to_ptr_conv): marshal object as structs
19921
19922         * metadata.c (mono_type_to_unmanaged): marshal object as structs
19923
19924         * marshal.c (mono_marshal_get_runtime_invoke): support value types
19925
19926 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
19927
19928         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
19929         (mono_marshal_get_native_wrapper): we an now return value types
19930
19931 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19932
19933         * verify.c: more checks implemented.
19934
19935 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
19936
19937         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
19938         (fix bug #27695)
19939         (mono_marshal_get_native_wrapper): allow byref arguments
19940         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
19941         impl. PtrToStringXXX methods
19942         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
19943         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
19944         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
19945         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
19946         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
19947
19948 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19949
19950         * reflection.c: fix buglet in parsing an assembly name.
19951
19952 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
19953
19954         * marshal.c (emit_ptr_to_str_conv): first impl.
19955
19956 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
19957
19958         * object.c, class.h: cache the vtable in the class as suggested by
19959         vargaz@freemail.hu (Zoltan Varga).
19960
19961 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19962
19963         * class.h, loader.c: added mono_field_from_token().
19964         * verify.c: first cut of type checking code.
19965
19966 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
19967
19968         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
19969
19970 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
19971
19972         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
19973         (fix bug #27782)
19974         (mono_marshal_get_remoting_invoke): impl.
19975         (mono_delegate_begin_invoke): impl.
19976         (mono_mb_emit_save_args): impl.
19977         (mono_delegate_end_invoke): impl.
19978         (mono_marshal_get_delegate_begin_invoke):
19979         (mono_marshal_get_delegate_end_invoke):
19980         (mono_marshal_get_delegate_invoke): generate a special name for
19981         those methods (including the signature) and associate them whith
19982         the delegate class. 
19983
19984 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
19985
19986         * reflection.[ch]: 
19987         (mono_reflection_type_from_name): now it has a MonoImage parameter
19988         which is used as the default image to search the type in. If the image
19989         is NULL or getting the type from it fails, it defaults to corlib.
19990
19991         * icall.c: changed 1 call to mono_reflection_type_from_name to match
19992         new parameter.
19993
19994 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19995
19996         * reflection.c: update the parameter table index.
19997
19998 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
19999
20000         * domain.c: don't include the mark byte in the string hash.
20001
20002 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
20003
20004         * icall.cs: icall for Type.GetTypeCode ().
20005         * verify: a couple of fixes and disabled local initialization checks.
20006
20007 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
20008
20009         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
20010
20011         * debug-helpers.c (mono_method_full_name): print the type of the
20012         runtime wrapper
20013
20014         * metadata.c (mono_signature_hash): a hash function for signatures
20015         (mono_signature_hash): better hash algorithm
20016
20017         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
20018
20019         * debug-helpers.c (mono_method_full_name): this can now generate
20020         method names with signatures
20021
20022         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
20023         method dont have this pointers.
20024
20025 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
20026
20027         * reflection.c: fixup typebuilder tokens.
20028         * image.c: fix buglet.
20029         * marshal.h: remove whitespace.
20030         * metadata.h, metadata.c: reinstate code that was removed.
20031         * verify.c: handle catch directives and fix another couple of bugs.
20032
20033 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
20034
20035         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
20036         (mono_marshal_get_native_wrapper): make it comp. with the old code
20037         (mono_marshal_get_native_wrapper): support boolean
20038         (mono_marshal_get_managed_wrapper): support more types
20039
20040 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
20041
20042         * class.c (class_compute_field_layout): compute class->blittable attribute.
20043
20044 2002-07-09  Dick Porter  <dick@ximian.com>
20045
20046         * threads.c: Make the thread cleaning up cope with threads that
20047         call ExitThread()
20048
20049 2002-07-08  Radek Doulik  <rodo@ximian.com>
20050
20051         * reflection.c (method_encode_code): use non-translated values to
20052         compute finally_start, this fixes exception handling on ppc, yay!
20053
20054         * decimal.h (struct signscale): fix endianess
20055
20056 2002-07-07  Radek Doulik  <rodo@ximian.com>
20057
20058         * reflection.c: swap box_val and not val
20059
20060 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
20061
20062         * reflection.c, reflection.h: handle full assembly info in type name.
20063         Handle Type arguments when loading custom attributes.
20064         * icall.c: updated to use new mono_reflection_type_from_name () method.
20065
20066 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20067
20068         * loader.c:
20069         (method_from_memberref): also print assembly name when method not found.
20070
20071 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20072
20073         * icall.c:
20074         (ves_icall_TypeGetProperties): fixed bug #27473. 
20075
20076 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20077
20078         * reflection.c: display image name and token when cannot find the
20079         .ctor for an attribute.
20080
20081 2002-07-05  Martin Baulig  <martin@gnome.org>
20082
20083         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
20084
20085 2002-07-04  Dick Porter  <dick@ximian.com>
20086
20087         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
20088         compile on mingw.  This will cause mingw builds to not wait for
20089         subthreads to terminate after the main thread does.  I've lodged a
20090         bug with the mingw developers for them to wrap OpenThread().
20091
20092 2002-07-03  Dick Porter  <dick@ximian.com>
20093
20094         * threads.c: Store thread IDs instead of handles, because
20095         GetCurrentThread() returns a pseudohandle and therefore stores
20096         useless values.  mono_thread_cleanup() continues checking the
20097         array of threads until it is empty, to cope with subthreads
20098         spawning new threads after the main thread has finished.
20099
20100         * profiler.h:
20101         * profiler.c:
20102         * profiler-private.h: Pass the thread ID to thread profiler
20103         functions, instead of a handle
20104
20105 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20106
20107         * verify.c: fixes to make it more usable.
20108         * pedump.c: added --verify code to verify IL code in an assembly.
20109
20110 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20111
20112         * reflection.c: turn errors into warnings to allow compiling corlib.
20113
20114 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
20115
20116         * reflection.c: add special cases to compile corlib.
20117
20118 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20119
20120         * reflection.c: handle properties with only a set method.
20121
20122 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20123
20124         * opcodes.h: add enum with opcodes in opval order.
20125
20126 2002-07-01  Dick Porter  <dick@ximian.com>
20127         
20128         * object.h:
20129         * object.c (mono_runtime_run_main): Removed unneeded argument
20130
20131 2002-06-28  Martin Baulig  <martin@gnome.org>
20132
20133         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
20134
20135 2002-06-27  Dick Porter  <dick@ximian.com>
20136
20137         * threads.c: Store the handle in both the parent thread and in the
20138         subthread, to minimise the time between starting a new thread and
20139         storing its ID.
20140
20141 2002-06-26  Dick Porter  <dick@ximian.com>
20142
20143         * appdomain.c (mono_runtime_cleanup): Close the socket library
20144         after all the threads have finished, not before
20145
20146 2002-06-26  Martin Baulig  <martin@gnome.org>
20147
20148         * debug-symfile.c (mono_debug_find_source_location): Added
20149         `guint32 *line_number' argument.  If it's not NULL, store the line number
20150         there and return the file name without the line number.
20151
20152 2002-06-25  Dick Porter  <dick@ximian.com>
20153
20154         * icall.c:
20155         * process.h:
20156         * process.c: Process forking and other support functions
20157
20158 2002-06-25  Dick Porter  <dick@ximian.com>
20159
20160         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
20161         things dont happen when the image is closed.
20162         (mono_image_lookup_resource): Walk the resource section looking
20163         for a particular entry
20164
20165         * cil-coff.h: PE resource section decoding
20166
20167 2002-06-25  Dick Porter  <dick@ximian.com>
20168         
20169         * assembly.h:
20170         * assembly.c: 
20171         (mono_assembly_foreach): Accessor functions to walk the list of
20172         loaded assemblies
20173         (mono_assembly_set_main):
20174         (mono_assembly_get_main): Process methods need to know which
20175         assembly is the "main" one
20176
20177         * object.c (mono_runtime_run_main): Record the main assembly
20178
20179         * debug-helpers.c: Fix typo
20180
20181 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
20182
20183         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
20184         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
20185
20186 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20187
20188         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
20189
20190 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
20191
20192         * image.c (do_mono_image_open): Initialize reference count,
20193         otherwise we leak the MonoImage.
20194
20195 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
20196
20197         * reflection.c: small tweak to handle self-hosting.
20198
20199 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
20200
20201         * reflection.c: fix type name parse code.
20202
20203 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20204
20205         * reflection.c: break out of the loop.
20206         * image.c: special case corlib.
20207
20208 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20209
20210         * reflection.c: add all the custom attrs at the end to ensure the
20211         ctors have been properly initialized when the attributes are defined
20212         in the current assembly.
20213
20214 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20215
20216         * reflection.c: handle correctly multiple-nested types.
20217
20218 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
20219
20220         * row-indexes.h: fix typos.
20221         * reflection.c: adjust for typos and fix method_def_or_ref
20222         encoding in MethodImpl table.
20223
20224 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20225
20226         * reflection.c: fix entry point patching (thanks Serge!).
20227
20228 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
20229
20230         * verify.c: add check for System.Exception
20231
20232 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
20233
20234         * image.c, class.c: minifix for code just c&p'ed.
20235         * reflection.c: warning fix.
20236         * object.h, loader.h, domain.c: load also StringBuilder.
20237
20238 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20239
20240         * marshal.h, marshal.c: some support code to handle complex marshaling.
20241
20242 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20243
20244         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
20245         Better signatures with vtable error dump.
20246
20247 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
20248
20249         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
20250
20251 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
20252
20253         * icall.c (ves_icall_Type_GetField): impl.
20254
20255 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20256
20257         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
20258         to retrieve a marshal description blob for a field or param.
20259
20260 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
20261
20262         * reflection.h, reflection.c: change order of nested type emission
20263         to avoid table corruption. The NestedTypes table is sorted.
20264         * icall.c: change order of GetConstructor results to workaround mcs bug.
20265
20266 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20267
20268         * reflection.h, reflection.c: handle field and param marshal
20269         information.
20270
20271 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20272
20273         * icall.c, marshal.c marshal.h: more Marshal class implementation.
20274
20275 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20276
20277         * reflection.c: fix call convention.
20278
20279 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20280
20281         * reflection.h, reflection.c: mono_image_get_memberref_token()
20282         takes a type instead of a class, now. Added
20283         mono_image_get_array_token() to create tokens for the special
20284         multi-dim array methods.
20285
20286 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20287
20288         * assembly.c: handle modules (no assembly table). Split
20289         loading references in its own function.
20290         * class.c: handle moduleref resolution scope.
20291         * image.c, image.h: cache module name in image.
20292
20293 2002-06-07  Martin Baulig  <martin@gnome.org>
20294
20295         * reflection.c (mono_image_get_type_info): Only add a class layout entry
20296         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
20297
20298 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20299
20300         * icall.c: more signature fixes that used uint instead of int.
20301
20302 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20303
20304         * reflection.c: fixed signature of field refs.
20305
20306 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20307
20308         * class.c, reflection.c: handle typerefs of nested types
20309         (both on read and when writing files).
20310
20311 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
20312
20313         * icall.c: fix method signatures that tried to workaround the previous
20314         typo, d'oh!
20315
20316 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
20317
20318         * debug-helpers.c: fix typo.
20319
20320 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
20321
20322         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
20323         rewrote the PE/COFF writing code (our programs are understood by the
20324         ms runtime, now).
20325
20326 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
20327
20328         * gc.c, gc.h, icall.c: weakreference support.
20329
20330 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20331
20332         * Makefile.am, mono-config.c: use $(sysconfdir).
20333
20334 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20335
20336         * icall.c: changed default precision of Double.ToString() to 15.
20337         Fixed memory leak. Unified with Single.ToString.
20338
20339 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
20340
20341         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
20342
20343 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
20344
20345         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
20346         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
20347         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
20348         and myself.
20349
20350 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20351
20352         * debug-symfile.c, sysmath.c: yet more compilation fixes.
20353
20354 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20355
20356         * reflection.c, socket-io.c: more compilation fixes.
20357
20358 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20359
20360         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
20361         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
20362         unicode.c: warning and compiler compatibility fixes.
20363
20364 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20365
20366         * class.h, metadata.c: fixed warnings/compilation errors.
20367
20368 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20369
20370         * Makefile.am, mono-config.c, mono-config.h: configuration file
20371         support routines.
20372         * loader.c, loader.h: make Dll mapping configurable at runtime in the
20373         config file. Export methods to insert and lookup mappings.
20374
20375 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
20376
20377         * reflection.c: handle types and boxed objects in custom attr
20378         constructors.
20379
20380 2002-05-30  Martin Baulig  <martin@gnome.org>
20381
20382         * debug-symfile.c
20383         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
20384
20385 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
20386
20387         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
20388         to lookup the implmap row for a P/Invoke method.
20389         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
20390         P/Invoke method from the runtime on an as needed basis.
20391
20392 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
20393
20394         * metadata.c (mono_metadata_parse_signature): impl.
20395
20396 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20397
20398         * class.c: handle .pack directive.
20399
20400 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
20401
20402         * object.c: initialize static fields with RVA data.
20403
20404 2002-05-25  Martin Baulig  <martin@gnome.org>
20405
20406         * debug-symfile.c
20407         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
20408
20409 2002-05-24  Martin Baulig  <martin@gnome.org>
20410
20411         * debug-symfile.c
20412         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
20413         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
20414         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
20415
20416 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
20417
20418         * object.c: special case string ctros in invoke.
20419         * gc.c: silly whitespace changes.
20420
20421 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
20422
20423         * threadpool.[ch]: impl. a threadpool that can
20424         be used by mint and mono.
20425
20426 2002-05-22  Martin Baulig  <martin@gnome.org>
20427
20428         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
20429         The first argument is now a `MonoReflectionModuleBuilder *', the return
20430         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
20431         `methods' field to get the method builder.  The `token' argument is the
20432         unfixed token.
20433
20434         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
20435         invalid characters instead of g_assert_not_reached()ing.  This seems
20436         to be the behaviour of mscorlib.
20437
20438 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
20439
20440         * object.c (mono_runtime_invoke_array): applied patch from Rachel
20441         Hestilow to fix bug #25104
20442
20443 2002-05-21  Martin Baulig  <martin@gnome.org>
20444
20445         * debug-symfile.c (mono_debug_find_source_location): New function.
20446         Looks up an IL offset in the line number table and returns the source
20447         location as a string.
20448
20449 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20450
20451         * icall.c:
20452         (mono_double_ToStringImpl): changed %f by %g until we have something
20453         better.
20454
20455 2002-05-21  Nick Drochak  <ndrochak@gol.com>
20456
20457         * icall.c : Use different name for Math.Pow's icall.  Needed to check
20458         parameters first in C#.
20459
20460 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20461
20462         * icall.c, reflection.h: added icall to get info about an event.
20463
20464 2002-05-20  Radek Doulik  <rodo@ximian.com>
20465
20466         * object.c (mono_value_box): don't use memcpy for boxing on BIG
20467         endian
20468         (mono_value_box): don't use memcpy for small sizes on
20469         architectures with unaligned access
20470
20471 2002-05-20  Martin Baulig  <martin@gnome.org>
20472
20473         * reflection.c (mono_reflection_setup_internal_class): Don't crash
20474         if `tb->parent == NULL'.
20475         (mono_reflection_create_internal_class): New function.  This is
20476         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
20477         for enum types.
20478
20479         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
20480         New interncall.
20481
20482 2002-05-19  Martin Baulig  <martin@gnome.org>
20483
20484         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
20485         argument to get the length, don't default to the array length.
20486
20487 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
20488
20489         * assembly.c (mono_assembly_setrootdir): New function used to
20490         override the MONO_ASSEMBLIES directory.
20491
20492 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20493
20494         * icall.c: ValueType_GetHashCode() initialize local var.
20495
20496 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20497
20498         * reflection.c: sort custom attributes table.
20499
20500 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20501
20502         * reflection.c: support named args in custom attributes (write support).
20503
20504 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
20505
20506         * reflection.c: fix finally position calculation.
20507
20508 2002-05-15  Radek Doulik  <rodo@ximian.com>
20509
20510         * reflection.c: fixed endianess at many places
20511
20512         * icall.c (ves_icall_InitializeArray): comment out debug msg
20513
20514 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
20515
20516         * object.c (mono_unhandled_exception): new function to handle
20517         unhandled exceptions.
20518         (mono_unhandled_exception): call the UnhandledException event.
20519         (mono_runtime_delegate_invoke): impl.
20520
20521 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
20522
20523         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
20524         returns the RVA, not the direct pointer to the data. Handle the case
20525         when the class size is fixed.
20526
20527 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
20528
20529         * reflection.c: fix some endianess issues.
20530
20531 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
20532
20533         * object.c (mono_runtime_invoke): is now able to catch exceptions.
20534
20535         * threads.c (mono_thread_init): added a callback which is invoked
20536         at thread start.
20537
20538 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
20539         
20540         * icall.c: make GetHashCode return non-negative values.
20541
20542 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
20543
20544         * object.c, icall.c, gc.c: revert to address-based hashcode.
20545
20546 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
20547
20548         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
20549
20550 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20551
20552         * icall.c, class.c: special case <Module>.
20553
20554 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
20555
20556         * icall.c: fix bug in GetNow().
20557
20558 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
20559
20560         * object.c (mono_runtime_class_init): make sure that we call all
20561         static class constructors.
20562
20563 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20564
20565         * reflection.c: sort methodsemantics table.
20566
20567 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
20568
20569         * reflection.h, reflection.c: honour init locals setting.
20570
20571 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
20572
20573         * icall.c: copied Double ToStringImpl for Single ToStringImpl
20574
20575 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
20576
20577         * reflection.c: support ContructorBuilders in attribute blob creation.
20578
20579 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20580
20581         * reflection.c: some changes to build a binary that can be run
20582         directly in windows.
20583
20584 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
20585
20586         * loader.c: print a big message when an icall can't be found.
20587
20588 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20589
20590         * string-icalls.c: fix bug 24248.
20591
20592 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
20593
20594         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
20595         icall.c, reflection.h: separate assembly loading by pathname and by
20596         assembly name. Use the MONO_PATH env var to search for assemblies.
20597
20598 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20599
20600         * assembly.c, image.h: add some support for assemblies
20601         with multiple modules.
20602         * class.c, class.h: export mono_class_from_typeref().
20603         * loader.c: remove duplicated code and use mono_class_from_typeref(),
20604         instead.
20605
20606 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20607
20608         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
20609         documentation says (the ECMA one is correct).
20610
20611 2002-05-02  Dick Porter  <dick@ximian.com>
20612
20613         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
20614         Don't name the synchronisation mutex.
20615
20616 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
20617
20618         * rand.c
20619         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
20620         Make the prototypes match.
20621         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
20622         Same.
20623
20624         * icall.c
20625         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
20626         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
20627         all systems have tm.tm_zone, so use strftime() with %Z to print
20628         the timezone abreviation into a temp string.
20629
20630         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
20631         rather than mono_array_addr() on a MonoString on Big Endian
20632         machines.
20633
20634 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
20635
20636         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
20637         fix bug 24041
20638
20639 2002-04-30  Dick Porter  <dick@ximian.com>
20640
20641         * socket-io.c: Cope with SOCKET being an integer rather than a
20642         pointer now.
20643
20644         * threads.c: Added Thread_free_internal, to deal with thread
20645         handle cleanup.  Moved calls to handle_store() and handle_remove()
20646         to start_wrapper(), so each can only be called once.  Allocate
20647         synchronisation blocks with GC_malloc(), and use GC finalisation
20648         to close the handles.
20649
20650         * icall.c: added System.Threading.Thread::Thread_free_internal
20651
20652 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20653
20654         * icall.c: support Environment.Exit, CommandLineArgs().
20655
20656 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20657
20658         * object.c, object.h: added mono_runtime_run_main () and
20659         mono_runtime_get_main_args () for use in System.Environment.
20660
20661 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20662
20663         * gc.c: fix thinko, enable actual finalization since the jit is now
20664         fixed.
20665
20666 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20667
20668         * gc.c, object.c: take into account that an object may be offset wrt the address
20669         returned by GC_malloc().
20670
20671 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
20672
20673         * image.c: handle files without entries in the assembly table (modules).
20674
20675 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
20676
20677         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
20678         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
20679         allowed to be null when it's System.Object class setup.
20680
20681 2002-04-27  Martin Baulig  <martin@gnome.org>
20682
20683         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
20684         if `tb->parent == NULL' rather than crashing.
20685
20686 2002-04-28  Nick Drochak  <ndrochak@gol.com>
20687
20688         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
20689         calling acos() where asin() should have been called.
20690
20691 2002-04-26  Martin Baulig  <martin@gnome.org>
20692
20693         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
20694         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
20695         there's a subdirectory called `System', but we don't want to read that
20696         subdirectory as an assembly.
20697
20698 2002-04-25  Martin Baulig  <martin@gnome.org>
20699
20700         * debug-symfile.c: Reflect latest MonoString changes.
20701
20702 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20703
20704         * rand.c, rand.h: instance method icalls need to have an explicit
20705         this pointer as first argument in the C implementation.
20706
20707 2002-04-25  Nick Drochak <ndrochak@gol.com>
20708
20709         * icall.c: Fix typo in map for GetNonZeroBytes
20710
20711 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20712
20713         * string-icalls.c : String does now passes unit tests without any 
20714         errors, the following changes has been made:
20715         
20716         Implemented replace methods.
20717         Renaming of methods to (try) follow the standard.
20718         Fixed compare ordinal
20719         Made all memory allocated directly to function instead of via icall function.
20720         Small performance fix in is_in_array function
20721                         
20722  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
20723
20724         c (mono_string_Internal_ctor_charp_int_int):
20725         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
20726         sindex < 0, throw ArgumentOutOfRangeException instead of
20727         ArgumentNullException.
20728
20729         Added new check for length == 0, however
20730         I need to make it return String.Empty from the C code.
20731         
20732         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
20733         that calculate the length for us here.
20734         
20735         (mono_string_Internal_ctor_sbytep_int_int): Replaced
20736         mono_string_new_utf16 with mono_string_new, since value is utf8.
20737
20738 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20739
20740         * object.c: register the object for finalization if needed.
20741         Allocate one more char in the string for the terminating 0 char.
20742
20743 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20744
20745         * class.c, class.h, image.c: check if a type implemenst a destructor.
20746         Use the proper key for array class lookups.
20747         * icall.c: register the icalls in the System.GC class.
20748         * gc.c, gc.h: GC-related functions and icalls.
20749
20750 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20751
20752         * icall.c:
20753         * socket-io.c:
20754         * unicode.c: free some strings gotten from mono_string_to_utf8 and
20755         changed a couple of free () by g_free ().
20756
20757         * decimal.c: one-liner in the comments for decimal2string ().
20758
20759 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20760
20761         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
20762
20763 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20764
20765         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
20766         * object.c (mono_runtime_invoke_array) : handle null in params
20767
20768 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20769
20770         * string-icalls.c: fixed bug in split (one off bug)
20771
20772 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20773
20774         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
20775         * icalls.c: added String::Equals as internal method
20776
20777 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20778
20779         * threads.c: fixed bug in the double interlocked functions
20780
20781 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
20782
20783         * threads.c: implemented all of the new interlocked icalls.
20784         * string-icalls.c: fix a bug in insert.
20785         * icalls.c: added the icalls for interlocked, removed old string functions.
20786         
20787 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
20788
20789         * loader.c: fix off-by-one error when reading argument names.
20790
20791 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20792
20793         * profiler.c: win32 counter implementation (untested).
20794         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
20795         (the latter needs testing and more complete impl. from win32 folks).
20796
20797 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
20798
20799         * object.c: mono_array_new_full workaround mono_array_class_get
20800         problem.
20801
20802 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20803
20804         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
20805         * object.h (mono_string_chars): Changed casting type.
20806
20807 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20808
20809         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
20810                            method signatures to use gunichar2 instead of gint16.
20811
20812 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
20813
20814         * object.h, object.c: domain-specific versions of mono_object_new and
20815         mono_array_new.
20816
20817 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
20818
20819         * object.c: changed String layout
20820
20821         * string-icalls.c (mono_string_Internal_ctor_chara): added
20822         internal string constructors.
20823
20824 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
20825
20826         * threads.c: pass 'this' to the thread start routine.
20827
20828 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20829
20830         * string-icalls.c: fix IndexOf and LastIndexOf. Now
20831         InternalCompareStr don't call twice mono_string_cmp_char for the last
20832         character. Improved performance in mono_string_cmp_char.
20833
20834 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
20835
20836         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
20837         code into its own library: libmonoruntime.
20838
20839 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
20840
20841         * object.h, object.c: changed array format so that szarrays do not
20842         require a bounds structure.
20843         * icall.c, appdomain.c: support for new szarray format.
20844
20845 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
20846
20847         * metadata.c: compare also the retuns type when comparing signatures:
20848         we didn't do this as an optimization since really overloaded methods
20849         must differ also in the arguments, but this doesn't work with
20850         low-level IL code (or when using explicit conversion operators: see
20851         bug#23498 for an example).
20852
20853 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20854
20855         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
20856
20857 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
20858
20859         * icall.c: make MonoType::GetElementType its own icall.
20860
20861 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20862
20863         * icall.c: remove MonoMethod_get_Name().
20864         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
20865         object.
20866
20867 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20868
20869         * string-icalls.c: optimized a few methods.
20870
20871 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20872
20873         * icall.c: added all new string internal calls
20874         * string-icalls.c: added, new string internal call implementation.
20875         * object.c: added mono_string_new_size for allocating a string a size
20876
20877 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
20878
20879         * object.c (mono_object_isinst): use the same code as in the
20880         optimized x86 version.
20881
20882 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20883
20884         * profiler.c: TSC-based timer code (faster and more accurate).
20885         Not hooked up in configure, yet (set USE_X86TSC to 1).
20886
20887 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
20888
20889         * profiler.c, profiler.h: track time spent compiling methods.
20890         * threads.c: track thread creation/destruction.
20891
20892 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
20893
20894         * profiler.c, profiler.h, profiler-private.h: profiling interface
20895         and sample implementation. Moved here so that it can be used also by
20896         the jit.
20897
20898 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
20899
20900         * reflection.c, reflection.h: keep types and other handles separate in
20901         the hash tables for referred tokens. Add guid for modules.
20902
20903 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
20904
20905         * assembly.c: fix bugs found with valgrind.
20906         * metadata.h, metadata.c: added mono_metadata_guid_heap().
20907
20908 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
20909
20910         * threads: added icall support for getting current domain for
20911                    the thread.
20912  
20913 2002-04-13  Martin Baulig  <martin@gnome.org>
20914
20915         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
20916         (MonoDebugVarInfo): Added `index' field for register based addresses.
20917         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
20918         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
20919         `MonoDebugVarInfo *params' and `guint32 this_offset' with
20920         `MonoDebugVarInfo *this_var'.
20921
20922         * debug-symfile.c (relocate_variable): New static function to write
20923         a location description for a local variable or method parameter.
20924
20925 2002-04-12  Martin Baulig  <martin@gnome.org>
20926
20927         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
20928         stack offset and begin/end scope address of a local variable.
20929         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
20930         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
20931         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
20932
20933         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
20934         Added new relocation types for start/end scope of a local variable.
20935
20936 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20937
20938         * object.h: add mono_object_domain() macro.
20939         * reflection.c: handle typespecs.
20940         * icall.c: MonoMethod::get_Name() implementation.
20941
20942 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20943
20944         * icall.c: String::GetHashCode() icall implementation.
20945
20946 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20947
20948         * icall.c: String::IndexOfAny icall.
20949         * object.c, object.h: make array->max_length more useful.
20950         Intrduced mono_object_class() and mono_string_length() macros.
20951
20952 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20953
20954         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
20955         instead of g_unichar_isdigit.
20956
20957 2002-04-11  Nick Drochak  <ndrochak@gol.com>
20958
20959         * icall.c: Implement a simple Double.ToString().
20960
20961 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
20962
20963         * appdomain.h: only io-layer.h is supposed to be included.
20964         * icall.c: explicitly import environ. Fix warning.
20965
20966 2002-04-10  Nick Drochak  <ndrochak@gol.com>
20967
20968         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
20969                 return true even if it's not Daylight Savings time.
20970                 Only return false for the case where the function isn't
20971                 implemented for a plaform (read Windows).
20972
20973 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20974
20975         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
20976         data with a mutex.
20977
20978 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
20979
20980         * mempool.c (mono_mempool_alloc): only use g_malloc when
20981         absolutely necessary.
20982
20983 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
20984
20985         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
20986
20987         * class.c (mono_class_vtable): use domain mempool to allocate vtable
20988         (mono_class_proxy_vtable): use domain mempool
20989
20990 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
20991
20992         * appdomain.h, appdomain.c: split initialization that requires the
20993         execution engine support into mono_runtime_init().
20994
20995 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
20996
20997         * class.c (mono_class_init): don't include vtable inside MonoClass
20998         to save some memory, gather some statistics.
20999         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
21000
21001 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
21002
21003         * icall.c: internalcall implementation for ValueType.Equals().
21004
21005 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
21006
21007         * object.c (mono_message_init): moved 
21008         (mono_runtime_exec_main): new arch. independent impl.
21009         (mono_runtime_invoke_array): new method - like
21010         mono_runtime_invoke, but you can pass an array of objects.
21011         (mono_remoting_invoke): new arch. independent impl.
21012         (mono_message_invoke): new arch. independent impl.
21013         (mono_runtime_class_init): new arch. independent impl.
21014         (mono_runtime_object_init): new arch. independent impl.
21015
21016 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
21017
21018         * metadata.c, object.c, reflection.c: documented the exported
21019         functions.
21020
21021 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
21022
21023         * icall.c: simpler code to pass the assembly builder data to corlib.
21024         Implement GetNestedTypes() internalcall.
21025
21026 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
21027
21028         * class.c: warn if a type can't be loaded.
21029
21030 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
21031
21032         * image.h: typedef MonoImageOpenStatus
21033         * types.h: removed unused file
21034         
21035 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
21036
21037         * icall.c: Enum_ToObject accepts enum value arguments.
21038
21039 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
21040
21041         * class.c: move initialization of properties, events and nested
21042         classes, so that they happen for interfaces, too.
21043
21044 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
21045
21046         * icall.c: cleanup some ugly casts in Array_SetValue*.
21047
21048 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
21049
21050         * icall.c: the values array fro enums is of the correct type, now.
21051         Implement (correctly) getFullName instead of assQualifiedName for
21052         MonoType.
21053         * reflection.h, reflection.c: added mono_type_get_name ().
21054
21055 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
21056
21057         * assembly.c, image.h: for each MonoImage, record from wich assembly
21058         it was loaded.
21059         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
21060         Make Type.Assembly work.
21061
21062 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
21063
21064         * debug-symfile.h: use char* instead of gpointer to avoid
21065         unnecessary casts.
21066
21067         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
21068
21069         * icall.c (ves_icall_InternalExecute): impl. FielSetter
21070         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
21071
21072 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
21073
21074         * icall.c (mono_message_init): impl. (code cleanup)
21075         (ves_icall_InternalExecute): impl. FieldGetter
21076
21077         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
21078         defined we call all (non-static)methods through the vtable. 
21079
21080 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
21081
21082         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
21083         finalizer even though the memory is still referenced (and the chunk of
21084         memory is not freed).
21085
21086 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
21087
21088         * assembly.c: fix brokeness.
21089
21090 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
21091
21092         * class.c: kill some warnings. Check explicit interface method
21093         implementation also without considering the namespace.
21094         Load also literal strings in static class data.
21095
21096 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
21097
21098         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
21099         (default_assembly_name_resolver): Make the resolver take the
21100         "base" directory where the assembly was originally defined, so we
21101         can load DLLs that are in the same directory as the assembly that
21102         is being referenced.
21103
21104 2002-03-28  Dick Porter  <dick@ximian.com>
21105
21106         * file-io.h: 
21107         * file-io.c:
21108         * socket-io.c: 
21109         * unicode.h: 
21110         * unicode.c: Warning cleanups
21111
21112 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
21113
21114         * object.h, reflection.h: use the correct type instead of MonoObject.
21115
21116 2002-03-28  Martin Baulig  <martin@gnome.org>
21117
21118         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
21119         (mono_debug_update_symbol_file): Initialize classes if necessary.
21120
21121 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
21122
21123         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
21124         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
21125
21126 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
21127
21128         * assembly.h: fix function prototype.
21129         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
21130         * mono-endian.h: use const cast.
21131
21132 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
21133
21134         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
21135
21136 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
21137
21138         * loader.c: don't assert when a typeref can't be loaded, give
21139         a chance to the runtime to trow an exception instead.
21140         * loader.h: fix warning.
21141
21142 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
21143
21144         * class.c (mono_class_proxy_vtable): added proxy support
21145
21146 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
21147
21148         * icall.c: removed last of PAL calls, added System.Environment
21149         * file-io.h, file-io.c: MonoIO implementation
21150         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
21151
21152 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
21153
21154         * appdomain.c: do not use the byte marker in ldstr table lookup.
21155         * debug-helpers.c: allow two ':' to separate class and method name.
21156         * object.c: allocate arrays bounds with the GC, too.
21157         * verify: add a few more checks.
21158
21159 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
21160
21161         * reflection.c: output also literal strings. Allocate parameter data
21162         with GC_malloc() (thanks, Martin, for catching this!).
21163
21164 2002-03-26  Martin Baulig  <martin@gnome.org>
21165
21166         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
21167         include the `this' offset in the `param_offsets'.
21168
21169 2002-03-25  Martin Baulig  <martin@gnome.org>
21170
21171         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
21172         mono_debug_get_class() function to get the classes. Added new
21173         relocation types for arrays and strings.
21174         (mono_debug_get_class): New static function to search in all
21175         referenced assemblies for a metadata token.
21176
21177         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
21178
21179 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
21180
21181         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
21182         hold gc-allocated objects. Make the string heap a stream like the
21183         others. Removed duplicated code when writing stream info.
21184         Added asserts to catch possible buffer overflows. Set the sorted map
21185         for tables that need sorting. Added some documentation.
21186
21187 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
21188
21189         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
21190         for interned strings and vtables.
21191
21192 2002-03-24  Martin Baulig  <martin@gnome.org>
21193
21194         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
21195         it in the array since it was created with g_slist_prepend().
21196
21197 2002-03-24  Martin Baulig  <martin@gnome.org>
21198
21199         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
21200         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
21201         (mono_debug_method_from_token): Renamed to
21202         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
21203         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
21204
21205         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
21206         relocation types.
21207
21208         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
21209
21210 2002-03-24  Martin Baulig  <martin@gnome.org>
21211
21212         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
21213         (mono_debug_method_from_token): New func.
21214
21215         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
21216         New interncall, calls mono_debug_local_type_from_signature().
21217         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
21218         calls mono_debug_method_from_token().
21219
21220 2002-03-23  Martin Baulig  <martin@gnome.org>
21221
21222         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
21223         specifies the number of bytes to be converted, not the array size.
21224         Return the number of chars, not the number of bytes.
21225         (ves_icall_iconv_get_chars): The `byteCount' argument
21226         specifies the number of bytes to be converted, not the array size.
21227
21228 2002-03-23  Martin Baulig  <martin@gnome.org>
21229
21230         * reflection.h (MonoReflectionSigHelper): New type.
21231
21232         * reflection.c (mono_reflection_sighelper_get_signature_local),
21233         (mono_reflection_sighelper_get_signature_local): New functions.
21234
21235         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
21236         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
21237         interncalls.
21238
21239 2002-03-23  Martin Baulig  <martin@gnome.org>
21240
21241         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
21242         is_writeable is set.
21243         (mono_raw_buffer_update): New function to write the modified map
21244         back to disk.
21245
21246         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
21247
21248         * debug-symfile.c (mono_debug_update_symbol_file): Call
21249         mono_raw_buffer_update() when done writing.
21250
21251 2002-03-23  Martin Baulig  <martin@gnome.org>
21252
21253         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
21254
21255         * debug-symfile.c: Added support for arguments and local variables.
21256
21257 2002-03-23  Dick Porter  <dick@ximian.com>
21258
21259         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
21260         protected by ifdefs, hence breaking the w32 build.
21261
21262 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21263
21264         * object.c: implement is_interned() the right way.
21265
21266 2002-03-21  Martin Baulig  <martin@gnome.org>
21267
21268         * debug-symfile.[ch]: New files to handle debugging information
21269         files. There's also support to dynamically update these symbol
21270         files to include machine dependent information.
21271
21272 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
21273
21274         * threads.c (mono_thread_create): new function to create thread
21275         from C
21276
21277 2002-03-20  Martin Baulig  <martin@gnome.org>
21278
21279         * icall.c (ves_icall_InternalInvoke): Create a new object if the
21280         method is a constructor.
21281         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
21282         points to ves_icall_InternalInvoke().
21283
21284 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
21285
21286         * file-io.c: Flush shouldn't throw exceptions.
21287
21288 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
21289
21290         * file-io.c: FileStream flush support; FileSetLength now
21291         restores file pointer.
21292
21293 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
21294
21295         * class.c: set image for pointer classes.
21296
21297 2002/03/19  Nick Drochak <ndrochak@gol.com>
21298
21299         * sysmath.c: Forgot one.
21300
21301 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
21302
21303         * sysmath.c: Avoid redefining existing names.
21304
21305 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
21306
21307         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
21308         handled by runtime as icall rather than dllimport from libm.so
21309         * file-io.c, file-io.h: fixed handle argument type.
21310
21311 2002-03-18  Dick Porter  <dick@ximian.com>
21312
21313         * reflection.c (mono_image_get_type_info): rename interface to
21314         iface, because of "#define interface struct" on windows.
21315
21316 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
21317
21318         * class.c, class.h: rename and export mono_ptr_class_get().
21319         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
21320         * reflection.c, reflection.h, icall.c: better/saner type name
21321         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
21322         method signatures.
21323
21324 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
21325
21326         * class.c (mono_class_init): removed hardcoded GHC_SLOT
21327
21328         * icall.c (ves_icall_InternalInvoke): impl.
21329
21330 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21331
21332         * reflection.c: output the interface map table, too.
21333
21334 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
21335
21336         * class.c (class_compute_field_layout): separate computation of 
21337         static field layout
21338
21339 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
21340
21341         * icall.c: added System.Buffer support.
21342         * file-io.c: moved file icalls from PAL to FileStream.
21343
21344 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
21345
21346         * icall.c (ves_icall_System_Object_GetHashCode): impl.
21347
21348 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
21349
21350         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
21351
21352 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21353
21354         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
21355
21356 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
21357
21358         * debug-helpers.{c,h}: moved here from monograph some useful functions
21359         to locate a method by name/signature in a class or image. Included
21360         also a small and flexible IL disassembler.
21361
21362 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21363
21364         * reflection.c: fixup tokens in methods with small header size, too.
21365
21366 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
21367
21368         * object.c (mono_string_to_utf8): remove assert(!error), instead
21369         print a warning. 
21370
21371 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
21372
21373         * icall.c: update to the new mono_Array_class_get interface.
21374
21375 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
21376
21377         * appdomain.c, object.c: Boehm-GC enable.
21378         * icall.c: make get_data_chunk() support split data requests.
21379         Ensure a class is initialized in more cases. Return only the first
21380         property found in GetProperties() or the compiler gets confused. 
21381         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
21382         * reflection.h, reflection.c: add fixup mechanism for field and method
21383         tokens. Initialize assembly->typeref in a single place. Output
21384         properties after events. Support custom attributes for events, too.
21385         Typo fix for paramter custom attrs.
21386
21387 2002-03-07  Martin Baulig  <martin@gnome.org>
21388
21389         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
21390
21391 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
21392
21393         * class.c (mono_array_class_get): fix. for multi. dim. arrays
21394
21395 2002-03-06  Martin Baulig  <martin@gnome.org>
21396
21397         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
21398         non-zero lower bounds. See testcases #F10-#F13.
21399
21400 2002-03-05  Martin Baulig  <martin@gnome.org>
21401
21402         * exception.c (mono_get_exception_argument_out_of_range): New exception.
21403
21404         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
21405         ves_icall_System_Array_GetValue(), only calculate the absolute array position
21406         here.
21407         (ves_icall_System_Array_SetValue): Likewise.
21408         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
21409         as argument and does the actual work. This function is used when copying a
21410         multi-dimensional array.
21411         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
21412         now do all the widening conversions of value types.
21413         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
21414
21415 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21416
21417         * class.c: remove some magic numbers and use the smbolic names,
21418         instead. Added init_events() to load event info at class init time.
21419         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
21420         and mono_metadata_methods_from_event().
21421         * reflection.h, reflection.c: added support for writing out the evnets
21422         related information.
21423
21424 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
21425
21426         * reflection.h, icall.c: use a different method (GetInterfaces)
21427         to gather interface info and add isbyref, isprimitive and
21428         ispointer to the ves_icall_get_type_info() return value.
21429
21430 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
21431
21432         * class.h: stared adding support for events.
21433         * icall.c: split find_members implementation. Added debug icall to get
21434         the address of an object.
21435         * reflection.c: handle TypeBuilders in mono_type_get_object().
21436
21437 2002-03-01  Martin Baulig  <martin@gnome.org>
21438
21439         * icall.c (ves_icall_System_Array_GetLength): This must throw an
21440         ArgumentOutOfRangeException(), not an ArgumentException().
21441         (ves_icall_System_Array_GetLowerBound): Likewise.
21442         (ves_icall_System_Array_GetValue): Improved argument checking.
21443         (ves_icall_System_Array_SetValue): Improved argument checking.
21444
21445 2002-03-01  Martin Baulig  <martin@gnome.org>
21446
21447         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
21448         called with invalid arguments rather than just dying with g_assert().
21449         (ves_icall_System_Array_SetValue): Likewise.
21450         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
21451         raise a NotImplementedException instead.
21452         (ves_icall_System_Array_GetLength): Added argument checking.
21453         (ves_icall_System_Array_GetLowerBound): Added argument checking.
21454
21455 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
21456
21457         * object.h (mono_assert): new macros mono_assert and
21458         mono_assert_not_reached
21459
21460 2002-02-28  Martin Baulig  <martin@gnome.org>
21461
21462         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
21463         and "System::String::IsInterned" to "System::String::_IsInterned".
21464
21465 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
21466
21467         * icall.c: remove hacks for typebuilder. Added icall to create a
21468         modified type from a tybebuilder.
21469         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
21470         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
21471         to create a backing MonoClass for a TypeBuilder.
21472
21473 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21474
21475         * class.c, class.h: more refactoring of class init.
21476         Export mono_class_setup_mono_type() and mono_class_setup_parent().
21477
21478 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
21479
21480         * marshal.c, marshal.h: start of marshaling interface.
21481
21482 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
21483
21484         * icall.c: fix order in assembly qualified name icall.
21485
21486 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
21487
21488         * class.c: do not free str, since we store it in the hash table.
21489         * reflection.h: add label field to MonoILExceptionInfo.
21490         * reflection.c: handle references to more than one assembly. Handle
21491         case when there isn't a module created in the assembly.
21492
21493 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
21494
21495         * class.c: Fix typo. Start refactoring of class init code.
21496
21497 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
21498
21499         * appdomain.c: exit with 1 on error.
21500         * class.c: we already have the name in MonoClassField.
21501         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
21502         MonoStreamHeader instead of an offset of image->raw_metadata.
21503
21504 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
21505
21506         * appdomain.c (mono_init): Be even more descriptive about the error.
21507
21508 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
21509
21510         * appdomain.c: give the user an informative message when corlib can't
21511         be loaded.
21512
21513 2002-02-26  Martin Baulig  <martin@gnome.org>
21514
21515         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
21516         New icall to get the time zone data.
21517
21518 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21519
21520         * reflection.c: set virtual and raw size of section correctly.
21521         * threads.c: transfer domain information to newly created threads.
21522
21523 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
21524
21525         * class.c: when instancing a class in a domain, load the default
21526         vaules for static fields from the constant table. Fix System.Enum to
21527         not be an enum.
21528         * icall.c: implement Object::GetType() internalcall. Implemented
21529         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
21530         Fixed checking of binding flags in find_members().
21531         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
21532         * reflection.c: handle enumerations when writing to the constant
21533         table. Use a different object cache for types.
21534
21535
21536 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
21537
21538         * object.c (mono_object_isinst): fix for arrays
21539
21540         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
21541
21542 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
21543
21544         * object.c: don't use mprotect ()  and fix intern pool hash table
21545         lookup for big endian systems.
21546
21547 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21548
21549         * icall.c: change type_is_subtype_of () signature.
21550
21551 2002-02-21  Mark Crichton  <crichton@gimp.org>
21552
21553         * rand.c, rand.h: Added random number generator for
21554         System.Security.Cryptography classes.
21555
21556         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
21557
21558         * icall.c: Added System.Security.Cryptography calls.
21559
21560 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
21561
21562         * class.c, icall.c, metadata.c: better support for pointer types.
21563         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
21564         * reflection.c: Add support for getting custom attrs for properties
21565         and simplify some code.
21566
21567 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21568
21569         * icall.c: change getToken () and add custom attribute GetBlob()helper
21570         method.
21571         * reflection.h: add custom attrs array to the reflection builder structures.
21572         * reflection.c: encode and emit custom attributes for all the relevant
21573         reflection objects. Cache fieldref and methodref tokens. Change
21574         mono_image_create_token() interface to take a MonoDynamicAssembly.
21575         More complete custom attributes decoder. Load custom attributes for
21576         Assembly, Field, Method and Constructor objects, too. Make the
21577         returned array an Attribute[] one, not object[]. Added
21578         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
21579         custom attribute constructor.
21580
21581 2002-02-20  Dick Porter  <dick@ximian.com>
21582
21583         * icall.c:
21584         * rawbuffer.c:
21585         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
21586         problem code out for now).
21587
21588 2002-02-19  Radek Doulik  <rodo@ximian.com>
21589
21590         * object.c (mono_ldstr): use hash table to avoid multiple swapping
21591
21592 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
21593
21594         * icall.c: register the GetCustomAttributes method.
21595         * object.c, object.h: add mono_string_new_len ().
21596         * reflection.h, reflection.c: added mono_runtime_invoke(),
21597         mono_install_runtime_invoke(). Added
21598         mono_reflection_get_custom_attrs () to load custom attributes and
21599         create the attribute objects.
21600
21601 2002-02-19  Dick Porter  <dick@ximian.com>
21602         * threads-dummy-types.c:
21603         * threads-dummy-types.h:
21604         * threads-dummy.c:
21605         * threads-dummy.h:
21606         * threads-pthread-types.c:
21607         * threads-pthread-types.h:
21608         * threads-pthread.c:
21609         * threads-pthread.h:  Deleted obsolete files
21610
21611 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
21612
21613         * class.c (mono_class_vtable): runtime init the class when we
21614         allocate static class data.
21615
21616         * icall.c (ves_icall_System_Array_SetValue): check for null values.
21617
21618         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
21619         and String - but we will need generic marshalling support in the
21620         future. 
21621         (mono_init): set the domain name in a ms compatible way
21622
21623         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
21624         String[].
21625
21626 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
21627
21628         * object.c (mono_array_clone): use alloca() instead of g_malloc  
21629         for sizes
21630
21631         * appdomain.c (mono_domain_unload): impl.
21632
21633 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21634
21635         * appdomain.c, object.c: fix intern pool implementation.
21636         * class.c: fix alignment code.
21637
21638 2002-02-16  Radek Doulik  <rodo@ximian.com>
21639
21640         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
21641         and s2 > s1, just copy lower bytes to be compatible with little
21642         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
21643         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
21644
21645         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
21646         force big_endian to be 1 for big endian machines 
21647         (ves_icall_iconv_new_decoder): ditto
21648
21649 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
21650
21651         * socket-io.c (convert_sockopt_level_and_name): If the system
21652         doesn't define SOL_IP or SOL_TCP, get them by hand using
21653         getprotobyname() and caching the values (because this could be a
21654         slow operation).
21655         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
21656         Use the appropriate struct when the system does support it. Ie,
21657         not all systems have struct ip_mreqn so use struct ip_mreq when
21658         appropriate.
21659
21660 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
21661
21662         * reflection.c: handle finally clauses.
21663
21664 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
21665
21666         * socket-io.c: use g_snprintf() instead of snprintf.
21667
21668 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
21669
21670         * reflection.c (mono_param_get_objects): Cast second argument to
21671         mono_method_get_param_names to a const char** to silence the
21672         compiler warning.
21673
21674         * appdomain.c (mono_domain_assembly_open): Put parens around the
21675         truth statement in the for-loop.
21676
21677         * unicode.c (iconv_convert): Got rid of a compiler warning about
21678         int i being unused when the system has a new iconv.
21679         (iconv_get_length): Same.
21680
21681         * image.c (load_class_names): Cast the second argument to
21682         g_hash_table_insert() to char* to hush compiler warnings about the
21683         arg being a const.
21684         (mono_image_open): Same here.
21685
21686         * socket-io.c: Don't conditionally include sys/filio.h or
21687         sys/sockio.h here anymore since we now get them from
21688         io-layer/io-layer.h
21689         (inet_pton): If the system doesn't support inet_aton, implement
21690         using inet_addr and also #define INADDR_NONE if it isn't defined
21691         by the system.
21692
21693 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
21694
21695         * metadata.c, metadata.h: added function to get packing and size info
21696         of a typedef.
21697         * reflection.h, reflection.c: handle field RVA data. Save info about
21698         the table layout if needed. Assign typedef indexes to all the types
21699         before dumping the info about them to avoid forward reference problems.
21700
21701 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
21702
21703         * socket-io.c (convert_sockopt_level_and_name): ifdef
21704         SO_ACCEPTCONN because it is not defined on my system (old debian)
21705
21706 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21707
21708         * opcode.c: use stddef.h to get NULL.
21709
21710 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
21711
21712         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
21713         for FIONBIO, FIONREAD and SIOCATMARK.
21714         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
21715         define INADDR_NONE and besides, inet_addr() is deprecated and
21716         should not be used. Use inet_pton() instead - it also has the
21717         added bonus that it can easily handle IPv6 addresses as well.
21718         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
21719
21720 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
21721
21722         * decimal.c: remove _MSC_VER conditional.
21723
21724 2002-02-13  Dick Porter  <dick@ximian.com>
21725
21726         * socket-io.c: 
21727         * icall.c: Internal calls for Blocking, Select, Shutdown,
21728         GetSocketOption and SetSocketOption
21729
21730 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21731
21732         * assembly.cs: better resolver: use it instead of some kludgy
21733         code.
21734
21735 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
21736
21737         * reflection.c: the best way to speed-up the compiler is to avoid
21738         infinite loops.
21739
21740 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
21741
21742         * class.c (mono_class_vtable): changed the object layout
21743         (obj->vtable->class). 
21744         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
21745
21746 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21747
21748         * assembly.c: look for assemblies in the assembly dir, too.
21749
21750 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21751
21752         * class.c: fix thinko in mono_class_from_type().
21753
21754 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21755
21756         * exception.h, exception.c: added TypeLoadException.
21757         * object.h, object.c: added mono_array_clone ().
21758         * icall.c: handle throwOnError in AssemblyGetType().
21759         Added Array.Clone().
21760         * opcode.h, opcode.c: use a single value for the opcode val.
21761         Compile fix for non-gcc compilers.
21762
21763 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
21764
21765         * opcodes.c, opcodes.h: export interesting info about opcodes.
21766
21767 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
21768
21769         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
21770         icalls. 
21771
21772         * class.c (class_compute_field_layout): set element_class for enums
21773         (mono_class_create_from_typedef): set element_class for normal classes
21774
21775         * icall.c (ves_icall_System_Enum_get_value): impl.
21776
21777         * class.c (mono_class_create_from_typedef): do not set valuetype
21778         flag for System.ValueType and System.Enum
21779
21780 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
21781
21782         * unicode.c (iconv_convert): fix big endian problem.
21783
21784 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21785
21786         * class.c: add asserts if we are ever going to scribble over memory.
21787         * socket-io.c: not all systems have AF_IRDA defined.
21788
21789 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
21790
21791         * class.c (class_compute_field_layout): do not consider static
21792         fields to compute alignment
21793
21794 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
21795
21796         * appdomain.c (mono_appdomain_get): impl.
21797         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
21798
21799 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
21800
21801         * icall.c: ignore "file://" prefix when loading an assembly.
21802
21803 2002-01-23  Dick Porter  <dick@ximian.com>
21804
21805         * socket-io.c:
21806         * icall.c:
21807         * Makefile.am: Added socket support
21808
21809 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
21810
21811         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
21812         code back.  This should return the assemblies that are loaded by
21813         the runtime on behalf of an application domain. 
21814
21815         The current implementation is still broken, it just returns every
21816         assembly loaded, but until we get real applications domain this
21817         will do.
21818
21819 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
21820
21821         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
21822         AppDomain object.
21823
21824 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
21825
21826         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
21827         the mono_class_from_name lookup.
21828         (ves_icall_get_parameter_info): ditto.
21829         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
21830         method.
21831         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
21832
21833 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
21834
21835         * class.c: load also nested classes on class init.
21836         System.ValueType instance methods gets passed boxed
21837         values, unless methods in derived classed that get a pointer to the
21838         data.
21839         * icall.c: use better name parsing code in GetType().
21840         * image.c, image.h: add mono_image_loaded ().
21841         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
21842         * reflection.c, reflection.h: added mono_reflection_parse_type().
21843
21844 2002-01-22  Veronica De Santis <veron78@interfree.it>
21845
21846         * icall.c : Added mapping of internal calls for Manual and Auto reset events
21847         * threads.c : Added the implementation of internal calls for events
21848         * threads.h : Added prototypes of internal calls for events
21849         
21850 2002-01-21  Radek Doulik  <rodo@ximian.com>
21851
21852         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
21853
21854 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
21855
21856         * class.c (mono_class_init): set min_align to 1 (instead of 0)
21857         (mono_class_value_size): use min_align
21858
21859 2002-01-20  Dick Porter  <dick@ximian.com>
21860
21861         * threads.h:
21862         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
21863         so it compiles on w32.
21864
21865 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
21866
21867         * metadata.c (mono_type_stack_size): impl.
21868
21869         * class.c (mono_class_get_field): impl. memberref token
21870
21871 2002-01-16 Veronica De Santis <veron78@@interfree.it>
21872
21873         * icall.h : Added the internal calls mapping for CreateMutex_internal
21874                     and ReleaseMutex_internal.
21875         * threads.h : Added the prototype of mutexes internal calls.
21876         * threads.c : Added the implementations of mutexes internal calls.
21877
21878 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
21879
21880         * metaparse.h: removed unused file.
21881         * reflection.c, reflection.h: added stream_data_align () function 
21882         to align data in streams and keep stream aligned. Add support for
21883         exception support in method headers.
21884
21885 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
21886
21887         * unicode.c: make iconv_convert () return the number of bytess written
21888         in the output buffer.
21889
21890 2002-01-15  Dick Porter  <dick@ximian.com>
21891         * threads.c: Make the runtime's idea of infinite timeouts coincide
21892         with the class library's
21893
21894         Fix a particularly egregious bug in mono_thread_cleanup(). That
21895         code was so utterly bogus it must have been written on a Monday.
21896
21897 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
21898
21899         * reflection.h: add subtypes field to TypeBuilder.
21900         * reflection.c: encode constants for literal fields.
21901         Handle subtypes. Fix user string token (and add a zero byte)
21902         at the end.
21903         
21904 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
21905
21906         * class.c (mono_class_init): bug fix: assign slot numbers for
21907         abstract methods.
21908
21909 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21910
21911         * reflection.c: don't try to output a code RVA for abstract methods.
21912         Small fixes for method header format. Output parameter info to the
21913         ParamDef table. Save method overriding info to MethodImpl table.
21914         Fix property support. Allow typedef.extends to be a type in the
21915         building assembly.
21916         * verify.c: fix off-by-one error.
21917
21918 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
21919
21920         * class.c: fix mono_class_from_mono_type () for szarray types.
21921         Remove unused cache check in mono_class_from_type_spec().
21922         * icall.c: *type_from_name () functions handle simple arrays and byref.
21923         * reflection.c: handle byref and szarray types. Handle methods without
21924         body (gets P/Invoke compilation working). Handle types and fields in
21925         get_token ().
21926         * reflection.h: add rank to MonoTypeInfo.
21927
21928 2002-01-10  Dick Porter  <dick@ximian.com>
21929
21930         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
21931         internal calls
21932
21933 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
21934
21935         * icall.c: initialize class in type_from_handle ().
21936         Loop also in parent classes for get_method ().
21937         * reflection.c: properly encode class and valuetype types.
21938         Start on encoding TypeBuilder types. Handle fieldrefs.
21939         Use correct length when registering a user string.
21940         Handle ConstructorBuilder and MonoMethod in get_token ().
21941         Make mono_type_get_object () aware of cached types.
21942         * object.c: back out change to mono_string_new ().
21943
21944 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
21945         * object.c: mono_string_new should return a NULL when the string 
21946         passed in is NULL -- not try to deference it.
21947         
21948 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
21949
21950         * icall.c: hack to make IsSubType work for TypeBuilders.
21951         * reflection.c: emit constructors before methods.
21952         Retrieve param names in mono_param_get_objects().
21953
21954 2002/01/05  Nick Drochak  <ndrochak@gol.com>
21955
21956         * Makefile.am: fix list of headers and sources so automake 1.5
21957         doesn't complain. Removed \# at end of list.
21958
21959 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
21960
21961         * reflection.c: get token for a method ref. Set return type of
21962         constructor to void.
21963         * loader.c: debug message.
21964         * class.c: typo fix.
21965
21966 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
21967
21968         * icall.c: fix array init with rank > 1. FindMembers
21969         loops in parent class as well.
21970         * image.c: do not insert nested types in name cache.
21971         * reflection.c: warning fix.
21972         * reflection.h: add override method (for interface impl).
21973
21974 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
21975
21976         * metadata.c: fix customattr decoding.
21977
21978 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
21979
21980         * rawbuffer.cs: Added native Win32 implementation, avoids using
21981         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
21982
21983 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
21984
21985         * class.c: make the low-level routines handle the cache.
21986
21987 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
21988
21989         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
21990
21991 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
21992
21993         * class.c: fix mono_array_element_size() for objects.
21994         * class.h, class.c: add properties to MonoClass and load them
21995         at init time.
21996         * icall.c: check with isinst() when assigning a value to an array
21997         instead of requiring the classes to match exactly.
21998         Implemented icall for System.Type::GetType().
21999         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
22000         enums. Handle bindingflags when looking for methods and fields.
22001         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
22002         and mono_metadata_methods_from_property().
22003         * reflection.h, reflection.c: added structures for propreties,
22004         parameters and enums. Implemented mono_property_get_object() and
22005         mono_param_get_objects().
22006
22007 2001-12-18  Dick Porter  <dick@ximian.com>
22008
22009         * file-io.c: Use mono_string_to_utf16() instead of
22010         mono_string_chars()
22011
22012         * object.c: Added mono_string_to_utf16(), which copies the non
22013         NULL-terminated MonoString into a new double-null-terminated
22014         buffer.
22015
22016 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
22017
22018         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
22019
22020 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
22021
22022         * file-io.c: raise exceptions if handle is invalid.
22023
22024 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
22025
22026         * assembly.c: yet another check for mscorlib.
22027         * class.c, class.h: load nesting info for classes.
22028         * icall.c: many new functions to support the Reflection classes.
22029         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
22030         * reflection.h, reflection.c: mono_image_create_token(),
22031         mono_assembly_get_object(), mono_type_get_object(),
22032         mono_method_get_object(), mono_field_get_object(): methods to return
22033         objects that parallel the C representation of assemblies, types,
22034         methods, fields.
22035
22036 2001-12-11  Dick Porter  <dick@ximian.com>
22037
22038         * icall.c:
22039         * file-io.c: Internal calls for file IO.
22040
22041 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
22042
22043         * tabledefs.h: missing FileAttributes.
22044         * verify.h, verify.c: use is_valid_string () to simplify and check for
22045         valid strings more correctly. Fix warnings and speeling.
22046         Check more tables: Filed, File, ModuleRef, StandAloneSig.
22047         Check code: branches, maxstack, method calls.
22048
22049 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
22050
22051         * object.c (mono_object_allocate): removed static, so that the jit
22052         can allocate value types.
22053
22054         * icall.c (ves_icall_System_DateTime_GetNow): impl.
22055
22056 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
22057
22058         * class.c: init enum types right away and register the
22059         token->MonoClass map in mono_class_create_from_typedef ().
22060         * verify.h, verify.c: first cut of the verifier.
22061         * pedump.c: add --verify switch to verify metadata tables.
22062         * tabledefs.h: add some missing enums.
22063
22064 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
22065
22066         * class.c (mono_install_runtime_class_init): impl.
22067         (mono_class_init): renamed mono_class_metadata_init to
22068         mono_class_init, also removed the metadata_inited flag
22069
22070         * object.c (mono_object_isinst): use faster algorithm
22071
22072 2001-11-30  Radek Doulik  <rodo@ximian.com>
22073
22074         * mono-endian.h: reverted last change
22075         added function prototypes
22076
22077         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
22078         add mono-endian.c back
22079
22080         * mono-endian.c: returned back, as Paolo pointed out, it's needed
22081         for unaligned access, I've mistaked it with endianess. I am
22082         sorry.
22083         (mono_read16): fix reverted endianess
22084         (mono_read64): ditto
22085         (mono_read32): ditto
22086
22087 2001-11-30  Dick Porter  <dick@ximian.com>
22088
22089         * exception.c: Implement mono_exception_from_name()
22090
22091 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
22092
22093         * metadata.h, metadata.c: remove params_size and locals_size and their
22094         calculation from the metadata code: they are only usefult to the
22095         interp.
22096
22097 2001-11-29  Radek Doulik  <rodo@ximian.com>
22098
22099         * object.c (mono_ldstr): swap bytes here, it's probably not the
22100         best place, but works for me now, I'll redo it once I know mono
22101         better, also note that I add PROT_WRITE and don't reset back, also
22102         note that it's only affects big endians, so x86 should be OK
22103
22104         * mono-endian.h (read16): use just glib macros for both endians
22105
22106         * mono-endian.c: removed as glib macros are used in in
22107         mono-endian.h so we don't need to care about endianess for read
22108         macros as glib does that for us already
22109
22110 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
22111
22112         * class.h, class.h: take minimum alignment into consideration so
22113         that the fields of a class remain aligned also when in an array.
22114
22115 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
22116
22117         * loader.h, loader.c: add mono_method_get_param_names().
22118         * class.c: 0-init class fields.
22119
22120 2001-11-26  Dick Porter  <dick@ximian.com>
22121
22122         * icall.c:
22123         * threads-types.h:
22124         * threads.c: New file that handles System.Threading on all platforms
22125
22126         * object.c: 
22127         * object.h: Remove the synchronisation struct from MonoObject,
22128         replace it with a pointer that gets initialised on demand
22129
22130         * Makefile.am: Replace all the system-specific threading code with
22131         a single file that uses the new wrapper library
22132
22133 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
22134
22135         * class.c, class.h: add mono_install_trampoline() so that the runtime
22136         can register a function to create a trampoline: removes the ugly
22137         requirement that a runtime needed to export arch_create_jit_trampoline.
22138         * object.h, object.c: added mono_install_handler() so that the runtime
22139         can install an handler for exceptions generated in C code (with
22140         mono_raise_exception()). Added C struct for System.Delegate.
22141         * pedump.c: removed arch_create_jit_trampoline.
22142         * reflection.c: some cleanups to allow registering user strings and
22143         later getting a token for methodrefs and fieldrefs before the assembly
22144         is built.
22145         * row-indexes.h: updates and fixes from the new ECMA specs.
22146
22147 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
22148
22149         * class.h, class.c: add enum_basetype field to MonoClass.
22150         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
22151         to get index in the constant table reated to a field, param or
22152         property.
22153         * reflection.h, reflection.c: handle constructors. Set public-key and
22154         version number of the built assembly to 0.
22155         * row-indexes.h: update from new ECMA spec.
22156
22157 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
22158
22159         * class.h, class.c: add a max_interface_id to MonoClass.
22160         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
22161         since it's used to do that. Added mono_type_type_from_obj().
22162         Make GetType() return NULL instead of segfaulting if the type was not
22163         found. Handle simple arrays in assQualifiedName.
22164         * object.h: add a struct to represent an Exception.
22165         * reflection.c: output call convention in method signature.
22166         Add code to support P/Invoke methods and fixed offsets for fields.
22167
22168 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
22169
22170         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
22171         the value.
22172         * icall.c: use mono_array_addr instead of array->vector: fixes the
22173         reflection image writing.
22174         * reflection.c: init call convention byte to 0 in method signature.
22175         Encode the property signature. Don't output property-related methods
22176         twice. Really process the properties for a type (don't cast a field to
22177         a property, my mom always told me that).
22178         Fix 64 bit issues in pointer alignment in a different and more
22179         readable way.
22180
22181 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
22182
22183         * loader.h: Removed type class from MonoDefaults, added monotype
22184
22185         * loader.c: Loaded MonoType, removed loading of Type
22186
22187         * icall.c (my_mono_new_object): Now returns a System.MonoType,
22188         and fills in System.Type._impl with a RuntimeTypeHandle rather
22189         than the actual MonoClass *
22190
22191         (ves_icall_type_from_handle): change from type_class to
22192         monotype_class
22193
22194         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
22195         implemented
22196
22197         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
22198         implemented
22199
22200         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
22201
22202         (ves_icall_System_Reflection_Assembly_GetType): implemented
22203
22204         (ves_icall_System_MonoType_assQualifiedName): implemented
22205
22206         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
22207
22208 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
22209
22210         * assembly.c (mono_assembly_open): Implement a cache for the
22211         assemblies. 
22212
22213         (mono_assembly_close): only destroy the assembly when the last
22214         reference is gone.
22215         
22216 2001-11-09  Dick Porter  <dick@ximian.com>
22217
22218         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
22219
22220 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
22221
22222         * class.c (mono_class_metadata_init): bug fix: compute the right slot
22223
22224 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
22225
22226         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
22227         from Martin Weindel.
22228         * object.h: add mono_string_chars ().
22229
22230 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
22231
22232         * reflection.c (build_compressed_metadata): Eliminates warnings
22233         and uses 64-bit clean code.
22234
22235         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
22236         (mono_type_equal): Change signature to eliminate warnings.
22237
22238 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
22239
22240         * icall.c, loader.c: remove the internalcall array constructors.
22241         Changes to match the new MonoArray structure.
22242         * object.h, object.c: an array object doesn't allocate an extra
22243         vector. Add mono_array_new_full () to create jagged arrays easily.
22244
22245 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
22246
22247         * metadata.h, metadata.c: add mono_metadata_field_info () to
22248         retreive all the info about a field from vairous tables.
22249         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
22250         * class.h, class.c: augment MonoClassField with more info.
22251         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
22252         policy and load a field's RVA if needed.
22253
22254 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
22255
22256         * class.c (mono_class_metadata_init): create a trampoline for all
22257         virtual functions instead of actually compiling them.
22258
22259 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
22260
22261         * class.h, class.c: include name in MonoClassField.
22262         * class.c: fix fundamental type of System.Object and System.String.
22263         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
22264         tokens in ldtoken.
22265         * icall.c: remove internalcalls for the Reflection stuff that is now
22266         done in C# code.
22267         * loader.c: mono_field_from_memberref () implementation.
22268         * mono-endian.c: thinko (s/struct/union/g).
22269         * object.c, object.h: make the mono_string_* prototypes actually use
22270         MonoString instead of MonoObject.
22271         * reflection.c, reflection.h: updates for changes in the reflection
22272         code in corlib: we use C structures that map to the actual C# classes.
22273         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
22274         fat method header if needed and use the info from the ILGenerator for
22275         methods. Handle fields in types. Misc fixes.
22276
22277 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
22278
22279         * class.c (mono_class_metadata_init): bug fix: always allocate
22280         space for static class data
22281
22282 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
22283
22284         * class.c (mono_compute_relative_numbering): use relative
22285         numbering to support fast runtime type checks.
22286
22287 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
22288
22289         * class.c (mono_class_create_from_typeref): added debugging output
22290         to print class name when MonoDummy is returned instead of real class
22291
22292 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
22293
22294         * class.c (mono_class_metadata_init): interface offset table now
22295         contains pointers into the vtable - this is more efficient for the jit
22296
22297 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
22298
22299         * class.c (mono_class_metadata_init): use a temporary vtable (the
22300         old algorithm only worked for the interpreter, but not for the jit)
22301
22302 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
22303
22304         * loader.c (method_from_memberref): use mono_class_get to get the
22305         class of an array instead of using System.Array directly.
22306         (mono_get_method): also add MEMBERREF methods to the method cache
22307         which usefull for arrays.
22308
22309 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
22310
22311         * pedump.c (arch_compile_method): added to compute vtable entry
22312
22313         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
22314         number of interfaces.
22315         
22316         * class.h: merged MonoArrayClass into MonoClass
22317
22318         * class.c (mono_class_create_from_typedef): compute the vtable size and
22319         allocate space to include the vtable inside MonoClass
22320         (mono_class_metadata_init): initialize the vtable
22321
22322 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
22323
22324         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
22325         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
22326         * image.c: endian fixes by Laurent Rioux.
22327         * object.h, object.c: rename MonoStringObject to MonoString and
22328         MonoArrayObject to MonoArray. Change some function names to conform to
22329         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
22330         guint16* as first argument, so don't use char*.
22331         Provide macros to do the interesting things on arrays in a portable way.
22332         * threads-pthread.c: updates for the API changes and #include <sched.h>
22333         (required for sched_yield()).
22334         * icall.c: updates for the API changes above.
22335         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
22336         platforms that need them.
22337
22338 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
22339
22340         * class.c: set the correct type for all the fundamental
22341         type when loading the class.
22342
22343 2001-10-05  Dick Porter  <dick@ximian.com>
22344
22345         * threads-pthread.c (pthread_mutex_timedlock): Simple
22346         compatibility version for C libraries that lack this call.
22347
22348 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22349
22350         * class.c: MonoTypes stored in MonoClass are stored as
22351         fundamental MonoTypes when the class represents a
22352         fundamental type (System.Int32, ...).
22353         The TypeHandle return by ldtoken is a MonoType*.
22354         * icall.c: ves_icall_get_data_chunk () write out all the
22355         PE/COFF stuff. Implement ves_icall_define_method (),
22356         ves_icall_set_method_body (), ves_icall_type_from_handle ().
22357         * image.c: properly skip unknown streams.
22358         * loader.h, loader.c: add type_class to mono_defaults.
22359         * metadata.c, metadata.h: export compute_size () as
22360         mono_metadata_compute_size () with a better interface.
22361         Typo and C&P fixes.
22362         * pedump.c: don't try to print the entry point RVA if there is no entry point.
22363         * reflection.c, reflection.h: many cleanups, fixes, output method
22364         signatures and headers, typedef and typeref info, compress the metadata
22365         tables, output all the heap streams, cli header etc.
22366         * row-indexes.h: typo fixes.
22367
22368 2001-10-04  Dick Porter  <dick@ximian.com>
22369
22370         * object.h: Add a synchronisation mutex struct to MonoObject
22371
22372         * object.c (mono_new_object): Initialise the object
22373         synchronisation mutexes
22374
22375         * icall.c: System.Threading.Monitor internal calls
22376         
22377         * threads-pthread.h:
22378         * threads-pthread.c: System.Threading.Monitor internal calls
22379
22380         * threads-types.h: New file, includes the system-specific thread
22381         structures
22382         
22383         * threads-pthread-types.h:
22384         * threads-pthread-types.c: New files, handle pthread-specific
22385         synchronisation types
22386
22387         * threads-dummy-types.h: 
22388         * threads-dummy-types.c: New files of dummy support for
22389         thread-specific types
22390
22391         * metadata.c:
22392         * image.c:
22393         * pedump.c: include mono-endian.h not endian.h
22394         
22395         * Makefile.am: More threads files.
22396         Name mono-endian.h not endian.h
22397
22398 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
22399
22400         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
22401         stuff and implement a few more bits.
22402         * icall.c: a field needs to be dereferenced twice. Do not use the same
22403         name for two variables in the same scope.
22404         * image.c, image.h: cleanups.
22405
22406 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
22407
22408         * class.c (mono_class_metadata_init): bug fix: compute the right size
22409
22410 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
22411
22412         * icall.c: implemented some of the Reflection internalcalls.
22413         * image.c, image.h: start writing out the PE/COFF image.
22414         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
22415         that does the reverse than decode_blob_size ().
22416         * object.c: use mono_metadata_encode_value (). Move here
22417         temporary implementation of mono_string_to_utf8 ().
22418         * rawbuffer.c: make malloc_map static.
22419
22420 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22421
22422         * metadata.c: fix type comparison for arrays.
22423         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
22424         Added a couple of new classes to monodefaults.
22425         * icall.c: added a couple of Reflection-related internalcalls.
22426         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
22427         Added a byval_arg MonoType to MonoClass.
22428
22429 2001-09-28  Dick Porter  <dick@ximian.com>
22430
22431         * icall.c:
22432         * threads-pthread.h: 
22433         * threads-pthread.c: Implemented internal calls for
22434         LocalDataStoreSlot operations.  Applied mutexes around all shared
22435         data.  Reworked the thread creation and Start() operations to
22436         avoid a race condition.
22437         
22438         * threads-dummy.h:
22439         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
22440
22441 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
22442
22443         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
22444
22445 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
22446
22447         * class.c, loader.c: warn and return NULL instead of erroring out.
22448         * icall.c: added System.AppDomain::getCurDomain().
22449         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
22450
22451 2001-09-25  Dick Porter  <dick@ximian.com>
22452
22453         * threads-pthread.h:
22454         * threads-pthread.c: Implemented timed thread joining and added
22455         System.Threading.Thread::Join_internal internal call
22456
22457         * icall.c: Added System.Threading.Thread::Join_internal internal call
22458
22459         * threads-dummy.h:
22460         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
22461
22462 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
22463
22464         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
22465         mono_string_intern () to implement the semantics of the ldstr opcode
22466         and the interning of System.Strings.
22467         * icall.c: provide hooks to make String::IsIntern and String::Intern
22468         internalcalls.
22469
22470 2001-09-23  Dick Porter  <dick@ximian.com>
22471
22472         * threads-dummy.c: 
22473         * threads-dummy.h: New files of dummy threading routines
22474
22475         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
22476         support code based on system specifics
22477
22478         Rename PTHREAD_LIBS to THREAD_LIBS
22479         
22480 2001-09-23  Dick Porter  <dick@ximian.com>
22481
22482         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
22483         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
22484         internal calls.
22485         (mono_thread_init): Set up a Thread object instance to return when
22486         the main thread calls Thread.CurrentThread
22487         (mono_thread_cleanup): Wait for all subthreads to exit
22488
22489         * icall.c: New internal calls for System.Threading.Thread::Sleep
22490         (including Schedule) and CurrentThread
22491
22492         * threads.h: New file, to insulate thread-specific stuff from the
22493         rest of the code
22494
22495 2001-09-21  Dick Porter  <dick@ximian.com>
22496
22497         * threads-pthread.h: 
22498         * threads-pthread.c: New file, for handling pthreads-style
22499         threading support.  Start() now starts a new thread and executes
22500         the ThreadStart delegate instance.
22501
22502         * icall.c: Added the internalcall for
22503         System.Threading.Thread::Start_internal
22504
22505         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
22506
22507 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
22508
22509         * loader.c: work around the different signatures for delegates
22510         constructors csc generates in compiled code vs the ones compiled in mscorlib.
22511
22512 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
22513
22514         * class.h, class.c: add mono_class_get_field_from_name ().
22515         * *: Fix C comments and other ANSI C issues.
22516
22517 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
22518
22519         * endian.h, assembly.c: fix some endianness issues.
22520
22521 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
22522
22523         * loader.h, load.c: add delegate_class to mono_defaults.
22524         Handle runtime provided methods in mono_get_method ().
22525
22526 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
22527
22528         * loader.c (mono_get_method): use pinvoke for internal call
22529
22530         * icall.c: use pinvoke for internal call
22531
22532         * loader.c (method_from_memberref): set the method name
22533
22534 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
22535
22536         * metadata.c: help the compiler generate better code for
22537         mono_class_from_mono_type ().
22538
22539 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
22540
22541         * class.c (mono_class_metadata_init): delayed computing of the
22542         class size to mono_class_metadata_init ()
22543
22544 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
22545
22546         * class.c, class.h: add an interfaces member to MonoClass.
22547         * image.c, image.h: add assembly_name field to MonoImage
22548         from the assembly table.
22549         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
22550
22551 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
22552
22553         * class.c: Handle Array in mono_class_from_mono_type ().
22554         * metadata.c, pedump.c: some endian fixes.
22555
22556 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
22557
22558         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
22559         * metadata.c: fix small problem introduced with the latest commit.
22560
22561 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
22562
22563         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
22564         We don't need a MonoMetadata pointer anymore to compare signatures in
22565         mono_metadata_signature_equal (), update callers.
22566         Reduced memory usage an number of allocations for MonoMethodHeader and
22567         MonoMethodSignature.
22568
22569 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
22570
22571         * metadata.c: added compare for szarray.
22572
22573 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
22574
22575         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
22576         and add a couple more types to it and mono_defaults. Give an hint on
22577         classes that need implementing in our corlib and are referenced
22578         in mscorlib.
22579
22580 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
22581
22582         * class.h, class.c: keep track if a class is also an Enum.
22583         * loader.c: Implement a couple more types for use in libffi
22584         marshalling. Gives better diagnostics when failing to dlopen
22585         a library. Set method->klass for P/Invoke methods, too.
22586
22587 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
22588
22589         * class.c, class.h: add a MonoType this_arg to MonoClass that
22590         represents a pointer to an object of the class' type that
22591         can be used by the interpreter and later the type cache.
22592         Add best guess alignment info for valuetype objects.
22593
22594 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
22595
22596         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
22597         into MonoType: one less level of indirection and allocation and
22598         simplifies quite a bit of code. Added cache for MonoTypes that are
22599         used frequently, so that we don't need to allocate them all the time.
22600
22601 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
22602
22603         * class.c (mono_class_create_from_typedef): System.Enum is also a
22604         value type, although it does not derive from System.ValueType
22605         (maybe a bug in the ms compiler?)
22606
22607         * metadata.c (mono_type_size): return the right size for value types
22608
22609         * loader.c (mono_get_method): only initialize method header if not abstract
22610
22611         * class.c (mono_class_from_mono_type): use mono_default values. 
22612
22613 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
22614
22615         * *: use MonoClass pointers instead of <type_tokens>
22616         
22617         * class.h: new flag: metadata_inited.
22618
22619         * class.c (mono_class_metadata_init): impl.
22620         (mono_class_instance_size): impl.
22621         (mono_class_data_size): impl.
22622
22623 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22624
22625         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
22626         MonoClass now has the name and name_space fields. 
22627         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
22628         mono_get_method () takes and optional MonoClass as argument.
22629         Removed mono_typedef_from_name() and added mono_class_token_from_name()
22630         instead that takes advantage of a map from class names to typedef
22631         tokens in MonoImage.
22632
22633 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
22634
22635         * metadata.c: zero is not a valid alignment boundary.
22636         Merge MONO_TYPE_VOID in default decoding code.
22637
22638 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
22639
22640         * image.h: merged MonoMetadata into MonoImage
22641
22642         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
22643         identify the type of elements.
22644
22645 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
22646
22647         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
22648         * cil-coff.h: split MonoMSDOSHeader and add size info.
22649         * image.c: add some consistency checks.
22650         * metadata.c: fix row size computation: one programmer
22651         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
22652         add explanation for the locator routine.
22653         Fix decoding of size in method header.
22654         
22655 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
22656
22657         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
22658         (g_concat_dir_and_file): Bring g_concat_dir_and_file
22659         function from gnome-libs.  This uses the right path separator
22660         based on the OS, and also works around a bug in some systems where
22661         a double slash is not allowed. 
22662         (default_assembly_name_resolver): Use g_concat_dir_and_file
22663         (mono_assembly_open): ditto.
22664
22665 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
22666
22667         * metadata.c (mono_metadata_signature_equal): impl.
22668
22669         * *: void is now a realy MonoType (instead of using NULL)
22670         
22671         * metadata.c (do_mono_metadata_parse_type): use
22672         mono_metadata_parse_type to parse void value.
22673
22674 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
22675
22676         * metadata.c, metadata.h: in the signature and method header store
22677         only the space required for holding the loca vars and incoming arguments.
22678
22679 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
22680
22681         * metadata.c (do_mono_metadata_parse_type): treat void like any
22682         other type (instead of assigning NULL);
22683
22684 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
22685
22686         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
22687
22688 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
22689
22690         * image.c (do_mono_image_open): added a cache for arrays.
22691
22692 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
22693
22694         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
22695         decode a single column from a row in a metadata table and changes
22696         to take advantage of it in the typedef locator (gives a nice speed up).
22697         Store offset info for function params.
22698
22699 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
22700
22701         * image.h (MONO_IMAGE_IS_CORLIB): removed 
22702
22703 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
22704
22705         * assembly.c: how could mono_assembly_close () had ever worked?
22706         * metadata.c, metadata.h: provide offset info for local vars.
22707         Implement mono_type_size () to take care of alignment as well
22708         as size (it was mono_field_type_size in cli/class.c before).
22709
22710 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
22711
22712         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
22713
22714         * assembly.h (CORLIB_NAME): set to corlib.dll
22715
22716         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
22717
22718 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
22719
22720         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
22721         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
22722         tokentype.h: massive namespace cleanup.
22723
22724 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
22725
22726         * metadata.h, metadata.c: decode exception clauses when parsing method header.
22727
22728 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
22729
22730         * metadata.c (mono_metadata_free_type): added check for type !=
22731         NULL (void) before calling mono_metadata_free_type()
22732
22733 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
22734
22735         * metadata.h, row_indexes.h: added header with enumerations to use
22736         to index in the columns from tables in metadata and to decode coded
22737         tokens: we should start using this instead of embedding magic numbers
22738         all over the code.
22739
22740 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
22741
22742         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
22743         Move metadata_t info from cli_image_info_t to MonoImage, where
22744         it's easily accessible. Changed all the uses accordingly.
22745         Added the method and class caches to MonoImage.
22746         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
22747         and mono_metadata_decode_value () signature to be more consistent
22748         with the other parse functions (and simplify code). Taken advantage
22749         of zero-length array allocation with GCC. Removed reduntant (and
22750         wrong) MonoFieldType struct and use MonoParam instead. Changed
22751         mono_metadata_parse_field_type () to use common code for parsing.
22752         Added mono_metadata_typedef_from_field () and
22753         mono_metadata_typedef_from_method () to lookup a typedef index from a
22754         field or method token.
22755         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
22756
22757 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
22758
22759         * metadata.c (mono_metadata_parse_field_type): Implement. 
22760         (do_mono_metadata_parse_type): Split engine from
22761         mono_metadata_parse_type, so that we can create smaller structures
22762         for things that just have one pointer to the MonoType (look at
22763         the MonoFieldType)
22764
22765 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
22766
22767         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
22768         as Jan Gray found out, it is incorrect. 
22769
22770 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
22771
22772         * assembly.c: Implement asssembly loading.  This loads an image
22773         and loads all the referenced assemblies.  Come to think of it, we
22774         could always do lazy loading of the assemblies. 
22775
22776         * image.c (mono_image_open): Keep loaded images in a hashtable.
22777
22778         * image.h (MonoImage): Add reference count.
22779
22780 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
22781
22782         * assembly.c (mono_assembly_open): Keep track of the file name in
22783         case the assembly has no ASSEMBLY table.
22784
22785         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
22786         from get.c here.
22787
22788 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
22789
22790         * metadata.c, metadata.h: decode local vars in method header
22791         parse function. Change callers accordingly.
22792
22793 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
22794
22795         * metadata.h, cil-coff.h: protect against multiple inclusion.
22796         Added some new structures to hold information decoded from metadata:
22797         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
22798         and relevant decoding/free functions.
22799         * metadata.c: implement decoding functions. Add warning for out of bounds
22800         index in mono_metadata_locate(). Implement mono_get_method () to retreive
22801         all the info about a method signature and invocation. Remove check on
22802         uninitialized local var in parse_mh() and fix memory leak.
22803
22804 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
22805
22806         * metadata.h: More macros.
22807
22808         * tokentype.h: New file.
22809
22810 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
22811
22812         * assembly.c: added a consistency check and initialize
22813         some structures with g_new0().
22814         * metadata.c: fixed a couple more bugs in table size computation
22815         and add other checks for out-of bound access to metadata.
22816
22817 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
22818
22819         * metatada.c: fix bugs computing table sizes. Spew a
22820         warning when index in string heap is out of bounds.
22821
22822 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
22823
22824         * metadata.h: Add a couple of macros to manipulate tokens. 
22825
22826 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
22827
22828         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
22829         cli_section_tables).
22830
22831 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
22832
22833         * metadata.c (mono_metadata_user_string): New function, provides
22834         access to the UserString heap. 
22835
22836 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
22837
22838         * metadata.c: Add inline documentation.
22839
22840 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
22841
22842         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
22843         files. 
22844
22845 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
22846
22847         * typeattr.h: New file, TypeAttribute flags. 
22848
22849 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
22850
22851         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
22852         mono_assembly_ensure_section): Section loading code.
22853         (load_section_tables): Load the sections.
22854
22855         * mono/metadata/metadata.c (mono_metadata_locate_token,
22856         mono_metadata_locate): Functions to locate the information
22857         definition given a token or a table and an index.
22858         (mono_metadata_compute_table_bases): New.
22859         (compute_size): New function to compute the sizes of the various
22860         tables.
22861
22862         * mono/metadata/metadata.h: Finish listing the different index
22863         types. 
22864
22865         * mono/metadata/pedump.c: Improve to dump new information.
22866
22867 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
22868
22869         * mono/metadata/metadata.c: Entered all the tables matching
22870         Beta2. 
22871
22872         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
22873
22874
22875