2007-09-19 Martin Baulig <martin@ximian.com>
[mono.git] / mono / metadata / ChangeLog
1 2007-09-19  Martin Baulig  <martin@ximian.com>
2
3         * domain.c (mono_cleanup): Call mono_debug_cleanup() here.
4
5 2007-09-19  Martin Baulig  <martin@ximian.com>
6
7         * mono-debug.c (mono_debug_cleanup): Don't call
8         mono_debugger_cleanup(); this is now called earlier from mini_cleanup().
9
10 2007-09-19  Raja R Harinath  <harinath@gmail.com>
11
12         Fix crash on 'make run-test' in mcs/errors
13         * metadata.c (type_in_image): New.  Carve out of ginst_in_image.
14         Avoid more potential allocations in mono_class_from_mono_type.
15         (ginst_in_image): Update to changes.
16         (gclass_in_image): Rearrange slightly.
17
18 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
19
20         * class.c (mono_class_init): Move the code that sets up class->methods to 
21         mono_class_setup_methods () for inflated generic classes too. Ditto for properties.
22
23         * metadata.c (mono_metadata_get_inflated_signature): New function to return a
24         canonical instance of an inflated generic signature.
25         (mono_type_create_from_typespec): Remove an invalid free.
26
27         * loader.c (mono_method_get_signature_full): Use mono_metadata_get_inflated_signature.  
28
29 2007-09-18  Marek Habersack  <mhabersack@novell.com>
30
31         * domain-internals.h: added a declaration of the
32         mono_assembly_load_full_nosearch internal function.
33
34         * assembly.c (mono_assembly_load_with_partial_name): use
35         mono_try_assembly_resolve return value properly.
36         (mono_assembly_load_full_nosearch): copied the function body from
37         mono_assembly_load_full, without the code to invoke assembly
38         search hooks.
39         (mono_assembly_load_full): calls the above new function and if the
40         assembly is not resolved, invokes the search hooks.
41
42         * appdomain.c (mono_runtime_init): restore the global postload
43         assembly search handlers.
44
45 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
46
47         * class.c (mono_class_init): Make sure class->methods and class->properties
48         are never NULL in the generics case.
49
50         * metadata.c (free_generic_class): Enable this again, skip the dynamic case.
51
52 2007-09-17  Zoltan Varga  <vargaz@gmail.com>
53
54         * metadata.c (free_generic_class): Disable some code to fix the build.
55
56         * domain.c (mono_cleanup): Fix a crash introduced by a previous patch.
57
58         * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data
59         from the image mempool.
60
61         * metadata.c (free_generic_class): Free more data from the inflated class.
62
63         * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool.
64
65         * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
66         mempool.
67         (mono_type_create_from_typespec): Ditto.
68
69         * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
70         MonoImage to the caller.
71         (mono_init_internal): Save the opened image in a global variable.
72         (mono_cleanup): Close the image opened in get_runtimes_from_exe.
73
74         * reflection.c (resolve_object): Fix a leak.
75
76         * metadata.c: Fix the freeing of data in the generics caches.
77         
78         * metadata.c (free_generic_inst): Comment this out to fix the build.
79         (free_generic_class): Ditto.
80
81         * metadata.c: Free cached generic methods, instantinations and classes when
82         they are removed from the caches.
83         (mono_metadata_free_type): Free the type itself.
84
85         * class.c: Free the result of mono_class_inflate_generic_type () in a few
86         places.
87
88 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
89
90         * boehm-gc.c: restrict managed allocs to __thread supporting
91         architectures.
92
93 2007-09-16  Zoltan Varga  <vargaz@gmail.com>
94
95         * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
96         (mono_generic_class_get_class): Fix a leak.
97
98         * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
99         mono_metadata_free_type ().
100         (mono_metadata_inflate_generic_inst): Fix a leak.
101
102 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
103
104         * mono-debug.c (free_header_data): Fix a leak missed earlier.
105
106         * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
107         mempool.
108
109         * mono-debug.c (mono_debug_close_image): Fix call to 
110         g_hash_table_remove ().
111
112 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
113
114         * icall-def.h: redirect all the string ctor to the managed
115         CreateString () methods.
116         * string-icalls.c, string-icalls.h: removed dead code for string
117         ctors and icalls.
118
119 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
120
121         * mono-debug.c: Fix memory leaks.
122
123 2007-09-14  Jonathan Chambers <joncham@gmail.com>
124
125         * threads-types.h: Implement mono_hazard_pointer_set and 
126         mono_hazard_pointer_clear macros using do/while(0) to fix
127         compilation with MSVC.
128         
129         Code is contributed under MIT/X11 license.
130
131 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
132
133         * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
134         -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
135
136 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
137
138         * icall-def.h, string-icalls.c: get rid of old, no longer used, string
139         icalls.
140
141 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
142
143         * boehm-gc.c, gc-internal.h, object.c: allow strings to be
144         managed-code allocated as well.
145
146 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
147
148         * class.c (mono_class_is_assignable_from): Add support for generic variance.
149
150 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
151
152         * boehm-gc.c: fixed the build after the AOT changes.
153
154 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
155
156         * wrapper-types.h: Add an ALLOC wrapper type.
157
158         * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
159         reference managed allocator methods.
160
161 2007-09-12  Marek Safar  <marek.safar@gmail.com>
162
163         * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
164         of Type array and not MonoType, a fix suggested by Hari.
165         
166 2007-09-12  Jonathan Chambers <joncham@gmail.com>
167
168         * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
169         and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
170         
171         Code is contributed under MIT/X11 license.
172
173 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
174
175         * domain.c, object.c, mono-config.c, object-internals.h: Fixed  #82416.
176
177 2007-09-12  Marek Habersack  <mhabersack@novell.com>
178
179         * image.c (do_mono_image_open): if assembly file fails to open and
180         MONO_IOMAP is in effect, try to find the path in a
181         case-insensitive way.
182
183         * appdomain.c (mono_runtime_init): do not install postload hooks -
184         tests show that MS.NET doesn't use anything of that sort to
185         trigger the AppDomain.AssemblyResolve event.
186         (mono_try_assembly_resolve): renamed from try_assembly_resolve and
187         made non-static.
188         (mono_runtime_init): init portability helpers here.
189
190         * assembly.c (mono_assembly_load_with_partial_name): if other   
191         attempts fail, trigger the AppDomain.AssemblyResolve event handler
192         to resolve the assembly.
193
194         * domain-internals.h: added mono_try_assembly_resolve and marked
195         it as internal.
196
197 2007-09-11  Jb Evain  <jbevain@novell.com>
198
199         * object-internals.h (MonoReflectionDynamicMethod): add
200         a `MonoReflectionType *owner` field. The owner is used
201         * reflection.c:
202         (mono_reflection_create_dynamic_method): use the owner of the dynamic
203         method as the class declaring the dynamic method.
204         (reflection_methodbuilder_from_dynamic_method): copy the owner of the
205         dynamic method to the declaring type of the methodbuilder.
206
207 2007-09-11  Mark Probst  <mark.probst@gmail.com>
208
209         * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
210         rules for calling methods via reflection.
211
212 2007-09-11  Zoltan Varga  <vargaz@gmail.com>
213
214         * reflection.c (resolve_object): Add support for MonoGenericClass. 
215         Inflate MonoType's.
216
217 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
218
219         * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
220         provide a managed method that does fast allocations without needing
221         a managed->unmanaged transition. Boehm GC implementation currently
222         enabled for ptrfree objects on sane architectures.
223
224 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
225
226         * marshal.c, marshal.h: exported a couple of useful functions and
227         added mono_mb_get_label () to easily handle backward branches.
228
229 2007-09-10  Zoltan Varga  <vargaz@gmail.com>
230
231         * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
232
233 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
234
235         * loader.c (find_method): Fixed the regression introduced while
236         fixing bug #81466.
237
238 2007-09-09  Zoltan Varga  <vargaz@gmail.com>
239
240         * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
241         well.
242         
243         * class.c loader.c metadata.c object.c class-internals.h object-internals.h
244         icall.c reflection.c: Pass a MonoGenericContext argument to 
245         mono_lookup_dynamic_token ().
246
247         * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
248         #82744.
249         
250 2007-09-09  Robert Jordan  <robertj@gmx.net>
251
252         * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
253         for generic methods.
254
255         * object.c (mono_object_get_virtual_method): Handle generic methods.
256         Fixes bug #78882.
257
258         Code is contributed under MIT/X11 license.
259
260 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
261
262         * image.c: fix locking in mono_image_load_file_for_image ().
263
264 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
265
266         * reflection.c, icall.c, icall-def.h: the methodinfos name field is
267         used only as a cache: added an icall to fill it.
268
269 2007-09-16  Rodrigo Kumpera  <rkumpera@novell.com>
270
271         * reflection.h: exposed mono_reflection_free_type_info
272         * reflection.c (mono_reflection_get_type_internal): type_args is always freed
273         since mono_reflection_bind_generic_parameters makes a copy of it.
274         * reflection.c (free_type_info): subinfos should be freed.
275         * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and 
276         made non static.
277         * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
278         replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
279         this fixes #82695 and #81726.
280    
281
282 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
283
284         * process.h, process.c:  added support for user profile/info in
285           ProcessStartInfo. For now only Windows works.
286
287 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
288
289         * metadata.c: consider the generic arguments when comparing
290         signatures (bug #82614).
291
292 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
293
294         * cil-coff.h, image.c: updated assembly loader to cope with the
295         PE32+ 64 bit file format.
296
297 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
298
299         * assembly.c, class.c, domain.c, loader.c: remove useless
300         inclusion of cil-coff.h.
301
302 2007-08-29  Jonathan Chambers  <joncham@gmail.com>
303
304         * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
305         if interface is marked with CoClassAttribute. 
306    
307         Code is contributed under MIT/X11 license.
308
309 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
310
311         * sgen-gc.c: ensure no object from the to space is copied again or finalized
312         if it's seen twice in major collections.
313
314 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
315
316         * sgen-gc.c: big objects are not copied to the gray area, but they
317         need to be considered for scanning, too, if they are brought alive
318         by an object ready for finalizations or a survived one.
319
320 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
321
322         * sgen-gc.c: properly account the number of disappearing links when
323         they are nullified.
324
325 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
326
327         * sgen-gc.c: share the code to scan the registered roots between the
328         different types of collections.
329
330 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
331
332         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
333
334 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
335
336         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
337         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
338
339 2007-08-28  Mark Probst  <mark.probst@gmail.com>
340
341         * security-manager.c (mono_security_manager_get_methods):
342         LinkDemandSecurityException now has 2 arguments instead of 3.
343
344 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
345
346         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
347         platforms which need it.
348
349 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
350
351         * sgen-gc.c: unregister thread data structures with a pthread_key_t
352         dtor.
353
354 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
355
356         * threads.c: free the thread static data on thread exit.
357
358 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
359
360         * class.c: walk the hierarchy to find the generic definition for
361         a class (fixes runtime part of bug #82498).
362
363 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
364
365         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
366         ...
367
368         * image.c (mono_image_close): Here. Hopefully fixes #82510.
369
370 2007-08-24  Mark Probst  <mark.probst@gmail.com>
371
372         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
373
374 2007-08-24  Robert Jordan  <robertj@gmx.net>
375
376         * appdomain.c: don't perform the ':'->';' substitution on Win32.
377
378 2007-08-24  Jb Evain  <jbevain@novell.com>
379
380         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
381         for byref types.
382
383 2007-08-24  Mark Probst  <mark.probst@gmail.com>
384
385         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
386         #82286.
387
388 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
389
390         * assembly.c: Fix a warning.
391         
392 2007-08-23  Marek Habersack  <mhabersack@novell.com>
393
394         * appdomain.c: parse the <runtime> section looking for the probing
395         element with the 'privatePath' attribute, which sets additional
396         directories in which the runtime should look for assemblies.
397
398 2007-08-23  Robert Jordan  <robertj@gmx.net>
399
400         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
401         Fixes #82499.
402
403 2007-08-23  Martin Baulig  <martin@ximian.com>
404
405         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
406         _mono_debug_init_corlib() and remove it from the header file.
407
408 2007-08-23  Martin Baulig  <martin@ximian.com>
409
410         * mono-debug-debugger.c
411         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
412         don't notify the debugger about it.
413
414         * mono-debug-debugger.h
415         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
416
417 2007-08-23  Robert Jordan  <robertj@gmx.net>
418
419         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
420         Code is contributed under MIT/X11 license.
421
422 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
423
424         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
425
426 2007-08-22  Martin Baulig  <martin@ximian.com>
427
428         * mono-debug.c: Store debugging info on a per-domain basis and
429         free it on domain unload.  Add support for unloading symbol files.
430
431         * mono-debug.h
432         (MonoDebugList): New typedef.
433         (MonoSymbolTable):
434         - add `data_tables and `type_table'.
435         - replace 'symbol_files' and `num_symbol_files' with a
436           `MonoDebugList *'.
437         (mono_debug_data_table): Removed.
438         (mono_debug_list_add): New public function.
439         (mono_debug_list_remove): New public function.
440         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
441         (mono_debug_init_2_memory): Renamed into
442         mono_debug_open_image_from_memory().
443         (mono_debug_close_image): New public function.
444         (mono_debug_domain_create): Likewise.
445         (mono_debug_domain_unload): Likewise.
446         (MONO_DEBUGGER_VERSION): Bump to 60.
447
448         * mono-debug-debugger.h
449         (MonoDebuggerEvent):
450         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
451         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
452         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
453         - rename `THREAD_CREATED' and `THREAD_EXITED' into
454           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
455         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
456           meaning.
457         (mono_debugger_add_symbol_file): Removed.
458         (mono_debugger_add_type): Removed.
459         (mono_debugger_lookup_type): Removed.
460         (mono_debugger_lookup_assembly): Removed.
461
462         * domain.c
463         (mono_domain_create): Call mono_debug_domain_create().
464         (mono_init_internal): Call mono_debug_init_corlib().
465
466         * assembly.c
467         (mono_assembly_close): Call mono_debug_close_image().
468
469 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
470
471         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
472         mmap call.
473
474 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
475
476         * sgen-gc.c: ensure section->pin_queue_end is initialized
477         correctly when non pinning objects in the section have been found.
478
479 2007-08-22  Marek Habersack  <mhabersack@novell.com>
480
481         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
482         containing a list of directories separated by ':'. MSDN docs say
483         the directories should be separated with ';'. Part of a bugfix for
484         bug #81446
485
486 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
487
488         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
489         it should MonoType and not MonoClass.
490
491 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
492
493         * culture-info-table.h : regenerated.
494
495 2007-08-20  William Holmes  <billholmes54@gmail.com>
496
497         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
498          to call ReplaceFile Kernel32 on windows or in io-layer.
499         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
500         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
501          as an internal call.
502
503         Code is contributed under MIT/X11 license.
504
505 2007-08-20  Jb Evain  <jbevain@novell.com>
506
507         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
508         and MONO_EXCEPTION_FIELD_ACCESS.
509
510         * debug-helpers.[c|h]: new mono_field_full_name function.
511
512 2007-08-20  Mark Probst  <mark.probst@gmail.com>
513
514         * class.c: Removed class_security_level() and moved it to
515         security-core-clr.c.
516
517         * security-core-clr.c, security-core-clr.h: class_security_level()
518         is now public and renamed to mono_security_core_clr_class_level().
519         It also looks for security attributes in the classes a class is
520         nested in.
521
522 2007-08-20  Mark Probst  <mark.probst@gmail.com>
523
524         * security-core-clr.c, security-core-clr.h: CoreCLR security
525         utility functions.
526
527         * Makefile.am: Added security-core-clr.[ch].
528
529         * security-manager.c, security-manager.h: Functions and enum for
530         setting and getting the security mode.
531
532         * class.c: CoreCLR security checks.
533
534 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
535
536         * icall-def.h, process.c, process.h: implemented icall to get
537         user/system processor times.
538
539 2007-08-17  Mark Probst  <mark.probst@gmail.com>
540
541         * domain.c, threads.c, class-internals.h, domain-internals.h: New
542         reader-lock-free jit_info_table.
543
544 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
545
546         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
547
548         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
549
550         * object-internals.h (MonoException): Add missing _data member.
551
552 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
553
554         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
555         checking that only methods with matching qname or fqname are picked
556         from implemented interfaces.
557
558 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
559
560         * verify.c (do_newarr):added, do type verification of
561         newarr ops, push the right value on the eval stack.
562         * verify.c (mono_method_verify): use do_newarr
563
564
565 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
566
567         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
568         factored the common code into get_boxable_mono_type, which
569         is now using mono_type_get_full, this fixed byref related tests.
570
571 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
572
573         * class.c: added mono_type_get_full, this function has the same
574         behavior of mono_class_get_full but the returned MonoType has
575         all metadata of the associated token in case of a typespec token.
576         * class.c: added mono_type_retrieve_from_typespec, used by 
577         mono_type_get_full to retrieve the token type.
578         * class.c (mono_class_create_from_typespec): changed to use
579         mono_type_retrieve_from_typespec.
580         * class.c (mono_ldtoken): changed to use mono_type_get_full
581         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
582         * class-internals.h: exported mono_type_get_full for internal use.
583
584 2007-08-16  Jb Evain  <jbevain@novell.com>
585
586         * domain.c (supported_runtimes): add entry for
587         the 'moonlight' runtime version.
588
589 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
590
591         * verify.c (mono_method_verify): small typo sliped in.  
592
593 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
594
595         * verify.c (do_unbox_value): added, do type verification of
596         unboxing ops
597         * verify.c (mono_method_verify): use do_unbox_value
598
599
600 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
601
602         * verify.c (dump_stack_value): fixed typo, was printing string
603         instead of object on stack.
604         * verify.c (do_box_value): moved the byref check up as it leads
605         to invalid code and should be done earlier.
606         * verify.c: improved error messages for and ldobj
607
608 2007-08-15  William Holmes  <billholmes54@gmail.com>
609
610         * marshal.c (emit_marshal_custom): Omit the call to 
611           marshal_native_to_managed when calling native to managed 
612           and the argument is specified as an out argument.
613
614         Code is contributed under MIT/X11 license.
615
616 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
617
618         * verify.c: fixed the type checks for generics, function pointers and vectors.
619         Added type verification for ldobj and ldtoken. The verifier
620         would segfault if header or signature of a method contained references
621         to non-existant types.
622
623 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
624
625         * marshal.c (cominterop_get_ccw): Patch from
626         Bill Holmes to no walk up interface hierarchy. 
627         All parent methods should be present in the interface for COM.
628    
629         Code is contributed under MIT/X11 license.
630
631 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
632
633         * marshal.c (emit_marshal_com_interface): Patch from
634         Bill Holmes to handle COM Interfaces as return values
635         for native->managed calls.
636    
637         Code is contributed under MIT/X11 license.
638
639 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
640
641         * marshal.c (cominterop_get_idispatch_for_object): Implement
642         for runtime callable wrappers.
643    
644         Code is contributed under MIT/X11 license.
645
646 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
647
648         * pedump.c (main): changed from mono_init to mono_init_from_assembly
649         so 2.0 types are accessible
650
651
652 2007-08-13  Miguel de Icaza  <miguel@novell.com>
653
654         * domain.c (mono_init_internal): Call mono_assembly_load_friends
655         once we load mscorlib.   Due to the order in which we initialize,
656         the mono_assembly_load_full routine that loads mscorlib did not
657         load friends.   We now load it once we load the
658         mono_defaults.internals_visible_class class. 
659
660         * assembly.c: Expose the mono_load_friend_assemblies method.
661
662 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
663
664         * verify.c: improved the handling of boxing, better
665         type checking for unary ops and conversion. Fix bug
666         regarding managed pointer compatibility checking
667
668 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
669
670         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
671
672         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
673
674 2007-08-09  Raja R Harinath  <rharinath@novell.com>
675
676         * reflection.c (dup_type): Remove.
677         * class.c (dup_type): Remove.
678         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
679         instead of the dodgy 'dup_type'.
680         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
681         handle the case where 'dup_type' needed the second argument.
682
683 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
684
685         * domain.c: Fix a warning.
686
687 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
688
689         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
690         checking that methods with the same fqname are not overridden
691         with a method from an ancestor.
692
693 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
694
695         * threads.c (free_thread_static_data_helper): Avoid a crash if
696         thread->static_data is not yet set.
697
698 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
699
700         * marshal.c: Use correct image when emitting
701         native wrapper for COM calls.
702    
703         Code is contributed under MIT/X11 license.
704
705 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
706
707         * icall-def.h, security.c, security.h :
708           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
709
710 2007-08-07  Martin Baulig  <martin@ximian.com>
711
712         * mono-debug-debugger.h
713         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
714
715         * domain.c (mono_domain_free): Call
716         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
717
718 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
719
720         * verify.c (check_underflow, check_overflow): error message now returns IL offset
721         * verify.c (in_same_block): code should test if either offset is inside the clauses
722         * verify.c (mono_method_verify): push the exception into the eval stack of exception
723         and filter blocks
724
725 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
726
727         * image.c (mono_image_close): Fix a leak.
728
729         * object.c (mono_runtime_invoke_array): Avoid using alloca.
730
731         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
732
733 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
734
735         * domain.c, threads.c, threads-types.h: fix memory retention issue
736         with thread static variables not being cleared on domain unload.
737         Reuse thread static slots after domain unload.
738
739 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
740
741         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
742         nullable type.
743
744         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
745         now done in mono_runtime_invoke_array.
746
747         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
748         receiver is a nullable type.
749
750         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
751         generic parameter.
752
753 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
754
755         * marshal.c: Implement COM Objects as return type for 
756         managed->unmanaged calls. Added Release calls for COM Object
757         out/return values in managed->unmanaged calls.
758
759         Code is contributed under MIT/X11 license.
760
761 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
762
763         * threads.h, threads-type.h: move the hazard pointer declarations
764         to the private header.
765
766 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
767
768         * file-io.c, appdomain.c: memory leak fixes.
769
770 2007-08-02  Dick Porter  <dick@ximian.com>
771
772         * socket-io.c
773         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
774         SO_REUSEADDR setting into io-layer/sockets.c.
775
776 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
777
778         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
779         from Object when called on a generic parameter. Fixes #82211.
780
781 2007-08-01  Dick Porter  <dick@ximian.com>
782
783         * file-io.c (convert_share): Test FileShare values bit-by-bit.
784         Fixes bug 79250 yet again.
785
786 2007-07-30  Martin Baulig  <martin@ximian.com>
787
788         Merged the `debugger-dublin' branch.
789
790         * mono-debug.h
791         (MonoDebugDataTable): New typedef.
792         (MonoDebugMethodAddressList): New typedef.
793         (MonoDebugWrapperData): Removed.
794         (MonoDebugSymbolTable): Removed `current_data_table',
795         `current_data_table_size', `current_data_table_offset'.
796         (MonoDebugDataItemType): Moved into mono-debug.c.
797         (MonoDebugMethodJitInfo): Remove `address'.
798         (mono_debug_data_table): New global variable.
799         (mono_debug_lookup_method_addresses): New public function.
800         (mono_debug_find_method): Take a `MonoMethod *', not a
801         `MonoDebugMethodInfo *'.
802
803         * mono-debug.c: Drop support for the old symbol tables.
804
805 2007-06-28  Martin Baulig  <martin@ximian.com>
806
807         * mono-debug.c (mono_debug_debugger_version): New public variable.
808
809 2007-07-31  William Holmes  <billholmes54@gmail.com>
810
811         * metadata.c Changed mono_type_create_from_typespec to not insert
812           the type into the hash map until after
813           do_mono_metadata_parse_type has completed.
814         Fixes Bug #82194
815         Code is contributed under MIT/X11 license.
816
817 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
818
819         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
820         generic parameter. Fixes #82211.
821
822 2007-07-27  Jb Evain  <jbevain@novell.com>
823
824         * pedump.c (dump_metadata, dump_metadata_header): dump
825         versions contained in the metadata header.
826
827 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
828
829         * threads.c: register small_id_table with the GC.
830
831 2007-07-27  Mark Probst  <mark.probst@gmail.com>
832
833         * threads.c, threads.h, class-internals.h, object-internals.h:
834         Hazard pointers, to be used by lock-free parallel algorithms.
835
836 2007-07-26  Dick Porter  <dick@ximian.com>
837
838         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
839         routine on non-windows platforms, as I've not managed to think of
840         a non-kludgy way of doing this.  Finishes off bug 78739.
841
842 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
843
844         * object.c: properly setup interface_bitmap in proxy vtables.
845
846 2007-07-25  Marek Habersack  <mhabersack@novell.com>
847
848         * appdomain.c (get_shadow_assembly_location): do not use TickCount
849         to create unique shadow copy target directories, use the domain's
850         serial number instead. Each domain gets a unique target directory
851         that way.
852
853         * domain.c (mono_domain_create): added code to increment domain
854         shadow copy serial number and cache the value in the current
855         domain structure.
856
857         * domain-internals.h (struct _MonoDomain): added a new field -
858         shadow_serial to hold the serial number used in generation of
859         shadow-copy directories. This is to make sure that the directory
860         name is unique for each and every domain created. We avoid a race
861         condition with overriding assemblies already in use by other app
862         domains.
863
864 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
865
866         * class.c (mono_bounded_array_class_get): fixed memory leak when 
867         binding generic parameters.
868
869 2007-07-24  Raja R Harinath  <rharinath@novell.com>
870
871         * metadata.c (do_mono_metadata_parse_generic_class): Use
872         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
873         error.
874
875 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
876
877         * loader.c, class-internals.h, reflection.c: removed the per-method
878         generics hashtable: we use the global one through the call of
879         mono_class_inflate_generic_method ().
880
881 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
882
883         * class.c, metadata.c, class-internals.h: introduce yet another
884         generics global cache for inflated methods (fixes 98% of the perf
885         issue in bug #81806).
886
887 2007-07-23  Raja R Harinath  <rharinath@novell.com>
888
889         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
890         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
891         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
892         return a MonoGenericInst containing (a copy) of those types.
893         (mono_metadata_inflate_generic_inst): Update to changes.
894         (mono_metadata_parse_generic_inst): Likewise.
895         (mono_get_shared_generic_inst): Likewise.
896         * reflection.c (mono_class_bind_generic_parameters): Likewise.
897         (mono_reflection_bind_generic_method_parameters): Likewise.
898         * metadata-internals.h: Likewise.
899         * icall.c (free_generic_context): Kill.
900         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
901
902         * reflection.c (reflection_methodbuilder_to_mono_method): Use
903         mono_metadata_type_dup.
904         * marshal.c (mono_mb_create_method): Likewise.
905
906         * metadata.c (mono_metadata_type_dup): Rename from
907         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
908         MonoImage.  Handle a few more cases, esp. when no mempool is given.
909         * marshal.c, metadata-internals.h: Update to changes.
910
911 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
912
913         * class.c: fixed a small leak for array classes and removed warning.
914
915 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
916
917         * loader.c (mono_method_get_param_token): Make this work on generic methods.
918         Return 0x8000000 for return parameters. Fixes #82161.
919
920 2007-07-21  Marek Habersack  <grendello@gmail.com>
921
922         * appdomain.c (get_shadow_assembly_location): append the current
923         ticks value to the path. Avoids overwriting the same assemblies by
924         several threads at the same time.
925
926 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
927         and Raja R Harinath  <rharinath@novell.com>
928
929         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
930         Simplify slightly.
931         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
932         property for testing if a method is a generic method definition.
933
934 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
935
936         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
937
938 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
939
940         * verify.c: used function from private branch, reverted to the one in class.h 
941
942 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
943
944         * verify.c: a typo slipped in and the code wont compile
945
946 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
947
948         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
949         disabled box instruction as it is doing the wrong thing
950         improved stack dump messages, now it is easier to debug type related issues
951
952
953 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
954
955         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
956
957 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
958
959         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
960         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
961         grouped with class and valuetype. This change will simply 
962         the code as it should be handled just like unmanaged pointers.
963
964 2007-07-19  Mark Probst  <mark.probst@gmail.com>
965
966         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
967
968 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
969
970         * verify.c: several stack merge issues fixed, reference comparisons now
971         check the type size. strict type check now works correctly.
972         added more uses of IS_MANAGED_POINTER macro.
973         fixed issues pointed by running the test suite against .net.
974         
975
976 2007-07-19  Mark Probst  <mark.probst@gmail.com>
977
978         * class.c, loader.c, class-internals.h: Removed the
979         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
980         defines.
981
982         * icall.c: Better error checking in some internal reflection
983         methods.
984
985 2007-07-18  William Holmes  <billholmes54@gmail.com>
986
987         * filewatcher.c : removed unused variable 'filename' in 
988           ves_icall_System_IO_FSW_SupportsFSW
989
990 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
991
992         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
993         obsolete, removed.
994
995 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
996
997         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
998         
999         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
1000
1001 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
1002
1003         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
1004         Implement generics support.
1005         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
1006
1007         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
1008         type_args and method_args arguments.
1009         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
1010         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
1011         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
1012
1013 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
1014
1015         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
1016           It adds a rootimage parameter to mono_reflection_get_type_internal,
1017           adds new function mono_reflection_get_type_with_rootimage and use
1018           the rootimage to resolve the types instead of the current image
1019
1020 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1021
1022         * culture-info-table.h: Forgot to update after r78304.
1023
1024 2007-07-13  Raja R Harinath  <rharinath@novell.com>
1025
1026         * class.c (mono_class_is_open_constructed_type)
1027         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
1028
1029 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
1030
1031         * class.c (mono_bounded_array_class_get):  method fails if used with
1032         an incomplete TypeBuilder enum (no basetype field), fixed it by 
1033         avoiding calculating the size for such array as it cannot be instantiated.
1034         Fix bug #82015
1035
1036 2007-07-12  Raja R Harinath  <rharinath@novell.com>
1037
1038         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
1039         field.
1040         * metadata.c, reflection.c: Update to changes.
1041
1042 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
1043
1044         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
1045         mono_class_is_valid_enum, they are used to valide a enum when loading.
1046         * reflection.c: used new functions to throw TypeLoadException when and
1047         invalid enum is build with TypeBuilder. Fixes #82018
1048   
1049 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
1050
1051         * object.c: forgot commit of mono_class_setup_methods () to access
1052         iface->methods.
1053         * object-internals.h: added a few more handy fields to
1054         MonoIMTCheckItem.
1055
1056 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
1057
1058         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
1059         iface->methods.
1060
1061 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
1062
1063         * class-internals.h, object-internals.h, object.c: IMT-based
1064         interface invocation core from Massimiliano Mantione
1065         (massi@ximian.com) with a reworked arch-specific interface,
1066         bsearch implementation and a few bugfixes and memory savings by me.
1067
1068 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
1069
1070         * class.c (mono_class_create_from_typedef): mono would segfault if 
1071         an enum did not have a __value field. It now throws a TypeLoadException
1072         for such cases. Fix bug #82022
1073
1074 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
1075
1076         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
1077
1078 2007-07-09  Mark Probst  <mark.probst@gmail.com>
1079
1080         * class.c (mono_class_init): If a class is already inited but has
1081         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
1082
1083 2007-07-09  Mark Probst  <mark.probst@gmail.com>
1084
1085         * class.c: Properly handle the case of an unimplemented interface
1086         method.  Fixes: 81673.
1087
1088 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
1089
1090         * class-internals.h, object.c: cleanup patch from massi: use
1091         MonoVTable->interface_bitmap since the vtable interfaces offset array
1092         is going away.
1093
1094 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
1095
1096         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
1097         GetMDStreamVersion icall instead.
1098
1099 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
1100
1101         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
1102         not use mono_dl_build_path() with a full library name: makes
1103         fallbacks to libgaim and libfam work.
1104
1105 2007-07-06  William Holmes  <billholmes54@gmail.com>
1106
1107         * assembly.c: Added a continue statement in probe_for_partial_name when
1108          parse_assembly_directory_name fails.  Fixes : 82002
1109
1110 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
1111
1112         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
1113         and added a verification  for TYPEDBYREF.
1114         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
1115         make native int interchangeable with int32 and some small cleanup and formating.
1116         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
1117         handle byref of byref.
1118         * verify.c (push_local): handle byref of byref.
1119         * verify.c (do_binop): invalid mix of values is unverifiable
1120         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
1121         added visibility checks
1122         * verify.c (field related method): added visibility checks
1123         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
1124
1125 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
1126
1127         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
1128         string.
1129
1130 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
1131
1132         * profiler.c (mono_profiler_load): Fix an off-by-one error.
1133
1134         * marshal.c (emit_marshal_string): When returning a string from managed code,
1135         allways make a copy even for unicode strings. Fixes #81990.
1136
1137 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
1138
1139         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
1140         of byref generic inst types (bug #81997).
1141
1142 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
1143
1144         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
1145         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
1146
1147 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
1148
1149         * marshal.c (emit_marshal_string): Add support for unicode strings in
1150         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
1151
1152 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
1153
1154         * verify.c: field load/store are now verified, missing only access checks now
1155
1156 2007-06-28  Martin Baulig  <martin@ximian.com>
1157
1158         * mono-debug.c (mono_debug_debugger_version): New public variable.
1159
1160 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
1161
1162         * locales.c: When constructing DateTimeFormat or NumberFormat for
1163         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
1164         MonoCultureInfo contructed from the current locale is always
1165         read-only and has UseUserOverride set to true. All MonoCultureInfo
1166         instances returned for GetCultures have both IsReadOnly and
1167         UseUserOverride set to true. Fixes part of bug #81930.
1168
1169 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
1170
1171        * icall-def.h: Update System.__ComObject icalls
1172        * marshal.c: Avoid managed transition (and object creation)
1173        when looking up COM interface in RCW.
1174        * marshal.h: Ditto.
1175        
1176        Code is contributed under MIT/X11 license.
1177
1178 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
1179
1180         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
1181         to avoid crashes during assembly unloading.
1182
1183 2007-06-22  Raja R Harinath  <rharinath@novell.com>
1184
1185         Fix MethodInfo.IsGenericMethodDefinition
1186         * reflection.c (mono_reflection_bind_generic_method_parameters):
1187         Rearrange code to ensure we always uses a generic method definition.
1188         * class.c (mono_class_inflate_generic_method_full): Set
1189         'generic_container' field only for generic method definitions.
1190         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
1191         Use presense of 'generic_container' field as indication of being a
1192         generic method definition.
1193
1194 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
1195
1196         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1197
1198         * object-internals.h: Reflect changes in the layout of the managed Delegate
1199         class.
1200         
1201         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
1202         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
1203         runtime memory used by the dynamic method. Fixes #77146.
1204
1205 2007-06-21  Dick Porter  <dick@ximian.com>
1206
1207         * file-io.h: 
1208         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
1209         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
1210         81767.
1211
1212 2007-06-21  Raja R Harinath  <rharinath@novell.com>
1213
1214         * reflection.c (method_encode_methodspec): Add a tripwire.
1215         * class.c (inflate_generic_type): The fully open generic type is
1216         not the same as the generic type definition.
1217
1218 2007-06-21  Martin Baulig  <martin@ximian.com>
1219
1220         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
1221
1222         * mono-debug-debugger.h
1223         (MonoDebuggerBreakpointInfo): Removed.
1224         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
1225         (mono_debugger_remove_breakpoint): Likewise.
1226         (mono_debugger_breakpoint_callback): Likewise.
1227         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
1228
1229 2007-06-21  Raja R Harinath  <rharinath@novell.com>
1230
1231         * metadata.c (mono_metadata_lookup_generic_class): The fully open
1232         generic type is not the same as the generic type definition.
1233         * class.c (mono_generic_class_get_class): Likewise.
1234
1235 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
1236
1237         * icall.c: The second argument to 
1238         System.Reflection.MethodBase.GetMethodFromHandleInternalType
1239         is a MonoType not a MonoClass.
1240
1241 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
1242
1243         * verify.c: support for function pointers in the verifier
1244
1245 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
1246
1247         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
1248
1249 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
1250
1251         * assembly.c: removed Mono.Data.SqliteClient from the list of
1252         forward-compatible assemblies as it breaks the ABI (bug #81899).
1253
1254 2007-06-19  Raja R Harinath  <rharinath@novell.com>
1255
1256         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
1257         lookup/update with the loader lock.
1258         * reflection.c (mono_class_bind_generic_parameters): No need to
1259         protect mono_metadata_lookup_* with the loader lock.
1260         * class.c (inflate_generic_type): Likewise.
1261         
1262         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
1263         on a generic instantiated type.
1264
1265 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
1266
1267         *verify.c: produce meanfull error messages on verification error
1268         *verify.c: fixed some cases of verification errors reported as validation errors
1269         *pedump.c: fixed the error name array, now it shows validation errors properly
1270         *verify.h: fixed the contant that should be used for verification errors
1271
1272 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
1273
1274         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
1275         for bug #77596, 81858 and 80743 (generics data structures on domain
1276         unload).
1277
1278 2007-06-15  Raja R Harinath  <rharinath@novell.com>
1279
1280         Avoid allocating 'MonoGenericContext' on the heap.
1281         * class-internals (_MonoMethodInflated::context): Make field
1282         inline, not a pointer.
1283         * loader.c (method_from_methodspec): Allocate 'new_context' on the
1284         stack.  Use the context embedded within the inflated method as the
1285         hash key, rather than 'new_context'.
1286         * class.c (inflate_generic_context): Simplify.  Return a struct
1287         rather than allocating on the heap.
1288         (mono_class_inflate_generic_method_full): Update to changes.  Now,
1289         doesn't salt away a copy of the context -- simplifying the
1290         lifetime rules of a 'MonoGenericContext *'.
1291         (mono_method_get_context): Return pointer to embedded context.
1292         (setup_generic_array_ifaces): Allocate temporary context on stack.
1293         * reflection.c (inflate_mono_method): Likewise.
1294         (mono_reflection_bind_generic_method_parameters): Likewise.
1295         Use the context embedded within the inflated method as the hash key.
1296
1297         Avoid a source of allocation of 'MonoGenericContext'.
1298         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
1299         and 'cached_context' fields into embedded 'MonoGenericContext' field.
1300         * class.c: Update to changes.
1301         (mono_generic_class_get_context): Simplify drastically.  Now just
1302         returns a pointer to the field.
1303         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
1304         argument as a const pointer.
1305         (mono_metadata_generic_context_equal): Likewise.
1306         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
1307         Update to changes.
1308
1309 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
1310
1311         * verify.c improved the handling of brtrue/brfalse, factored out common code
1312
1313 2007-06-14  Raja R Harinath  <rharinath@novell.com>
1314
1315         Kill MonoGenericMethod.
1316         * class-internals.h (MonoGenericContext::method_inst): Rename from
1317         'gmethod' and convert to a MonoGenericInst.
1318         (MonoGenericMethod): Remove.
1319         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
1320         * loader.c (method_from_methodspec): Update to changes.  Use a
1321         MonoGenericContext as the key to the hashtable.
1322         * metadata.c (mono_metadata_generic_context_equal): Rename from 
1323         'mono_metadata_generic_method_equal' and take MonoGenericContext.
1324         (mono_metadata_generic_context_hash): Likewise from
1325         'mono_metadata_generic_method_hash'.  Change hash function.
1326         (mono_metadata_load_generic_params): Update to changes.
1327         (mono_get_shared_generic_method): Remove.
1328         * metadata-internals.h (mono_get_shared_generic_method): Remove.
1329         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
1330         (inflate_generic_context): Likewise.
1331         (mono_class_inflate_generic_method_full): Likewise.
1332         (setup_generic_array_ifaces): Likewise.
1333         (mono_class_create_from_typespec): Likewise.
1334         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
1335         (method_encode_methodspec): Update callsite.
1336         (reflection_methodbuilder_to_mono_method): Update to changes.
1337         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
1338         MonoGenericContext as the key to the hashtable.
1339         (inflate_mono_method): Update to changes.
1340
1341         * class-internals.h (MonoGenericMethod::container): Remove.
1342         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
1343
1344 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
1345
1346         * profiler-private.h, profiler.c, profiler.h: added API to profile
1347         exception events.
1348
1349 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
1350
1351         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
1352
1353 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
1354
1355         * verify.c: method invocation is now validated, now we verify parameter types on stack.
1356         Fixed overflow and underflow not aborting the verification process.
1357
1358 2007-06-13  Mark Probst  <mark.probst@gmail.com>
1359
1360         * class-internals.h (MonoStats): Added stats entries for dynamic
1361         code allocations.
1362
1363 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
1364
1365         * loader.c (mono_free_method): Free header->locals and header->clauses.
1366
1367         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
1368         dynamic case.
1369
1370         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
1371
1372         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
1373
1374 2007-06-12  Raja R Harinath  <rharinath@novell.com>
1375
1376         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
1377         the tables.
1378
1379 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1380
1381         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
1382
1383 2007-06-11  Raja R Harinath  <harinath@gmail.com>
1384
1385         MonoGenericMethod on a diet
1386         * class-internals.h (_MonoMethodInflated::reflection_info): Move
1387         here ...
1388         (_MonoGenericMethod::reflection_info): ... from here.
1389         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
1390         Update to changes.
1391         * reflection.c (inflate_mono_method): Likewise.
1392         (mono_reflection_bind_generic_method_parameters): Likewise.
1393
1394 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1395
1396         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
1397         *verify.c: factored long ldarg forms to share code with short forms
1398
1399 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1400
1401         *verify.c: fixed code formating factored some duplicate code
1402         into a new function
1403
1404         *verify.h: fixed binary incompatibility introduced earlier
1405
1406         *pedump.c: fixed formating
1407
1408 2007-06-11  Raja R Harinath  <harinath@gmail.com>
1409
1410         Fix assertion when disassembling Mono.C5.dll
1411         * loader.c (method_from_methodspec): Avoid inflating a method
1412         twice with the same context.  If the methodref is inflated, use
1413         the declaring method instead.
1414
1415         * class.c (mono_class_from_generic_parameter): Fix case similar to
1416         bug #81830 handled below, but for method containers.
1417
1418 2007-06-10  Raja R Harinath  <harinath@gmail.com>
1419
1420         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
1421         get_shared_generic_class.  Directly inflate the instance.
1422         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
1423         (inflate_generic_class): Delete.
1424         (get_shared_generic_class): Delete.  Move setting of
1425         'cached_class' and 'cached_context' ...
1426         * metadata.c (mono_metadata_lookup_generic_class): ... here.
1427
1428         * metadata.c (mono_metadata_lookup_generic_class): Change
1429         signature to take the components of a MonoGenericClass rather than
1430         an allocated MonoGenericClass.  Change semantics to be intern-like.
1431         * reflection.c (mono_class_bind_generic_parameters): Update to
1432         changes.  Make locking region tighter.
1433         * class.c (inflate_generic_class): Update to changes.
1434         (get_shared_generic_class): Likewise.
1435         * metadata-internals.h: Likewise.
1436
1437         * reflection.c (mono_class_bind_generic_parameters): Take and
1438         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
1439         (mono_reflection_bind_generic_parameters): Use
1440         'mono_class_bind_generic_parameters' rather than duplicate the code.
1441         * class.c (mono_bounded_array_class_get): Update to changes.
1442         * object-internals.h: Likewise.
1443
1444         * reflection.c (mono_class_bind_generic_parameters): Only support
1445         parameterizing generic type definitions.  Remove support for other
1446         open types.
1447
1448 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
1449
1450         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
1451
1452         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
1453         in the dynamic case.
1454
1455 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
1456
1457         * threads.c: When cleaning up thread, reset the Background bit.
1458         Fixes bug #81720.
1459
1460 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
1461
1462        * metadata.c: Move variable declarations to top of scope.
1463        * verify.c: Move variable declarations to top of scope.
1464
1465        Code is contributed under MIT/X11 license.
1466
1467 2007-06-08  Raja R Harinath  <rharinath@novell.com>
1468
1469         * reflection.c (mono_class_bind_generic_parameters): Replace
1470         open-coded loop with mono_metadata_inflate_generic_inst.
1471
1472         * class.c (get_shared_generic_class): Don't call
1473         mono_get_shared_generic_inst.  Use the container's own
1474         'class_inst'.
1475
1476         * metadata.c (mono_metadata_load_generic_params): Move
1477         initialization of 'context' field here from ...
1478         * class.c (mono_class_create_from_typedef): ... here, and ...
1479         * loader.c (mono_get_method_from_token): ... here.
1480
1481         * class.c (get_shared_generic_class): Rename from
1482         mono_get_shared_generic_class and make static.
1483         (mono_get_shared_generic_inst): Move to metadata.c.
1484         * loader.c (mono_get_shared_generic_method): Likewise.
1485         * class-internals.h, metadata-internals.h: Update to changes.
1486
1487         Fix #81830
1488         * class.c (mono_class_from_generic_parameter): Don't assume a
1489         generic container owner exists.  Generic containers from monodis
1490         don't have any.
1491
1492 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
1493
1494         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
1495         * verify.h: new typedefs to returns the non-verifiable status
1496         * verify.c: initial implementation of generics, stack merging and object compatibility check
1497
1498 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1499
1500         * class.c, image.c, class-internals.h (MonoImage): class_cache is
1501         a MonoInternalHashTable again (fixed bug in internal hash table
1502         code).
1503
1504 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1505
1506         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
1507         MonoInternalHashTable again (fixed bug in internal hash table
1508         code).
1509
1510 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1511
1512         * class.c, image.c, class-internals.h, domain.c,
1513         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
1514         changes.  Have to figure out what makes them break the SWF
1515         regression.
1516
1517 2007-06-04  Mark Probst  <mark.probst@gmail.com>
1518
1519         * class.c, image.c, class-internals.h (MonoImage): class_cache is
1520         a MonoInternalHashTable now.
1521
1522 2007-06-04  Mark Probst  <mark.probst@gmail.com>
1523
1524         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
1525         MonoInternalHashTable now.
1526
1527 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
1528
1529         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
1530         invoke_impl code.
1531
1532         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
1533
1534         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
1535         dependent trampoline.
1536
1537         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1538
1539         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
1540
1541 2007-05-29  Robert Jordan  <robertj@gmx.net>
1542
1543         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
1544
1545 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
1546
1547         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
1548
1549 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
1550
1551        * marshal.c: Fix interface lookup loops for
1552        cominterop_get_com_slot_for_method and 
1553        cominterop_get_method_interface. Only need to lookup
1554        if type is a class, else use interface type method is on.
1555
1556        Code is contributed under MIT/X11 license.
1557
1558 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
1559
1560         * reflection.c: HasSecurity can be present even if no specially 
1561         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
1562         SecurityAttribute). Fix CAS regression tests on buildbot.
1563
1564 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
1565
1566        * appdomain.c: Add configure checks for header files.
1567        * image.c: Add configure checks for header files.
1568        * file-io.c: Add configure checks for header files.
1569        * debug-mono-symfile.c: Add configure checks for header files.
1570        * threadpool.c: Add configure checks for header files.
1571        * console-io.c: Add configure checks for header files.
1572        * profiler.c: Add configure checks for header files.
1573        * rawbuffer.c: Add configure checks for header files.
1574        * icall.c: Add configure checks for header files.
1575        * rand.c: Add configure checks for header files.
1576        * socket-io.c: Add configure checks for header files.
1577
1578        Code is contributed under MIT/X11 license.
1579
1580 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
1581
1582         * reflection.c (mono_custom_attrs_from_builders): Remove the 
1583         assertion as it breaks the build.
1584         
1585         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
1586
1587         * reflection.c (lookup_custom_attr): Make a copy here too.
1588
1589         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
1590         dynamic images.
1591
1592         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
1593         images.
1594
1595         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
1596         info.
1597
1598 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
1599
1600         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
1601         (load_cattr_value): Ditto.
1602
1603 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
1604
1605         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
1606
1607 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
1608
1609         * threads.c: In "start_wrapper", set apartment_state to MTA if
1610         apartment_state is Unknown and we're running on 2.0 profile or
1611         higher.
1612         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
1613         to main method, then set apartment_state to Unknown on 1.0 profile,
1614         and MTA on 2.0 profile.
1615
1616 2007-05-16  Jb Evain  <jb@nurv.fr>
1617
1618         * class-internals.h (MonoDefaults): Add an attribute_class and
1619           customattribute_data_class.
1620         * domain.c (mono_init_internal): Populate them.
1621         * reflection.c: Use them to remove duplicates. Make a vew
1622         MonoClass variables `static'.
1623
1624 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
1625
1626         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
1627         step in implementing IMT, so that all isinst checks now can go
1628         through the bitmap.
1629         This was needed because vtables for TransparentProxy need to look
1630         like the vtable of the "target" class, so they need to point to
1631         its interface bitmap directly.
1632
1633         * object.c: inside "mono_class_create_runtime_vtable" and
1634         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
1635
1636 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
1637
1638         * object-internals.h
1639           culture-info.h : added territory field in MonoCulture and
1640           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
1641         * locales.c : fill territory field above too.
1642         * culture-info-table.h : regenerated.
1643
1644 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
1645
1646         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
1647         Fixes #81599.
1648
1649 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
1650
1651         * object.c: Always initialize apartment, even if 
1652         there is no custom attributes on entry point.
1653         
1654         Code is contributed under MIT/X11 license.
1655
1656 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
1657
1658         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
1659         * metadata.c: If no encoding is set, check for unicode
1660         on class.
1661         
1662         Code is contributed under MIT/X11 license.
1663
1664 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
1665
1666         * threads.c: Handle if mono_thread_current returns NULL 
1667         
1668         Code is contributed under MIT/X11 license.
1669
1670 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
1671
1672         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
1673         in start_wrapper. Added mono_thread_init_apartment_state and
1674         mono_thread_cleanup_apartment_state.
1675         * object.c: Initialize thread apartment state on main thread
1676         by checking for STAThreadAttribute on entry point.
1677         * object-internals.h: Add apartment_state field to MonoThread.
1678         * threads-types.h: Add unmanaged definition of 
1679         System.Threading.ApartmentState, MonoThreadApartmentState.
1680         
1681         Code is contributed under MIT/X11 license.
1682         
1683 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
1684
1685         * class.c: Fix windows build.
1686         * class-internals.h: Fix windows build.
1687         
1688         Code is contributed under MIT/X11 license.
1689
1690 2007-05-08  Robert Jordan  <robertj@gmx.net>
1691
1692         * process.c (CreateProcess_internal):
1693         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
1694         .CreateNoWindow was specified. Fixes #81496.
1695
1696 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
1697
1698         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
1699         step in implementing IMT, replaced it with two compact arrays
1700         (interfaces_packed and interface_offsets_packed) and a bitmap that
1701         is used for isinst checks (interface_bitmap).
1702
1703         * class.c: (compare_interface_ids): compare function to pass to
1704         bsearch when looking for an interface with a given id.
1705         (mono_class_interface_offset): reimplemented using bsearch on
1706         interfaces_packed, getting the offset from interface_offsets_packed.
1707         (print_implemented_interfaces): utility debugging function.
1708         (setup_interface_offsets): reworked to initialize interfaces_packed,
1709         interface_offsets_packed and interface_bitmap.
1710
1711         * object.c: replaced all accesses to "MonoClass.interface_offsets"
1712         with uses of interfaces_packed and interface_offsets_packed.
1713
1714 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
1715
1716         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
1717         mono_class_interface_offset prototype to wrap all accesses to
1718         "MonoClass.interface_offsets".
1719
1720         * class.c: Implemented mono_class_interface_offset, and wrapped all
1721         accesses to "MonoClass.interface_offsets".
1722
1723         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
1724         "MonoClass.interface_offsets".
1725
1726 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
1727
1728         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
1729         GetMethodFromHandle overloads (bug #78637).
1730
1731 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
1732
1733         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
1734         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
1735
1736 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
1737
1738         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
1739         #81498.
1740
1741         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
1742         gracefully.
1743         (mono_custom_attrs_from_index): Ditto.
1744
1745         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
1746         Fixes #81501.
1747
1748 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
1749
1750         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
1751         is now allocated from a mempool.
1752
1753 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
1754
1755         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
1756         caller holds threads_lock, leading to deadlocks. Fixes #81476.
1757
1758 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
1759
1760         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
1761         mono_loader_clear_error () too late. Fixes #81463.
1762
1763 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
1764
1765         * culture-info-table.h : regenerated.
1766
1767 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
1768
1769         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
1770         is missing.
1771
1772 2007-04-25  Dick Porter  <dick@ximian.com>
1773
1774         * Makefile.am: Put the mingw enforced-optimisation back into the
1775         PLATFORM_WIN32 section.
1776
1777 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
1778
1779         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
1780         patch.
1781
1782         * image.c (mono_image_load_module): New API function to load a module reference.
1783
1784         * image.c (load_modules): Load modules lazily. Fixes #80812.
1785
1786         * class.c (mono_class_from_typeref): Use mono_image_load_module.
1787         
1788         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
1789
1790         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
1791         to mono_image_load_module_dynamic.
1792
1793 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
1794
1795         * marshal.c: Fix calling convention for CCW on non-windows
1796         platforms. STDCALL on windows, CDECL everywhere else to work 
1797         with XPCOM and MainWin COM.
1798         
1799         Code is contributed under MIT/X11 license.
1800
1801 2007-04-23  Martin Baulig  <martin@ximian.com>
1802
1803         Fix #80969.
1804
1805         * loader.c
1806         (method_from_memberref): Added `gboolean *used_context' argument.
1807         (mono_get_method_from_token): Likewise.
1808         (mono_get_method_full): Don't insert the method in the cache when
1809         `used_context' is true.
1810
1811 2007-04-23  Raja R Harinath  <rharinath@novell.com>
1812
1813         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
1814
1815         * reflection.c (mono_reflection_bind_generic_parameters): Don't
1816         create new MonoTypes for returned types.
1817         * class.c (mono_generic_class_get_class): Export mono-internal.
1818         * class-internals.h: Update to changes.
1819
1820 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
1821
1822         * threadpool.c, threadpool.h, icall-def.h: patch from
1823         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
1824
1825 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
1826
1827         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
1828         
1829         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
1830
1831         * threads.c (mono_thread_get_stack_bounds): New helper function.
1832
1833         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
1834         Correctly compute stack bounds when attaching. Fixes #81394.
1835
1836 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
1837
1838         * reflection.c: fix handling of doubles in custom attributes
1839         for the arm-fpa format (bug #81368).
1840
1841 2007-04-18  Raja R Harinath  <rharinath@novell.com>
1842
1843         * reflection.c (assembly_add_win32_resources): Mildly relax an
1844         bounds check to let the end pointer point just past the end of the
1845         allocated buffer.  (may fix #81384)
1846
1847 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
1848
1849         * culture-info-table.h : regenerated.
1850
1851 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
1852
1853         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
1854         the thread is aborted early.
1855
1856 2007-04-05  Dick Porter  <dick@ximian.com>
1857
1858         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
1859         FindFirstFile()/FindNextFile() to find entries.  This lets the
1860         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
1861         81038.
1862
1863         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
1864         the parameters of
1865         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
1866
1867 2007-04-04  Martin Baulig  <martin@ximian.com>
1868
1869         * debug-helpers.c
1870         (mono_method_desc_full_match): Add support for nested classes.
1871
1872 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
1873
1874         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
1875
1876 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
1877
1878         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
1879         waiting for too many threads.
1880
1881 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
1882
1883         * environment.c: Fix return value check on uname so we can get the 
1884         executing version on Solaris operating systems.
1885
1886 2007-03-28  Jb Evain  <jbevain@gmail.com>
1887
1888         * class.c (mono_type_get_name_recurse): Complete the
1889         fix for the creation of assembly qualified names for
1890         pointer types. Fixes #81208.
1891
1892 2007-03-27  Dick Porter  <dick@ximian.com>
1893
1894         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
1895         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
1896         changed.
1897
1898         * threads.c
1899         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
1900         the value of ReleaseMutex().
1901
1902 2007-03-27  Dick Porter  <dick@ximian.com>
1903
1904         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
1905         in little-endian order, not network endian, so must be converted
1906         to host endian here.  Fixes bug 80593.
1907
1908 2007-03-22  Jb Evain  <jbevain@gmail.com>
1909
1910         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
1911         qualified names for pointer types. Fixes #81208.
1912
1913 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
1914
1915         * marshal.c: Add support for PreserveSigAttribute. 
1916         
1917         Code is contributed under MIT/X11 license.
1918
1919 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
1920
1921         * process.c: Fix endianness issues. Fixes #81126.
1922
1923         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
1924         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
1925
1926         * image.c (mono_image_lookup_resource): Make this work on big-endian
1927         machines.Change API contract so the caller needs to free the return value.
1928         
1929         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
1930         API change.
1931         
1932 2007-03-14  Martin Baulig  <martin@ximian.com>
1933
1934         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
1935         mono_type_get_desc() as well.
1936
1937 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
1938
1939         * icall.c:  Fix environ access in VS.  
1940         
1941 2007-03-13  Alp Toker  <alp@atoker.com>
1942
1943         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
1944         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
1945         #63841.
1946
1947 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
1948
1949         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
1950         circular references among dynamic methods. Fixes #81091.
1951
1952         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
1953
1954 2007-03-09  Martin Baulig  <martin@ximian.com>
1955
1956         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
1957
1958 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
1959
1960         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
1961         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
1962         
1963         Code is contributed under MIT/X11 license.
1964         
1965 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
1966
1967         * loader.c: Reapply patch for bug #79424.
1968
1969 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
1970
1971         * metadata.c (mono_type_to_unmanaged): Only convert object to
1972         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
1973
1974 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
1975
1976         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
1977         (and incorrectly set) is_reference field from MonoGenericInst.
1978
1979 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
1980
1981         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
1982         a little earlier.
1983
1984         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
1985
1986         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
1987
1988 2007-03-05  Miguel de Icaza  <miguel@novell.com>
1989
1990         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
1991         FileOptions.1 value to mean "temporary", map that to
1992         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
1993
1994         Fixes 80688
1995
1996 2007-03-03  Marek Habersack  <mhabersack@novell.com>
1997
1998         * appdomain.c: implement MS .Net style shadow copying. Copies of
1999         the assemblies are made in a subdirectory of the dynamic base
2000         directory, the assembly names are preserved.
2001         Copy .mdb and .config files along with the assemblies being shadowed.
2002
2003 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
2004
2005         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
2006         (emit_marshal_handleref): Ditto.
2007
2008         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
2009         on Visual C++. Fixes #80671.
2010
2011 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
2012
2013         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
2014         for clone operations.
2015
2016 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
2017
2018         * marshal.c: Fix warnings.
2019
2020 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
2021
2022         * loader.c: allow case-insensitive matching of the dll name
2023         in dllmap handling when prefixed with "i:".
2024
2025 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
2026
2027         * threads.c: Fix #ifdef for dummy_apc function for VS.
2028
2029 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
2030
2031         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
2032
2033 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
2034         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
2035         giving precedence to the methods with a fully qualified name
2036         (InterfaceName.MethodName) when building the interface sections
2037         of the vtable.
2038
2039 2007-02-16  Dick Porter  <dick@ximian.com>
2040
2041         * threadpool.c (append_job): Fix fast-path array handling, so it's
2042         less likely the array will grow exponentially when the load is
2043         heavy.
2044
2045 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
2046
2047         * metadata-internals.h, loader.c: fix dllmap lookup order
2048         for non-function maps, too, and prepare for fallback code.
2049
2050 2007-02-12  Robert Jordan  <robertj@gmx.net>
2051
2052         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
2053         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
2054         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
2055         GlobalFree. Fixes a part of bug #77075.
2056
2057 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
2058
2059         * loader.c: implemented typedef parent in field memberref.
2060
2061 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
2062
2063         * marshal.c: Fix warnings and remember to call Release on
2064         IUnknown of RCW.
2065         
2066         Code is contributed under MIT/X11 license.
2067
2068 2007-02-10  Miguel de Icaza  <miguel@novell.com>
2069
2070         * class-internals.h: Add MonoHandleRef definition, and
2071         handleref_class to mono_defaults. 
2072
2073         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
2074         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
2075
2076         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
2077         (do nothing on this stage)
2078         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
2079         (emit_marshal_handleref): New method, used for argument handling
2080         of HandleRefs. 
2081
2082 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
2083
2084         * class.c (mono_class_setup_parent): Lazily init com types.
2085         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
2086         init com types.
2087         * object.c (mono_remote_class_vtable): Lazily init com types.
2088         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
2089         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
2090         * domain-internals.h: Expose mono_init_com_types.
2091         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
2092         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
2093         Add support for COM Callable Wrapper marshalling.
2094         * marshal.h: Add icall definitions.
2095         * gc.c: Handle freeing of CCWs in finalizer code.
2096         
2097         Code is contributed under MIT/X11 license.
2098
2099 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
2100
2101         * reflection.c: changed all the signature encoding code to use
2102         a variable-sized buffer.
2103
2104 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
2105
2106         * marshal.c: locking fixes: never take the loader lock
2107         or other runtime locks when holding the marshal lock
2108         (fixes bug#80664).
2109
2110 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
2111
2112         * marshal.c: make the delegate function pointer mapping
2113         work for the moving GC.
2114
2115 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
2116
2117         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
2118         for bug #80618.
2119
2120 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
2121
2122         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
2123         gmodule.
2124
2125 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
2126
2127         * threadpool.c: made the code moving-GC safe.
2128
2129 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
2130
2131         * assembly.c, boehm-gc.c, class-internals.h, class.c,
2132         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
2133         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
2134         warning cleanup.
2135         * reflection.c: warning cleanup, some threading and moving GC fixes.
2136
2137 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
2138
2139         * class.c, loader.c: create the needed Set/Get/Address array methods
2140         as well as the .ctors in mono_class_init (), fixes bug #80567.
2141
2142 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
2143
2144         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
2145         we doesn't decrease its alignment. Should fix the sparc build.
2146
2147 2007-01-24  Dick Porter  <dick@ximian.com>
2148
2149         * socket-io.c
2150         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
2151         Create the returned object if we need to ignore an unsupported
2152         socket option.  Fixes a segfault reported by Atsushi.
2153
2154 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
2155
2156         * class.c, object.c: restrict GC-tracked fields to
2157         UIntPtr fields used inside corlib, so we provide better
2158         type info to the GC and also allow broken packing as in
2159         bug #80580.
2160
2161 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
2162
2163         * sgen-gc.c: removed duplicated function.
2164
2165 2007-01-19  Miguel de Icaza  <miguel@novell.com>
2166
2167         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
2168         value that means that the value is not supported, but that we
2169         should not return a failure, but instead report this as a
2170         successful operation.
2171
2172 2007-01-19  Raja R Harinath  <rharinath@novell.com>
2173
2174         Fix tests/bug79956.2.il
2175         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
2176         (mono_generic_class_get_class): If the generic definition in an
2177         enum, copy over other fields related to it.
2178
2179 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
2180
2181         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
2182         genericinst enums (bug #79215).
2183
2184 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
2185         * class.c: Fix bug 80307.
2186
2187 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
2188
2189         * image.c: if the file table is not present, try to load
2190         all the modules, since we don't have info about them
2191         having or not metadata (bug #80517).
2192         * assembly.c: allow mono_assembly_load_references () to
2193         work for netmodules.
2194
2195 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
2196
2197         * image.c, metadata-internals.h, object.c: execute module
2198         cctors when running on the 2 runtime if present (bug #80487).
2199
2200 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
2201
2202         * icall.c: optimized InitializeArray() on bigendian.
2203
2204 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
2205
2206         * icall.c: fix for the broken ARM FPA double format.
2207
2208 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
2209
2210         * icall.c: handle endian issues for r4 and r8 types, too, in
2211         the InitializeArray() icall.
2212
2213 2007-01-15  Miguel de Icaza  <miguel@novell.com>
2214
2215         * loader.c (mono_loader_error_prepare_exception): Clear the error
2216         once we have extracted the information from it, do this before we
2217         call into the JIT's class loading mechanisms.
2218
2219         * object.c (mono_class_create_runtime_vtable): Do not clear the
2220         loader error before calling mono_class_get_exception_for_failure
2221         as the loader error is needed inside
2222         mono_class_get_exception_for_failure to throw the error (thinko).
2223
2224         Fixes #80521
2225         
2226 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
2227
2228         * reflection.c: align fields rva data so it's faster to load at
2229         runtime.
2230
2231 2007-01-12  Raja R Harinath  <rharinath@novell.com>
2232
2233         Prepare to simplify GenericMethod handling.
2234         * class-internals.h (mono_method_get_context): New accessor function.
2235         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
2236         rather than directly accessing '->context' field.
2237
2238         * class-internals.h (_MonoGenericParam.method): Move ...
2239         (_MonoGenericContainer): ... here.  Add into union with klass field.
2240         * class.c, icall.c, loader.c, metadata.c, reflection.c:
2241         Update to changes.
2242
2243 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
2244
2245         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
2246         the wrapper type enum and reduce relocations.
2247
2248 2007-01-12  Raja R Harinath  <rharinath@novell.com>
2249
2250         * reflection.c (inflate_mono_method): Reuse method instantiation
2251         from the generic method, if available.
2252
2253 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2254
2255         * marshal.c (emit_marshal_variant): Fix conv_arg
2256         type in last commit, based on whether parameter is byref.
2257         
2258 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2259
2260         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
2261         marshalling.
2262         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
2263         MONO_TYPE_OBJECT back for VARIANT support.
2264
2265 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2266
2267         * marshal.c, marshal.h, icall-def.h: Implement 
2268         Marshal.ReAllocCoTaskMem.
2269
2270 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
2271
2272         * marshal.c: memory retention fixes: use the proper
2273         image cache for runtime_invoke method lookups.
2274
2275 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
2276
2277         * mempool.c: added code to help debug mempool allocations.
2278
2279 2007-01-11  Dick Porter  <dick@ximian.com>
2280
2281         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
2282         support (experimenting with faking it with IP_MTU_DISCOVER for
2283         systems that don't have IP_DONTFRAGMENT.)
2284         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
2285         icall.
2286
2287         * icall-def.h: new System.Net.Sockets.Disconnect icall.
2288
2289         * socket-io.h: Add new fields to MonoSocketAsyncResult
2290         corresponding to the new ones in Socket.cs.
2291
2292 2007-01-11  Raja R Harinath  <rharinath@novell.com>
2293
2294         Fix IronPython regression mentioned in #80249
2295         * metadata.c (do_mono_metadata_parse_generic_class): Clear
2296         'cached_context' field, since it may have been initialized as a
2297         side-effect of metadata parsing.
2298
2299         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
2300         (_MonoGenericClass.cached_class): Move here and rename from lone
2301         remaining field of ...
2302         (_MonoInflatedGenericClass): ... this.  Remove.
2303         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
2304         to changes.
2305
2306         Fix mcs/tests/test-128.cs regression.
2307         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
2308         2007-01-10 change below.
2309         [MONO_TYPE_OBJECT]: Recurse into array case.
2310
2311 2007-01-11  Raja R Harinath  <harinath@gmail.com>
2312
2313         * class-internals.h (mono_get_inflated_generic_class): Remove.
2314         * class.c (mono_get_inflated_generic_class): Remove.
2315         (mono_generic_class_get_class): Rename from
2316         mono_class_create_generic.
2317         (mono_class_from_mono_type) [GENERICINST]: Use it.
2318         * reflection.c, metadata.c: Update to changes.  Use
2319         'mono_class_from_mono_type'.
2320
2321 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
2322
2323         * reflection.c: use passed type when encoding an array element
2324         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
2325
2326 2007-01-09  Robert Jordan  <robertj@gmx.net>
2327
2328         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
2329         result arguments (someDelegate.EndInvoke (unrelatedAres)).
2330         Fixes bug #80392.
2331
2332 2007-01-09  Raja R Harinath  <rharinath@novell.com>
2333
2334         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
2335
2336         * object.c (set_value): Avoid aliasing between type->data.klass
2337         and type->data.generic_class.
2338
2339         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
2340
2341 2007-01-08  Raja R Harinath  <rharinath@novell.com>
2342
2343         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
2344         between type->data.klass and type->data.generic_class.
2345
2346 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
2347
2348         * marshal.c: In MS.NET, StringBuilder objects are not copied by
2349         value in out parameters.
2350
2351 2007-01-08  Raja R Harinath  <rharinath@novell.com>
2352
2353         Simplify invariant for MonoGenericClass::klass field.
2354         * class.c (mono_class_create_generic): Verify 'klass' is null.
2355         * metadata.c (do_mono_metadata_parse_generic_class): Don't
2356         initialize 'klass' field.
2357
2358 2007-01-05  Raja R Harinath  <rharinath@novell.com>
2359
2360         Ongoing work to avoid redundant data and simplify invariants.
2361         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
2362         'generic_class', and change type to a GenericInst.
2363         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
2364         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
2365
2366 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
2367
2368         * class.c : skip io-layer under PLATFORM_WIN32.
2369
2370 2007-01-03  Tor Lillqvist  <tml@novell.com>
2371
2372         Fix #80305: In a bundled executable, look in the bundled exe
2373         assembly to determine the runtime version. Add the possibility to
2374         bundle also the machine.config file.
2375         
2376         * assembly.c (mono_assembly_open_from_bundle): Make
2377         non-static. Allow being called even if we have no bundled
2378         assemblies, and return NULL right away in that case.
2379
2380         * domain-internals.h: Declare mono_assembly_open_from_bundle()
2381         here.
2382
2383         * domain.c (app_config_parse): Take an assembly exe file name as
2384         parameter instead of a config file name. Check for a bundled
2385         config file for that assembly by calling
2386         mono_config_string_for_assembly_file() (see below) before looking
2387         for one in the file system.
2388         (get_runtimes_from_exe): Corrsponding change to call of
2389         app_config_parse().
2390         (get_runtimes_from_exe): Check for bundled assembly exe file first
2391         by calling mono_assembly_open_from_bundle(). If no bundled
2392         assembly exe file is found, call mono_image_open() as before to
2393         look it up in the file system.
2394
2395         * mono-config.c: Add variable bundled_machinec_onfig.
2396         (mono_config_string_for_assembly_file): New function.
2397         (mono_config_for_assembly): Move code snippet that looks for a
2398         bundled assembly .config file into the above new function. Call
2399         it.
2400         (mono_register_machine_config, mono_get_machine_config): New
2401         functions to set and retrieve
2402
2403         * assembly.h: Declare mono_register_machine_config().
2404
2405         * mono-config.h: Declare mono_get_machine_config() and
2406         mono_config_string_for_assembly_file().
2407
2408         * icall.c: No declaration of environ necessary on Win32. It is
2409         declared (as a macro expanding to a function call) in stdlib.h.
2410         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
2411         New internal mono function. Returns the value of
2412         mono_get_machine_config() as a Mono string.
2413
2414         * icall-def.h: Add get_bundled_machine_config().
2415
2416 2007-01-04  Raja R Harinath  <rharinath@novell.com>
2417
2418         Remove redundant field
2419         * class-internals.h (_MonoGenericContext.container): Remove field.
2420         * loader.c (mono_method_get_signature_full): Don't parse a
2421         "container" for a signature parse when the signature is inflated
2422         immediately.
2423         (method_from_methodspec): Likewise, for a generic_inst.
2424         * class.c, metadata.c, reflection.c: Update to changes.
2425
2426 2006-01-04  Raja R Harinath  <rharinath@novell.com>
2427
2428         * class-internals.h (_MonoGenericClass): Rename 'context' field to
2429         'cached_context', and change semantics -- it starts off NULL, and
2430         is initialized on demand.
2431         * class.c (mono_generic_class_get_context): New accessor to
2432         replace 'context' field accesses.
2433         (mono_class_get_context): New helper.
2434         (*): Update to changes.
2435         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
2436
2437 2007-01-03  Miguel de Icaza  <miguel@novell.com>
2438
2439         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
2440         before the memcpy.   Fixes Marshal2 regression.
2441
2442 2007-01-02  Jb Evain  <jbevain@gmail.com>
2443
2444         * blob.h: add a MONO_TYPE_ENUM definition
2445         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
2446         fix the encoding of arrays of enums in custom attributes.
2447
2448         Fixes #79666.
2449
2450 2007-01-01  Miguel de Icaza  <miguel@novell.com>
2451
2452         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
2453         string is null terminated, but only cut the string short if it
2454         overflows the buffer.   
2455         
2456         (mono_string_to_byvalstr): Also fix this routine.   The code here
2457         was not properly terminating a string (it was only terminated
2458         because of the previous catch-all memset). 
2459
2460         I left the memset, because I do not know if applications expect
2461         the runtime to clear this region. 
2462
2463         Fixes #79944.
2464
2465         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
2466         Clear the error before returning to unmanaged code to prevent the
2467         runtime from being confused later on (fixes  80420).
2468         (ves_icall_type_from_name): Always call mono_loader_clear_error
2469         after parsing a type that could have failed.
2470         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
2471
2472         * loader.c (mono_loader_clear_error): Fix indentation.
2473
2474 2006-12-28  Martin Baulig  <martin@ximian.com>
2475
2476         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
2477
2478 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
2479
2480         * reflection.c: patch from Rolf Bjarne Kvinge to fix
2481         getting a token for an EnumBuilder.
2482
2483 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
2484
2485         * reflection.c: be more careful in case resource generation
2486         fails to create the data array.
2487
2488 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
2489
2490         * sgen-gc.c: write barrier for clone and fix unregister handles.
2491
2492 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
2493
2494         * reflection.c: some fixes needed in the generics code for the moving GC.
2495
2496 2006-12-22  Robert Jordan  <robertj@gmx.net>
2497
2498         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
2499         account. Fixes bug #80299.
2500
2501 2006-12-21  Raja R Harinath  <rharinath@novell.com>
2502
2503         Fix WaitHandle usage in delegates.
2504         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
2505         * object.c (mono_wait_handle_new): Use the property set method to
2506         initialize the handle.
2507         (mono_wait_handle_get_handle): New.
2508         * threadpool.c (mono_async_invoke): Use it.
2509         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
2510         Likewise.
2511         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
2512
2513 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
2514
2515         * marshal.c (emit_marshal): Call emit_marshal_variant and
2516         emit_marshal_com_interface when applicable.
2517         (emit_marshal_variant, emit_marshal_com_interface): Add
2518         methods for this case and remove if's from emit_marshal_object.
2519         
2520 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
2521
2522         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
2523
2524 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
2525
2526         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
2527         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
2528         and GlobalFree on Windows. Remove FIXME.
2529
2530 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
2531
2532         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
2533         implementation for managed objects.
2534
2535 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
2536
2537         * object.c: implemented code to be used for checking
2538         that no reference field overlaps with non-references.
2539
2540 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2541
2542         * threadpool.c: fix queue code to be compatible with the
2543         moving GC.
2544
2545 2006-12-18  Miguel de Icaza  <miguel@novell.com>
2546
2547         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
2548         in structures by throwing ArgumentNullException.
2549
2550         (emit_marshal_safehandle): Also when they are null parameters.
2551
2552         (emit_marshal_safehandle): Add support for ref
2553         SafeHandles parameters
2554
2555 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
2556
2557         * profiler.c: updated to use the mono-dl API instead of
2558         gmodule.
2559
2560 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2561
2562         * profiler.c: updated to use the mono-dl dynamic loading
2563         API instead of gmodule.
2564
2565 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
2566
2567         * profiler.c: use readlink, older versions of glib don't have
2568         g_file_read_link ().
2569
2570 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2571
2572         * profiler.c: try to detect the path to mono if libc fails to provide
2573         a useful name (bug #80286).
2574
2575 2006-12-16  Raja R Harinath  <rharinath@novell.com>
2576
2577         Fix #80242
2578         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
2579         instance, use the generic type definition instead.
2580         (ves_icall_Type_GetNestedTypes): Likewise.
2581         * class.c (mono_class_create_generic): Always set the
2582         nested_classes of a generic instance to NULL, even if the generic
2583         type definition has nested types.
2584
2585 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
2586
2587         * marshal.c (mono_string_from_bstr): Revert previous Windows change
2588         and fix on Linux.
2589         
2590 2006-12-15  Miguel de Icaza  <miguel@novell.com>
2591
2592         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
2593         my arguments were in the wrong order.   I also fixed the Windows
2594         version which seems to have had the same issue.
2595
2596         (mono_free_bstr): On Unix, this is g_free.
2597         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
2598         conversions (for the tests in corlib to pass).
2599
2600 2006-12-14  Miguel de Icaza  <miguel@novell.com>
2601
2602         * marshal.c (emit_ptr_to_object_conv): For now, ignore
2603         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
2604         exception if a ref SafeHandle in a struct has changed).
2605         
2606         (emit_struct_conv): Do not perform layout checks for classes
2607         derived from SafeHandle, as those are specially handled. 
2608
2609         (emit_object_to_ptr_conv): Add support for
2610         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
2611
2612         (emit_marshal_safehandle): Implement conversion of return values
2613         of safehandles (MARSHAL_ACTION_CONV_RESULT).
2614         
2615         * threads.c: WaitHandle now is compiled with two different handles
2616         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
2617         for 2.0.
2618         
2619         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
2620         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
2621         these routines to cope with both kinds of fields.
2622
2623 2006-12-12  Miguel de Icaza  <miguel@novell.com>
2624
2625         * metadata.c (mono_type_to_unmanaged): Handle the case where
2626         type->data.klass is a SafeHandle, and in that case, return the
2627         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
2628         MONO_MARSHAL_CONV_SAFEHANDLE. 
2629
2630 2006-12-11  Miguel de Icaza  <miguel@novell.com>
2631
2632         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
2633         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
2634         calling emit_marshal_object.
2635
2636         (emit_marshal_safehandle): Implement marshalling of
2637         SafeHandle parameters (no ref support yet).
2638
2639         (MarshalAction): Document the defines as I implement
2640         them for SafeHandle.
2641
2642         (emit_marshal_object): indentation police.
2643
2644         * class-internals.h: Define MonoSafeHandle.
2645         Add safehandle_class to MonoDefaults type.
2646
2647         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
2648         list of classes to check for fields. 
2649
2650         * domain.c (mono_init_internal): Add SafeHandle to the list of
2651         mono_defaults loaded.
2652
2653 2006-12-15  Raja R Harinath  <rharinath@novell.com>
2654
2655         Fix #80253
2656         * reflection.c (mono_reflection_bind_generic_parameters): If the
2657         generic type definition is a type builder, ensure that it is fully
2658         initialized before instantiating it.  Kill some dead code.
2659
2660 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
2661
2662         * object.c: clear the loader_error () before loading
2663         more metadata stuff (bug #80258).
2664
2665 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
2666
2667         * icall.c, icall-defs.h: type modifiers icalls for
2668         parameters and properties.
2669
2670 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
2671
2672         * object.c, icall.c: fixed warnings.
2673
2674 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
2675
2676         * marshal.c: fixed a couple of leaks and coding style in a few places.
2677
2678 2006-12-08  Dick Porter  <dick@ximian.com>
2679
2680         * process.c: Cope with NULL ProcessStartInfo arguments on windows
2681         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
2682         80173.
2683
2684 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
2685
2686         * process.c: ProcessStartInfo may have only filename set and
2687         arguments can be NULL.
2688
2689 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2690
2691         * icall.c: fix leak found by Robert Jordan.
2692
2693 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
2694
2695         * marshal.c, marshal.h: generate managed method to access an element
2696         of a multi-dimensional array.
2697
2698 2006-11-30  Paolo Molaro (lupus@ximian.com)
2699
2700         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
2701
2702 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2703
2704         * icall.c: back out GetFields () fix until the serialization code is
2705         fixed to not depend on the incorrect behaviour.
2706
2707 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
2708
2709         * profiler.c: provide defaults if none are set.
2710
2711 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
2712
2713         * Makefile.am, attrdefs.h: new public header file with
2714         constants for attributes for use by embedders.
2715
2716 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
2717
2718         * icall.c: GetFields () fix for bug #80064.
2719
2720 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
2721
2722         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
2723         removed long unused icalls.
2724
2725 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
2726   
2727         * marshal.c: 
2728                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
2729                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
2730                 can be generated without a delegate class.
2731                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
2732         
2733         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
2734
2735 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2736
2737         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
2738         #80069.
2739
2740 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
2741
2742         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
2743         icall-def.h: added icalls needed by System.GC.
2744
2745 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
2746
2747         * loader.c: ensure the class in catch clauses is handled
2748         correctly for generics methods (fixes bug#79980).
2749
2750 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
2751
2752         * monitor.h, monitor.c: added mono_locks_dump () function
2753         to help debug deadlocks involving managed locks.
2754
2755 2006-11-13  Dick Porter  <dick@ximian.com>
2756
2757         * file-io.c (get_file_attributes): If the file is a symlink try
2758         and get the stat data for the target, but also add the
2759         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
2760         the specs for the windows symlink support, but will probably have
2761         to be reworked when I have test data from a vista machine.  Fixes
2762         bug 79887.
2763
2764 2006-11-13  Dick Porter  <dick@ximian.com>
2765
2766         * gc.c (mono_domain_finalize): 
2767         * marshal.c (mono_delegate_begin_invoke): 
2768         * threadpool.c (socket_io_init, mono_thread_pool_init)
2769         (mono_thread_pool_finish): 
2770         * monitor.c (mono_monitor_try_enter_internal): 
2771         * threads.c (mono_thread_resume, mono_thread_init)
2772         (mono_thread_suspend_all_other_threads)
2773         (mono_thread_execute_interruption): 
2774         * appdomain.c (mono_domain_unload): Check for NULL error returns
2775         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
2776         75733.
2777
2778 2006-11-11  Miguel de Icaza  <miguel@novell.com>
2779
2780         * process.c
2781         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
2782         Only close the handle if the value of the handle is not
2783         INVALID_HANDLE_VALUE.  This just makes the process a bit more
2784         robust.
2785
2786         Improvement for #75733, so that we do not run into this problem. 
2787
2788         
2789         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
2790         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
2791         internal variables.  Fixes #79462 
2792         
2793
2794 2006-11-09  Dick Porter  <dick@ximian.com>
2795
2796         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
2797         Use poll() not select().  Fixes bug 79397.
2798
2799 2006-11-09  Raja R Harinath  <rharinath@novell.com>
2800
2801         Fix #79872
2802         * assembly.c (mono_assembly_load_from_full): Check that the given
2803         image has an assembly manifest.
2804
2805 2006-11-09  Ankit Jain  <jankit@novell.com>
2806
2807         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
2808         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
2809         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
2810
2811 2006-11-07  Dick Porter  <dick@ximian.com>
2812
2813         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
2814         Put the old resolver behaviour back for pre-2.0 profiles.
2815
2816 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
2817
2818         * threadpool.c: precise GC and locking fixes.
2819
2820 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
2821
2822         * class.c: don't load types that have an explicit unaligned
2823         managed reference. Provide better info in the TypeLoad exception.
2824         Part of the fix for bug #79744.
2825         * object.c: use the correct check for class type load issues.
2826
2827 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
2828
2829         * class.c: enforce alignment of fields with managed references
2830         even when Pack=1 is forced by the user (bug #77788).
2831
2832 2006-11-03  Dick Porter  <dick@ximian.com>
2833
2834         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
2835         If the address reverse lookup fails, return it as the hostname
2836         anyway.  Fixes bug 79721.
2837
2838 2006-11-03  Dick Porter  <dick@ximian.com>
2839
2840         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
2841         Fix build on Windows.
2842
2843 2006-11-02  Dick Porter  <dick@ximian.com>
2844
2845         * icall-def.h: 
2846         * object-internals.h: 
2847         * exception.c (mono_get_exception_thread_interrupted): 
2848         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
2849         Fixes bug 74525.
2850
2851         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
2852         Check for pending Thread.Interrupt.
2853
2854 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
2855         * loader.c: Fixed bug 79684.
2856
2857 2006-10-27  Dick Porter  <dick@ximian.com>
2858
2859         * file-io.c (get_file_attributes): Force symlinks to directories
2860         to be returned as a regular file.  Fixes bug 79733.
2861 2006-10-26  Dick Porter  <dick@ximian.com>
2862
2863         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
2864         CreateFile to open a directory then we need to set the
2865         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
2866
2867 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
2868
2869         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
2870         friends.
2871
2872 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
2873
2874         * sgengc.c: small cleanup of timer code.
2875
2876 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
2877
2878         * sgen-gc.c: fix some warnings and start adding support for
2879         complete object removal on domain unload.
2880
2881 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
2882
2883         * assembly.c: build_assembly_name should not consider a version
2884         number without build or revision number invalid. Fixes bug #79715.
2885
2886 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
2887
2888         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
2889         call kernel32 function OutputDebugString directly.
2890         
2891         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
2892         
2893 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
2894
2895         * reflection.c: small cleanup, using a function to insert a MonoString
2896         in the string heap.
2897
2898 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
2899
2900         * reflection.c: moving GC fixes.
2901
2902 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
2903
2904         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
2905         all the objects with finalizers belonging to an unloading appdomain.
2906
2907 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
2908
2909         * sgen-gc.c: added ability to allocate even when the nursery is fully
2910         pinned and fixed a couple of bugs.
2911
2912 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
2913
2914         * threads.h: Revert the last change for now.
2915
2916         * threads.h (mono_thread_get_pending_exception): Rename this to
2917         mono_thread_get_undeniable_exception ().
2918
2919 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
2920
2921         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
2922         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
2923         when fname does not refer to valid assembly. This result in a more
2924         meaningful error message.
2925         * exception.c: added mono_get_exception_bad_image_format2 which 
2926         constructs a BadImageFormatException using the ctor taking a custom
2927         message and the file name. Passing in a NULL msg results in a default
2928         message.
2929         * exception.h: define mono_get_exception_bad_image_format2 function.
2930         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
2931         when file name pointed to an invalid IL image. Use 
2932         mono_get_exception_file_not_found2 to construct FileNotFoundException,
2933         as this results in a more meaningful error message.
2934
2935 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
2936
2937         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
2938         #79465.
2939
2940 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
2941
2942         * metadata.c (mono_type_size): Change the align parameter to guint32 for
2943         consistency with the other _size functions.
2944         (mono_type_stack_size): Ditto.
2945
2946         * class.c object.c icall.c: Fix warnings caused by the above change.
2947
2948         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
2949
2950         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
2951
2952         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
2953
2954 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
2955
2956         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
2957         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
2958         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
2959         threadpool.h, threads-types.h: mark more internal functions.
2960
2961 2006-10-11  Dick Porter  <dick@ximian.com>
2962
2963         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
2964         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
2965         reproduce the bug even before applying the fix.)
2966
2967 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
2968
2969         * reflection.c: allow retrieving attributes for arguments in generic
2970         methods (bug #79241).
2971
2972 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
2973
2974         * debug-mono-symfile.c: properly check fopen () result (found by
2975         coverity).
2976
2977 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
2978
2979         * reflection.c: make error message clearer and fixed two
2980         issuelets found by Coverity.
2981
2982 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
2983
2984         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
2985
2986 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
2987
2988         * object-internals.h, gc-internal.h, profiler-private.h:
2989         mark internal functions.
2990
2991 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
2992
2993         * reflection.c: put data in the text section.
2994         * icall.c: recognize more types in type_from_typename ().
2995         * process.c, marshal.c: added some GC FIXMEs.
2996
2997 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
2998
2999         * loader.c: check for NULL before initializing.
3000
3001 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
3002
3003         * gc.c (finalizer_thread): Use a non-alertable wait here.
3004
3005         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
3006         until the correct solution is found.
3007
3008 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
3009
3010         * reflection.c (mono_module_get_object): Avoid an assert when operating on
3011         modules with no metadata. Fixes #79596.
3012
3013         * image.c (load_metadata_ptrs): Put back the error message when
3014         the #- heap is encountered since the support is not complete yet.
3015
3016 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
3017
3018         * gc.c: do not allow the user to SuppressFinalize () a
3019         delegate because it would leak the trampoline if present.
3020
3021 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
3022
3023         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
3024         PropertyPtr table.
3025
3026 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
3027
3028         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
3029
3030         * metadata.c (mono_metadata_get_param_attrs): Ditto.
3031
3032         * row-indexes.h: Add definitions for *Ptr tables.
3033
3034         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
3035
3036         * metadata.c (mono_metadata_translate_token_index): New helper function to
3037         translate table indexes used in uncompressed metadata.
3038         (mono_metadata_decode_table_row): Ditto.
3039         (mono_metadata_decode_table_row_col): Ditto.
3040
3041         * metadata.c: Add table schema for *Ptr tables.
3042
3043         * class.c loader.c: Use the new helper function to access the affected metadata
3044         tables.
3045         
3046         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
3047         #38532.
3048         
3049 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
3050
3051         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
3052         sequences which can be unbounded in size. Fixes #79583.
3053
3054 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
3055
3056         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
3057         static initialization.
3058
3059         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
3060
3061         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
3062
3063         * domain.c (mono_domain_free): Free up type_init_exception_hash.
3064
3065         * object.c (mono_runtime_class_init): Implement correct semantics when a static
3066         ctor fails, i.e. throw the same exception on subsequent accesses.
3067         
3068 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
3069
3070         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
3071         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
3072         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
3073         Handle marshalling of interfaces and VARIANTs contained in structs.
3074         
3075         Code is contributed under MIT/X11 license.
3076         
3077 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
3078
3079         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
3080         
3081         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
3082         mempool.
3083
3084 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3085
3086         * console-io.c: ignore previous SIGINT handler.
3087
3088 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
3089
3090         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
3091         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
3092         #79460, #79461, #79485.
3093
3094         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
3095
3096         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
3097         #79217.
3098
3099 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
3100
3101         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
3102         could be generated from it.
3103
3104 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
3105
3106         * rand.c: fix read loop to correctly handle EINTR.
3107
3108 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
3109
3110         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
3111         internal calls are defined to keep methods closer to the declaring
3112         type and allow a significant reduction in runtime relocations and
3113         memory usage.
3114
3115 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
3116
3117         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
3118         exception message to have FileNotFoundException use the default
3119         assembly load error message. Fixes bug #79426.
3120         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
3121
3122 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3123
3124         * threadpool.c: (start_thread_or_queue) use the root domain when
3125         creating the thread instead of the async object one.
3126
3127 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
3128
3129         * class.c, object.c, class-internals.h, reflection.c:
3130         for arrays, store element_size inside MonoClass (speedup
3131         for array object creation).
3132
3133 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
3134
3135         * icall.c: fixed CodeBase to use the file name and not the module
3136         name (bug #79365).
3137
3138 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
3139
3140         * mono-debug.c, mono-debug.h: export find_method as
3141         mono_debug_find_method ().
3142
3143 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
3144
3145         * debug-helpers.c, class-internals.h: added a few functions useful
3146         when debugging under gdb.
3147
3148 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3149
3150         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
3151         characters that need special handling.
3152
3153 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
3154
3155         * mono-config.c: make the os/cpu specification more flexible,
3156         allowing lists and negation.
3157
3158 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
3159
3160         * marshal.c: COM Interop fixes. Handle case where method->klass.
3161         is interface. Handle BSTR/MonoString when null. Use CDECL as 
3162         calling convention on non-windows platforms. This is for
3163         compatibility with XPCOM and MainWin COM.
3164         
3165         Code is contributed under MIT/X11 license.
3166         
3167
3168 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
3169
3170         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
3171         correctly. Fixes #79217.
3172
3173         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
3174
3175 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
3176
3177         * mono-config.c: allow both an os and cpu attribute for dllmap
3178         and dllentry elemnets to enable a single config file to be used
3179         for multiple architectures.
3180
3181 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
3182
3183         * loader.c: MonoLoaderError was cleared too soon on load failure.
3184         Fixes bug #79424.
3185
3186 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
3187
3188         * icall.c: use the defining class vtable when accessing a
3189         static field, not a pobblibly derived class.
3190
3191 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
3192
3193         * icall.c string-icalls.c: Remove references to unicode.h.
3194
3195         * unicode.h unicode.c Makefile.am: Remove these unused source files.
3196
3197         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
3198
3199         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
3200         indicating the image where custom marshaller types should be looked up.
3201         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
3202         custom marshallers, instead of corlib. Fixes #79425.
3203
3204 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
3205
3206         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
3207
3208 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
3209
3210         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
3211         Implement Environment.ProcessorCount.
3212         
3213         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
3214         Implement Environment.ProcessorCount.
3215         
3216         * icall.c: 
3217         Add Environment.ProcessorCount icall.
3218         
3219         Patch by Jason McFall.
3220
3221 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3222
3223         * assembly.c: don't append .exe/.dll when the filename already contains
3224         one of those extensions.
3225
3226 2006-09-12  Martin Baulig  <martin@ximian.com>
3227
3228         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
3229         to array interfaces.
3230
3231 2006-09-11  Martin Baulig  <martin@ximian.com>
3232
3233         * reflection.c (mono_image_build_metadata): Create the
3234         MethodImpl's after emitting all types and methods, so we don't
3235         need another fixup pass for them.
3236
3237 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
3238
3239         * class.c (mono_class_from_name_case): Fix regression introduced by the last
3240         change.
3241
3242 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
3243
3244         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
3245         unload.
3246
3247 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
3248
3249         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
3250         args is not set. Fixes #78926.
3251
3252 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
3253
3254         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
3255
3256         * image.c (load_class_names): Move this to class.c, and rename it to 
3257         'mono_image_init_name_cache'.
3258         (load_modules): Fix a warning.
3259
3260         * class.c icall.c image.c: Initialize image->name_cache lazily.
3261
3262         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
3263         on its name using information in the AOT file.
3264
3265         * class.c (mono_class_from_name): Use the new hook function.
3266
3267 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
3268
3269         * reflection.c (mono_param_get_objects): Handle enum default parameter values
3270         correctly.
3271
3272         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
3273         Fixes #79289.
3274         
3275 2006-09-06  Martin Baulig  <martin@ximian.com>
3276
3277         * icall.c (mono_lookup_internal_call): Small fix.
3278
3279 2006-09-05  Raja R Harinath  <rharinath@novell.com>
3280
3281         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
3282         double g_free.
3283
3284 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
3285
3286         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
3287         when --debug is specified.
3288
3289 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
3290
3291         * class.c (setup_generic_array_ifaces): Fix a warning.
3292
3293 2006-09-04  Miguel de Icaza  <miguel@novell.com>
3294
3295         * Temporarily remove the patch to assemly.c that checks the
3296         assembly versions as it breaks our gacutil.
3297
3298 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
3299
3300         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
3301
3302         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
3303         a net 1.0 runtime.
3304
3305         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
3306         created using the default ctor. Fixes #79152.
3307         (mono_string_builder_to_utf16): Ditto.
3308
3309 2006-09-01  Martin Baulig  <martin@ximian.com>
3310
3311         Fix handling of the generic array interfaces.
3312
3313         * class-internals.h
3314         (MonoDefaults): Removed `generic_array_class' and added
3315         `generic_ilist' class.
3316
3317         * class.c
3318         (mono_bounded_array_class_get): Add the new generic array interfaces.
3319         (setup_generic_array_ifaces): New static method; create vtable
3320         entries for each method in the generic array interfaces.
3321
3322         * metadata.c
3323         (select_container): Allow "parent-less" generic methods.
3324
3325         * marshal.c
3326         (mono_marshal_get_generic_array_helper): New public method.
3327
3328         * icall.c
3329         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
3330         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
3331         moved the interncall into System.Array.
3332
3333 2006-09-01  Raja R Harinath  <rharinath@novell.com>
3334
3335         A few more cases of avoiding work on types with ->byref set.
3336         Has the real fix for #79238
3337         * icall.c (is_generic_parameter): New helper.
3338         (ves_icall_Type_GetGenericParameterPosition): Use it.
3339         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
3340         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
3341         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
3342         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
3343         reference types.
3344         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
3345         reference types.
3346         (ves_icall_Type_get_IsGenericInstance): Likewise.
3347         (ves_icall_Type_get_IsGenericType): Likewise.
3348
3349 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
3350
3351         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
3352         class if possible.
3353
3354         * mempool.h (mono_mempool_get_allocated): New helper function.
3355
3356         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
3357         change.
3358
3359         * mempool.c: Fix warnings and the calculation of stats.
3360
3361         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
3362
3363         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
3364
3365         * loader.c (mono_get_method_from_token): Update method_count stat.
3366
3367         * class-internals.h (MonoStats): Add some stats.
3368
3369 2006-08-31 Robert Jordan  <robertj@gmx.net>
3370
3371         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
3372         with managed variants.
3373         All code is contributed under the MIT/X11 license.
3374         
3375 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
3376
3377         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
3378         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
3379
3380         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
3381
3382         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
3383         with cycles in classes.
3384
3385         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
3386
3387         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
3388         missing a [MarshalAs] directive. Fixes #79203.
3389
3390         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
3391         klass->marshal_info. Fixes #79217.
3392
3393 2006-08-30  Martin Baulig  <martin@ximian.com>
3394
3395         Committing a patch from Joachim Ante <joe@otee.dk>:
3396         Add support for binary data symbol stores.
3397
3398         * debug-mono-symfile.c
3399         (mono_debug_open_mono_symbol_file): Renamed into
3400         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
3401         arguments.
3402
3403         * mono-debug.c
3404         (mono_debug_open_image): Added `raw_contents' and `size' args.
3405         (mono_debug_init_2_memory): New public function.
3406
3407 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
3408
3409         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
3410
3411 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3412
3413         * appdomain.c: implement support for ShadowCopyFiles.
3414
3415 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
3416
3417         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
3418         when value is NULL (and should remove CID #51).
3419
3420 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3421
3422         * image.c: moved 2 functions to ../utils.
3423
3424 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
3425
3426         * gc.c: cope with the target object of a GC handle being NULL
3427         (bug #78877).
3428
3429 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
3430
3431         * class.c: recursively check parent's explicit implementations
3432         of interface methods (fixes bug #79125).
3433
3434 2006-08-19  Miguel de Icaza  <miguel@novell.com>
3435
3436         * filewatcher.c: Avoid warnings when building, do not redefine
3437         constants that are defined.
3438
3439         Remove warnings.
3440
3441 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3442
3443         * image.c: don't fail when the link points to an absolute path.
3444
3445 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
3446
3447         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
3448         Fix CID #3.
3449
3450 2006-08-17  Miguel de Icaza  <miguel@novell.com>
3451
3452         * image.c (full_path): A new method used to obtain the actual path
3453         of an assembly even in the presence of symbolic links.  
3454
3455         This is necessary for the case where we are running a binary that
3456         has been GACed, but we are using the "published" path name
3457         ($prefix/mono/1.0/blah.exe) which happens to point to the real
3458         file in the GAC.
3459
3460         This was the source of the failure for the `xsp' command with the
3461         recent AppDomain changes, as far as the runtime was concerned,
3462         there were two different assemblies: $prefix/mono/1.0/blah.exe and
3463         $prefix/mono/gac/blah/version/blah.exe.
3464
3465         (do_mono_image_open): use full path
3466
3467 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3468
3469         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
3470
3471 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
3472
3473         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
3474         domain_id is supplied. Fix CID #241 and corlib's unit tests.
3475
3476 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3477
3478         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
3479         small structures. Fixes #78990.
3480
3481 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3482
3483         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
3484
3485         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
3486
3487 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3488
3489         * appdomain.c:
3490         * marshal.c: don't load all the assemblies from a domain into newly
3491         created ones. The new domains might have different rules and load
3492         assemblies from different locations. Fixes bug #76757.
3493
3494         Patch by Lluis. Conflicts resolved by Brian Crowell.
3495
3496 2006-08-16  Alp Toker  <alp@atoker.com>
3497
3498         * socket-io.c: First half of the fix for #79084.
3499         Set sa_size to the length of the content, not that of the struct.
3500         Don't add NULL suffix to the content, this should be done in
3501         managed code if needed.
3502
3503 2006-08-14  Raja R Harinath  <rharinath@novell.com>
3504
3505         Fix part of #79012
3506         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
3507         mono_metadata_parse_type returns NULL.
3508
3509 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
3510
3511         * normalization-tables.h : new file for string normalization data.
3512         * locales.c, locales.h, icall.c :
3513           added load_normalization_resource() for string normalization,
3514           and icall as well.
3515         * Makefile.am : added normalization-tables.h to the sources.
3516
3517 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
3518
3519         * marshal.c: Add more helper functions to reduce code duplication and use them
3520         everywhere.
3521
3522 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
3523
3524         * marshal.c: Fix non-x86 stdcall warnings.
3525         
3526         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
3527         them everywhere.
3528
3529 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
3530
3531         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
3532         type check on multi-dimensional arrays. Fixes #79000.
3533
3534 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
3535
3536         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
3537         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
3538         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
3539         * class-internals.h: add is_com_object to class structure.
3540         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
3541         null checks to COM object marshalling. Fix .ctor call on RCW.
3542         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
3543         
3544         All code is contributed under the MIT/X11 license.
3545
3546 2006-08-09  Dick Porter  <dick@ximian.com>
3547
3548         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
3549         racing mono_monitor_allocator_lock() somewhere, so don't delete
3550         the critical section for now.  Found by running and exiting
3551         monodevelop.
3552
3553 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
3554
3555         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
3556         (ves_icall_System_ComObject_FindInterface): Ditto.
3557         (ves_icall_System_ComObject_CacheInterface): Ditto.
3558
3559         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
3560         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
3561
3562 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3563
3564         * threadpool.c: treat pipes from process asynchronous reads as sockets
3565         when reading from them, so we get select/poll or epoll to wait for
3566         data.
3567
3568 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
3569
3570         * loader.c: Fix a typo (CID #233) in the null check.
3571
3572 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
3573
3574         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
3575         Hopefully fixes #78949.
3576         
3577         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
3578         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
3579         bytes. Fixes #78972.
3580
3581 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3582
3583         * filewatcher.c: we need to set errno here.
3584
3585 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3586
3587         * filewatcher.c: let Win32Exception get the error value.
3588
3589 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3590
3591         * filewatcher.c: translate errno into win32 errors for Win32Exception
3592         to know what happened.
3593
3594 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
3595
3596         * threadpool.c: Fix more warnings.
3597
3598         * assembly.c (search_loaded): Fix warnings.
3599
3600         * threadpool.c (mono_thread_pool_finish): Fix warnings.
3601         (mono_async_invoke): Ditto.
3602
3603 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
3604
3605         * object.c (mono_remote_class_vtable): Need to create proxy vtable
3606         entries for __ComObject type in addition to ComImport types.
3607         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
3608         about hash table.
3609         
3610         All code is contributed under the MIT/X11 license.
3611
3612 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
3613
3614         * image.c: avoid tentative loading of modulerefs that contain
3615         no metadata (P/Invoke library names).
3616
3617 2006-07-28  Dick Porter  <dick@ximian.com>
3618
3619         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
3620         mono_loader_lock() somewhere, so don't delete the critical section
3621         for now.  Found by running and exiting monodevelop.
3622
3623 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3624
3625         * filewatcher.c: define the inotify syscalls when we're building on
3626         linux and have sys/syscall.h. The build system might not have support
3627         for inotify but the target system might have it.
3628
3629 2006-07-26  Miguel de Icaza  <miguel@novell.com>
3630
3631         * domain.c: Documentation updates.
3632
3633         * loader.c (mono_free_method): Do not release the method
3634         information if we are being profiled, as profilers will use this
3635         information at shut down to present some data to the user.
3636
3637         This is needed so that the profiler does not crash, as the
3638         profiler tends to keep MonoMethods around, and they might become
3639         invalid if we free these.
3640
3641         (mono_get_method_constrained): Return the original CIL stream
3642         method as well, so verification can be performed against it.
3643
3644 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3645
3646         * filewatcher.[ch]: support for inotify file system watcher.
3647         * icall.c: add new internal calls for the inotify file system watcher.
3648
3649 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3650
3651         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
3652         #78888.
3653
3654 2006-07-20  Dick Porter  <dick@ximian.com>
3655
3656         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
3657         warning.
3658
3659 2006-07-20  Dick Porter  <dick@ximian.com>
3660
3661         * threads.c (start_wrapper): Do the thread cleanup while we still
3662         hold a reference to its object.  Fixes bug 78123.
3663
3664 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
3665
3666         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
3667         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
3668           "managed-to-managed".
3669         * icall.c: Redirect string constructors that take sbyte* to
3670           ves_icall_System_String_ctor_RedirectToCreateString.
3671         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
3672           to CreateString () methods with matching signature.
3673         * reflection.c: Use original security informations for
3674           MONO_WRAPPER_MANAGED_TO_MANAGED.
3675         * security-manager.c: Use original security informations for
3676           MONO_WRAPPER_MANAGED_TO_MANAGED.
3677         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
3678           that is a placeholder and only its address should be used.
3679         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
3680           that is a placeholder and only its address should be used.
3681
3682 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
3683
3684         Begin implementing COM Interop.
3685         * appdomain.c: Increment corlib version.
3686         * class.c: Set ComImport classes' parent to __ComObject.
3687         * loader.c: Mark cominterop methods as such.
3688         * domain.c: Add __ComObject class to MonoDefaults structure.
3689         * image.c: Add 2 hashtables to the image for COM Interop related methods
3690         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
3691         using the mempool allocator
3692         
3693         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
3694         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
3695         declaration for mono_metadata_type_dup_mp.
3696         
3697         * debug-helpers.c: Added strings for two additional wrapper types
3698         * object.c: Create proxy objects for ComImport classes
3699         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
3700         and added __ComObject class to MonoDefaults structure.
3701         
3702         * object-internals.h: Finish MonoRealProxy definition, and add definition of
3703         MonoComInteropProxy and MonoComObject.
3704         
3705         * marshal.c: Added support for COM Interop
3706         (signature_cominterop): Converts managed signature to corresponding
3707         unmanaged COM signature.
3708         (cominterop_get_function_pointer): gets unmanaged function pointer via
3709         COM object vtable
3710         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
3711         (cominterop_get_method_interface): returns interface type that method is defined on
3712         (mono_mb_emit_cominterop_call): emits native call to function pointer
3713         gotten from vtable
3714         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
3715         that matches signature of unmanaged function.
3716         (cominterop_get_native_wrapper): wrapper around adjusted method call.
3717         (cominterop_get_invoke): forwards call from proxy to __ComObject
3718         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
3719         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
3720         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
3721         
3722         * marshal.h: Added Marshal icall declarations.
3723         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
3724         so we can access them in finalizer
3725         
3726 2006-07-14  Dick Porter  <dick@ximian.com>
3727
3728         * object.c (mono_type_initialization_cleanup): Fix a race
3729         condition by temporarily commenting out the critical section
3730         deletion.
3731
3732 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
3733
3734         * reflection.c (create_custom_attr): Fix some warnings.
3735         (create_custom_attr_data): Ditto.
3736         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
3737         types. Fixes #78855.
3738
3739 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
3740
3741         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
3742
3743         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
3744
3745 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
3746
3747         * reflection.c (resolve_object): Add support for DynamicMethod.
3748
3749         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
3750         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
3751
3752 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
3753
3754         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
3755         don't leak GPtrArray's pdata has we have no use (nor free) for it.
3756
3757 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
3758
3759         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
3760         Fixes #77888.
3761
3762 2006-06-30  Raja R Harinath  <rharinath@novell.com>
3763
3764         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
3765         slightly: remove a shadow local variable.
3766
3767 2006-06-29  Raja R Harinath  <rharinath@novell.com>
3768
3769         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
3770         definition that introduces the virtual function slot.
3771         Also fix Coverity #105.
3772
3773 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
3774
3775         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
3776         for dynamic assemblies. Fixes #78724.
3777
3778 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
3779
3780         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
3781         Fixes #78722.
3782
3783 2006-06-21  Martin Baulig  <martin@ximian.com>
3784
3785         * reflection.c
3786         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
3787         fixes #76484.
3788
3789 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
3790
3791         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
3792
3793 2006-06-20  Raja R Harinath  <rharinath@novell.com>
3794
3795         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
3796         nor TYPEREFs.
3797         * class.c (mono_class_create_from_typespec): Add 'context' argument.
3798         Inflate result if necessary.
3799         (mono_class_get_full): Remove old version.  Rename from
3800         'mono_class_get' and add 'context' argument.  Pass it to
3801         ..._create_from_typespec.
3802         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
3803         (mono_ldtoken): Revert change below.
3804
3805 2006-06-20  Martin Baulig  <martin@ximian.com>
3806
3807         * class.c (mono_ldtoken): Don't pass the generic context to
3808         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
3809
3810 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
3811
3812         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
3813         and later freeing it. Fixes #78638.
3814
3815 2006-06-15  Miguel de Icaza  <miguel@novell.com>
3816
3817         * icall.c (mono_class_get_throw): Revert over-zealous error
3818         throwing, the caller for mono_class_get_throw will cope with
3819         errors when classes are not properly initialized already.
3820
3821         The code still copes with loader exceptions though.
3822
3823         Fixes the regression in reftype1 and reftype3 from the CAS tests.
3824         
3825 2006-06-14  Miguel de Icaza  <miguel@novell.com>
3826
3827         Fixes the `make run1' version of RuntimeAbort (to be commited,
3828         source is in Bugzilla).
3829         
3830         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
3831         FALSE on class loading failure instead of returning true.
3832
3833         * class.c (mono_class_create_from_typedef): It is possible for
3834         mono_metadata_interfaces_from_typedef_full to fail if a class is
3835         not found, cope with this.
3836         
3837
3838 2006-06-14  Dick Porter  <dick@ximian.com>
3839
3840         * socket-io.c: 
3841         * process.c: Fix a bunch of signed/unsigned warnings from gcc
3842         4.1.1
3843
3844 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
3845
3846         * culture-info-table.h : oops, forgot to make it nsync with r61548.
3847
3848 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
3849
3850         * icall.c: Another fix for building mono in Visual Studio.
3851
3852 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
3853
3854         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
3855         
3856 2006-06-09  Martin Baulig  <martin@ximian.com>
3857
3858         * debug-mono-symfile.c: Put this back and really fix it this
3859         time. Sorry for all the trouble.
3860
3861 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
3862
3863         * icall.c (mono_class_get_throw): Fix a warning.
3864         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
3865         ReflectionTypeLoadException if needed. Fixes #78606.
3866
3867         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
3868         (mono_class_init): Ditto.
3869
3870         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
3871         ref_only exceptions.
3872         (mono_loader_clear_error): Make this work even if there is no error.
3873
3874 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
3875
3876         * object-internals.h marshal.c marshal.h icall.c: Implement method 
3877         Marshal.GetComSlotForMethodInfo using internal call.
3878
3879 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
3880
3881         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
3882         a function for signalling it.
3883
3884         * class.c (mono_class_from_typeref): Use the new kind of loader error when
3885         a referenced assembly is not found.
3886
3887         * loader.c (mono_loader_error_prepare_exception): Add support for 
3888         LOADER_ERROR_ASSEMBLY. Fix formatting.
3889
3890 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
3891
3892         * domain.c appdomain.c class-internals.h marshal.c: Add support 
3893         for VARIANT marshalling on windows and increment corlib version
3894         since Variant struct was added.
3895
3896 2006-06-03  Miguel de Icaza  <miguel@novell.com>
3897
3898         * debug-mono-symfile.c: Revert Martin's previous patch which broke
3899         stack trace line information:
3900
3901         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
3902         (Martin) when looking up B which is between A and C, return A not C.
3903
3904         Bug is #78573.
3905
3906         Thanks to Alexander Olk for tracking this down.
3907
3908 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
3909
3910         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
3911         
3912         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
3913         avoid clobbering its value.
3914         (mono_string_to_lpstr): Fix a warning on windows.
3915
3916 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
3917
3918         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
3919
3920         * reflection.c loader.c: Removed references to 'dummy' flag.
3921
3922         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
3923
3924         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
3925         it gets GC tracking.
3926
3927         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
3928         GC tracking.
3929         
3930         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
3931
3932         * marshal.c threadpool.c: Update callers of mono_async_result_new.
3933
3934         * appdomain.c: Bump corlib version.
3935
3936 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
3937
3938         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
3939         CEE_STIND_REF when working with object references.
3940
3941 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
3942
3943         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
3944         Fixes #78539.
3945
3946 2006-05-30  Miguel de Icaza  <miguel@novell.com>
3947
3948         * loader.c (method_from_memberref): Fix argument value for
3949         mono_loader_set_error_method_load (I was passing the MonoClass
3950         instead of the class name char *).
3951
3952 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
3953
3954         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
3955         CEE_STIND_REF when working with object references.
3956
3957 2006-05-30  Martin Baulig  <martin@ximian.com>
3958
3959         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
3960         mono_method_full_name() change and replace the ':' with a '.'
3961         here.
3962
3963 2006-05-30  Martin Baulig  <martin@ximian.com>
3964
3965         * debug-mono-symfile.c
3966         (mono_debug_symfile_lookup_location): Fix the algorithm:
3967         when looking up B which is between A and C, return A not C.
3968
3969 2006-05-29  Martin Baulig  <martin@ximian.com>
3970
3971         * mono-debug.h
3972         (MonoDebugMethodInfo): Make the typedef public.
3973         (MonoDebugSourceLocation): New public struct.
3974
3975         * mono-debug.c
3976         (mono_debug_source_location_from_address): Removed.
3977         (mono_debug_source_location_from_il_offset): Removed.
3978         (mono_debug_il_offset_from_address): Removed.
3979         (mono_debug_address_from_il_offset): Removed.
3980         (mono_debug_lookup_method): New public function.
3981         (mono_debug_lookup_source_location): New public function; replaces
3982         the old mono_debug_source_location_from_*() functions; see the
3983         inline documentation.
3984         (mono_debug_free_source_location): New public function.
3985         (mono_debug_print_stack_frame): New public function; see the
3986         inline documentation.
3987
3988         * debug-mono-symfile.c
3989         (mono_debug_find_source_location): Renamed into
3990         mono_debug_symfile_lookup_location(); only take a
3991         `MonoDebugMethodInfo *' and an `offset' argument; added inline
3992         documentation.
3993         (mono_debug_find_method): Renamed into
3994         mono_debug_symfile_lookup_method().
3995
3996 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
3997
3998         * assembly.c (mono_assembly_open_full): Dont overwrite the status
3999         returned by mono_image_open_full ().
4000
4001         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
4002         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
4003         #78517.
4004
4005         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
4006         #78518.
4007
4008 2006-05-27  Miguel de Icaza  <miguel@novell.com>
4009
4010         * class.c (mono_class_from_typeref): handle missing images
4011         earlier, deals with bug #78418.   Refactor code; 
4012
4013         Fix a warning introduced in my previous commit (some stale code
4014         from before I revisited my patch).
4015
4016         * class.c (mono_class_create_from_typedef): On failure, remove the
4017         class from the MonoImage->class_cache as the class is not
4018         initialized;   Fixes the leak pointed out by Paolo.
4019
4020 2006-05-25  Dick Porter  <dick@ximian.com>
4021
4022         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
4023         DeleteCriticalSections until I figure out which one may still be
4024         sometimes locked when mono_thread_cleanup is called.
4025
4026 2006-05-24  Dick Porter  <dick@ximian.com>
4027
4028         * threads.c (mono_thread_cleanup): Move the threading cleanup out
4029         of mono_thread_manage and back into its own function, so it can be
4030         called after the finalizer thread has finished.
4031
4032         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
4033
4034 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
4035
4036         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
4037         Fixes #78495.
4038
4039         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
4040         with non-blittable elements.
4041         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
4042
4043 2006-05-24  Martin Baulig  <martin@ximian.com>
4044
4045         * mono-debug-debugger.h (MonoDebuggerEvent): Added
4046         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
4047
4048         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
4049         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
4050         `mono_debugger_event_handler' to NULL.
4051
4052 2006-05-24  Martin Baulig  <martin@ximian.com>
4053
4054         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
4055
4056 2006-05-24  Martin Baulig  <martin@ximian.com>
4057
4058         * mono-debug-debugger.h
4059         (mono_debugger_create_notification_function): Added
4060         `MonoCodeManager *' argument.
4061
4062 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
4063
4064         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
4065
4066 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
4067
4068         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
4069         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
4070         implementation.
4071
4072 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
4073
4074         * icall.c: precise GC support: objects can't be stored in unmanaged
4075         memory anymore, even if they are kept alive by other references: since
4076         they can move the GC needs to be able to always find them.
4077
4078 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
4079
4080         * object.c: precise GC support for static fields. Support
4081         for moving GCs: write barriers and pinned allocation for interned
4082         strings.
4083
4084 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
4085
4086         * domain.c, domain-internals.h: precise GC support for the MonoDomain
4087         structure.
4088
4089 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
4090
4091         * class.c, gc.c: sgen and precise GC updates.
4092
4093 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
4094
4095         * marshal.h, marshal.c: added write barrier wrapper and precise type
4096         fixes.
4097
4098 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
4099
4100         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
4101         support.
4102
4103 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
4104
4105         * reflection.c: precise and sgen GC updates.
4106
4107 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
4108
4109         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
4110
4111 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
4112
4113         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
4114
4115 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
4116
4117         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
4118         MONO_TYPE_OBJECT. Fixes #78462.
4119
4120 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
4121
4122         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
4123         and blittable types.
4124
4125 2006-05-17  Miguel de Icaza  <miguel@novell.com>
4126
4127         * class.c (mono_class_get_exception_for_failure): Implement parts
4128         of a TODO: if the loader error is set (instead of the class
4129         error), we return a Loader exception that can be properly thrown
4130         elsewhere.
4131
4132         This was exposed by some Winforms 2.0 code that I tried to run
4133         (Atsushi pointed me to it).
4134
4135 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
4136
4137         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
4138         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
4139         
4140         * marshal.c (emit_marshal_vtype): Add limited support for 
4141         UnmanagedType.LPStruct. Fixes #78427.
4142
4143         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
4144         Applied a patch from kangaroo to fix #77523.
4145
4146 2006-05-17  Martin Baulig  <martin@ximian.com>
4147
4148         * threads.c
4149         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
4150         (debugger_thread_created): Removed.
4151         (debugger_thread_exited): Removed.
4152
4153 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
4154
4155         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4156
4157         * object-internals.h (MonoReflectionResource): Sync with managed version.
4158
4159 2006-05-12  Wade Berrier <wberrier@novell.com>
4160
4161         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
4162
4163 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
4164
4165         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
4166         functions try to allocate from the image mempool.
4167
4168 2006-05-12  Dick Porter  <dick@ximian.com>
4169
4170         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
4171
4172 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
4173
4174         * object.c: The FieldGetter and FieldSetter methods require the full
4175         name of the class, not only the name. Fixes bug #78277.
4176
4177 2006-05-11  Miguel de Icaza  <miguel@novell.com>
4178
4179         * loader.c (method_from_memberref): Do not pass the NULL klass to
4180         mono_loader_set_error_() methods.  Pass the non-NULL value
4181         (class). 
4182
4183 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
4184
4185         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
4186         (mono_assembly_close): Null out assembly->image->references after freeing it.
4187
4188         * image.c (mono_image_close): Free image->references.
4189         
4190         * reflection.c (mono_image_basic_init): Fix a small memory leak.
4191
4192 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
4193
4194         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
4195         before checking if it's NULL (g_assert).
4196
4197 2006-05-10  Martin Baulig  <martin@ximian.com>
4198
4199         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
4200         I thought I already killed that two months ago, but now it somehow reappeared.
4201
4202 2006-05-10  Martin Baulig  <martin@ximian.com>
4203
4204         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
4205
4206 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
4207
4208         * reflection.c: Allocate memory for dynamically created methods in the image
4209         mempools.
4210
4211 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
4212
4213         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
4214         don't use the ad pointer before checking if it's NULL (g_assert).
4215
4216 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
4217
4218         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
4219         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
4220
4221         * marshal.c: Allocate all signatures from mempools.
4222
4223         * marshal.c: Allocate some more signatures from mempools.
4224
4225 2006-05-09  Miguel de Icaza  <miguel@novell.com>
4226
4227         * object.c (mono_load_remote_field): The code used to provide a
4228         temporary variable for returning results if the user did not
4229         provide a result pointer.  But our temporary variable was allocted
4230         on the satck.
4231
4232         Fix calling code to always pass a result area.   Coverity ID 103.
4233
4234 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
4235
4236         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
4237         value, not the old. Fixes #78312.
4238         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
4239
4240         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
4241         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
4242         per-image cache.
4243
4244         * assembly.c (mono_assembly_close): Free image->references.
4245
4246         * assembly.c (mono_assembly_names_equal): Fix a warning.
4247         (mono_assemblies_cleanup): Cleanup more global data.
4248
4249         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
4250
4251         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
4252         ptr_cache and image->modules.
4253
4254         * image.c (mono_image_init): Allocate array_cache lazily.
4255         
4256 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4257
4258         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
4259         behavior was changed recently and has bad side effects.
4260
4261 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
4262
4263         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
4264         
4265         * assembly.c (mono_assembly_close): Remove a debug printf.
4266
4267         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
4268
4269         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
4270         to also allow for temporary references between mono_image_open ()/close ().
4271
4272         * domain.c (get_runtimes_from_exe): Add a FIXME.        
4273
4274 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
4275
4276         * marshal.c: Fix support for dynamic methods.
4277
4278         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
4279
4280         * marshal.c (mono_marshal_cleanup): New cleanup function.
4281
4282         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
4283         image mempools.
4284
4285         * class.c (mono_class_init): Fix leaking class->nested_classes.
4286
4287         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
4288
4289         * image.c (mono_image_init): Initialize the new cashes.
4290
4291         * image.c (mono_image_close): Destroy the new cashes.
4292
4293         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
4294
4295         * mempool.c (mono_mempool_strdup): New helper function.
4296
4297         * class-internals.h: Add prototype for mono_loader_unlock ().
4298
4299         * domain.c (mono_jit_info_table_find): Fix a warning.
4300         (mono_debugger_check_runtime_version): Ditto.
4301
4302         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
4303         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
4304         functions to these modules.
4305
4306         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
4307         metadata modules.
4308         
4309         * marshal.c (mono_free_bstr): Fix a warning.
4310
4311         * assembly.c (mono_assembly_open_full): Fix another small leak.
4312
4313         * object.c: Fix some unload leaks in the remoting code.
4314
4315         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
4316         function.
4317
4318         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
4319
4320         * reflection.c: Fix some unload leaks in dynamic assemblies.
4321
4322 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
4323
4324         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
4325         * marshal.h: Add BSTR support on Win32
4326         * icall.c: Add BSTR icalls
4327         * metadata.h: Add BSTR enums
4328
4329 2006-04-28  Miguel de Icaza  <miguel@novell.com>
4330
4331         Work to catch the crash from #76795 and turn it into an
4332         exception.   As I stubbed out pieces of the VisualBasic support,
4333         I found a number of places where the code was failing and I added
4334         checks to those places. 
4335         
4336         * metadata.c (do_mono_metadata_parse_generic_class): Make this
4337         function return a status code.  If we fail to parse the signature
4338         from mono_metadata_parse_generic_inst, return FALSE.
4339
4340         * loader.c (mono_get_method_from_token): If we fail to load the
4341         method (mono_class_get) return NULL.   
4342
4343         * (method_from_memberref): Return NULL if we are unable to parse
4344         the method signature
4345
4346         (mono_loader_error_prepare_exception): Since we now use the
4347         loader_error flag internally to stop processing, and obtaining
4348         exceptions that might be thrown will walk this code path the
4349         proper way of going from a MonoLoaderError into a
4350         MonoException was convoluted.   This new routine encapsulates the
4351         process of turning the error into an exception and *clearing* the
4352         error afterwards.
4353         
4354 2006-04-27  Miguel de Icaza  <miguel@novell.com>
4355
4356         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
4357         with missing assemblies), and to cope with:
4358
4359                 * Missing fieldref from a non-existing assembly.
4360                 * Missing methodref from a non-existing assembly.
4361
4362         The first batch of work to address *some* of the issues from 76661.
4363         
4364         * object.c (mono_class_create_runtime_vtable): If we fail to
4365         initialize the class raise the exception here. 
4366
4367         * metadata.c (mono_class_get_overrides_full): If any methods fail
4368         to load return the failure to the caller.
4369
4370         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
4371         flagging assemblies that failed to load.   
4372
4373         Do not crash if we are unable to load the assembly.
4374
4375         (mono_assembly_close): Do nothing with REFERENCE_MISSING
4376         assemblies. 
4377
4378         * loader.c (mono_loader_set_error_type_load): Change the
4379         convention to always pass unallocated strings, so we make our own
4380         copies (I know our own code had duplicated strings before, but
4381         this keeps the normal conventions).
4382         (method_from_memberref): Call mono_loader_set_error_method_load
4383         for all possible failures of loading the class. 
4384         Remove assert, turn into a loader error.
4385
4386         (mono_loader_error_to_exception): Move this routine from mini
4387         (mini_loader_error_to_exception) there was no need to have that in
4388         mini. 
4389
4390         * class.c (mono_class_from_typeref): If we were not able to load
4391         the assembly with mono_assembly_load_reference, call the
4392         mono_loader_set_error_type_load to register the problem.
4393
4394         (mono_class_setup_fields): If we fail to load the type from
4395         mono_metadata_parse_type_full, call mono_class_set_failure and
4396         break from the loop.
4397
4398         If class->exception_type is set, we do not layout the fields as
4399         that might crash the runtime, and instead return (from breaking
4400         from the previous loop).
4401
4402         (mono_class_setup_vtable): This now returns a boolean indicating
4403         whether the table was properly setup.   The decision is driven by
4404         mono_class_get_overrides_full which might run into non-existing
4405         methods. 
4406         
4407         (mono_class_init): Returns TRUE on success or FALSE if there was a
4408         problem in loading the type (incorrect assemblies, missing
4409         assemblies, methods, etc).
4410
4411         When we call mono_class_setup_fields we also check for a potential
4412         error inside this call (either a class exception or a general
4413         loader exception).
4414
4415         (mono_class_create_from_typedef): If the parent fails to load
4416         (calling mono_class_get_full) return NULL.
4417         
4418         ** Important **
4419
4420         calls to mono_metadata_parse_type_full should be checked
4421         everywhere and set the mono_class_set_failure
4422         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
4423
4424         The current patch checks the places where my manually constructed
4425         tests show the errors are showing up, but we should do it
4426         everywhere. 
4427
4428         ** Important2 **
4429
4430         mono_class_init return values should be tested everywhere, like
4431         the previous case this is something that we should audit
4432         everywhere and not only on the cases exposed by the tests I
4433         created. 
4434
4435 2006-04-26  Miguel de Icaza  <miguel@novell.com>
4436
4437         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
4438         boolean parameter and instead pass the information on `options'
4439         parameter (FileOptions).
4440
4441         * icall.c: Register the new signature for MonoIO.Open.
4442
4443         * debug-helpers.c (dis_one): Trying to understand how coverity
4444         works.  Fix Run 5, item 78.
4445
4446 2006-04-26  Dick Porter  <dick@ximian.com>
4447
4448         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
4449         dereference.
4450
4451 2006-04-25  Martin Baulig  <martin@ximian.com>
4452
4453         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
4454
4455         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
4456         debugger_thread_created().
4457         (debugger_gc_push_all_stacks): Don't handle the main thread in any
4458         special way.
4459         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
4460         (mono_debugger_finalize_threads): New function; undo the effects
4461         of mono_debugger_init_threads().
4462         (mono_debugger_create_all_threads): Removed.
4463
4464 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
4465
4466         * image.c (mono_image_close): Tidy up trace messages.
4467
4468         * assembly.c (mono_assembly_close): Ditto.
4469
4470         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
4471         no longer references an already freed assembly. Fixes #78168.
4472
4473 2006-04-21  Dick Porter  <dick@ximian.com>
4474
4475         * threads.c (mono_thread_detach): Fix reference counting when
4476         detaching threads.
4477
4478 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
4479
4480         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
4481         #78155.
4482
4483 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
4484
4485         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
4486         (mono_type_to_stind): Ditto.
4487
4488         * marshal.c: Use the new helper functions to simplify code.
4489
4490         * image.c (mono_image_close): Add some code for help debug assembly unloading
4491         problems.
4492
4493         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
4494         image mempool.
4495
4496         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
4497         assembly was already loaded in another appdomain. Fixes #78083.
4498
4499 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
4500
4501         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
4502         referenced assemblies.
4503         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
4504
4505         * domain.c (mono_domain_free): Add a trace message.
4506
4507         * appdomain.c (add_assemblies_to_domain): Ditto.        
4508
4509         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
4510         field.  
4511
4512 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
4513
4514         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
4515
4516 2006-04-12  Martin Baulig  <martin@ximian.com>
4517
4518         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
4519         `USE_INCLUDED_LIBGC'.   
4520
4521 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
4522
4523         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
4524         the patch contains ../ and a small directory name later. Hopefully fixes
4525         #78035.
4526
4527 2006-04-10  Martin Baulig  <martin@ximian.com>
4528
4529         Clean up the debugger's thread-handling code.
4530
4531         The debugger's thread-handling code has been moved from
4532         ../mini/debug-debugger.c to threads.c.  We now iterate directly
4533         over the `threads' hash, keep track of exiting threads and also
4534         use proper locking.
4535
4536         We can now debug XSP and XSP based applications with the debugger.
4537
4538         * object-internals.h (MonoThread): Added `gpointer end_stack'.
4539
4540         * threads.h
4541         (MonoThreadCallbacks): Removed; this was only used by the debugger.
4542         (mono_install_thread_callbacks): Likewise.      
4543
4544         * threads.c (mono_thread_callbacks): Removed.
4545         (debugger_thread_created, debugger_thread_exited): New static functions.
4546         (start_wrapper): Call debugger_thread_created().
4547         (thread_cleanup): Call debugger_thread_exited().
4548         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
4549         (mono_debugger_init_threads): New public function.
4550         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
4551         iterate directly over the `threads' hash and also use proper locking.
4552
4553         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
4554
4555         * mono-debug-debugger.h
4556         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
4557
4558 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
4559
4560         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
4561         argument type=array. Fixes #78057.
4562
4563 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
4564
4565         * culture-info-table.h : regenerated. Fixed bug #69652.
4566
4567 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
4568
4569         * loader.c metadata.c: Reapply a variant r59116.
4570         
4571         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
4572
4573         * class.c (mono_class_setup_interface_offsets): New internal function.
4574
4575         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
4576         interfaces too. Fixes #77398.
4577
4578         * reflection.c (encode_cattr_value): Add support for 
4579         parameter type=object, argument type=array.
4580         (load_cattr_value): Ditto. Fixes #77916.
4581
4582         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
4583         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
4584
4585         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
4586         a byval char array and CharSet is Ansi.
4587
4588         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
4589
4590 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
4591
4592         * metadata.c: Add some locking comments.
4593         
4594         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
4595         mempool.
4596         (mono_metadata_free_method_signature): Don't free the signature itself.
4597
4598         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
4599
4600         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
4601         reference the same MonoImage.
4602         (mono_assembly_load_from_full): Add an assert.
4603
4604 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
4605
4606         * image.c (mono_image_close): Don't put the image we are about to free into the
4607         loaded_images_guid_hash.
4608
4609         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
4610         to reduce code duplication.
4611
4612         * marshal.c: Register the native functions called by this module as icalls, to
4613         somewhat centralize the creation of MonoMethodSignature's.
4614
4615         * loader.c (mono_method_signature): Add a cache for method signatures.
4616
4617         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
4618         the parameter attributes of a method.
4619         (mono_metadata_parse_method_signature_full): Refactored the computation of
4620         parameter attributes into a separate function. Also avoid one allocation in
4621         most cases.
4622
4623         * assembly.c (mono_assembly_close): Ditto.
4624
4625         * image.c (mono_image_close): Log trace messages with INFO level.
4626
4627         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
4628
4629         * image.c reflection.c: Correct reference counting of image modules.
4630         
4631         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
4632         of this function from the image mempool.
4633         
4634         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
4635         to allow more cached types to be used.
4636
4637         * mono-debug.c (mono_debug_add_method): Appled patch from
4638         David S. Miller  <davem@sunset.davemloft.net>: Access 
4639         minfo->lexical_blocks[] entry elements using read32().
4640
4641 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
4642
4643         * loader.c (mono_free_method): No longer free the method header for non-dynamic
4644         methods as it is allocated from the mempool.
4645
4646         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
4647         image mempool.
4648
4649         * metadata-internals.h: Add comments describing the reference counting scheme
4650         used for MonoImage and MonoAssembly.
4651
4652         * image.c assembly.c reflection.c: Rework reference counting of images and 
4653         assemblies so they are freed when the runtime is shut down. Free some 
4654         additional memory structures when an image is unloaded.
4655         
4656 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
4657
4658         * class.c loader.c reflection.c: Allocate more data structures in
4659         the image mempool.
4660
4661 2006-03-31  Miguel de Icaza  <miguel@novell.com>
4662
4663         * icall.c
4664         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
4665         build on pre glib 2.4 systems.
4666
4667 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
4668
4669         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
4670
4671         * icall.c: Fix some warnings.
4672
4673 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
4674
4675         * culture-info-table.h : regenerated.
4676
4677 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
4678
4679         * threads.c, object-internals.h, verify.c: changed the culture caching
4680         code to use a normal MonoArray for storage so the GC can keep track of
4681         them easily. Fixed bits of the cache logic, too and simplified the
4682         code.
4683
4684 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
4685
4686         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
4687         thread for non-Boehm GCs.
4688
4689 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
4690
4691         * domain.c, object.c, domain-internals.h: reduce the amount of memory
4692         needed to keep track of the data for static fields.
4693
4694 2006-03-29  Raja R Harinath  <rharinath@novell.com>
4695
4696         Fix #75172
4697         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
4698         for interface classes.  Use 'num_methods' instead.
4699         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
4700         before using '->vtable_size' field.
4701
4702 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
4703
4704         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
4705         doesn't contain managed pointers, so use a normal hashtable.
4706
4707 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
4708
4709         * reflection.c, class-internals.h, domain.c: fixed handling of types
4710         used as values for objects in custom attributes (bug #77915):
4711
4712 2006-03-24  Martin Baulig  <martin@ximian.com>
4713
4714         * class.c (mono_class_setup_fields): Added support for generic
4715         instances; fixes #77580.
4716
4717 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4718
4719         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
4720
4721 2006-03-24  Dick Porter  <dick@ximian.com>
4722
4723         * file-io.c (get_file_attributes): More stat macro breakage.
4724         Fixes bug 77759.
4725
4726 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
4727
4728         * profiler.c: added the file=filename option in the default profiler
4729         to output the profile data to filename.
4730
4731 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4732
4733         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
4734         bug #77877.
4735
4736 2006-03-22  Martin Baulig  <martin@ximian.com>
4737
4738         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
4739         allocated `MonoClassField *' in `fb->handle'.
4740
4741 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
4742
4743         * class.c, image.c, metadata-internals.h: implemented new mechanism to
4744         allocate interface ID to save memory and allow better ID reuse on
4745         appdomain unload. setup_generic_vtable () removal from Martin.
4746
4747 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
4748
4749         * object.h, appdomain.c, domain.c, exception.c, icall.c,
4750         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
4751         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
4752         write barriers for reference stores with managed objects accessed with
4753         C structures in the runtime and in embedding programs.
4754
4755 2006-03-20  Raja R Harinath  <rharinath@novell.com>
4756
4757         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
4758         'interface_id' and 'max_interface_id' fields of MonoClasses
4759         representing open generic types.
4760
4761 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
4762
4763         * object.h, object.c, icall.c: added functions to deal with
4764         storing valuetypes that contain references in managed objects.
4765         * reflection.c, string-icalls.c, threads.c, marshal.c: small
4766         fixes and comments around uses of mono_array_addr ().
4767
4768 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
4769
4770         * object.h, icall.c, monitor.c: object.GetHashCode ()
4771         implementation that supports the moving garbage collector.
4772
4773 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
4774
4775         * icall.c, threads-types.h, threads.c: implemented finalizer for
4776         LocalDataStoreSlot.
4777
4778 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
4779
4780         * metadata.c (mono_type_size): Add a fixme.
4781         (mono_type_stack_size): Ditto.
4782
4783         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
4784         'type_forwarders' field.
4785
4786         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
4787         attribute from net 2.0.
4788
4789         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
4790         from class.c.
4791
4792         * class.c (mono_class_setup_fields): Fix a warning.
4793         
4794         * class.c (mono_class_from_name): Add support for assemblyref entries
4795         in the EXPORTEDTYPE table.
4796
4797         * reflection.c: Add support for handling type forwarders under net 2.0.
4798
4799         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
4800         
4801 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
4802
4803         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
4804         overwriting entries in ModuleBuild->types, also clean up the code
4805         a little. Fixes #77774.
4806
4807 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
4808
4809         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
4810         load friend assembly info when present.
4811
4812 2006-03-14  Raja R Harinath  <rharinath@novell.com>
4813
4814         Fix crasher on gtest-158.cs.
4815         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
4816         the return value if the MonoClass we want is yet in an
4817         inconsistent state.
4818         * class.c (mono_class_create_from_typedef): Add an comment
4819         explaining an order dependency between mono_class_setup_parent and
4820         mono_class_setup_mono_type.
4821
4822 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
4823
4824         * class.c: documentation updates and events bug fix.
4825
4826 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
4827
4828         * class.c: some cleanup, locking fixes.
4829
4830 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
4831
4832         * class.c: fix the generics code to setup nested
4833         type info to the instantiated type (bug #77770).
4834
4835 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
4836
4837         * marshal.c: fixed a few type correctness issues.
4838
4839 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
4840
4841         * loader.c: the Set/Get/Addrtess array methods should be public.
4842
4843 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
4844
4845         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
4846         
4847         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
4848         info->wrapper.
4849
4850 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
4851
4852         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
4853
4854         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
4855
4856         * mempool.c (mono_mempool_alloc): Speed this up a bit.
4857         (mono_mempool_alloc0): Ditto.
4858
4859 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4860
4861         * socket-io.c:
4862         (create_object_from_sockaddr): it was allocating 4 extra bytes
4863         for the AF_UNIX data. Fixes bug #77747.
4864
4865 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
4866
4867         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
4868
4869 2006-03-09  Dick Porter  <dick@ximian.com>
4870
4871         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
4872         Fixes bug 76966 again.
4873
4874 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
4875
4876         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
4877         names from r57532
4878         * appdomain.c: Bumped corlib version to 48 (due to r57532)
4879
4880 2006-03-07  Martin Baulig  <martin@ximian.com>
4881
4882         * object.c
4883         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
4884
4885 2006-03-07  Martin Baulig  <martin@ximian.com>
4886
4887         * class.c
4888         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
4889         regression introduced in r56970; see gtest-252.cs.
4890
4891         * loader.c (mono_get_method_constrained): Correctly handle generic
4892         methods; see gtest-253.cs.
4893
4894 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
4895
4896         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
4897
4898 2006-03-04  Martin Baulig  <martin@ximian.com>
4899
4900         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
4901         compute the parent type at runtime, just like we're already doing
4902         it for interfaces.
4903
4904         * reflection.c
4905         (mono_reflection_bind_generic_parameters): Don't compute the
4906         parent type anymore.
4907
4908         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
4909
4910 2006-03-04  Martin Baulig  <martin@ximian.com>
4911
4912         * mono-debug-debugger.h
4913         (mono_debugger_create_notification_function): Allocate memory at
4914         runtime and return a pointer to it.
4915
4916 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
4917
4918         * assembly.c: Fix windows build.
4919         
4920         * assembly.c: Fix build.
4921
4922         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
4923
4924         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
4925         
4926 2006-03-03  Dick Porter  <dick@ximian.com>
4927
4928         * process.c
4929         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
4930         Check parameters before dereferencing them.  Fixes Aaron's part of
4931         bug 77393.
4932
4933 2006-03-03  Raja R Harinath  <rharinath@novell.com>
4934
4935         Fix performance regression.
4936         * loader.c (find_method_in_class): Add 'from_class' argument.
4937         Rename 'klass' argument to 'in_class'.  The signature is compared
4938         against the method in 'in_class', and the corresponding method is
4939         returned from 'from_class'.
4940         (find_method): Walk both 'in_class' and 'from_class' in parallel.
4941         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
4942         type definition and generic instantiation in parallel.
4943         (mono_get_method_constrained): Update to changes.
4944
4945 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
4946
4947         * threads.c: make sure the domain is correct, too when doing
4948         mono_thread_attach ().
4949
4950 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
4951
4952         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
4953         windows. Fixes #77683.
4954
4955 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
4956
4957         * object.h, *: introduced specific way to set elements of an array
4958         of references to be used as write barrier. Still need to audit the
4959         uses of mono_array_addr.
4960
4961 2006-03-01  Miguel de Icaza  <miguel@novell.com>
4962
4963         * object-internals.h: New field to cache the assmebly name, patch
4964         from Tambet Ingo (tambet@ximian.com)
4965
4966 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
4967
4968         * decimal.h, class-internals.h, metadata-internals.h,
4969         file-io.h: mark a few function declarations as internal, to
4970         reduce the number of PLT entries.
4971
4972 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4973
4974         * file-io.c: fix typo in warning message.
4975
4976 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
4977
4978         * loader.c: on unix, lookup the "*A" version of a function
4979         if charset is auto as a second option before failing.
4980
4981 2006-02-28  Raja R Harinath  <rharinath@novell.com>
4982
4983         * class.h (mono_class_inflate_generic_method): Revert to two
4984         argument version.
4985         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
4986         (mono_class_inflate_generic_method_full): Add.
4987         * class.c (mono_class_inflate_generic_method_full): Rename from
4988         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
4989         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
4990         * loader.c, reflection.c: Update to changes.
4991
4992 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
4993
4994         * icall.c: const fixes and small improvements.
4995
4996 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4997
4998         * threadpool.c: for asynchronous connect(), enable the same workaround
4999         for BSD 6 as for the Mac. Fixes bug #77637.
5000
5001 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
5002
5003         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
5004         formatted classes. Fixes #77524.
5005
5006 2006-02-24  Raja R Harinath  <rharinath@novell.com>
5007
5008         * class.c (inflate_generic_type): Add a couple more
5009         micro-optimizations.
5010         (inflate_generic_context): Don't use the 'gmethod' from
5011         'inflate_with'.
5012         (mono_class_inflate_generic_method): If the method has generic
5013         parameters, but the passed-in context doesn't have a 'gmethod',
5014         create one.  Use the possibly simplified generic instantiation
5015         from the declaring class instead of the one passed in.
5016
5017 2006-02-24  Raja R Harinath  <harinath@gmail.com>
5018
5019         Make generic method signature and method header handling lazy.
5020         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
5021         (inflate_generic_header): Likewise.
5022         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
5023         parameter to avoid inflating types.
5024         (mono_get_inflated_method): Empty out.
5025         * class.h (mono_class_inflate_generic_method): Update to changes.
5026         * loader.c (mono_get_method_from_token): Don't parse signature for
5027         generic methods, nor methods of generic classes.
5028         (mono_method_signature): Rename from 'mono_method_signature'.
5029         Inflate signature on demand.
5030         (mono_method_get_header): Inflate method header on demand.
5031         * reflection.c: Update to changes.
5032
5033 2006-02-23  Raja R Harinath  <rharinath@novell.com>
5034
5035         * metadata.c (mono_metadata_inflate_generic_inst): If the
5036         instantiation is closed, don't bother expanding it in the new
5037         context.
5038         * class.c (inflate_generic_class): If the generic instantiation
5039         doesn't change after inflation, return the argument itself.
5040         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
5041         Add bounds checks.
5042         (inflate_generic_context): If neither the generic class nor the
5043         generic method instantiations change, return the original context.
5044         * reflection.c (mono_method_get_object): Do
5045         'mono_get_inflated_method' before accessing the ->klass field.
5046         (inflate_mono_method): Don't create a MonoGenericMethod unless
5047         necessary.
5048         (inflate_method): Don't pass a constructed type as the declaring
5049         type of a methodbuilder.
5050
5051 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
5052
5053         * object.c: fix memory overwrite.
5054
5055 2006-02-22  Dick Porter  <dick@ximian.com>
5056
5057         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
5058         it doesn't work any more.
5059         (mono_threads_request_thread_dump): Fix unused variable warnings.
5060
5061 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
5062
5063         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
5064         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
5065         the public header file.
5066
5067 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
5068
5069         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
5070
5071 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
5072
5073         * class-internals.h, object.c: reduce the size of MonoVTable
5074         and store the interface_offsets array at negative offsets.
5075
5076 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
5077
5078         * metadata.c: tweak table descriptors data structures to reduce
5079         size and runtime relocations.
5080
5081 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
5082
5083         * marshal.c: fix some types and opcodes to be type-safe
5084         in marshaling wrappers.
5085
5086 2006-02-21  Ankit Jain  <jankit@novell.com>
5087
5088         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
5089
5090 2006-02-21  Raja R Harinath  <rharinath@novell.com>
5091
5092         * metadata.c (get_constraints): Relax debugging checks for monodis.
5093
5094 2006-02-21  Ankit Jain  <jankit@novell.com>
5095
5096         * metadata.c (mono_metadata_load_generic_params): Move the code
5097         checking for ambiguous generic params from here to mono/dis/get.c
5098         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
5099
5100 2006-02-21  Raja R Harinath  <harinath@gmail.com>
5101
5102         Fix assertion triggered when compiling nemerle.
5103         * class.c (mono_get_shared_generic_inst): Rename from
5104         get_shared_inst and make non-static.
5105         * loader.c (mono_get_shared_generic_method): New.  Used to create
5106         the MonoGenericContext-equivalent of a MonoGenericContainer.
5107         (mono_get_method_from_token): Initialize the 'context' field of
5108         the created MonoGenericContainer.
5109         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
5110         * metadata.c (get_constraints): Add sanity check.
5111         * class-internals.h: Add new internal methods.
5112
5113         * reflection.c (verify_safe_for_managed_space): New sanity check.
5114         Currently checks that owner-less generic parameters aren't allowed
5115         in managed space.
5116         (mono_type_get_object): Use it.
5117         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
5118         that are now in mono_type_get_object.
5119         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
5120
5121 2006-02-19  Raja R Harinath  <harinath@gmail.com>
5122
5123         * metadata.c (mono_type_create_from_typespec): Rename from
5124         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
5125         argument and caching of types in the generic container.
5126         (unwrap_arrays, find_generic_param): Remove.
5127         * metadata-internals.h: Update.
5128         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
5129
5130 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
5131
5132         * class.c (mono_class_get_exception_for_failure): Fix a warning.
5133
5134         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
5135         return values. Fixes #77581.
5136
5137         * class.c (mono_fnptr_class_get): Switch name and name_space.
5138
5139         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
5140         classes and add support for [In, Out] attributes.
5141         (mono_marshal_free_asany): Ditto. Fixes #77524.
5142
5143 2006-02-18  Raja R Harinath  <harinath@gmail.com>
5144
5145         * class.c (mono_class_from_generic_parameter): Make more robust to
5146         incomplete MonoGenericContainers from monodis.
5147
5148 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
5149
5150         * class-internals.h: added some more exception types.
5151         * class.c, metadata.c: added a few checks to handle missing
5152         types.
5153
5154 2006-02-17  Raja R Harinath  <rharinath@novell.com>
5155
5156         Use owner-less generic-params some more.
5157         * class.c (my_mono_class_from_generic_parameter): Remove.
5158         (mono_class_from_generic_parameter): Handle null image,
5159         param->name and param->owner.
5160         (mono_class_from_mono_type): Update.
5161         (mono_class_create_from_typespec): Remove 'container' parameter.
5162         If that parameter is non-null, the result is always inflated by
5163         'mono_class_get_full' anyway.
5164         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
5165         parameter.
5166         (mono_class_get_full): Update.
5167
5168         * class.c (inflate_generic_type) [GENERICINST]: If the generic
5169         instance is not open, don't bother inflating.
5170         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
5171         parse metadata for inflated classes.
5172         (_mono_class_get): Change GenericContext* parameter to
5173         GenericContainer*.
5174         (mono_class_create_from_typespec): Likewise.  Simplify, and
5175         implement trivially.  All the cases are handled in
5176         mono_class_from_mono_type.  Don't inflate returned class.
5177         (mono_class_get_full): Delegate GENERICINST optimization to
5178         inflate_generic_type.
5179         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
5180
5181 2006-02-16  Dick Porter  <dick@ximian.com>
5182
5183         * socket-io.c (create_object_from_sockaddr): Fix typo.
5184         (create_sockaddr_from_object): Check array lengths before
5185         potentially accessing items off the end.
5186         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
5187         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
5188         (ves_icall_System_Net_Sockets_Socket_Send_internal)
5189         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
5190         length checks to avoid wraparound overflows.
5191         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
5192         contents of the array of sockets
5193         (hostent_to_IPHostEntry2)
5194         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
5195         Check return value of inet_ntop ().
5196         (addrinfo_to_IPHostEntry): Fix typo
5197
5198 2006-02-16  Raja R Harinath  <rharinath@novell.com>
5199
5200         Type metadata parsing doesn't use generic-instantiation information.
5201         * metadata.c (mono_metadata_parse_array_full): Change
5202         MonoGenericContext* parameter to MonoGenericContainer*.
5203         (mono_metadata_parse_type_full): Likewise.
5204         (mono_type_create_from_typespec_full): Likewise.
5205         (mono_metadata_parse_mh_full): Likewise.
5206         (mono_metadata_parse_generic_inst): Likewise.
5207         (do_mono_metadata_parse_generic_class): Likewise.
5208         (do_mono_metadata_parse_type): Likewise.
5209         * metadata-internals.h: Update to changes.
5210         * class.c (mono_class_find_enum_basetype): Likewise.
5211         (mono_class_setup_fields): Likewise.
5212         (mono_class_create_from_typespec): Likewise.
5213         * loader.c (method_from_methodspec): Likewise.
5214         (mono_get_method_from_token): Likewise.
5215         (mono_method_get_header): Likewise.
5216
5217 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
5218
5219         * marshal.c: handle additional GENERICINST case (patch from
5220         Thong Nguyen <tum@veridicus.com>).
5221         Fix a few cases where LDIND_I/STIND_I was used for references.
5222
5223 2006-02-16  Raja R Harinath  <rharinath@novell.com>
5224
5225         * reflection.c (mono_reflection_get_token): Remove unused variable.
5226
5227 2006-02-16  Martin Baulig  <martin@ximian.com>
5228
5229         * reflection.c (mono_reflection_get_token): Add support for fields
5230         in instantiated generic types.
5231
5232         * icall.c
5233         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
5234
5235 2006-02-15  Martin Baulig  <martin@ximian.com>
5236
5237         * icall.c
5238         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
5239         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
5240         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
5241         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
5242
5243 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
5244
5245         * class.c, metadata.c, metadata.h, object.c, icall.c,
5246         marshal.c: changed mono_type_get_underlying_type () to do
5247         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
5248         Fixed handling of instantiated generic valuetypes (bug #75479).
5249
5250 2006-02-15  Raja R Harinath  <rharinath@novell.com>
5251
5252         * metadata.c (mono_metadata_decode_signed_value): Simplify.
5253         Delegate to mono_metadata_decode_value, and work on the returned value.
5254
5255         * icall.c (ves_icall_MonoType_GetGenericArguments):
5256         Add consistency check here too.
5257         
5258 2006-02-15  Ankit Jain  <jankit@novell.com>
5259
5260         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
5261         char/short etc.
5262
5263 2006-02-15  Ankit Jain  <jankit@novell.com>
5264
5265         * metadata.c (mono_metadata_decode_signed_value): New function to decode
5266         signed values, used only for representing lower bounds of arrays.
5267         (mono_metadata_parse_array_full): Use new
5268         mono_metadata_decode_signed_value to decode lower bounds.
5269
5270 2006-02-14  Martin Baulig  <martin@ximian.com>
5271
5272         * reflection.c
5273         (mono_reflection_get_token): Support "MonoGenericMethod" and
5274         "MonoGenericCMethod" and allow generic instances / methods.
5275
5276 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
5277
5278         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
5279         to obtain the terminal size using an ioctl.
5280
5281         * object.c (mono_nullable_init): Revert this as nullable reference
5282         types are not valid.
5283         (mono_nullable_box): Ditto.
5284
5285 2006-02-09  Dick Porter  <dick@ximian.com>
5286
5287         * threads.c (mono_thread_detach): Drop a reference to the thread
5288         we're detaching.
5289
5290 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
5291
5292         * object.c (mono_nullable_init): Handle nullable reference types.
5293         (mono_nullable_box): Ditto. Fixes #77446.
5294
5295 2006-02-07  Martin Baulig  <martin@ximian.com>
5296
5297         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
5298
5299 2006-02-07  Ankit Jain  <jankit@novell.com>
5300
5301         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
5302         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
5303         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
5304         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
5305         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
5306         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
5307
5308 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
5309
5310         * class.c (mono_class_create_generic): Set type_token as well.
5311
5312         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
5313         compatible with MS.
5314
5315 2006-02-02  Martin Baulig  <martin@ximian.com>
5316
5317         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
5318         has never been used so far.
5319
5320 2006-02-02  Martin Baulig  <martin@ximian.com>
5321
5322         * mono-debug-debugger.h: Changed comment at the top of this file;
5323         the header is not installed, but it's safe to #include it from
5324         within the JIT.
5325
5326         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
5327         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
5328
5329 2006-02-02  Martin Baulig  <martin@ximian.com>
5330
5331         * mono-debug.h
5332         (MonoSymbolTable): Removed the `metadata_info' field.
5333
5334         * mono-debug.c
5335         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
5336
5337         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
5338         (mono_debugger_add_builtin_types): Removed.
5339         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
5340         (mono_debugger_create_notification_function): We now operate on a
5341         pre-allocated area; take a `gpointer' and return `void'.
5342
5343         * mono-debug-debugger.c
5344         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
5345         (mono_debugger_add_builtin_types): Removed.
5346
5347 2006-02-02  Martin Baulig  <martin@ximian.com>
5348
5349         * threads.c (mono_debugger_create_all_threads): New public method.
5350
5351 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
5352
5353         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
5354         breaks on several platforms.
5355
5356 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
5357
5358         * assembly.c: the VS.NET build doesn't supply default values for
5359         MONO_ASSEMBLIES and MONO_CFG_DIR.
5360
5361 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
5362
5363         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
5364         helper function.
5365
5366         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
5367
5368         * loader.c (method_from_memberref): Fix a warning.
5369
5370         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
5371
5372         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
5373         with explicit layout. Fixes #77433.
5374
5375 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
5376
5377         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
5378         max_interface_id is initialized before using it. Fixes #77398.
5379         (ves_icall_Type_GetInterfaces): Ditto.
5380
5381 2006-01-30  Raja R Harinath  <rharinath@novell.com>
5382
5383         * metadata.c (mono_metadata_parse_method_signature_full): Don't
5384         allocate memory for parameter attributes when parsing memberref
5385         signatures.
5386         * loader.c (mono_loader_set_error_method_load): Don't warn.
5387         (method_from_memberref): Ensure MissingMethodException gets thrown
5388         if method is not found.  Make warning more informative.
5389
5390 2006-01-29  Raja R Harinath  <harinath@gmail.com>
5391
5392         Fix #77397
5393         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
5394         return true if is byref.
5395         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
5396         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
5397         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
5398
5399 2006-01-27  Raja R Harinath  <rharinath@novell.com>
5400
5401         Fix tests/find-method.2.il
5402         * loader.c (find_method, find_method_in_class): Remove is_inflated
5403         argument.  Revert 2006-01-18 change.
5404         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
5405         is generic, search for method in its generic definition.
5406         * class.c (mono_class_setup_vtable_general): Print generic
5407         arguments of generic types in debugging printf.
5408
5409 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
5410
5411         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
5412
5413         * threads.c (mono_threads_request_thread_dump): New helper function.
5414
5415 2006-01-25  Raja R Harinath  <rharinath@novell.com>
5416
5417         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
5418
5419 2006-01-25  Ankit Jain  <jankit@novell.com>
5420
5421         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
5422         move definition to ..
5423         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
5424         
5425 2006-01-25  Ankit Jain  <jankit@novell.com>
5426             Raja R Harinath  <rharinath@novell.com>
5427
5428         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
5429         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
5430         as necessary.
5431
5432 2006-01-25  Martin Baulig  <martin@ximian.com>
5433
5434         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
5435         `MonoDebuggerThread' into debug-debugger.c.
5436
5437 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
5438
5439         * profiler.c: fix printing of data.
5440
5441 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
5442
5443         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
5444           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
5445
5446 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
5447
5448         * object.c: fix deadlock related to string interning.
5449
5450 2006-01-23  Martin Baulig  <martin@ximian.com>
5451
5452         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
5453
5454         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
5455
5456 2006-01-23  Martin Baulig  <martin@ximian.com>
5457
5458         * mono-debug.h: Moved the prototypes of some functions which are
5459         used by the JIT here from mono-debug-debugger.h.
5460
5461 2006-01-21  Martin Baulig  <martin@ximian.com>
5462
5463         * Makefile.am: Don't install mono-debug-debugger.h.
5464
5465 2006-01-21  Martin Baulig  <martin@ximian.com>
5466
5467         * mono-debug-debugger.h: Enforce the private status of this header
5468         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
5469         Moved some stuff from mono-debugger-jit-wrapper.h here.
5470
5471 2006-01-20  Raja R Harinath  <rharinath@novell.com>
5472
5473         * class.c (mono_class_from_typeref): Add a sanity test to help
5474         catch lack of assembly load/search hooks.
5475
5476 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
5477
5478         * marshal.c (emit_struct_conv): Relax the fields with same offset
5479         check even more. Fixes #77230.
5480
5481 2006-01-18  Martin Baulig  <martin@ximian.com>
5482
5483         * loader.c (find_method_in_class): Added `gboolean is_inflated'
5484         argument; if false, we compare the uninstantiated signatures.
5485         (method_from_memberref): Compare the uninstantiated signatures;
5486         fixes #76417.
5487
5488 2006-01-18  Robert Jordan  <robertj@gmx.net>
5489
5490         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
5491         Clear the weak link. Fixes bug #77170.
5492
5493         * gc.c (mono_gchandle_free):
5494         Reflect *-gc.c changes (tiny optimization).
5495
5496 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
5497
5498         * metadata.c (mono_metadata_signature_dup): Applied patch from
5499         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
5500         Fixes #77288.
5501
5502 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
5503
5504         * marshal.c (emit_struct_conv): Allow fields with the same offset when
5505         marshalling from native to managed code. Fixes #77230.
5506
5507 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5508
5509         * threadpool.c: fix problem (Mac only) when more than one asynchronous
5510         connect. Fixes bug #77020.
5511
5512 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
5513
5514         * class.c: fixed id assignement for nested interfaces (bug #77275).
5515         Added also better info for --print-vtable debugging.
5516
5517 2006-01-12  Martin Baulig  <martin@ximian.com>
5518
5519         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
5520         interfaces on-the-fly; fixes #76625.
5521
5522         * class-internals.h
5523         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
5524         don't need that anymore.
5525
5526 2006-01-12  Miguel de Icaza  <miguel@novell.com>
5527
5528         * socket-io.c
5529         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
5530         To avoid initing the nested_classes when not needed I turned the
5531         PeerCredData as a toplevel internal class, as it has to be shared
5532         anyways. 
5533
5534         Fixes the CASA issue.
5535
5536 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
5537
5538         * domain.c: Accessors for MonoJitInfo
5539
5540         * profiler-private.h: Add jitinfo to the end jit hook
5541
5542         * profiler.[ch]: Define new hooks, called after jitting which give
5543         the MonoJitInfo that was compiled
5544
5545 2006-01-10  Martin Baulig  <martin@ximian.com>
5546
5547         * class.c (mono_class_setup_events): Add support for generic
5548         classes; fixes #76440.
5549
5550 2006-01-06  Raja R Harinath  <rharinath@novell.com>
5551
5552         Fix #77160.
5553         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
5554         on passed-in method.
5555
5556 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
5557
5558         * object.c (mono_runtime_invoke_array): Add Nullable support.
5559
5560         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
5561
5562 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
5563
5564         * file-io.c: Don't consider sockets as directory and avoid an endless
5565         loop. Fix bug #76966.
5566
5567 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
5568
5569         * object.c (mono_nullable_init): New helper function.
5570         (mono_nullable_box): Ditto.
5571
5572         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
5573
5574         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
5575
5576         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
5577         
5578 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
5579
5580         * class.c (mono_class_is_assignable_from): Make T assignable to 
5581         Nullable<T>.
5582
5583 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
5584
5585         * appdomain.c: Bump corlib version to 46.
5586         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
5587         serialization purpose) and changed ves_icall_System_Reflection_
5588         Assembly_get_code_base signature to accept a boolean (to escape, or 
5589         not, the assembly code base).
5590
5591 2005-12-23  Dick Porter  <dick@ximian.com>
5592
5593         * icall.c: 
5594         * threads-types.h: 
5595         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
5596         CreateEvent icall now returns "created" boolean parameter.
5597
5598 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
5599
5600         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
5601         #76967.
5602
5603         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
5604         when attr_klass is an interface. Fixes #77045.
5605
5606 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
5607
5608         * marshal.c (emit_struct_conv): Fix previous patch.
5609         
5610         * marshal.c (emit_struct_conv): Add a check for fields with the same
5611         offset.
5612
5613 2005-12-20  Raja R Harinath  <rharinath@novell.com>
5614
5615         Fix regression in Mono.C5.
5616         * class.c (mono_class_create_generic): If 'klass' is an interface
5617         set up the interface offsets.
5618         (mono_class_is_assignable_from): Don't throw away generic arguments.
5619
5620 2005-12-19  Raja R Harinath  <rharinath@novell.com>
5621
5622         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
5623         type parameters.
5624
5625 2005-12-15  Raja R Harinath  <rharinath@novell.com>
5626
5627         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
5628         dead store.
5629         (do_mono_metadata_parse_generic_class): Don't pass the current
5630         generic context when parsing the type being instantiated: it
5631         cannot use it, anyway.
5632
5633         * loader.c (method_from_memberref): Don't inflate a signature if
5634         it doesn't contain any type parameters.
5635
5636 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
5637
5638         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
5639
5640 2005-12-14  Martin Baulig  <martin@ximian.com>
5641
5642         * class.c
5643         (mono_type_get_name_recurse): Don't return null for type
5644         parameters and open generic classes.
5645         (mono_class_setup_methods): Don't exclude generic instances.
5646         (mono_get_unique_iid): Use different IDs for different
5647         instantiations of the same generic type.
5648         (mono_class_setup_vtable): Only use setup_generic_vtable() for
5649         open generic instances; create a normal vtable for closed generic
5650         instances.
5651         (mono_class_setup_vtable_general): We're now also called for
5652         closed generic instances.
5653
5654         * reflection.c
5655         (mono_reflection_bind_generic_parameters): Correctly use
5656         mono_metadata_lookup_generic_inst() everywhere.
5657
5658 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
5659
5660         * object.c (mono_class_create_runtime_vtable): Call 
5661         mono_class_setup_vtable ().
5662
5663         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
5664         function.
5665         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
5666         #76959.
5667
5668         * loader.c (mono_loader_set_error_type_load): Print the type load
5669         warnings to the console so they are more visible to the user.
5670         (mono_loader_set_error_method_load): Ditto.
5671
5672         * reflection.c (ensure_runtime_vtable): Revert the last change as it
5673         is still broken.
5674         
5675         * reflection.c (ensure_runtime_vtable): Fix build.
5676
5677         * reflection.c (ensure_runtime_vtable): Disable an optimization which
5678         doesn't work in all cases.
5679
5680 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
5681
5682         * object.c (mono_array_new_full): Treat a single dimensional array
5683         with 0 lower bounds as an szarray. Fixes #76973.
5684
5685         * reflection.c (custom_attr_visible): Really fix this.
5686
5687 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
5688
5689         * reflection.c (custom_attr_visible): Allow nested public attributes
5690         as well.
5691
5692         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
5693         interface check.
5694
5695 2005-12-12  Raja R Harinath  <harinath@gmail.com>
5696
5697         * class.c (set_generic_param_owner): Delete.
5698         (mono_class_create_from_typedef): Don't set ->owner field of
5699         generic parameters to "param containers" of enclosing classes.
5700         * reflection.c (mono_reflection_initialize_generic_parameter):
5701         Likewise.
5702
5703 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
5704
5705         * reflection.c (custom_attr_visible): Fix build.
5706
5707 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
5708
5709         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
5710         private attributes.
5711         
5712         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
5713         handling of null parameter defaults.
5714
5715 2005-12-09  Raja R Harinath  <rharinath@novell.com>
5716
5717         * class.c (mono_class_from_generic_parameter): Don't set
5718         klass->generic_container.
5719         (my_mono_class_from_generic_parameter): Likewise.
5720
5721 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
5722
5723         * reflection.c (load_public_key): Fix a warning.
5724         (method_encode_code): Fix unaligned accesses.
5725
5726 2005-12-07  Martin Baulig  <martin@ximian.com>
5727
5728         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
5729
5730         * reflection.c
5731         (write_generic_param_entry): Encode our custom attrs.
5732
5733         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
5734
5735 2005-12-07  Martin Baulig  <martin@ximian.com>
5736
5737         * reflection.c (encode_new_constraint): Removed; we don't use the
5738         `NewConstraintAttribute' anymore.
5739
5740 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
5741
5742         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
5743         not fire a TypeResolve event when Assembly.GetType () is called.
5744
5745 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
5746
5747         Beginning of support for nullable types in the runtime. Parts of
5748         this patch are from Martin.
5749
5750         * appdomain.c (MONO_CORLIB_VERSION): Bump
5751
5752         * domain.c (mono_init_internal): get the nullable type
5753
5754         * class.c (mono_class_is_nullable): New method
5755         (mono_class_get_nullable_param): New mehod
5756         (mono_class_create_generic): In types T? set cast_class to T
5757
5758         * class-internals.h (MonoDefaults): new nullable default class
5759         (mono_class_get_nullable_param, mono_class_get_nullable_param):
5760         new methods.
5761
5762 2005-12-05  Raja R Harinath  <rharinath@novell.com>
5763
5764         * metadata.c (select_container): New.  Refactor code to select the
5765         appropriate GenericContainer given the type of generic parameter
5766         we are looking for.
5767         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
5768         not a MonoGenericContext.  Use select_container.  Update parameters.
5769         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
5770         and MONO_TYPE_MVAR.
5771         (unwrap_arrays): Remove duplicate tests.
5772         (find_generic_param): Rename from 'has_same_context'.  Now walks a
5773         generic instantiated class to find any arguments that are generic
5774         parameters.
5775         (mono_type_create_from_typespec_full): Use find_generic_param to
5776         avoid evicting some generic instantiations from the typespec
5777         cache.
5778
5779 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
5780
5781         * reflection.c: fixed writing of doubles on ARM FPA.
5782
5783 2005-12-02  Robert Jordan  <robertj@gmx.net>
5784
5785         * icall.c: Fixed EventInfo.ReflectedType (#76829).
5786
5787 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5788
5789         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
5790         least on SUSE 10 they are not the same (on debian, they are just the
5791         same thing).
5792
5793 2005-12-01  Raja R Harinath  <rharinath@novell.com>
5794
5795         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
5796         DeclaringType for VARs and MVARs.
5797         * class.c (set_generic_param_owner): Fix initialization of owner
5798         fields.
5799
5800 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
5801
5802         * icall.c: fixed Enum.ToObject() to correctly convert the values.
5803
5804 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5805
5806         * threadpool.c: workaround for a bug that shows up on the Mac:
5807         select()+connect() on a blocking socket is not like it should
5808         be, so we proceed to connect() in that case, wasting the I/O
5809         threadpool thread until connect succeedes. Fixes bug #75436.
5810
5811 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5812
5813         * threadpool.c: fix typo when setting file descriptor states.
5814
5815 2005-11-28  Raja R Harinath  <rharinath@novell.com>
5816
5817         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
5818         * metadata.c (mono_metadata_parse_method_signature_full): Don't
5819         create a temporary signature container.
5820         (mono_metadata_parse_generic_param): Update to changes.
5821         (mono_type_create_from_typespec_full): Update to changes.
5822         * loader.c (method_from_memberref): Don't use a
5823         MonoGenericContainer while parsing a memberref signature.
5824         (method_from_methodspec): Remove dead-store of the 'container'
5825         variable.  It's overwritten before use.
5826
5827         * metadata.c (mono_type_create_from_typespec_full): Make debugging
5828         checks tighter.
5829         (mono_metadata_parse_generic_param): Likewise.
5830         * loader.c (find_method_in_class): Does not need a
5831         MonoGenericContainer.  Use 'mono_method_signature' rather than
5832         'mono_method_signature_full'.
5833         (find_method, mono_get_method_constrained, method_from_memberref):
5834         Update to changes.
5835
5836         * metadata.c (mono_type_create_from_typespec_full): Ensure that
5837         owner-less generic-parameters are never evicted from the typespec
5838         cache.
5839
5840         * loader.c (method_from_memberref): Don't use the current context
5841         when parsing signatures.
5842         (method_from_methodspec, mono_get_method_from_token): Update to changes.
5843
5844         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
5845         side-effects in g_assert.
5846         * loader.c (mono_get_method_from_token): Resolve klass earlier so
5847         that we don't potentially lose information.
5848
5849 2005-11-26  Dick Porter  <dick@ximian.com>
5850
5851         * icall.c:
5852         * threads.c: icalls to implement basic (ie, not named)
5853         System.Threading.Semaphore.
5854
5855 2005-11-24  Dick Porter  <dick@ximian.com>
5856
5857         * process.c
5858         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
5859         Use GetProcessId() if it's available.
5860
5861 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
5862
5863         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
5864
5865 2005-11-23  Raja R Harinath  <rharinath@novell.com>
5866             Ankit Jain  <jankit@novell.com>
5867
5868         * loader.c (mono_get_method_from_token): Initialize 'method' field
5869         of all generic parameters before parsing the signature.  Remove
5870         code that "fixed"-up MVAR references.
5871
5872 2005-11-23  Ankit Jain  <jankit@novell.com>
5873
5874         * metadata.c (mono_metadata_has_generic_params):
5875         (mono_metadata_load_generic_param_constraints):
5876         (mono_metadata_load_generic_params): Move duplicate code ...
5877         (mono_metadata_get_generic_param_row): ... here. Returns the
5878         first row-id in GenericParam table for a given owner (token).
5879         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
5880         prototype.
5881
5882 2005-11-23  Raja R Harinath  <rharinath@novell.com>
5883             Ankit Jain  <jankit@novell.com>
5884
5885         * metadata.c (mono_metadata_class_equal): Pass signature_only when
5886         comparing VARs too.
5887         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
5888         type->data.generic_param only if the type is an MVAR.
5889         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
5890         leak owner-less VARs and MVARs into managed space.
5891
5892 2005-11-21  Martin Baulig  <martin@ximian.com>
5893
5894         * class-internals.h
5895         (MonoMethod): Moved the `generic_container' here from
5896         `MonoMethodNormal' since we now also need it for
5897         `MonoMethodPInvoke';
5898         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
5899         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
5900         an union containing both `MonoMethodNormal' and
5901         `MonoMethodPInvoke'.
5902
5903         * loader.c
5904         (mono_get_method_from_token): Allow implementing generic methods
5905         as interncalls.
5906
5907         * threads.c
5908         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
5909         icall.
5910
5911 2005-11-17  Dick Porter  <dick@ximian.com>
5912
5913         * icall.c: 
5914         * process.h: 
5915         * process.c: Split the Process Start_internal icall into
5916         ShellExecuteEx_internal and CreateProcess_internal, which are
5917         called depending on whether UseShellExecute is true.  Fixes bug
5918         76670.
5919
5920         * appdomain.c (MONO_CORLIB_VERSION): Incremented
5921
5922 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
5923
5924         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
5925         'msize' parameters, use the information in 'mspec' instead.
5926         (emit_object_to_ptr_conv): Ditto.
5927
5928         * marshal.c (emit_struct_conv): Handle explicit layout structs with
5929         fields out of order. Fixes #76733.
5930
5931 2005-11-17  Ankit Jain  <jankit@novell.com>
5932
5933         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
5934
5935 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
5936
5937         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
5938           bug #76575.
5939
5940 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
5941
5942         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
5943         for types with non-auto layout. Fixes #76717.
5944
5945 2005-11-16  Ankit Jain  <jankit@novell.com>
5946
5947         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
5948         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
5949         if generic_context is null.
5950           (mono_metadata_generic_param_equal): param->owner can be null.
5951           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
5952         null.
5953
5954 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
5955
5956         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
5957         the correct value.
5958
5959 2005-11-15  Martin Baulig  <martin@ximian.com>
5960
5961         * object.c (set_value): Use mono_class_from_mono_type() instead of
5962         the hack for generic instances; fixes #76136.
5963
5964 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
5965
5966         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
5967         fields.
5968
5969         * image.c (load_metadata_ptrs): Initialize the new fields.
5970
5971         * reflection.c (create_dynamic_mono_image): Ditto.
5972
5973         * reflection.c (build_compressed_metadata): Use the new fields.
5974
5975         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
5976         icall.
5977
5978         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
5979         icall.
5980         
5981 2005-11-15  Ankit Jain  <jankit@novell.com>
5982             Raja R Harinath  <harinath@gmail.com>
5983
5984         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
5985         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
5986         new per-generic_container cache if the cached MonoType's context matches
5987         the current context.
5988           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
5989         to the expected context.
5990           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
5991
5992 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5993
5994         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
5995         we changed the signature of an icall.
5996         * icall.c: Modify to mono_double_ParseImpl return true/false 
5997         depending on the success, instead of throwing the exception. This will
5998         help us in Double.TryParse methods.
5999         
6000 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
6001
6002         * marshal.c (emit_marshal_object): Throw an exception when
6003         marshalling 'object' instead of crashing. Fixes #76696.
6004
6005 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
6006
6007         * class-internals.h: Add prototype for mono_type_get_full_name ().
6008
6009 2005-11-11  Dick Porter  <dick@ximian.com>
6010
6011         * threads.c (mono_thread_manage): Make sure the main thread has
6012         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
6013
6014 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
6015
6016         * loader.c (mono_loader_set_error_type_load): Log a warning to the
6017         console about the missing type.
6018         (mono_loader_set_error_method_load): Ditto.
6019
6020 2005-11-09  Miguel de Icaza  <miguel@novell.com>
6021
6022         * mono-config.c (mono_get_config_dir): Set the system defaults if
6023         none is specified.
6024
6025         * assembly.c (mono_set_dirs): New API entry point to set the
6026         assembly and the config directory in one call
6027
6028 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
6029
6030         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
6031         the ftnptr was created from a delegate in a domain other than the
6032         current domain. Fixes #75377.
6033
6034         * exception.h exception.c: Add mono_get_exception_not_supported ().
6035
6036 2005-11-08  Martin Baulig  <martin@ximian.com>
6037
6038         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
6039
6040 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
6041
6042         * security-manager.h: Added definitions to deal with strongname key 
6043         pairs bigger (and smaller) than 1024 bits.
6044         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
6045         adjust wrt the public key length being used.
6046
6047 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
6048
6049         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
6050           Windows build (r51396-51397).
6051
6052 2005-11-03  Martin Baulig  <martin@ximian.com>
6053
6054         * class.c (mono_class_setup_vtable_general): Also add generic
6055         methods to the vtable; fixes #76581.
6056
6057 2005-11-01  Miguel de Icaza  <miguel@novell.com>
6058
6059         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
6060         sure that we lookup GetString method from the System.Text.Encoding
6061         class, not the derived class or we get an empty method.
6062
6063         Fixed class #76612.
6064
6065 2005-10-25  Miguel de Icaza  <miguel@novell.com>
6066
6067         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
6068         if it has been previously set (embedders). 
6069
6070         Make mono_set_rootdir available also on Unix.
6071
6072 005-10-24  Robert Jordan  <robertj@gmx.net>
6073
6074         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
6075
6076 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
6077
6078         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
6079         only calls which are made to native code use this flag.
6080
6081         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
6082
6083 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
6084
6085         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
6086         Add support for FieldBuilders.
6087
6088 2005-10-29  Martin Baulig  <martin@ximian.com>
6089
6090         * mono-debug.c
6091         (mono_debug_using_mono_debugger): New public method; returns
6092         whether we're running inside the debugger.
6093
6094 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
6095
6096         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
6097         for Method/Constructor/FieldBuilders.
6098
6099 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
6100
6101         * reflection.c (module_add_cattrs): Save custom attributes for global methods
6102         and fields as well.
6103
6104 2005-10-26  Martin Baulig  <martin@ximian.com>
6105
6106         * mono-debug-debugger.c
6107         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
6108
6109 2005-10-24  Raja R Harinath  <harinath@gmail.com>
6110
6111         * icall.c (base64_to_byte_array): Don't pass an out-of-range
6112         integer to isspace.
6113
6114 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
6115
6116         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
6117         when passing valuetypes byref. Fixes #76502.
6118
6119 2005-10-19  Jackson Harper  <jackson@ximian.com>
6120
6121         * profiler.c: Don't put a . in front of types that are not in a
6122         namespace.
6123
6124 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
6125
6126         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
6127
6128 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
6129
6130         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
6131         #76436.
6132         (mono_marshal_get_ldflda_wrapper): Fix a warning.
6133
6134 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6135
6136         * assembly.c metadata-internals.h icall.c: Define an additional
6137         parameter for mono_assembly_name_parse_full, so we can avoid creating
6138         S.R.AssemblyName.Version when no version info wasn't passed.
6139         
6140 2005-10-09  Miguel de Icaza  <miguel@novell.com>
6141
6142         * class.c (mono_type_get_full_name): Reimplement method that was
6143         removed. 
6144
6145         * image.c: Some docs
6146
6147 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
6148
6149         * profiler.c (output_newobj_profile): Fix printing of Total memory
6150         on x86.
6151
6152 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
6153
6154         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
6155
6156 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
6157
6158         * threads.c: remove debug output.
6159
6160 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
6161
6162         * threads.c (mono_thread_manage): Fix crashes if more than 64
6163         threads need to be aborted. Hopefully fixes #75899.
6164
6165         * assembly.c (mono_stringify_assembly_name): New helper function.
6166
6167         * class.c: Use mono_stringify_assembly_name instead of the similar
6168         static function.
6169
6170         * assembly.h assembly.c: Add support for calling a postload search 
6171         hook if an assembly cannot be loaded.
6172
6173         * appdomain.c: Register new search hooks which call the AssemblyResolve
6174         events in AppDomain. Fixes #75231
6175
6176 2005-10-07  Martin Baulig  <martin@ximian.com>
6177
6178         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
6179         methods without debug info.
6180
6181 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
6182
6183         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
6184         wrappers.
6185
6186 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6187
6188         * file-io.c: now that we return symlinks, use lstat and, when the file
6189         is a symbolic link, stat, to get the file attributes. Also avoid the
6190         conversion to/from utf16/external.
6191
6192 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
6193
6194         * class.c (mono_class_layout_fields): Compute klass->has_references
6195         correctly if an embedded valuetype is not yet initialized. Fixes
6196         #76331.
6197
6198 2005-10-04  Martin Baulig  <martin@ximian.com>
6199
6200         * metadata.c
6201         (mono_metadata_load_generic_param_constraints): New public
6202         function; splitted the constraints loading out from
6203         mono_metadata_load_generic_params().
6204
6205         * class.c (mono_class_create_from_typedef): Call
6206         mono_metadata_load_generic_param_constraints() after setting up
6207         the type and creating our parent; fixes #75329.
6208
6209 2005-10-04  Martin Baulig  <martin@ximian.com>
6210
6211         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
6212         non-dynamic parent classes.
6213
6214 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
6215
6216         * file-io.c : win32 build fix (ETXTBSY seems not found).
6217
6218 2005-10-04  Martin Baulig  <martin@ximian.com>
6219
6220         * reflection.c
6221         (mono_image_get_methodspec_token): Make the cache actually work;
6222         fixes #75974.
6223
6224 2005-10-04  Martin Baulig  <martin@ximian.com>
6225
6226         * class.c (mono_class_name_from_token): Removed the unneccessary
6227         `MonoGenericContext *' argument.
6228
6229 2005-10-04  Martin Baulig  <martin@ximian.com>
6230
6231         * loader.c
6232         (method_from_methodspec): Make the caching work again; fixes the
6233         performance regression from #76262.
6234
6235 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6236
6237         * file-io.c:
6238         * file-io.h:
6239         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
6240         GetFileSystemEntries that performs the same work but without going
6241         into io-layer, locking, etc.
6242
6243 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
6244
6245         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
6246         ThreadState_Stopped as well. Fixes #76047.
6247
6248 2005-09-29  Martin Baulig  <martin@ximian.com>
6249
6250         * class.c
6251         (inflate_generic_context): If the new context has a `gmethod', set
6252         its `container' that that gmethod's `container'.
6253
6254         * metadata.c
6255         (mono_metadata_parse_generic_param): Simplify things;
6256         `generic_container = generic_context->container;' is just fine.
6257
6258         * loader.c (method_from_methodspec): Code cleanups.
6259
6260 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
6261
6262         * decimal.c: fix warning (and let gcc generate correct
6263         code on ARM with optimizations).
6264
6265 2005-09-28  Martin Baulig  <martin@ximian.com>
6266
6267         * loader.c
6268         (method_from_memberref): Added `MonoGenericContext *class_context'
6269         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
6270         (method_from_methodspec): If we're a memberref, use the enclosing
6271         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
6272
6273 2005-09-28  Martin Baulig  <martin@ximian.com>
6274
6275         * object.c (mono_runtime_invoke_array): Added support for
6276         MONO_TYPE_GENERICINST; fixes #75917.
6277
6278 2005-09-27  Martin Baulig  <martin@ximian.com>
6279
6280         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
6281         `k->byval_arg.type' to determine the actual type.
6282
6283         * loader.c (method_from_methodspec): Removed some hacks.
6284
6285 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
6286
6287         * class-internals.h (mono_field_is_deleted): Do the test for
6288         rtspecialname before we check the actual name of the field. This
6289         prevents us from dereferencing a pointer into the string table,
6290         saving us from accessing a few pages
6291
6292         * *.c: Replace the use of {Enter,Leave}CriticalSection with
6293         macros. This will allow a deadlock debugger to easily be plugged
6294         in.
6295
6296 2005-09-27  Martin Baulig  <martin@ximian.com>
6297
6298         * loader.c (method_from_methodspec): Create a "signature"
6299         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
6300
6301 2005-09-27  Martin Baulig  <martin@ximian.com>
6302
6303         * class.c
6304         (inflate_generic_class): Correctly set the new context's
6305         container.
6306
6307         * loader.c
6308         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
6309         instead of a `MonoGenericContext *'.
6310         (mono_method_signature_full): Take a `MonoGenericContainer *'
6311         instead of a `MonoGenericContext *'.
6312
6313         * metadata.c
6314         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
6315         instead of a `MonoGenericContext *'.
6316         (mono_metadata_parse_method_signature_full): Likewise.
6317
6318 2005-09-26  Martin Baulig  <martin@ximian.com>
6319
6320         * class.c
6321         (mono_class_from_generic_parameter): Set `klass->generic_container'
6322         (mono_class_from_generic_parameter): Likewise.
6323         (mono_bounded_array_class_get): We inherit the generic container
6324         from the element class.
6325
6326         * loader.c
6327         (find_method, find_method_in_class): Take a `MonoGenericContext *'
6328         argument rather than computing it here.
6329         (method_from_memberref): Correctly set the generic context before
6330         parsing the signature.  Fixes #75681.
6331
6332 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
6333
6334         * object.c (mono_class_has_special_static_fields): Fix warnings.
6335
6336 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6337
6338         * assembly.c: Add parse_public_key function, to
6339         par the public keys. Also added mono_assembly_name_parse_full,
6340         to define it the parsed key should be freed or not.
6341         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
6342         to parse a long format assembly name.
6343         * metadata-internals.h: Keep mono_assembly_name_parse_full as
6344         private, since calling it to preserve the key requires
6345         freeing it manually.
6346         
6347 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
6348
6349         * locales.c : removed HAVE_ICU part.
6350
6351 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
6352
6353         * object.c (mono_class_create_runtime_vtable): Avoid calling 
6354         field_is_special_static if the klass has no special static fields.
6355
6356         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
6357         (MonoCachedClassInfo): Likewise.
6358
6359         * object.c (mono_class_has_special_static_fields): New helper function.
6360
6361 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6362
6363         * class.c (mono_class_create_from_typedef): Don't call 
6364         interfaces_from_typedef_full for enums.
6365         (mono_class_create_from_typedef): Compute the base types of enums directly
6366         without calling mono_class_setup_fields ().
6367         (mono_class_find_enum_basetype): New helper function.
6368
6369         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
6370         one place inside the string heap.
6371         
6372 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
6373
6374         * class.c: locking fixes, code cleanups, some docs added.
6375         Allocate some data structures in the image mempool.
6376
6377 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6378
6379         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
6380         the example code.
6381         
6382 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
6383
6384         * class-internals.h, class.c, reflection.c: reduce memory taken by
6385         MonoClass.
6386
6387 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
6388
6389         * metadata.c, metadata.h, loader.h: documentation updates, code and
6390         API cleanups.
6391
6392 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6393
6394         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
6395         the example code.
6396
6397         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
6398         page faults caused by the runtime while reading metadata.
6399
6400 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6401
6402         * socket-io.c: the field names were changed 3 months ago and no one
6403         realized until bug #76077 got filed!
6404
6405 2005-09-20  Martin Baulig  <martin@ximian.com>
6406
6407         * icall.c (assembly_icalls): Removed some unused debugger icalls.
6408
6409 2005-09-20  Martin Baulig  <martin@ximian.com>
6410
6411         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
6412         write the rank into the class entry.
6413
6414 2005-09-20  Martin Baulig  <martin@ximian.com>
6415
6416         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
6417
6418 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
6419
6420         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6421
6422         * icall.c (custom_attrs_defined_internal): New icall.
6423
6424         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
6425         function.
6426         (mono_custom_attrs_construct_by_type): New helper function.
6427
6428 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
6429
6430         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
6431         terminate the resulting string. Fixes #76123.
6432
6433 2005-09-16  Martin Baulig  <martin@ximian.com>
6434
6435         * mono-debug.c
6436         (mono_debug_add_method): Ignore inflated methods for the moment.
6437
6438 2005-09-14  Martin Baulig  <martin@ximian.com>
6439
6440         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
6441
6442 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
6443
6444         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
6445         return a success/failure indication.
6446         (mono_metadata_interfaces_from_typedef_full): Ditto.
6447         (get_constraints): Ditto.
6448
6449 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
6450
6451         * marshal.c (emit_marshal_array): Fix handling of null arrays.
6452         
6453         * marshal.c (emit_marshal_array): Add support for returning string
6454         arrays from delegates. Fixes #76063.
6455
6456         * marshal.c: Use the emit_ldloc/stloc macros where possible.
6457
6458 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
6459
6460         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
6461         icall.
6462
6463 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
6464
6465         * reflection.c icall.c: Fix after mono_get_exception_type_load
6466         signature change.
6467
6468         * assembly.c (mono_assembly_get_assemblyref): New helper function.
6469         (mono_assembly_load_reference): Use the new helper.
6470
6471         * class-internals.h (MonoLoaderError): New structure containing 
6472         information about type loading errors.
6473
6474         * class-internals.h loader.c: Add APIs to store per-thread loader
6475         error information.
6476
6477         * loader.c class.c: Set the loader error if needed.
6478
6479         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
6480
6481 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
6482
6483         * decimal.c: fixed to handle the broken ARM fp format.
6484
6485 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
6486
6487         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
6488         broken.
6489
6490 2005-09-06  Martin Baulig  <martin@ximian.com>
6491
6492         * domain.c (supported_runtimes): Added v2.0.50727.
6493
6494 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
6495
6496         * culture-info.h: reduce the size of some structures.
6497
6498 2005-09-05  Martin Baulig  <martin@ximian.com>
6499
6500         Reflect latest API changes in the August CTP.
6501
6502         * icall.c
6503         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
6504         ("MonoType.HasGenericArguments"): Removed.
6505         ("MonoMethod.BindGenericParameters"): Renamed to
6506         "MakeGenericMethod".
6507         ("MethodBuilder.BindGenericParameters"): Renamed to
6508         "MakeGenericMethod".    
6509
6510 2005-09-05  Martin Baulig  <martin@ximian.com>
6511
6512         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
6513
6514 2005-09-05  Martin Baulig  <martin@ximian.com>
6515
6516         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6517
6518         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
6519         generic_container is non-NULL.
6520
6521 2005-09-05  Martin Baulig  <martin@ximian.com>
6522
6523         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6524
6525         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
6526
6527 2005-08-29  Michal Moskal  <malekith@nemerle.org>
6528
6529         * reflection.c (encode_locals,
6530         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
6531         for large generic types.
6532
6533 2005-09-05  Martin Baulig  <martin@ximian.com>
6534
6535         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6536
6537         * class.c (mono_dup_array_type): New public method.
6538         (mono_metadata_signature_deep_dup): New public method.
6539         (dup_type): Correctly duplicate array and function types.
6540
6541 2005-09-05  Martin Baulig  <martin@ximian.com>
6542
6543         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6544
6545         * reflection.c (get_default_param_value_blobs): Handle generic types
6546         and generic methods.
6547
6548 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
6549
6550         * class.c: Fixed error reporting (method/class were inversed) for 
6551         inheritance demands.
6552         * security-manager.c|h: Added the AppDomain when calling the managed
6553         System.Security.SecurityManager.InheritanceDemand method.
6554
6555 2005-09-01  Raja R Harinath  <rharinath@novell.com>
6556
6557         * reflection.c (encode_marshal_blob): 'marshaltype' and
6558         'marshaltyperef' are alternate sources for the custom marshaler
6559         name.
6560
6561 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
6562
6563         * class.c: fix creation of array classes with rank == 1
6564         (patch by Ankit Jain <jankit@novell.com>).
6565
6566 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
6567
6568         * object.c: fix check for creating the bound data for arrays vs
6569         szarrays.
6570
6571 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6572
6573         * object.c: configuration file name is now based on the executable name,
6574         not the image name. Fixes bug #75931.
6575
6576 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
6577
6578         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
6579         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
6580
6581 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
6582
6583         * rand.c: Use wincrypt.h instead of WinCrypt.h.
6584
6585 2005-08-24  Ankit Jain  <jankit@novell.com>
6586             Raja R Harinath  <rharinath@novell.com>
6587
6588         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
6589           called by it recursively.
6590           (mono_class_init): Remove special case in pending_init handling, since it's
6591           superseded by the fix to mono_class_from_typeref.
6592
6593 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
6594
6595         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
6596         BROKEN_THREAD_START stuff.
6597
6598 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
6599
6600         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
6601         trampoline.
6602
6603         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
6604         
6605         * object.c (mono_delegate_ctor): Replace the original function address with
6606         a delegate trampoline.
6607
6608 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
6609
6610         * icall.c: add boolean argument to base64_to_byte_array and 
6611         InternalFromBase64String to control whether a whitespace-only string
6612         is allowed (or should casue a FormatException to be thrown). We need
6613         this as the behavior has changed between MS.NET 1.x and 2.0, and we
6614         to match the MS behaviour in both profiles.
6615         * appdomain.c: Bump corlib version.
6616
6617 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6618
6619         This patch implements a big portion of publisher policy
6620         support, used to bind assembly versions and redirect
6621         one assembly from version A to version B.
6622
6623         * assembly.c:
6624         New GSList loaded_assembly_bindings, for storing the cached
6625         assembly bindings.
6626         (assembly_binding_maps_name): New static function for checking if a 
6627         assembly binding information maps an assembly name.
6628         (mono_assembly_binding_info_free): New function for freeing
6629         assembly binding information resources.
6630         (get_publisher_policy_info): New static function for retrieving 
6631         assembly binding information from a MonoImage.
6632         (compare_versions): New static function for comparing an assembly
6633         binding information data and the version of an assembly name.
6634         (check_policy_versions): New static function for checking if an
6635         assembly binding info mapping an assembly name is valid for it.
6636         (mono_assembly_load_publisher_policy): New static function for
6637         loading the 'policy.major.minor.MyAssembly' image for an assembly
6638         with an assembly name 'aname'.
6639         (mono_assembly_bind_version): New static function for updating
6640         assembly redirection.
6641         (mono_assembly_apply_binding): New static function for applying
6642         assembly binding.
6643         (search_binding_loaded): New static function for searching 
6644         loaded assembly binding infos in the cache domain.
6645         (mono_assembly_load_full): Don't apply assembly binding for
6646         reflection only assemblies.
6647
6648         * metadata-internals.h: Add MonoAssemblyBindingInfo,
6649         which contains information about assembly binding. Also
6650         declare signature for mono_config_parse_publisher_policy ()
6651         function, used to retrieve pub policy info.
6652         
6653         * mono-config.c:
6654         (publisher_policy_start): New static function used to parse publisher 
6655         policy config files.
6656         (publisher_policy_parser): New static MonoParseHandler containing 
6657         the functions used when parsing config files.
6658         (mono_config_parse_publisher_policy): New function for parsing
6659         publisher policy files.
6660         
6661 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
6662
6663         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
6664
6665         * marshal.c (mono_delegate_free_ftnptr): Ditto.
6666
6667         * object.c (mono_get_addr_from_ftnptr): New helper function.
6668
6669         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
6670
6671         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6672
6673 2005-08-19  Dick Porter  <dick@ximian.com>
6674
6675         * threads.c, threads.h, appdomain.c, appdomain.h,
6676         profiler-private.h, monitor.c, object.c, object-internals.h,
6677         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
6678         store the thread ID, so it can hold a 64 bit value if needed.
6679
6680 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
6681
6682         * reflection.c (mono_reflection_create_dynamic_method): Store the
6683         handle class into the method references as well so ldtoken works in
6684         dynamic methods.
6685
6686         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
6687         types.
6688
6689 2005-08-19  Ankit Jain <jankit@novell.com>
6690
6691         Fix #75847.
6692         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
6693           here rather than using the method signature of a arbitrary function
6694           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
6695           two arguments.
6696           Hack done with Harinath.
6697
6698 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6699
6700         * threadpool.c: disable printing stack traces when we get a exception
6701         in a threadpool thread. I need to do more testing to figure out which
6702         cases actually print this. Fixes bug #75828.
6703
6704 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6705
6706         * icall.c: there might be ignored whitespace after the last '='. This
6707         fixes length computation and bug #75840.
6708
6709 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
6710
6711         * assembly.c (mono_assembly_load_full): Consider .exe extension as
6712         well. Fixes #75809.
6713
6714         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
6715         #75784.
6716         
6717         * reflection.c (create_custom_attr_data): Ditto.
6718
6719 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
6720
6721         * locales.c, culture-info.h : removed RegionLCIDMap.
6722         * culture-info-tables.h : regenerated.
6723
6724 2005-08-16  Martin Baulig  <martin@ximian.com>
6725
6726         * class.c (mono_type_get_name_recurse): Small fix.
6727
6728 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
6729
6730         * locales.c : indentation fixie.
6731
6732 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
6733
6734         * object-internals.h,
6735           locales.h,
6736           locales.c,
6737           culture-info.h,
6738           icall.c : added RegionInfo table support.
6739         * culture-info-table.h : regenerated for region support.
6740
6741 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
6742
6743         * reflection.c (resolve_object): handle all kinds of MonoMethod
6744         including generic ones
6745
6746 2005-08-12  Ankit Jain <jankit@novell.com>
6747
6748         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
6749           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
6750
6751 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
6752
6753         * process.c: Don't close a thread handle when it's NULL. This is a
6754         workaround for bug #75733.
6755
6756 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
6757
6758         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
6759
6760 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
6761
6762         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
6763
6764 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6765
6766         * threadpool.c: if a work item in the thread pool has a callback that
6767         catches a exception, don't propagate it after invoking the callback.
6768         Fixes bug #75336.
6769
6770 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
6771
6772         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
6773
6774         * class-internals.h (MonoCachedClassInfo): Add some new fields.
6775
6776         * class.c (mono_class_init): Load field info lazily in the AOT case.    
6777
6778         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
6779
6780 2005-08-03  Ankit Jain  <jankit@novell.com>
6781
6782         Fix #75683.
6783         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
6784           PInvoke calling convention is 0.
6785
6786 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
6787
6788         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
6789         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
6790
6791 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
6792
6793         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
6794         to handle threads not started by the GC (patch by Michael Meeks
6795         <michael.meeks@novell.com>).
6796
6797 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
6798
6799         * reflection.c: Make buffer used in emitting types larger for some
6800         big generic types (patch by Michal Moskal).
6801
6802 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
6803
6804         * mono-debug.c: Fix some (not all) alignment problems.
6805
6806 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6807
6808         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
6809         Invoke mono_image_load_from_data_full passing the refonly
6810         parameter.
6811
6812         * assembly.c
6813         (mono_assembly_open_from_bundle): Add the refonly argument, 
6814         in order to pass it to other methods it calls to.
6815         (do_mono_assembly_open): Add the refonly argument, in order 
6816         to pass it to other methods it calls to.
6817         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
6818         the refonly parameter to it.
6819
6820         * image.c: Add loaded_images_refonly_hash and
6821         loaded_images_refonly_guid_hash to cache the reflection
6822         only loaded images.
6823         (mono_images_init): Initialize the hash tables used for
6824         caching the reflection only images.
6825         (load_modules): Invoke mono_image_open_full passing the refonly
6826         parameter to load the modules the correct way.
6827         (build_guid_table): Add the refonly argument, to re-build the 
6828         correct hash table.
6829         (do_mono_image_open): Added the refonly argument, in order to
6830         define it for the loaded image.
6831         (mono_image_loaded_full): New function, which receives an
6832         additional parameter to look for the image in the refonly or
6833         non-refonly section.
6834         (mono_image_loaded): Updated, using mono_image_loaded_full.
6835         (mono_image_loaded_by_guid_full): The same case that happens
6836         with mono_image_loaded_full.
6837         (mono_image_loaded_by_guid): Likewise.
6838         (register_image): Use the ref_only variable inside MonoImage
6839         to decide in which hash table store the current image.
6840         (mono_image_open_from_data_full): Rename
6841         mono_image_open_from_data to mono_image_open_from_data_full,
6842         adding the refonly argument, to define the ref_only variable 
6843         inside MonoImage.
6844         (mono_image_open_from_data): Return 
6845         mono_image_open_from_data_full.
6846         (mono_image_open_full): Rename mono_image_open to
6847         mono_image_open_full, receiving the new refonly argument,
6848         to pass it to inner methods.
6849         (mono_pe_file_open): Update this function, to open
6850         a MonoImage as a non-refonly image.
6851         (mono_image_close): Use the refonly variable inside
6852         MonoImage to remove the image from the correct caches.
6853
6854         * image.h: Add the signatures of mono_image_open_full,
6855         mono_image_open_from_data_full, mono_image_loaded_full,
6856         mono_image_loaded_by_guid_full.
6857
6858         * metadata-internals.h: Add the ref_only field to 
6859         MonoImage.
6860         
6861 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6862
6863         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
6864         Fix the last behavior, which used to load the assemblies and
6865         extract MonoReflectionAssemblyName information, instead of
6866         extract it from the metadata tables. Needed for Reflection
6867         Only assemblies.
6868         
6869 2005-07-29  Martin Baulig  <martin@ximian.com>
6870
6871         * mono-debug-debugger.c
6872         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
6873         not initialized.
6874
6875         * mono-debug.c
6876         (mono_debug_address_from_il_offset): Check whether we have
6877         debugging support before attempting to take the lock.
6878         (mono_debug_source_location_from_address): Likewise.
6879         (mono_debug_source_location_from_il_offset): Likewise.
6880         (mono_debug_il_offset_from_address): Likewise.
6881         (mono_debug_address_from_il_offset): Likewise.
6882
6883 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
6884
6885         * class.c (mono_class_from_name_case): Add support for dynamic images.
6886         Fixes #75650.
6887
6888         * object.c (mono_class_compute_gc_descriptor): Add a workaround
6889         for #75479.
6890
6891 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
6892         
6893         * reflection.c (mono_method_get_object): Fix warning.
6894
6895 2005-07-28  Martin Baulig  <martin@ximian.com>
6896
6897         * mono-debug.c
6898         (mono_debug_add_wrapper): Also write the wrapper type.
6899
6900 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
6901
6902         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
6903         
6904         * class.c (mono_class_init): Avoid reading nested classes if the AOT
6905         data indicates the class has none.
6906
6907 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
6908
6909         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
6910         loader lock with the debugger lock. Prevents deadlocks for beagle.
6911
6912         Beagle can now run on an smp box for a weekend without any
6913         issues. Woohoo!
6914
6915 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
6916
6917         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
6918         in a module. Fixes #75629.
6919
6920 2005-07-26  Martin Baulig  <martin@ximian.com>
6921
6922         * mono-debug.c (mono_debug_add_wrapper): New static method.
6923         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
6924         interncall or a wrapper.
6925
6926         * mono-debug.h (MonoDebugWrapperData): New public typedef.
6927         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
6928         (MONO_DEBUGGER_VERSION): Bump to 51.
6929
6930         * mono-debug-debugger.c
6931         (mono_debugger_add_type): Removed this empty function.
6932         (mono_debugger_add_method): Likewise.
6933
6934 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
6935
6936         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
6937         before accessing method->slot.
6938
6939 2005-07-21  Jb Evain  <jbevain@gmail.com>
6940
6941         * reflection.c (method_encode_clauses/class): Handle filters clauses.
6942         Fixes #75010.
6943
6944 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
6945
6946         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
6947         #75587.
6948
6949 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
6950
6951         * image.h image.c: Add mono_image_get_guid () API function.
6952
6953 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
6954
6955         There were issues when multiple threads tried to load
6956         assemblies. A deadlock was created between assemblies_mutex and
6957         mono_domain_assemblies_lock. This fixes the issue by making the
6958         assembly ref counting be lock free. See bug 75586.
6959         
6960         * image.c (mono_image_close): The add ref function here was using
6961         Interlocked operations while the unref was using a mutex and a
6962         --. I don't think this was ever a bug that would be exposed in a
6963         non-pendantic way (ie, by an embedder doing a ref on one thread
6964         and an unref on another), but for the sake of correctness, this is
6965         now Interlocked.
6966
6967         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
6968         (mono_assembly_load_reference): Call mono_assembly_addref rather
6969         than touching the refcount ourselves.
6970         (mono_assembly_close): Use InterlockedDecrement to unref the
6971         assembly. Don't acquire the lock unless it is actually needed.
6972
6973 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
6974
6975         * class.c (mono_class_layout_fields): Fix calculation of has_references
6976         for generic types.
6977
6978 2005-07-12  Martin Baulig  <martin@ximian.com>
6979
6980         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6981
6982         * metadata.c
6983         (mono_type_hash): Provide better hashing for generic instances.
6984         (mono_generic_inst_hash): Improve hashing.
6985         (mono_generic_class_hash): Likewise.
6986
6987         * reflection.c (mymono_metadata_type_hash): Improve hashing for
6988         generic instances.
6989
6990 2005-07-12  Martin Baulig  <martin@ximian.com>
6991
6992         * reflection.c (mono_reflection_create_runtime_class): Remove the
6993         hack for generic type definitions and non-`Run' assemblies.
6994         (mono_reflection_bind_generic_parameters): Also use
6995         `klass->wastypebuilder' to check for TypeBuilders.
6996
6997 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
6998
6999         * class.c (mono_class_layout_fields): Fix calculation of has_references
7000         for generic types.
7001
7002         * class.c (inflate_generic_class): Fix a leak.
7003         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
7004         for generic types.
7005
7006 2005-07-11  Martin Baulig  <martin@ximian.com>
7007
7008         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
7009         on error.
7010
7011 2005-07-11  Martin Baulig  <martin@ximian.com>
7012
7013         * loader.c (find_method): Also lookup in
7014         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
7015
7016 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
7017
7018         * appdomain.c (mono_domain_unload): Don't free the error message
7019         before passing it to mono_get_exception_...
7020
7021         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
7022         
7023 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
7024
7025         * threads.c: try to better guess an available RT signal (bug #75387).
7026
7027 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
7028
7029         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
7030         and CACHE_OBJECT.
7031
7032 2005-07-07  Martin Baulig  <martin@ximian.com>
7033
7034         * class.c (mono_type_get_name_full): Return NULL for
7035         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
7036         fixes #75408.
7037
7038 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
7039
7040         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
7041         exit the appdomain as well being aborted.
7042
7043         * threadpool.c: Create all threadpool threads inside the root appdomain, and
7044         change back to the root domain after calling managed code. This enables
7045         appdomains using threadpools to be unloaded.
7046
7047 2005-07-07  Martin Baulig  <martin@ximian.com>
7048
7049         * class-internals.h
7050         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
7051         into `MonoDynamicGenericClass' since we only need it for dynamic
7052         types.
7053
7054         * reflection.c (mono_class_bind_generic_parameters): We don't need
7055         to compute the `parent' here.
7056
7057 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
7058
7059         * culture-info-table.h : regenerated.
7060
7061 2005-07-06  Martin Baulig  <martin@ximian.com>
7062
7063         * icall.c
7064         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
7065
7066         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
7067
7068 2005-07-06  Martin Baulig  <martin@ximian.com>
7069
7070         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
7071         we're doing a signature-only comparision; fixes #74945.
7072
7073 2005-07-06  Martin Baulig  <martin@ximian.com>
7074
7075         * class-internals.h (MonoGenericClass): Moved some things out into
7076         a new `MonoInflatedGenericClass' type.  
7077         (MonoInflatedGenericClass): New type; the `klass' of a
7078         `MonoGenericClass' is now computed lazyly in
7079         mono_get_inflated_generic_class().      
7080
7081         * class.c (mono_get_inflated_generic_class): New public function.
7082         (mono_class_inflate_generic_method): Removed the unused
7083         `MonoClass *' argument.
7084         (setup_generic_vtable): Don't call mono_get_inflated_method() on
7085         all the methods.
7086         (mono_class_create_generic): Make this static and merge it with
7087         mono_class_create_generic_2(); we're now called automatically from
7088         mono_get_inflated_generic_class().
7089
7090         * loader.c (mono_method_signature): Call
7091         mono_get_inflated_method() here.
7092
7093 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
7094
7095         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
7096         type of fields with RVA.
7097
7098         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
7099         for this pseudo class.
7100         (my_mono_class_from_generic_parameter): Likewise.
7101         (mono_class_init): Allow interfaces to have cctors.
7102
7103 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
7104
7105         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
7106         lazily for AOT methods.
7107
7108 2005-07-05  Martin Baulig  <martin@ximian.com>
7109
7110         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
7111         returns FALSE for a successful match, not TRUE.
7112
7113 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
7114
7115         * loader.c (mono_method_get_index): Optimize this a bit.
7116
7117 2005-07-04  Martin Baulig  <martin@ximian.com>
7118
7119         * class.c
7120         (class_compute_field_layout): Move the check for generic type
7121         definitions into mono_class_layout_fields().  Fixes #74684.
7122         (mono_class_from_generic_parameter): Correctly compute
7123         `klass->parent'; fixes #75457.
7124
7125         * reflection.c (register_assembly, register_module): Make sure
7126         `domain->rejobject_hash' is already created.
7127
7128 2005-07-02  Martin Baulig  <martin@ximian.com>
7129
7130         * class-internals.h
7131         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
7132         `MonoDynamicGenericClass'.      
7133
7134 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
7135
7136         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
7137         returned by a field getter is null, since null is a valid value.
7138
7139 2005-07-01  Martin Baulig  <martin@ximian.com>
7140
7141         * reflection.c (mono_reflection_generic_class_initialize): Update
7142         the `dgclass->fields [i].parent' to the correct class.
7143         (mono_image_get_fieldref_token): Use the declaring type, not the
7144         reflected type.
7145
7146 2005-07-01  Martin Baulig  <martin@ximian.com>
7147
7148         * loader.c (find_method): Also look in the interfaces; fixes #75429.
7149
7150 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
7151
7152         * threads.c (thread_cleanup): assert that thread != NULL
7153         (wait_for_tids_or_state_change): We were using the wrong variable
7154         when accessing wait->threads. `i' was always out of the bounds of
7155         the array.
7156
7157 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7158
7159         * loader.c: map user32 and kernel32 to libMonoSupportW
7160
7161 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
7162
7163         * appdomain.c (unload_thread_main): Mark this as WINAPI.
7164
7165 2005-06-28  Martin Baulig  <martin@ximian.com>
7166
7167         * loader.c (method_from_methodspec): Fix #75334.
7168
7169 2005-06-28  Martin Baulig  <martin@ximian.com>
7170
7171         Fix #74953 - Arrays now implement the generic IList<T> interface
7172         on the 2.0 platform.
7173
7174         * class-internals.h (MonoDefaults): Added `generic_array_class'.
7175
7176         * reflection.c (mono_class_bind_generic_parameters): New public
7177         function; similar to mono_reflection_bind_generic_parameters(),
7178         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
7179
7180         * domain.c (mono_init_internal): Try to initialize.
7181         `mono_defaults.generic_array_class' here; this'll only succeed if
7182         we're using the 2.0 corlib.
7183
7184         * icall.c
7185         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
7186         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
7187         (mono_lookup_internal_call): Added support for nested classes.
7188
7189         * loader.c
7190         (mono_get_method_from_token): Set `result->signature->pinvoke' if
7191         we're an interncall and have generic arguments.
7192
7193         * class.c
7194         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
7195         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
7196         instance of System.Array.InternalArray<T> for arrays, so they
7197         implement the generic IList<T> interface.
7198
7199 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
7200
7201         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
7202         (chastamar@yahoo.com). Fixes #75374.    
7203
7204 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
7205
7206         * culture-info-table.h: regenerated.
7207
7208 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7209
7210         * icall.c: handle spaces correctly for base64 strings.
7211
7212 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
7213
7214         * *.c: Kill some warnings.
7215
7216 2005-06-23  Duncan Mak  <duncan@novell.com>
7217
7218         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
7219         that this builds on Solaris 10 (x86).
7220
7221 2005-06-23  Martin Baulig  <martin@ximian.com>
7222
7223         * class.c
7224         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
7225         generic type definitions.
7226
7227 2005-06-23  Martin Baulig  <martin@ximian.com>
7228
7229         Fix #75331.
7230
7231         * metadata.c (mono_class_get_overrides): Renamed to
7232         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
7233         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
7234         pass it to mono_get_method_full().
7235
7236 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
7237
7238         * reflection.c (mono_reflection_create_runtime_class): take the
7239         mono_domain_lock in this method. Prevents deadlocks
7240
7241 2005-06-22  Martin Baulig  <martin@ximian.com>
7242
7243         * loader.c (method_from_methodspec): Fix #75330.
7244
7245 2005-06-22  Martin Baulig  <martin@ximian.com>
7246
7247         * reflection.c (type_get_qualified_name): Use
7248         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
7249         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
7250         argument; use it if we don't have an assembly name.
7251
7252 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
7253
7254         * object.c: In mono_message_init, set "copy out" flag for in
7255         parameters with the [Out] flag.
7256
7257 2005-06-21  Martin Baulig  <martin@ximian.com>
7258
7259         * class.c
7260         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
7261         and MONO_TYPE_PTR.
7262
7263 2005-06-21  Martin Baulig  <martin@ximian.com>
7264
7265         * class.c (mono_class_init): Don't initialize `class->fields' for
7266         generic instances since they're initialized again in
7267         compute_field_layout(). 
7268         (compute_field_layout): Set the field's `generic_info' here; fix
7269         #75320. 
7270
7271 2005-06-21  Martin Baulig  <martin@ximian.com>
7272
7273         * class-internals.h
7274         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
7275
7276         * metadata.c (mono_metadata_generic_method_equal): Also
7277         distinguish the `generic_class'; fixes #75334.
7278
7279 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7280
7281         * domain.c:
7282         * appdomain.c:
7283         * domain-internals.h:
7284         * reflection.c: 'domain_assemblies' field is now protected by its own
7285         lock. Don't call into managed code to run the AssemblyLoad event if we
7286         now there are no registered delegates for it.
7287
7288 2005-06-20  Martin Baulig  <martin@ximian.com>
7289
7290         * class.c (mono_class_is_assignable_from): Use a custom version of
7291         mono_class_has_parent() to make things work for generic instances;
7292         fix #75300.
7293
7294 2005-06-20  Martin Baulig  <martin@ximian.com>
7295
7296         * loader.c (method_from_methodspec): Apply a patch from
7297         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
7298
7299 2005-06-20  Martin Baulig  <martin@ximian.com>
7300
7301         * class.c (mono_class_init): Reverted Zoltan's last change; it
7302         breaks generics.
7303
7304 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
7305
7306         * threads.c (wait_for_tids_or_state_change): Add missing locking.
7307
7308 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7309
7310         * socket-io.c: fix the index in the socket array for writable/error
7311         sockets. Fixes bug #75306.
7312
7313 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
7314
7315         * class.c (mono_class_init): Allow interfaces to have static ctors.
7316
7317 2005-06-17  Martin Baulig  <martin@ximian.com>
7318
7319         * loader.c (method_from_methodspec): Use `context->container' when
7320         parsing the `gmethod->inst'.
7321
7322 2005-06-17  Martin Baulig  <martin@ximian.com>
7323
7324         * class.c (mono_type_get_name_recurse): Don't add the assembly
7325         name for type arguments.
7326
7327 2005-06-15  Martin Baulig  <martin@ximian.com>
7328
7329         * reflection.c (mono_image_get_inflated_method_token): Encode
7330         correct klass; fixes #75260.
7331
7332 2005-06-13 Michal Moskal <malekith@nemerle.org>
7333
7334         * icall.c: Make GetCorrespondingMethod/Constructor take
7335         MonoReflectionMethod method not MonoMethod. Removed
7336         MonoType.GetCorrespondingField, and make
7337         MonoGenericType.GetCorrespondingField take name not
7338         MonoClassField.
7339
7340 2005-06-13  Michal Moskal <malekith@nemerle.org>
7341
7342         * reflection.c (field_encode_signature, encode_locals):
7343          Make sizes of buffers for types larger (for big generic types).
7344          (create_generic_typespec,
7345          mono_reflection_sighelper_get_signature_local,
7346          mono_reflection_sighelper_get_signature_field):
7347          Add asserts for too small buffers.
7348
7349 2005-06-15  Martin Baulig  <martin@ximian.com>
7350
7351         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
7352         if our parent is not a dynamic type.
7353
7354 2005-06-15  Martin Baulig  <martin@ximian.com>
7355
7356         * class-internals.h (MonoTypeNameFormat): New enum.
7357
7358         * class.c
7359         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
7360         (mono_type_get_full_name): Removed.
7361         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
7362         argument instead of the boolean's.
7363
7364         * icall.c (ves_icall_System_MonoType_getFullName):
7365         Added `gboolean assembly_qualified'.    
7366
7367         * reflection.h
7368         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
7369
7370         * reflection.c (mono_reflection_parse_type): Parse the new type
7371         name format.
7372
7373 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7374
7375         * icall.c: no need to convert from utf16 to utf8 and then back again
7376         after the call to GetLogicalDrives.
7377
7378 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7379
7380         * icall.c: frombase64. Fix problems exposed by new tests.
7381
7382 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7383
7384         * icall.c: added internal calls for converting char [] and strings in
7385         base64 into byte [].
7386
7387 2005-06-10  Martin Baulig  <martin@ximian.com>
7388
7389         * class.c (mono_class_create_generic_2): Read the nested classes
7390         from the metadata rather than from `gklass->nested_classes' since
7391         `gklass' might not be initialized yet.
7392
7393 2005-06-09  Duncan Mak  <duncan@novell.com>
7394
7395         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
7396         all public headers. Fixes #74919.
7397
7398 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
7399
7400         * domain.c: The key for proxy_vtable_hash is now a pointer
7401         array. Added new GHashFunc and GCompareFunc functions for this.
7402
7403         * class.h: The list of interfaces in MonoRemoteClass is known in
7404         advance and can't grow (we create a new MonoRemoteClass if needed),
7405         so now the interface array can be allocated together with
7406         MonoRemoteClass.
7407         
7408         * object.c: Added a new method create_remote_class_key.
7409         Fixed mono_remote_class so it does not depend on
7410         mono_upgrade_remote_class.
7411         Removed extend_interface_array.
7412         Added new method clone_remote_class(), which makes a copy of a remote
7413         class and adds a new interface or class to it.
7414         mono_upgrade_remote_class() now creates a new remote class (or gets
7415         it from the cache) if an vtable upgrade is needed. In this way
7416         we make sure that other objects sharing the same remote class
7417         don't get the new vtable with unwanted interfaces.
7418         
7419         * object-internals.h:
7420         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
7421         
7422         * marshal.c: Track changes in mono_upgrade_remote_class().
7423
7424 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
7425         * icall.c: Add runtime methods for obtaining members of inflated
7426         class, which were created from supplied non-inflated members. It
7427         is used in internal Get{Method,Constructor,Field} methods in
7428         System.Type
7429
7430 2005-06-09  Martin Baulig  <martin@ximian.com>
7431
7432         * reflection.c
7433         (mono_reflection_bind_generic_method_parameters): Fix #75169.
7434
7435 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7436         * reflection.c (mono_image_basic_init): Define
7437         Version in MonoDynamicAssembly. 
7438         
7439 2005-06-08  Martin Baulig  <martin@ximian.com>
7440
7441         Fix #75136.
7442
7443         * loader.c
7444         (mono_method_signature_full): New public method; takes a
7445         `MonoGenericContext *'.
7446         (find_method): Use mono_method_signature_full() and pass the
7447         klass'es context to it.
7448
7449         * class.c (mono_class_is_inflated_method): Use
7450         mono_method_signature_full() and pass the context to it.
7451
7452 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
7453
7454         * object.c: add proper locking in mono_remote_class_vtable(),
7455         fixes possible memory corruption.
7456
7457 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
7458
7459         * marshal.c (mono_remoting_marshal_init): set
7460         initialized after initialization.
7461
7462 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
7463
7464         * locales.c : hush.
7465
7466 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
7467
7468         * object.c (extend_interface_array): fix really silly
7469         memory corrupting / comparison bug.
7470
7471 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7472
7473         * reflection.c: Functions added to support the creation
7474         of CustomAttributeData, which includes Attribute data
7475         used by ReflectionOnly methods.
7476
7477         * reflection.h:  mono_reflection_get_custom_attrs_data and
7478          mono_custom_attrs_data_construct added (functions exposed).
7479
7480          * icall.c: Added mono_reflection_get_custom_attrs_data
7481          as icall.
7482         
7483 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
7484
7485         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
7486         lupus's request.
7487
7488 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
7489
7490         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
7491
7492         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
7493         dynamic DllImportAttribute.
7494
7495         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
7496         dynamic DllImportAttribute.
7497
7498         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
7499         Fixes #75162.
7500
7501 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7502
7503         * threads.c: avoid segfault when an unstarted thread is aborted.
7504
7505 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
7506
7507         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
7508         Returns the name and version of the runtime for reporting.
7509
7510 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7511
7512         * appdomain.c: bump corlib version.
7513         * object-internals.h: new field in MonoReflectionAssembly.
7514
7515 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7516
7517         * object-internals.h: Carlos forgot to add this field.
7518
7519 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7520
7521         * icall.c: Added create_version to create instances
7522         of Version of MonoReflectionAssemblyName. This change helps
7523         the AssemblyName tests to keep running fine.
7524         
7525 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
7526   
7527         * object.c (mono_method_return_message_restore): A somehow less
7528         intrusive fix for #75138.
7529
7530 2005-06-03  Raja R Harinath  <rharinath@novell.com>
7531
7532         * object.c (mono_method_return_message_restore): Fix computation
7533         of expected number of out args.
7534
7535 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
7536
7537         * reflection.c (mono_image_get_method_info): Fix the case when the
7538         charset is empty.
7539
7540 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
7541
7542         * object.c: Added missing null check in
7543           mono_method_return_message_restore.
7544
7545 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
7546
7547         * reflection.c (mono_image_get_method_info): Handle the case when
7548         dllentry is empty.
7549
7550 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
7551
7552         * object.c: When creating the vtable for a proxy, take into account
7553         all inherited interfaces, not only the ones registered in
7554         iclass->interfaces. This fixs bug #74996.
7555         Also, in mono_method_return_message_restore, verify that the array
7556         of out args has the expected lengh.
7557
7558 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7559
7560         * socket-io.c: update the timeout in Poll when the call is interrupte.
7561
7562 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7563
7564         * socket-io.c: support abort/suspend in Select_internal after last
7565         change.
7566
7567 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7568
7569         * threadpool.c: remove warning.
7570
7571 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7572
7573         * icall.c:
7574         * socket-io.[ch]: Select_internal uses poll() now when available, thus
7575         removing the 1024 limit from select(). Runtime part of the fix for
7576         bug #71203.
7577
7578 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7579
7580         * socket-io.c: when resolving the addresses for the same
7581         host returned by gethostname(), get the local IPs from the interface
7582         list. Loopback addresses are discarded if the are interfaces up with
7583         non-loopback ones. Fixes bug #63265.
7584
7585 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
7586
7587         * appdomain.c, verify.c, object-internals.h, reflection.c:
7588         bumped corlib number to 36, and added new extra_flags field
7589         to ReflectionMethodBuilder and friends.  Fixes #75060.
7590
7591 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
7592
7593         * gc.c: register a new weak link only if the object is non-null
7594         (fixes bug#75047).
7595
7596 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
7597
7598         * culture-info.h : short time pattern too.
7599
7600 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
7601
7602         * culture-info.h : expand long time pattern string length.
7603
7604 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7605
7606         * culture-info-table.h : update (more French date format; #72788).
7607
7608 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
7609
7610         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
7611         the method is static. Fixes #75029.
7612
7613 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
7614
7615         * reflection.c: Update the table_idx field of method builders after
7616         saving the module, since it can change. This is a workaround for
7617         bug #74914. 
7618
7619 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7620
7621         * culture-info-table.h : update (additional French date format).
7622
7623 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
7624
7625         * icall.c (ves_icall_type_Equals): Revert last change.
7626         
7627         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
7628
7629         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
7630
7631 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
7632
7633         * class-internals.h: Added executioncontext_class field to 
7634         MonoDefaults structure.
7635         * domain.c: Cache System.Threading.ExecutionContext class in 
7636         mono_defaults.
7637         * object.c: Capture the ExecutionContext for asynchroneous calls in
7638          mono_async_result_new.
7639         * object-internals.h: Added execution_context and original_context 
7640         fields to MonoAsyncResult. Added execution_context to MonoThread.
7641         * security-manager.c|.h: Added mono_get_context_capture_method to 
7642         return the capture method (if required by the security manager or by
7643         the framework version used).
7644         * threadpool.c: Apply capture (if present) ExecutionContext in 
7645         mono_async_invoke and revert to original context after it completes.
7646
7647 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
7648
7649         * culture-info-table.h : updated (real hacky solution for zh-CHT).
7650
7651 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
7652
7653         * culture-info-table.h : zh-CHT related workaround.
7654
7655 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
7656
7657         * marshal.c (emit_marshal_custom): Add some error checking and call the
7658         methods in the ICustomMarshaler interface. Fixes #74875.
7659         
7660         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
7661         native->managed wrappers.
7662
7663 2005-05-12  Martin Baulig  <martin@ximian.com>
7664
7665         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
7666         here and use the loader lock.
7667
7668         * mono-debug.c: Properly lock when the debugger is not attached.
7669         (mono_debug_init): Release the initial lock if we're not running
7670         in the debugger.
7671
7672 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
7673
7674         * marshal.c (emit_marshal_custom): Pass through NULL values without
7675         calling the custom marshalling routines.
7676
7677         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
7678         conversion in structures. Fixes #74882.
7679
7680 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
7681
7682         * culture-info-table.h : zh-* cultures were missing.
7683
7684 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
7685
7686         * threads.c: Added a new event background_change_event which is signaled
7687         when a thread changes its background mode.
7688         Moved here several checks previously done in managed code. The checks
7689         require the thread lock, and using the thread lock in managed code
7690         can result in deadlocks.
7691         Merged Start_internal and Thread_internal into a single method. Now 
7692         Thread_internal does all work of creating and starting a thread.
7693         Added icalls for setting and getting the state of the object. Moved from
7694         managed code to avoid locking there.
7695         Added wait_for_tids_or_state_change() which is called instad of
7696         wait_for_tids when waiting for non-backround threads to end. This method
7697         will return if one of the threads ends or the background_change_event
7698         is signaled.
7699         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
7700         the background mode. This method signals the background_change_event
7701         event.
7702         * icall.c:
7703         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
7704         removed Start_internal.
7705         
7706 2005-05-11  Martin Baulig  <martin@ximian.com>
7707
7708         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
7709         to order of some fields to get proper alignment on 64-bit machines.
7710
7711 2005-05-11  Martin Baulig  <martin@ximian.com>
7712
7713         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
7714         changes as they're broken and completely fuck up the debugger.
7715
7716         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
7717
7718 2005-05-10  Martin Baulig  <martin@ximian.com>
7719
7720         * reflection.c (mono_reflection_generic_class_initialize): Don't
7721         call mono_class_setup_parent() here.
7722
7723 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7724
7725         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
7726         send/receive timeout use an integer in milliseconds. We were using a
7727         struct timeval.
7728
7729 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7730
7731         * locales.c:
7732         (internal_get_cultures): reserve the first slot of the array for the
7733         InvariantCulture, which will be filled in managed code.
7734
7735 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
7736
7737         * reflection.c (mono_image_fill_module_table): Initialize the
7738         GENERATION field as well.
7739
7740 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7741
7742         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
7743         Monitor.Enter on the object.
7744
7745 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
7746
7747         * threads.c: Enable the wait for running threads when exiting.
7748         * icall.c: Suspend all threads before exiting.
7749
7750 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
7751
7752         * assembly.c (mono_assembly_load_reference): Fix warning.
7753
7754 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7755
7756         * threadpool.c: changed the default number of threads per cpu. From now
7757         on, the default will be 20 + (5 * number of cpus) instead of 50.
7758
7759 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
7760
7761         * loader.c (mono_method_get_signature_full): Add locking here.
7762
7763 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
7764
7765         * appdomain.c: Moved methods for parsing and freeing assembly
7766         names to assembly.c.
7767         * assembly.c, domain-internals.h: Created public methods for parsing
7768         assembly names. Fixed mono_assembly_load_with_partial_name:
7769         it now finds the best match, taking into account the version,
7770         token and culture specified in the partial name. Also return
7771         the latest version if no version information is specified.
7772
7773 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
7774
7775         * threadpool.c: replace check for SocketAsyncCall class.
7776
7777 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7778
7779         * threadpool-internals.h:
7780         * Makefile.am: added threadpool-internals.h
7781
7782         * threadpool.c: call mono_unhandled_exception on exceptions not handled
7783         that happen in threadpool threads (tested on MS).
7784         (mono_thread_pool_remove_socket): new function that dispatch any pending
7785         AIO call on a socket that is closing. By now only epoll really needs it,
7786         as select/poll wake up when the socket closes.
7787
7788
7789         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
7790
7791 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
7792
7793         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
7794
7795 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
7796
7797         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
7798
7799 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
7800
7801         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
7802         has an abort request, convert it into a suspend request.
7803
7804 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
7805
7806         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
7807         warning for the usage of `UnmanagedFunctionPointerAttribute' which
7808         is not supported yet.
7809
7810 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7811
7812         * image.c: register assemblies loaded from data (bundles) in the loaded
7813         assemblies hash. Fixes bug #74772.
7814
7815 2005-04-29  Martin Baulig  <martin@ximian.com>
7816
7817         * class.c (mono_type_get_name_recurse): Update to the new naming
7818         schema from the latest .NET 2.x beta2.
7819         (mono_class_setup_vtable_general): If we're a generic instance,
7820         copy the vtable from our generic type definition and inflate all
7821         the methods in it.
7822
7823         * loader.c (find_method): Update to the new naming schema from the
7824         latest .NET 2.x beta2.
7825
7826 2005-04-29  Raja R Harinath  <harinath@gmail.com>
7827
7828         * class.c (mono_class_init): Add a mono_loader_unlock to the
7829         #74734 fix.
7830
7831 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
7832
7833         * icall.c (ves_icall_System_Environment_Exit): Remove the 
7834         suspend_all_other_threads () call for the time being, since it can hang.
7835
7836         * threads.c (mono_thread_manage): Similarly, disable the waiting for
7837         the background threads to exit, since it can also hang.
7838
7839         * class.c (mono_class_init): Applied patch from Ankit Jain 
7840         (radical@gmail.com). Avoid pending init errors when a field refers
7841         to a nested class using a typeref. Fixes #74734.
7842
7843         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
7844         this for dynamic modules.
7845
7846 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7847
7848         * threads.c: don't wait for threads that are in the process of aborting
7849         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
7850         and waiting for background threads to finish. This makes xsp and
7851         mod-mono-server exit without random length delays and/or hangs.
7852
7853 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7854
7855         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
7856
7857 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
7858
7859         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
7860         dynamic types to prevent infinite loops. Fixes #74727.
7861
7862         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
7863         ..._is_assignable_to.
7864
7865 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
7866
7867         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
7868
7869 2005-04-25  Martin Baulig  <martin@ximian.com>
7870
7871         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
7872
7873         * domain.c
7874         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
7875
7876         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
7877
7878         * reflection.c (build_compressed_metadata): Set metadata header
7879         version to 2.0.
7880
7881 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
7882
7883         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
7884         number into an integral and a decimal part. Fixes #70473.
7885
7886         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
7887
7888 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
7889
7890         * culture-info-table.h : reflected the latest locale-builder output.
7891
7892 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7893
7894         * threadpool.c: check for SuspendRequested too when deciding if
7895         mono_thread_interruption_checkpoint should be called.
7896
7897 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7898
7899         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
7900         * threads.c: remove interruption_mutex and use Interlocked instead. When
7901         suspending all the threads, wait for all the suspended events at once.
7902         If we're shutting down and get an APC that is going to be queued,
7903         call mono_thread_execute_interruption immediately, as the thread might
7904         be sleeping on a pthread condition or mutex.
7905
7906         * icall.c: call mono_runtime_set_shutting_down before suspending the
7907         threads.
7908
7909         Fixes bug #74693. And now xsp is happier when exiting.
7910
7911 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
7912
7913         * loader.c (mono_stack_walk): Fix #74690.
7914
7915 2005-04-22  Martin Baulig  <martin@ximian.com>
7916
7917         * mono-debug.h (MonoDebugMethodJitInfo): Added
7918         `MonoDebugMethodJitInfo *jit'.
7919
7920         * mono-debug.c (mono_debug_read_method): Cache the
7921         MonoDebugMethodJitInfo in `address->jit'.
7922         (mono_debug_free_method_jit_info): New public method.
7923
7924 2005-04-22  Martin Baulig  <martin@ximian.com>
7925
7926         * class.c (mono_class_is_assignable_from): Disallow
7927         type parameter -> interface.
7928
7929 2005-04-21  Dick Porter  <dick@ximian.com>
7930
7931         * threads.c (mono_thread_create): Turn an assertion into an error.
7932
7933 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
7934
7935         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
7936         
7937         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
7938         Fix some gcc 4.0 warnings.
7939
7940 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
7941
7942         * file-io.c: fix alt dir separator char on unix systems
7943         and cleanup (fixes bug #71214).
7944
7945 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
7946
7947         * marshal.c: Use CALLVIRT instead of CALL when dispatching
7948         a call to a remote domain, since the method may be an
7949         interface method in the client domain. This fixes bug #74192.
7950
7951 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7952
7953         * threadpool.c: recv/send are now performed before going back to managed
7954         code to save one transition.
7955
7956 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7957
7958         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
7959
7960         * metadata/threadpool.c: removed hack to workaround the bug above.
7961
7962         Fixes bug #74618.
7963
7964 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
7965
7966         * reflection.c reflection.h: Fix handling of parameter defaults in
7967         dynamic methods. Also fixes handling of parameter attributes.
7968         Fixes #74609.
7969
7970         * mono-debug.c (mono_debug_close_image): Fix warning.
7971
7972 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7973
7974         * socket-io.h: replaced old unused field with new 'blocking'.
7975         * threadpool.c: restore socket blocking state on windows(tm).
7976
7977 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
7978
7979         * icall.c: don't return the codebase in the AssemblyName[] returned by
7980         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
7981         * object-internals.h: Removed FIXME (fields were presents) and fixed
7982         versioncompat declaration.
7983
7984 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7985
7986         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
7987         not closed, so don't cleanup when it happens.
7988
7989 2005-04-13  Chris Toshok  <toshok@ximian.com>
7990
7991         * mono-debug-debugger.h: change prototype for
7992         mono_debugger_lookup_type.
7993
7994         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
7995         this function, although it should probably be named
7996         mono_debugger_init_type.
7997
7998 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7999
8000         * threadpool.c: fix non-AIO case.
8001
8002 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
8003
8004         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
8005         the built-in profiler to measure just JIT compilation times.
8006
8007 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8008
8009         * threadpool.c: the epollfd might be closed by another thread at
8010         any time, so ignore EBADF at treat it as a "we're closing" sign.
8011
8012 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8013
8014         * threadpool.c: release the semaphores with a count equals to the number
8015         of working threads in both IO and regular pools. Fixed typo that messed
8016         up the count of IO pool threads. Don't initialize the pipe handles if
8017         we're using epoll.
8018
8019 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8020
8021         * threadpool.c: some systems don't like a NULL when deleting the socket
8022         from epoll.
8023
8024 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8025
8026         * threadpool.c: fix semaphore allocation.
8027
8028 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8029
8030         * threadpool.c: added epoll() based implementation for asynchronous IO
8031         that is used instead of the default poll() when available.
8032         It can be disabled by setting MONO_DISABLE_AIO.
8033
8034 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8035
8036         * threadpool.c: windows needs 'closesocket' and instead of returning
8037         0 when the stream is closed while in select, it returns -1. Fixes bug
8038         #74573.
8039
8040 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
8041
8042         * class.c (class_compute_field_layout): Fix the regression caused by
8043         the previous try.
8044
8045 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8046
8047         * threadpool.c: separate pool for socket async. IO.
8048         * threadpool.h: mono_max_worker_threads is not a global any more.
8049
8050 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
8051
8052         * class.c (class_compute_field_layout): Fix #74549.
8053
8054 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8055
8056         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
8057         use 2 connected sockets instead.
8058
8059 2005-04-08  Miguel de Icaza  <miguel@novell.com>
8060
8061         * mono-config.c: Add new entry point for mkbundle
8062         mono_config_parse_memory. 
8063
8064 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8065
8066         * threadpool.c: removed another unused function.
8067
8068 2005-04-08  Ankit Jain  <radical@corewars.org>
8069
8070         * reflection.c (get_default_param_value_blobs): Add 'types'
8071         parameter to get the types encoded in the constant table.
8072         (mono_param_get_objects): Use the type from the constant table,
8073         not the type of the parameter, when creating default values.
8074         Handle null default values correctly.
8075
8076 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8077
8078         * file-io.c:
8079         * file-io.h:
8080         * threadpool.c:
8081         * threadpool.h:
8082         * icall.c:
8083         * socket-io.c: removed dead code for async IO.
8084
8085 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8086
8087         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
8088
8089         * threadpool.c: intercept socket async. calls and pass them to a thread
8090         that is polling and dispatching the job items to the threadpool as
8091         socket become ready. Fixes bugs #71217, #71933.
8092
8093         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
8094         between char and short/ushort arrays.
8095
8096         * socket-io.c: remove dead code.
8097
8098 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
8099
8100         * locales.c,
8101           icall.c : removed InternalToUpper_Comp() and
8102           InternalToLower_Comp().
8103
8104 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
8105
8106         * char-conversions.h : The tables were incorrectly generated. Should
8107           be generated against invariant culture.
8108
8109 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
8110
8111         * object.c (mono_runtime_invoke_array): Fix return value when 
8112         passing pre-created valuetype objects to ctors.
8113
8114         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
8115         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
8116         Fixes #74338.
8117
8118 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
8119
8120         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
8121         only used with --security and hides the wrong corlib version error.
8122
8123 2005-03-30  Joshua Tauberer  <tauberer@for.net>
8124
8125         * class.c: Changed mono_class_name_from_token so that types
8126         outside of a namespace don't have an initial period.  Improved
8127         the g_warning message used in _mono_class_get when loading
8128         fails.
8129         * assembly.c: In mono_assembly_load_reference, when an assembly
8130         can't be found, "No such file or directory" is misleading and
8131         unhelpful because a few paths were checked for the presence of
8132         the assembly.  When that happens (ENOENT), display a nicer
8133         message indicating the directories that were searched.  In all
8134         cases, the warning is made easier to read for non-hackers.
8135
8136 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
8137
8138         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
8139         project/solution.
8140         * appdomain.h|domain.c: Removed inline from functions.
8141         * appdomain.c: Reduced warnings when compiling on windows.
8142         * icall.c: Fixed output_debug declaration to gunichar2*.
8143         * mono-config.c: Reduced warnings when compiling on windows.
8144         * rand.c: Added missing "windows.h". Added missing return value.
8145         * rawbuffer.c: Added missing winsock2.h for windows.
8146         * sysmath.h: Added mono-compiler.h header to allow/ease 
8147         compilation with non-GCC compilers.
8148         * threads.c: Fixed declarations to compile with VS.NET C compiler.
8149         Removed cast warnings.
8150
8151         Adapted from the work of J Lothian (for VC6).
8152
8153 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
8154
8155         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
8156         from default_path.
8157
8158 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
8159
8160         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
8161         the 2.0 profile.
8162
8163 2005-03-27  Raja R Harinath  <harinath@gmail.com>
8164
8165         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
8166         has to be in $(exec_prefix).  $(prefix) is for arch-independent
8167         stuff, and it would probably use $(prefix)/share rather than
8168         $(prefix)/lib.
8169
8170 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8171
8172         * console-io.c: added 2 includes that might be missing.
8173
8174 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
8175
8176         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
8177         profile.
8178
8179         * reflection.c (create_custom_attr): Allocate the params array using
8180         alloca so it gets GC tracking.
8181
8182 2005-03-23  Chris Toshok  <toshok@ximian.com>
8183
8184         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
8185         out some spew.
8186
8187 2005-03-24  Raja R Harinath  <rharinath@novell.com>
8188
8189         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
8190         changes to pick up any changes in prefix, etc.
8191
8192 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
8193
8194         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
8195         
8196         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
8197         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
8198
8199 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
8200
8201         * class-internals.h object-internals.h class.c reflection.c: Extend the
8202         mono_lookup_dynamic_token () function to return the class of the
8203         token as well. 
8204
8205         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
8206         well. Fixes #73848.
8207
8208 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
8209
8210         * security-manager.c: Skip inheritance checks for intra-corlib
8211         class inheritance and method overrides. This skips a lot of checks
8212         and (anyway) permissions cannot work until corlib is loaded.
8213
8214 2005-03-23  Martin Baulig  <martin@ximian.com>
8215
8216         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
8217         MONO_TYPE_GENERICINST.  
8218
8219 2005-03-23  Martin Baulig  <martin@ximian.com>
8220
8221         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
8222
8223 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8224
8225         * class.c: added locking comments to some functions.
8226         Cache the interface offsets arrays (saves about 20 KB
8227         of runtime memory in a typical app).
8228         Reduce the time overhead in mono_class_setup_supertypes ().
8229
8230 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
8231
8232         * icall.c: speedup and fix leaks in GetMethodsByName and
8233         GetPropertiesByName.
8234
8235 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8236
8237         * reflection.c: some locking fixes.
8238
8239 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
8240
8241         * metadata.c: added missing break in case statement.
8242
8243 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
8244
8245         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
8246         typedbyref return values. Fixes #73941.
8247
8248 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
8249
8250         * security-manager.c|h: Added demandunmanaged method and 
8251         suppressunmanagedcodesecurity class to MonoSecurityManager.
8252         Renamed aptc class to allowpartiallytrustedcallers.
8253
8254 2005-03-17  Martin Baulig  <martin@ximian.com>
8255
8256         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
8257
8258 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8259
8260         * file-io.c: disabled file async. IO using aio_*. It uses the
8261         threadpool now. Workaround for bug #73718.
8262
8263 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8264
8265         * assembly.h, mono-config.c: added code to deal with bundled configs
8266         for bundled assemblies.
8267
8268 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
8269
8270         * *.c, private.h: cleanup, removing old private.h header file.
8271
8272 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
8273
8274         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
8275         and throw_on_unmappable_char attributes.
8276
8277 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
8278
8279         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
8280         _ProcessName_internal.
8281
8282 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
8283
8284         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
8285         #73631.
8286
8287         * icall.c threads.c threads-types.h: Remove slothash icalls as they
8288         are no longer used.
8289
8290 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
8291
8292         * object.c (compute_class_bitmap): Add support for generics. Fixes
8293         #73527.
8294
8295 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
8296
8297         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
8298
8299 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8300
8301         * filewatcher.c: commented out the code for windows watcher, as we don't
8302         use it (we use the managed implementation instead).
8303
8304 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
8305
8306         * object-internals.h (MonoThread): Remove 'unused1' field.
8307
8308         * appdomain.c: Bump corlib version.
8309
8310         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
8311
8312         * reflection.c (mono_reflection_create_runtime_class): Remove the
8313         AssemblyBuilder.Save optimization since it causes too many problems.
8314
8315 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
8316
8317         * exception.c|h: Added mono_get_exception_reflection_type_load to
8318         create a ReflectionTypeLoadException object.
8319         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
8320         to return NULL is a InheritanceDemand fails during reflection. Updated
8321         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
8322         ReflectionTypeLoadException if an InheritanceDemand fails during 
8323         reflection. Added icall mapping for GetLinkDemandSecurity.
8324         * security-manager.c|h: Added ves_icall_System_Security_
8325         SecurityManager_GetLinkDemandSecurity internal call to return the
8326         class and methods permissions set for a LinkDemand. Removed unused
8327         fields in MonoSecurityManager.
8328
8329 2005-03-10  Martin Baulig  <martin@ximian.com>
8330
8331         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
8332         it's a generic instance.
8333
8334 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
8335
8336         * reflection.c (mono_get_object_from_blob): Applied patch from
8337         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
8338
8339         * class.c (mono_class_is_assignable_from): Another try at fixing 
8340         #73469 without breaking anything.
8341
8342 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
8343
8344         * class.c: (mono_class_is_assignable_from): Revert the last changes
8345         since they don't work with generics.
8346         
8347         * class.c (mono_class_is_assignable_from): Fix build bustage.
8348
8349         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
8350         the managed IsAssignableFrom method. Fixes #73469.
8351
8352         * reflection.c (mono_reflection_call_is_assignable_from): New helper
8353         function.
8354
8355 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
8356
8357         * object.c (mono_load_remote_field_new): Fix returning uninitialized
8358         memory when the remoting callback does not sets the out arguments.
8359         Fixes #73007.
8360
8361         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
8362         by mistake.
8363
8364         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
8365
8366         * object-internals.h (MonoStackFrame): Sync with managed object layout.
8367
8368         * appdomain.c: Bump corlib version.
8369
8370 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
8371
8372         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
8373         function.
8374
8375         * threads.c (mono_thread_attach): Detect threads which are not started
8376         by the GC pthread wrappers.
8377
8378 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
8379
8380         * icall.c: Added new icall for RNG.
8381         * rand.c|h: Added new icall to open the RNG. This allows to share a 
8382         single handle on Linux to access /dev/urandom and fix #73183.
8383
8384 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
8385
8386         * object.c: setting the new vtable in a transparent proxy object must
8387         not change the GC descriptor.
8388
8389 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8390
8391         * object.c: fixed compilation without GCJ support.
8392         * reflection.c: for runtime-created types ensure klass->has_references
8393         is correct (bug #73215).
8394
8395 2005-03-02  Martin Baulig  <martin@ximian.com>
8396
8397         * class.c (mono_class_is_assignable_from): Make this work if
8398         `oklass' is a generic instance; fixes #72831.
8399
8400 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
8401
8402         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
8403         with hasthis set.
8404         
8405         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
8406
8407         * marshal.c: Reorganize native->managed marshalling code to also use
8408         the emit_marshal_... functions.
8409
8410 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
8411
8412         * object.c: typed allocs have issues with bitmap sizes > 30,
8413         so check for max_set >= 30.
8414
8415 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
8416
8417         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
8418         managed code. Fixes #73012.
8419
8420         * metadata.h (MonoMarshalSpec): Add elem_mult field.
8421
8422         * metadata.c reflection.c: Load/Emit elem_mult as well.
8423         
8424         * metadata.h (MonoMarshalSpec): Add comment.
8425
8426         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
8427
8428         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
8429         num_elem to -1 if not given.
8430
8431         * object-internals.h (MonoReflectionMarshal): Add has_size field.
8432
8433         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
8434         given values.
8435
8436 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
8437
8438         * null-gc.c (mono_gc_free_fixed): Was not compilable.
8439
8440 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
8441
8442         * reflection.c (encode_marshal_blob): Encode param_num field as well.
8443
8444         * object-internals.h (MonoReflectionMarshal): Add param_num field.
8445
8446 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
8447
8448         * object.c: generalized the reference bitmap creation
8449         and added hooks for the new GC.
8450         * class-internals.c: removed the gc_bitmap field from MonoClass.
8451
8452 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8453
8454         * domain.c: help the compiler to produce better code
8455         in mono_jit_info_table_find ().
8456
8457 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
8458
8459         * object.c: make all allocations look typed.
8460
8461 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8462
8463         * socket-io.c: load Mono.Posix if it's not loaded already
8464         (fixes bug#73033).
8465
8466 2005-02-24  Martin Baulig  <martin@ximian.com>
8467
8468         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
8469         * reflection.c (dup_type): Likewise.
8470
8471 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
8472
8473         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
8474         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
8475
8476 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
8477
8478         * domain.c, threads.c, object-internals.h: make the critical thread
8479         local vars use the fast access mode (even when we're compiled in
8480         a lib). Provide accessors to be used by the jit during codegen.
8481
8482 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8483
8484         * appdomain.c: Changed hook functios behavior to include
8485         support for the reflection only assemblies. Some icalls were changed
8486         to support the mentioned assemblies too. Signatures of static methods
8487         try_assembly_resolve and real_load now have an additional parameter:
8488         refonly.
8489
8490         * assembly.c: General changes to mono_assembly_ methods to support
8491         reflection only api. Functions mono_assembly_open, mono_assembly_load,
8492         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
8493         suffix, to support an additional gbool parameter to specify whether
8494         the assembli is reflection only or not. Created some new hook functions 
8495         to add support for reflection only assemblies. Signatures of static 
8496         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
8497         have now an additional parameter: refonly.
8498
8499         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
8500         indicating whether the assembly is reflection only or not.
8501
8502         * exception.c: Add mono_get_exception_invalid_operation.
8503
8504         * icall.c: Throw an InvalidOperationException when trying to invoke
8505         a property/method/event, or trying to set/get the value of a field.
8506         Also add an icall to retrieve the ref_only flag to the
8507         MonoReflectionAssembly.
8508
8509 2005-02-23  Chris Toshok  <toshok@ximian.com>
8510
8511         Part of fix for #72827.
8512         * mono-debug.c (mono_debug_add_method): add lexical block data to
8513         the info we write.  Kind of a hack at the moment - we copy the
8514         lexical block info from the MonoDebugMethodInfo to the
8515         MonoDebugMethodJitInfo here, before writing it.
8516         (mono_debug_read_method): read the lexical block info.
8517
8518         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
8519
8520         * debug-mono-symfile.h: add lexical block support.
8521
8522         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
8523         support.
8524
8525 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
8526
8527         * loader.c (mono_lookup_pinvoke_call): Fix warning.
8528
8529         * object.c (mono_runtime_free_method): Call mono_free_method () and
8530         put the TODOs there.
8531
8532         * loader.c (mono_free_method): Free up most memory allocated for 
8533         dynamic methods.
8534
8535 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
8536
8537         * reflection.c: properly flag a Type argument to a
8538         named custom attr value (bug #72248).
8539
8540 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
8541
8542         * reflection.c: reduce code duplication in named custom
8543         attribute encoding.
8544
8545 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
8546
8547         * reflection.c: properly encode custom attrs of type object
8548         (bug #72649).
8549
8550 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
8551
8552         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
8553
8554 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
8555
8556         * socket-io.c: load System.dll if it's not loaded already
8557         (bug #72850 and #70477).
8558
8559 2005-02-21  Martin Baulig  <martin@ximian.com>
8560
8561         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
8562         generic instances.
8563
8564 2005-02-21  Martin Baulig  <martin@ximian.com>
8565
8566         * reflection.c (mono_image_build_metadata): We also need to
8567         "fixup" the MethodImpl table after we computed the final method
8568         indices.  Call fixup_methodimpl() to do that.
8569         (fixup_methodimpl): New private method.
8570
8571 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
8572
8573         * assembly.c: special case mscorlib.dll (bug#72536),
8574         patch from Carlos Alberto Cortez.
8575
8576 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
8577
8578         * threads-types.h threads.c: Fix build bustage.
8579
8580         * threads.c: Use a union for long<->double conversions.
8581
8582         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
8583         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
8584
8585         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
8586         containing the checkpoint call with NOT_TAKEN.
8587         
8588         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
8589         checkpoint before pushing the arguments, so they won't have to be
8590         spilled to stack.
8591
8592 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8593
8594         * domain.c, assembly.c, domain-internals.h: make some data
8595         const and relocation-free.
8596
8597 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
8598
8599         * object.c, appdomain.c, class-internals.h: introduce the
8600         MonoClassRuntimeInfo structure to hold the info needed to
8601         use a class at runtime. Made mono_class_vtable() lock-free
8602         for all the appdomains.
8603
8604 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
8605
8606         * metadata-internals.h, image.c: introduce a per-image mempool to
8607         be used for memory that has the same lifetime as the image.
8608
8609 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
8610
8611         * domain.c: In mono_init_internal(), instead of selecting the first
8612         runtime version supported by an executable, get a list of all
8613         supported versions and select the one for which an mscorlib exists
8614         (since even if the runtime supports a given version, it doesn't mean
8615         that the framework for that version is installed).
8616         Modified get_runtimes_from_exe to support this behavior.
8617         In supported_runtimes, added information about additional system
8618         assembly versions.
8619         
8620         * assembly.c: Added support for more than one system assembly version
8621         per runtime version. Updated the assembly list.
8622         In mono_assembly_remap_version, removed the initial version check,
8623         since we don't know to which version we need to compare until we
8624         get the version set on which the assembly is based.
8625         Moved the code for loading corlib into the new method
8626         mono_assembly_load_corlib(), so it can be used by the initialization
8627         code.
8628         
8629         * domain-internals.h: Updated data structures and added declaration
8630         for mono_assembly_load_corlib.
8631
8632 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
8633
8634         * reflection.c (resolve_object): Fix the creation of the signature in 
8635         the SignatureHelper case.
8636
8637         * assembly.c (mono_assembly_remap_version): Fix binary search.
8638         
8639 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
8640  
8641         * class.c: Added inheritance check when a method is overloaded (from a
8642         virtual method or when implementing an interface) and when a class is
8643         inherited. Added functions to set a failure for a class and to 
8644         retreive the exception from a failure.
8645         * class-internals.h: Added fields to MonoClass to keep the exception
8646         information status for inheritance (or other exceptions) to be thrown
8647         later (i.e. not at load time).
8648         * object.c: Throw the inheritance SecurityException when a type is to 
8649         be created with either class or method inheritance violations.
8650         * reflection.c|h: Fix when getting declsec from a class. Removed 
8651         unrequired code for class. Improved sanity in parameter naming.
8652         * security-manager.c|h: Added functions to check for class and method
8653         inheritance.
8654
8655 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
8656
8657         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
8658         and has_finalize in dynamic types as well.
8659
8660 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
8661
8662         * culture-info-table.h : fixed currency format for en-GB (and so on).
8663
8664 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
8665
8666         * gc.c: ensure the GC handles never have 0 as a value.
8667
8668 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
8669
8670         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
8671         a pointer to a struct to unmanaged code. Fixes #72625.
8672
8673 2005-02-16  Martin Baulig  <martin@ximian.com>
8674
8675         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
8676
8677 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
8678
8679         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
8680
8681 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
8682
8683         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
8684
8685         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
8686         UnmanagedFunctionPointerAttribute, use it for determining calling convention
8687         etc. Fixes #71471.
8688
8689         * reflection.c (mono_custom_attrs_get_attr): New helper function.
8690
8691         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
8692
8693 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
8694
8695         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
8696         changes to make the current context a field in MonoThread.
8697
8698 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
8699
8700         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
8701         the last change.
8702         
8703         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
8704         extracted from mono_marshal_get_native_wrapper.
8705
8706         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
8707         to create wrappers around native functions.
8708
8709         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
8710         delegates for arbitrary function pointers. Fixes #71472.
8711
8712 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
8713
8714         * threads.c: cleaned up the code a little.
8715
8716 2005-02-15  Martin Baulig  <martin@ximian.com>
8717
8718         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
8719         the data table.
8720
8721         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
8722         allocate larger chunks if needed.
8723
8724 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
8725
8726         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
8727         in by mistake.
8728
8729 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
8730
8731         * domain.c: keep the domains in an array and ensure the domain ids
8732         are kept small, so they can be used as indexes to domain-specific data
8733         with a small memory overhead.
8734
8735 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
8736
8737         * icall.c: Handle byref types in Type icalls. Fixes #72544.
8738
8739 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
8740
8741         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
8742
8743 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
8744
8745         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
8746
8747         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
8748         values.
8749
8750         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
8751         
8752 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
8753
8754         * domain-internals.h: add the hashtable here.
8755
8756         * class-internals.h: Remove `info' from MonoMethod
8757
8758         * domain.c: Add a new hashtable, jit_trampoline_hash
8759
8760 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
8761
8762         * object.c: don't set the value of static fields
8763         (fixes bug#72494).
8764
8765 2005-02-11  Martin Baulig  <martin@ximian.com>
8766
8767         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
8768         (mono_debug_add_method): Silently ignore the method if it's too big.
8769         (mono_debug_add_type): Likewise.
8770
8771 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
8772
8773         * threads.c, appdomain.c: remove #ifdefs from the code.
8774
8775 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
8776
8777         * metadata-internals.h: Added flags to MonoAssembly to cache the most
8778         common security informations. This allows us to stay in unmanaged code
8779         when doing LinkDemand and it's special cases (except for the first 
8780         time for initialization). The flags a very much used with --security.
8781         * reflection.c|h: Added code to get declarative security attributes 
8782         for LinkDemand and InheritanceDemand. This required to refactor the
8783         existing code for Demand.
8784         * security-manager.c|h: Added new method fields for the special cases
8785         of LinkDemand.
8786
8787 2005-02-10  Martin Baulig  <martin@ximian.com>
8788
8789         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
8790         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
8791
8792 2005-02-10  Martin Baulig  <martin@ximian.com>
8793
8794         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
8795         debugging code; this is almost a complete rewrite.
8796
8797         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
8798
8799 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8800
8801         * domain.c, object.h: expose mono_string_equal () and 
8802         mono_string_hash ().
8803         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
8804         it's implemented in managed code.
8805
8806 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8807
8808         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
8809         lo leak objects between appdomains.
8810
8811 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8812
8813         * assembly.c: old compilers compilation fix from 
8814         robertj@gmx.net (Robert Jordan).
8815
8816 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
8817
8818         * class-internals.h: Little reminder for the future.
8819
8820         * debug-helpers.c: Fix up wrapper_type_names
8821
8822 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8823
8824         * image.c, metadata-internals.h: when loading an image from a file,
8825         mmap all of it and use the same codepaths as when using a
8826         in-memory image: the code is simpler and we use less memory
8827         (both writable and readonly).
8828
8829 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
8830
8831         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
8832         API to alloc runtime data structures that need to be tracked by the
8833         GC and contain pointers.
8834         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
8835         make the code more readable and eventually use a different GC.
8836
8837 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
8838
8839         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
8840         for out arguments.
8841         
8842 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
8843
8844         * object.c: In release_type_locks(), don't release the cctor lock
8845         if it has already been released. This fixes a crash in the
8846         thread5 test.
8847
8848 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8849
8850         * gc.c, marshal.c, icall.c: register a delegate for finalization
8851         only when the native function pointer has been allocated for it.
8852
8853 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
8854
8855         * object.c: cleaned up some code, allocate objects that are
8856         pointer free with the atomic malloc variant. Allocate memory
8857         for static data from the mempool if it's pointer-free.
8858         Allocate the bounds array at the end of the array data, when needed.
8859         * object-internals.h, object.h: move a private function in a private
8860         header.
8861         * class.c: handle missing case in tracking references in fields.
8862
8863 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
8864
8865         * class.c, class-internals.h: keep track if a type has
8866         reference fields in either the instance or static fields.
8867
8868 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
8869
8870         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
8871         and renamed to MonoRuntimeInfo. Added fields to store the expected
8872         framework assembly version. Changed mono_get_framework_version and
8873         mono_get_runtime_version for a single mono_get_runtime_info method.
8874         
8875         * assembly.c: Added method to remap system assembly versions to the
8876         current executing runtime version. Removed old mapping code.
8877         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
8878         
8879         * icall.c, reflection.c: Track api changes.
8880
8881 2005-02-06  Miguel de Icaza  <miguel@novell.com>
8882
8883         * loader.c (method_from_memberref): Improve error reporting,
8884         produce the class name instead of the typeref/typedef index. 
8885
8886 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
8887
8888         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
8889
8890 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8891
8892         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
8893         stdcall and charset name mangling.  Reorganize the code and add
8894         some tracing stuff.
8895
8896 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
8897
8898         * monodiet.c: More iters!
8899
8900         * marshal.c: Iter usage.
8901
8902         * icall.c: Iter usage.
8903
8904         * object.c: Use iters.
8905
8906         * debug-helpers.c: More iters
8907
8908 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8909
8910         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
8911         under win32.
8912
8913 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
8914
8915         * mono-debug-debugger.c: use iters
8916
8917         * class.c, class-internals.h: mono_class_setup_events is static
8918         now
8919
8920         * All callers: use iters
8921
8922 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8923
8924         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
8925         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
8926
8927 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
8928
8929         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
8930
8931         * marshal.h: Add prototypes for ldfld/stfld_remote.
8932
8933         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
8934         this is called during startup.
8935         
8936 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
8937
8938         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
8939         MonoThreadsSync struct private in monitor.c. Changed the way
8940         MonoThreadsSync is allocated so it's faster and there is no
8941         need to keep track of it with a finalizer and it uses less memory.
8942         This also finally allows us to allocate mono objects as ptrfree when
8943         there are no reference fields.
8944
8945 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
8946
8947         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
8948         disappearing link to the GC interface and use them to simplify
8949         the gchandles code.
8950
8951 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
8952
8953         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
8954         stfld_remote which call mono_load/store_field_new. This allows methods
8955         calling ldfld/stfld wrappers to be AOTed.
8956
8957         * console-io.c: Include sys/filio.h under solaris.
8958         
8959         * console-io.c: Include curses.h if needed correctly.
8960
8961 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
8962         
8963         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
8964         method->klass as well.
8965
8966         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
8967
8968         * class.c (mono_class_init): Switch on lazy initialization of 
8969         methods.
8970
8971         * class.c (mono_class_get_finalizer): Handle the case when the 
8972         finalizer is inherited.
8973
8974 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8975
8976         * console-io.c: <curses.h> is needed by term.h on solaris.
8977
8978 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
8979
8980         * icall.c, class-internals.h, monodiet.c, class.c: Remove
8981         mono_class_setup_properties where possible. Remove this ftn from
8982         the header file, and make it static.
8983
8984 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
8985
8986         * loader.c: Add missing setup_... call.
8987
8988         * class.c: Add missing setup_... calls.
8989
8990         * class.c (mono_class_init): Switch on lazy initialization of 
8991         the generic vtable.
8992         
8993         * class.c (mono_class_init): Fix generics broken by the recent changes.
8994
8995         * monodiet.c (handle_type): Add missing setup_... calls.
8996
8997         * class.c: Back out garbage in previous patch.
8998         
8999         * class.c: Add missing setup_... calls.
9000
9001         * class.c (mono_class_get_method_from_name_flags): Avoid calling
9002         mono_class_setup_methods () if possible.
9003
9004         * class-internals.h (MonoClass): Add 'has_cctor' flag.
9005
9006         * class-internals.h (MonoCachedClassInfo): New structure.
9007
9008         * class.c: Initialize properties and events fields of MonoClass lazily.
9009
9010         * class.c: Add infrastructure for lazily initializing the methods and
9011         vtable fields of MonoClass. Not yet used.
9012
9013         * class.c (mono_class_get_finalizer): New helper function.
9014
9015         * class.c: Add infrastructure for loading some class related data from
9016         an AOT file.
9017
9018         * object.c: Add infrastructure for initializing the vtable from data
9019         in the AOT file.
9020
9021         * gc.c (run_finalize): Use mono_class_get_finalizer ().
9022
9023         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
9024         appropriate initialization function before accessing parts of the
9025         MonoClass structure.
9026
9027         * marshal.c: Fix warnings.
9028         
9029         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
9030
9031         * mono-debug-debugger.c (get_exception_message): Use 
9032         mono_class_get_method_from_name_flags ().
9033
9034 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
9035
9036         * reflection.c, appdomain.c: Replace a few manual searches that
9037         Zoltan missed. (Paolo approved this part of my initial patch).
9038
9039 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
9040
9041         * profiler.c: disable recording statistical events at report time.
9042
9043 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
9044
9045         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
9046         to byteswap arrays of enum values, too (bug #72080).
9047
9048 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
9049
9050         * appdomain.c (set_domain_search_path): Allow this to be called if
9051         domain->setup is not yet set.
9052
9053         * loader.c (mono_method_get_index): New helper function.
9054
9055         * loader.c reflection.c: Use mono_method_get_index ().
9056
9057         * class.c (mono_class_get_method_from_name_flags): New helper method.
9058
9059         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
9060         this.
9061
9062         * class.c (mono_class_get_cctor): New helper method.
9063
9064         * string-icalls.c object.c class.c marshal.c reflection.c: Use
9065         mono_class_get_method () to look up methods.
9066
9067 2005-02-01  Miguel de Icaza  <miguel@novell.com>
9068
9069         * console-io.c: Fix the build, this should work on Windows.
9070
9071 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
9072
9073         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
9074         be set to null to keep things valid
9075
9076 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9077
9078         * icall.c: added Console 2.0 icalls.
9079         * Makefile.am: added console-io.[ch]
9080         * console-io.[ch]: internal calls for Console 2.0 API.
9081
9082 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
9083
9084         * class.c: make sure we consider all the interfaces
9085         when calculating max_interface_id (bug found by
9086         Jeroen Frijters running ikvm).
9087
9088 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
9089
9090         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
9091         valuetype fields to null.
9092
9093         * object.c (set_value): Ditto. Fixes #71669.    
9094
9095 2005-01-31  Martin Baulig  <martin@ximian.com>
9096
9097         * metadata.c (mono_metadata_has_generic_params): New public
9098         function; checks whether something is a generic method.
9099
9100 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
9101
9102         * appdomain.c: fix infinite recursion when adding assemblies.
9103
9104 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
9105
9106         * object.c: Fix small typo to return all items for Environment.
9107         GetCommandLineArgs.
9108
9109 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
9110
9111         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
9112         reflection.c: more domain and assembly-unload related fixes
9113         and memory leaks plugs.
9114
9115 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
9116
9117         * 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.
9118
9119 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
9120
9121         * loader.c (mono_method_signature): Make this method lazy
9122         (mono_get_method_from_token): Don't computate the signature here.
9123
9124         Doing this saves quite a bit of memory. I got 90 kb on starting up
9125         monodoc. It should also save some disk reads on startup.
9126
9127         * *: MonoMethod->signature might be NULL now. You *MUST* use
9128         mono_method_signature.
9129
9130 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
9131
9132         * object.c (mono_runtime_get_main_args): Return an array from the
9133         current domain here. Fixes #71938.
9134
9135 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
9136
9137         * monitor.c: formatting changes to comply with the
9138         mono coding style and remove #ifdefs from the code.
9139
9140 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
9141
9142         * metadata.c, private.h: remove some unneeded data
9143         and use a more compact representation for table schemas.
9144
9145 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
9146
9147         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
9148         to get a better distribution in hash tables.
9149         * *.c: use mono_aligned_addr_hash() where appropriate.
9150         * assembly.c: make var static.
9151
9152 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
9153
9154         * domain-internals.h: Put MonoJitInfo on a diet.
9155
9156         * domain.c: Fix a warning.
9157
9158 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9159
9160         * gc.c: rework the gc handles code to reuse handles
9161         when freed.
9162
9163 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
9164
9165         * domain.c: fixed long standing bug in mono_string_equal() which
9166         was brought to light with the ldstr changes.
9167
9168 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
9169
9170         * reflection.c: Remove warning by adding missing include for marshal.h
9171
9172 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
9173
9174         * domain.c, object.c: change the ldstr_table to hold
9175         MonoString* as keys: makes the runtime isinterned lookup
9176         faster and simplifies memory management.
9177
9178 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
9179  
9180         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
9181         possible to add imperative security checks before calling the icall.
9182         * reflection.c: Return security attributes on the original MonoMethod
9183         (and not the wrapped one). This fix permissions on icalls.
9184
9185 2005-01-25  Dick Porter  <dick@ximian.com>
9186
9187         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
9188         the check for mktime() support actually test the mktime() return
9189         value.  "Fixes" bug 71682, though the output is still different to
9190         MS.
9191
9192 2005-01-25  Martin Baulig  <martin@ximian.com>
9193
9194         * class.c (mono_class_is_assignable_from): Make this work for
9195         generic instances.
9196
9197 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
9198
9199         * marshal.c (mono_string_utf8_to_builder)
9200         (mono_string_builder_to_utf16): We might not have ownership of the
9201         string. In thise case, we need to create a new buffer.
9202
9203         * object-internals.h (mono_stringbuilder_capacity): sb->str might
9204         be null, in which case, use the default capacity.
9205
9206 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
9207
9208         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
9209         GC events to the profiler.
9210
9211 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
9212
9213         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
9214         if you don't want the GC to run.
9215
9216 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
9217
9218         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
9219         start providing a GC API and keeping different implementations in
9220         their own file.
9221         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
9222
9223 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
9224
9225         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
9226         mmap rather than allocating a huge buffer.
9227         (mono_debug_close_mono_symbol_file): Free the buffer allocated
9228         above.
9229
9230 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
9231
9232         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
9233         and CheckExecutionRights.
9234         * reflection.c|h: Keep the index of the declarative security to be 
9235         used, instead of the pointer, when AOT compiler is used. Also add 
9236         class initialization when requesting demands.
9237         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
9238         CheckExecutionRights. Both properties are now FALSE by default, and
9239         unmodifiable, unless the --security option is used.
9240
9241 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
9242
9243         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
9244         reflection.c: properly refcount images and assemblies, many leaks fixed.
9245
9246 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9247
9248         * threadpool.c: increase the timeout for threads in the thread pool to
9249         10s.  Fixes bug #67159.
9250
9251 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
9252
9253         * class-internals.h: Sun's compiler insists on explicit
9254         signed on bit fields to handle then correctly.
9255
9256 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
9257
9258         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
9259         Make the size of the array fit only the number of invalid path
9260         chars that we have.
9261
9262         * class.c (_mono_class_get): Improve the error reporting when a
9263         class referenced is not found, to assist debugging. 
9264
9265 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
9266
9267         * threads.c: fix off-by-one error.
9268         * domain.c: free data allocated in the domain.
9269
9270 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
9271
9272         * reflection.c (mono_method_body_get_object): Fill out exception info
9273         as well.
9274
9275         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
9276         structure.
9277         
9278 2005-01-19  Martin Baulig  <martin@ximian.com>
9279
9280         * loader.c (mono_get_method_constrained): Make this work again.
9281
9282 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
9283
9284         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
9285         guint16 to match the managed side.
9286
9287         * reflection.c (mono_reflection_body_get_object): Fill out local
9288         variables array.
9289
9290         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
9291         as well.
9292
9293         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
9294         'local_var_sig_token'.
9295
9296 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
9297
9298         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
9299         System.Drawing.
9300
9301         * reflection.c (mono_method_body_get_object): Handle abstract and
9302         runtime methods.
9303
9304 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
9305
9306         * marshal.c, loader.c, class-internals.h, reflection.c:
9307         store the emthod data for a wrapper in an array instead of a list.
9308
9309 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
9310
9311         * marshal.c: change the code to allocate memory more
9312         conservatively for method wrappers.
9313
9314 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
9315
9316         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
9317         fields from MonoClass to the marshal info structure where they belong.
9318
9319 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9320
9321         * class.c, object.c, class-internals.h, marshal.c: rearrange
9322         some fields and tweak some types to lower memory usage.
9323
9324 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
9325
9326         * threads.c (signal_thread_state_change): Handle the case when the
9327         target thread is the current thread.
9328
9329         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
9330
9331         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
9332         emit_ptr_to_object_conv. 
9333
9334         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
9335         marshalling. Fixes #71352.
9336
9337 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
9338
9339         * metadata.h, blob.h: move table enum to blob.h so it can be included
9340         in any header.
9341         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
9342         cut the size of MonoImage/MonoDynamicImage.
9343
9344 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
9345
9346         * profiler.c (mono_profiler_install_simple): Fix default arguments.
9347
9348 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
9349
9350         * reflection.c, reflection.h, icall.c: add a function to check
9351         if an attribute type is defined for a metadata object.
9352
9353 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
9354
9355         * object-internals.h: Added some needed fields from StringBuilder class.
9356         * marshal.c: Set the maxCapacity when creating a StringBuilder.
9357
9358 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
9359
9360         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
9361         threads before shutting down the runtime.
9362
9363         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
9364
9365 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
9366
9367         * object-internal.h, threads.c: implement stacksize and 
9368         parameterized thread start functionality (requires
9369         matching corlib). Marked broken code for later removal.
9370
9371 2005-01-12  Martin Baulig  <martin@ximian.com>
9372
9373         * class-internals.h (MonoGenericClass): Moved the `initialized'
9374         flag to MonoDynamicGenericClass, removed `init_pending'.
9375         (MonoGenericInst): Added `is_reference' flag.
9376
9377 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
9378
9379         * reflection.c (mono_image_create_pefile): Only set the pe_offset
9380         inside the MSDOS header. Fixes #71201.
9381
9382         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
9383         gc thread.
9384         (mono_domain_finalize): Ditto.
9385
9386 2005-01-12  Martin Baulig  <martin@ximian.com>
9387
9388         * class.c (mono_get_shared_generic_class): Use the cache for
9389         non-dynamic generic classes.
9390
9391         * class-internals.h (mono_class_create_generic_2): Removed
9392         function prototype, this function is now static inside class.c.
9393
9394         * class.c (mono_class_create_generic_2): Made this static, only
9395         call it from mono_class_init() and mono_class_setup_parent().
9396         (collect_implemented_interfaces_aux): Call mono_class_init() on
9397         the interfaces we collect.
9398         (mono_class_setup_vtable): Call mono_class_init (class->parent).
9399
9400 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
9401
9402         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
9403         it a real thread handle.
9404
9405         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
9406         MonoJitExceptionInfo, since each catch clause needs its own variable.
9407         
9408 2005-01-11  Dick Porter  <dick@ximian.com>
9409
9410         * image.c (mono_pe_file_open): New variant on mono_image_open()
9411         that does not set up the CLI metadata; used for FileVersionInfo so
9412         it can get the data for windows binaries too.
9413         
9414         * process.c (process_read_string_block): Don't read off the end of
9415         the StringTable block.
9416
9417         These both fix bug 70766.
9418
9419 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
9420
9421         * gc.c: set some fields to NULL at GC cleanup time.
9422         * threads.c: if we quit the main thread, call exit ().
9423
9424 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
9425
9426         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
9427
9428 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
9429
9430         * threads.h, threads.c, object.c: added accessor and settor for
9431         main_thread. Handle it specially when exiting from it: wait
9432         for other foreground threads to exit.
9433
9434 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
9435
9436         * process.c, verify.c: remove some bloat.
9437
9438 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
9439
9440         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
9441         the calling convention to cdecl under win32.
9442
9443 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
9444
9445         * object.c (mono_object_get_size): New function to get the size of
9446         an object instance.
9447
9448         * profiler.c (simple_allocation): Use above.
9449
9450 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
9451
9452         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
9453         ves_icall_System_AppDomain_getRootDomain (as it's not required to
9454         get an appdomain by it's id and we can't assume the root's id is 0).
9455         * domain-internals.h: Change the function prototype to match.
9456         * icall.c: Change the icall table for AppDomain.
9457
9458 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
9459
9460         * locales.c (string_invariant_compare_char): Only compute
9461         GUnicodeTypes in the case where we need them.  Test for ordinality
9462         first and return if so.
9463
9464         From the commit:
9465
9466                 /*
9467                  * FIXME: here we must use the information from c1type and c2type
9468                  * to find out the proper collation, even on the InvariantCulture, the
9469                  * sorting is not done by computing the unicode values, but their
9470                  * actual sort order.
9471                  */
9472
9473 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
9474
9475         * loader.c: for P/Invoke methods, allow the "Internal" shared
9476         library name to refer to the calling process symbol namespace.
9477
9478 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
9479
9480         * Makefile.am: Add the security manager to the build.
9481         * security-manager.c|h: New. Initialization of the security manager.
9482
9483 2005-01-07  Dick Porter  <dick@ximian.com>
9484
9485         * threads.c: 
9486         * monitor.c: Update thread state during Monitor and WaitHandle
9487         waits.  Fixes bug 71031.
9488
9489 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
9490
9491         * reflection.c (property_encode_signature): Correctly handle when the
9492         property has no methods.
9493
9494 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
9495
9496         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
9497         
9498         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
9499         fields from mb, not rmb. Fixes #71017.
9500
9501         * marshal.c (emit_ptr_to_str_conv): Add support for 
9502         ByValTStr -> string conversion. Fixes #71015.
9503
9504         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
9505
9506         * mempool.c (mono_mempool_contains_addr): New helper function.
9507
9508 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
9509
9510         * metadata.c (mono_metadata_compute_size): Fix size calculation of
9511         HasSematics encoded fields.
9512         
9513         * metadata.c (mono_type_to_unmanaged): Improve error message for 
9514         invalid string marshalling.
9515
9516         * metadata.c: Fix warnings.
9517         
9518 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
9519
9520         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
9521         profiler support.
9522
9523 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
9524
9525         * domain.c object.c domain-internals.h: Revert part of r38077 since the
9526         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
9527         tests.
9528
9529 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
9530
9531         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
9532         so methods containing these can be AOTed.
9533
9534 2005-01-03  Martin Baulig  <martin@ximian.com>
9535
9536         * loader.c (find_method): Removed the hack for generic instances.
9537         (method_from_memberref): If our parent is a generic instance, pass
9538         its generic type definition to find_method() and then inflate the
9539         method.
9540         (mono_get_method_constrained): Pass the generic type definition to
9541         find_method() and inflate the method later.
9542
9543         * class-internals.h (MonoStats): Added `generic_class_count'.
9544
9545         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
9546         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
9547
9548         * reflection.c (mono_custom_attrs_from_params): Don't ignore
9549         generic type definitions.
9550
9551 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
9552
9553         * loader.c icall.c: Fix warnings.
9554
9555 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
9556
9557         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
9558         blittable types. Fixes #70864.
9559
9560 2004-12-29  Martin Baulig  <martin@ximian.com>
9561
9562         * icall.c
9563         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
9564
9565         * reflection.c (mono_method_get_object): Create a
9566         "System.Reflection.MonoGenericMethod" for inflated methods; don't
9567         call mono_get_inflated_method().
9568
9569         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
9570
9571 2004-12-27  Martin Baulig  <martin@ximian.com>
9572
9573         * class-internals.h (MonoMethod): Added `is_inflated' flag.
9574         (MonoMethodInflated): Added `inflated' field.
9575
9576         * class.c (mono_class_inflate_generic_method): Don't really
9577         inflate the method here; just set the `is_inflated' flag in the
9578         MonoMethod.
9579         (mono_class_get_inflated_method): Actually inflate the method here
9580         if it's not already inflated; we use the MonoMethodInflated's new
9581         `inflated' field as a cache.
9582
9583 2004-12-26  Martin Baulig  <martin@ximian.com>
9584
9585         * class.c
9586         (inflate_generic_class): Moved some code out of inflate_generic_type().
9587         (mono_class_inflate_generic_method): If we're already inflated,
9588         inflate the context and use the declaring method; ie. make sure
9589         the declaring method of an inflated method is always the generic
9590         method definition.
9591         (mono_class_create_from_typedef): Create
9592         `class->generic_container->context->gclass'.
9593
9594 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
9595
9596         * metadata-internals.h, marshal.c, reflection.c: More
9597         MonoGHashTable->GHashTable.
9598
9599         * domain-internals.h, class.c: Change MonoGHashTable's into
9600         GHashTables for some cases where no gc stuff is used
9601
9602         All users: update apis
9603
9604 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
9605
9606         * metadata.c (builtin_types): Make this `const'. Makes this get
9607         put into the shareable section.
9608         (mono_metadata_init): Casts to make gcc happy.
9609
9610 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
9611
9612         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
9613
9614 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
9615
9616         * icall.c: Added an internal call to retrieve the position and length
9617         of assembly-level declarative security attributes (RequestMinimum, 
9618         RequestOptional and RequestRefuse). This is used by the Assembly class
9619         to re-create the corresponding permission sets.
9620
9621 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
9622
9623         * marshal.c: fix the stelemref wrapper to be type correct
9624         (and faster).
9625
9626 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
9627
9628         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
9629         to do key & 0x7fffffff. Hashtable already does this. It just
9630         results in longer code.
9631
9632 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
9633
9634         * appdomain.c: Bump corlib version.
9635         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
9636         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
9637         * reflection.c|h: Add functions to get declarative security infos
9638         (blob position and length) for assemblies, classes and methods.
9639
9640 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
9641
9642         * reflection.c: sort the constant table (bug #70693).
9643
9644 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
9645
9646         * object-internals.h, threads.c, domain.c: add accessors for
9647         the MonoThread and MonoDomain tls keys.
9648
9649 2004-12-18  Martin Baulig  <martin@ximian.com>
9650
9651         * class.c (inflate_generic_type): If we're inflating a generic
9652         instance, set `ngclass->context->container = context->container';
9653         ie. the container we inflated into.
9654
9655         * metadata.c (mono_metadata_parse_generic_param): Reflect above
9656         inflate_generic_type() changes.
9657
9658 2004-12-17  Martin Baulig  <martin@ximian.com>
9659
9660         * class-internals.h
9661         (MonoGenericClass): Replaced `MonoType *generic_type' with
9662         `MonoClass *generic_class'.  Removed `dynamic_info'; if
9663         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
9664         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
9665
9666 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
9667
9668         * exception.c (mono_exception_from_token): New helper function.
9669
9670 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
9671
9672         * assembly.c (mono_assembly_load_with_partial_name): Call 
9673         mono_assembly_loaded before invoking the preload hooks. Fixes
9674         #70564.
9675
9676         * object-internals.h (MonoThread): Change culture_info and 
9677         ui_culture_info into an array.
9678
9679         * threads.c: Cache culture info objects from more than one appdomain.
9680
9681         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
9682         current UI culture.
9683
9684 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
9685
9686         * threads.h threads.c appdomain.c: Clear the culture_info field of
9687         all threads during unloading if they point to an object in the dying
9688         appdomain.
9689
9690 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
9691
9692         * culture-info.h (TextInfoEntry): New struct
9693         * object-internals.h: sync with managed
9694         * locales.c: fill the `text_info_data' field
9695         * culture-info-tables.h: update
9696
9697 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
9698
9699         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
9700         collector.
9701
9702 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
9703
9704         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
9705         (ves_icall_ModuleBuilder_getMethodToken): Ditto
9706
9707 2004-12-12  Martin Baulig  <martin@ximian.com>
9708
9709         * mono-debug-debugger.c (write_type): If we're an enum and the
9710         builtin types have already been initialized, call mono_class_init().
9711
9712 2004-12-11  Martin Baulig  <martin@ximian.com>
9713
9714         * metadata.c (mono_metadata_load_generic_params): Added
9715         `MonoGenericContainer *parent_container' argument; automatically
9716         compute `container->is_method'; pass the correct owner to
9717         get_constraints().      
9718
9719         * reflection.c (compare_genericparam): Sort the GenericParam table
9720         according to increasing owners. 
9721
9722 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
9723
9724         * profiler.c: allow disabling the default profiler.
9725
9726 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
9727
9728         * decimal.c, icall.c: allow disabling System.Decimal support.
9729
9730 2004-12-09  Marek Safar <marek.safar@seznam.cz>
9731
9732         * reflection.c: Add support for null attribute arguments.
9733
9734 2004-12-09  Martin Baulig  <martin@ximian.com>
9735
9736         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
9737         names to get rid of compiler warnings.
9738
9739 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
9740
9741         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
9742         mono_marshal_load_type_info (). Fixes #69625.
9743         (mono_marshal_get_ptr_to_struct): Likewise.
9744
9745 2004-12-08  Martin Baulig  <martin@ximian.com>
9746
9747         * mono-debug.h: Bumped version number to 47.
9748
9749         * mono-debug-debugger.c
9750         (mono_debugger_event_handler, mono_debugger_event): Take two
9751         guint64 arguments insteed of a gpointer and a guint32.  
9752
9753 2004-12-08  Martin Baulig  <martin@ximian.com>
9754
9755         * debug-mono-symfile.h
9756         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
9757         `address' to `native_offset'.
9758
9759 2004-12-08  Martin Baulig  <martin@ximian.com>
9760
9761         * class.c (mono_class_create_from_typespec): Only inflate if we
9762         either have `context->gclass' or `context->gmethod'.
9763
9764 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
9765
9766         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
9767
9768         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
9769
9770         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
9771
9772         * reflection.c (mono_assembly_get_object): Remove the workaround put
9773         in for the release.
9774         
9775         * appdomain.c: Use the corlib_internal field from MonoAssembly.
9776
9777         * appdomain.c: Bump corlib version.
9778
9779         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
9780         be visible in other appdomains.
9781
9782 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
9783
9784         * threads.c: Interlocked inc and dec for longs were messed up,
9785         use a KISS based impl for this. Fixes 70234
9786
9787 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
9788
9789         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
9790
9791 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
9792
9793         * icall.c: fix to follow policy not to allow struct
9794         arguments in icalls.
9795
9796 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9797
9798         * process.c: make the patch that handles spaces in file paths work
9799         on mono/windows too.
9800
9801 2004-12-06  Martin Baulig  <martin@ximian.com>
9802
9803         * class.c (mono_class_create_generic): Call
9804         mono_class_setup_supertypes() if we're dynamic.
9805         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
9806
9807 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
9808
9809         * object-internals.h: Add new fields to MonoThread.
9810
9811         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
9812
9813         * icall.c threads-types.h threads.c: Add new icalls.
9814
9815         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
9816
9817         * object-internals.h (MonoReflectionAssembly): Sync object layout with
9818         managed side.
9819
9820         * appdomain.c: Bump corlib version.
9821
9822         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
9823         internal assemblies. Fixes #69181.
9824
9825 2004-12-05  Martin Baulig  <martin@ximian.com>
9826
9827         * class.c (mono_class_inflate_generic_signature): Make this a
9828         no-op if `context' is NULL or we don't have any type parameters;
9829         also copy `sentinelpos'.        
9830
9831 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
9832
9833         * image.c: Add unbox_wrapper_cache.
9834
9835         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
9836
9837         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
9838         function generator.
9839         
9840         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
9841         Fixes #70173.
9842
9843         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
9844         
9845 2004-12-04  Martin Baulig  <martin@ximian.com>
9846
9847         * loader.c (mono_method_get_signature_full): New public function;
9848         like mono_method_get_signature(), but with an additional
9849         `MonoGenericContext *' argument.
9850
9851         * class.c (mono_class_inflate_generic_signature): Formerly known
9852         as inflate_generic_signature(); make this public.
9853
9854 2004-12-04  Martin Baulig  <martin@ximian.com>
9855
9856         * metadata.c
9857         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
9858         instead of a `MonoGenericContainer *'.  
9859         (mono_metadata_parse_array_full): Likewise.
9860         (mono_metadata_parse_signature_full): Likewise.
9861         (mono_metadata_parse_method_signature_full): Likewise.
9862         (mono_metadata_parse_generic_inst): Likewise.
9863         (mono_metadata_parse_generic_param): Likewise.
9864         (mono_metadata_parse_mh_full): Likewise.
9865         (mono_type_create_from_typespec_full): Likewise.
9866
9867 2004-12-03  Martin Baulig  <martin@ximian.com>
9868
9869         * class-internals.h (MonoGenericContainer): Replaced the
9870         `MonoGenericContext * pointer with a `MonoGenericContext'
9871         structure and made it the first element.
9872
9873 2004-12-03  Martin Baulig  <martin@ximian.com>
9874
9875         * class.c
9876         (inflate_generic_type): Set the `context->container' when creating
9877         a new MonoGenericContext.
9878         (mono_class_inflate_generic_method): Likewise.
9879         (mono_class_create_from_typespec): Just use `context->container'
9880         to get the container.
9881
9882         * loader.c (method_from_methodspec): Set `context->parent' from
9883         `context->container' - and if that's a method container, use its
9884         parent.  Also set the `context->container' when creating a new
9885         MonoGenericContext.
9886         (mono_get_method_from_token): Use just `context->container' to get
9887         the container.
9888
9889         * metadata.c (do_mono_metadata_parse_generic_class): Also set
9890         `gclass->context->container'.
9891
9892         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
9893         the `context->container' when creating a new MonoGenericContext.
9894
9895 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
9896
9897         * reflection.c (compare_genericparam): Sort params with identical
9898         owner by their number. Fixes gen-111 on sparc.
9899
9900 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
9901
9902         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
9903         around the domain changes.
9904
9905         * appdomain.c (mono_domain_unload): Handle the case when the thread
9906         calling Unload is itself being aborted during unloading. Fixes #70022.
9907
9908         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
9909
9910         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
9911         checkpoint_func as an icall so it gets a wrapper.
9912         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
9913         in the cross-appdomain wrappers too.
9914
9915         * threads.c (mono_thread_has_appdomain_ref): Make this public.
9916
9917         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
9918
9919         * reflection.c: Fix some memory leaks.
9920         
9921 2004-12-02  Martin Baulig  <martin@ximian.com>
9922
9923         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
9924
9925         * metadata.c (generic_class_cache): New static hashtable.
9926         (mono_metadata_lookup_generic_class): New public method.
9927
9928 2004-12-02  Martin Baulig  <martin@ximian.com>
9929
9930         * class.c (mono_class_create_from_typedef): Call
9931         mono_class_setup_parent() and mono_class_create_mono_type() before
9932         parsing the interfaces.
9933
9934 2004-12-02  Martin Baulig  <martin@ximian.com>
9935
9936         * metadata.c (generic_inst_cache): New static hashtable.
9937         (mono_metadata_lookup_generic_inst): New public function.
9938         (mono_metadata_inflate_generic_inst): New public function.
9939         (mono_metadata_parse_generic_inst): New public function.
9940         (do_mono_metadata_parse_generic_class): Use the new
9941         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
9942         since this'll also use the cache.
9943
9944         * reflection.c (mono_reflection_bind_generic_method_parameters):
9945         Use mono_metadata_lookup_generic_inst() to use the new cache.
9946
9947         * class.c (inflate_mono_type): Use
9948         mono_metadata_inflate_generic_inst() to inflate a generic
9949         instance; this'll also use the new cache.
9950
9951         * loader.c (method_from_methodspec): Use
9952         mono_metadata_parse_generic_inst() and
9953         mono_metadata_inflate_generic_inst() rather than parsing it
9954         manually, so we can use the new cache.
9955
9956 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
9957
9958         * threads.c (wait_for_tids): Do not incorrectly free threads when 
9959         the wait times out.
9960
9961 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
9962
9963         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
9964         iter->args based on whether parameters are passed in registers (i.e.
9965         MONO_ARCH_REGPARMS is defined)
9966
9967 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
9968
9969         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
9970         the exception message. Fixes #70070.
9971         (method_from_methodspec): Fix warnings.
9972
9973 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9974
9975         * process.c: (complete_path) return the path quoted
9976
9977 2004-12-01  Martin Baulig  <martin@ximian.com>
9978
9979         * class-internals.h (MonoGenericInst): New structure.
9980         (MonoGenericClass): Replaced `type_argc', `type_argv' and
9981         `is_open' with `MonoGenericInst *inst'.
9982         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
9983         `is_open' with `MonoGenericInst *inst'.
9984
9985 2004-11-30  Martin Baulig  <martin@ximian.com>
9986
9987         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
9988
9989         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
9990         to `generic_class_cache'.
9991
9992         * metadata.c
9993         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
9994         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
9995         (mono_generic_inst_is_valuetype): Renamed to
9996         mono_generic_class_is_valuetype().
9997
9998         * class-internals.h
9999         (MonoGenericInst): Renamed to MonoGenericClass.
10000         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
10001         (MonoClass): Renamed `generic_inst' to `generic_class'.
10002         (MonoGenericContext): Renamed `ginst' to `gclass'.
10003
10004         * object-internals.h
10005         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
10006
10007         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
10008         mono_reflection_generic_class_initialize().
10009
10010         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
10011         now known as "System.Reflection.MonoGenericClass".
10012         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
10013
10014 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
10015
10016         * class-internals.h: Added a flag field to MonoClass to cache the
10017         declarative security attributes actions associated with the class.
10018         * domain-internals.h: Added booleans to MonoJitInfo to cache the
10019         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
10020         applicable to the JITted method.
10021         * reflection.c|h: Added functions to extract (as flags) which security
10022         actions are available (declaratively) for a method, class or assembly.
10023         * metadata.c|h: Added functions to search the declarative security
10024         table in the metadata.
10025         
10026 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
10027
10028         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
10029         EXPORTEDTYPES are already in the class name cache, so there is no
10030         need to add extra code here to look at them. Just removes a bit of
10031         cruft.
10032
10033         (ves_icall_System_Environment_get_TickCount): No need for #if
10034         WINDOWS. We already have the code in io-layer.
10035
10036 2004-11-28  Martin Baulig  <martin@ximian.com>
10037
10038         * loader.c
10039         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
10040         Fixes gen-112.cs.
10041
10042 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
10043
10044         * assembly.c (do_mono_assembly_open): Instead of having a
10045         conditional WITH_BUNDLE, incorporate support for bundles here, by
10046         having a global `bundles' variable holding a pointer to the actual
10047         bundles. 
10048
10049         (mono_register_bundled_assemblies): New API call used by the
10050         bundle code. 
10051
10052         See mkbundle.1 for details.
10053         
10054 2004-11-27  Martin Baulig  <martin@ximian.com>
10055
10056         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
10057         the vtable for generic methods.
10058
10059 2004-11-26  Martin Baulig  <martin@ximian.com>
10060
10061         * metadata.c
10062         (mono_metadata_generic_method_hash): New public function.
10063         (mono_metadata_generic_method_equal): Likewise.
10064
10065         * class-internals.h
10066         (MonoGenericContainer): Added `GHashTable *method_hash'.
10067
10068         * reflection.c (ReflectionMethodBuilder): Added
10069         `MonoGenericContainer *generic_container'.
10070         (reflection_methodbuilder_to_mono_method): Don't create a new
10071         MonoGenericContainer each time we're called.
10072         (mono_reflection_bind_generic_method_parameters): Use
10073         `container->method_hash' to cache the results so we don't create a
10074         different method if we're called several times with the same
10075         arguments.
10076
10077         * loader.c (method_from_methodspec): Use the new
10078         `container->method_hash' here, too.
10079
10080 2004-11-26  Martin Baulig  <martin@ximian.com>
10081
10082         * class.c (inflate_generic_signature): Correctly compute
10083         `res->has_type_parameters'.
10084         (mono_class_vtable): Use the `has_type_parameters' flag to
10085         determine whether we're a generic method.
10086
10087         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
10088
10089 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
10090
10091         * object.c (mono_runtime_run_main): Fix a small memory leak.
10092
10093 2004-11-25  Martin Baulig  <martin@ximian.com>
10094
10095         * class.c (set_generic_param_owner): Fixed the loop.
10096
10097 2004-11-25  Martin Baulig  <martin@ximian.com>
10098
10099         * object.c (mono_class_vtable): Don't create any JIT wrappers for
10100         generic methods.
10101
10102 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
10103
10104         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
10105         names. Fixes #69787.
10106
10107 2004-11-24  Martin Baulig  <martin@ximian.com>
10108
10109         * class.c (mono_class_create_generic_2): If we don't have a
10110         `ginst->parent', inflate `gklass->parent' to get our parent.
10111
10112 2004-11-24  Martin Baulig  <martin@ximian.com>
10113
10114         * reflection.c (compare_genericparam): Correctly sort the
10115         GenericParam table; fixes #69779.
10116
10117 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
10118
10119         * reflection.c: When writing a PE file, don't create a huge
10120         buffer in memory. Just write the arrays we have to the file.
10121         This reduces memory usage.
10122
10123         * metadata-internals.h: MonoDynamicStream pefile is no longer used
10124         globally.
10125
10126 2004-11-17  Martin Baulig  <martin@ximian.com>
10127
10128         * class.c (mono_class_init): Don't setup `class->parent' for
10129         dynamic instances; moved this to mono_class_generic_2().
10130         (mono_class_create_generic): Also set `klass->inited' for dynamic
10131         generic instances.
10132         (mono_class_create_generic_2): Don't do anything for dynamic
10133         generic instances.  Set `klass->parent' here and also call
10134         mono_class_setup_parent() here. 
10135
10136         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
10137         `MonoType *parent' argument; set `ginst->parent' before calling
10138         mono_class_create_generic_2(), so we set the correct parent.
10139
10140 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
10141
10142         * reflection.c: allow getting attributes from ModuleBuilder
10143         (used by ikvm).
10144
10145 2004-11-17  Martin Baulig  <martin@ximian.com>
10146
10147         * class.c (mono_class_create_from_typedef): If a type parameter is
10148         inherited from an outer class, set its owner to that class.
10149
10150 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
10151
10152         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
10153           for (int*) written size. This fixes bug #69592.
10154
10155 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
10156
10157         * icall.c: Added IsAuthenticodePresnet internal call.
10158         * image.c|h: New function that check a MonoImage for an Authenticode
10159         signature in the certificate PE data directory.
10160         * security.c|h: New internal call to ask the runtime if an 
10161         Authenticode signature seems referenced in the PE header.
10162
10163 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
10164
10165         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
10166
10167         * reflection.c (mono_image_create_pefile): Free the assembly streams
10168         after writing out the assembly file.
10169
10170         * object.c (mono_runtime_run_main): Fix small memory leak.
10171
10172         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
10173         property access modifiers. Fixes #69389.
10174
10175 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
10176
10177         * domain.c, object.c, object-internals.h, domain-internals.h,
10178         object.h, marshal.c: keep dynamic code info per domain.
10179
10180 2004-11-15  Martin Baulig  <martin@ximian.com>
10181
10182         * class.c (mono_type_get_name_recurse): Put type arguments in
10183         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
10184         see bug #68387.
10185
10186 2004-11-15  Martin Baulig  <martin@ximian.com>
10187
10188         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
10189         (mono_class_setup_vtable): When computing `the_cname' for a
10190         generic instance, don't include the namespace since we'd otherwise
10191         add it twice.
10192
10193 2004-11-15  Martin Baulig  <martin@ximian.com>
10194
10195         * class.c (mono_class_create_generic): Changed return type to void.
10196         (mono_class_create_generic_2): New public function; setup
10197         `class->method', `class->field' and `class->interfaces' here
10198         instead of in mono_class_init().
10199
10200         * class.h (mono_class_create_generic): Moved to class-internals.h.
10201
10202 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
10203
10204         * reflection.c (mono_image_create_pefile): take a file HANDLE.
10205         rather than writing to memory, write to this file. Right now,
10206         we are just writting into a buffer, and copying that. However
10207         we can avoid the buffer later.
10208
10209         (mono_dynamic_stream_reset): new function
10210
10211         * icall.c, object-internals.h: update for the above.
10212
10213 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
10214
10215         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
10216         have been using gc'd memory. First it is slower, unlikely
10217         the comment in the source code said, secondly, it increases
10218         our footprint to do it in the gc.
10219
10220         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
10221         the method so that it does not have to copy to managed code.
10222
10223 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
10224
10225         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
10226
10227 2004-11-12  Martin Baulig  <martin@localhost>
10228
10229         * reflection.c (mono_image_create_token): Allow generic method
10230         definitions here, since they may appear in an `.override'; see
10231         gen-98/gen-99 for an example.
10232
10233 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
10234
10235         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
10236         #69365.
10237
10238         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
10239         descriptive.
10240
10241 2004-11-11  Martin Baulig  <martin@ximian.com>
10242
10243         * class.c (mono_class_setup_vtable): In an explicit interface
10244         implementation, the method name now includes the arity.
10245
10246 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
10247
10248         * object.c (mono_array_full_copy): Fix warning.
10249
10250 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
10251
10252         * appdomain.c: Removed look_for_method_by_name(). Use the new method
10253         mono_class_get_method_from_name() instead.
10254         
10255         * class-internals.h: Added two new types of wrappers. 
10256         Added MonoRemotingTarget enum. Added new trampoline function type, which
10257         takes an additional MonoRemotingTarget value as parameter, so it is
10258         possible to request a trampoline for a specific target.
10259         
10260         * class.c: Added new mono_class_get_method_from_name() method.
10261         
10262         * class.h: In MonoRemoteClass, we can have now to vtables, one for
10263         general remoting sinks and one specific for cross domain calls.
10264         
10265         * debug-helpers.c: Added new wrapper names.
10266         
10267         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
10268         of a remote class.
10269         
10270         * image.c: Porperly delete value objects form the remoting invoke hashtable.
10271         
10272         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
10273         with several other methods (mono_marshal_get_xappdomain_dispatch,
10274         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
10275         and others) can generate a fast remoting wrapper for cross domain calls.
10276         More information can be found in docs/remoting.
10277         Other changes: Removed mono_find_method_by_name, and used
10278         mono_class_get_method_from_name instead.
10279         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
10280         is stored in the remoting invoke hashtable.
10281         
10282         * marshal.h: published the new method for getting the xdomain wrapper,
10283         and also added a method for getting the adequate wrapper for a given
10284         method and target.
10285         
10286         * object-internals.h, object.c: Added a couple of methods for capying and
10287         cloning arrays.
10288         Modified mono_install_remoting_trampoline, which takes the new remoting
10289         trampoline that has a remoting target as parameter.
10290         mono_class_proxy_vtable now also takes a remoting target as parameter, and
10291         will return the most suitable vtable for the target.
10292         Added mono_remote_class_vtable, which returns the vtable of a remote class
10293         (which can be the normal remoting vtable or the xdomain vtable).
10294         
10295         * threads.c: the xdomain invoke and dispatch wrappers must also be
10296         protected against interruptions.
10297
10298 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10299
10300         * icall.c: use memmove in BlockCopyInternal when the source and
10301         destination arrays are the same.
10302
10303 2004-11-09  Martin Baulig  <martin@ximian.com>
10304
10305         * class-internals.h (MonoGenericContainer): Removed `method' and
10306         `signature', replaced them with `is_method' and `is_signature'
10307         flags.  Added `context'.
10308
10309         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
10310         instead of a `MonoGenericContainer *'.
10311
10312         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
10313         for dynamic type parameters.
10314         (mono_metadata_load_generic_params): Setup `container->context'.
10315
10316         * reflection.c (mono_reflection_setup_generic_class): Setup
10317         `tb->generic_container->context'.
10318         (do_mono_reflection_bind_generic_parameters): Use
10319         mono_class_inflate_generic_type() to correctly inflate types,
10320         rather than using our own hack just for MONO_TYPE_VAR.
10321
10322 2004-11-09  Martin Baulig  <martin@ximian.com>
10323
10324         * class.c (mono_class_inflate_generic_method): Small fix; don't
10325         crash here.
10326
10327         * icall.c
10328         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
10329         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
10330         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
10331         (ves_icall_Type_BindGenericParameters): Likewise.
10332         (ves_icall_Type_get_IsGenericInstance): Likewise.
10333         (ves_icall_Type_GetGenericParameterPosition): Likewise.
10334         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
10335         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
10336         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
10337
10338 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
10339
10340         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
10341         assembly versions and public key tokens. Fixes #69113.
10342
10343 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
10344
10345         * metadata.c: fix bug introduced with the type cache changes
10346         on 2004-11-06.
10347
10348 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
10349
10350         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
10351         the MonoClass pointer instead of the token in exception clauses.
10352         * reflection.c: updates for the above and make the code not depend
10353         on the structure of MonoExceptionClause.
10354
10355 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
10356
10357         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10358         Add support for dynamic assemblies. Fixes #69114.
10359
10360         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
10361
10362 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
10363
10364         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
10365         since most only those methods use it. the code member of
10366         MonoMethodPInvoke was dead, so that can be removed too. Also,
10367         remove inline_count (again, not used), and move slot so that it
10368         can share bits with some other flags. This saves 8 bytes in the
10369         structure and gives us about 50 kb back for mcs helloworld.cs
10370
10371         * *.[ch]: Do naming changes for the above.
10372
10373         * loader.c (mono_method_get_header): Lazily init the header
10374         on first access.
10375         (mono_get_method_from_token): don't init the header here
10376         (mono_free_method): the header may never be allocated
10377
10378         Overall, this saves 150 kb of unmanaged allocations
10379         for mcs helloworld.cs. That accounts for 10% of the unmanaged
10380         memory at runtime.
10381         
10382         * loader.c, loader.h (mono_method_get_header): new accessor.
10383
10384         * *.[ch]: use the above method. Prepares us to lazily load
10385         the header.
10386
10387         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
10388         three warnings, which are actual bugs (see 69206).
10389
10390         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
10391         unused. Saves a cool 4 bytes / method.
10392
10393 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
10394
10395         * metadata.c (builtin_types): Add types for System.Object here.
10396         (mono_metadata_parse_type_full): Cache MonoType*'s that are
10397         for a class or valuetype from klass->this_arg or klass->byval_arg.
10398
10399         On mcs for a hello world, this gets us down from 21836 MonoType's
10400         to 14560.
10401
10402         (mono_metadata_free_type): Account for the above change.
10403
10404 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
10405
10406         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
10407         exception instead of asserting if name is null.
10408         (ves_icall_System_AppDomain_GetData): Ditto.
10409
10410 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
10411
10412         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
10413         EnumBuilder.
10414
10415         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
10416         Return NULL when the domain does not have entry_assembly set.
10417
10418         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
10419         Add a 'resource_modules' argument.
10420         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
10421
10422         * reflection.c (mono_reflection_create_runtime_class): Move setting
10423         of wastypebuilder here, so mono_get_type_object () returns a MonoType
10424         for enums too.
10425
10426         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
10427         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
10428         Throw an ArgumentNullException if 'ptr' is null.
10429
10430         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
10431         assemblies here. Fixes #69020.
10432
10433 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
10434
10435         * reflection.c (build_compressed_metadata): Fix the previous patch for
10436         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
10437         the stack.
10438
10439 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
10440
10441         * assembly.c (mono_assembly_names_equal): Allow a match if one of
10442         the cultures is false. Fixes #69090.
10443
10444         * reflection.c (build_compressed_metadata): Fix invalid memory read 
10445         detected by valgrind.
10446         
10447         * reflection.c (mono_reflection_get_type): Avoid triggering a 
10448         TypeResolve multiple times for the same type. Fixes #65577.
10449
10450 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
10451
10452         * marshal.c: Avoid using ldftn to call managed functions. It is
10453         much slower than just a call.
10454
10455         * reflection.c (mono_module_get_object): free the basename we
10456         allocate here from glib.
10457         
10458         * reflection.c (ensure_runtime_vtable): make sure to free
10459         overrides.  Also, we were allocating an array of MonoMethod not an
10460         array of MonoMethod*.
10461
10462         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
10463
10464         * image.c (mono_image_close): free image->guid here.
10465
10466 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
10467
10468         * reflection.c: Fix some spec conformance issues with the PE file
10469         structures so mcs compiled apps run on the Net 2.0 beta.
10470
10471 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
10472
10473         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
10474         Implement this. Fixes #67264.
10475
10476         * debug-helpers.h debug-helpers.c marshal.c: Move 
10477         mono_find_method_by_name to debug-helpers.c.
10478
10479 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
10480
10481         * object.c (mono_release_type_locks): type_initialization_hash is
10482         a GHashTable.
10483
10484         * reflection.c object.c object-internals.h: Fix warnings.
10485
10486         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
10487         without accessors. Fixes #61561.
10488
10489         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
10490         application base from the root domain if not set. Fixes #65641.
10491         (mono_runtime_init): Fix warning.
10492
10493 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10494
10495         * appdomain.c: call mono_thread_pool_init.
10496         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
10497         of worker threads based on the number of CPUs and the environment
10498         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
10499         for non-windows (windows) systems.
10500
10501 2004-10-27  Chris Toshok  <toshok@ximian.com>
10502
10503         * mono-debug-debugger.c (write_class): don't call mono_class_init
10504         here, as even with the check for (!klass->init_pending), we get
10505         into a situation where we're hitting cycles in class
10506         initialization.  Fixes #68816.
10507
10508 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
10509
10510         * image.c: Avoid overwriting values in the loaded_images_hash when an
10511         assembly is loaded multiple times. Fixes #61152.
10512
10513         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
10514         so multiple satellite assemblies for the same name can be loaded.
10515         Fixes #68259.
10516
10517         * mono_domain_assembly_preload: Actually return the loaded assembly, 
10518         not NULL.
10519
10520         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
10521         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
10522
10523         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
10524         pending finalizers are not invoked after the appdomain has been 
10525         unloaded. Fixes #67862.
10526
10527 2004-10-22  Martin Baulig  <martin@ximian.com>
10528
10529         * mono-debug-debugger.c
10530         (mono_debugger_runtime_invoke): Don't box valuetypes.
10531
10532 2004-10-22  Chris Toshok  <toshok@ximian.com>
10533
10534         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
10535         don't hide private methods.
10536
10537 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
10538
10539         * icall.c: Allows the runtime to "share" (when known) the public key
10540         token of an assembly. This avoid the need to recalculate the token 
10541         (from the public key) in managed code.
10542
10543 2004-10-21  Chris Toshok  <toshok@ximian.com>
10544
10545         * debug-helpers.c (append_class_name): argh, revert last patch.
10546         
10547 2004-10-21  Chris Toshok  <toshok@ximian.com>
10548
10549         * debug-helpers.c (append_class_name): use '+' as the delimiter,
10550         not '/', so that it matches what the debugger uses to look up
10551         methods.
10552
10553 2004-10-21  Martin Baulig  <martin@ximian.com>
10554
10555         * mono-debug-debugger.c (mono_debugger_throw_exception): New
10556         public method; this is called each time an exception is thrown and
10557         allows the debugger to use exception catch points.
10558
10559 2004-10-21  Martin Baulig  <martin@ximian.com>
10560
10561         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
10562         the stack pointer and the exception object in some struct and pass
10563         that to the debugger.
10564
10565 2004-10-21  Chris Toshok  <toshok@ximian.com>
10566
10567         * mono-debug-debugger.c (do_write_class): add instance/static
10568         event support.  We don't expose "raise" or "other" yet.
10569         (event_is_static): new method.
10570
10571 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
10572
10573         * mono-debug-debugger.c
10574         (mono_debugger_handle_exception): Remove
10575         bogus return value for fussy compilers.
10576
10577 2004-10-20  Martin Baulig  <martin@ximian.com>
10578
10579         * mono-debug-debugger.c
10580         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
10581         (mono_debugger_handled_exception): Likewise.
10582
10583 2004-10-20  Martin Baulig  <martin@ximian.com>
10584
10585         * mono-debug-debugger.h (MonoDebuggerEvent): Added
10586         MONO_DEBUGGER_EVENT_EXCEPTION.
10587
10588         * mono-debug-debugger.c (mono_debugger_handle_exception): New
10589         public function to send the debugger a notification for an
10590         exception and inform it about a catch/finally clause.
10591
10592 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
10593
10594         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
10595         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
10596         fix 2.95 build. 
10597
10598         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
10599
10600 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
10601
10602         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
10603         marshalled as [In,Out]. Fixes #58325.
10604
10605 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
10606
10607         * reflection.c (mono_method_body_get_object): Implement some fields.
10608
10609 2004-10-12  Martin Baulig  <martin@ximian.com>
10610
10611         * reflection.c (mono_reflection_bind_generic_parameters): Small
10612         fix, correctly retrieve our parent from a generic instance.
10613
10614 2004-10-12  Martin Baulig  <martin@ximian.com>
10615
10616         * metadata.c (mono_metadata_generic_param_equal): We always have
10617         an owner.
10618
10619         * class.c
10620         (mono_class_from_generic_parameter): We need to have an owner.
10621         (my_mono_class_from_generic_parameter): Likewise.
10622
10623         * reflection.c (mono_reflection_setup_generic_class): Renamed to
10624         mono_reflection_create_generic_class() and added a new
10625         mono_reflection_setup_generic_class().  
10626         (mono_reflection_initialize_generic_param): If we're a nested
10627         generic type and inherited from the containing class, set our
10628         owner to the outer class.
10629
10630 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
10631
10632         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
10633
10634         * reflection.c (mono_method_body_get_object): New function to create
10635         a MethodBody object.
10636
10637         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
10638
10639 2004-10-11  Martin Baulig  <martin@ximian.com>
10640
10641         * metadata.c (_mono_metadata_type_equal): Renamed to
10642         do_mono_metadata_type_equal() and made static.
10643
10644 2004-10-11  Martin Baulig  <martin@ximian.com>
10645
10646         * appdomain.c: Bump corlib version number to 28.
10647
10648 2004-10-10  Martin Baulig  <martin@ximian.com>
10649
10650         * class-internals.h
10651         (MonoGenericInst): Added `MonoGenericContainer *container'.
10652         (MonoGenericMethod): Likewise.
10653         (MonoGenericContext): Likewise.
10654         (MonoGenericParam): Added `MonoGenericContainer *owner'.
10655
10656         * metadata.c
10657         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
10658         (do_mono_metadata_parse_generic_inst): Likewise.
10659         (mono_metadata_parse_type_full): New public method.  This is the actual
10660         mono_metadata_parse_type() implementation - with an additional
10661         `MonoGenericContainer *' argument.
10662         (mono_metadata_parse_array_full): Likewise.
10663         (mono_metadata_parse_signature_full): Likewise.
10664         (mono_metadata_parse_method_signature_full): Likewise.
10665         (mono_metadata_parse_mh_full): Likewise.
10666         (mono_type_create_from_typespec): Likewise.
10667         (mono_metadata_interfaces_from_typedef_full): New public method;
10668         this is similar to the other _full() methods, but we take a
10669         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
10670         (mono_metadata_parse_generic_param): Take an additional
10671         `MonoGenericContainer *' argument and lookup the MonoGenericParam
10672         from that container.
10673         (mono_metadata_generic_param_equal): New static method to compare
10674         two type parameters.
10675         (_mono_metadata_type_equal): New static method; takes an
10676         additional `gboolean signature_only' argument - if true, we don't
10677         compare the owners of generic parameters.
10678         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
10679         with a TRUE argument - do a signature-only comparision.
10680
10681         * loader.c: Use the new _full() methods and pass the
10682         MonoGenericContainer to them.
10683
10684         * object-internals.h (MonoReflectionTypeBuilder): Added
10685         `MonoGenericContainer *generic_container' field.
10686         (MonoReflectionMethodBuilder): Likewise.
10687
10688 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
10689
10690         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
10691         case initial images of dynamic assemblies.
10692
10693         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
10694
10695         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
10696
10697         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
10698         length of event->other array.
10699         (typebuilder_setup_events): Ditto.
10700
10701         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
10702         'assembly_by_name' and add an 'assemblies' list.
10703
10704         * assembly.h assembly.c: Add a new search hook for determining whenever
10705         an assembly is already loaded. Use this instead of searching in the
10706         loaded_assemblies list.
10707
10708         * domain.c appdomain.c: Implement the new search hook so loaded 
10709         assemblies are now scoped by appdomain. Fixes #67727.
10710
10711 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
10712
10713         * threads.c (mono_thread_attach): Initialize synch_lock field so
10714         mono_thread_detach works again.
10715
10716         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
10717         'lib' too. Fixes #63130.
10718
10719 2004-10-06  Jackson Harper  <jackson@ximian.com>
10720
10721         * culture-info-tables.h: regenerated.
10722
10723 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
10724
10725         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
10726         implemented by other interfaces in the result. Fixes #65764.
10727         
10728         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10729         Handle unloadable modules without crashing.
10730
10731         * image.c (load_modules): Revert the previous patch since modules must
10732         have a fixed index inside the array.
10733         
10734         * image.c (load_modules): Don't include native modules in the modules
10735         array.
10736
10737 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
10738
10739         * reflection.h: Add param_defaults field.
10740
10741         * reflection.c: Add support for parameter defaults in dynamic methods.
10742         Fixes #64595.
10743
10744         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
10745         an empty string when a type has no namespace. Fixes #64230.
10746
10747 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
10748
10749         * tabledefs.h: Added "internal" security actions to support non-CAS
10750         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
10751         Note: they do not seems to be used anymore in 2.0 (new metadata format)
10752
10753 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
10754
10755         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
10756         constructor of abstract class. Fixes #61689.
10757
10758 2004-10-04  Martin Baulig  <martin@ximian.com>
10759
10760         * class-internals.h (MonoGenericContainer): New type.
10761         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
10762         `MonoGenericContainer *generic_container'.
10763         (MonoClass): Replaced `gen_params' and `num_gen_params' with
10764         `MonoGenericContainer *generic_container'.
10765
10766         * metadata.c (mono_metadata_load_generic_params): Return a
10767         `MonoGenericContainer *' instead of a `MonoGenericParam *';
10768         removed the `num' argument.
10769
10770 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
10771
10772         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
10773         for dynamic images.
10774
10775         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
10776         machine fields.
10777
10778         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
10779
10780         * reflection.c: Save pe_kind and machine values into the generated
10781         image file.
10782
10783         * appdomain.c: Bump corlib version number.
10784
10785         * object-internals.h: Reorganize layout of LocalBuilder.
10786
10787         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
10788         New helper function.
10789
10790         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
10791         created MonoType for dynamic types. Fixes #66180.
10792
10793 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
10794
10795         * threadpool.c: the ares hashtable needs a critical section around it.
10796         this prevents some nasty segfaults
10797
10798 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
10799
10800         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
10801         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
10802         bug 67324).
10803         
10804 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
10805
10806         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
10807         
10808 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
10809
10810         * image.c: Always canonicalize image file names, to avoid loading
10811         the same assembly twice when referenced using a relative path.
10812
10813 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
10814
10815         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
10816
10817         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
10818
10819         * marshal.c: Fix warnings.
10820
10821 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
10822
10823         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
10824         attempting to marshal the delegate_trampoline as the method_addr.
10825         This patch has a static hashtable of marshalled delegates so that 
10826         we can map delegate_trampoline addresses back to delegates.  This
10827         allows a delegate passed to managed code to be passed back into native
10828         code.  Fixes #67039
10829
10830 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
10831
10832         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
10833
10834         * reflection.c (method_encode_code): Align method headers properly.
10835         Fixes #66025.
10836
10837 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
10838
10839         * marshal.c: In the runtime invoke wrapper, reset the abort
10840         exception if it is cached. This avoids the automatic rethrowal of 
10841         the exception after the catch of the wrapper. Also check for pending
10842         interruptions before calling the managed method. This is done using
10843         the new method emit_thread_force_interrupt_checkpoint, since the
10844         normal checkpoint method is ignored when running the invoke wrapper.
10845         * object.c: If the abort exception is rethrown, set the abort_exc
10846         field of the thread, so it will be rethrown aftere every catch.
10847         * threadpool.c: Only run an interruption checkpoint if what has been
10848         requested is a stop of the thread (aborts will be ignored).
10849         * threads.c: By default, a thread will now never be interrumped while
10850         running the runtime invoke wrapper (this ensures that runtime_invoke
10851         will always return to the caller if an exception pointer is provided).
10852         There is a new special method mono_thread_force_interruption_checkpoint()
10853         to force an interruption checkpoint even if running a protected
10854         wrapper, which is used by the same runtime invoke wrapper to do a check
10855         at a safe point.
10856
10857 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
10858
10859         * object.c, object-internals.h: Implemented mono_release_type_locks,
10860         which releases the cctor locks held by a thread.
10861         * threads.c, threads.h: In thread_cleanup, release cctor locks held
10862         by a thread. Added mono_thread_exit() method to be used to safely stop
10863         a thread.
10864
10865 2004-09-28  Raja R Harinath  <rharinath@novell.com>
10866
10867         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10868         Move null check before dereference.  Avoid indexing beyond the end
10869         of the 'modules' array.
10870
10871 2004-09-28  Raja R Harinath  <rharinath@novell.com>
10872
10873         * metadata-internals.h (MonoImage): Add module_count field.
10874         * image.c (load_modules): Set image->module_count.
10875         (mono_image_load_file_for_image): Use image->module_count.
10876         * reflection.c (mono_image_load_module): Append to image->modules array 
10877         of dynamic assembly.
10878         (mono_module_get_object): Fix loop to actually increment index.
10879         Use image->module_count.
10880         * assembly.c (mono_assembly_load_references): Use image->module_count.
10881         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
10882         Likewise.
10883
10884 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
10885
10886         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
10887         Avoid assert on generic types.
10888
10889 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
10890
10891         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
10892
10893         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
10894
10895         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
10896         function to convert a MarshalSpec structure to its managed counterpart.
10897
10898         * reflection.c: Fix warnings.
10899         
10900         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
10901         field.
10902
10903         * icall.c (mono_create_icall_signature): Fix build.
10904
10905 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
10906
10907         * icall.c: Add MakePointType icall.
10908
10909         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
10910         warnings.
10911
10912 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10913
10914         * threadpool.c: reuse allocated slots in the queue.
10915
10916 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
10917
10918         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
10919
10920         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
10921
10922         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
10923         previous change.
10924
10925         * tabledefs.h: Add constants for pinvoke attributes BestFit and
10926         ThrowOnUnmappableChar.
10927
10928         * icall.c (ves_icall_Type_GetPacking): New icall.
10929
10930 2004-09-24  Martin Baulig  <martin@ximian.com>
10931
10932         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
10933
10934 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10935
10936         * appdomain.c:
10937         (mono_domain_set): allow setting a domain that is being unloaded.
10938         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
10939         being unloaded.
10940
10941 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
10942
10943         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
10944         the GetCustomAttributes icall.
10945
10946 2004-09-23  Martin Baulig  <martin@ximian.com>
10947
10948         * object-internals.h (MonoReflectionGenericParam): Replaced
10949         'has_ctor_constraint', `has_reference_type' and `has_value_type'
10950         with `guint32 attrs'.
10951
10952 2004-09-23  Martin Baulig  <martin@ximian.com>
10953
10954         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
10955
10956 2004-09-23  Martin Baulig  <martin@ximian.com>
10957
10958         * object-internals.h (GenericParameterAttributes): New enum.
10959
10960 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
10961
10962         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
10963         
10964         * class.c (init_events): Fill out event->other field.
10965
10966         * class.c: Fix warnings.
10967
10968         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
10969
10970 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
10971
10972         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
10973         walk which doesn't supply the IL offset.
10974
10975 2004-09-22  Martin Baulig  <martin@ximian.com>
10976
10977         * reflection.c (mono_reflection_setup_internal_class): If we're
10978         System.ValueType, System.Object or System.Enum, set
10979         `klass->instance_size' and create the vtable.
10980         (mono_reflection_create_internal_class): If we're an enum type,
10981         get the base class from our current corlib.
10982
10983 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
10984
10985         * reflection.h (MonoResolveTokenError): New type.
10986
10987         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
10988         icall.
10989
10990         * icall.c: Add an 'error' argument to the ResolveToken icalls.
10991
10992 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
10993
10994         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
10995         Support also calling constructors, but only for already allocated objects.
10996
10997 2004-09-17  Geoff Norton <gnorton@customerdna.com>
10998
10999         * reflection.c (type_get_qualified_name): If the klass is null
11000         return the typename to avoid a NullRefEx.
11001         (encode_cattr_value): Get the qualified name of the boxed type,
11002         not the underlying enumtype.  Fixes #62984.
11003
11004 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
11005
11006         * marshal.c: Fix problems with previous checkin.
11007
11008 2004-09-21    <vargaz@freemail.hu>
11009
11010         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
11011         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
11012
11013         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
11014
11015 2004-09-21  Geoff Norton <gnorton@customerdna.com>
11016
11017         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
11018         should only return a type for pointers, arrays, and passbyref types.
11019         Fixes bug #63841.
11020
11021 2004-09-21  Martin Baulig  <martin@ximian.com>
11022
11023         * domain.c (mono_debugger_check_runtime_version): New public
11024         function.
11025
11026         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
11027
11028 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
11029
11030         * reflection.c: Added missing sort to the declarative security 
11031         attributes table. MS implementation stops seeing the attributes if the
11032         token number regress in the table (as shown by ildasm and permview).
11033
11034 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
11035
11036         * object-internals.h (MonoReflectionModule): Add 'token' field.
11037         
11038         * reflection.c (mono_reflection_get_token): Add support for Module
11039         and Assembly.
11040         (mono_module_get_object): Set 'token' field.
11041         (mono_module_file_get_object): Set 'token' field.
11042
11043         * icall.c: Add new Assembly and Module icalls.
11044
11045         * appdomain.c: Bump corlib version.
11046
11047 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
11048
11049         * loader.h loader.c class.h class.c: Add helper functions for obtaining
11050         tokens of metadata objects.
11051
11052         * reflection.h reflection.c (mono_reflection_get_token): New function
11053         to obtain the token of a metadata object.
11054
11055         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
11056
11057 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
11058
11059         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
11060         
11061         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
11062
11063 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
11064
11065         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
11066         * object-internals.h: Added 3 MonoArray* members to MonoReflection
11067         AssemblyBuilder to access the permissions set in the class lib.
11068         * reflection.c: Added security attributes encoding step in 
11069         mono_image_build_metadata.
11070         * tabledefs.h: Added new security actions defined in 2.0:
11071         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
11072
11073 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
11074
11075         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
11076         macro parameter.
11077
11078 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
11079  
11080         * locales.c: nullify the ICU_collator member of CompareInfo when it is
11081           finalized. There where random SIGSEVs at program termination, when
11082           an object being finalized was trying to do a string comparison and
11083           the current culture was already finalized.
11084  
11085 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11086
11087         * threads.c: call thread_cleanup before finishing the thread if we get
11088         there.
11089
11090 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
11091
11092         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
11093         assemblies from the parent. Fixes #65665.
11094
11095 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
11096
11097         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
11098         modifiers.
11099
11100 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
11101
11102         * reflection.h: add prototype for mono_get_dbnull_object
11103         * reflection.c: add prototypes for get_default_param_value_blobs 
11104         and mono_get_object_from_blob for fussier compilers
11105
11106 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
11107  
11108         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
11109         false deadlock checks in class initialization.
11110  
11111 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
11112
11113         * image.c (mono_image_addref): Fix comment.
11114
11115         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
11116         possible.
11117
11118 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
11119
11120         * reflection.c (mono_param_get_objects): Modified to return
11121         ParameterInfo.DefaultValue object.
11122
11123         (get_default_param_value_blobs):
11124         (mono_get_object_from_blob):
11125         (mono_get_dbnull_object): New helper routines. 
11126
11127         * object.c (mono_get_constant_value_from_blob): New helper routine
11128         carved out from get_default_field_value ()
11129
11130         * object-internals.h (mono_get_constant_value_from_blob): Added
11131         function declaration.
11132
11133 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
11134
11135         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
11136         referenced assemblies. Fixes #62135.
11137
11138         * exception.h exception.c (mono_get_exception_file_not_found2): New
11139         helper function.
11140
11141 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
11142
11143         * class.h class.c: Add mono_type_get_underlying_type ().
11144
11145 2004-09-09  Geoff Norton <gnorton@customerndna.com>
11146
11147         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
11148         Fix GetTypes() to support dynamically created assemblies.
11149
11150 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
11151
11152         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
11153         
11154         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
11155         previous patch.
11156
11157         * reflection.h reflection.c loader.c: Allow dynamic construction of
11158         pinvoke methods. Fixes #65571.
11159         
11160         * reflection.c (mono_reflection_get_type): Revert previous change since
11161         it causes regressions.
11162
11163 2004-09-08  Martin Baulig  <martin@ximian.com>
11164
11165         * class.c (class_compute_field_layout): Don't call
11166         mono_class_layout_fields() for open generic instances.
11167
11168 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
11169         * threads.c appdomain.c: fix typo in GC macro
11170
11171 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11172
11173         * threads.c: don't call mono_thread_detach() in start_wrapper(),
11174         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
11175
11176 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
11177
11178         * image.c (mono_image_close): Applied patch from 
11179         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
11180         assembly is loaded multiple times from data.
11181         
11182         * image.c (mono_image_open): Fix warning.
11183
11184 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11185
11186         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
11187         once. Fixes #58334.
11188         
11189         * reflection.c (mono_reflection_create_runtime_class): Initialize
11190         klass->nested_classes. Fixes #61224.
11191
11192 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
11193
11194         * threads.c: sched_yield() on exit, to allow threads to quit.
11195
11196 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11197
11198         * object.c (mono_unhandled_exception): Remove leftover debug code.
11199
11200 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
11201
11202         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
11203
11204 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11205
11206         * marshal.c (emit_marshal_array): Really null terminate string arrays.
11207         
11208         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
11209
11210 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11211
11212         * marshal.c (emit_marshal_array): Null terminate string arrays.
11213         
11214         * marshal.c (raise_auto_layout_exception): Fix warning.
11215
11216         * reflection.c (mono_param_get_objects): Initialize the default value
11217         with DBNull.Value, not null. Fixes #62123.
11218
11219 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
11220
11221         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
11222         throw an exception with a cute explanation.
11223
11224 2004-09-06  Dick Porter  <dick@ximian.com>
11225
11226         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
11227         Close the new process's thread handle, as we don't use it.  The
11228         handle stays around forever otherwise.
11229
11230 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11231
11232         * object.c (arith_overflow): Fix warning.
11233
11234         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
11235         calling conventions in method refs. Fixes #65352.
11236
11237         * reflection.c: Fix warnings.
11238
11239 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
11240
11241         * icall.c: Add a new icall for Array.Clear
11242
11243 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
11244
11245         * object.c: When allocating an array, we have to throw
11246         an overflow exception if any of the lengths are < 0.
11247
11248 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11249
11250         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
11251         properly. Also move implementation of string array marshalling to 
11252         managed code. Fixes #42316.
11253
11254 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11255
11256         * assembly.c: provide more information when loading an assembly fails.
11257
11258 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11259
11260         * filewatcher.c: don't expect the development fam package to be
11261         installed.
11262
11263 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
11264
11265         * marshal.c: Make a copy of the signature cookie since it will be
11266         freed by the caller.
11267         
11268         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
11269
11270         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
11271
11272         * metadata.c (mono_metadata_free_marshal_spec): New function to free
11273         marshal specs.
11274
11275         * marshal.c: More refactoring.
11276         
11277         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
11278         smaller functions.
11279
11280 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
11281
11282         * object.c: In mono_message_invoke, fill the output parameter array after
11283           calling the managed method (it was done before the call). This fixes
11284           bug #59299.
11285
11286 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
11287
11288         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
11289         as well.
11290
11291 2004-09-02  Martin Baulig  <martin@ximian.com>
11292
11293         * class.c (mono_class_instance_size): Don't allow generic type
11294         definitions or open generic instances.
11295         (mono_class_array_element_size): If we're a value type, call
11296         mono_class_instance_size() on the original class.
11297
11298         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
11299         handle generic instances.
11300
11301         * mono-debug-debugger.c (write_type): Handle generic instances
11302         like classes.
11303
11304 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
11305
11306         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
11307         the allocation request fails. Fixes #65089.
11308
11309         * object.c (mono_runtime_free_method): Do not call mono_free_method.
11310         
11311         * object.c (mono_runtime_free_method): New function to free a dynamic
11312         method.
11313
11314         * marshal.c (mono_delegate_free_ftnptr): New function to free the
11315         delegate trampoline.
11316
11317         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
11318         with hasthis as dynamic,
11319
11320         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
11321
11322         * domain.c (mono_jit_info_table_remove): New function to remove an
11323         entry from the jit info table.
11324
11325         * class-internals.h (MonoMethod): Add 'dynamic' field.
11326
11327         * loader.c: Fix warnings.
11328
11329 2004-09-01  Martin Baulig  <martin@ximian.com>
11330
11331         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
11332         instead of mono_debugger_lock() because the latter one is a no-op
11333         unless running in the debugger.
11334
11335 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
11336
11337         * class.c (class_compute_field_layout): Classes with auto-layout or
11338         reference fields are not blittable.
11339         
11340 2004-09-01  Dick Porter  <dick@ximian.com>
11341
11342         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
11343         mono_image_get_filename() to get the assembly location.
11344
11345         * icall.c:
11346         * metadata.h: Fix compile warnings
11347
11348 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
11349
11350         * class.c (class_compute_field_layout): System.Object is blittable.
11351
11352         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
11353         as in/out. Fixes #59909.
11354
11355 2004-09-01  Martin Baulig  <martin@ximian.com>
11356
11357         * metadata.h (MONO_TYPE_ISREFERENCE): Call
11358         mono_metadata_generic_inst_is_valuetype() if we're a generic
11359         instance to check whether our underlying type is a reference type.
11360
11361 2004-09-01  Martin Baulig  <martin@ximian.com>
11362
11363         * metadata.c (mono_type_size): If we're a generic instance, call
11364         mono_class_value_size() for value types.
11365
11366 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
11367
11368         * marshal.c: Implement more custom marshalling functionality. Fixes
11369         #64915.
11370
11371 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
11372
11373         * mono-debug.c, debug-mono-symfile.c: add some locking love.
11374
11375 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
11376
11377         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
11378
11379         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
11380
11381         * icall.c: Fix some warnings.
11382
11383         * threads.c (abort_appdomain_thread): Fix unref errors.
11384         (mono_thread_current): Fix THREAD_DEBUG define.
11385
11386 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
11387
11388         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
11389
11390         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
11391
11392 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
11393
11394         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
11395         string arrays.
11396
11397 2004-08-28  Martin Baulig  <martin@ximian.com>
11398
11399         * metadata.c
11400         (mono_metadata_generic_inst_is_valuetype): New public function.
11401
11402         * metadata.h (MONO_TYPE_ISSTRUCT): Call
11403         mono_metadata_generic_inst_is_valuetype() if we're a generic
11404         instance to check whether our underlying type is a valuetype.
11405
11406 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
11407
11408         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
11409         #63768.
11410
11411 2004-08-25  Martin Baulig  <martin@ximian.com>
11412
11413         * loader.c (mono_get_method_from_token): Abstract methods can also
11414         be generic and thus have type parameters.
11415
11416         * metadata-internals.h
11417         (MonoDynamicImage): Added `GPtrArray *gen_params'.
11418
11419         * reflection.c (mono_image_get_generic_param_info): Don't create a
11420         metadata row, just add an entry to the `gen_params' array.
11421         (build_compressed_metadata): Sort the `gen_params' array and then
11422         actually create the metadata.
11423
11424 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11425
11426         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
11427
11428 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
11429
11430         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
11431
11432 2004-08-24  Martin Baulig  <martin@ximian.com>
11433
11434         * class.cs (mono_class_is_subclass_of): Like an interface, a
11435         generic instance also derives from System.Object.
11436
11437 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
11438
11439         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
11440         custom modifiers to be in any order. Fixes #61990.
11441
11442 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
11443
11444         * object.c: Register mono_object_new_fast icall.
11445         
11446         * object.c (mono_class_get_allocation_ftn): Return to calling
11447         mono_object_new_fast, since it seems faster to compute the object 
11448         size in unmanaged code than passing it as a parameter.
11449
11450         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
11451
11452         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
11453         this function with Boehm as the oom handler, so we don't have to check
11454         the result of GC_malloc.
11455
11456         * object.c: Remove checks for oom.
11457
11458         * object.h object.c (mono_class_get_allocation_ftn): New function to
11459         return the icall which can be used to allocate an instance of a given
11460         class. 
11461
11462         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
11463
11464         * class-internals.h: Add 'enabled' field.
11465
11466 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
11467
11468         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
11469
11470 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
11471         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
11472         value 0x0010.
11473
11474 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
11475
11476         * appdomain.c: use the Tls function for appdomain too,
11477         at Zoltan's request. Actually return in mono_context_get
11478
11479         * appdomain.c, profiler.c, threads.c: use __thread
11480
11481 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
11482
11483         * appdomain.c threads.c: Call GC_CreateThread on windows.
11484
11485         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
11486         multiple libraries since this don't work on windows.
11487
11488 2004-08-18  Martin Baulig  <martin@ximian.com>
11489
11490         * class-internals.h
11491         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
11492         MonoMethodHeader.
11493
11494         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
11495         MonoMethodNormal since we also need it for abstract and interface
11496         methods.
11497
11498         * reflection.c
11499         (build_compressed_metadata): Sort the GenericParam table.
11500         (mono_image_create_token): Added `gboolean create_methodspec'
11501         argument; this is false when generating a MethodImpl token.
11502         (reflection_methodbuilder_to_mono_method): Abstract and interface
11503         methods may also have generic parameters.
11504
11505 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
11506
11507         * appdomain.c: thread local alloc
11508
11509 2004-08-17  Martin Baulig  <martin@ximian.com>
11510
11511         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
11512
11513         * icall.c
11514         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
11515         argument.
11516
11517         * class.c (mono_type_get_full_name): New public function.
11518         (mono_type_get_name): Don't include the type arguments.
11519
11520 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
11521
11522         * Makefile.am: Build static versions of libmetadata and libmonoruntime
11523         for inclusion into the mono executable.
11524
11525 2004-08-16  Martin Baulig  <martin@ximian.com>
11526
11527         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
11528         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
11529
11530 2004-08-14  Martin Baulig  <martin@ximian.com>
11531
11532         * class.c (dup_type): Also copy the `byref' field.
11533
11534 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
11535
11536         * reflection.c (create_dynamic_mono_image): Revert the last change 
11537         since it breaks bootstrap.
11538
11539 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
11540
11541         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
11542
11543         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
11544         not free them with g_free.
11545
11546 2004-08-11  Martin Baulig  <martin@ximian.com>
11547
11548         * reflection.c (mono_reflection_setup_internal_class): Also call
11549         mono_class_setup_mono_type() if we already have a `tb->type.type'.
11550
11551 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
11552
11553         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
11554         called during default (first) AppDomain creation. Keep track of
11555         Evidence when loading assemblies.
11556
11557 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
11558
11559         * opcodes.c, opcodes.h: reduce runtime relocations.
11560
11561 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
11562
11563         * culture-info.h, locales.c: fixes and chages to sue the new
11564         optimized format of the locale data.
11565         * culture-info-tables.h: regenerated.
11566
11567 2004-08-06  Geoff Norton <gnorton@customerdna.com>
11568         
11569         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
11570
11571 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
11572
11573         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
11574         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
11575         * domain-internals.h: icall declaration.
11576         * icall.c: icall registration.
11577         * object-internals.h: New fields in MonoAssembly for CAS.
11578
11579 2004-08-05  Duncan Mak  <duncan@ximian.com>
11580
11581         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
11582         CEE_LDELEM_ANY.
11583
11584 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
11585
11586         * reflection.c: fix to deal with object[] arrays in custom ctors
11587         (bug #62550).
11588
11589 2004-08-05  Martin Baulig  <martin@ximian.com>
11590
11591         * class.c (mono_class_array_element_size): Added support for
11592         generic instances and correctly handle "recursive" types.
11593
11594 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
11595
11596         * assembly.c: Fix warnings.
11597
11598 2004-08-04  Martin Baulig  <martin@ximian.com>
11599
11600         * class.c
11601         (mono_type_get_name_recurse): Added `gboolean include_arity'
11602         argument specifying whether or not we should include the generic
11603         arity in the type name.
11604         (_mono_type_get_name): New static function.
11605         (mono_class_setup_vtable): If we're a generic instance, don't
11606         include the generic arity in the names of explicit method
11607         implementations.        
11608
11609 2004-08-03  Martin Baulig  <martin@ximian.com>
11610
11611         * class.c (mono_type_get_name_recurse): Enclose the generic type
11612         arguments in `<', '>'.
11613
11614 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11615
11616         * gc.c: make GC warning messages use the trace API, they are just
11617         noise to most of the users.
11618
11619 2004-08-03  Martin Baulig  <martin@ximian.com>
11620
11621         * debug-mono-symfile.c (read_string): Correctly read the string.
11622
11623 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
11624
11625         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
11626         
11627         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
11628         icalls.
11629         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
11630
11631 2004-07-30  Martin Baulig  <martin@ximian.com>
11632
11633         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
11634         Reflect latest symbol writer changes.   
11635
11636 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
11637
11638         * object.c: always create an object if null is passed
11639         to Invoke() where a valuetype is expected.
11640
11641 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
11642
11643         * marshal.c (mono_marshal_init): make managed
11644         signatures match native ones better for 64bits.
11645
11646 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11647
11648         * appdomain.c: hack to build correctly the private bin path on windows.
11649         Fixes bug #61991.
11650
11651 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
11652
11653         * assembly.c: Load mscorlib from the correct framework directory
11654           (mono/<version>/mscorlib.dll).
11655         * appdomain.h: Added prototypes for new functions.
11656         * internals.h: Added some prototypes.
11657         * domain.c: When initializing the runtime, get from the executable and
11658           the configuration files the runtime version that the app supports.
11659           Added support methods for reading app.exe.config. Added list of versions
11660           supported by the JIT. Added two new methods: mono_init_from_assembly,
11661           which initializes the runtime and determines the required version from
11662           the provided exe file, and mono_init_version, which initializes
11663           the runtime using the provided version.
11664         * icall.c: Get machine.config from version-specific directory.
11665         * reflection.c: When generating an image, embed the version number
11666           of the current runtime.
11667
11668 2004-07-28  Dick Porter  <dick@ximian.com>
11669
11670         * socket-io.c
11671         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
11672         returned sockaddr size before creating the remote address object.
11673         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
11674         61608.
11675
11676 2004-07-28  Dick Porter  <dick@ximian.com>
11677
11678         * locales.c (string_invariant_compare_char): Fix invariant char
11679         compares between upper and lower cases.  Fixes bug 61458.
11680
11681 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
11682         
11683         * marshal.c: actually cache stelem.ref wrappers.
11684         
11685 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
11686
11687         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
11688         sections and remove the mono_cli_rva_map () function.
11689
11690 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
11691
11692         * debug-mono-symfile.c: fix one more endianess issue, from a patch
11693         by Geoff Norton (<gnorton@customerdna.com>).
11694
11695 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11696
11697         * class.c: fix class loads for pointer types (typeof(int) !=
11698         typeof(int*)).
11699
11700 2004-07-27  Martin Baulig  <martin@ximian.com>
11701
11702         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
11703         reading the debugging information from an external ".mdb" file.
11704
11705 2004-07-24  Martin Baulig  <martin@ximian.com>
11706
11707         * reflection.c (mono_image_get_type_info): Only write a class
11708         layout entry if we actually have a size or a packing size.
11709
11710 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
11711
11712         * reflection.c (type_get_fully_qualified_name): 
11713         insert cast to get type checking of ?: with non-gcc compilers
11714
11715 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
11716
11717         * rand.c: use g_getenv for both lookups of
11718         MONO_EGD_SOCKET
11719
11720 2004-07-17  Martin Baulig  <martin@ximian.com>
11721
11722         * reflection.c (mono_reflection_bind_generic_method_parameters):
11723         Set `gmethod->reflection_info'.
11724
11725 2004-07-17  Martin Baulig  <martin@ximian.com>
11726
11727         * class.c (mono_class_create_from_typedef): Insert the newly
11728         created class into the hash table before computing the interfaces
11729         since we could be called recursively.
11730
11731 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
11732
11733         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
11734         function to implement stelem.ref in managed code
11735         * class-internals.h, debug-helpers.c: a new wrapper type
11736         for the above.
11737
11738 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
11739
11740         * gc.c: allow GC handles to work even when no GC is compiled in.
11741         Fix part of bug #61134 (GetAddrOfPinnedObject).
11742
11743 2004-07-13  Peter Williams  <peter@newton.cx>
11744  
11745         * process.c (complete_path): Make sure we don't attempt to execute
11746         directories.
11747  
11748 2004-07-12  Geoff Norton <gnorton@customerdna.com>
11749
11750         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
11751           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
11752           and will add/subtract the hour if needed
11753
11754 2004-07-12  Martin Baulig  <martin@ximian.com>
11755
11756         * reflection.c (mono_field_get_object): If we have
11757         `field->generic_info', take the attributes from
11758         `field->generic_info->generic_type'.    
11759
11760 2004-07-12  Martin Baulig  <martin@ximian.com>
11761
11762         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
11763         This function must be called before initializing the runtime.
11764         (mono_debug_init_1): New function; call this after initializing
11765         the runtime, but before loading the assembly.  It tells the
11766         debugger to load corlib and the builtin types.
11767
11768         * mono-debug-debugger.c: Did some larger changes in the debugging
11769         code; support recursive class declarations, make sure we actually
11770         add all classes.
11771
11772 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11773
11774         * debug-helpers.c: undo my previous patch and fixed the real issue in
11775         ../mini/exceptions-x86.c
11776
11777 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11778
11779         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
11780         when no HOME env. variable was set and a NullRef was thrown in a .cctor
11781         called from other .cctors.
11782
11783 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
11784
11785         * loader.c: Removed the mono_loader_wine_init hack now that we are
11786         doing a managed version of Windows.Forms.
11787
11788 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
11789
11790         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
11791         threadpool.c, threads.c: remove static data from rootset.
11792
11793 2004-07-09  Dick Porter  <dick@ximian.com>
11794
11795         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
11796         Don't do any more processing if the matched length was 0.  It was
11797         increasing the size of the string before.  Fixes bug 61167.
11798
11799 2004-07-09  Dick Porter  <dick@ximian.com>
11800
11801         * socket-io.h:
11802         * socket-io.c
11803         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
11804         Add support for SO_PEERCRED if its available.
11805
11806 2004-07-09  Peter Bartok <pbartok@novell.com>
11807         * loader.c: winelib.exe.so error message is now only displayed if
11808         MONO_DEBUG is set. To help us avoid questions when people are trying
11809         out the new Managed.Windows.Forms.
11810
11811 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
11812
11813         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
11814         for isinst and castclass wrappers.
11815
11816         * class-internals.h icall.c: Move registration and lookup of JIT icalls
11817         to libmetadata from the JIT, so they could be used by the marshalling
11818         code and the interpreter.
11819
11820         * marshal.c: Register marshalling related JIT icalls here instead of
11821         in mini.c. Use CEE_MONO_ICALL instead of the family of 
11822         CEE_MONO_PROC<x> opcodes to call marshalling functions.
11823
11824         * metadata.h: Remove unneeded marshalling conversions.
11825
11826         * opcodes.c: Update for new opcodes.
11827         
11828 2004-07-08  Martin Baulig  <martin@ximian.com>
11829
11830         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
11831         (mono_debug_get_domain_data): Make this function static.
11832
11833 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
11834
11835         * gc.c, object.h: add nice GC handle API for embedders.
11836
11837 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
11838
11839         * reflection.c: more changes for the new api
11840
11841         * object.c: When we reflect on a field w/ a constant value, it
11842         will not have a memory location, so we must access metadata. Also,
11843         allow easier reading of strings so that we can read them from
11844         the constant data.
11845
11846         * class.c (mono_class_layout_fields): no need for literal fields here.
11847
11848         * class-internals.h: api changes for const fields
11849
11850         * icall.c (ves_icall_get_enum_info): use new apis for const fields
11851
11852 2004-07-06  Martin Baulig  <martin@ximian.com>
11853
11854         * mono-debug.h: Increment version number to 44.
11855
11856         * mono-debug.c (mono_debug_add_wrapper): The second argument is
11857         now a gpointer, rewrote this whole method.
11858
11859         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
11860         function.  Add information about the wrapper in a new "misc table".
11861
11862         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
11863         for the new misc table.
11864
11865 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
11866
11867         * metadata-internals.h image.c: Add a cache for helper signatures.
11868
11869         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
11870
11871 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
11872
11873         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
11874         delegates from a delegate. Fixes #61033.
11875         
11876         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
11877         marshalling of stringbuilder arrays. Fixes #59900.
11878
11879 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
11880
11881         * icall.c: Add EnumBuilder:setup_enum_type icall.
11882
11883 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
11884
11885         * icall.c: Added a new icall for the property version of
11886         OffsetOfStringData.
11887
11888 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
11889
11890         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
11891         it has a constant size across platforms.
11892
11893         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
11894         stack trace.
11895
11896 2004-06-29  Martin Baulig  <martin@ximian.com>
11897
11898         * mono-debug.c (mono_debug_add_method): Protect the whole function
11899         in mono_debugger_lock(), not just parts of it.
11900
11901 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
11902
11903         * reflection.c: make sure padding bytes in heaps are zeroed.
11904
11905 2004-06-24  David Waite  <mass@akuma.org>
11906
11907         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
11908         image.c, loader.c, locales.c, marshal.c, metadata.c,
11909         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
11910         string-icalls.c, threads.c: change to C90-style comments from C99 /
11911         C++ -style
11912
11913 2004-06-24  Dick Porter  <dick@ximian.com>
11914
11915         * threads.c
11916         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
11917         return createdNew.  Fixes bug 60412.
11918
11919         * threads-types.h: 
11920         * icall.c: Add createdNew parameter to CreateMutex icall
11921
11922 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
11923
11924         * reflection.c, object-internals.h: save default value in params.
11925
11926 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11927
11928         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
11929         no need to build a new path combining that with the application base.
11930         Fixes bug #60442.
11931
11932 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
11933
11934         * reflection.c: fixed minor standard compliance issues.
11935
11936 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
11937
11938         * reflection.c: fixed issue with encoding some custom attributes
11939         (arrays in properties and fields, bug #60411).
11940
11941 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11942
11943         * reflection.c: fix start address when copying the public key token.
11944
11945 2004-06-23  Martin Baulig  <martin@ximian.com>
11946
11947         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
11948         the `exc' object in a static object to put it into the GC's root set.
11949
11950 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
11951
11952         * reflection.c: make mono_reflection_setup_internal_class ()
11953         callable a second time to setup a new parent class.
11954
11955 2004-06-23  Dick Porter  <dick@ximian.com>
11956
11957         * threads.c: Check for WAIT_IO_COMPLETION return values.
11958
11959 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
11960
11961         * appdomain.c: Removed the g_free on the public key token. Now copy 
11962         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
11963         * assembly.c: Added public key token string value when loading 
11964         assemblies. Fix bug #60439.
11965         * icall.c: Added missing informations (like public key) in 
11966         GetReferencedAssemblies. Fix #60519.
11967         * image.h: Changed definition for public key token from const char*
11968         public_tok_value to guchar public_key_token [17];
11969         * reflection.c: Updated for changes to public key token.
11970
11971 2004-06-22  Lluis Sanchez Gual
11972
11973         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
11974         for the field in base classes.
11975
11976 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
11977
11978         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
11979         mark headers as not supported, they are installed only for use by the
11980         debugger.
11981
11982 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
11983
11984         * *.c, *.h: avoid namespace pollution in public headers.
11985
11986 2004-06-21  Martin Baulig  <martin@ximian.com>
11987
11988         * exception.c (mono_get_exception_security): It's in
11989         "System.Security", not in "System".
11990
11991         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
11992         the exception classes.
11993
11994 2004-06-21  Martin Baulig  <martin@ximian.com>
11995
11996         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
11997         Protect the exception object from being finalized.
11998
11999 2004-06-21  Martin Baulig  <martin@ximian.com>
12000
12001         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
12002         public function.
12003
12004 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
12005
12006         * reflection.c: Load the assembly in mono_reflection_type_from_name,
12007         if it was not loaded before. Fix parts of #60439.
12008
12009 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
12010
12011         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
12012         code that was broken since Ben's change: wrappers are now
12013         dependent on the method signature only again.
12014
12015 2004-06-21  Martin Baulig  <martin@ximian.com>
12016
12017         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
12018         added interface support.
12019
12020 2004-06-21  Martin Baulig  <martin@ximian.com>
12021
12022         * class.c (mono_vtable_get_static_field_data): New public method.
12023
12024 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
12025
12026         * filewatcher.c : Windows build fix to be compliant with API changes.
12027
12028 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
12029
12030         * class.h, class.c: more accessors.
12031         * metadata.h, metadata.c: prepare for hiding MonoType and
12032         MonoMethodSignature: people should use the accessors from now on
12033         outside of the tree.
12034
12035 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
12036
12037         * *.c, *.h: more API cleanups.
12038
12039 2004-06-18  Jackson Harper  <jackson@ximian.com>
12040
12041         * assembly.c: Trace loading assemblies.
12042         * loader.c: Trace loading native libraries.
12043         * mono-config.c: Trace loading config files.
12044         
12045 2004-06-18  Dick Porter  <dick@ximian.com>
12046
12047         * locales.c: Tell ICU the lengths of strings, it can cope with
12048         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
12049
12050 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
12051
12052         * image.c: swapped name/filename;
12053
12054 2004-06-18  Martin Baulig  <martin@ximian.com>
12055
12056         * mono-debug-debugger.c (write_class): Write the parent class at
12057         the end of the header.
12058
12059 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
12060
12061         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
12062
12063 2004-06-17  Raja R Harinath  <rharinath@novell.com>
12064
12065         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
12066         (bundle_obj): New conditional define.
12067         (BUILT_SOURCES): Remove.
12068         ($(bundle_srcs)): Make parallel-make safe.
12069         (libmonoruntime_la_LIBADD): Make unconditional.
12070         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
12071         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
12072
12073 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
12074
12075         * culture-info-tables.h: It was inconsistent with the latest
12076           supp info files.
12077
12078 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
12079
12080         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
12081         be loaded.
12082
12083         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
12084         with gcc 2.95.
12085
12086 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
12087
12088         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
12089         cleaned up public header threads.h.
12090
12091 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
12092
12093         * Makefile.am, *.c, *.h: more API cleanups.
12094
12095 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
12096
12097         * Makefile.am: removed monosn from compilation.
12098         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
12099         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
12100         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
12101         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
12102         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
12103         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
12104
12105 2004-06-15  Jackson Harper  <jackson@ximian.com>
12106
12107         * assembly.c: Make locales lower case when searching the GAC for
12108         assemblies. gacutil will always make locales lowercase when
12109         installing so this effectively makes them case insensitive.
12110         
12111 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
12112
12113         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
12114         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
12115           parameter which allows to choose whether the wait can be interrupted or 
12116           not. Also added the method mono_monitor_enter(), which locks the monitor
12117           using an infinite wait and without allowing interruption.
12118           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
12119           interrupted.
12120         * object.h: Added new fields in MonoThread. suspend_event holds the event
12121           used to susped/resume the thread. synch_lock is the lock object to use for
12122           modifying the thread state.
12123         * threads.c: Use the new synch_lock object for locking, instead of "this",
12124           which can generate deadlocks.
12125           Moved thread state change in Thread.Sleep and Thread.Join from managed
12126           to unmanaged code. This avoids a deadlock when the thread was suspended
12127           just after acquiring the thread lock.
12128           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
12129           Implemented Thread.Suspend using an event instead of ThreadSuspend,
12130           which is not fully implemented in the io-layer.
12131         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
12132
12133 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
12134
12135         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
12136         threads-types.h: more API cleanups.
12137
12138 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
12139
12140         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
12141         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
12142         threadpool.c, threads.c: first pass at the exported API cleanup.
12143
12144 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
12145
12146         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
12147
12148 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12149
12150         * icall.c: added internalGetHome.
12151
12152 2004-06-14  Dick Porter  <dick@ximian.com>
12153
12154         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
12155         possible to return successfully when '.' or '..' were the only
12156         entries in a directory, but were skipped.  The MonoIOStat was not
12157         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
12158         Fixes bug 59574.
12159
12160 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
12161
12162         * reflection.c: make binaries run on .Net 1.1 by default.
12163
12164 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
12165
12166         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
12167
12168 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
12169
12170         * marshal.c: keep track of struct size with explicit layout
12171         (bug #59979).
12172
12173 2004-06-12  Martin Baulig  <martin@ximian.com>
12174
12175         * mono-debug-debugger.c: Comment out a debugging g_message().
12176
12177 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
12178
12179         * reflection.c, reflection.h: do not free custom attrs that are cached.
12180         * icall.c: use braces to make code clearer.
12181
12182 2004-06-11  Martin Baulig  <martin@ximian.com>
12183
12184         * class.h (MonoInflatedField): New type.
12185         (MonoClassField): Replaced `MonoType *generic_type' with
12186         `MonoInflatedField *generic_info'.
12187
12188         * icall.c
12189         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
12190
12191 2004-06-11  Martin Baulig  <martin@ximian.com>
12192
12193         * reflection.c (mono_image_create_method_token): Correctly encode
12194         varargs methods.
12195
12196 2004-06-11  Martin Baulig  <martin@ximian.com>
12197
12198         * metadata.c (mono_metadata_parse_method_signature): When parsing
12199         a MethodDef which has VarArgs, also set sentinelpos if we don't
12200         have any parameters.
12201
12202 2004-06-11  Martin Baulig  <martin@ximian.com>
12203
12204         * verify.c (mono_method_verify): In CEE_CALL, use
12205         mono_method_get_signature() to get the method's signature, unless
12206         we're a PInvoke method.
12207
12208 2004-06-10  Jackson Harper  <jackson@ximian.com>
12209
12210         * assembly.c: Use <path>/lib/mono/gac for the extra paths
12211         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
12212         logical name as the supplied path is just a prefix to the gac not
12213         the direct path to it.
12214         
12215 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
12216
12217         * reflection.c: make the token for a created method match
12218         the token of the MethodBuilder it was created from
12219         (IKVM requires this behaviour now).
12220
12221 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
12222
12223         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
12224         reflection.c, socket-io.c: leak fixes.
12225
12226 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
12227
12228         * icall.c: handle sentinel pos in vararg methods in position different
12229         from 0.
12230
12231 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12232
12233         * culture-info-tables.h: freshly generated.
12234
12235 2004-06-09  Martin Baulig  <martin@ximian.com>
12236
12237         * loader.c (mono_get_method_constrained): Call `mono_class_init
12238         (constrained_class)'.   
12239
12240 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
12241
12242         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
12243         any methods. Fixes #59629.
12244
12245 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12246
12247         * culture-info-tables.h: reflecting locale-builder updates.
12248
12249 2004-06-08  Dick Porter  <dick@ximian.com>
12250
12251         * object.h:
12252         * locales.c: Fixed compile warnings, including a real bug in
12253         CompareInfo_internal_compare.
12254         
12255 2004-06-08  Dick Porter  <dick@ximian.com>
12256
12257         * locales.c
12258         (ves_icall_System_Globalization_CompareInfo_internal_index):
12259         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
12260         Double-check the resuls of usearches, because ICU currently
12261         ignores most of the collator settings here.  Fixes bug 59720.
12262         
12263 2004-06-08  Dick Porter  <dick@ximian.com>
12264
12265         * locales.c
12266         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
12267         Fix memory leak and segfault-causing typo.  No idea how this one
12268         lasted so long without being noticed.
12269
12270 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
12271
12272         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
12273         any methods. Fixes #59629.
12274
12275 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12276
12277         * assembly.c:
12278         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
12279         own the critical section before). Removed dead code (that's done
12280         in the preload hook).
12281
12282         (mono_assembly_load_with_partial_name): call the preload hook.
12283
12284 2004-06-08  Martin Baulig  <martin@ximian.com>
12285
12286         * metadata.c (mono_metadata_signature_alloc): Default
12287         `sentinelpos' to -1.
12288
12289         * reflection.c (mono_image_get_array_token): Likewise.
12290
12291 2004-06-08  Martin Baulig  <martin@ximian.com>
12292
12293         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
12294
12295         * metadata.c (mono_metadata_parse_method_signature): When parsing
12296         a MethodDef which has VarArgs, set sentinelpos.
12297
12298         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
12299         `gint16' since we're using -1 for non-varargs methods.
12300
12301         * reflection.c
12302         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
12303         (method_encode_signature): Added varargs support.
12304         (method_builder_encode_signature): Likewise.
12305         (mono_image_get_varargs_method_token): New static method.
12306         (mono_image_create_method_token): New public method; this is
12307         called via an icall instead of mono_image_create_token() when
12308         calling a varargs method.       
12309
12310 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
12311
12312         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
12313
12314 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12315
12316         * culture-info-tables.h : Reflecting the latest locale-builder that
12317           fixed empty array representation ({} to {0}).
12318
12319 2004-06-07  Jackson Harper  <jackson@ximian.com>
12320
12321         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
12322         looking up extra gac paths. This allows MONO_GAC_PATH to act
12323         exactly like a prefix.
12324         
12325 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
12326
12327         * reflection.c (mono_reflection_type_from_name): Make a copy of the
12328         type name before modifying it. Fixes #59405.
12329
12330 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12331
12332         * culture-info.h: added fields for "all datetime patterns".
12333         * locales.c: (  ves_icall_System_Globalization_CultureInfo
12334           _construct_datetime_format ()): fill xxx_patterns fields.
12335         * object.h: added fields for "all datetime patterns" to
12336           MonoDateTimeFormatInfo.
12337         * culture-info-tables.h: reflecting locale-builder updates.
12338
12339 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
12340
12341         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
12342         the event has no add and remove methods. Fixes #59629.
12343
12344 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
12345
12346         * object.c: Fixed possible integer overflow when allocating large
12347         strings.
12348
12349 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
12350
12351         * culture-info-tables.h: reflecting locale-builder updates.
12352
12353 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
12354
12355         * culture-info-tables.h: reflecting locale-builder updates.
12356
12357 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
12358
12359         * culture-info-tables.h: reflecting locale-builder updates.
12360
12361 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
12362
12363         * threads.c: Made Thread.Sleep abortable.
12364
12365 2004-06-02  Martin Baulig  <martin@ximian.com>
12366
12367         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
12368
12369         * debug-mono-symfile.h: Bumped symbol file version number to 37.
12370
12371 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
12372
12373         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
12374
12375 2004-05-30  Jackson Harper  <jackson@ximian.com>
12376
12377         * reflection.c: Do not hardcode assembly versions or public key
12378         tokens anymore. All of this except the corlib section was dead
12379         code anyways.
12380         
12381 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
12382
12383         * object.c (mono_runtime_invoke_array): Automatically create boxed
12384         objects for byref valuetypes if needed. Fixes #59300.
12385         
12386         * object.c (mono_method_return_message_restore): Handle 
12387         MONO_TYPE_OBJECT as well.
12388
12389 2004-05-28  Jackson Harper  <jackson@ximian.com>
12390
12391         * reflection.c: The modified type encoding was causing build
12392         problems. Reverted for now.
12393         
12394 2004-05-28  Jackson Harper  <jackson@ximian.com>
12395
12396         * reflection.c/h: Take an assembly ref so that we dont create
12397         fully qualified names when encoding types in the same assembly as
12398         the custom attribute being emitted.
12399         * appdomain.c: Increment version number.
12400         
12401 2004-05-26  Duncan Mak  <duncan@ximian.com>
12402
12403         * icall.c
12404         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
12405         Set the full version number (major, minor, build, revision).
12406
12407 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
12408
12409         * marshal.c (emit_struct_conv): increment src/dst after blit
12410         (mono_marshal_get_managed_wrapper,
12411         mono_marshal_get_native_wrapper): make sure we have marshalling
12412         info before marshalling params (info computation affects
12413         blittable)
12414
12415         * class.c (class_compute_field_layout): correctly deal with
12416         blittable
12417         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
12418         value types (as per what windows dows by default)
12419         (mono_class_setup_mono_type): System.ValueType is blittable
12420         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
12421         blittable
12422
12423         * marshal.c (mono_marshal_load_type_info): flag types  as
12424         non-blittable if the native layout doesn't match the managed
12425         layout
12426
12427 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12428
12429         * appdomain.c: don't add stuff in the private search path that is
12430         above the application base. If application base is not set, there's
12431         no private search path.
12432
12433 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
12434
12435         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
12436         byref struct arguments in native->managed marshalling.
12437
12438 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
12439
12440         * marshal.c (mono_marshal_get_runtime_invoke): correctly
12441         cache methods using signature (special case for methods
12442         that are value type or string class)
12443         
12444         * image.c (mono_image_close): clean up allocated GSList's
12445         in runtime_invoke_cache.
12446
12447 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12448
12449         * mono-config.c: set the correct path for mono_cfg_dir on windows when
12450         there's no MONO_CFG_DIR environment variable defined.
12451
12452 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12453
12454         * threads.c: windows version must be >= 0x0500 to include OpenThread.
12455
12456 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
12457
12458         * threadpool.c: Really wait for 500ms after the async call, even if the wait
12459           is interrumped.
12460         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
12461           before waiting for it, and call CloseHandle after the wait to unref it.
12462           This will make sure that handles are not disposed too early.
12463
12464 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12465
12466         * appdomain.c:
12467         * appdomain.h:
12468         * icall.c: removed
12469         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
12470         needed now.
12471
12472         * object.c: se the application_base only for the domain that runs
12473         Main. Fixes bug #59216,
12474
12475 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12476
12477         * appdomain.c:
12478         * object.c: only the domain in which Main is run have
12479         SetupInformation.ConfigurationFile set, so moved a few lines from
12480         appdomain.c to object.c.
12481
12482 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12483
12484         * appdomain.c: we tried to load [name].(dll|exe), but according
12485         to bug #57710, we must also try [culture]/[name].(dll|exe) and
12486         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
12487         There's a test case attached to bug #58922.
12488
12489 2004-05-27  Dick Porter  <dick@ximian.com>
12490
12491         * icall.c:
12492         * file-io.c: Implemented icalls for locking and unlocking regions
12493         in a file.
12494         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
12495         FALSE on error (fixes both compiler warning and real bug.)
12496
12497 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
12498
12499         * culture-info-tables.h: reflecting locale-builder updates.
12500
12501           (Added missing ChangeLog entry for 05/26)
12502
12503 2004-05-27  Jackson Harper  <jackson@ximian.com>
12504
12505         * locales.c: Fix some cut and paste errors.
12506         
12507 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12508
12509         * mono-config.c: set the correct path for config. directory on windows.
12510
12511 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
12512
12513         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
12514           on win32.
12515
12516 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
12517
12518         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
12519         from pinvoke functions.
12520         
12521         * marshal.c (mono_ftnptr_to_delegate): Implement this.
12522
12523 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
12524
12525         * culture-info-tables.h: reflecting locale-builder updates.
12526
12527 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
12528
12529         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
12530         #59086.
12531
12532 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
12533
12534         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
12535         * icall.c: Modified icalls for RNG.
12536         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
12537         Windows (CryptoAPI).
12538
12539 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
12540
12541         * locales.c: Fix build.
12542
12543 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
12544
12545         * culture-info-tables.h: reflecting locale-builder updates.
12546
12547 2004-05-25  Jackson Harper  <jackson@ximian.com>
12548
12549         * locales.c: When creating the current culture use the $LANGs
12550         specific culture. So DateTimeFormat and NumberFormat entries are created.
12551         
12552 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
12553
12554         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
12555         a char array as parameter.
12556
12557 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
12558
12559         * image.c: In mono_image_open(), always use an absolute path name to
12560           look for already loaded images.
12561
12562 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
12563
12564         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
12565         missing in the windows build (like older cygwin include files).
12566
12567 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
12568
12569         * icall.c: Fixed check for possible integer overflow in Buffer_
12570         BlockCopy icall. Replaced comments style // by /* */.
12571
12572 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
12573
12574         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
12575         
12576         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
12577         check after MONO_VTADDR. Fixes pinvoke2.exe.
12578
12579         * marshal.h marshal.c metadata.h: Add beginnings of support for
12580         ftnptr -> delegate marshalling.
12581
12582 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
12583
12584         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
12585         * threads.c: Fix warnings.
12586
12587 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
12588
12589         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
12590         * icall.c: Registered icalls for Suspend and Resume.
12591         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
12592           Thread.Abort.
12593         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
12594         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
12595         * process.c: Use WaitForSingleObjectEx.
12596         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
12597           checkpoints.
12598         * threads.c, threads.h: Make use of new Ex wait methods. Improved
12599           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
12600           for Suspend and Resume. Added new mono_thread_stop, used for stoping
12601           background threads. Added basic support for Abort in Windows.
12602           Start new threads using a managed delegate invoke wrapper. This wrapper
12603           has an interruption checkpoint that is needed since an interruption
12604           can be requested before the thread leaves the unmanaged code that starts 
12605           the thread.
12606         * marshal.c: Added interruption checkpoint after every native call, and
12607           also before managed calls for wrappers called from unmanaged code to
12608           go into managed code.
12609         * object.h: Added new field in MonoThread to keep track of interruption
12610           requests.
12611
12612 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
12613
12614         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
12615         calls.
12616
12617 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12618
12619         * appdomain.c:
12620         * assembly.c:
12621         * gc.c:
12622         * locales.c:
12623         * mono-config.c:
12624         * rand.c: getenv -> g_getenv (windows!)
12625
12626         * process.c: complete_path is also used on non-windows platforms.
12627
12628 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12629
12630         * icall.c: new signature for Process_Start.
12631
12632         * process.[ch]: new signature for Process_Start. If we're on windows
12633         and UseShellExecute is false, we have to search for the program by
12634         ourselves if we don't get a full path.
12635
12636 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
12637
12638         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
12639         marshalling and call CleanUpNativeData if needed. Fixes #58646.
12640
12641 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12642
12643         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
12644         Fixes bug #58373.
12645
12646 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12647
12648         * process.c: use double quotes to quote program name and arguments on
12649         windows. Fixes bug #58575.
12650
12651 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12652
12653         * file-io.c: don't return "." and ".." when using windows Find*File.
12654
12655 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
12656
12657         * marshal.c: Don't pass wrappers to message init because method 
12658         addressed used to lookup metadata. part of remoting[2|3] fix.
12659
12660 2004-05-15  Jackson Harper  <jackson@ximian.com>
12661
12662         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
12663         path is essentially the same as MONO_PATH except that it points to
12664         GACs instead of lib directories.
12665         * loader.h: The user gac is gone so we dont need function to
12666         enable/disable it.
12667         * mono-config.c: user gac option is now gone.
12668         
12669 2004-05-15  Jackson Harper  <jackson@ximian.com>
12670
12671         * culture-info.h: Make defines more consistent, add calendar data
12672         to the culture info table.
12673         * culture-info-tables.h: Add basic calendar data. Basically
12674         everyone gets default gregorian until all the data is
12675         updated.
12676         * locales.c: Use the new consistent defines. Set calendar data for
12677         culture info objects.
12678         * object.h: add a field for calendar data to CultureInfo
12679         
12680 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
12681
12682         * image.c: image->runtime_invoke_cache is keyed on signatures now.
12683         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
12684         a signature.
12685         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
12686         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
12687         an extra param that is the pointer of the method to invoke. The IL for
12688         the invoke method is no longer specific to the method, but to the
12689         signature of the method. Thus, we can share the same code for multiple
12690         methods. This reduces the number of methods that have to be compiled.
12691
12692 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
12693
12694         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
12695
12696         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12697
12698         * icall.c: Optimize Buffer.BlockCopy.
12699
12700 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12701
12702         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
12703         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
12704         quote). Changed them to "MMMM yyyy".
12705
12706 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
12707
12708         * rand.c
12709         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
12710
12711 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
12712
12713         * reflection.h: Updated after changes to managed structures.
12714
12715         * appdomain.c: Bump corlib version.
12716
12717 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12718
12719         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
12720         windows.
12721
12722 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12723
12724         * Makefile.am: link to ../os/libmonoos.la on windows.
12725
12726         * assembly.c:
12727                 -If MONO_DEBUG, warn about non-existing directories in
12728                 MONO_PATH.
12729                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
12730                 compile time variable.
12731                 -Removed init_default_path and call mono_set_rootdir from
12732                 libmonoos.a instead (windows only).
12733
12734         * assembly.h: declare mono_assembly_getrootdir().
12735
12736         * domain.c:
12737         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
12738
12739         * loader.c: s/getenv/g_getenv/
12740
12741 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
12742
12743         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
12744
12745         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
12746
12747         * metadata.h: Add new marshalling conversions.
12748
12749         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
12750         function.
12751
12752         * reflection.c (mono_reflection_get_type): Lookup the type in all
12753         modules of a multi-module assembly. Fixes #58291.
12754
12755 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
12756
12757         * threads.c: Before aborting a background, set the StopRequested
12758         state.  This avoids throwing the Abort exception.
12759         In mono_thread_manage, don't continue with the shutdown until all
12760         aborted threads have actually stopped.
12761
12762 2004-05-10  Jackson Harper  <jackson@ximian.com>
12763
12764         * locales.c: Remove the modifier from culture names.
12765         
12766 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12767
12768         * Makefile.am: monosn is not installed any more. It has been deprecated
12769         in favor of sn.
12770
12771 2004-05-07  Jackson Harper  <jackson@ximian.com>
12772
12773         * locales.c
12774         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
12775         Fix array construction, add bailout if the length is 0.
12776
12777 2004-05-07  Dick Porter  <dick@ximian.com>
12778
12779         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
12780         machine doesn't have a DNS entry.  Patch by Urs Muff
12781         (umuff@quark.com), fixes bug 57928.
12782
12783 2004-05-06  Jackson Harper  <jackson@ximian.com>
12784
12785         * reflection.c: Handle null PublicTokens properly. alloc mem for
12786         assembly names culture so we dont crash when freeing it.
12787         
12788 2004-05-06  Jackson Harper  <jackson@ximian.com>
12789
12790         * assembly.c: Check the usergac when loading with partial names.
12791         
12792 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
12793
12794         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
12795         does nothing for now (not required for Linux/Windows) but the class
12796         library can call it (and a newer or modified runtime could need it).
12797         * icall.c: Registred icall.
12798
12799 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12800
12801         * loader.c: prints a message on module loading error we set MONO_DEBUG
12802         environment variable.
12803
12804 2004-05-05  Jackson Harper  <jackson@ximian.com>
12805
12806         * appdomain.c: Handle PublicKeyToken=null properly.
12807         
12808 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
12809
12810         * environment.c|h: Added icall ves_icall_System_Environment_
12811         GetOSVersionString to get the current OS version as a string.
12812         * icall.c: Registred icall.
12813
12814 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
12815
12816         * object.c: in mono_object_get_virtual_method(), take into account that
12817         non-virtual methods don't have a slot in the vtable. Check needed when
12818         the object is a proxy.
12819
12820 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
12821
12822         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
12823         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
12824
12825         * object.c (mono_class_compute_gc_descriptor): Fix warning.
12826
12827         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
12828         passed when a valuetype is expected.
12829
12830         * object.c (mono_unhandled_exception): Only set the exit code if the
12831         exception happens in the main thread. Fixes thread5.exe.
12832
12833         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
12834         invalid names. Fixes #58047.
12835
12836 2004-05-03  Jackson Harper  <jackson@ximian.com>
12837
12838         * assembly.c: This line was committed accidently and is unneeded.
12839         
12840 2004-05-03  Jackson Harper  <jackson@ximian.com>
12841
12842         * icall.c: Add new icall for Assembly::LoadWithPartialName
12843         * assembly.c/.h: new function that probes the GAC to load partial
12844         assembly names by Paolo Molaro.
12845         
12846 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12847
12848         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
12849         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
12850         (type_get_fully_qualified_name): Added PublicKeyToken when building a
12851         full type name.
12852
12853 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12854
12855         * appdomain.c: fixed check for 'neutral' culture and removed warning.
12856         * reflection.c: fix bug when parsing a full type name and Version is not
12857         the last thing in the string.
12858
12859 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
12860
12861         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
12862         crashes when it is freed.
12863
12864 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12865
12866         * assembly.c: print the compat warning to stderr.
12867
12868 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
12869
12870         * assembly.c (mono_assembly_load_references): Add a compatibility
12871         hack to run old applications that might be still referencing the
12872         3300-based assemblies, only do this for System.xxx.
12873
12874 2004-05-01  Jackson Harper  <jackson@ximian.com>
12875
12876         * appdomain.c: If the culture is neutral we set it to "".
12877         
12878 2004-04-29  Jackson Harper  <jackson@ximian.com>
12879
12880         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
12881
12882 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
12883  
12884         * string-icalls.c: added low overhead function for copying chars
12885         * icall.c: added needed icall for the above function
12886  
12887 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12888
12889         * icall.c: fix return value of get_global_assembly_cache.  Implemented
12890         Environment.GetLogicalDrives.
12891
12892 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
12893
12894         * rand.c: try and talk to egd or prngd
12895         for random bytes if opening devices fail.
12896
12897 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
12898
12899         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
12900         alignment for the type using the native alignment of its members 
12901         instead of using klass->min_align.
12902
12903         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
12904
12905 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12906
12907         * file-io.c:
12908         * socket-io.c: added check for sys/aio.h.
12909
12910 2004-04-28  Dick Porter  <dick@ximian.com>
12911
12912         * threads.c: Don't abort a thread thats already aborting, when
12913         terminating everything.
12914
12915 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12916
12917         * icall.c: added 2 new async calls for Socket.
12918
12919         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
12920         IO on *nix systems.
12921
12922         * threadpool.c: removed unused variable.
12923
12924 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
12925
12926         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
12927
12928 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
12929
12930         * locales.c: put back string_invariant_tolower () and
12931         string_invariant_toupper ().
12932
12933 2004-04-26 David Waite <mass@akuma.org>
12934
12935         * file-io.h:
12936         * socket-io.h:
12937         * threads.h:
12938         * unicode.h: remove comma from end of enumeration declarations
12939
12940 2004-04-26 David Waite <mass@akuma.org>
12941
12942         * debug-mono-symfile.h:
12943         * decimal.c:
12944         * mono_debug.h:
12945         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
12946
12947
12948 2004-04-26  Jackson Harper  <jackson@ximian.com>
12949
12950         * appdomain.c: Increment version number.
12951         
12952 2004-04-26  Jackson Harper  <jackson@ximian.com>
12953
12954         * appdomain.c: Set assembly references public token value when
12955         PublicKeyToken is specified, not the hash_value. Free public token
12956         values when free assembly name data. Previously the public key
12957         token was hex decoded, however we are using hex encoded public key
12958         tokens, so this is not neccasary.
12959         * assembly.c: Lookup assemblies in the gac if their public token
12960         value is set. Add function to allow enabling user gac
12961         lookups. Specify whether or not the assembly was loaded from the
12962         GAC. Compare full assembly names when checking the cache for
12963         assemblies (Temporarily disabled see comment in code). Remove
12964         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
12965         specifies trace-loader they get extra info to stdout on the
12966         loading of assemblies.
12967         * image.h: Add a field for an assembly references public token
12968         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
12969         whether an assembly has been loaded from the GAC.
12970         * image.c: Remove a corlib -> mscorlib name mapping.
12971         * loader.h: Add function to enable/disable the user gac.
12972         * mono-config.c: Check if the usergac is enabled in the config
12973         file.
12974         * icall.c: New icall to determine whether or not an assembly has
12975         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
12976         * tabldefs.h: Add constant for assemblyref flag that specifies a
12977         full public key is used instead of a public token.
12978         * reflection.c: Remove mscorlib -> corlib mappings. Set
12979         PublicTokenValue instead of hash value. This value is a hex
12980         string so it does not need to be expanded.
12981
12982 2004-04-26  Martin Baulig  <martin@ximian.com>
12983
12984         * mono-debug-debugger.c (mono_debugger_initialize): Set
12985         `mono_debugger_initialized' before calling mono_debug_lock().
12986
12987 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
12988
12989         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
12990           InternalToUpper/InternalToLower.
12991         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
12992           removed invariant culture shortcut.  This is now done in managed code.
12993         * locales.c: (string_invariant_toupper/tolower) removed.
12994
12995 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12996
12997         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
12998         Added Poll internal call.
12999
13000         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
13001         call for Poll. Select was too heavy for polling a single socket.
13002
13003         * threadpool.[ch]: added mono_threadpool_cleanup.
13004         * threads.c: use it. Don't use Thread_Abort on windows.
13005
13006 2004-04-23  Martin Baulig  <martin@ximian.com>
13007
13008         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
13009
13010 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
13011
13012         * icall.c: Registred new icalls for key pair protection and added an
13013         icall for Environment.GetFolderPath on Windows.
13014         * security.c|h: Added new icalls for key pair protection.
13015
13016 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13017
13018         * socket-io.c: don't display the non-supported family warning for known
13019         families. Now this is not displayed on windows when checking support
13020         for IPv4/IPv6.
13021
13022 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13023
13024         * class.c: don't display the layout warning for static fields.
13025
13026 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
13027
13028         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
13029         * locales.c, locales.h: Added new icalls for culture-specific
13030         Char.ToLower and Char.ToUpper.
13031
13032 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13033
13034         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
13035         by David Waite.
13036
13037 2004-04-20  Martin Baulig  <martin@ximian.com>
13038
13039         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
13040         of the type name before passing it to mono_reflection_type_from_name().
13041
13042 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
13043
13044         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
13045         encodings here. Fixes #56965.
13046
13047 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
13048
13049         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
13050         fix test on strstr result not that I can see anything that
13051         relies on the result.
13052
13053 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
13054
13055         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
13056         Fixes #57081.
13057
13058         * marshal.c (mono_marshal_get_string_encoding): New helper function.
13059
13060         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
13061         function to determine which marshalling to use for strings. Fixes
13062         #56965.
13063
13064         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
13065
13066         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
13067
13068 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
13069
13070         * icall.c: #include mono-config.h
13071
13072 2004-04-15  Jackson Harper  <jackson@ximian.com>
13073
13074         * culture-info-tables.h: Fix date formats for en-US culture.
13075         
13076 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
13077
13078         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
13079         ThreadPool.SetMinThreads.
13080         * threadpool.c: Implemented ThreadPool.GetMinThreads and
13081         ThreadPool.SetMinThreads.
13082
13083 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
13084
13085         * mono-config.c: also load the .config file in the directory
13086         where the assembly was found.
13087
13088 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
13089
13090         * assembly.c: load per-assembly config files.
13091         * icall.c: decrapified code to get the config dir and moved to
13092         mono-config.c.
13093         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
13094         per-assembly config files. When doing a dll map lookup give precedence
13095         to the per-assembly data.
13096
13097 2004-04-14  Martin Baulig  <martin@ximian.com>
13098
13099         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
13100         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
13101         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
13102
13103         * mono-debugger-debugger.c: While the debugger is locked, remember
13104         whether the symbol tables have changes and send one single
13105         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
13106
13107 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
13108
13109         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
13110
13111         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
13112         function.
13113
13114         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
13115         account when marshalling string arrays. Fixes #56965.
13116
13117 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
13118
13119         * icall.c: Add new icalls mapping for security.
13120         * security.c|h: Add internal calls for WindowsIdentity,
13121         WindowsImpersonationContext and WindowsPrincipal.
13122
13123 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
13124
13125         * class.c: Added comment to ensure the System.MonoDummy class
13126         is removed when no longer necessary
13127
13128 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
13129
13130         * appdomain.c: Pass arguments to the bootstraping exceptions to
13131         minimize JITed methods at boot
13132
13133         * metadata.c (mono_exception_from_name_two_strings): Allow for the
13134         second string to be null.
13135
13136         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
13137         Change the protocol to minimize the JIT methods at startup.  Now
13138         it Returns the internal codepage, if the value of "int_code_page"
13139         is 1 at entry, and we can not compute a suitable code page
13140         number, returns the code page as a string.
13141
13142 2004-04-13  Jackson Harper  <jackson@ximian.com>
13143
13144         * culture-info-tables.h: Fix number of decimal digits for all
13145         english locales.
13146
13147 2004-04-13  Jackson Harper  <jackson@ximian.com>
13148
13149         * icall.c: Clairfy out of sync error message. It is not always
13150         your corlib that is out of sync.
13151
13152 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
13153
13154         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
13155         properties when only the set accessor is overriden. Fixes #55874.
13156
13157 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
13158
13159         * assembly.c (mono_assembly_load_references): Make this thread safe.
13160         Fixes #56327.
13161
13162 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
13163
13164         * monosn.c: Add missing initialization calls.
13165
13166 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
13167
13168         * locales.c:
13169         ves_icall_System_Globalization_CultureInfo_construct_number_format
13170         Fix g_assert so it compiles on fussier compilers re int/ptr
13171         mismatch
13172
13173 2004-04-08  Dick Porter  <dick@ximian.com>
13174
13175         * socket-io.h:
13176         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
13177         53992.  Also rearrange the code so that the internal calls return
13178         an error value and exceptions are thrown from managed code.
13179
13180         * icall.c: Add type info to the socket icalls.
13181
13182 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13183
13184         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
13185         owes me a beer.
13186
13187 2004-04-07  Martin Baulig  <martin@ximian.com>
13188
13189         * class.c (mono_class_from_generic_parameter): Don't default
13190         `klass->parent' to `mono_defaults.object_type'.
13191
13192 2004-04-07  Martin Baulig  <martin@ximian.com>
13193
13194         * reflection.c (mono_reflection_initialize_generic_parameter): Set
13195         `param->pklass->reflection_info'.       
13196
13197 2004-04-07  Jackson Harper  <jackson@ximian.com>
13198
13199         * culture-info-tables.h: Fix date separator symbol.
13200         
13201 2004-04-07  Martin Baulig  <martin@ximian.com>
13202
13203         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
13204         from System.Type to System.MonoType.
13205
13206 2004-04-07  Martin Baulig  <martin@ximian.com>
13207
13208         * reflection.h
13209         (MonoReflectionGenericParam): Added `has_reference_type' and
13210         `has_value_type' fields.
13211
13212         * reflection.c (mono_image_get_generic_param_info): Encode the
13213         correct flags if we have the `class' or `struct' constraint.
13214
13215 2004-04-07  Martin Baulig  <martin@ximian.com>
13216
13217         * reflection.h
13218         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
13219
13220 2004-04-07  Jackson Harper  <jackson@ximian.com>
13221
13222         * appdomain.c: Revert extra patches, just wanted to bump the
13223         version number.
13224         
13225 2004-04-07  Jackson Harper  <jackson@ximian.com>
13226
13227         * Makefile.am: Add culture-info private headers.
13228         * icall.c: Add new icalls for contructing locales.
13229         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
13230         * locales.h: Declare new culture info construction methods.
13231         * object.h: Add new fields used to avoid the CultureMap to
13232         MonoCultureInfo.
13233         * culture-info.h: Definition of structs used in the culture info
13234         tables.
13235         * culture-info-tables.h: Autogenerated tables that contain culture
13236         info data. This file was generated with the locale-builder tool.
13237         * appdomain.c: Incement corlib version number.
13238         
13239 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
13240
13241         * appdomain.c: (mono_runtime_init) move mono_thread_init
13242         to before mono_object_new calls so critical sections
13243         are initialized before use.
13244
13245 2004-04-07  Martin Baulig  <martin@ximian.com>
13246
13247         * icall.c
13248         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
13249         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
13250         (ves_icall_MonoGenericParam_initialize): Removed.
13251         (monogenericparam_icalls): Removed.
13252         (generictypeparambuilder_icalls): Added new table for
13253         System.Reflection.Emit.GenericTypeParameterBuilder.
13254
13255         * reflection.c
13256         (mono_reflection_define_generic_parameter): Removed.
13257         (mono_reflection_initialize_generic_parameter): This is now called
13258         from GenericTypeParameterBuilder's .ctor.
13259
13260 2004-04-06  Martin Baulig  <martin@ximian.com>
13261
13262         * class.c (mono_class_init): Don't inflate nested classes in a
13263         generic instance.
13264         (mono_type_get_name_recurse): Include the generic arguments for
13265         generic instances and generic type declarations.
13266         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
13267         (_mono_class_get_instantiation_name): Removed.
13268         (mono_class_create_generic): Always use `gklass->name' as our name.
13269
13270         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
13271
13272         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
13273         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
13274         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
13275         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
13276         closed generic methods here.
13277
13278         * reflection.c
13279         (mono_reflection_generic_inst_get_nested_types): Removed.
13280         (inflate_mono_method): Copy the generic parameters from the
13281         MonoMethodHeader into out MonoGenericMethod.
13282
13283 2004-04-06  Martin Baulig  <martin@ximian.com>
13284
13285         * row-indexes.h
13286         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
13287
13288         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
13289
13290         * reflection.c (build_compressed_metadata): If we have any entries
13291         in the GenericParam, MethodSpec or GenericParamConstraint tables,
13292         set the header version to 1.1.
13293
13294 2004-04-06  Martin Baulig  <martin@ximian.com>
13295
13296         * class.c (mono_class_init): If we're a generic instance,
13297         initialize our nested classes, too.
13298         (_mono_class_get_instantiation_name): Deal with the new `!%d'
13299         suffix. 
13300
13301 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13302
13303         * process.c: quote the argument passed to the shell on windows.
13304
13305 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
13306
13307         * threads.c (mono_alloc_special_static_data): Allow this to be
13308         called during startup.
13309
13310 2004-04-02  Martin Baulig  <martin@ximian.com>
13311
13312         * icall.c
13313         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
13314
13315 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
13316
13317         * icall.c: Fix build.
13318
13319 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
13320
13321         * Makefile.am: Added security.c|h.
13322         * icall.c: Added icall for get_UserName;
13323         * security.c: New file for security related icalls. Added function
13324         get_UserName for System.Environment (fix #56144).
13325         * security.h: New. Header file for security.c
13326
13327 2004-04-02  Dick Porter  <dick@ximian.com>
13328
13329         * icall.c: Deleted the icalls that were obsoleted some time ago
13330         by the ICU string code, and which were mixed into the icall
13331         rearranging.  Fixes bug 55969.
13332
13333         * string-icalls.h: 
13334         * string-icalls.c: Deleted the code that those icalls reference.
13335
13336 2004-04-01  Martin Baulig  <martin@ximian.com>
13337
13338         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
13339
13340         * class.c (mono_class_from_generic_parameter): Don't set 
13341         TYPE_ATTRIBUTE_INTERFACE.
13342         (my_mono_class_from_generic_parameter): Likewise.
13343
13344 2004-04-01  Martin Baulig  <martin@ximian.com>
13345
13346         * loader.c (find_method): Added an optional `MonoClass *ic'
13347         argument to search in a specific interface.
13348         (mono_get_method_constrained): New public function.
13349
13350 2004-04-01  Martin Baulig  <martin@ximian.com>
13351
13352         * reflection.c (mono_image_get_generic_field_token): Use the
13353         `handleref' cache here.
13354
13355 2004-04-01  Martin Baulig  <martin@ximian.com>
13356
13357         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
13358
13359         * reflection.c (create_generic_typespec): Use the `typespec' hash
13360         here, not the `typeref' one.    
13361
13362 2004-04-01  Martin Baulig  <martin@ximian.com>
13363
13364         * class.c (mono_class_inflate_generic_type): Moved the
13365         functionality into a new static inflate_generic_type() which
13366         returns NULL if it didn't do anything.  Only increment the
13367         `mono_stats.inflated_type_count' if we actually inflated
13368         something.
13369         (mono_class_get_full): Check the classes type to see whether we
13370         need to inflate it; also inflate MONO_TYPE_(M)VAR.
13371
13372 2004-04-01  Jackson Harper  <jackson@ximian.com>
13373
13374         * reflection.c: Set culture for assembly references.
13375         
13376 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
13377
13378         * reflection.[ch], icall.[ch], Fix support for pinning variables.
13379
13380 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13381
13382         * assembly.c:
13383         (do_mono_assembly_open): the critical section also covers
13384         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
13385
13386 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13387
13388         * threads.c:
13389         (mono_manage_threads): abort the background threads when finishing.
13390         Fixes bug #47232.
13391
13392 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13393
13394         * gc.c: only close the done_event handle if there was no timeout.
13395         C-ified comments.
13396
13397 2004-03-30  Martin Baulig  <martin@ximian.com>
13398
13399         * icall.c (icall_entries): It's called "System.Activator", not
13400         "System.Activation".    
13401
13402 2004-03-30  Martin Baulig  <martin@ximian.com>
13403
13404         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
13405         (mono_class_create_from_typespec): Likewise.
13406
13407 2004-03-30  Martin Baulig  <martin@ximian.com>
13408
13409         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
13410         `has_ctor_constraint' and `initialized'.
13411
13412 2004-03-30  Martin Baulig  <martin@ximian.com>
13413
13414         * reflection.c (encode_new_constraint): New static function to add
13415         the constructor constraint attribute to a type parameter.
13416         (encode_constraints): Call encode_new_constraint() if necessary.
13417
13418         * reflection.h
13419         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
13420
13421         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
13422         
13423 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
13424
13425         * reflection.c, icall.c: add support for pinning variables. 
13426
13427 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
13428
13429         * marshal.c (mono_marshal_get_managed_wrapper):
13430         init bool local with zero rather than null.
13431
13432 2004-03-29  Martin Baulig  <martin@ximian.com>
13433
13434         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
13435         the "official" behavior here.
13436         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
13437
13438 2004-03-29  Martin Baulig  <martin@ximian.com>
13439
13440         * icall.c: Reflect latest API changes.
13441
13442 2004-03-29  Martin Baulig  <martin@ximian.com>
13443
13444         * loader.c (mono_get_method_from_token): Also call
13445         mono_metadata_load_generic_params () for abstract and interface
13446         methods; replace the type arguments in the method signature with
13447         the ones which are loaded from the metadata.
13448
13449 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
13450
13451         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
13452         of the lock is not the current thread. MS.NET don't do it, in spite of
13453         what the documentation says. See bug #56157.
13454
13455 2004-03-28  Martin Baulig  <martin@ximian.com>
13456
13457         * class.c (mono_class_init): Don't call init_properties() and
13458         init_events() for generic instances; set `prop->parent' when
13459         inflating properties.
13460
13461         * reflection.c (mono_generic_inst_get_object): Call
13462         `mono_class_init (ginst->klass)'.
13463         (mono_type_get_object): Only create a MonoGenericInst if your
13464         generic type is a TypeBuilder.
13465         (do_mono_reflection_bind_generic_parameters): Only set
13466         `ginst->is_dynamic' if our generic type is a TypeBuilder.
13467
13468 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
13469
13470         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
13471         Fixes #56091.
13472
13473 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13474
13475         * icall.c: added Kill_internal icall.
13476         * process.[ch]: added Kill_internal icall.
13477
13478 2004-03-25  Martin Baulig  <martin@ximian.com>
13479
13480         * class.h (MonoStats): Added `generic_instance_count',
13481         `inflated_method_count', `inflated_type_count' and
13482         `generics_metadata_size'.       
13483
13484 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13485
13486         * reflection.c: no warnings now.
13487
13488 2004-03-25  Martin Baulig  <martin@ximian.com>
13489
13490         * class.c (mono_class_get_full): New public function; does a
13491         mono_class_get(), but also takes a `MonoGenericContext *'.
13492
13493         * loader.c (mono_field_from_memberref): Renamed to
13494         `field_from_memberref', made static and added `MonoGenericContext *'
13495         argument.
13496         (mono_field_from_token): Added `MonoGenericInst *' argument.
13497         (method_from_memberef): Likewise.
13498         (mono_get_method_from_token): Likewise.
13499         (mono_get_method_full): New public function; does a
13500         mono_get_method(), but also takes a `MonoGenericContext *'.
13501
13502         * verify.c (mono_method_verify): Get the method's generic context
13503         and pass it to mono_field_from_token(), mono_get_method_full() and
13504         mono_class_get_full().
13505
13506 2004-03-25  Martin Baulig  <martin@ximian.com>
13507
13508         * class.c (mono_class_inflate_generic_type): Take a
13509         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
13510         `MonoGenericMethod *'.
13511
13512 2004-03-25  Martin Baulig  <martin@ximian.com>
13513
13514         * loader.h (MonoMethodInflated): Store the MonoGenericContext
13515         instead of the MonoGenericMethod here.
13516
13517 2004-03-25  Martin Baulig  <martin@ximian.com>
13518
13519         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
13520         each time we create a new MonoGenericInst, we also create a new
13521         context which points back to us.
13522
13523         * class.c (inflate_method): Use `ginst->context' instead of
13524         creating a new context.
13525
13526         * loader.c (method_from_memberref): Use
13527         `klass->generic_inst->context' instead of creating a new context.
13528
13529 2004-03-25  Martin Baulig  <martin@ximian.com>
13530
13531         * class.h (MonoGenericContext): New struct.
13532         (MonoGenericMethod): Removed `generic_inst'.
13533
13534         * class.c (mono_class_inflate_generic_method): Take a
13535         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
13536
13537 2004-03-25  Martin Baulig  <martin@ximian.com>
13538
13539         * loader.h (MonoMethodInflated): New typedef.
13540
13541         * metadata.h (MonoMethodSignature): Removed `gen_method', make
13542         `generic_param_count' consume just 30 bits, added `is_inflated'
13543         and `has_type_parameters' flags (one bit each).
13544
13545         * class.c (mono_class_inflate_generic_method): Create a
13546         MonoMethodInflated instead of a MonoMethodNormal and set
13547         `is_inflated' in the method signature.
13548
13549         * class.h (MonoGenericMethod): Removed `generic_method'.
13550
13551 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
13552
13553         * image.c: Make sure the name of a MonoImage is always an absolute path.
13554           This fixes bug #54415.
13555
13556 2004-03-24  Martin Baulig  <martin@ximian.com>
13557
13558         * class.c (mono_class_setup_vtable): If we're a generic instance,
13559         use our generic type's vtable size.
13560
13561 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
13562
13563         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
13564         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
13565         problems.
13566
13567 2004-03-23  Martin Baulig  <martin@ximian.com>
13568
13569         * class.h (MonoDynamicGenericInst): Added `int count_events' and
13570         `MonoEvent *events'.
13571
13572         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
13573         (typebuilder_icalls): Added "get_event_info"; calls
13574         mono_reflection_event_builder_get_event_info(). 
13575
13576         * reflection.c (mono_reflection_generic_inst_initialize): Added
13577         `MonoArray *events'.
13578         (mono_reflection_event_builder_get_event_info): New function.
13579
13580 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
13581
13582         * object.h: add mono_type_initialization_init
13583
13584         * object.c (mono_runtime_class_init): 
13585         implement class constructor synchronization rules
13586         to cope with threading issues.  
13587         add mono_type_initialization_init
13588
13589         * appdomain.c (mono_runtime_init): call 
13590         mono_type_initialization_init
13591
13592         * class.h: removing initializing field from MonoVTable
13593
13594 2004-03-23  Martin Baulig  <martin@ximian.com>
13595
13596         * class.c (my_mono_class_from_generic_parameter): Use
13597         `param->name' if it's not NULL. 
13598
13599 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
13600
13601         * class.c: do not insert non-virtual methods in the vtable.
13602         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
13603         that means the method is non-virtual. This never would have
13604         happened before.
13605
13606 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
13607
13608         * profiler.c: Added lock for accessing coverage_hash.
13609
13610 2004-03-22  Martin Baulig  <martin@ximian.com>
13611
13612         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
13613         `method->method->signature->generic_param_count != 0' to make it
13614         work for interface methods.
13615
13616 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13617
13618         * process.c: quote the string passed to the shell using g_shell_quote.
13619
13620 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13621
13622         * threads.c:
13623         (mono_threads_manage): don't remove the finalizer thread and self
13624         from the threads hash table so that mono_thread_manage can be called
13625         more than once.
13626
13627 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13628
13629         * process.c: quote the arguments when UseShellExecute is true. Fixes
13630         bug #55790.
13631
13632 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13633
13634         * threads.c: set mono_thread_detach as a cleanup routine for every
13635         thread. This way it's always executed upon thread termination, either
13636         aborted or finished normally. No more xsp hangs!
13637
13638 2004-03-17  Martin Baulig  <martin@ximian.com>
13639
13640         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
13641         `int count_nested' and a `MonoType **nested'.
13642
13643         * reflection.c (mono_reflection_bind_generic_parameters): Moved
13644         most of the functionality into a new static
13645         do_mono_reflection_bind_generic_parameters() and don't take a
13646         `MonoType *nested_in' argument any more.  Don't compute nested
13647         types here.
13648         (mono_reflection_generic_inst_get_nested_types): New public method
13649         to get nested types.
13650
13651         * class.c (mono_class_create_generic): Set `klass->nested_in' if
13652         we're a nested class.
13653
13654         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
13655         mono_reflection_generic_inst_get_nested_types() to compute the
13656         nested types.
13657
13658 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
13659
13660         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
13661         descriptive error message under windows.
13662         
13663 2004-03-17  Martin Baulig  <martin@ximian.com>
13664
13665         * class.c (dup_type): Added `const MonoType *original' argument;
13666         copy the attrs from the original type.
13667
13668 2004-03-17  Martin Baulig  <martin@ximian.com>
13669
13670         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
13671         `m->generic_inst_cache' here.
13672
13673 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
13674
13675         * exception.h exception.c: Add stack_overflow_exception.
13676
13677 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13678
13679         * threadpool.c:
13680         (overlapped_callback): call SetEvent *after* invoking the callback.
13681         No need to call CloseHandle.
13682
13683 2004-03-16  Martin Baulig  <martin@ximian.com>
13684
13685         * reflection.c (mono_image_get_fieldref_token): Take a
13686         `MonoReflectionField *' instead of a `MonoClassField *' and a
13687         `MonoClass *'; store the `MonoReflectionField *' in the hash.
13688
13689 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13690
13691         * appdomain.c: don't add the culture to the filename we're looking for
13692         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
13693
13694 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13695
13696         * locales.c: don't ignore symbols when doing case insensitive compares.
13697         Thanks Dick! Fixes bug #54046.
13698
13699         * threads.c: surround 'threads' usage with enter/leave in
13700         mono_thread_manage.
13701
13702 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
13703
13704         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
13705         implicitly marshalled as [Out]. Fixes #55450.
13706
13707         (mono_marshal_get_runtime_invoke): Zero out the result if there is
13708         an exception.
13709
13710 2004-03-16  Martin Baulig  <martin@ximian.com>
13711
13712         * class.c (mono_class_from_generic_parameter): Use the actual
13713         parameter name. 
13714
13715 2004-03-16  Martin Baulig  <martin@ximian.com>
13716
13717         * reflection.c (type_get_signature_size): New static function.
13718         Compues the size of the type in a method signature.
13719         (method_get_signature_size): New static function; calls
13720         type_get_signature_size() to compute the actual size of the
13721         method's signature.
13722         (method_encode_signature): Use method_get_signature_size() to get
13723         the signature's size rather than using `nparams * 10'.
13724
13725 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13726
13727         * file-io.h: define here WapiOverlapped on windows. I don't want the
13728         regular OVERLAPPED one.
13729
13730         * file-io.c:
13731         * threadpool.c: somehow, BindIoCompletionCallback is not found.
13732         Disabling AIO on windows.
13733
13734 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13735
13736         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
13737         bug #55385.
13738
13739 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13740
13741         * appdomain.c: upgraded corlib version.
13742
13743         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
13744         and BeginWrite. Allow opening files for asynchrnous operations.
13745
13746         * file-io.h: new struct that maps FileStreamAsyncResult.
13747         * icall.c: added new icalls.
13748         * process.[ch]: support setting child process environment variables
13749         and use the SHELL or COMSPEC when UseShellExecute is true.
13750
13751         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
13752         callback for async. IO is here and also BindHandle.
13753
13754         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
13755         from here.
13756
13757 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
13758
13759         * reflection.c (create_custom_attr): Allow len == 0.
13760
13761         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
13762         computation on big-endian machines.
13763
13764 2004-03-13  Martin Baulig  <martin@ximian.com>
13765
13766         * class.h (MonoGenericInst): Added `int count_ifaces'.
13767
13768         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
13769         `ginst->count_ifaces' instead `klass->interface_count' since we
13770         may get called before the vtable is created.
13771
13772         * loader.c (mono_method_get_param_names): If we're a generic
13773         instance, return and don't initialize the class.
13774
13775         * reflection.c (mono_reflection_setup_generic_class): Don't call
13776         ensure_runtime_vtable().
13777         (mono_reflection_bind_generic_parameters): Set
13778         `ginst->count_ifaces'.
13779
13780 2004-03-11  Jackson Harper <jackson@ximian.com>
13781
13782         * icall.c:
13783         * unicode.c:
13784         * unicode.h: Remove unused System.Char icalls.
13785         
13786 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
13787
13788         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
13789         code when we P/Invoke the first library in Windows.Forms, instead
13790         of when we first open the assembly.
13791
13792         * assembly.c: Drop the lookup from here.
13793
13794 2004-03-10  Martin Baulig  <martin@ximian.com>
13795
13796         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
13797         class for properties, fields and events.  Finally fixes #54945.
13798
13799 2004-03-10  Martin Baulig  <martin@ximian.com>
13800
13801         * metadata.c (mono_metadata_class_equal): New static function;
13802         checks whether two generic instances or two generic parameters are
13803         equal.
13804         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
13805         compare classes.        
13806
13807 2004-03-10  Martin Baulig  <martin@ximian.com>
13808
13809         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
13810
13811         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
13812         argument and write it into the `reflection_info' field.
13813
13814         * icall.c
13815         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
13816         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
13817
13818 2004-03-09  Jackson Harper  <jackson@ximian.com>
13819
13820         * char-conversions.h: use 8 bits for numeric data its all we need
13821         * icall.c: numeric data is only 8 bits now.
13822
13823 2004-03-09  Martin Baulig  <martin@ximian.com>
13824
13825         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
13826
13827         * class.c (init_properties, init_events): Initialize the new
13828         `parent' field.
13829
13830         * reflection.c (typebuilder_setup_properties): Likewise.
13831         (typebuilder_setup_events): Likewise.
13832
13833         * reflection.h (MonoEventInfo): Replaced `parent with
13834         `declaring_type' and `reflected_type'.
13835
13836         * icall.c (ves_icall_get_property_info): Distinguish between
13837         declaring and reflected type.
13838         (ves_icall_get_event_info): Likewise.
13839
13840 2004-03-09  Martin Baulig  <martin@ximian.com>
13841
13842         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
13843         (ves_icall_Type_GetField): Correctly set field->klass.
13844
13845 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
13846
13847         * loader.h: Fix warning.
13848
13849 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
13850
13851         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
13852         library routine if present.  Notice that it will still continue
13853         executing even if its missing, for those working on the Gtk#
13854         edition of Windows.Forms.
13855
13856         * assembly.c (do_mono_assembly_open): If loading the
13857         System.Windows.Forms call mono_loader_wini_init.
13858
13859 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
13860
13861         * class.h: Added MonoRemoteClass struct.
13862         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
13863         function for MonoStrings.
13864         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
13865         Added internal call for getting the proxy type.
13866         * marshal.c: Get the type of transparent proxies from its remote_class.
13867         Added methods that generate the IL for type checks and casts:
13868         mono_marshal_get_isinst, mono_marshal_get_castclass, 
13869         mono_marshal_get_proxy_cancast.
13870         * marshal.h: Declaration of the previous new methods.
13871         * object.c: Added new moethods for creating and updating MonoRemoteClass
13872         instances: mono_remote_class, mono_upgrade_remote_class, 
13873         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
13874         * verify.c: FIx transparent_proxy_fields layout.
13875         * appdomain.c: Bump corlib version.
13876
13877 2004-03-04  Jackson Harper  <jackson@ximian.com>
13878
13879         * icall.c: Add icall to access char conversion tables.
13880         * char-conversions.h: Character conversion tables.
13881         * Makefile.am: Add char-conversions.h private header file.
13882         
13883 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
13884
13885         * appdomain.c (unload_thread_main): Increase unloading timeout to
13886         10 sec as a temporary workaround for Nant problems.
13887
13888 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
13889
13890         * gc.c: Add checks for GC_enable and GC_disable.
13891
13892         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
13893         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
13894         (bug #54988).
13895         
13896 2004-02-27  Martin Baulig  <martin@ximian.com>
13897
13898         * reflection.c (mono_reflection_bind_generic_parameters): Take a
13899         `MonoReflectionType *' instead of a `MonoType *'.
13900
13901 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
13902
13903         * gc.c (run_finalize): Avoid finalizing the object representing the
13904         finalizer thread.
13905         (finalizer_thread): Fix warning.
13906
13907 2004-02-25  Martin Baulig  <martin@ximian.com>
13908
13909         * class.c (_mono_class_get_instantiation_name): Added `int offset'
13910         argument for nested types.
13911         (mono_class_create_generic): Added support for nested generictypes.
13912
13913         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
13914         `GList *nested'.
13915
13916         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
13917
13918         * reflection.c (method_encode_signature): Increase the minimum
13919         value of `size' from 10 to 11.
13920         (mono_reflection_bind_generic_parameters): Take `int type_argc'
13921         and `MonoType **types' arguments instead of the `MonoArray
13922         *types'; added `MonoType *nested_in'.  Recursively instantiate
13923         nested classes. 
13924
13925 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
13926
13927         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
13928         stack_overflow_ex members which are used by exception handling.
13929
13930         * appdomain.c (mono_runtime_init): Initialize the new members.
13931
13932         * gc.c (mono_gc_enable): New helper function.
13933         * gc.c (mono_gc_disable): New helper function.
13934
13935 2004-02-23  Martin Baulig  <martin@ximian.com>
13936
13937         * icall.c: I must have been really stupid - make it actually work
13938         this time ;-)
13939
13940 2004-02-23  Martin Baulig  <martin@ximian.com>
13941
13942         * loader.c (method_from_memberref): Only inflate the method if
13943         it's in another klass.
13944
13945 2004-02-23  Martin Baulig  <martin@ximian.com>
13946
13947         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
13948         (mono_class_init): If we're a generic instance and an interface,
13949         compute `class->interface_id'; also create `class->interfaces'
13950         here and inflate them.
13951
13952         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
13953         `ginst->is_open'.
13954         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
13955
13956         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
13957
13958 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
13959
13960         * reflection.c (method_encode_code): Improved the error message
13961         generated by the exception.
13962
13963 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13964
13965         * icall.c: Martin did not do what he said in the ChangeLog for
13966         2004-02-18, but put back the changes for properties and events.
13967         Commenting those changes out again and adding comment to bug #54518.
13968         
13969         * process.c: removed warning.
13970
13971 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
13972
13973         * marshal.c (emit_struct_conv): Print an error message instead of
13974         asserting when a type does not have the StructLayout attribute.
13975
13976 2004-02-20  Martin Baulig  <martin@ximian.com>
13977
13978         * reflection.c (mono_type_get_object): Also use the cache for
13979         generic instances.
13980         (mono_reflection_bind_generic_parameters): Always compute
13981         `ginst->ifaces'.        
13982
13983 2004-02-20  Martin Baulig  <martin@ximian.com>
13984
13985         * class.h (MonoGenericMethod): Removed `klass'.
13986
13987         * class.c (mono_class_inflate_generic_method): Added `MonoClass
13988         *klass' argument.
13989
13990 2004-02-20  Martin Baulig  <martin@ximian.com>
13991
13992         * reflection.c (method_encode_methodspec): Actually use the
13993         uninflated signature for the memberref.
13994
13995 2004-02-20  Martin Baulig  <martin@ximian.com>
13996
13997         * class.h (MonoGenericMethod): Removed `declaring'.
13998
13999         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
14000         is NULL, compute it here.
14001
14002 2004-02-20  Martin Baulig  <martin@ximian.com>
14003
14004         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
14005
14006         * metadata.c (mono_metadata_generic_inst_hash): New method.
14007         (mono_metadata_generic_inst_equal): New method.
14008
14009         * reflection.c (mono_reflection_bind_generic_parameters): Use the
14010         `klass->image->generic_inst_cache' cache to avoid creating
14011         duplicate MonoGenericInst's.
14012
14013         * class.c (mono_class_inflate_generic_type): Use the cache.
14014
14015 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
14016
14017         * object.c: fixed gc descriptor calculation for embedded valuetypes.
14018
14019 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14020
14021         * icall.c: added Socket.WSAIoctl icall.
14022
14023         * socket-io.[ch]: implemented
14024         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
14025
14026 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
14027
14028         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
14029
14030 2004-02-18  Urs C Muff  <umuff@quark.com>
14031
14032         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
14033         this work on PPC and other big-endian architectures.
14034
14035         * debug-mono-symfile.h: Prepended the names of all the `guint32'
14036         fields with an underscore to make sure they're only accessed by
14037         the read32() macro.
14038
14039 2004-02-18  Martin Baulig  <martin@ximian.com>
14040
14041         * icall.c: Put the klass->refclass changes back for methods and
14042         fields, but not for properties and events.  We're currently not
14043         distinguishing between DeclaringType and ReflectedType for
14044         properties and events, that's what caused the regressions.
14045
14046 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14047
14048         * object.c:
14049         (mono_async_result_new): the handle can be NULL.
14050
14051         * threadpool.c: Use an event instead of a semaphore, don't initialize
14052         it until needed. This saves quite a few semaphores from being created
14053         when using the threadpool.
14054
14055 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
14056
14057         * object.c (mono_string_is_interned_lookup): Fix interning of long
14058         strings. Fixes #54473.
14059
14060         * domain.c (ldstr_equal): Optimize if the two strings are equal.
14061
14062         * icall.c: Revert the klass->refclass changes since they introduce
14063         regressions (bug #54518).
14064
14065 2004-02-18  Martin Baulig  <martin@ximian.com>
14066
14067         * class.c (mono_class_init): If we're a generic instance and don't
14068         come from a TypeBuilder, inflate our members here.
14069         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
14070         (mono_class_create_generic): New public method.
14071         (mono_class_initialize_generic): Removed.
14072         (get_instantiation_name): Renamed to
14073         _mono_class_get_instantiation_name() and made it public.
14074
14075 2004-02-18  Martin Baulig  <martin@ximian.com>
14076
14077         * class.c (mono_class_inflate_generic_type): Clear the new
14078         instance's `nginst->klass' when inflating a generic instance.
14079         (mono_class_is_subclass_of): Added (basic) support for generic
14080         instances.
14081
14082 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
14083
14084         * appdomain.h, domain.c: use a MonoCodeManager instead of a
14085         MonoMempool to hold compiled native code.
14086
14087 2004-02-17  Martin Baulig  <martin@ximian.com>
14088
14089         * class.h (MonoDynamicGenericInst): Added `count_properties' and
14090         `properties'.
14091
14092         * reflection.c (mono_reflection_generic_inst_initialize): Added
14093         `MonoArray *properties' argument.
14094
14095         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
14096
14097 2004-02-17  Martin Baulig  <martin@ximian.com>
14098
14099         * icall.c (ves_icall_Type_GetFields): Renamed to
14100         ves_icall_Type_GetFields_internal() and added a
14101         `MonoReflectionType *rtype' argument; pass it to
14102         mono_field_get_object() to set the field's "reflected" type.
14103         (ves_icall_Type_GetConstructors): Likewise.
14104         (ves_icall_Type_GetEvents): Likewise.
14105         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
14106         argument; pass it to mono_method_get_object() to set the method's
14107         "reflected" type.       
14108
14109 2004-02-17  Martin Baulig  <martin@ximian.com>
14110
14111         * class.h (MonoDynamicGenericInst): New type.
14112         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
14113
14114         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
14115         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
14116         (ves_icall_MonoGenericInst_GetFields): New interncall.
14117
14118         * class.c (mono_class_from_generic): Don't call
14119         mono_class_initialize_generic() if this is a dynamic instance;
14120         ie. it's being created from a TypeBuilder.
14121         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
14122         `class->byval_arg.type'.
14123
14124         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
14125         to `inflate_method' and made static.
14126         (mono_reflection_inflate_field): Removed.
14127         (mono_reflection_generic_inst_initialize): New public method.
14128
14129         * reflection.h (MonoReflectionGenericInst): Removed `methods',
14130         `ctors' and `fields'; added `initialized'.
14131
14132 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
14133
14134         * debug-helpers.c (mono_method_full_name): Fix output for empty
14135         namespaces.
14136
14137 2004-02-12  Martin Baulig  <martin@ximian.com>
14138
14139         * class.h (MonoClassField): Added `MonoType *generic_type'.
14140
14141         * reflection.c (mono_image_get_fieldref_token): Added support for
14142         instantiated generic types.
14143         (field_encode_inflated_field): Removed.
14144         (mono_image_get_inflated_field_token): Removed.
14145         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
14146
14147         * reflection.h (MonoReflectionInflatedField): Removed.
14148
14149 2004-02-12  Martin Baulig  <martin@ximian.com>
14150
14151         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
14152         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
14153
14154         * reflection.c (mono_image_get_methodspec_token): Take a
14155         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
14156         (mono_image_create_token): Check whether we have a
14157         `method->signature->gen_method' and call
14158         mono_image_get_methodspec_token() if appropriate.
14159         (inflated_method_get_object): Removed.
14160         (mono_reflection_bind_generic_method_parameters): Return a
14161         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
14162         (mono_reflection_inflate_method_or_ctor): Likewise.
14163
14164         * reflection.h (MonoReflectionInflatedMethod): Removed.
14165
14166 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
14167
14168         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
14169         for custom valuetype marshalling.
14170
14171         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
14172
14173 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14174
14175         * icall.c: fixed WSAGetLastError_internal name.
14176
14177 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
14178
14179         * threads.c (mono_thread_attach): Allow this to be called multiple
14180         times for a thread.
14181         
14182         * threads.c (build_wait_tids): Do not wait for ourselves.
14183
14184         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
14185         appdomain list is empty.
14186
14187         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
14188         memory returned by mono_string_builder_to_utf16, since it points into
14189         managed memory. Thanks to Bernie Solomon for noticing this.
14190
14191         * icall.c: Add AppDomainSetup icalls.
14192
14193         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
14194
14195         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
14196         types.
14197
14198         * reflection.c (reflection_methodbuilder_to_mono_method): Save
14199         custom attributes to the method_aux struct. Also fix array indexes etc.
14200
14201         * loader.c (mono_method_get_param_names): Make dynamic case work again.
14202         
14203 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
14204
14205         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
14206         (both static and runtime) and reduce startup time.
14207
14208 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
14209
14210         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
14211         AsAny marshalling conversion instead of crashing.
14212
14213         * marshal.c: Fix warnings.
14214
14215 2004-02-09  Martin Baulig  <martin@ximian.com>
14216
14217         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
14218
14219         * reflection.h (MonoReflectionInflatedMethod): Removed the
14220         `declaring' field, it's now in the unmanaged MonoGenericMethod.
14221
14222         * reflection.c (method_encode_methodspec): Removed the `method'
14223         argument; we get it from `gmethod->declaring'.
14224         (inflated_method_get_object): Removed the `declaring' argument.
14225
14226 2004-02-09  Martin Baulig  <martin@ximian.com>
14227
14228         * class.h (MonoGenericMethod): New type.
14229         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
14230         `generic_method'.
14231
14232         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
14233         a `MonoGenericMethod *gen_method' one.
14234
14235         * class.c (mono_class_inflate_generic_type): Take an additional
14236         `MonoGenericMethod * argument.  This is only non-NULL if we're
14237         inflating types for a generic method.   
14238         (mono_class_inflate_generic_signature): Renamed to
14239         inflate_generic_signature() and made static; take a
14240         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
14241         (inflate_generic_header): Take a `MonoGenericMethod *' argument
14242         instead of a `MonoGenericInst *' one.
14243         (mono_class_inflate_generic_method): Likewise.
14244
14245         * reflection.c (encode_generic_method_sig): Take a
14246         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
14247         (method_encode_methodspec): Likewise.
14248         (inflated_method_get_object): Likewise. 
14249
14250         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
14251         field with a `MonoGenericMethod *gmethod' one.  
14252
14253 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
14254
14255         * class.h (mono_class_has_parent): add parens to expansion
14256         so you can ! this.
14257
14258 2004-02-08  Martin Baulig  <martin@ximian.com>
14259
14260         * image.h (MonoImage): Removed `generics_cache'.
14261
14262         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
14263         instead of a `MonoType *' argument; removed the `inflate_methods'
14264         argument.  Don't inflate methods here.
14265
14266         * loader.c (find_method): If it's a generic instance, call
14267         mono_class_init() on the `sclass->generic_inst->generic_type'.
14268
14269         * metadata.c (mono_type_size): Make this work on uninitialized
14270         generic instances; call it on the `ginst->generic_type's class.
14271
14272         * reflection.c (mono_reflection_bind_generic_parameters): Call
14273         mono_class_from_generic() to create the `ginst->klass'.
14274
14275 2004-02-08  Martin Baulig  <martin@ximian.com>
14276
14277         * class.h (MonoClass): Changed type of `generic_inst' from
14278         `MonoType *' to `MonoGenericInst *'.
14279
14280 2004-02-08  Martin Baulig  <martin@ximian.com>
14281
14282         * icall.c (ves_icall_Type_BindGenericParameters): Just call
14283         mono_type_get_object(), this is now creating a `MonoGenericInst'
14284         for MONO_TYPE_GENERICINST.
14285         (ves_icall_MonoGenericInst_GetParentType): Likewise.
14286         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
14287
14288         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
14289         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
14290         (inflated_method_get_object): Added `MonoClass *refclass' argument.
14291         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
14292         and reflected type.
14293
14294         * reflection.h (MonoReflectionInflatedMethod): Removed
14295         `declaring_type' and `reflected_type'.
14296
14297 2004-02-08  Martin Baulig  <martin@ximian.com>
14298
14299         * class.h (MonoGenericInst): Added `MonoType *parent' and
14300         `MonoType **ifaces'.
14301
14302         * reflection.h (MonoReflectionGenericInst): Removed `klass',
14303         `parent' and `interfaces'.
14304
14305         * reflection.c (mono_reflection_bind_generic_parameters): Take a
14306         `MonoType *' argument and return a `MonoType *'.
14307
14308         * icall.c
14309         (ves_icall_MonoGenericInst_GetParentType): New interncall.
14310         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
14311
14312 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
14313
14314         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
14315         valuetype marshalling.
14316
14317 2004-02-06  Martin Baulig  <martin@ximian.com>
14318
14319         * class.c
14320         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
14321         (my_mono_class_from_generic_parameter): Likewise.
14322
14323 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
14324
14325         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
14326         contents of the symbol files lazily.
14327
14328         * object.h (MonoThread): Add 'name' and 'name_len' fields.
14329
14330         * threads.h threads.c icall.c: New icalls for getting and setting the
14331         threads name.
14332
14333 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
14334
14335         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
14336         Raise an exception when the domain is not found.
14337
14338 2004-02-03  Martin Baulig  <martin@ximian.com>
14339
14340         * reflection.c (mono_image_get_methodspec_token): Use the
14341         uninflated signature; fixes gen-33.
14342
14343 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
14344
14345         * gc.c threads.c: Make the finalizer thread a normal managed thread so
14346         the finalizer code can use thread functionality.
14347
14348         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
14349         the finalizer thread.
14350
14351         * threads.c: Make some functions more robust.
14352
14353         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
14354
14355         * metadata.h: Add new marshalling conventions.
14356
14357         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
14358         stringbuilder marshalling. Fixes #53700.
14359
14360         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
14361
14362         * reflection.c (mono_image_get_type_info): Save declarative security
14363         info.
14364
14365         * reflection.c (mono_image_get_field_info): Handle uninitialized 
14366         unmanaged fields as well.
14367
14368         * appdomain.c: Bump corlib version.
14369
14370 2004-02-01  Martin Baulig  <martin@ximian.com>
14371
14372         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
14373         method type arguments.  
14374
14375 2004-01-30  Duncan Mak  <duncan@ximian.com>
14376
14377         * marshal.h: Add prototype for
14378         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
14379         and
14380         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
14381         fix the build.
14382
14383 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
14384
14385         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
14386         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
14387
14388 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
14389
14390         * marshal.c (mono_marshal_get_native_wrapper): Add support for
14391         custom marshalling of valuetypes.
14392
14393         * marshal.c: Fix some warnings.
14394
14395 2004-01-29  Martin Baulig  <martin@ximian.com>
14396
14397         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
14398         for generic method parameters.
14399
14400         * reflection.c (method_encode_methodspec): Write the uninflated
14401         signature into the methodspec table.
14402         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
14403         is always the uninflated method.
14404         (reflection_methodbuilder_to_mono_method): Copy the generic
14405         parameters from the MethodBuilder into `header->gen_params'.
14406
14407 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
14408
14409         * class.c (mono_class_from_generic_parameter): Fix warning.
14410
14411 2004-01-27  Martin Baulig  <martin@ximian.com>
14412
14413         * class.c (mono_class_from_generic_parameter): Don't create
14414         `klass->methods' here.  
14415
14416 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
14417
14418         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
14419         extension since it does not work with libraries named lib<FOO>.dll.so.
14420
14421 2004-01-25  Martin Baulig  <martin@ximian.com>
14422
14423         * class.c (mono_class_inflate_generic_type): Added support for
14424         MONO_TYPE_GENERICINST.
14425
14426         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
14427         inflate methods on open constructed types.      
14428
14429 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14430
14431         * object.c: fire ProcessExit event in the root AppDomain after running
14432         Main. Fixes bug #53299.
14433
14434 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
14435
14436         * socket-io.c: include the new socket-wrappers.h header.
14437         Use the wrappers instead of the unix socket functions to make the code
14438         more clear.
14439
14440 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
14441
14442         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
14443
14444         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
14445         Fixes #22532.
14446
14447 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
14448
14449         * reflection.c (mono_image_create_pefile): Handle the case when the
14450         entry point is not a MethodBuilder.
14451
14452         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
14453         field to ReflectionMethod since it is not allways a builder.
14454
14455         * reflection.c (type_get_fully_qualified_name): New helper function to
14456         return the fully qualified name of a type.
14457
14458         * reflection.c (encode_marshal_blob): Always emit the fully qualified
14459         type name for custom marshallers.
14460
14461         * reflection.c (mono_marshal_spec_from_builder): Ditto.
14462
14463         * class.c (mono_class_setup_vtable): If a parent class already 
14464         implements an interface, use the implementing methods from that class.
14465         Fixes #53148.
14466
14467 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14468
14469         * threadpool.c: just return instead of ExitThread to allow for thread
14470         clean up earlier.
14471
14472 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
14473
14474         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
14475         when closing resource modules.
14476
14477         * reflection.c (mono_image_create_pefile): Handle the case when the
14478         entry point is not a MethodBuilder.
14479
14480         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
14481         field to ReflectionMethod since it is not allways a builder.
14482
14483 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
14484
14485         * marshal.c (mono_marshal_get_managed_wrapper): 
14486         mono_marshal_alloc takes native int so CONV_I
14487         the arg for 64bits.
14488
14489 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
14490
14491         * reflection.c (fixup_cattrs): New function to fixup the methoddef
14492         tokens in the cattr table. Fixes #53108.
14493
14494 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14495
14496         * loader.c: don't trim ".dll" before looking up in the config file.
14497         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
14498
14499 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
14500
14501         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
14502         Return the module which contains the resource as well.
14503         (ves_icall_System_Reflection_Module_Close): New icall.
14504
14505         * appdomain.c: Bump corlib version number.
14506
14507         * image.c (mono_image_addref): New public function.
14508
14509         * assembly.c: Call mono_image_addref.
14510
14511         * reflection.c (mono_module_get_object): Increase reference count of 
14512         the image.
14513
14514         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
14515         Fixes #22532.
14516
14517         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
14518         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
14519         proper exceptions on DllImport problems.
14520
14521 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
14522
14523         * class.c, metadata.c: eliminate CSIZE macro.
14524
14525 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
14526
14527         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
14528         * object.h: Added async_callback field in MonoAsyncResult.
14529         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
14530         * verify.c: Added async_callback in MonoAsyncResult layout.
14531
14532 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
14533
14534         * reflection.c (mono_reflection_get_custom_attrs): Add support
14535         for Modules.
14536
14537 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
14538
14539         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
14540         marshalling.
14541         (mono_marshal_method_from_wrapper): Add null pointer check.
14542
14543 2004-01-16  Martin Baulig  <martin@ximian.com>
14544
14545         * debug-mono-symfile.h: Set version number to 36 and reflect
14546         latest symbol writer changes.
14547
14548 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
14549
14550         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
14551         multi-dimensional arrays.
14552         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
14553         (mono_class_from_mono_type): Use bounded_array_class_get.
14554         
14555         * class.c (mono_bounded_array_class_get): New function which takes
14556         a 'bounded' bool argument to distinguish vectors from one dimensional
14557         arrays.
14558
14559         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
14560         bounded_array_class_get if the array has bounds.
14561
14562         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
14563         Search modules loaded using AssemblyBuilder:AddModule as well.
14564
14565 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14566
14567         * appdomain.c: increased corlib version.
14568         * filewatcher.c: removed g_print.
14569         * icall.c:
14570         (get_property_info): only allocate what is actually requested.
14571         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
14572
14573 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14574
14575         * Makefile.am: added filewatcher.[ch]
14576         * filewatcher.[ch]: FileSystemWatcher runtime support.
14577         * icall.c: added new FSW icalls.
14578
14579 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
14580
14581         * string-icalls.c: fix stringbuilder regression as suggested by
14582         Iain McCoy <iain@mccoy.id.au>.
14583
14584 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
14585
14586         * process.c (process_read_stringtable_block): Recognize '007f' as
14587         a language neutral stringtable block.
14588
14589 2004-01-12  Patrik Torstensson
14590
14591         * object.h (MonoStringBuilder) : Changed layout to support our
14592         new stringbuilder class.
14593         * marshal.c: Change marshalling to support the new layout of 
14594         string builder.
14595         * appdomain.c: increased version number because new layout of
14596         string builder.
14597
14598 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
14599
14600         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
14601         assembly name as an string instead of an AssemblyName, since it is
14602         easier to extract info from it.
14603
14604         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
14605         the culture subdirectories too. Fixes #52231.
14606
14607 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14608
14609         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
14610         It takes 2 new parameters with an optional name for the method to look
14611         for and case ignoring info.
14612
14613         * threadpool.c: removed unused variable.
14614
14615 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14616
14617         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
14618         It takes 2 new parameters with an optional name for the property to look
14619         for and case ignoring info.
14620         Fixes bug #52753.
14621
14622 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
14623
14624         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
14625         Fix #52451.
14626
14627 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14628
14629         * appdomain.c:
14630         * assembly.c: escape the uri before passing it to g_filename_from_uri.
14631         Fixes bug #52630.
14632
14633 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
14634
14635         * reflection.c: Add support for more than one unmanaged resource.
14636
14637         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
14638         in field->def_value, as done in all other cases.
14639
14640         * reflection.c (mono_reflection_get_custom_attrs): Add support for
14641         TypeBuilders.
14642
14643         * reflection.c (mono_reflection_create_runtime_class): Remove 
14644         errorneous assignment to klass->element_class, since it is already
14645         done in mono_reflection_setup_internal_class.
14646
14647 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14648
14649         * gc.c: added missing LeaveCriticalSection.
14650         * icall.c: indented a couple of lines.
14651         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
14652         if we call EndInvoke inside a callback. Fixes bug #52601.
14653
14654 2004-01-07  Martin Baulig  <martin@ximian.com>
14655
14656         * mono-debug-debugger.h
14657         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
14658
14659 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
14660
14661         * appdomain.c: Use messages in NotImplementedException.
14662
14663         * exception.c (mono_get_exception_not_implemented): Now this takes
14664         a message argument.
14665
14666         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
14667         exception instead of g_asserting an aborting when something is not
14668         implemented.
14669
14670         Add some inline docs.
14671
14672 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
14673
14674         * reflection.h: Update after changes to object layout.
14675
14676         * reflection.c: Implement saving of unmanaged aka win32 resources.
14677
14678         * appdomain.c: Bump version number.
14679
14680         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
14681         Handle missing domains gracefully.
14682
14683 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
14684
14685         * file-io.c : On Windows, there are much more invalid_path_chars.
14686
14687 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
14688
14689         * class.h, object.c: prepare for GetType () speedup.
14690
14691 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
14692
14693         * profiler.c: workaround for --profile null reference exception on
14694           cygwin. Patch by Patrik Torstensson.
14695
14696 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
14697
14698         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
14699         make work for unaligned access.
14700
14701 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
14702
14703         * class.c: small cleanup (class->fields [i] -> field).
14704         * image.c: check address of metadata is valid.
14705
14706 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
14707
14708         * assembly.h assembly.c (mono_assembly_loaded): New public function to
14709         search the list of loaded assemblies.
14710
14711         * reflection.c (mono_reflection_type_from_name): Use 
14712         mono_assembly_loaded instead of mono_image_loaded.
14713
14714         * reflection.c: Fix warnings.
14715
14716 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
14717
14718         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
14719         is dynamic. This is needed since an assembly can contain both dynamic and
14720         non-dynamic images.
14721
14722         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
14723         assembly->dynamic.
14724
14725         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
14726
14727         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
14728         to store modules loaded using AddModule.
14729
14730         * reflection.c (mono_image_fill_file_table): Generalize this so it works
14731         on Modules.
14732
14733         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
14734
14735         * reflection.c (mono_image_fill_export_table_from_module): New function to
14736         fill out the EXPORTEDTYPES table from a module.
14737
14738         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
14739         into a separate function. Also handle loaded non-dynamic modules.
14740
14741         * reflection.c (mono_image_basic_init): Fix memory allocation.
14742
14743         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14744
14745         * assembly.c (mono_assembly_load_references): Make this public.
14746
14747 2003-12-19  Martin Baulig  <martin@ximian.com>
14748
14749         * class.c (mono_class_initialize_generic): Made this static, take
14750         a `MonoGenericInst *' instead of a `MonoClass *'.
14751         (mono_class_from_generic): Call mono_class_initialize_generic()
14752         unless we're already initialized or being called from
14753         do_mono_metadata_parse_generic_inst().
14754
14755         * class.h (MonoGenericInst): Added `initialized' and
14756         `init_pending' flags.
14757
14758         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
14759         `mono_class_init (gklass)' or mono_class_initialize_generic()
14760         here; set `generic_inst->init_pending' while parsing the
14761         `type_argv'.
14762
14763 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
14764
14765         * locales.c: include string.h for memxxx prototypes
14766
14767 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
14768
14769         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
14770         constructor when accessing literal fields.
14771
14772 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
14773
14774         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14775
14776         * reflection.c (assembly_add_resource_manifest): New function to fill
14777         the MANIFESTRESOURCE table.
14778
14779         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
14780
14781         * reflection.h: Update to changes in class layout.
14782
14783         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
14784         Reenable call to mono_runtime_is_shutting_down ().
14785
14786         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
14787         determine if the runtime is shutting down.
14788
14789 2003-12-16  Jackson Harper <jackson@ximian.com>
14790
14791         * icall.c: comment out call to mono_runtime_is_shutting_down to
14792         fix build.
14793         
14794 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
14795
14796         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
14797         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
14798
14799 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
14800
14801         * reflection.c: move definition of swap_with_size
14802         to before its first call
14803
14804 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
14805
14806         * appdomain.c (mono_runtime_is_shutting_down): New public function.
14807
14808         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
14809         icall.
14810
14811         * object.c: Fix warnings.
14812
14813         * icall.c (ves_icall_Type_Get...): Only consider inherited static
14814         members if FlattenHierarchy is set.
14815
14816         * reflection.c (mono_image_add_decl_security): New function to emit
14817         declarative security.
14818
14819         * reflection.h reflection.c: Add support for declarative security.
14820
14821         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
14822         
14823 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
14824
14825         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
14826         
14827         * appdomain.c verify.c: Moved corlib version checking into its own
14828         function in appdomain.c since it needs to create vtables etc.
14829
14830 2003-12-13  Patrik Torstensson <p@rxc.se>
14831
14832         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
14833         instead of unwrapped server.
14834
14835 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
14836
14837         * verify.c (check_corlib): Fix field index.
14838
14839 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
14840
14841         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
14842         GetGacPath icall.
14843
14844 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
14845
14846         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
14847         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
14848         cope with sizeof(size_t) != sizeof(guint32).
14849
14850 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14851
14852         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
14853         in case of failure.
14854
14855 2003-12-10  Mark Crichton <crichton@gimp.org>
14856
14857         * icall.c: removed the GetNonZeroBytes.  We now handle this case
14858         in managed code.
14859
14860         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
14861
14862 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
14863
14864         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
14865         marked as deleted.
14866
14867 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
14868
14869         * verify.c (check_corlib): Handle the case when the version field is 
14870         initialized by a static constructor.
14871
14872 2003-12-08  Patrik Torstensson  <p@rxc.se>
14873
14874     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
14875
14876 2003-12-08  Martin Baulig  <martin@ximian.com>
14877
14878         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
14879         a MonoReflectionGenericParameter, also take the parameter index
14880         and name as arguments.
14881         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
14882         (ves_icall_MonoGenericParam_initialize): New interncall.
14883         (ves_icall_Type_make_byref_type): New interncall.
14884
14885         * reflection.h (MonoReflectionGenericParam): Derive from
14886         MonoReflectionType, not just from MonoObject.  Added `refobj' and
14887         `index' fields.
14888
14889         * reflection.c (mono_reflection_define_generic_parameter): Create
14890         and return a new MonoReflectionGenericParam; don't initialize the
14891         constraints here.
14892         (mono_reflection_initialize_generic_parameter): New public method;
14893         initializes the constraints and creates the `param->pklass'.
14894
14895 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
14896
14897         * reflection.h reflection.c: Use the new fields 'num_types', 
14898         'num_fields' and 'num_methods' to track the number of types etc.
14899
14900         * verify.c (check_corlib): Check corlib version number.
14901
14902 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
14903
14904         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
14905         function works on all methods.
14906
14907 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
14908
14909         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
14910         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
14911         the custom_type_info flag of the transparent proxy.
14912         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
14913         objects that supports IRemotingTypeInfo.
14914         * object.h: Added custom_type_info field in transparent proxy.
14915
14916 2003-12-06  Martin Baulig  <martin@ximian.com>
14917
14918         * class.c (mono_class_create_from_generic): Removed.
14919         (mono_class_from_generic): Check `ginst->klass' before doing
14920         anything else.  This is important to fully support "recursive"
14921         generic types.
14922
14923         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
14924         empty `generic_inst->klass' before doing anything else.
14925
14926 2003-12-06  Dick Porter  <dick@ximian.com>
14927
14928         * verify.c: 
14929         * object.h:
14930         * icall.c:
14931         * locales.c: Use C structs to access class fields.  Don't do a
14932         conversion between MonoString and UChar because both are
14933         platform-endian UTF-16.  Compare now takes startindex and count
14934         parameters.  Add a char overload for IndexOf.  Speed up the
14935         invariant string IndexOf.
14936
14937 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
14938
14939         * Makefile.am (monosn_LDADD): Fix parallel build.
14940
14941 2003-12-04  Martin Baulig  <martin@ximian.com>
14942
14943         * icall.c
14944         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
14945         (ves_icall_Type_make_array_type): New interncall.       
14946
14947 2003-12-04  Martin Baulig  <martin@ximian.com>
14948
14949         * locales.c: also change it in the !HAVE_ICU case.
14950
14951 2003-12-04  Dick Porter  <dick@ximian.com>
14952
14953         * icall.c:
14954         * locales.c: construct_compareinfo is now in CompareInfo, not
14955         CultureInfo.
14956
14957 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
14958
14959         * image.c (mono_image_load_file_for_image): Cache loaded images in the
14960         image->files array.
14961
14962         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
14963         table as well.
14964
14965         * assembly.c (mono_assembly_load_references): Only load references
14966         once.
14967
14968         * class.c (mono_class_from_name): Avoid linear search of the 
14969         EXPORTEDTYPE table.
14970
14971         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
14972
14973 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
14974
14975         * image.h (MonoImage): Add 'field_cache' field.
14976
14977         * loader.c (mono_field_from_token): Cache field lookups.
14978         
14979         * reflection.c (mono_module_get_object): Fix name property.
14980
14981         * icall.c (ves_icall_get_enum_info): Update after changes to 
14982         mono_metadata_get_constant_index ().
14983
14984         * icall.c: Get rid of get_type_info icall, use a separate icall for
14985         each type property to avoid needless memory allocations. Fixes #51514.
14986
14987         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
14988         to avoid needless binary searches.
14989
14990         * class.c (class_compute_field_layout): Move the initialization of
14991         field->def_value to mono_class_vtable ().
14992
14993         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
14994         non-corlib types.
14995
14996         * object.c (mono_object_allocate): Make it inline.
14997
14998         * object.c (mono_object_allocate_spec): Make it inline.
14999         
15000 2003-12-02  Dick Porter  <dick@ximian.com>
15001
15002         * locales.c (create_NumberFormat): NumberFormatInfo construction.
15003         Patch by Mohammad DAMT (mdamt@cdl2000.com).
15004
15005 2003-12-01  Dick Porter  <dick@ximian.com>
15006
15007         * threads.c: Fix signature and call in CreateMutex and
15008         CreateEvent.
15009
15010 2003-12-01  Dick Porter  <dick@ximian.com>
15011
15012         * icall.c: 
15013         * locales.c: Implement string compares and searching
15014
15015         * object.h: Add extra Thread field
15016
15017 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
15018
15019         * reflection.c (fixup_method): Add support for MonoCMethod.
15020
15021 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
15022
15023         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
15024
15025         * reflection.c (assembly_name_to_aname): Allow extra characters in
15026         assembly names. Fixes #51468.
15027
15028 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
15029
15030         * exception.c (mono_exception_from_name_domain): New helper function.
15031
15032         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
15033         exception object in the correct domain.
15034
15035         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
15036         formatting + make a copy a the input data.
15037
15038         * loader.c (mono_get_method_from_token): Methods which contain
15039         native code do not have entries in the ImplMap.
15040
15041         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
15042         Thanks to Gonzalo for spotting this.
15043         
15044         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
15045         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
15046
15047         * assembly.h (mono_assembly_load_from): Split the second part of 
15048         assembly loading into a new public function.
15049
15050         * exception.h (mono_get_exception_bad_image_format): New function.
15051
15052 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
15053
15054         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
15055         Enumerate all modules inside a dynamic assembly. Fixes #51293.
15056         
15057         * icall.c: Add new icall for creating dynamic methods.
15058
15059         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
15060
15061         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
15062
15063         * reflection.c (mono_reflection_create_dynamic_method): New icall to
15064         create a dynamic method.
15065
15066         * reflection.c (resolve_object): New helper function.
15067
15068         * reflection.c: Generalize ReflectionMethodBuilder and the functions
15069         which manipulate it so they can also work on dynamic methods.
15070
15071         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
15072         creating the MonoReflectionMethodAux structure if it is not needed.
15073         
15074         * reflection.h verify.c: Update after changes to object layout.
15075
15076         * reflection.c (method_builder_encode_signature): Fix compilation on
15077         gcc 2.95.x.
15078
15079 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
15080
15081         * appdomain.h: Added support for context static fields. Added static_data
15082           field to MonoAppContext and renamed thread_static_fields to a more
15083           generic special_static_fields in MonoAppDomain, since it can now contain
15084           context static fields.
15085         * domain.c: Updated hashtable name.
15086         * object.c: Replaced field_is_thread_static() for a more generic
15087           field_is_special_static() which also checks for context static attribute.
15088           In mono_class_vtable(), added support for static context fields.
15089         * threads.c: Changed methods that manage thread static fields to more
15090           generic methods so they can be reused both for thread and context static
15091           data.
15092         * threads.h: Declared some new methods.
15093
15094 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
15095
15096         * reflection.h: Update after changes to the managed types.
15097
15098         * reflection.c (encode_custom_modifiers): New helper function.
15099
15100         * reflection.c (method_encode_signature): Emit custom modifiers.
15101
15102         * reflection.c (field_encode_signature): Emit custom modifiers.
15103
15104 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
15105
15106         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
15107
15108         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
15109         implementation.
15110
15111         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
15112         icall.
15113
15114         * object.c (mono_field_get_value_object): New function.
15115
15116         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
15117         specific.
15118
15119 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
15120
15121         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
15122         return a preallocated out-of-memory exception instance.
15123
15124         * object.c (out_of_memory): Use the new function.
15125
15126         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
15127         flag is before the custom modifiers. Fixes #49802.
15128
15129 2003-11-16  Martin Baulig  <martin@ximian.com>
15130
15131         * class.c (mono_class_is_open_constructed_type): Implemented the
15132         MONO_TYPE_GENERICINST case.
15133
15134 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
15135
15136         * assembly.c (mono_assembly_fill_assembly_name): New function to
15137         fill out the MonoAssemblyName structure.
15138         (mono_assembly_open): Use the new function.
15139
15140         * icall.c (fill_reflection_assembly_name): New helper function.
15141
15142         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
15143         new function.
15144
15145         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
15146
15147 2003-11-15  Martin Baulig  <martin@ximian.com>
15148
15149         * class.c (mono_class_is_open_constructed_type): New public
15150         function; checks whether a type is an open constructed type,
15151         ie. whether it still contains type parameters.
15152         (mono_class_inflate_generic_type): If we're a type parameter and
15153         the inflated type is also a MONO_TYPE_(M)VAR, return the original
15154         type.
15155
15156         * class.h (MonoGenericInst): Added `guint32 is_open'.
15157
15158         * loader.c (method_from_methodspec): Check whether we're an open
15159         or closed constructed type and set `ginst->is_open'.
15160
15161         * reflection.c (mono_reflection_bind_generic_parameters): Check
15162         whether we're an open or closed constructed type and set
15163         `ginst->is_open'.
15164         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
15165         from open constructed types.
15166
15167 2003-11-15  Martin Baulig  <martin@ximian.com>
15168
15169         * reflection.c (mono_reflection_bind_generic_parameters): If we're
15170         a generic instance (instead of a generic type declaration) with
15171         unbound generic parameters, bind them to our actual types.
15172
15173 2003-11-14  Martin Baulig  <martin@ximian.com>
15174
15175         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
15176
15177         * reflection.c (mono_reflection_bind_generic_parameters): If we're
15178         an interface type, populate `res->interfaces' with instantiated
15179         versions of all the interfaces we inherit.
15180
15181 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
15182
15183         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
15184         when MONO_PATH is set but doesn't contain the install dir.
15185
15186 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15187
15188         * icall.c:
15189         (ves_icall_Type_GetInterfaces): don't return an interface twice when
15190         it's also implemented in base classes. Fixes bug #50927.
15191
15192 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
15193
15194         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
15195         if this method is called from a finalizer. Fixes #50913.
15196
15197 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
15198
15199         * threads.c: Implement VolatileRead/VolatileWrite
15200
15201         * icall.c: Add new icalls for VolatileRead/VolatileWrite
15202
15203 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15204
15205         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
15206         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
15207         2.95.3.
15208
15209         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
15210         from Peter Ross (pro@missioncriticalit.com).
15211         
15212 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
15213
15214         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
15215
15216 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15217
15218         * assembly.c (mono_assembly_load_references): Disable check because it
15219         triggers on older corlibs which lots of people have.
15220
15221 2003-11-12  Jackson Harper  <jackson@ximian.com>
15222
15223         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
15224         load corlib.dll if mscorlib.dll is not found.
15225         * assembly.h: Remove corlib name define.
15226         * class.c:
15227         * domain.c:
15228         * image.c: Change corlib name to mscorlib.
15229         
15230 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15231
15232         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
15233
15234 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
15235
15236         * appdomain.h: Added loader_optimization here to sync with the C#
15237         code, and add disallow_binding_redirects field.
15238
15239 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
15240
15241         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
15242
15243         * reflection.c (mono_image_build_metadata): Fix crash on modules
15244         with no types.
15245
15246         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
15247
15248         * icall.c (ves_icall_get_method_info): Return callingConvention as
15249         well.
15250
15251         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
15252         namespaces from the EXPORTEDTYPE table as well.
15253
15254         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
15255         from all modules inside the assembly.
15256         
15257 2003-11-11  Martin Baulig  <martin@ximian.com>
15258
15259         * reflection.c (mono_reflection_bind_generic_parameters): Make
15260         this work for interfaces.
15261
15262 2003-11-11  Martin Baulig  <martin@ximian.com>
15263
15264         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
15265
15266 2003-11-11  Martin Baulig  <martin@ximian.com>
15267
15268         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
15269         "MonoInflatedMethod" and "MonoInflatedCtor".
15270
15271 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
15272
15273         * reflection.c (resolution_scope_from_image): Use the assembly table
15274         from the manifest module, since other modules don't have it.
15275
15276         * debug-helpers.c (mono_type_full_name): New helper function.
15277
15278         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
15279
15280         * image.c (mono_image_load_file_for_image): New public function which
15281         is a replacement for the load_file_for_image in class.c.
15282
15283         * assembly.c (mono_assembly_load_module): A wrapper for the function
15284         above which does assembly association and reference loading too.
15285
15286         * class.c (mono_class_from_name): Call mono_assembly_load_module.
15287
15288 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15289
15290         * appdomain.c: not all of the attributes for the full assembly name
15291         are required and the order doesn't matter. Fixes bug #50787.
15292
15293 2003-11-10  Dick Porter  <dick@ximian.com>
15294
15295         * locales.c: Use platform-endian UTF16
15296
15297 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
15298
15299         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
15300         
15301 2003-11-10  Martin Baulig  <martin@ximian.com>
15302
15303         * metadata.c
15304         (mono_metadata_load_generic_params): Make this actually work.
15305
15306         * reflection.c (mono_reflection_bind_generic_parameters): If our
15307         parent is a generic instance, pass all the `types' to it, no
15308         matter whether it has the same number of type parameters or not.
15309
15310 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
15311
15312         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
15313
15314         * assembly.c (mono_assembly_load_references): Move the image<->assembly
15315         assignment code to this function so it gets called recursively for all
15316         modules.
15317
15318         * image.c (load_modules): Remove the assembly assignment since it is
15319         now done by mono_assembly_load_references.
15320         
15321         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
15322         Add 'module' argument.
15323         (mono_module_get_types): New helper function.
15324         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
15325
15326 2003-11-08  Martin Baulig  <martin@ximian.com>
15327
15328         * class.c (mono_class_inflate_generic_method): Interface method
15329         don't have a header.
15330
15331         * reflection.c (mono_image_get_methodspec_token): Take an
15332         additional `MonoGenericInst *' argument instead of reading it from
15333         the header; this is necessary to support interfaces.
15334         (mono_image_create_token): Pass the `MonoGenericInst *' from the
15335         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
15336         (inflated_method_get_object): Take an additional `MonoGenericInst *'
15337         argument.
15338
15339         * reflection.h (MonoReflectionInflatedMethod): Added
15340         `MonoGenericInst *ginst'.
15341
15342 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
15343
15344         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
15345
15346 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
15347
15348         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
15349
15350 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
15351
15352         * reflection.c 
15353         (reflection_methodbuilder_from_method_builder):
15354         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
15355         initialize a ReflectionMethodBuilder structure.
15356         (mono_image_get_methodbuilder_token):
15357         (mono_image_get_ctorbuilder_token): New functions to emit memberref
15358         tokens which point to types in another module inside the same assembly.
15359
15360         * reflection.c: Use the new helper functions.
15361         
15362         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
15363
15364         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
15365         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
15366
15367         * reflection.c (resolution_scope_from_image): Emit a moduleref if
15368         neccesary.
15369
15370         * reflection.c (mono_image_build_metadata): Emit metadata only for the
15371         current module. Emit the manifest only for the main module.
15372
15373         * reflection.c (mono_image_create_token): Add assertion when a 
15374         memberref needs to be created.
15375
15376         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
15377
15378         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
15379         larger buffer for the custom attribute blob. Fixes #50637.
15380         
15381 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15382
15383         * threadpool.c: notify listener on async processing handles after
15384         invoking the async callback. Thanks to Zoltan.
15385
15386 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15387
15388         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
15389         avoid code duplication.
15390
15391         * reflection.h (MonoDynamicImage): New type which is currently unused,
15392         but will be used through the ref.emit code in place of 
15393         MonoDynamicAssembly.
15394
15395         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
15396         object layout.
15397
15398         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
15399         a MonoDynamicImage instead of just a MonoImage.
15400         
15401         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
15402         icalls to ModuleBuilder but keep their semantics, so they will work
15403         with moduleb->assemblyb. This will change later.
15404         
15405 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15406
15407         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
15408         object layout.
15409
15410         * reflection.c (mono_image_build_metadata): Avoid creation of a default
15411         main module, since it is now done by the managed code.
15412
15413 2003-11-03  Martin Baulig  <martin@ximian.com>
15414
15415         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
15416         `ginst->klass' here.
15417         (method_encode_methodspec): Don't use the `ginst->generic_method's
15418         klass if it's a generic instance, use `ginst->klass' in this case.
15419
15420 2003-11-03  Martin Baulig  <martin@ximian.com>
15421
15422         * reflection.c (mono_image_get_generic_method_param_info):
15423         Removed, use mono_image_get_generic_param_info() instead.
15424         (mono_image_get_type_info): Write the GenericParam table before
15425         the Method table.  This is neccessary because in the GenericParam
15426         table, type parameters of the class (ie. '!0' etc.) must come
15427         before the ones from its generic methods (ie. '!!0' etc).
15428
15429 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15430
15431         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
15432
15433 2003-11-02  Martin Baulig  <martin@ximian.com>
15434
15435         * reflection.c (create_generic_typespec): Take a
15436         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
15437         the generic parameters from it.
15438
15439 2003-11-02  Martin Baulig  <martin@ximian.com>
15440
15441         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
15442         instead of a `MonoClassField *' since we just need the type.
15443         (create_generic_typespec): New static function.  Creates a
15444         TypeSpec token for a generic type declaration.
15445         (mono_image_get_generic_field_token): New static function.
15446         (mono_image_create_token): If we're a FieldBuilder in a generic
15447         type declaration, call mono_image_get_generic_field_token() to get
15448         the token.
15449
15450 2003-11-02  Martin Baulig  <martin@ximian.com>
15451
15452         * reflection.h
15453         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
15454         `MonoReflectionGenericInst *declaring_type' and
15455         `MonoReflectionGenericInst *reflected_type' fields.
15456
15457         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
15458         `MonoReflectionGenericInst *declaring_type' and a
15459         `MonoReflectionGenericInst *reflected_type' argument instead of a
15460         single `MonoReflectionGenericInst *type' one.  Set
15461         `res->declaring_type' and `res->reflected_type' from them.
15462         (mono_reflection_inflate_field): Likewise.      
15463
15464 2003-11-02  Martin Baulig  <martin@ximian.com>
15465
15466         * class.c (mono_class_setup_vtable): Don't store generic methods
15467         in the vtable.  
15468
15469 2003-11-02  Martin Baulig  <martin@ximian.com>
15470
15471         * reflection.h (MonoReflectionGenericInst): Added
15472         `MonoReflectionType *declaring_type'.
15473
15474         * reflection.c (mono_reflection_bind_generic_parameters): Use
15475         `if (tb->parent)' instead of `klass->parent'.
15476
15477 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
15478
15479         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
15480         with an empty ASSEMBLY table.
15481
15482         * reflection.c (mono_image_build_metadata): Avoid using the same loop
15483         variable in the inner and outer loops.
15484
15485 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
15486
15487         * metadata.h (mono_metadata_make_token): Put parentheses around macro
15488         argument.
15489
15490         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
15491         
15492         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
15493         icalls. Instead, do everything in managed code. This is needed since
15494         it is hard to restore the original domain etc. in unmanaged code in the
15495         presence of undeniable exceptions.
15496
15497         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
15498         New icalls to push and pop appdomain refs.
15499
15500 2003-10-31  Martin Baulig  <martin@ximian.com>
15501
15502         * class.c (inflate_generic_type): Renamed to
15503         mono_class_inflate_generic_type() and made it public.
15504
15505         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
15506         New interncall.
15507
15508         * loader.c (mono_field_from_memberref): Also set the retklass for
15509         typespecs.
15510
15511         * fielder.c (mono_image_get_inflated_field_token): New static
15512         method; creates a metadata token for an inflated field.
15513         (mono_image_create_token, fixup_method): Added support for
15514         "MonoInflatedField".
15515         (fieldbuilder_to_mono_class_field): New static function.
15516         (mono_reflection_inflate_field): New public function.
15517
15518         * reflection.h
15519         (MonoReflectionGenericInst): Added `MonoArray *fields'.
15520         (MonoReflectionInflatedField): New typedef.     
15521
15522 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
15523
15524         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
15525         for Solaris and other platforms without s6_addr16
15526
15527 2003-10-30  Martin Baulig  <martin@ximian.com>
15528
15529         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
15530         argument instead of two.
15531         (mono_class_inflate_generic_signature): Likewise.
15532         (inflate_generic_header): Likewise.
15533         (mono_class_inflate_generic_method): Likewise.  In addition, if
15534         `ginst->klass' is set, it becomes the new `method->klass'.
15535
15536         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
15537         field.
15538
15539         * reflection.c (encode_generic_method_sig): Write a 0xa as the
15540         first byte. [FIXME]
15541         (method_encode_methodspec): If we have generic parameters, create
15542         a MethodSpec instead of a MethodRef.
15543         (fixup_method): Added support for "MonoInflatedMethod" and
15544         "MonoInflatedCtor".
15545         (mono_image_create_token): Added support for "MonoInflatedMethod"
15546         and "MonoInflatedCtor".
15547         (inflated_method_get_object): New static function; returns a
15548         managed "System.Reflection.MonoInflatedMethod" object.
15549         (mono_reflection_bind_generic_method_parameters): Return a
15550         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
15551         (mono_reflection_inflate_method_or_ctor): Likewise.
15552         (mono_image_get_generic_method_param_info): Initialize unused
15553         fields to zero.
15554         (mono_image_get_generic_param_info): Likewise.
15555
15556         * reflection.h (MonoReflectionInflatedMethod): New public
15557         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
15558         "S.R.MonoInflatedCtor" classes.
15559
15560         * loader.c (method_from_memberref): If we're a TypeSpec and it
15561         resolves to a generic instance, inflate the method.
15562
15563 2003-10-28  Dick Porter  <dick@ximian.com>
15564
15565         * object.c (mono_runtime_run_main): Convert command-line arguments
15566         into utf8, falling back to the user's locale encoding to do so.
15567
15568 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
15569
15570         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
15571         at this time.
15572
15573         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
15574
15575         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
15576         up icalls at method definition time. Partially fixes #33569.
15577
15578 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
15579
15580         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
15581         marshalling of arrays. Fixes #50116.
15582
15583         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
15584
15585         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
15586         points to a vtable in the dying appdomain.
15587
15588         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
15589         listeners into unmanaged code inside the lock.
15590
15591         * object.c (mono_class_vtable): Turn off typed allocation in non-root
15592         domains and add some comments.
15593
15594 2003-10-25  Martin Baulig  <martin@ximian.com>
15595
15596         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
15597
15598         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
15599
15600         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
15601         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
15602         currently parsing.  Create the generic class and store it in
15603         `generic_inst->klass' before parsing the type arguments.  This is
15604         required to support "recursive" definitions; see mcs/tests/gen-23.cs
15605         for an example.
15606         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
15607         to support recursive typespec entries.
15608
15609         * class.c (mono_class_setup_parent): If our parent is a generic
15610         instance, we may get called before it has its name set.
15611         (mono_class_from_generic): Splitted into
15612         mono_class_create_from_generic() and mono_class_initialize_generic().
15613
15614 2003-10-25  Martin Baulig  <martin@ximian.com>
15615
15616         * icall.c (ves_icall_Type_BindGenericParameters): Return a
15617         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
15618         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
15619         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
15620
15621         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
15622         (create_typespec): Likewise.
15623         (mono_reflection_bind_generic_parameters): Return a
15624         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
15625         (mono_reflection_inflate_method_or_ctor): New public function.
15626
15627         * reflection.h (MonoReflectionGenericInst): New typedef.        
15628
15629 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
15630
15631         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
15632         inside the domain lock. Fixes #49993.
15633         
15634         * object.c (mono_class_vtable): When typed allocation is used, 
15635         allocate vtables in the GC heap instead of in the mempool, since the
15636         vtables contain GC descriptors which are used by the collector even
15637         after the domain owning the mempool is unloaded.
15638
15639         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
15640
15641         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
15642         reflect what it does. Also invalidate mempools instead of freeing
15643         them if a define is set.
15644
15645         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
15646         of the appdomain.
15647         
15648         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
15649         hold the finalizable objects in this domain.
15650
15651         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
15652         appdomain.
15653
15654         * appdomain.c (mono_domain_set): New function to set the current
15655         appdomain, but only if it is not being unloaded.
15656
15657         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
15658         appdomain which is being unloaded.
15659         
15660         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
15661         unloading of the root appdomain.
15662
15663         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
15664         icall to execute a method in another appdomain. Intended as a 
15665         replacement for InternalSetDomain, which can confuse the code 
15666         generation in the JIT.
15667
15668         * appdomain.c (mono_domain_is_unloading): New function to determine
15669         whenever an appdomain is unloading.
15670
15671         * appdomain.c (mono_domain_unload): New function to correctly unload
15672         an appdomain.
15673
15674         * assembly.c (mono_assembly_load_references): Check that an assembly
15675         does not references itself.
15676
15677         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
15678         domain manually, it asks the finalizer thread to do it, then waits for
15679         the result. Also added a timeout.
15680
15681         * icall.c: Register the new icalls.
15682
15683         * threads.h threads.c: Export the mono_gc_stop_world and 
15684         mono_gc_start_world functions.
15685         
15686         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
15687         function to fill out the mempool with 0x2a.
15688
15689 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
15690
15691         * reflection.h (MonoReflectionMethodAux): New structure to store
15692         information which is rarely used, thus is not in the MonoMethod
15693         structure.
15694
15695         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
15696         store the aux info.
15697
15698         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
15699         and marshalling info into the aux structure.
15700
15701         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
15702         from the aux structure.
15703
15704         * loader.c (mono_method_get_param_names): Retrieve the param names from
15705         the aux structure.
15706         
15707 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
15708
15709         * exception.h exception.c: Add AppDomainUnloadedException && fix 
15710         warning.
15711
15712 2003-10-21  Dick Porter  <dick@ximian.com>
15713
15714         * socket-io.c
15715         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
15716         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
15717
15718 2003-10-21  Martin Baulig  <martin@ximian.com>
15719
15720         * reflection.c (mono_reflection_bind_generic_parameters):
15721         `klass->parent' is NULL for interfaces.
15722
15723 2003-10-21  Martin Baulig  <martin@ximian.com>
15724
15725         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
15726
15727 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
15728
15729         * exception.c (mono_exception_from_name_msg): New helper function for
15730         creating exceptions and initializing their message field.
15731
15732         * exception.c: Simplify functions using the new helper.
15733
15734         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
15735         New function.
15736
15737         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
15738         mono_raise_exception, since otherwise gcc doesn't generate the function
15739         epilog for raise_exception, confusing the stack unwinding in the JIT.
15740         Fixes #45043.
15741
15742         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
15743         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
15744         Fixes #49499.
15745
15746 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15747
15748         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
15749         utf8.
15750
15751 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
15752
15753         * icall.c: Removed GetUninitializedObject method because
15754           AllocateUninitializedClassInstance does the same.
15755
15756 2003-10-18  Martin Baulig  <martin@ximian.com>
15757
15758         * class.c (inflate_generic_signature): Renamed to
15759         mono_class_inflate_generic_signature() and made it public.
15760         (my_mono_class_from_generic_parameter): New static function; if we
15761         don't already have the generic parameter's MonoClass, create a
15762         very simple one which is just used internally in the runtime and
15763         not passed back to managed code.
15764
15765         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
15766
15767         * metadata.h (MonoMethodSignature): Moved the
15768         `MonoGenericParam *gen_params' to the MonoMethodHeader.
15769         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
15770
15771         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
15772         ves_icall_MonoMethod_GetGenericArguments(); this is now an
15773         interncall on the MonoMethod class, not on MethodInfo.
15774         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
15775         calling mono_reflection_bind_generic_method_parameters() directly.
15776
15777         * loader.c (mono_method_get_signature): If this is a MethodSpec;
15778         return the already computed `method->signature'.
15779         (method_from_methodspec): New static function to load a method
15780         from a MethodSpec entry.
15781         (mono_get_method_from_token): Call the new method_from_methodspec()
15782         for MethodSpec tokens.  
15783         (mono_get_method_from_token): If we're a generic method, load the
15784         type parameters.
15785
15786         * reflection.c (mono_image_get_memberref_token): Allow
15787         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
15788         table.
15789         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
15790         (mono_image_create_token): First check whether it's a generic
15791         method (so we'd need to create a MethodSpec), then do the other
15792         two alternatives.
15793         (mono_reflection_bind_generic_method_parameters): Return a
15794         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
15795         called directly from the interncall.
15796
15797 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
15798
15799         * reflection.c (load_public_key): Move loading of the public key
15800         into managed code.
15801
15802         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
15803
15804         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
15805         fields.
15806
15807         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
15808         culture, hash_alg and public_key. Fixes #49555.
15809
15810 2003-10-17  Martin Baulig  <martin@ximian.com>
15811
15812         * class.h (MonoGenericInst): Moved this declaration here and added
15813         `MonoMethod *generic_method'.
15814
15815         * icall.c
15816         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
15817         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
15818
15819         * metadata.c (mono_metadata_type_equal): Two types of
15820         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
15821         index; ie. don't compare the address of the `MonoGenericParam'
15822         structure.
15823         (mono_metadata_load_generic_params): Removed the `MonoMethod
15824         *method' argument.
15825
15826         * metadata.h (MonoGenericInst): Moved declaration to class.h.
15827         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
15828
15829         * reflection.c (method_encode_signature): Encode the number of
15830         generic parameters.
15831         (encode_generic_method_sig): New static function.
15832         (method_encode_methodspec): New static function; creates an entry
15833         in the MethodSpec table for a generic method.
15834         (mono_image_get_methodspec_token): New static function.
15835         (mono_image_create_token): Call mono_image_get_methodspec_token()
15836         for generic methods.
15837         (mono_reflection_bind_generic_method_parameters): New public
15838         function.  Instantiates a generic method.
15839
15840 2003-10-16  Martin Baulig  <martin@ximian.com>
15841
15842         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
15843         *gen_params' here from MonoMethodHeader.
15844
15845         * metadata.c (mono_metadata_parse_method_signature): If we have
15846         generic parameters, initialize `method->gen_params' and then set
15847         the correct `type->data.generic_param' in all the parameters.
15848
15849 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
15850
15851         * threads.c (mono_threads_get_default_stacksize): New function to 
15852         return the default stacksize.
15853
15854         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
15855         termination of the finalizer thread, since the previous method had
15856         race conditions. Fixes #49628.
15857
15858         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
15859         as for the other managed threads.
15860
15861 2003-10-16  Martin Baulig  <martin@ximian.com>
15862
15863         * class.c (inflate_generic_signature): Copy `generic_param_count'
15864         and `gen_params'.
15865
15866         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
15867         New interncall.
15868
15869         * metadata.c (mono_metadata_parse_method_signature): Actually set
15870         the `method->generic_param_count' here.
15871         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
15872
15873 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
15874
15875         * object.h: Add a new field to TypedRef to simplify the implementation
15876         of the REFANY opcodes in the JIT.
15877
15878         * icall.c: Make use of the new field.
15879
15880         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
15881         dynamically.
15882
15883 2003-10-15  Martin Baulig  <martin@ximian.com>
15884
15885         * class.c (mono_class_from_gen_param): Renamed to
15886         mono_class_from_generic_parameter() and moved most of the
15887         functionality from mono_reflection_define_generic_parameter()
15888         here; ie. we create a "real" class here.
15889         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
15890         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
15891         previously been called.
15892
15893         * class.h (MonoGenericParam): Moved the declaration of this struct
15894         here from metadata.h and added `MonoMethod *method'.
15895
15896         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
15897         interncall.
15898
15899         * loader.c (mono_get_method_from_token): If we have any generic
15900         parameters, call mono_metadata_load_generic_params() to read them
15901         from the MONO_TABLE_GENERICPAR.
15902
15903         * metadata.c (mono_metadata_load_generic_params): Added
15904         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
15905
15906         * metadata.h (MonoMethodSignature): Replaced
15907         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
15908         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
15909
15910         * reflection.c (mono_reflection_define_generic_parameter): Moved
15911         most of the functionality into the new
15912         mono_class_from_generic_parameter(); set the `method' field if
15913         we're a method parameter.       
15914
15915 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
15916
15917         * marshal.c (emit_struct_conv): if native size is 0
15918         emit no code.
15919
15920 2003-10-14  Martin Baulig  <martin@ximian.com>
15921
15922         * icall.c: The generics API has changed in the spec since it was
15923         added to System.Type; these modifications make it match the spec
15924         again.
15925         (ves_icall_Type_GetGenericParameters): Renamed to
15926         `ves_icall_Type_GetGenericArguments'.
15927         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
15928         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
15929         `ves_icall_MonoType_get_HasGenericArguments'.
15930         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
15931         `ves_icall_MonoType_get_IsGenericParameter'.
15932         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
15933         this is no interncall anymore.
15934         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
15935         `ves_icall_TypeBuilder_get_IsGenericParameter'.
15936
15937 2003-10-14  Martin Baulig  <martin@ximian.com>
15938
15939         * reflection.c (mono_reflection_bind_generic_parameters): Also
15940         inflate generic methods if we're reading the class from IL.
15941
15942 2003-10-13  Martin Baulig  <martin@ximian.com>
15943
15944         * reflection.c (mono_reflection_define_generic_parameter): This
15945         method isn't called directly from the icall anymore; take a
15946         `MonoReflectionAssemblyBuilder *' so we can use this for type and
15947         method generic parameters.
15948         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
15949         (method_builder_encode_signature): Encode generic parameters.
15950         (mono_image_get_method_info): Write generic params to the
15951         MONO_TABLE_GENERICPARAM table.
15952
15953         * reflection.h (MonoReflectionMethodBuilder): Added
15954         `MonoArray *generic_params'.
15955
15956         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
15957
15958         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
15959         wrapper for mono_reflection_define_generic_parameter().
15960         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
15961
15962 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
15963
15964         * marshal.h: Add missing function to fix build.
15965
15966         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
15967         the SetLastError pinvoke attribute.
15968
15969         * marshal.c (mono_marshal_set_last_error): New helper function called
15970         by the generated code.
15971         
15972         * marshal.c (mono_mb_emit_branch): New helper function.
15973
15974         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
15975
15976         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
15977         classes as parameters and return values of delegates. Fixes #29256. 
15978
15979 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
15980
15981         * locales.c: use gint32 in non HAVE_ICU case
15982
15983 2003-10-11  Martin Baulig  <martin@ximian.com>
15984
15985         * mono-debug.c (mono_debug_add_method): Added a workaround for
15986         bug #48591.
15987
15988 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
15989
15990         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
15991         delegates passed to native code must use the STDCALL calling 
15992         convention. Fixes #35987.
15993
15994 2003-10-10  Martin Baulig  <martin@ximian.com>
15995
15996         * class.c (inflate_generic_type): If we're inflating for a generic
15997         type instance (and not for a generic method), return
15998         MONO_TYPE_MVAR unchanged.
15999
16000 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16001
16002         * string-icalls.c: Join ignores null strings in the source array.
16003         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
16004         * threads.c: GetAvailableTheads is slightly more accurate.
16005
16006 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
16007
16008         * threads.h threads.c : add mono_threads_set_default_stacksize
16009         and pass default to CreateThread calls.
16010
16011 2003-10-09  Dick Porter  <dick@ximian.com>
16012
16013         * icall.c:
16014         * locales.h:
16015         * locales.c: Internal calls for constructing CultureInfo and
16016         related objects from libicu (if its available.)
16017
16018 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
16019
16020         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
16021
16022 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16023
16024         * threadpool.c: added an argument to async_invoke_thread that is the
16025         item to process, pass the MonoAsyncResult to the thread start function
16026         when creating a new thread. This way we don't need to acquire any lock
16027         when we're creating a new thread. Readded a semaphore for faster
16028         response times (instead of that Sleep i added).
16029
16030 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
16031
16032         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
16033         get daylight change dates better on Windows, fix handling
16034         of platforms without tm_gmtoff.
16035
16036 2003-10-06  Martin Baulig  <martin@ximian.com>
16037
16038         * class.c (inflate_generic_method): Renamed to
16039         mono_class_inflate_generic_method() and made public.
16040         (mono_class_init): Don't inflate the generic methods here.
16041         (mono_class_from_generic): Added `gboolean inflate_methods'
16042         argument.  Inflate the methods here.
16043
16044         * loader.c (mono_method_get_param_names): Ignore instances of
16045         generic types for the moment.
16046
16047         * reflection.c (fixup_method): Added support for inflated methods.
16048         (mono_image_create_token): Use mono_image_get_methodref_token()
16049         for inflated methods.
16050         (mono_custom_attrs_from_param): Ignore instances of generic types
16051         for the moment.
16052         (mono_reflection_bind_generic_parameters): New public function.
16053         Moved all the functionality from
16054         ves_icall_Type_BindGenericParameters() here and added support for
16055         dynamic types.
16056         (mono_reflection_define_generic_parameter): Initialize
16057         `klass->methods' here.
16058
16059         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
16060         functionality into mono_reflection_define_generic_parameter().
16061         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
16062         TypeBuilder, return that TypeBuilder.
16063
16064 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16065
16066         * appdomain.c: removed mono_delegate_semaphore.
16067
16068         * threadpool.c:
16069         (mono_thread_pool_add): moved hash table creation inside and the thread 
16070         creation outside of the critical region.
16071         (mono_thread_pool_finish): removed obsolete code.
16072         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
16073         continue or exit the thread depending on the queue.
16074
16075 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
16076
16077         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
16078         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
16079         handle more bool marshalling options
16080
16081 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
16082
16083         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
16084         arrays of structs. Also add a more descriptive error message when
16085         a structure member is marshalled as LPArray.
16086
16087 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
16088
16089         * marshal.c (mono_marshal_get_native_wrapper): Add support for
16090         marshalling arrays of complex types. Fixes #29098. Also remove an
16091         usused and incomplete function.
16092
16093 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
16094
16095         * gc.c: report heap_size - free_bytes as total memory allocated
16096         (bug#49362).
16097
16098 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
16099
16100         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
16101         fix timezone handling problems on Windows.
16102         
16103         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
16104         asserts when the year is outside the range handled by ms the functions.
16105
16106         * class.c (setup_interface_offsets): If the class is an interface,
16107         fill out its interface_offsets slot.
16108
16109 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16110
16111         * threadpool.c: mark threadpool threads as background.
16112
16113 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
16114
16115         * decimal.c - define DECINLINE to nothing if not using GCC
16116
16117 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
16118
16119         * assembly.c: More refcount fixes.
16120
16121 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16122
16123         * string-icalls.c: if we're not trimming, return the same string.
16124         When not splitting, don't create a new string.
16125
16126 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16127
16128         * image.c:
16129         (mono_image_open): increment the ref_count inside the critical section.
16130
16131 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
16132
16133         * image.c (mono_image_open): Fix reference counting bug.
16134
16135 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
16136
16137         * marshal.c (mono_marshal_type_size) struct alignment changed for 
16138         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
16139         64bits. Avoid leak in mono_marshal_get_native_wrapper when
16140         mono_lookup_pinvoke_call throws.        
16141
16142 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
16143
16144         * reflection.c (mono_reflection_parse_type): Fix #49114.
16145
16146         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
16147         temporary workaround for cygwin header problem.
16148
16149         * object.c (mono_object_isinst): Synchronize this with the code
16150         generated by the JIT for casts.
16151
16152 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
16153
16154         * reflection.c (encode_type): Fix #38332.
16155
16156 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
16157
16158         * marshal.c (mono_marshal_method_from_wrapper): New function to return
16159         the original method from the wrapper method.
16160
16161 2003-09-25  Martin Baulig  <martin@ximian.com>
16162
16163         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
16164         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
16165         (ves_icall_Type_get_IsGenericInstance): New interncall.
16166
16167 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
16168
16169         * object.c: fix cast warning in big endian code.
16170
16171 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
16172
16173         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
16174         
16175 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16176
16177         * assembly.c: don't call check_env from mono_assembly_load. It's
16178         already done once in mono_assemblies_init and may cause headaches when
16179         multiple threads are loading assemblies.
16180
16181 2003-09-19  Martin Baulig  <martin@ximian.com>
16182
16183         * reflection.c (mono_reflection_define_generic_parameter): Don't
16184         allocate `klass->methods', set `klass->flags' to
16185         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
16186
16187 2003-09-18  Martin Baulig  <martin@ximian.com>
16188
16189         * class.c (mono_class_init): Don't create `class->methods' if it's
16190         already initialized.
16191
16192         * metadata.c (mono_metadata_load_generic_params): Make this
16193         actually work.
16194
16195         * reflection.c (mono_reflection_define_generic_parameter): Set
16196         parent class and interfaces from the constraints.
16197
16198         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
16199         to keep this struct in sync with the declaration in TypeBuilder.cs.
16200
16201 2003-09-17  Martin Baulig  <martin@ximian.com>
16202
16203         * metadata.h (MonoType): Replaced the data's `int type_param'
16204         field with `MonoGenericParam *generic_param'.
16205         (MonoGenericParam): Added `MonoClass *klass'.
16206
16207         * class.c (mono_class_from_gen_param): Removed the
16208         `MonoImage *image' and `int type_num' arguments.
16209
16210         * metadata.c (mono_metadata_parse_generic_param): New static
16211         method; creates a MonoGenericParam which just contains the index.
16212         (do_mono_metadata_parse_type): Call
16213         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
16214         MONO_TYPE_MVAR.
16215
16216         * reflection.c (mono_image_typedef_or_ref): Generic type
16217         parameters may be in the same assembly, but never use a typedef
16218         for them.
16219         (mono_reflection_define_generic_parameter): We're now creating a
16220         "real" class for the type parameter; it's now safe to call
16221         mono_class_from_mono_type() on the class'es type, it'll do the
16222         right thing.
16223
16224 2003-09-16  Martin Baulig  <martin@ximian.com>
16225
16226         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
16227         `symfile->range_entry_size' and `symfile->class_entry_size' here;
16228         the `symfile' data structure must be fully initialized before it
16229         gets added to the table.
16230
16231 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
16232
16233         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
16234
16235         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
16236         class init trampolines.
16237
16238 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
16239
16240         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
16241         to the built-in profiler to turn off time and allocation profiling
16242         respectively.
16243
16244 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
16245
16246         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
16247         g_direct_equal.
16248
16249         * debug-helpers.c (mono_method_full_name): Print the wrapper type
16250         in human readable form.
16251
16252 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
16253
16254         * reflection.c icall.c: Fixed warnings.
16255
16256         * image.c (load_class_names): Use a temporary hash table to hold the
16257         namespaces in order to avoid doing many string comparisons.
16258
16259         * image.h: Fix typo.
16260
16261         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
16262         Pass NULL instead of g_direct_equal to the GHashTable constructor 
16263         since the NULL case is short-circuited inside g_hash_table_lookup, 
16264         leading to better performance.  
16265
16266         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
16267         obtain the first custom attribute for a given index. Depends on the
16268         CustomAttribute table being sorted by the parent field.
16269
16270         * reflection.c (mono_custom_attrs_from_index): Use the new function 
16271         for better performance.
16272
16273 2003-09-07  Martin Baulig  <martin@ximian.com>
16274
16275         * class.c (mono_class_init): If we're a generic instance, inflate
16276         all our methods instead of loading them from the image.
16277         (mono_class_from_generic): Set `class->methods = gklass->methods'.
16278
16279 2003-09-07  Martin Baulig  <martin@ximian.com>
16280
16281         * mono-debug-debugger.c: Added support for constructors.
16282
16283 2003-09-06  Martin Baulig  <martin@ximian.com>
16284
16285         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
16286         New interncall.
16287
16288         * reflection.c (mono_reflection_setup_generic_class): Call
16289         ensure_runtime_vtable() to create the vtable.
16290
16291 2003-09-05  Martin Baulig  <martin@ximian.com>
16292
16293         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
16294         MONO_TYPE_MVAR.
16295
16296 2003-09-04  Martin Baulig  <martin@ximian.com>
16297
16298         * reflection.c (mono_reflection_define_generic_parameter): Generic
16299         parameters start with zero.
16300
16301 2003-09-04  Martin Baulig  <martin@ximian.com>
16302
16303         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
16304
16305         * reflection.h (MonoReflectionGenericParam): New typedef.
16306         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
16307         the generic parameters from the managed TypeBuilder.
16308
16309         * reflection.c (mono_reflection_define_generic_parameter): New function.
16310         (mono_reflection_create_runtime_class): Encode generic parameters.
16311         (mono_reflection_setup_generic_class): New function; this is
16312         called after adding adding all generic params to the TypeBuilder.
16313         (encode_type): Added MONO_TYPE_VAR.
16314
16315 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
16316
16317         * class.h class.c (mono_class_needs_cctor_run): Moved this method
16318         here from the JIT.
16319
16320         * assembly.h assembly.c: Moved the AOT loading code into an assembly
16321         load hook.
16322
16323 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
16324
16325         * reflection.h reflection.c class.h class.c: Delete duplicate 
16326         definition of mono_type_get_name () from reflection.c and export the
16327         one in class.c.
16328
16329         * class.c: Class loading fixes from Bernie Solomon 
16330         (bernard@ugsolutions.com).
16331
16332         * reflection.c: Endianness fixes from Bernie Solomon 
16333         (bernard@ugsolutions.com).
16334         
16335 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
16336
16337         * assembly.h assembly.c: Define a file format version for AOT
16338         libraries.
16339         
16340         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
16341
16342         * appdomain.h (MonoJitInfo): New field to determine whenever the
16343         code is domain neutral.
16344         
16345 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
16346
16347         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
16348
16349 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
16350
16351         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
16352         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
16353         Avoid caching the result since strings must be domain specific. Fixes
16354         #48050.
16355
16356 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
16357
16358         * marshal.c (mono_marshal_init): Make this callable multiple times
16359         since it is hard to find a correct place to call it.
16360
16361         * object.c (mono_runtime_class_init): Execute static constructors in
16362         the correct appdomain.
16363
16364         * image.c (build_guid_table): Handle the case when multiple images have
16365         the same GUID.
16366
16367 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16368
16369         * icall.c: added a couple of icalls for System.Web.
16370
16371 2003-08-28  Martin Baulig  <martin@ximian.com>
16372
16373         * icall.c (ves_icall_Type_BindGenericParameters): Use
16374         `klass->generic_inst' instead of `&klass->byval_arg' in the
16375         mono_type_get_object() call.  The returned type must be
16376         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
16377
16378 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
16379
16380         * NOTES: New file.
16381
16382         * object.c (mono_class_proxy_vtable): Make it thread safe.
16383
16384         * pedump.c: Fix warning.
16385
16386         * object.c appdomain.h: Get rid of metadata_section. 
16387         It is no longer needed and it was causing deadlocks with domain->lock.
16388
16389         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
16390
16391 2003-08-26  Martin Baulig  <martin@ximian.com>
16392
16393         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
16394
16395 2003-08-26  Martin Baulig  <martin@ximian.com>
16396
16397         * pedump.c (main): Call mono_metadata_init(),
16398         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
16399         and mono_loader_init().
16400
16401 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
16402
16403         * loader.h: Add missing include to fix build.
16404
16405         * image.h: mono_image_load_references is no more.
16406
16407         * assembly.c: Reworked assembly loading to make it really thread safe.
16408         After these changes, the assembly returned by mono_assembly_open is
16409         fully initialized, i.e. all its references assemblies are loaded.
16410
16411         * assembly.c (mono_image_load_references): Renamed to 
16412         mono_assembly_load_references, and made private, since clients no
16413         longer need to call it.
16414
16415         * class.c: Removed calls to mono_assembly_load_references, since it was
16416         a source of deadlocks.
16417
16418         * loader.h loader.c class.h class.c: Protect data structures using a 
16419         new lock, the loader lock.
16420
16421         * class.c (mono_class_setup_vtable): Create temporary hash tables and
16422         GPtrArrays only when needed.
16423
16424         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
16425         into empty structures by mcs. Fixes pinvoke7.cs.
16426         
16427         * domain.c (mono_init): Call a new initialization function.
16428
16429         * appdomain.c (mono_runtime_init): Call the new initializer function
16430         of the marshal module.
16431
16432         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
16433         inserted into empty structures by mcs. Fixes pinvoke7.cs.
16434
16435         * marshal.h marshal.c: Added locks around the wrapper caches to make
16436         this module thread safe.
16437
16438         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
16439         this argument. Fixes pinvoke1.exe.
16440
16441 2003-08-25  Lluis Sanchez <lluis@ximian.com>
16442
16443         * object.h: Added call_type field to MonoMethodMessage and the corresponding
16444         enumeration of values. Removed fields to store remote call output values in
16445         MonoAsyncResult. Not needed any more.
16446         * object.c: Initialize call_type and async_result fields in mono_message_init.
16447         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
16448         dispatching the message.
16449         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
16450         async call to finish. To do it use a message with EndInvoke call type.
16451
16452 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
16453
16454         * loader.h loader.c (mono_method_hash_marhal_info): New function which
16455         determines whenever a method has marshalling info.
16456
16457 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16458
16459         * assembly.c: fix the build on windows.
16460
16461 2003-08-22 Lluis Sanchez <lluis@ximian.com>
16462
16463         * object.cs: Fixed bug #47785.
16464
16465 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
16466
16467         * string-icalls.c (StringReplace): If their are no occurances of
16468         the old string found return a reference to the supplied
16469         string. This saves some memory and matches MS behavoir.
16470         
16471 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16472
16473         * socket-io.c: fixed compilation for systems that define AF_INET6
16474         and don't define SOL_IP/SOL_IPV6.
16475
16476 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
16477
16478         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
16479         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
16480
16481         * rawbuffer.c rawbuffer.h: Make this module thread safe.
16482
16483         * domain.c: Make this module thread safe.
16484
16485         * domain.c (mono_init): Call new initialization function.
16486
16487         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
16488         reference types too. Fixes #38812.
16489
16490         * image.c (mono_image_init): Fixed warnings.
16491
16492         * class.c (mono_class_from_typeref): Handle assembly load failure
16493         correctly.
16494
16495         * appdomain.c (add_assemblies_to_domain): Handle the case when
16496         the references of an assembly are not yet loaded.
16497
16498         * metadata.c image.c assembly.c: Moved initialization of global
16499         variables to a separate function called at startup since lazy 
16500         initialization of these variables is not thread safe.
16501         
16502         * image.c assembly.c: Made this module thread safe by adding locks in 
16503         the appropriate places.
16504
16505         * domain.c (mono_init): Call the new initialization functions of the
16506         three modules.
16507
16508 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
16509
16510         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
16511           make a direct call. It is proxy's work to make the call asynchronous.
16512           mono_delegate_end_invoke(): If the targe is a proxy, just collect
16513           the return values.
16514         * object.cs: mono_method_call_message_new(): read AsyncResult and
16515           state object from parameters list, if this info is requested.
16516         * object.h: Added fields to store remote call output values in
16517           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
16518
16519 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16520
16521         * object.h: add needed fields to MonoThread.
16522         * threads.c, threads.h: allow registering a function to cleanup data
16523         allocated per thread by the JIT.
16524
16525 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16526
16527         * loader.h: portability fix by Bernie Solomon
16528         * <bernard@ugsolutions.com>.
16529
16530 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
16531
16532         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
16533         return a MonoArray. This simplifies the code and also ensures that
16534         the cache allways contains an object reference as a value.
16535
16536         * icall.c (ves_icall_get_parameter_info): Simplified using the new
16537         function.
16538
16539 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16540
16541         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
16542         fixes a problem with byte ordering when getting the address family for
16543         a socket.
16544
16545 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
16546
16547         * .cvsignore: Added monosn.
16548
16549         * reflection.h reflection.c loader.c: Added support for parameter
16550         marshalling to dynamically created types. Fixes #47295.
16551
16552 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
16553
16554         * rand.c: remove useless warnings.
16555
16556 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
16557
16558         * class.c: implemented ldtoken for methods and fieldrefs.
16559
16560 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16561
16562         * threadpool.c: when mono_async_invoke was called, no one took care of
16563         monitoring the queue. So if the method invoked took some time and we
16564         got new async invoke requests after 500 ms (the thread created waited
16565         that long in WaitForSingleObject), the new async invoke was not called
16566         until the previous one finished.
16567
16568         This is fixed now. Thanks to Totte for helping with it.
16569
16570 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16571
16572         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
16573
16574 2003-08-11  Martin Baulig  <martin@ximian.com>
16575
16576         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
16577
16578 2003-08-06  Martin Baulig  <martin@ximian.com>
16579
16580         * mono-debug-debugger.c: Added support for static fields,
16581         properties and methods.
16582
16583 2003-08-06  Martin Baulig  <martin@ximian.com>
16584
16585         * mono-debug-debugger.c: Don't store the MonoString's vtable to
16586         make this work for applications with multiple application domains.
16587
16588 2003-08-04  Martin Baulig  <martin@ximian.com>
16589
16590         * mono-debug-debugger.c: Completely reworked the type support; the
16591         most important thing is that we're now just using one single
16592         `MonoType' instance per type.
16593
16594 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
16595
16596         * mono-endian.h, mono-endian.c, icall.c: Added icall
16597         ves_icall_System_Double_AssertEndianity to assert double word endianity
16598         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
16599
16600 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16601
16602         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
16603         support, icalls and fixes.
16604
16605 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
16606
16607         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
16608         classes that are a punctuation character in .NET is not the same a
16609         g_unichar_ispunct.
16610
16611 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16612
16613         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
16614
16615 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
16616
16617         * icall.c: Add new MemCopy internalcall.
16618         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
16619         Simplified code; It is not necessary to handle all the cases here,
16620         as the C# code takes care of it.  Only handle the case of the name
16621         resource embedded into the assembly.
16622
16623         Changed signature to return the data pointer and the size of the
16624         data. 
16625
16626 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
16627
16628         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
16629         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
16630
16631 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
16632
16633         * socket-io.c: ignore EINTR error in select.
16634
16635 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
16636
16637         * class.h, class.c: removed unused subclasses field in MonoClass.
16638
16639 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
16640
16641         * icall.c: improve fix of get_base_definition(). If the parent class
16642           doesn't have the mehod, look at the parent of the parent.
16643         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
16644           to check if a parameter is an in or out parameter
16645           (PARAM_ATTRIBUTE_IN is not set by default).
16646           mono_method_return_message_restore(): Use mono_class_value_size to
16647           get the size of a value type. mono_type_stack_size (parameterType)
16648           does not return the correct value if parameterType is byRef.
16649           mono_load_remote_field(), mono_load_remote_field_new(),
16650           mono_store_remote_field(), mono_store_remote_field_new():
16651           raise exception if the remote call returns an exception.
16652
16653 2003-07-28  Martin Baulig  <martin@ximian.com>
16654
16655         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
16656         method.  This is a wrapper around mono_runtime_invoke() which
16657         boxes the instance object if neccessary.
16658
16659 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16660
16661         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
16662         metadata.h, row-indexes.h, verify.c: first cut of generics support.
16663
16664 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16665
16666         * icall.c: disable mcs bug workaround.
16667
16668 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
16669
16670         * object.c (mono_runtime_class_init): Take the metadata_section
16671         mutex before obtaining the domain mutex.
16672
16673         * appdomain.h: Added definition of metadata_section mutex here. 
16674
16675         * object.c: define metadata_mutex here.
16676
16677 2003-07-24  Ravi Pratap  <ravi@ximian.com>
16678
16679         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
16680         fixed.
16681
16682 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
16683
16684         * reflection.c: Fix bug #46669
16685
16686 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16687
16688         * exception.c:
16689         * exception.h:
16690         * icall.c:
16691         * object.h: fill in the type name for TypeLoadException.
16692
16693 2003-07-23  Ravi Pratap  <ravi@ximian.com>
16694
16695         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
16696         relationship between TypeBuilders while compiling corlib) and bug
16697         45993 (Array types returned from the runtime while compiling
16698         corlib were from the loaded corlib).
16699
16700 2003-07-22  Martin Baulig  <martin@ximian.com>
16701
16702         * mono-debug-debugger.c: Reworked the type support a bit more;
16703         distinguish between types and classes.
16704
16705 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
16706
16707         * icall.c: add IsArrayImpl icall.
16708
16709 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
16710
16711         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
16712         initializing real_size only once. Also fix bug #46602.
16713
16714 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
16715
16716         * object.c: Renamed mono_metadata_section to metadata_section.
16717
16718 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
16719
16720         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
16721           empty array if the type is an array. Fixed.
16722           ves_icall_MonoMethod_get_base_definition: if the base method
16723           is abstract, get the MethodInfo from the list of methods of
16724           the class.
16725         * reflection.c: ParameterInfo.PositionImpl should be zero-based
16726           and it was 1-based. Fixed in mono_param_get_objects.
16727
16728 2003-07-20  Martin Baulig  <martin@ximian.com>
16729
16730         * mono-debug.h: Set version number to 31.
16731         (mono_debug_init): Added `MonoDomain *' argument.
16732
16733         * mono-debug-debugger.c: Reworked the type support; explicitly
16734         tell the debugger about builtin types; pass the `klass' address to
16735         the debugger.
16736
16737 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
16738
16739         * image.c: Allow new metadata tables to be loaded without a
16740         warning. Also update the warning message to give the new constant value.
16741                 
16742 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
16743
16744         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
16745         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
16746         array type representation changes.
16747
16748 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
16749
16750         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
16751         on Environment.Exit () call.
16752
16753 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
16754
16755         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
16756         requires a matching corlib.
16757
16758 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
16759
16760         * Changelog: My editor decided to add a CR to each line. Sorry about that.
16761           Committed again without the CRs.
16762         
16763 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
16764
16765         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
16766           getting it from the "this" socket instance. Did not work
16767           if the socket is a subclass of Socket.
16768           Also fixed bug #35371.
16769
16770 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
16771
16772         * metadata.c: fixed size for TypedByRef.
16773         * loader.c: when searching for a method, consider the vararg amrker.
16774         * unicode.c, decimal.c: constify some arrays.
16775
16776 2003-07-15  Dick Porter  <dick@ximian.com>
16777
16778         * socket-io.c: Fixed compilation for gcc < 3.2.
16779
16780         Fixed compilation for machines that don't have AF_INET6 (thanks to
16781         Bernie Solomon <bernard@ugsolutions.com> for that part.)
16782
16783         Fixed compile warnings.
16784         
16785         Fixed formatting and line endings.
16786
16787 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
16788
16789         * socket-io.h:
16790         * socket-io.c: Added IPv6 support.
16791
16792 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
16793
16794         * class.c (mono_class_is_assignable_from): New function to implement
16795         the is_assignable_from logic. Used by mono_object_isinst, 
16796         Type::IsAssignableFrom () and the interpreter.
16797
16798         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
16799         Object, even interfaces.
16800         
16801         * object.c (mono_object_isinst): Implement in terms of 
16802         is_assignable_from.
16803
16804         * icall.c (ves_icall_type_is_assignable_from): New icall.
16805
16806 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
16807
16808         * domain.c (foreach_domain): fix compiler warning.
16809
16810 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
16811
16812         * image.c (load_metadata_ptrs): use g_strndup because strndup is
16813         not available on all plattforms
16814
16815 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
16816
16817         * image.h image.c: Store the metadata version string in MonoImage.
16818         * icall.c: New icall to retrieve the image version.
16819         * reflection.c (create_dynamic_image): Fill in the image version field
16820         * reflection.c (build_compressed_metadata): Use the image version
16821         from the image structure.
16822
16823 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16824
16825         * appdomain.c: modified comment.
16826         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
16827         That will be its last iteration when mono_gc_cleanup is called from
16828         mono_runtime_cleanup and before the domain is unloaded.
16829
16830         Fixes bug #45962.
16831
16832 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
16833
16834         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
16835         attributes.
16836
16837 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16838
16839         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
16840         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
16841         Bernie Solomon <bernard@ugsolutions.com>.
16842
16843 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
16844
16845         * object.c, object.h: provide mono_object_new_fast() for faster
16846         allocation in some special cases.
16847
16848 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
16849
16850         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
16851         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
16852
16853 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
16854
16855         * threadpool.c: fix leaks.
16856
16857 2003-07-01  Dick Porter  <dick@ximian.com>
16858
16859         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
16860         using MonoGHashTables.  Fixes threadpool bug posted to list.
16861
16862 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
16863
16864         * image.h, image.c: added support to load an assembly from a byte array.
16865         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
16866         assembly bundle support.
16867
16868 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
16869
16870         * threadpool.c (mono_thread_pool_add): keep a reference to the
16871         AsyncResult to prevent GC
16872
16873 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
16874
16875         * class.c: leak fix.
16876
16877 2003-06-25  Dick Porter  <dick@ximian.com>
16878
16879         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
16880         for the async object, the WaitHandle object will close the handle.
16881         Fixes bug 45321.
16882
16883 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
16884
16885         * class.c: in mono_array_class_get (), lookup from the hash with the
16886         same type we insert: this works around a bug in
16887         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
16888         lluis. The real fix will have to wait for after the release.
16889
16890 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
16891
16892         * icall.c: fix memory leak when getting type members.
16893
16894 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
16895
16896         * reflection.c: added more pubtoken special cases.
16897
16898 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
16899
16900         * class.c: handle field offset correctly when class size
16901         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
16902
16903 2003-06-20  Martin Baulig  <martin@ximian.com>
16904
16905         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
16906         *image' field.
16907
16908 2003-06-20  Martin Baulig  <martin@ximian.com>
16909
16910         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
16911
16912 2003-06-20  Martin Baulig  <martin@ximian.com>
16913
16914         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
16915         just distinguish between variables in registers and variables at
16916         an offset relative to a register.
16917
16918 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16919
16920         * icall.c: #ifdef out latest changes until mcs is fixed.
16921
16922 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16923
16924         * icall.c: return members in metadata order.
16925
16926 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
16927
16928         * icall.c: avoid infinite loop in GetTimeZoneData.
16929
16930 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
16931
16932         * icall.c: added Marshal.Prelink/All icalls.
16933
16934 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
16935
16936         * object.c, object.h: fix warnings and do some overflow checking
16937         when creating arrays.
16938
16939 2003-06-17  Dick Porter  <dick@ximian.com>
16940
16941         * file-io.h:
16942         * file-io.c: File attributes need to be tweaked slightly when
16943         passed from the managed to the w32 world.
16944
16945 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
16946         * profiler.h profiler-private.h profiler.c: Rework last patch
16947         based on suggestion by Paolo.
16948         
16949 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
16950
16951         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
16952         instruction level coverage data collection.
16953         * profiler.h profiler.c (: Added new callback function which can be
16954         used by the profiler to limit which functions should have coverage
16955         instrumentation.
16956         * profiler.c (mono_profiler_load): Call g_module_build_path to
16957         generate the file name of the profiler library.
16958
16959 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16960
16961         * profiler.c, profiler.h, profiler-private.h: added basic block 
16962         coverage profiling API.
16963
16964 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
16965
16966         * reflection.c (mono_reflection_create_runtime_class): Add support
16967         for events in dynamically generated code.
16968
16969         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
16970         not allocated.
16971
16972 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
16973
16974         * icall.c: when getting timezone info, return reasonable values if we
16975         can't get the actual data.
16976
16977 2003-06-14  Dick Porter  <dick@ximian.com>
16978
16979         * threads.c (start_wrapper): Remove the reference to the thread
16980         object in the TLS data, so the thread object can be finalized.
16981         This won't be reached if the thread threw an uncaught exception,
16982         so those thread handles will stay referenced :-( (This is due to
16983         missing support for scanning thread-specific data in the Boehm GC
16984         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
16985
16986 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
16987
16988         * reflection.c: ensure streams and tables are first allocated with
16989         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
16990
16991 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16992
16993         * icall.c: fixed GetElementType for byrefs (bug# 44792).
16994
16995 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
16996
16997         * reflection.c (mono_reflection_create_runtime_class): Add support for
16998         properties to dynamically created classes.
16999         * reflection.c: Fix a few places where non-MonoObjects were inserted
17000         into the tokens hashtable.
17001
17002 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
17003
17004         * object.c: some support to handle out of memory exceptions.
17005
17006 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
17007
17008         * marshal.c (mono_marshal_get_native_wrapper): support reference
17009         return types
17010
17011 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
17012
17013         * object.h, object.c: more portability stuff from Bernie Solomon.
17014         Unexport mono_object_allocate(). Added mono_object_unbox ().
17015         Set exitcode when an unhandled exception is thrown.
17016
17017 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
17018
17019         * marshal.c (mono_marshal_get_native_wrapper): use custom
17020         marshaler for return types.
17021
17022 2003-06-10  Dick Porter  <dick@ximian.com>
17023
17024         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
17025         ip_mreq is available
17026
17027 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
17028
17029         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
17030         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
17031         by Bernie Solomon <bernard@ugsolutions.com>.
17032
17033 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
17034
17035         * gc.c (mono_gc_init): Avoid error message on shutdown when
17036         GC_DONT_GC=1 is used.
17037
17038         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
17039         New icall to return the GUID of a module.
17040
17041 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
17042
17043         * class.c: ensure instance size always includes the parent's size
17044         even whem class size is set explicitly (fixes bug#44294).
17045
17046 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
17047
17048         * profiler.h, profiler.c: made the simple profiler thread-safe,
17049         get more accurate timing info. Allow the loading of an
17050         externally-developed profiler module.
17051
17052 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
17053
17054         * marshal.c (mono_marshal_get_native_wrapper): improved
17055         class/byref arguments.
17056         (mono_marshal_get_native_wrapper): better string marshaling support.
17057
17058 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
17059
17060         * class.c: ensure .pack and .size are handled correctly and
17061         simplified layout of static fields.
17062
17063 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
17064
17065         * appdomain.c
17066         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
17067
17068         * loader.c (mono_lookup_pinvoke_call): look for modules in the
17069         current directory (fix bug 44008)
17070
17071 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
17072
17073         * marshal.c (mono_marshal_get_native_wrapper): started support for
17074         custom marshalers.
17075         (mono_delegate_to_ftnptr): consider marshalling specifications
17076
17077 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
17078
17079         * reflection.c, reflection.h: emit custom marshal info.
17080
17081 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17082
17083         * object.c: free the GError.
17084         * icall.c: added CloseEvent_internal.
17085         * threads.[ch]:
17086         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
17087         call.
17088
17089 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
17090
17091         * loader.c (mono_method_get_signature): Add support for dynamic
17092         assemblies.
17093
17094 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
17095
17096         * reflection.c: fixed bug #43905.
17097
17098 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
17099
17100         * class.c, domain.c, icall.c, metadata.h, object.h: support for
17101         handling TypedReference and ArgIterator.
17102         * loader.c, loader.h: added function to get signature at call site.
17103
17104 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
17105
17106         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
17107         data readonly. Buglets and warning fixes. Some MethodSpec support.
17108
17109 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
17110
17111         * class.h, class.c, object.c: remove relative numbering support.
17112
17113 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
17114
17115         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
17116         free the string, until we get a chance to fix Gtk#
17117
17118 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17119
17120         * marshal.c: revert last patch.
17121
17122 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
17123
17124         * icall.c: updates for new mono_class_vtable() not calling
17125         the type constructor anymore.
17126
17127 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
17128
17129         * object.h, object.c: separate vtable creation from type
17130         initialization. Make running the .cctor thread safe.
17131
17132 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
17133
17134         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
17135
17136 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
17137
17138         * loader.c (mono_get_method): consider calling convention
17139
17140 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
17141
17142         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
17143         to return the invisible global type for a module.
17144
17145         * reflection.c (mono_image_build_metadata): Emit global fields too.
17146
17147 2003-05-20  Peter Williams  <peterw@ximian.com>
17148
17149         * loader.c (mono_lookup_internal_call): Add a few newlines.
17150
17151 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
17152
17153         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
17154         literal strings.
17155
17156         * appdomain.c (set_domain_search_path): Recalculate search path when
17157         AppDomainSetup.PrivateBinPath changes.
17158
17159         * object.c (mono_class_compute_gc_descriptor): It turns out some
17160         parts of the class libs (like System.Thread) holds pointers to
17161         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
17162         to treat native int a pointer type here.
17163         
17164 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
17165
17166         * appdomain.h, domain.c: add hashtable for jump target resolution.
17167
17168 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
17169
17170         * reflection.h reflection.c icall.c: Added new icalls 
17171         GetManifestResourceInfoInternal, GetModulesInternal and support
17172         infrastructure.
17173
17174 2003-05-16  Dick Porter  <dick@ximian.com>
17175
17176         * icall.c:
17177         * file-io.h:
17178         * file-io.c: Implement System.IO.MonoIO::GetTempPath
17179
17180 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
17181
17182         * object.c: mono_store_remote_field: little fix to previous patch.
17183
17184 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
17185
17186         * class.c: add constructors to array classes.
17187         * icall.c: special case array construction for InternalInvoke (),
17188
17189 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
17190
17191         * class.h class.c reflection.c object.c: Added support for field
17192         defaults in dynamically generated classes.
17193
17194 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
17195
17196         * reflection.c: properly encode charset for ddlimport.
17197
17198 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
17199
17200         * threads.c: allow compiling without GC.
17201
17202 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
17203
17204         * appdomain.h, object.c, object.h, threads.c, threads.h: added
17205         handling of thread static data.
17206
17207 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
17208
17209         * reflection.h, reflection.c: added mono_custom_attrs_free ().
17210
17211 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
17212
17213         * class.c (mono_array_class_get): always set the serializable flags
17214         (mono_array_class_get): always set the SEALED attribute for array types
17215
17216 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
17217
17218         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
17219         attributes (fix for bug 42021).
17220
17221 2003-05-12  Dick Porter  <dick@ximian.com>
17222
17223         * gc.c: Don't run finalizers when the finalizer thread is
17224         finishing up, because the default domain has already been
17225         destroyed.
17226
17227 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
17228
17229         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
17230         value is null, we should throw an exception.   This is slightly
17231         different than the other conventions used for the constructor.
17232
17233 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17234
17235         * socket-io.c: fixed windows build.
17236
17237 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17238
17239         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
17240
17241 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
17242
17243         * object.c (mono_string_new_wrapper): Compatibility fix for MS
17244         compilers.
17245
17246 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
17247
17248         * class.c (mono_class_layout_fields): Add experimental GC aware
17249         auto layout facility. Requires class library changes to work correctly.
17250
17251         (mono_class_setup_vtable): Avoid overriding explicit interface
17252         method implementations. Fixes iface3.exe test.
17253
17254         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
17255         object reference.
17256         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
17257         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
17258
17259         * metadata.h: Add new type classification macro which determines
17260         whenever the type holds an object reference.
17261
17262 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
17263
17264         * marshal.c (mono_marshal_get_native_wrapper): cleanups
17265
17266 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
17267
17268         * gc.c (finalizer_thread): Work around a GC bug.
17269
17270 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
17271
17272         * marshal.c (emit_struct_conv): allow unions
17273
17274         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
17275
17276 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
17277
17278         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
17279
17280 2003-05-06  Martin Baulig  <martin@ximian.com>
17281
17282         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
17283
17284 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17285
17286         * socket-io.c:
17287         (Select_internal): allow NULLs, don't create arrays if not needed.
17288         Coupled with Socket.cs changes.
17289
17290         * threadpool.c:
17291         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
17292         register a finalizer for it that will close the semaphore handle. This
17293         fixes the leak and make Lupus' test run with > 4080 loops.
17294
17295 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
17296
17297         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
17298         Jerome Laban (bug #42287)
17299
17300 2003-05-02  Martin Baulig  <martin@ximian.com>
17301
17302         * debug-mono-symfile.h
17303         (MonoSymbolFile): Moved declaration into mono-debug.h.
17304         (MonoDebugMethodJitInfo): Likewise.
17305         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
17306         argument.
17307         (_mono_debug_address_from_il_offset): Take a
17308         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
17309
17310         * mono-debug.h
17311         (MonoDebugDomainData): New struct.
17312         (mono_debug_get_domain_data): New function.
17313         (mono_debug_add_method): Take an additional `MonoDomain *'
17314         argument.
17315         (mono_debug_source_location_from_address): Likewise.
17316         (mono_debug_il_offset_from_address): Likewise.
17317         (mono_debug_address_from_il_offset): Likewise.
17318
17319 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
17320
17321         * reflection.c: one more check for null type in custom attrs.
17322
17323 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17324
17325         * reflection.c: avoid warning (comparison is always false due to limited
17326         range of data type).
17327
17328 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17329
17330         * icall.c: throw an exception in Type.GetField if the argument 'name'
17331         is NULL.
17332
17333 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
17334
17335         * reflection.c: fixed handling of enums in named arguments to custom
17336         attributes (bug #42123).
17337
17338 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
17339
17340         * reflection.c: use the right array element type and handle
17341         a null for a Type argument, too.
17342
17343 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
17344
17345         * reflection.c: handle arrays as arguments to custom attributes.
17346
17347 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
17348
17349         * reflection.c: handle a string value in a custom attr
17350         ctor that takes an object.
17351
17352 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
17353
17354         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
17355         (fix bug #42063)
17356
17357 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
17358
17359         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
17360
17361 2003-04-27  Martin Baulig  <martin@ximian.com>
17362
17363         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
17364         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
17365         MONO_DEBUGGER_EVENT_BREAKPOINT.
17366         (mono_breakpoint_trampoline_code): Removed.
17367         (mono_debugger_event_handler): The last argument is now a
17368         `guint32'.
17369         (mono_debugger_insert_breakpoint_full): Removed the
17370         `use_trampoline' argument.
17371         (mono_debugger_method_has_breakpoint): Likewise.
17372         (mono_debugger_trampoline_breakpoint_callback): Renamed to
17373         mono_debugger_breakpoint_callback(); take the method and
17374         breakpoint number as arguments.
17375
17376 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
17377
17378         * metadata.c: fix off by one when loading parameters attributes.
17379
17380 2003-04-24  Martin Baulig  <martin@ximian.com>
17381
17382         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
17383
17384 2003-04-24  Martin Baulig  <martin@ximian.com>
17385
17386         * mono-debug-debugger.c: Moved all code which interacts with the
17387         Mono Debugger here.
17388
17389         * debug-mono-symfile.c: This code now just deals with the symbol
17390         file itself, the debugger code is now in mono-debug-debugger.c.
17391
17392 2003-04-23  Martin Baulig  <martin@ximian.com>
17393
17394         * mono-debug.c (mono_debug_source_location_from_il_offset):
17395         New method; like mono_debug_source_location_from_address(), but
17396         takes an IL offset instead of a machine address.
17397
17398 2003-04-23  Martin Baulig  <martin@ximian.com>
17399
17400         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
17401         `line' field; this is now computed by the debugger.
17402
17403 2003-04-23  Martin Baulig  <martin@ximian.com>
17404
17405         * mono-debug.[ch]: New files.  This is the new debugging interface.
17406
17407         * mono-debug-debugger.[ch]: New files.  Moved all code which
17408         interacts with the Mono Debugger here.
17409
17410 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
17411
17412         * domain.c (mono_init): initialize mono_defaults.monitor_class
17413
17414 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
17415
17416         * reflection.c (method_encode_code): Add a spicy exception to help
17417         future compiler authors.
17418
17419 2003-04-21  Martin Baulig  <martin@ximian.com>
17420
17421         * icall.c
17422         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
17423         Make this work with relative pathnames; g_filename_to_uri() needs
17424         an absolute filename.
17425
17426 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
17427
17428         * icall.c: Track name changes in Object and ValueType.
17429
17430 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
17431
17432         * metadata.c (mono_type_stack_size): size should be a multiple of
17433         sizeof (gpointer)
17434
17435 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17436
17437         * gc.c:
17438         (internal_domain_finalize): moved into mono_domain_finalize. No need
17439         to create another thread because the finalizers will be run in the
17440         finalizer thread.
17441         
17442         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
17443         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
17444         to be run (MS does this too).
17445
17446 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
17447
17448         * object.c (mono_class_compute_gc_descriptor): Update comment.
17449
17450         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
17451
17452         * image.h: Add synchronized wrapper cache.
17453
17454         * image.c (do_mono_image_open): Initialize cache.
17455
17456         * reflection.c (create_dynamic_mono_image): Initialize cache.
17457
17458 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17459
17460         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
17461         ves_icall_System_Buffer_ByteLengthInternal.
17462
17463 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
17464
17465         * reflection.c: setup klass->nested_in earlier. Allow
17466         a dash in the assembly name.
17467
17468 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
17469
17470         * metadata.c (mono_type_to_unmanaged): dont access
17471         type->data.klass for MONO_TYPE_OBJECT
17472         (mono_type_to_unmanaged): consider System.Delegate class
17473
17474 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
17475
17476         * class.c: just setup supertypes in the proper place instead of
17477         initializing the full element class for arrays.
17478
17479 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
17480
17481         * class.c: ensure the element class of arrays is initialized.
17482         Setup the supertype info for array classes, too.
17483
17484 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
17485
17486         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
17487
17488 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17489
17490         * Makefile.am: re-added -m option when running cygpath. This way,
17491         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
17492         separator.
17493         * mono-config.c: same codepath for locating mono config file for WIN32
17494         and the rest.
17495         * assembly.c: if mono_assembly_setrootdir is called, don't override
17496         the value set.
17497
17498 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17499
17500         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
17501         MONO_ASSEMBLIES variable.
17502
17503 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
17504
17505         * icall.c: added Assembly::GetNamespaces() icall.
17506
17507 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17508
17509         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
17510
17511 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
17512
17513         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
17514         * object.c: fixed bug in the construction of vtable for proxies
17515
17516 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
17517
17518         * object.c (mono_array_new): Mark mono_array_new as an icall.
17519
17520 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17521
17522         * class.c: fixed test for public method when overriding interfaces.
17523         Closes bug #40970.
17524
17525 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
17526
17527         * appdomain.h, domain.c: added mono_domain_foreach() to
17528         be able to access the currently loaded appdomains.
17529         * object.c: make string interning work across sppdomains.
17530         Mark some functions for use as icalls.
17531
17532 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
17533
17534         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
17535
17536         * reflection.h reflection.c: Allocate long living data using 
17537         GC_MALLOC_ATOMIC so the collector does not need to scan it.
17538
17539         * reflection.c: Double the allocation size in streams instead of
17540         increasing it, to prevent unneccesary copying on large assemblies.
17541         
17542         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
17543         creation if the assembly does not have the Run flag set.
17544
17545 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
17546
17547         * class.h: avoid the C++ keywords in header files (Jerome Laban
17548         spotted and fixed this).
17549
17550 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17551
17552         * object.c:
17553         (mono_unhandled_exception): fill in the arguments for the
17554         UnhandledException event. Only trigger that event for the default
17555         domain (as MS does).
17556
17557 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
17558
17559         * object.c: Improve typed allocation stuff based on suggestions from
17560         Paolo. Also turn it on if the GC library supports it.
17561
17562 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
17563
17564         * object.c object.h class.h: Added experimental typed allocation
17565         facility using the interfaces in gc_gcj.h.
17566
17567         * os/gc_wrapper.h: Added new include files.
17568         
17569 2003-04-03  Martin Baulig  <martin@ximian.com>
17570
17571         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
17572         which is not yet enabled by default.
17573
17574         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
17575         functions.
17576         (mono_gc_lock, mono_gc_unlock): New static functions.
17577
17578         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
17579         functions; stop/start the world for the garbage collector.  This
17580         is using the windows API; we need to complete the SuspendThread()/
17581         ResumeThread() implementation in the io-layer to make this work on Unix.
17582         (mono_gc_push_all_stacks): New public function; tells the garbage
17583         collector about the stack pointers from all managed threads.
17584
17585 2003-04-03  Martin Baulig  <martin@ximian.com>
17586
17587         * object.h (MonoThread): Added `gpointer stack_ptr'.
17588
17589         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
17590
17591 2003-04-03  Martin Baulig  <martin@ximian.com>
17592
17593         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
17594
17595 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
17596
17597         * reflection.c (typebuilder_setup_fields): Initialize field.first and
17598         field.last.
17599
17600 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
17601
17602         * loader.c (mono_lookup_internal_call): Report the corlib that is
17603         out of sync.
17604
17605 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
17606
17607         * icall.c (ves_icall_type_GetTypeCode): fixed check for
17608         System.DBNull (it's class not valuetype).
17609
17610 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
17611
17612         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
17613         if the array method was already assigned a token (fixes bug#40646).
17614
17615 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
17616
17617         * reflection.c (mono_reflection_get_type): Attempt type resolve even
17618         if no assembly is given.
17619
17620 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
17621
17622         * metadata.h: Added the new tables.
17623
17624         * row-indexes.h: Added definitions for new tables.
17625
17626         * metadata.c: Add schemas for new tables, and add support for
17627         computing the sizes of them.
17628
17629         * class.c: Update for handling the new type cases.
17630
17631 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
17632
17633         * metadata.h (MONO_TYPE_IS_VOID): new macro
17634
17635 2003-03-31  Martin Baulig  <martin@ximian.com>
17636
17637         * threads.h (MonoThreadCallbacks): Added `thread_created'.
17638
17639         * threads.c (mono_thread_new_init): Call `thread_created' in the
17640         mono_thread_callbacks.
17641
17642 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
17643
17644         * loader.h: added marshalbyrefobject_class to mono_defaults
17645         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
17646         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
17647           generation of output parameters.
17648           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
17649         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
17650           contextbound and the target object belongs to the context of the caller.
17651         * object.h: added context and unwrapped_server variables in MonoRealProxy.
17652         * object.c: Implemented support for interfaces and abstract classes
17653           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
17654           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
17655
17656 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
17657
17658         * class.h class.c (mono_class_is_subclass_of): New function.
17659         
17660         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
17661         routines for most common case (calls from ArrayList::ToArray).
17662
17663         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
17664         routine so programs which call Environment::Exit() can be profiled.
17665
17666         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
17667         Added MONO_ARCH_SAVE_REGS.
17668
17669         * icall.c (ves_icall_type_is_subtype_of): Use new function.
17670
17671 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
17672
17673         * blob.h: Add a couple of new MonoType types definitions.
17674
17675         * tabledefs.h: Add a couple of new call convs.
17676
17677 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
17678
17679         * reflection.h (MonoReflectionDynamicAssembly): track changes in
17680         the layout of the class.
17681
17682         * reflection.c (alloc_table): double the size on overflow to avoid
17683         unnecessary copying.
17684
17685         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
17686         avoid filling out metadata tables and blobs. Also set mb->ilgen to
17687         null so it can be garbage collected.
17688         
17689 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
17690
17691         * reflection.c (mono_reflection_get_type): Return the resolved type
17692         only if it is in the assembly we searched.
17693
17694         * reflection.c (ensure_runtime_vtable): Initialize method slots.
17695
17696         * class.c (mono_class_setup_vtable): Set the slot of the overriding
17697         method.
17698
17699 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17700
17701         * appdomain.c:
17702         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
17703         the right one is 'file:///blah', but MS allows it.
17704         * assembly.c:
17705         (mono_assembly_open): allow 'file://blah'
17706
17707         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
17708
17709 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
17710
17711         * socket-io.c: fixes bug #40310.
17712
17713 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
17714
17715         * reflection.c (mono_reflection_parse_type): handle deeply nested
17716         types correctly.
17717
17718         * reflection.c (mono_image_create_token): Use unique token values
17719         since they will be put into a hash table.
17720
17721         * class.c (mono_class_setup_vtable): If a method occurs in more than
17722         one place in the vtable, and it gets overriden, then change the
17723         other occurances too.
17724
17725         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
17726         object as return type.
17727
17728 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17729
17730         * icall.c: Deleted "ToString" implementation for double and float
17731         because they are full implemented in managed code.
17732
17733 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
17734
17735         * reflection.c, reflection.h: implemented and exported functions
17736         to retrieve info about custom attributes.
17737
17738 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17739
17740         * appdomain.c: moved Uri handling to assembly.c
17741         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
17742         work when using a file Uri in *nix and windows.
17743
17744         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
17745         GetReferencedAssemblies.
17746
17747 2003-03-18  Dick Porter  <dick@ximian.com>
17748
17749         * icall.c: Rename a couple of internal calls
17750
17751         * threads.c: Set the thread state to Stopped when a thread exits.
17752         Fixes bug 39377.
17753
17754 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
17755
17756         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
17757         New icall.
17758
17759         * object.c (mono_class_vtable): fix warning.
17760
17761 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
17762
17763         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
17764
17765         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
17766         memory.
17767         (method_encode_clauses): Create exception info structures in the right
17768         order.
17769         (mono_reflection_setup_internal_class): Initialize supertypes field.
17770
17771         * class.c object.c: Handle interfaces which implement other interfaces 
17772         correctly.
17773
17774         * class.h class.c: Move the supertypes array initialization code into 
17775         a separate function so it can be used for dynamic types too. Also call
17776         it earlier, in mono_class_init(), since it can be used before the
17777         type is initialized.
17778
17779 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17780
17781         * Makefile.am:
17782         * assembly.c:
17783         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
17784
17785         * appdomain.c:
17786         * appdomain.h:
17787         * marshal.c:
17788         * object.c: remove warnings.
17789
17790 2003-03-13  Martin Baulig  <martin@ximian.com>
17791
17792         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
17793         (MonoDebugLexicalBlockEntry): New types.
17794
17795         * debug-mono-symfile.c
17796         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
17797
17798 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17799
17800         * process.c: ret can be any non-zero value accroding to MS doc.
17801
17802 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
17803
17804         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
17805         fixing a warning for a miss-used prototype, would have cause
17806         random memory corruption.
17807
17808 2003-03-07  Martin Baulig  <martin@ximian.com>
17809
17810         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
17811         getting really annoying ....
17812
17813 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
17814
17815         * reflection.c (fixup_method): added support for array methods.
17816
17817 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
17818
17819         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
17820         (pointed out by Michael Adams).
17821
17822 2003-03-04  Dick Porter  <dick@ximian.com>
17823
17824         * icall.c: Temporarily reverted the Double and Single ToString()
17825         change, because it broke nunit.
17826
17827 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
17828
17829         * object.h, threads.h: make include files compatible with C++
17830         (patch by Jerome Laban <jlaban@wanadoo.fr>).
17831
17832 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17833
17834         * icall.c: Erased ToString helper functions for Double and Single.
17835         Now, that implementations ar all in managed code (Double and Single
17836         Formatters).
17837
17838 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
17839
17840         * appdomain.c: Added method for initializing the default context of
17841         a domain. Added internal call for getting the default context.
17842         * appdomain.h: Added context variable in MonoDomain struct.
17843         * domain.c: mono_domain_set also sets the default context of the domain
17844         * icall.c: Mapped internal method InternalGetDefaultContext.
17845         * object.c: mono_object_get_virtual_method returns always a remoting
17846         wrapper if the object is a transparent proxy.
17847         mono_runtime_invoke_array: when creating an object by calling the
17848         constructor, if the created object is a proxy, then the constructor should
17849         be called using the a remoting wrapper.
17850
17851 2003-03-03  Dick Porter  <dick@ximian.com>
17852
17853         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
17854         variable so it compiles on solaris.  Problem spotted by
17855         Christopher Taylor <ct@cs.clemson.edu>
17856
17857 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17858
17859         * appdomain.c:
17860         (get_info_from_assembly_name): don't leak value.
17861
17862         * icall.c:
17863         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
17864         result.
17865
17866 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
17867
17868         * assembly.c: export mono_image_load_references ().
17869         * class.c: handle function pointers. mono_class_from_name() now
17870         supports nested type names directly.
17871
17872 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
17873
17874         * reflection.h reflection.c: Encode already created dynamic methods 
17875         and fields correctly as a DEF instead of a REF.
17876
17877         * reflection.c: Get rid of the force_ref argument to 
17878         mono_image_typedef_or_ref since it was wrong in the first place.
17879
17880         * string-icalls.c: add error checking to string constructors according
17881         to the MSDN docs.
17882
17883         * reflection.c: Emit types in the order their TypeBuilders were 
17884         created. Previously, a new table index was assigned to each type before
17885         the tables were emitted. This was wrong because the signature blob
17886         might already refer to a type by its original table index.
17887
17888 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
17889
17890         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
17891         change.
17892         
17893 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17894
17895         * Makefile.am: make assemblies dir have \ instead of / on windows.
17896
17897 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
17898
17899         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
17900         iterate over the NESTEDCLASS table using a linear search since the
17901         table is not guaranteed to be sorted by the secondary key.
17902
17903         * class.c (mono_class_create_from_typedef): fixed up call to
17904         mono_metadata_nesting_typedef.
17905         
17906 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
17907
17908         * marshal.c (mono_string_to_byvalstr): clear the memory as
17909         suggested by Jerome Laban <jlaban@wanadoo.fr>
17910
17911 2003-02-26  Dick Porter  <dick@ximian.com>
17912
17913         * process.c: Cope with padding in .rsrc blocks
17914
17915 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
17916
17917         * metadata.h: reverted the filter_len change, it breaks reflection
17918         
17919 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
17920
17921         * metadata.h: added a new field to store the filter_len
17922         
17923
17924 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
17925
17926         * reflection.c: handle custom attributes for types and members
17927         created with Reflection.Emit (bug#38422).
17928
17929 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
17930
17931         * reflection.c: define RTSpecialName automatically for constructors for
17932         compatibility with MS.NET.
17933
17934         * reflection.c (mono_reflection_create_runtime_class): initialize
17935         nested_in field of dynamically created classes.
17936
17937 2003-02-22  Martin Baulig  <martin@ximian.com>
17938
17939         * debug-mono-symfile.h: Incremented version number.
17940
17941 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
17942
17943         * object.h icall.c process.c: fix warnings.
17944
17945 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
17946
17947         * appdomain.h appdomain.c:
17948         (mono_domain_try_type_resolve): split the 
17949         name_or_tb argument into a name and a tb argument.
17950         (mono_domain_has_type_resolve): new function to check whenever the
17951         application has registered a TypeResolve event handler.
17952         
17953         * icall.c reflection.h reflection.c: move the type resolve logic into
17954         mono_reflection_get_type () so it will be invoked when 
17955         Assembly::GetType () is called.
17956
17957         * reflection.c:
17958         (mono_reflection_get_type): renamed to get_type_internal.
17959         (mono_reflection_get_type): fixed type name generation so it works 
17960         for nested types too.
17961         (mono_reflection_get_type): call has_type_resolve () to avoid the 
17962         costly type name generation if there is no resolve event handler.
17963
17964 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
17965
17966         * class.c, image.c: load exported types from file references.
17967
17968 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
17969
17970         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
17971           used to cache the managed methods used to create proxies and make 
17972           remote invocation of methods.
17973         * class.h: Added in MonoVTable a flag to indicate that a class needs 
17974           to be remotely created.
17975         * object.c: Modified the method mono_class_vtable(). It now initializes 
17976           the remote flag of the vtable. Modified mono_object_new_specific(), 
17977           so now it checks the remote flag.
17978         * icall.c: Added a couple of internal methods, one for enabling instance 
17979           creation interception for a type, and one for creating objects bypassing
17980           the remote check.
17981
17982 2003-02-18  Martin Baulig  <martin@ximian.com>
17983
17984         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
17985         New interncall to get a method's metadata token.
17986
17987         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
17988         New interncall for the debugger.
17989
17990 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
17991
17992         * class.c (mono_class_setup_vtable): allocate supertype array
17993
17994 2003-02-18  Martin Baulig  <martin@ximian.com>
17995
17996         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
17997
17998 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17999
18000         * reflection.c:
18001         (assembly_name_to_aname): jump over unknown properties (i've found
18002         something like: 'type, assembly, version=xxx, custom=null, public...',
18003         so now will ignore custom=null and still get the rest of the values).
18004
18005 2003-02-17  Dick Porter  <dick@ximian.com>
18006
18007         * threads.c: Have Thread.Start() wait for a semaphore to signal
18008         that the thread has set up all its local data.  This fixes bug
18009         34323, where Abort() raced the new thread's TLS data.
18010
18011         Also removes the handle_store() call from start_wrapper, because
18012         threads are now always created suspended and there is no longer a
18013         race between the parent and child threads to store the info.
18014
18015 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
18016
18017         * image.c: explain the #- heap issue in a message, hopefully
18018         avoiding FAQs on mono-list.
18019
18020 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18021
18022         * icall.c:
18023         (GetEntryAssembly): if the domain has not invoked
18024         AppDomain.ExecuteAssembly yet, return the assembly of the default
18025         AppDomain.
18026
18027 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
18028
18029         * class.c (mono_ldtoken): make it work in dynamic assemblies.
18030
18031 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
18032
18033         * metadata.c, reflection.c: simple speedup to type hash
18034         and equals code.
18035
18036 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
18037
18038         * image.c, image.h, class.c, assembly.c: move module loading
18039         to MonoImage. When loading metadata, consider alignemnet from
18040         the start of metadata, not from the metadata address in memory.
18041
18042 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
18043
18044         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
18045         AssemblyBuilder objects. Factored out custom attribute creation into
18046         a separate function.
18047         (create_custom_attr): new function to create custom attributes.
18048
18049 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
18050
18051         * Makefile.am: Got tired of typing the full pathname to pedump.
18052         Until there is another option, am installing this.
18053
18054 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
18055
18056         * class.c (class_compute_field_layout): always set field->parent 
18057         (mono_ldtoken): use mono_defaults.fieldhandle_class;
18058
18059 2003-02-11  Dick Porter  <dick@ximian.com>
18060
18061         * threads-types.h:
18062         * monitor.c: Rewrote Monitor, making lock much faster and
18063         Pulse/Wait work as specified.  Also uses much fewer handles, and only
18064         creates them as needed.
18065
18066         * exception.c: Added SynchronizationLockException
18067
18068         * threads.c: Deleted old Monitor implementation.  The new one is
18069         in a new file.
18070
18071 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
18072
18073         * class.c: handled TypedReference type code. Set the correct size for
18074         class data. Setup interface_offsets for interface classes, too.
18075
18076 2003-02-09  Martin Baulig  <martin@ximian.com>
18077
18078         * debug-mono-symfile.h: Reflect latest symbol writer changes.
18079
18080 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
18081
18082         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
18083         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
18084         * object.c: fixed mono_object_get_virtual_method () for interfaces.
18085         * verify.c: check for code that runs after the end of the method.
18086
18087 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
18088
18089         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
18090         "System.Math::Round2".
18091         * sysmath.h: Added Floor, Round and Round2 definitions.
18092         * sysmath.c: Modified certain functions that were not 100% compliant
18093         with MS.NET (math precision) and added the implementation of Floor,
18094         Round and Round2.
18095
18096 2003-02-07  Martin Baulig  <martin@ximian.com>
18097
18098         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
18099
18100 2003-02-07  Martin Baulig  <martin@ximian.com>
18101
18102         * debug-mono-symfile.c: Reflected latest symwriter changes.
18103         (mono_debug_create_mono_symbol_file): Removed.
18104         (mono_debug_open_mono_symbol_file): Take an argument which
18105         specifies whether to create a dynamic symbol file.
18106
18107 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
18108
18109         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
18110
18111 2003-02-05  Martin Baulig  <martin@ximian.com>
18112
18113         * reflection.c (mono_image_build_metadata): Make this public,
18114         protect it against being called multiple times, don't create
18115         resources and don't build the compressed metadata here.
18116         (mono_image_create_pefile): Do this here.
18117
18118         * icall.c
18119         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
18120
18121 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18122
18123         * socket-io.c: fixed bug #36322.
18124
18125 2003-02-06  Piers Haken <piersh@friskit.com>
18126
18127         * appdomain.[ch]:
18128         * class.h:
18129         * debug-mono-symfile.c:
18130         * icall.c:
18131         * loader.c:
18132         * mono-config.c:
18133         * monosn.c:
18134         * reflection.c:
18135         * socket-io.c: warning cleanups
18136
18137 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
18138
18139         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
18140         function. works like remoting invoke, but does a check for the Proxy first.
18141
18142 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
18143
18144         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
18145
18146 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
18147
18148         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
18149         array of pointers.
18150         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
18151         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
18152
18153         * object.c (mono_store_remote_field_new): used by the new jit
18154         instead of mono_store_remote_field
18155         (mono_load_remote_field_new): used by the new jit
18156         instead of mono_load_remote_field
18157
18158 2003-02-05  Patrik Torstensson
18159
18160         * appdomain.c: changed unload to take the domain id instead
18161         of domain
18162         
18163         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
18164
18165
18166 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18167
18168         * appdomain.c: don't look for assemblies in ApplicationBase if
18169         PrivateBinPathProbe is set.
18170
18171 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18172
18173         * object.c: make the first argument in main_args contain the absolute
18174         path to the assembly. Fixes bug #37511.
18175
18176 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18177
18178         * icall.c: get correct UTC offset for countries not using daylight
18179         time saving. Fixes bug #30030.
18180
18181 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18182
18183         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
18184         and 1 are the family).
18185
18186 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
18187
18188         * icall.c (ves_icall_InternalExecute): removed wrong assertion
18189
18190         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
18191
18192 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
18193
18194         * reflection.c: added support for SignatureHelper tokens, which is
18195         needed by the Calli opcode.
18196
18197         * reflection.h: track changes to SignatureHelper class.
18198
18199         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
18200
18201 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18202
18203         * appdomain.c: fixed loading assemblies from PrivateBinPath.
18204
18205 2003-02-03  Patrik Torstensson
18206         * appdomain.[c|h], domain.c : 
18207          - Added support for getting a domain via domain id
18208          - Support for setting and getting domain from System.AppDomain 
18209            (used in cross appdomain channel)
18210          - Added support for get/set for a MonoAppContext on a thread 
18211            (Context class in System.Runtime.Remoting.Contexts),
18212          - Removed hack in Get/SetData and ExecuteAssembly.
18213         
18214         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
18215         the managed world to get control when a proxy is created.
18216
18217         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
18218         
18219 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
18220
18221         * icall.c
18222         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
18223         Populate the codebase field as well.
18224
18225 2003-02-02  Martin Baulig  <martin@ximian.com>
18226
18227         * debug-mono-symfile.c
18228         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
18229         (mono_debug_symfile_add_method): Allow interncalls.
18230
18231 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18232
18233         * icall.c: throw parse exception if strtod fails or the string is empty.
18234
18235 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
18236
18237         * marshal.c: handle object type separately from defined
18238         class types.
18239
18240 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
18241
18242         * marshal.c: handle NATIVE_LPSTR for strings when it's
18243         explicitly specified.
18244
18245 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
18246
18247         * reflection.c, reflection.h, icall.c: setup the reflection
18248         handle cache for ModuleBuilders and AssemblyBuilders.
18249
18250 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
18251
18252         * reflection.c (reflection_methodbuilder_to_mono_method): set
18253         pinvoke flag
18254
18255 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18256
18257         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
18258
18259 2003-01-29  Dick Porter  <dick@ximian.com>
18260
18261         * threads.c: No need for the fake_thread kludge now that Thread
18262         doesn't run a class constructor
18263         
18264 2003-01-29  Dick Porter  <dick@ximian.com>
18265
18266         * threads.c: Use g_direct_hash instead of the rather bogus
18267         g_int_hash
18268
18269 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
18270
18271         * marshal.c (mono_marshal_get_native_wrapper): add check for null
18272         (fix pinvoke12.exe)
18273         (mono_marshal_get_struct_to_ptr): generate valid IL code
18274         (mono_marshal_get_ptr_to_struct): generate valid IL code
18275         (*): correctly set sig->pinvoke, we need to memdup the signature
18276         to do that
18277
18278 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
18279
18280         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
18281         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
18282
18283 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
18284
18285         * profiler.c: provide more callers information.
18286
18287 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
18288
18289         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
18290
18291         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
18292
18293         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
18294
18295 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18296
18297         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
18298         exception instead of going into an infinite loop on dates which it 
18299         can't yet handle.
18300
18301         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
18302         out-of-range exception if needed.
18303
18304         * class.c (mono_class_setup_vtable): allow a virtual method to provide
18305         an implementation for an interface method and to override an inherited
18306         method at the same time. 
18307         Imagine a scenario when a virtual method is used to override a
18308         virtual abstract method in a parent class, and this same method 
18309         provides an implementation for an method inherited from an interface. 
18310         In this case, the interface resolution code will set im->slot, which 
18311         means that the virtual method override pass will skip this method 
18312         which means a pointer to the abstract method inherited from the parent
18313         will remain in the vtable of this non-abstract class.
18314
18315         * class.c: (mono_class_setup_vtable): continue search for a real 
18316         method if only an abstract method is found.     
18317
18318 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
18319
18320         * reflection.c: add size to encoding for ByValStr and ByValArray
18321         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
18322
18323 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18324
18325         * class.c (mono_class_setup_vtable): pass the override info as an
18326         argument.
18327
18328         * class.c (mono_class_setup_vtable): set the slot of overriding methods
18329         correctly.
18330         
18331         * reflection.c (ensure_runtime_vtable); add support for method 
18332         overrides.
18333         
18334 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18335
18336         * reflection.c (resolution_scope_from_image): Hack to work to work with
18337         dynamic assemblies.
18338
18339         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
18340         added a 'force_ref' argument to force this function to allways return 
18341         a TypeRef. This is needed by mono_image_get_memberref_token ().
18342         
18343 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18344
18345         * reflection.c (mono_image_get_type_info): interfaces really don't have
18346         a parent.
18347
18348         * reflection.c (mono_image_basic_init): fill out missing fields of
18349         image structure.
18350
18351         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
18352         dynamic assemblies. This is required so dynamic assemblies show up in
18353         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
18354         Type::GetType() etc. This is consistent with MS behaviour.
18355
18356         * image.c image.h reflection.c: add newly created classes to the name 
18357         cache so mono_class_get () will find them.      
18358
18359 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18360
18361         First part of changes to get IKVM.NET running under mono.
18362         
18363         * appdomain.h, appdomain.c: added new function 
18364         mono_domain_try_type_resolve() which will emit TypeResolve events. 
18365         This function will call AppDomain::DoTypeResolve to do the actual work.
18366
18367         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
18368         moved existing code dealing with dynamic tokens to a new function 
18369         called mono_reflection_lookup_dynamic_token (). This function will 
18370         raise TypeResolve events when appropriate. Since reflection.c is not 
18371         part of libmetadata, a new hook function called 
18372         mono_lookup_dynamic_token() is added to class.c which will call this.
18373
18374         * assembly.h assembly.c: make the invoke_load_hook function public,
18375         so it can be called for dynamic assemblies.
18376
18377         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
18378
18379         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
18380         type isn't found.
18381
18382         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
18383         MonoGHashTable, since it contains pointers to objects which the GC 
18384         needs to track.
18385
18386         * assembly.c (search_loaded): remove unused variable.
18387         
18388 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
18389
18390         * object.c: fixed issue exposed by gcc-generated IL programs
18391         that use RVA data for pointers.
18392
18393 2003-01-25  Martin Baulig  <martin@ximian.com>
18394
18395         * threads.c (start_wrapper): Moved the initialization of
18396         `start_func' above the mono_new_thread_init() call to which we
18397         pass it as argument.
18398
18399 2003-01-24  Martin Baulig  <martin@ximian.com>
18400
18401         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
18402         the MonoThread pointer.
18403
18404 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
18405
18406         * icall.c: Rename `PowImpl' to Pow.
18407
18408 2003-01-23  Dick Porter  <dick@ximian.com>
18409
18410         * threads.c (start_wrapper): Create a Thread object if needed, so
18411         the Main() thread can do the class initialisation in a subthread
18412         that has been set up to allow managed code execution.
18413
18414         Pass the thread ID instead of the MonoThread pointer to the thread
18415         start and attach callbacks.  This change is required, because the
18416         jit thread start callback must be called _before_ the Thread
18417         object can be created.
18418         
18419         (mono_thread_init): Removed much object creation code that is no
18420         longer needed.  No managed code is called from here now.
18421
18422         * object.c (mono_runtime_exec_managed_code): Create a subthread
18423         for Main, and call back to the runtime to use it.
18424         Set the exit code when Main exits.
18425
18426         * gc.c: Make sure domain finalisation happens in a subthread.
18427         Re-enable threaded GC, fixing bug 31333 (again).
18428
18429         * environment.c: System.Environment internall calls (so far just
18430         ExitCode is here, the others are still in icall.c)
18431
18432         * appdomain.c (mono_runtime_cleanup): All threads running managed
18433         code should have finished before mono_runtime_cleanup() is
18434         reached, so no need to clean up threads.
18435
18436 2003-01-22  Martin Baulig  <martin@ximian.com>
18437
18438         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
18439         `gpointer func' arguments.      
18440         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
18441         but added `MonoThread *thread' argument.
18442         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
18443
18444         * threads.c (mono_new_thread_init): Added `gpointer func' argument
18445         and pass it to the mono_thread_start_cb callback.
18446         (mono_install_thread_callbacks): New public function to install a
18447         set of callbacks which are set by the debugger.
18448         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
18449
18450 2003-01-22  Martin Baulig  <martin@ximian.com>
18451
18452         * Makefile.am: Install debug-mono-symfile.h.
18453
18454 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
18455
18456         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
18457
18458 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
18459
18460         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
18461         * class.c (mono_ptr_class_get): correctly set access levels of pointers
18462         (mono_array_class_get): correctly set access levels of arrays
18463
18464 2003-01-20      Patrik Torstensson
18465         * image.h (MonoAssemblyName): changed major, minor, build, revision
18466         from signed to unsigned.
18467
18468 2003-01-20  sean kasun <skasun@azstarnet.com>
18469
18470         * reflection.c (load_cattr_value): Now this handles
18471         MONO_TYPE_SZARRAY.  Fixes bug #35629
18472
18473 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
18474
18475         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
18476         integer value
18477
18478 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18479
18480         * decimal.c: fixed bug #26056.
18481
18482 2003-01-17  Martin Baulig  <martin@ximian.com>
18483
18484         * gc.c: Raise an ExecutionEngineException instead of using g_error().
18485
18486 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18487
18488         * exception.[ch]:
18489         (mono_get_exception_type_initialization): new function.
18490
18491         * object.c: throw a TypeInitializationException when an exception is
18492         thrown invoking the class constructor.
18493
18494 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18495
18496         * reflection.c: fixed attribute reading.
18497
18498 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18499
18500         * icall.c:
18501         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
18502         provided, look for the type in the calling assembly and then in
18503         mscorlib; if the assembly name is provided, only try that one.
18504
18505 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
18506
18507         * object.c: register the vtable before there is a chance it's
18508         queried again recursively.
18509
18510 2003-01-13  Duncan Mak  <duncan@ximian.com>
18511
18512         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
18513         gc-internal.h. 
18514         
18515 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
18516
18517         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
18518
18519 2003-01-11  Martin Baulig  <martin@ximian.com>
18520
18521         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
18522         this to 20 for the release.
18523
18524 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
18525
18526         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
18527
18528         * loader.c (mono_method_get_marshal_info): bug fix
18529
18530         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
18531         structures with explicit layout
18532
18533 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
18534
18535         * profiler.c: made the output more readable (and sorted). 
18536         Added caller information for the allocation profiler.
18537
18538 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
18539
18540         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
18541
18542 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18543
18544         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
18545         to get value types.
18546         
18547 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
18548
18549         * object.c, profiler.h, profiler.c, profiler-private.h:
18550         Added object allocation profiler.
18551
18552 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
18553
18554         * reflection.h, reflection.c: handle global methods.
18555         Compress blob entries.
18556
18557 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
18558
18559         * marshal.c: fix compilation.
18560
18561 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
18562
18563         * loader.c (mono_method_get_marshal_info): impl.
18564
18565         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
18566
18567 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18568
18569         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
18570         for reference types.
18571
18572 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
18573
18574         * loader.c: fixed off by one error in loaded parameter names.
18575
18576 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
18577
18578         * marshal.c (mono_marshal_get_icall_wrapper): like
18579         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
18580         instead of a MonoMethod.
18581
18582 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18583
18584         * decimal.c: fixed bug #36537.
18585
18586 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
18587
18588         * marshal.c: throw a missing method exception if a
18589         P/Invoke method is not found.
18590
18591 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
18592
18593         * icall.c: allow a null this for constructors.
18594
18595 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
18596
18597         * icall.c: raise the proper exceptions if the arguments to the
18598         internal Invoke are incorrect.
18599
18600 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
18601
18602         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
18603
18604 2003-01-03  Martin Baulig  <martin@ximian.com>
18605
18606         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
18607
18608 2002-12-31  Martin Baulig  <martin@ximian.com>
18609
18610         * debug-mono-symfile.c: Completely rewrote the type section.
18611         Instead of using individual malloc()ed fields, we use one big
18612         continuous memory area and offsets into this area.
18613         See the comments in the source code for details.
18614
18615 2002-12-30  Martin Baulig  <martin@ximian.com>
18616
18617         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
18618
18619 2002-12-30  Martin Baulig  <martin@ximian.com>
18620
18621         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
18622         line number table in this data blob instead of using an external
18623         pointer.
18624
18625 2002-12-28  Martin Baulig  <martin@ximian.com>
18626
18627         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
18628
18629 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
18630
18631         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
18632         as a boxed return type.
18633
18634 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
18635
18636         * appdomain.c
18637         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
18638         g_build_filename to properly get separators on the filename created.
18639
18640         * object.h: Small change, introduce MonoMarshalByRefObject to
18641         track the layout of that structure in the C# universe as we make
18642         changes there.
18643
18644 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
18645
18646         * object.c: removed assert to allow static fields on interfaces.
18647         * loader.c: a TypeSpec may be used for any type, not just arrays.
18648
18649 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
18650
18651         * class.c, class.h: added mono_class_array_element_size ().
18652         Ignore static methods in interfaces.
18653
18654 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18655
18656         * threads.c: fixed the build under cygwin.
18657
18658 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
18659
18660         * reflection.c: handle nullref constants. Allocate keys for
18661         reflection handles with the GC.
18662
18663 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
18664
18665         * threads.c, threads.h: added mono_thread_get_abort_signal()
18666         to get a suitable signal for thread abort.
18667
18668 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
18669
18670         * metadata.c: fix handling of ExportedType table.
18671
18672 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18673
18674         * icall.c: added WriteWindowsDebugString internal call.
18675
18676 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18677
18678         * reflection.h: added fields to match C# implementation.
18679
18680 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18681
18682         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
18683
18684 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
18685
18686         * gc.h, gc-internal.h: Rename header for GC internal calls to
18687         gc-internal.h from gc.h as to not clash with Boehm GC having its
18688         header installed as <gc.h> in outside include paths.
18689         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
18690         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
18691
18692 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18693
18694         * icall.c: assign minor, build and revision in FillName.
18695
18696 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
18697
18698         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
18699         Added support for running code generated by Reflection.Emit.
18700
18701 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18702
18703         * appdomain.c: check for NULL argument in LoadFrom.
18704
18705 2002-12-10  Dick Porter  <dick@ximian.com>
18706
18707         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
18708
18709 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18710
18711         * appdomain.c: fix buglet when building exe file name.  Handle full
18712         assembly name (needed after latest changes to AssemblyName).
18713         * image.c:
18714         (mono_image_close): free some hashtables.
18715
18716 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
18717
18718         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
18719         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
18720         on some systems (redhat 7.3) 
18721
18722 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
18723
18724         * threads.c: delete the critical section of a sync block,
18725         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
18726
18727 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
18728
18729         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
18730
18731 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18732
18733         * appdomain.[ch]: handle the assembly preload event to try loading the
18734         assemblies using the paths we have in the current domain.
18735
18736         * assembly.[ch]: created an assembly preload hook that is called to try
18737         loading the assembly by other means that the ones provided here.
18738
18739         * domain.c: initialize the domain search path.
18740
18741         From now on, assemblies (TODO: except corlib and System) are loaded
18742         according to these rules when using mono_assembly_load ():
18743
18744                 1. It tries to load the assembly from the ApplicationBase
18745                 of the current domain appending .dll and .exe (TODO: have to
18746                 try loading from name/name.dll and name/name.exe).
18747
18748                 2. It tries the search path specified in PrivateBinPath for the
18749                 current domain (if any).
18750
18751                 3. Previous behavior.
18752
18753 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
18754
18755         * icall.c: implemented GetInterfaceMap() related icall.
18756         * domain.c, loader.h: load MethodInfo in mono_defaults.
18757
18758 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
18759
18760         * gc.c: disable the finalizer thread for now, untill all the issues
18761         with it are resolved.
18762
18763 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18764
18765         * string-icalls.c: handle embedded nulls in string ctor when the
18766         length is specified.
18767
18768 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
18769
18770         * class.c: look for explicit interface implementation in parent
18771         classes, too.
18772
18773 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
18774
18775         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
18776
18777 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
18778
18779         * gc.c: protect handles with a critical section.
18780
18781 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18782
18783         * icall.c:
18784         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
18785         parameters. If no assembly specified, try getting the type from all
18786         the assemblies in the current domain, else, load the assembly and get
18787         the type from it.
18788
18789 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18790
18791         * marshal.c: applied patch from Aleksey Demakov that fixes
18792         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
18793
18794 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18795
18796         * icall.c: fixed get_location.
18797
18798 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
18799
18800         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
18801         declarations to make it work with older gcc. 
18802
18803         * loader.c (mono_get_method): set signature->pinvoke for native calls
18804
18805 2002-11-20  Dick Porter  <dick@ximian.com>
18806
18807         * threads.c (mono_thread_init): Set the main thread's handle
18808
18809 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
18810
18811         * gc.c: allow compilation without GC support. Changed to match the
18812         mono coding style.
18813
18814 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
18815
18816         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
18817
18818 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
18819
18820         * reflection.c: set a public key token on the core assemblies.
18821
18822 2002-11-18  Dick Porter  <dick@ximian.com>
18823
18824         * threads.c: Split out some thread initialisation so that other
18825         files can set the start callback function.
18826
18827         * gc.c: Run finalisers in a separate thread, to avoid stack
18828         overflow.  Fixes bug 31333.
18829
18830         * appdomain.c: Set up GC finalisation thread.
18831
18832         * reflection.c: 
18833         * object.c: 
18834         * domain.c: Use gc.h macros for GC_malloc
18835         
18836 2002-11-15  Dick Porter  <dick@ximian.com>
18837
18838         * threadpool.c: 
18839         * threads.c:
18840         * appdomain.c: Removed mono_runtime_init_with_attach(),
18841         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
18842         merging the extra parameter with the existing function.  Removed
18843         unneeded code in mono_thread_attach().
18844
18845 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
18846
18847         * image.c (mono_image_loaded_by_guid): a method to get loaded
18848         images by guid. 
18849         (load_metadata_ptrs): we store the guid as string.
18850
18851 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
18852
18853         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
18854
18855         * metadata.c (mono_guid_to_string): imported method form Zoltan
18856         Varga (slightly modified)
18857
18858         * assembly.c (mono_assembly_open): load precompiled code
18859
18860         * loader.h (MonoMethod): we store the method token for use in the
18861         aot compiler. 
18862
18863 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18864
18865         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
18866         the hook function called when an assembly is loaded.
18867         
18868         * domain.c: Modified file.
18869         (mono_domain_assembly_load): removed hash table insertion of assemblies.
18870
18871         Fixes bug #33196.
18872
18873 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
18874
18875         * reflection.c: Map PEFileKind to the value expected by the WinNT
18876         image loader. 
18877
18878 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18879
18880         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
18881         Read until the buffer is filled completely.
18882
18883 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18884
18885         * icall.c: implemented MonoType.InternalGetEvent ().
18886
18887 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18888
18889         * appdomain.c: implemented InitAppDomainSetup. Delayed
18890         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
18891         the entry_assembly.
18892
18893         * assembly.c: base_dir is now an absolute path ending with
18894         G_DIR_SEPARATOR.
18895
18896         * icall.c: modified get_location according to the above changes.
18897
18898         * object.c: init AppDomain.SetupInformation for the default domain after
18899         we have the entry assembly.
18900
18901         * domain.c: when unloading a domain, setup = NULL.
18902
18903 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
18904
18905         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
18906
18907 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
18908
18909         * object.h, object.c: introduced mono_object_get_virtual_method ()
18910         to lookup the method invoked on an object when a callvirt is done on
18911         a method.
18912         * icall.c: make MethodInfo::Invoke() always do a virtual call.
18913
18914 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18915
18916         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
18917         current domain when loaded an assembly and failed to load it.
18918
18919         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
18920
18921 2002-10-31  Dick Porter  <dick@ximian.com>
18922
18923         * icall.c: 
18924         * file-io.h: 
18925         * file-io.c: Return the error status in a parameter, as the
18926         GetLastError() value has long since been blown away if we try and
18927         look it up in a subsequent internal call invocation.  Delete the
18928         GetLastError() internal call, because it's useless.
18929
18930 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
18931
18932         * class.[ch]: added cast_class to fix bug 29517
18933
18934 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
18935
18936         * marshal.c: create valid IL code in the filter clause:
18937         the new JIT is less forgiving:-)
18938
18939 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18940
18941         * icall.c: removed get_property internal call.
18942
18943 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
18944
18945         * appdomain.h domain.c: Added an ID to appdomains.
18946         
18947         * threads.c threads.h icall.c: Implement icall
18948         Thread:GetDomainID(), and remove unused icall 
18949         CurrentThreadDomain_internal.
18950
18951 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18952
18953         * icall.c: Don't recurse through the base types in GetConstructor.
18954         Fixes bug #32063. 
18955
18956 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
18957
18958         * mempool.h, mempool.c: added mono_mempool_empty() and
18959         mono_mempool_stats().
18960
18961 2002-10-23  Dick Porter  <dick@ximian.com>
18962
18963         * file-io.c: 
18964         * file-io.h: 
18965         * icall.c: Added MonoIO.GetFileType internal call
18966
18967 2002-10-17  Dick Porter  <dick@ximian.com>
18968
18969         * appdomain.c (mono_runtime_cleanup): Don't signal the async
18970         delegate semaphore before waiting for all threads to finish,
18971         because new threads can also call async delegates.  Fixes bug
18972         32004.
18973
18974         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
18975         of 3 seconds, in case another async job is queued.  (This part is
18976         needed because the bug fix reintroduced the 3s exit lag.)  This
18977         makes the mono_runtime_shutdown flag superfluous.
18978
18979 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
18980
18981         * reflection.c: include ehader size in method section headers.
18982         Really check for suplicated modules entries.
18983
18984 2002-10-17  Martin Baulig  <martin@gnome.org>
18985
18986         * debug-mono-symfile.c: Added back support for locals.
18987
18988 2002-10-14  Martin Baulig  <martin@gnome.org>
18989
18990         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
18991         MONO_TYPE_VOID.
18992
18993 2002-10-14  Martin Baulig  <martin@gnome.org>
18994
18995         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
18996         mono_class_get() instead of looking in the class cache. 
18997
18998 2002-10-13  Martin Baulig  <martin@gnome.org>
18999
19000         * debug-mono-symfile.c: Set version number to 28, include the
19001         signature in method names.
19002
19003 2002-10-13  Martin Baulig  <martin@gnome.org>
19004
19005         * debug-mono-symfile.h: Set version number to 27.
19006
19007 2002-10-11  Martin Baulig  <martin@gnome.org>
19008
19009         * gc.c: Don't register/unregister NULL pointers as disappearing links.
19010
19011 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19012
19013         * metadata.c, metadata.h: added helper function to allocate signatures.
19014
19015 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19016
19017         * icall.c: added internal call to get the location of machine.config.
19018
19019 2002-10-08  Martin Baulig  <martin@gnome.org>
19020
19021         * debug-mono-symfile.c: Ignore classes with a pending init for the
19022         moment.
19023
19024 2002-10-03  Dick Porter  <dick@ximian.com>
19025
19026         * threads.c: Freebsd pthread_t is a pointer
19027
19028 2002-10-03  Dick Porter  <dick@ximian.com>
19029
19030         * socket-io.c: Implemented GetHostName_internal
19031
19032 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19033
19034         * mono-config.c:
19035         (mono_config_parse_file): don't leak the text.
19036
19037 2002-10-02  Martin Baulig  <martin@gnome.org>
19038
19039         * debug-mono-symfile.c: Added support for methods.
19040
19041 2002-10-01  Martin Baulig  <martin@gnome.org>
19042
19043         * debug-mono-symfile.c: Don't emit methods and line numbers for
19044         the dynamic symbol file, just write the type table.  We can easily
19045         have an external helper program which creates a symbol file for an
19046         IL file.        
19047
19048 2002-10-01  Dick Porter  <dick@ximian.com>
19049
19050         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
19051         Only add the handle to the cleanup array when we're about to
19052         launch the thread.  Bug 31425 deadlocked when the test was run on
19053         mono under w32.
19054
19055 2002-10-01  Martin Baulig  <martin@gnome.org>
19056
19057         * debug-mono-symfile.c: Added support for properties.
19058
19059 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
19060
19061         * reflection.c: unaligned store fix from Mark Crichton
19062         <crichton@gimp.org>.
19063
19064 2002-09-27  Martin Baulig  <martin@gnome.org>
19065
19066         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
19067         New interncall.
19068
19069 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
19070
19071         * assembly.h, assembly.c: use a sane API to hook into the assembly
19072         loading process instead of a useless special-purpouse hack
19073         (ngen needs a hook, too, for example).
19074
19075 2002-09-27  Dick Porter  <dick@ximian.com>
19076
19077         * threads.c (mono_thread_init): Call GetCurrentProcess() so
19078         io-layer can set up some process handle info.  Not needed on w32,
19079         but doesn't hurt either.
19080
19081         * process.c: Pass the program name in the second parameter to
19082         CreateProcess, so the path is searched.  Include the working
19083         directory. Implemented process name, process enumeration, and some
19084         process detail internal calls.
19085         
19086         * icall.c: Added internal calls for process lookup, and some
19087         process details
19088
19089 2002-09-26  Martin Baulig  <martin@gnome.org>
19090
19091         * assembly.c (mono_install_open_assembly_hook): New global
19092         function to install a function to be invoked each time a new
19093         assembly is loaded.
19094         (mono_assembly_open): Run this callback function if set.
19095
19096         * debug-mono-symfile.c: Put back line numbers for the dynamic
19097         symbol file and also record the .il file as source file.  This
19098         allows us to install the temporary symbol file as `file.dbg' just
19099         like a compiler-generated one.
19100
19101 2002-09-26  Nick Zigarovich <nick@chemlab.org>
19102
19103         * Corrected typo in gc.c (BOHEM vs BOEHM).
19104
19105 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19106
19107         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
19108         GetProperties. Also avoid calling g_slist_length in GetProperties and
19109         GetMethods.
19110
19111 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
19112
19113         * reflection.c: avoid unaligned stores (bug spotted by
19114         Mark Crichton  <crichton@gimp.org>).
19115
19116 2002-09-25  Martin Baulig  <martin@gnome.org>
19117
19118         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
19119         instead of guint64 for addresses and added prologue/epilogue info.
19120
19121 2002-09-25  Martin Baulig  <martin@gnome.org>
19122
19123         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
19124         store line number info.  For the dynamic symbol file, we only need
19125         to provide the JIT generated dynamic line number info for the dynamic
19126         symbol file.
19127
19128 2002-09-25  Martin Baulig  <martin@gnome.org>
19129
19130         * debug-mono-symfile.h: Incremented version number.
19131
19132 2002-09-24  Martin Baulig  <martin@gnome.org>
19133
19134         * class.c (mono_debugger_class_init_func): New global function
19135         pointer variable.
19136         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
19137         call it.
19138
19139         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
19140         function.  This is called via the mono_debugger_class_init_func
19141         hook to add all types to the dynamic type table.
19142         (ves_icall_MonoDebugger_GetType): New interncall to get a class
19143         from its metadata token.
19144
19145         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
19146         New interncall for the debugger.
19147
19148 2002-09-24  Nick Drochak <ndrochak@gol.com>
19149
19150         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
19151         before using it in case it is null.
19152         
19153 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19154
19155         * metadata.c: allow custom modifiers in local var signatures
19156         (bug spotted by Zoltan Varga).
19157
19158 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
19159
19160         * class.c: deal with the <Module> class that may have a NULL vtable.
19161         Eliminate warnings.
19162
19163 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19164
19165         * image.c, image.h: more strong name helpers.
19166         * monosn.c: more work: convert pem keys to cryptoapi format.
19167
19168 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
19169
19170         * string-icalls.c: speedup IndexOf.
19171
19172 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19173
19174         * icall.c: updates from Zoltan.2.Varga@nokia.com.
19175
19176 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19177
19178         * icall.c: cleanup: use mono_object_domain ().
19179
19180 2002-09-23  Martin Baulig  <martin@gnome.org>
19181
19182         * debug-mono-symfile.c: Improved type support.
19183
19184 2002-09-22  Martin Baulig  <martin@gnome.org>
19185
19186         * debug-mono-symfile.c: Added support for reference types and strings.
19187
19188 2002-09-22  Martin Baulig  <martin@gnome.org>
19189
19190         * debug-mono-symfile.c: Started to work on the type table.
19191
19192 2002-09-21  Martin Baulig  <martin@gnome.org>
19193
19194         * debug-mono-symfile.c: Largely reworked the symbol table format.
19195         The symbol table is now incrementally updated each time a new
19196         method is added.  We're now also using our own magic and version
19197         so that you don't need to recompile all your classes if the
19198         dynamic table changes.
19199         (mono_debug_update_mono_symbol_file): Removed.
19200         (mono_debug_symfile_add_method): New function to add a method.
19201
19202 2002-09-21  Martin Baulig  <martin@gnome.org>
19203
19204         * icall.c
19205         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
19206         New interncall.
19207
19208         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
19209         New interncall to get a method from its metadata token.
19210
19211 2002-09-21  Martin Baulig  <martin@gnome.org>
19212
19213         * debug-mono-symfile.c: Create type table.
19214
19215 2002-09-20  Martin Baulig  <martin@gnome.org>
19216
19217         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
19218
19219 2002-09-20  Martin Baulig  <martin@gnome.org>
19220
19221         * debug-mono-symfile.c: Provide information about params and locals.
19222
19223 2002-09-20  Martin Baulig  <martin@gnome.org>
19224
19225         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
19226         New interncall.
19227
19228         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
19229         interncall to get a method from its metadata token.
19230
19231 2002-09-20  Martin Baulig  <martin@gnome.org>
19232
19233         * debug-mono-symfile.c: Added a few checks for method->header
19234         being non-NULL.  This should never happen, but for the moment
19235         let's use a g_warning() rather than a g_assert().
19236
19237 2002-09-19  Mark Crichton  <crichton@gimp.org>
19238
19239         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
19240         even if support for it isn't present.  Added an #ifdef to fix this.
19241
19242         * socket-io.c: Added checks back for Solaris support.
19243
19244 2002-09-19  Martin Baulig  <martin@gnome.org>
19245
19246         * debug-mono-symfile.c (read_string, write_string): Reflect latest
19247         changes in the symbol file format.
19248
19249 2002-09-18  Martin Baulig  <martin@gnome.org>
19250
19251         * debug-mono-symfile.c: Set version number to 21.
19252
19253 2002-09-18  Dick Porter  <dick@ximian.com>
19254
19255         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
19256         on netbsd.  Fixes bug 30051.
19257
19258 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19259
19260         * reflection.c:
19261         (set_version_from_string): little fix.
19262
19263 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19264
19265         * monosn.c, Makefile.am: added strong name utility.
19266         * reflection.h, reflection.c: implemented delayed signing,
19267         locale, version and hash id assembly attributes.
19268
19269 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
19270
19271         * loader.c, metadata.c: load param attributes in signatures.
19272
19273 2002-09-16  Martin Baulig  <martin@gnome.org>
19274
19275         * debug-mono-symfile.c: Added string table with all method names.
19276
19277 2002-09-14  Martin Baulig  <martin@gnome.org>
19278
19279         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
19280         fast method lookup.
19281
19282 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
19283
19284         * reflection.c: record the public key token of referenced assemblies.
19285
19286 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19287
19288         * image.c, image.h: added functions to get the strong name and the
19289         public key of an assembly.
19290         * pedump.c: use them.
19291
19292 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
19293
19294         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
19295
19296 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
19297
19298         * marshal.c (mono_marshal_get_managed_wrapper): Added
19299         MONO_TYPE_BOOLEAN 
19300
19301 2002-09-11  Martin Baulig  <martin@gnome.org>
19302
19303         * gc.c: Call GC_unregister_disappearing_link() on all links when
19304         finalizing them, this is necessary to aviod a crash in boehm's
19305         finalize handler.
19306
19307 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19308
19309         * gc.c: handle GetTarget for finalized objects spotted and fixed by
19310         nick@chemlab.org.
19311
19312 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
19313
19314         * icall.c: implemented MonoType::Module.
19315         * reflection.c, reflection.h: mono_module_get_object () from
19316         Tomi Pakarinen <tomi.pakarinen@welho.com>.
19317
19318 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
19319
19320         * icall.c: ignore overridden methods in GetMethods ().
19321         Fix for FieldInfo::SetValue().
19322         * object.c: handle float/double in runtime invoke.
19323
19324 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
19325
19326         * object.c: allow a constructor to be called again on an object.
19327
19328 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19329
19330         * class.h, class.c: move field layout code to it's own function and
19331         export it. Get an interface id earlier. Move fields in MonoClass
19332         so they are more cache friendly and align the bitfields.
19333         * loader.c: temporary handle get_param_names() for a runtime method.
19334         * reflection.c, reflection.h: more code to handle runtime creation of
19335         types.
19336
19337 2002-09-09  Martin Baulig  <martin@gnome.org>
19338
19339         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
19340         signature with the pinvoke field being set for the actual call.
19341
19342 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19343
19344         * icall.c: removed some unused icalls. Start of map of glib charsets
19345         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
19346
19347 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
19348
19349         * debug-helpers.c: break infinite loop (found and fixed by
19350         Holger Arnold <harnold@gmx.de>).
19351
19352 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
19353
19354         * icall.c: target may be null in create_delegate.
19355
19356 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19357
19358         * marshal.c: handle a boolean return type.
19359
19360 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19361
19362         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
19363
19364 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
19365
19366         * gc.c: fix weakreferences.
19367
19368 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
19369
19370         * icall.c: added icall to get default codepage.
19371
19372 2002-09-03  Dick Porter  <dick@ximian.com>
19373
19374         * threads.h: 
19375         * threads.c: Use MonoThread instead of MonoObject where
19376         apropriate.
19377
19378         Store running thread objects in a hash table, so that we have all
19379         the info to hand when waiting for them to finish
19380         (means we don't need OpenThread() any more, so mingw builds should
19381         be fully functional again.)
19382
19383         * verify.c:
19384         * object.h: Added thread ID to MonoThread
19385
19386 2002-09-03  Martin Baulig  <martin@gnome.org>
19387
19388         * icall.c (System.Reflection.Assembly::get_location): New interncall.
19389
19390 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19391
19392         * icall.c: fixed leak in get_temp_path. Thanks lupus.
19393
19394 2002-09-03  Martin Baulig  <martin@gnome.org>
19395
19396         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
19397         argument to store the end address of the disassembled instruction.
19398
19399         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
19400         here from debug-symfile.h.
19401         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
19402         JIT into this struct.
19403         (MonoSymbolFile): Added `char *image_file' field.
19404         (MonoDebugGetMethodFunc): Removed.
19405         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
19406         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
19407         (mono_debug_find_method): New method.
19408
19409         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
19410         create a full symbol file.
19411         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
19412         and static symbol files.
19413         (mono_debug_find_method): The symbol file keeps an internal method hash,
19414         call this to get a MonoDebugMethodInfo from a MonoMethod.
19415
19416         * debug-symfile.[ch]: Removed.
19417
19418 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
19419
19420         * image.c (do_mono_image_open): Remove linker version check.
19421
19422 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
19423
19424         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
19425         wrappers for instance methods.
19426         
19427 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19428
19429         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
19430
19431 2002-08-28  Dick Porter  <dick@ximian.com>
19432
19433         * Makefile.am: Export HOST_CC for w32 builds
19434
19435 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19436
19437         * file-io.c process.c: MonoString are null terminated, no
19438         need for mono_string_to_utf16() anymore.
19439
19440 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19441
19442         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
19443
19444 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
19445
19446         * icall.c, reflection.h: speedup System.MonoType.
19447
19448 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
19449
19450         * reflection.c: allow null as the value of a string argument in
19451         custom attributes constructors.
19452
19453 2002-08-27  Martin Baulig  <martin@gnome.org>
19454
19455         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
19456         `trampoline_address' field.
19457
19458 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
19459
19460         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
19461         check (fixes bug #29486) 
19462
19463 2002-08-27  Martin Baulig  <martin@gnome.org>
19464
19465         * debug-mono-symfile.c: Changed the file format in a way that allows us
19466         open it read-only and to use a specially malloced area for all the
19467         dynamic data.  We can now also generate a symbol file on-the-fly if we're
19468         debugging IL code and there is no MCS generated symbol file for it.
19469
19470 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
19471
19472         * object.c: added a define for a good string and array
19473         creation speedup (not enabled by default because we need to deal with
19474         the synch stuff).
19475
19476 2002-08-26  Martin Baulig  <martin@gnome.org>
19477
19478         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
19479         function to create a dynamic symbol file.  This is used by the
19480         debugger to create a symbol file for IL code on-the-fly.
19481
19482 2002-08-26  Martin Baulig  <martin@gnome.org>
19483
19484         * loader.c (mono_lookup_pinvoke_call): Include the error message
19485         from g_module_error() in the error message.
19486
19487 2002-08-24  Martin Baulig  <martin@gnome.org>
19488
19489         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
19490         function to update the symbol file.  The symbol file is mmap()ed
19491         writable, but private.  This allows us to install the symbol file
19492         together with the assembly.
19493
19494 2002-08-24  Martin Baulig  <martin@gnome.org>
19495
19496         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
19497         but they can read the new symbol file format which mcs is now creating.
19498
19499         * debug-symfile.c (mono_debug_find_source_location): Moved to
19500         debug-mono-symfile.c; this is now operating on the new symbol file.
19501
19502 2002-08-23  Martin Baulig  <martin@gnome.org>
19503
19504         * debug-helpers.c (mono_method_desc_from_method): New function to get
19505         a MonoMethodDesc from a MonoMethod.
19506
19507 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
19508
19509         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
19510         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
19511
19512 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
19513
19514         * string-icalls.[ch]: make helper methods static.
19515
19516 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19517
19518         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
19519         types to it and to SetValueInternal.
19520
19521         * object.c: Moved handle_enum label to its proper place. This was the
19522         f... bug! ;-)
19523
19524         This time i compiled mcs and gtk-sharp and they both work.
19525
19526 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19527
19528         * icall.c: reverted partially my previous patch until 
19529         object.c:set_value handles enums correcly.
19530
19531 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19532
19533         * icall.c:
19534         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
19535         (ves_icall_System_Environment_get_MachineName): removed warning when
19536         compiling under cygwin.
19537
19538 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19539
19540         * object.c: fixed field_get_value() for reference types.
19541
19542 2002-08-22  Dick Porter  <dick@ximian.com>
19543
19544         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
19545         Don't free a buffer while it's still needed.  Patch from Jonathan
19546         Liger <Jonathan.liger@wanadoo.fr>
19547
19548 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
19549
19550         * icall.c (ves_icall_System_Environment_get_Platform): Add new
19551         internal call.
19552
19553 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
19554
19555         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
19556         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
19557
19558         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
19559         we call unmanaged code which throws exceptions.
19560
19561 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19562
19563         * appdomain.h: added per-domain entry_assembly.
19564         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
19565         arguments.
19566         * icall.c: Assembly::GetEntryAssembly icall.
19567         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
19568         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
19569
19570 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19571
19572         * appdomain.h, gc.c: added mono_domain_finalize ().
19573
19574 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19575
19576         * object.c:
19577         (mono_print_unhandled_exception): changed g_warning by g_printerr
19578         because g_log has a 1024 characters limit (yeah, i got a big stack
19579         trace). Don't print exception name, that should be in ToString 
19580         returned string.
19581
19582 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19583
19584         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
19585         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
19586
19587 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19588
19589         * object.c:
19590         (mono_print_unhandled_exception): after previous commit, i realized
19591         that MS calls ToString on the exception. I changed this function to
19592         do that. This way we get stack_trace for free.
19593
19594 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19595
19596         * object.c:
19597         (mono_print_unhandled_exception): invoke Message property instead of
19598         getting 'message' field from Exception. Don't allocate memory for
19599         'trace' and 'message' if not needed.
19600
19601 2002-08-18  Dick Porter  <dick@ximian.com>
19602
19603         * unicode.c: Fix asserts to match Encoder.cs checks
19604
19605 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19606
19607         * marshal.c: fix unaligned store issue and a few wrong
19608         opcode argument types.
19609
19610 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19611
19612         * icall.c: added GetUninitializedObjectInternal internal call.
19613
19614 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
19615
19616         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
19617         to the right domain.
19618
19619 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
19620
19621         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
19622
19623         * class.c (class_compute_field_layout): set blittable to false for Strings
19624
19625         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
19626
19627 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19628
19629         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
19630         first chunk of code to create types at runtime. Code to
19631         handle ReflectedType/DeclaringType. Make reflection handles
19632         domain specific.
19633
19634 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
19635
19636         * class.c: set correct name in arrays.
19637
19638 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
19639
19640         * appdomain.c (mono_domain_transfer_object): make it work with
19641         valuetypes. bug fixes.
19642
19643 2002-08-12  Dick Porter  <dick@ximian.com>
19644
19645         * object.h: Rename some parameters to avoid c++ keywords (Patch
19646         from Joseph Wenninger <kde@jowenn.at>)
19647
19648 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
19649
19650         * icall.c: added icall to implement Assembly.GetFile*.
19651
19652 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19653
19654         * reflection.h, reflection.c: code to embed managed resources.
19655
19656 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
19657
19658         * class.c: move all the type size stuff into
19659         class_compute_field_layout().
19660
19661 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19662
19663         * class.c: ensure enums have always the correct instance size.
19664         * unicode.c: remove wrong assert.
19665
19666 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
19667
19668         * assembly.c: fix mem corruption issue.
19669         * image.h, image.c: added mono_image_get_resource () to access
19670         managed resources.
19671         * icall.c: implemented Assembly.EntryPoint property and some
19672         Managed Resources related internalcalls.
19673
19674
19675 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
19676
19677         * image.c, image.h: impemented mono_image_get_entry_point ().
19678         * appdomain.c: use mono_image_get_entry_point.
19679
19680 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19681
19682         * reflection.c: support the object type argument when loading
19683         custom attributes.
19684
19685 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
19686
19687         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
19688         String as return type.
19689
19690 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
19691
19692         * reflection.c: fix encoding of named args for custom attrs to match
19693         the ms implementation. Read them back when instantiating custom
19694         attributes.
19695
19696 2002-08-02  Radek Doulik  <rodo@ximian.com>
19697
19698         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
19699         by Dietmar as quick fix
19700         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
19701         16 as stack size, used on more places as quick fix before Dietmar
19702         will fix it properly
19703
19704 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19705
19706         * object.h, object.c: added accessors for fields and properties.
19707
19708 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19709
19710         * class.c, class.h: made mono_class_get_field_from_name ()
19711         loop on parent types.
19712         Added mono_class_get_property_from_name ().
19713
19714 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19715
19716         * class.c, class.h: move the code to setup the type vtable in its own
19717         function so that it can be reused also for types created at runtime.
19718         Eliminate the "class" identifier from the header file.
19719         * reflection.c: setup the vtable for enums so that we can create
19720         objects for use in SetConstant ().
19721
19722 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
19723
19724         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
19725         instead of the delegate itself as this pointer (bug #28383)
19726
19727 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
19728
19729         * marshal.c (mono_marshal_get_managed_wrapper): added return type
19730         conversions.
19731
19732 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19733
19734         * loader.c: don't set the pinvoke bit on icalls.
19735
19736 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
19737
19738         * debug-helpers.c (mono_method_full_name): only print a number to
19739         indicate wrapper type (so that the output is more readable in traces).
19740
19741 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
19742
19743         * class.c (mono_class_init): include method override patch from Paolo
19744
19745 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
19746
19747         * icall.c: fixed GetTypeCode().
19748
19749 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
19750
19751         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
19752         use real delegate invoke function to make it work with multicast
19753         delegates (fix bug# 28291).
19754
19755 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19756
19757         * object.c: load constant strings.
19758
19759 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19760
19761         * reflection.c: no magic numbers.
19762         * tabledefs.h: security action enum.
19763
19764 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19765
19766         * assembly.c: fix possible memory corruption.
19767
19768 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
19769
19770         * reflection.h, reflection.c: added support for linking resources.
19771         * verify.c: check we have an updated corlib.
19772
19773 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
19774
19775         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
19776         string arrays.
19777         (mono_marshal_string_array): null terminate unmanaged string arrays.
19778         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
19779
19780 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19781
19782         * icall.c: Type.GetType () can now return also types from the
19783         calling assembly.
19784
19785 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
19786
19787         * loader.h, loader.c: stack walking support.
19788         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
19789         GetCallingAssembly.
19790
19791 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
19792
19793         * marshal.c: added optimisations for blittable types 
19794
19795         * class.c (mono_array_class_get): do not set blittable attribute on arrays
19796         (mono_class_setup_mono_type): set blittable attribute for single
19797         and double.
19798
19799         * marshal.c (mono_string_utf8_to_builder): impl.
19800         (mono_string_builder_to_utf8): impl.
19801         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
19802
19803 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
19804
19805         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
19806         (mono_marshal_get_managed_wrapper): impl. byref types
19807
19808 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19809
19810         * icall.c:
19811         (search_method): don't display debug message. 
19812
19813 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
19814
19815         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
19816
19817 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
19818
19819         * appdomain.c: set the missing filename when throwing exception.
19820
19821 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
19822
19823         * metadata.c (mono_type_size): code cleanup
19824         (mono_type_stack_size): removed some test code
19825
19826 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
19827
19828         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
19829         mono_get_exception_file_not_found now.
19830
19831         * exception.c (mono_exception_from_name_two_strings): New version
19832         that will call a constructor with two string arguments. 
19833         (mono_get_exception_file_not_found): New helper routine, used to
19834         report file-not-found errors.
19835
19836 2002-07-20  Dick Porter  <dick@ximian.com>
19837
19838         * process.h:
19839         * process.c: Pass file handles to CreateProcess
19840         
19841         * icall.c:
19842         * file-io.h:
19843         * file-io.c: Implemented CreatePipe
19844
19845 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
19846
19847         * metadata.c (mono_get_param_info): set alignment for value types
19848
19849 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19850
19851         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
19852         Constify mono_domain_assembly_open().
19853         * loader.c: handle null namespace in icalls.
19854
19855 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
19856
19857         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
19858         (emit_str_to_ptr_conv): marshal object as structs
19859
19860         * metadata.c (mono_type_to_unmanaged): marshal object as structs
19861
19862         * marshal.c (mono_marshal_get_runtime_invoke): support value types
19863
19864 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
19865
19866         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
19867         (mono_marshal_get_native_wrapper): we an now return value types
19868
19869 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19870
19871         * verify.c: more checks implemented.
19872
19873 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
19874
19875         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
19876         (fix bug #27695)
19877         (mono_marshal_get_native_wrapper): allow byref arguments
19878         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
19879         impl. PtrToStringXXX methods
19880         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
19881         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
19882         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
19883         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
19884         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
19885
19886 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19887
19888         * reflection.c: fix buglet in parsing an assembly name.
19889
19890 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
19891
19892         * marshal.c (emit_ptr_to_str_conv): first impl.
19893
19894 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
19895
19896         * object.c, class.h: cache the vtable in the class as suggested by
19897         vargaz@freemail.hu (Zoltan Varga).
19898
19899 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19900
19901         * class.h, loader.c: added mono_field_from_token().
19902         * verify.c: first cut of type checking code.
19903
19904 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
19905
19906         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
19907
19908 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
19909
19910         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
19911         (fix bug #27782)
19912         (mono_marshal_get_remoting_invoke): impl.
19913         (mono_delegate_begin_invoke): impl.
19914         (mono_mb_emit_save_args): impl.
19915         (mono_delegate_end_invoke): impl.
19916         (mono_marshal_get_delegate_begin_invoke):
19917         (mono_marshal_get_delegate_end_invoke):
19918         (mono_marshal_get_delegate_invoke): generate a special name for
19919         those methods (including the signature) and associate them whith
19920         the delegate class. 
19921
19922 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
19923
19924         * reflection.[ch]: 
19925         (mono_reflection_type_from_name): now it has a MonoImage parameter
19926         which is used as the default image to search the type in. If the image
19927         is NULL or getting the type from it fails, it defaults to corlib.
19928
19929         * icall.c: changed 1 call to mono_reflection_type_from_name to match
19930         new parameter.
19931
19932 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19933
19934         * reflection.c: update the parameter table index.
19935
19936 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
19937
19938         * domain.c: don't include the mark byte in the string hash.
19939
19940 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
19941
19942         * icall.cs: icall for Type.GetTypeCode ().
19943         * verify: a couple of fixes and disabled local initialization checks.
19944
19945 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
19946
19947         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
19948
19949         * debug-helpers.c (mono_method_full_name): print the type of the
19950         runtime wrapper
19951
19952         * metadata.c (mono_signature_hash): a hash function for signatures
19953         (mono_signature_hash): better hash algorithm
19954
19955         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
19956
19957         * debug-helpers.c (mono_method_full_name): this can now generate
19958         method names with signatures
19959
19960         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
19961         method dont have this pointers.
19962
19963 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
19964
19965         * reflection.c: fixup typebuilder tokens.
19966         * image.c: fix buglet.
19967         * marshal.h: remove whitespace.
19968         * metadata.h, metadata.c: reinstate code that was removed.
19969         * verify.c: handle catch directives and fix another couple of bugs.
19970
19971 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
19972
19973         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
19974         (mono_marshal_get_native_wrapper): make it comp. with the old code
19975         (mono_marshal_get_native_wrapper): support boolean
19976         (mono_marshal_get_managed_wrapper): support more types
19977
19978 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
19979
19980         * class.c (class_compute_field_layout): compute class->blittable attribute.
19981
19982 2002-07-09  Dick Porter  <dick@ximian.com>
19983
19984         * threads.c: Make the thread cleaning up cope with threads that
19985         call ExitThread()
19986
19987 2002-07-08  Radek Doulik  <rodo@ximian.com>
19988
19989         * reflection.c (method_encode_code): use non-translated values to
19990         compute finally_start, this fixes exception handling on ppc, yay!
19991
19992         * decimal.h (struct signscale): fix endianess
19993
19994 2002-07-07  Radek Doulik  <rodo@ximian.com>
19995
19996         * reflection.c: swap box_val and not val
19997
19998 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
19999
20000         * reflection.c, reflection.h: handle full assembly info in type name.
20001         Handle Type arguments when loading custom attributes.
20002         * icall.c: updated to use new mono_reflection_type_from_name () method.
20003
20004 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20005
20006         * loader.c:
20007         (method_from_memberref): also print assembly name when method not found.
20008
20009 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20010
20011         * icall.c:
20012         (ves_icall_TypeGetProperties): fixed bug #27473. 
20013
20014 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20015
20016         * reflection.c: display image name and token when cannot find the
20017         .ctor for an attribute.
20018
20019 2002-07-05  Martin Baulig  <martin@gnome.org>
20020
20021         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
20022
20023 2002-07-04  Dick Porter  <dick@ximian.com>
20024
20025         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
20026         compile on mingw.  This will cause mingw builds to not wait for
20027         subthreads to terminate after the main thread does.  I've lodged a
20028         bug with the mingw developers for them to wrap OpenThread().
20029
20030 2002-07-03  Dick Porter  <dick@ximian.com>
20031
20032         * threads.c: Store thread IDs instead of handles, because
20033         GetCurrentThread() returns a pseudohandle and therefore stores
20034         useless values.  mono_thread_cleanup() continues checking the
20035         array of threads until it is empty, to cope with subthreads
20036         spawning new threads after the main thread has finished.
20037
20038         * profiler.h:
20039         * profiler.c:
20040         * profiler-private.h: Pass the thread ID to thread profiler
20041         functions, instead of a handle
20042
20043 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20044
20045         * verify.c: fixes to make it more usable.
20046         * pedump.c: added --verify code to verify IL code in an assembly.
20047
20048 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20049
20050         * reflection.c: turn errors into warnings to allow compiling corlib.
20051
20052 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
20053
20054         * reflection.c: add special cases to compile corlib.
20055
20056 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20057
20058         * reflection.c: handle properties with only a set method.
20059
20060 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20061
20062         * opcodes.h: add enum with opcodes in opval order.
20063
20064 2002-07-01  Dick Porter  <dick@ximian.com>
20065         
20066         * object.h:
20067         * object.c (mono_runtime_run_main): Removed unneeded argument
20068
20069 2002-06-28  Martin Baulig  <martin@gnome.org>
20070
20071         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
20072
20073 2002-06-27  Dick Porter  <dick@ximian.com>
20074
20075         * threads.c: Store the handle in both the parent thread and in the
20076         subthread, to minimise the time between starting a new thread and
20077         storing its ID.
20078
20079 2002-06-26  Dick Porter  <dick@ximian.com>
20080
20081         * appdomain.c (mono_runtime_cleanup): Close the socket library
20082         after all the threads have finished, not before
20083
20084 2002-06-26  Martin Baulig  <martin@gnome.org>
20085
20086         * debug-symfile.c (mono_debug_find_source_location): Added
20087         `guint32 *line_number' argument.  If it's not NULL, store the line number
20088         there and return the file name without the line number.
20089
20090 2002-06-25  Dick Porter  <dick@ximian.com>
20091
20092         * icall.c:
20093         * process.h:
20094         * process.c: Process forking and other support functions
20095
20096 2002-06-25  Dick Porter  <dick@ximian.com>
20097
20098         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
20099         things dont happen when the image is closed.
20100         (mono_image_lookup_resource): Walk the resource section looking
20101         for a particular entry
20102
20103         * cil-coff.h: PE resource section decoding
20104
20105 2002-06-25  Dick Porter  <dick@ximian.com>
20106         
20107         * assembly.h:
20108         * assembly.c: 
20109         (mono_assembly_foreach): Accessor functions to walk the list of
20110         loaded assemblies
20111         (mono_assembly_set_main):
20112         (mono_assembly_get_main): Process methods need to know which
20113         assembly is the "main" one
20114
20115         * object.c (mono_runtime_run_main): Record the main assembly
20116
20117         * debug-helpers.c: Fix typo
20118
20119 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
20120
20121         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
20122         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
20123
20124 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20125
20126         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
20127
20128 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
20129
20130         * image.c (do_mono_image_open): Initialize reference count,
20131         otherwise we leak the MonoImage.
20132
20133 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
20134
20135         * reflection.c: small tweak to handle self-hosting.
20136
20137 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
20138
20139         * reflection.c: fix type name parse code.
20140
20141 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20142
20143         * reflection.c: break out of the loop.
20144         * image.c: special case corlib.
20145
20146 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20147
20148         * reflection.c: add all the custom attrs at the end to ensure the
20149         ctors have been properly initialized when the attributes are defined
20150         in the current assembly.
20151
20152 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20153
20154         * reflection.c: handle correctly multiple-nested types.
20155
20156 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
20157
20158         * row-indexes.h: fix typos.
20159         * reflection.c: adjust for typos and fix method_def_or_ref
20160         encoding in MethodImpl table.
20161
20162 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20163
20164         * reflection.c: fix entry point patching (thanks Serge!).
20165
20166 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
20167
20168         * verify.c: add check for System.Exception
20169
20170 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
20171
20172         * image.c, class.c: minifix for code just c&p'ed.
20173         * reflection.c: warning fix.
20174         * object.h, loader.h, domain.c: load also StringBuilder.
20175
20176 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20177
20178         * marshal.h, marshal.c: some support code to handle complex marshaling.
20179
20180 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20181
20182         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
20183         Better signatures with vtable error dump.
20184
20185 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
20186
20187         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
20188
20189 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
20190
20191         * icall.c (ves_icall_Type_GetField): impl.
20192
20193 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20194
20195         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
20196         to retrieve a marshal description blob for a field or param.
20197
20198 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
20199
20200         * reflection.h, reflection.c: change order of nested type emission
20201         to avoid table corruption. The NestedTypes table is sorted.
20202         * icall.c: change order of GetConstructor results to workaround mcs bug.
20203
20204 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20205
20206         * reflection.h, reflection.c: handle field and param marshal
20207         information.
20208
20209 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20210
20211         * icall.c, marshal.c marshal.h: more Marshal class implementation.
20212
20213 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20214
20215         * reflection.c: fix call convention.
20216
20217 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20218
20219         * reflection.h, reflection.c: mono_image_get_memberref_token()
20220         takes a type instead of a class, now. Added
20221         mono_image_get_array_token() to create tokens for the special
20222         multi-dim array methods.
20223
20224 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20225
20226         * assembly.c: handle modules (no assembly table). Split
20227         loading references in its own function.
20228         * class.c: handle moduleref resolution scope.
20229         * image.c, image.h: cache module name in image.
20230
20231 2002-06-07  Martin Baulig  <martin@gnome.org>
20232
20233         * reflection.c (mono_image_get_type_info): Only add a class layout entry
20234         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
20235
20236 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20237
20238         * icall.c: more signature fixes that used uint instead of int.
20239
20240 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20241
20242         * reflection.c: fixed signature of field refs.
20243
20244 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20245
20246         * class.c, reflection.c: handle typerefs of nested types
20247         (both on read and when writing files).
20248
20249 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
20250
20251         * icall.c: fix method signatures that tried to workaround the previous
20252         typo, d'oh!
20253
20254 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
20255
20256         * debug-helpers.c: fix typo.
20257
20258 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
20259
20260         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
20261         rewrote the PE/COFF writing code (our programs are understood by the
20262         ms runtime, now).
20263
20264 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
20265
20266         * gc.c, gc.h, icall.c: weakreference support.
20267
20268 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20269
20270         * Makefile.am, mono-config.c: use $(sysconfdir).
20271
20272 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20273
20274         * icall.c: changed default precision of Double.ToString() to 15.
20275         Fixed memory leak. Unified with Single.ToString.
20276
20277 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
20278
20279         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
20280
20281 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
20282
20283         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
20284         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
20285         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
20286         and myself.
20287
20288 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20289
20290         * debug-symfile.c, sysmath.c: yet more compilation fixes.
20291
20292 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20293
20294         * reflection.c, socket-io.c: more compilation fixes.
20295
20296 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20297
20298         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
20299         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
20300         unicode.c: warning and compiler compatibility fixes.
20301
20302 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20303
20304         * class.h, metadata.c: fixed warnings/compilation errors.
20305
20306 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20307
20308         * Makefile.am, mono-config.c, mono-config.h: configuration file
20309         support routines.
20310         * loader.c, loader.h: make Dll mapping configurable at runtime in the
20311         config file. Export methods to insert and lookup mappings.
20312
20313 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
20314
20315         * reflection.c: handle types and boxed objects in custom attr
20316         constructors.
20317
20318 2002-05-30  Martin Baulig  <martin@gnome.org>
20319
20320         * debug-symfile.c
20321         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
20322
20323 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
20324
20325         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
20326         to lookup the implmap row for a P/Invoke method.
20327         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
20328         P/Invoke method from the runtime on an as needed basis.
20329
20330 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
20331
20332         * metadata.c (mono_metadata_parse_signature): impl.
20333
20334 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20335
20336         * class.c: handle .pack directive.
20337
20338 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
20339
20340         * object.c: initialize static fields with RVA data.
20341
20342 2002-05-25  Martin Baulig  <martin@gnome.org>
20343
20344         * debug-symfile.c
20345         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
20346
20347 2002-05-24  Martin Baulig  <martin@gnome.org>
20348
20349         * debug-symfile.c
20350         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
20351         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
20352         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
20353
20354 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
20355
20356         * object.c: special case string ctros in invoke.
20357         * gc.c: silly whitespace changes.
20358
20359 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
20360
20361         * threadpool.[ch]: impl. a threadpool that can
20362         be used by mint and mono.
20363
20364 2002-05-22  Martin Baulig  <martin@gnome.org>
20365
20366         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
20367         The first argument is now a `MonoReflectionModuleBuilder *', the return
20368         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
20369         `methods' field to get the method builder.  The `token' argument is the
20370         unfixed token.
20371
20372         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
20373         invalid characters instead of g_assert_not_reached()ing.  This seems
20374         to be the behaviour of mscorlib.
20375
20376 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
20377
20378         * object.c (mono_runtime_invoke_array): applied patch from Rachel
20379         Hestilow to fix bug #25104
20380
20381 2002-05-21  Martin Baulig  <martin@gnome.org>
20382
20383         * debug-symfile.c (mono_debug_find_source_location): New function.
20384         Looks up an IL offset in the line number table and returns the source
20385         location as a string.
20386
20387 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20388
20389         * icall.c:
20390         (mono_double_ToStringImpl): changed %f by %g until we have something
20391         better.
20392
20393 2002-05-21  Nick Drochak  <ndrochak@gol.com>
20394
20395         * icall.c : Use different name for Math.Pow's icall.  Needed to check
20396         parameters first in C#.
20397
20398 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20399
20400         * icall.c, reflection.h: added icall to get info about an event.
20401
20402 2002-05-20  Radek Doulik  <rodo@ximian.com>
20403
20404         * object.c (mono_value_box): don't use memcpy for boxing on BIG
20405         endian
20406         (mono_value_box): don't use memcpy for small sizes on
20407         architectures with unaligned access
20408
20409 2002-05-20  Martin Baulig  <martin@gnome.org>
20410
20411         * reflection.c (mono_reflection_setup_internal_class): Don't crash
20412         if `tb->parent == NULL'.
20413         (mono_reflection_create_internal_class): New function.  This is
20414         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
20415         for enum types.
20416
20417         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
20418         New interncall.
20419
20420 2002-05-19  Martin Baulig  <martin@gnome.org>
20421
20422         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
20423         argument to get the length, don't default to the array length.
20424
20425 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
20426
20427         * assembly.c (mono_assembly_setrootdir): New function used to
20428         override the MONO_ASSEMBLIES directory.
20429
20430 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20431
20432         * icall.c: ValueType_GetHashCode() initialize local var.
20433
20434 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20435
20436         * reflection.c: sort custom attributes table.
20437
20438 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20439
20440         * reflection.c: support named args in custom attributes (write support).
20441
20442 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
20443
20444         * reflection.c: fix finally position calculation.
20445
20446 2002-05-15  Radek Doulik  <rodo@ximian.com>
20447
20448         * reflection.c: fixed endianess at many places
20449
20450         * icall.c (ves_icall_InitializeArray): comment out debug msg
20451
20452 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
20453
20454         * object.c (mono_unhandled_exception): new function to handle
20455         unhandled exceptions.
20456         (mono_unhandled_exception): call the UnhandledException event.
20457         (mono_runtime_delegate_invoke): impl.
20458
20459 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
20460
20461         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
20462         returns the RVA, not the direct pointer to the data. Handle the case
20463         when the class size is fixed.
20464
20465 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
20466
20467         * reflection.c: fix some endianess issues.
20468
20469 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
20470
20471         * object.c (mono_runtime_invoke): is now able to catch exceptions.
20472
20473         * threads.c (mono_thread_init): added a callback which is invoked
20474         at thread start.
20475
20476 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
20477         
20478         * icall.c: make GetHashCode return non-negative values.
20479
20480 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
20481
20482         * object.c, icall.c, gc.c: revert to address-based hashcode.
20483
20484 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
20485
20486         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
20487
20488 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20489
20490         * icall.c, class.c: special case <Module>.
20491
20492 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
20493
20494         * icall.c: fix bug in GetNow().
20495
20496 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
20497
20498         * object.c (mono_runtime_class_init): make sure that we call all
20499         static class constructors.
20500
20501 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20502
20503         * reflection.c: sort methodsemantics table.
20504
20505 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
20506
20507         * reflection.h, reflection.c: honour init locals setting.
20508
20509 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
20510
20511         * icall.c: copied Double ToStringImpl for Single ToStringImpl
20512
20513 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
20514
20515         * reflection.c: support ContructorBuilders in attribute blob creation.
20516
20517 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20518
20519         * reflection.c: some changes to build a binary that can be run
20520         directly in windows.
20521
20522 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
20523
20524         * loader.c: print a big message when an icall can't be found.
20525
20526 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20527
20528         * string-icalls.c: fix bug 24248.
20529
20530 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
20531
20532         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
20533         icall.c, reflection.h: separate assembly loading by pathname and by
20534         assembly name. Use the MONO_PATH env var to search for assemblies.
20535
20536 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20537
20538         * assembly.c, image.h: add some support for assemblies
20539         with multiple modules.
20540         * class.c, class.h: export mono_class_from_typeref().
20541         * loader.c: remove duplicated code and use mono_class_from_typeref(),
20542         instead.
20543
20544 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20545
20546         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
20547         documentation says (the ECMA one is correct).
20548
20549 2002-05-02  Dick Porter  <dick@ximian.com>
20550
20551         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
20552         Don't name the synchronisation mutex.
20553
20554 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
20555
20556         * rand.c
20557         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
20558         Make the prototypes match.
20559         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
20560         Same.
20561
20562         * icall.c
20563         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
20564         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
20565         all systems have tm.tm_zone, so use strftime() with %Z to print
20566         the timezone abreviation into a temp string.
20567
20568         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
20569         rather than mono_array_addr() on a MonoString on Big Endian
20570         machines.
20571
20572 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
20573
20574         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
20575         fix bug 24041
20576
20577 2002-04-30  Dick Porter  <dick@ximian.com>
20578
20579         * socket-io.c: Cope with SOCKET being an integer rather than a
20580         pointer now.
20581
20582         * threads.c: Added Thread_free_internal, to deal with thread
20583         handle cleanup.  Moved calls to handle_store() and handle_remove()
20584         to start_wrapper(), so each can only be called once.  Allocate
20585         synchronisation blocks with GC_malloc(), and use GC finalisation
20586         to close the handles.
20587
20588         * icall.c: added System.Threading.Thread::Thread_free_internal
20589
20590 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20591
20592         * icall.c: support Environment.Exit, CommandLineArgs().
20593
20594 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20595
20596         * object.c, object.h: added mono_runtime_run_main () and
20597         mono_runtime_get_main_args () for use in System.Environment.
20598
20599 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20600
20601         * gc.c: fix thinko, enable actual finalization since the jit is now
20602         fixed.
20603
20604 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20605
20606         * gc.c, object.c: take into account that an object may be offset wrt the address
20607         returned by GC_malloc().
20608
20609 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
20610
20611         * image.c: handle files without entries in the assembly table (modules).
20612
20613 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
20614
20615         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
20616         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
20617         allowed to be null when it's System.Object class setup.
20618
20619 2002-04-27  Martin Baulig  <martin@gnome.org>
20620
20621         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
20622         if `tb->parent == NULL' rather than crashing.
20623
20624 2002-04-28  Nick Drochak  <ndrochak@gol.com>
20625
20626         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
20627         calling acos() where asin() should have been called.
20628
20629 2002-04-26  Martin Baulig  <martin@gnome.org>
20630
20631         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
20632         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
20633         there's a subdirectory called `System', but we don't want to read that
20634         subdirectory as an assembly.
20635
20636 2002-04-25  Martin Baulig  <martin@gnome.org>
20637
20638         * debug-symfile.c: Reflect latest MonoString changes.
20639
20640 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20641
20642         * rand.c, rand.h: instance method icalls need to have an explicit
20643         this pointer as first argument in the C implementation.
20644
20645 2002-04-25  Nick Drochak <ndrochak@gol.com>
20646
20647         * icall.c: Fix typo in map for GetNonZeroBytes
20648
20649 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20650
20651         * string-icalls.c : String does now passes unit tests without any 
20652         errors, the following changes has been made:
20653         
20654         Implemented replace methods.
20655         Renaming of methods to (try) follow the standard.
20656         Fixed compare ordinal
20657         Made all memory allocated directly to function instead of via icall function.
20658         Small performance fix in is_in_array function
20659                         
20660  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
20661
20662         c (mono_string_Internal_ctor_charp_int_int):
20663         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
20664         sindex < 0, throw ArgumentOutOfRangeException instead of
20665         ArgumentNullException.
20666
20667         Added new check for length == 0, however
20668         I need to make it return String.Empty from the C code.
20669         
20670         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
20671         that calculate the length for us here.
20672         
20673         (mono_string_Internal_ctor_sbytep_int_int): Replaced
20674         mono_string_new_utf16 with mono_string_new, since value is utf8.
20675
20676 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20677
20678         * object.c: register the object for finalization if needed.
20679         Allocate one more char in the string for the terminating 0 char.
20680
20681 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20682
20683         * class.c, class.h, image.c: check if a type implemenst a destructor.
20684         Use the proper key for array class lookups.
20685         * icall.c: register the icalls in the System.GC class.
20686         * gc.c, gc.h: GC-related functions and icalls.
20687
20688 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20689
20690         * icall.c:
20691         * socket-io.c:
20692         * unicode.c: free some strings gotten from mono_string_to_utf8 and
20693         changed a couple of free () by g_free ().
20694
20695         * decimal.c: one-liner in the comments for decimal2string ().
20696
20697 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20698
20699         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
20700
20701 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20702
20703         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
20704         * object.c (mono_runtime_invoke_array) : handle null in params
20705
20706 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20707
20708         * string-icalls.c: fixed bug in split (one off bug)
20709
20710 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20711
20712         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
20713         * icalls.c: added String::Equals as internal method
20714
20715 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20716
20717         * threads.c: fixed bug in the double interlocked functions
20718
20719 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
20720
20721         * threads.c: implemented all of the new interlocked icalls.
20722         * string-icalls.c: fix a bug in insert.
20723         * icalls.c: added the icalls for interlocked, removed old string functions.
20724         
20725 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
20726
20727         * loader.c: fix off-by-one error when reading argument names.
20728
20729 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20730
20731         * profiler.c: win32 counter implementation (untested).
20732         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
20733         (the latter needs testing and more complete impl. from win32 folks).
20734
20735 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
20736
20737         * object.c: mono_array_new_full workaround mono_array_class_get
20738         problem.
20739
20740 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20741
20742         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
20743         * object.h (mono_string_chars): Changed casting type.
20744
20745 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20746
20747         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
20748                            method signatures to use gunichar2 instead of gint16.
20749
20750 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
20751
20752         * object.h, object.c: domain-specific versions of mono_object_new and
20753         mono_array_new.
20754
20755 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
20756
20757         * object.c: changed String layout
20758
20759         * string-icalls.c (mono_string_Internal_ctor_chara): added
20760         internal string constructors.
20761
20762 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
20763
20764         * threads.c: pass 'this' to the thread start routine.
20765
20766 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20767
20768         * string-icalls.c: fix IndexOf and LastIndexOf. Now
20769         InternalCompareStr don't call twice mono_string_cmp_char for the last
20770         character. Improved performance in mono_string_cmp_char.
20771
20772 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
20773
20774         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
20775         code into its own library: libmonoruntime.
20776
20777 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
20778
20779         * object.h, object.c: changed array format so that szarrays do not
20780         require a bounds structure.
20781         * icall.c, appdomain.c: support for new szarray format.
20782
20783 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
20784
20785         * metadata.c: compare also the retuns type when comparing signatures:
20786         we didn't do this as an optimization since really overloaded methods
20787         must differ also in the arguments, but this doesn't work with
20788         low-level IL code (or when using explicit conversion operators: see
20789         bug#23498 for an example).
20790
20791 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20792
20793         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
20794
20795 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
20796
20797         * icall.c: make MonoType::GetElementType its own icall.
20798
20799 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20800
20801         * icall.c: remove MonoMethod_get_Name().
20802         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
20803         object.
20804
20805 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20806
20807         * string-icalls.c: optimized a few methods.
20808
20809 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20810
20811         * icall.c: added all new string internal calls
20812         * string-icalls.c: added, new string internal call implementation.
20813         * object.c: added mono_string_new_size for allocating a string a size
20814
20815 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
20816
20817         * object.c (mono_object_isinst): use the same code as in the
20818         optimized x86 version.
20819
20820 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20821
20822         * profiler.c: TSC-based timer code (faster and more accurate).
20823         Not hooked up in configure, yet (set USE_X86TSC to 1).
20824
20825 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
20826
20827         * profiler.c, profiler.h: track time spent compiling methods.
20828         * threads.c: track thread creation/destruction.
20829
20830 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
20831
20832         * profiler.c, profiler.h, profiler-private.h: profiling interface
20833         and sample implementation. Moved here so that it can be used also by
20834         the jit.
20835
20836 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
20837
20838         * reflection.c, reflection.h: keep types and other handles separate in
20839         the hash tables for referred tokens. Add guid for modules.
20840
20841 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
20842
20843         * assembly.c: fix bugs found with valgrind.
20844         * metadata.h, metadata.c: added mono_metadata_guid_heap().
20845
20846 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
20847
20848         * threads: added icall support for getting current domain for
20849                    the thread.
20850  
20851 2002-04-13  Martin Baulig  <martin@gnome.org>
20852
20853         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
20854         (MonoDebugVarInfo): Added `index' field for register based addresses.
20855         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
20856         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
20857         `MonoDebugVarInfo *params' and `guint32 this_offset' with
20858         `MonoDebugVarInfo *this_var'.
20859
20860         * debug-symfile.c (relocate_variable): New static function to write
20861         a location description for a local variable or method parameter.
20862
20863 2002-04-12  Martin Baulig  <martin@gnome.org>
20864
20865         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
20866         stack offset and begin/end scope address of a local variable.
20867         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
20868         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
20869         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
20870
20871         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
20872         Added new relocation types for start/end scope of a local variable.
20873
20874 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20875
20876         * object.h: add mono_object_domain() macro.
20877         * reflection.c: handle typespecs.
20878         * icall.c: MonoMethod::get_Name() implementation.
20879
20880 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20881
20882         * icall.c: String::GetHashCode() icall implementation.
20883
20884 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20885
20886         * icall.c: String::IndexOfAny icall.
20887         * object.c, object.h: make array->max_length more useful.
20888         Intrduced mono_object_class() and mono_string_length() macros.
20889
20890 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20891
20892         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
20893         instead of g_unichar_isdigit.
20894
20895 2002-04-11  Nick Drochak  <ndrochak@gol.com>
20896
20897         * icall.c: Implement a simple Double.ToString().
20898
20899 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
20900
20901         * appdomain.h: only io-layer.h is supposed to be included.
20902         * icall.c: explicitly import environ. Fix warning.
20903
20904 2002-04-10  Nick Drochak  <ndrochak@gol.com>
20905
20906         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
20907                 return true even if it's not Daylight Savings time.
20908                 Only return false for the case where the function isn't
20909                 implemented for a plaform (read Windows).
20910
20911 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20912
20913         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
20914         data with a mutex.
20915
20916 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
20917
20918         * mempool.c (mono_mempool_alloc): only use g_malloc when
20919         absolutely necessary.
20920
20921 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
20922
20923         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
20924
20925         * class.c (mono_class_vtable): use domain mempool to allocate vtable
20926         (mono_class_proxy_vtable): use domain mempool
20927
20928 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
20929
20930         * appdomain.h, appdomain.c: split initialization that requires the
20931         execution engine support into mono_runtime_init().
20932
20933 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
20934
20935         * class.c (mono_class_init): don't include vtable inside MonoClass
20936         to save some memory, gather some statistics.
20937         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
20938
20939 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
20940
20941         * icall.c: internalcall implementation for ValueType.Equals().
20942
20943 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
20944
20945         * object.c (mono_message_init): moved 
20946         (mono_runtime_exec_main): new arch. independent impl.
20947         (mono_runtime_invoke_array): new method - like
20948         mono_runtime_invoke, but you can pass an array of objects.
20949         (mono_remoting_invoke): new arch. independent impl.
20950         (mono_message_invoke): new arch. independent impl.
20951         (mono_runtime_class_init): new arch. independent impl.
20952         (mono_runtime_object_init): new arch. independent impl.
20953
20954 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20955
20956         * metadata.c, object.c, reflection.c: documented the exported
20957         functions.
20958
20959 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
20960
20961         * icall.c: simpler code to pass the assembly builder data to corlib.
20962         Implement GetNestedTypes() internalcall.
20963
20964 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
20965
20966         * class.c: warn if a type can't be loaded.
20967
20968 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
20969
20970         * image.h: typedef MonoImageOpenStatus
20971         * types.h: removed unused file
20972         
20973 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
20974
20975         * icall.c: Enum_ToObject accepts enum value arguments.
20976
20977 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
20978
20979         * class.c: move initialization of properties, events and nested
20980         classes, so that they happen for interfaces, too.
20981
20982 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20983
20984         * icall.c: cleanup some ugly casts in Array_SetValue*.
20985
20986 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20987
20988         * icall.c: the values array fro enums is of the correct type, now.
20989         Implement (correctly) getFullName instead of assQualifiedName for
20990         MonoType.
20991         * reflection.h, reflection.c: added mono_type_get_name ().
20992
20993 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20994
20995         * assembly.c, image.h: for each MonoImage, record from wich assembly
20996         it was loaded.
20997         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
20998         Make Type.Assembly work.
20999
21000 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
21001
21002         * debug-symfile.h: use char* instead of gpointer to avoid
21003         unnecessary casts.
21004
21005         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
21006
21007         * icall.c (ves_icall_InternalExecute): impl. FielSetter
21008         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
21009
21010 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
21011
21012         * icall.c (mono_message_init): impl. (code cleanup)
21013         (ves_icall_InternalExecute): impl. FieldGetter
21014
21015         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
21016         defined we call all (non-static)methods through the vtable. 
21017
21018 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
21019
21020         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
21021         finalizer even though the memory is still referenced (and the chunk of
21022         memory is not freed).
21023
21024 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
21025
21026         * assembly.c: fix brokeness.
21027
21028 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
21029
21030         * class.c: kill some warnings. Check explicit interface method
21031         implementation also without considering the namespace.
21032         Load also literal strings in static class data.
21033
21034 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
21035
21036         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
21037         (default_assembly_name_resolver): Make the resolver take the
21038         "base" directory where the assembly was originally defined, so we
21039         can load DLLs that are in the same directory as the assembly that
21040         is being referenced.
21041
21042 2002-03-28  Dick Porter  <dick@ximian.com>
21043
21044         * file-io.h: 
21045         * file-io.c:
21046         * socket-io.c: 
21047         * unicode.h: 
21048         * unicode.c: Warning cleanups
21049
21050 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
21051
21052         * object.h, reflection.h: use the correct type instead of MonoObject.
21053
21054 2002-03-28  Martin Baulig  <martin@gnome.org>
21055
21056         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
21057         (mono_debug_update_symbol_file): Initialize classes if necessary.
21058
21059 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
21060
21061         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
21062         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
21063
21064 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
21065
21066         * assembly.h: fix function prototype.
21067         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
21068         * mono-endian.h: use const cast.
21069
21070 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
21071
21072         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
21073
21074 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
21075
21076         * loader.c: don't assert when a typeref can't be loaded, give
21077         a chance to the runtime to trow an exception instead.
21078         * loader.h: fix warning.
21079
21080 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
21081
21082         * class.c (mono_class_proxy_vtable): added proxy support
21083
21084 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
21085
21086         * icall.c: removed last of PAL calls, added System.Environment
21087         * file-io.h, file-io.c: MonoIO implementation
21088         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
21089
21090 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
21091
21092         * appdomain.c: do not use the byte marker in ldstr table lookup.
21093         * debug-helpers.c: allow two ':' to separate class and method name.
21094         * object.c: allocate arrays bounds with the GC, too.
21095         * verify: add a few more checks.
21096
21097 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
21098
21099         * reflection.c: output also literal strings. Allocate parameter data
21100         with GC_malloc() (thanks, Martin, for catching this!).
21101
21102 2002-03-26  Martin Baulig  <martin@gnome.org>
21103
21104         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
21105         include the `this' offset in the `param_offsets'.
21106
21107 2002-03-25  Martin Baulig  <martin@gnome.org>
21108
21109         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
21110         mono_debug_get_class() function to get the classes. Added new
21111         relocation types for arrays and strings.
21112         (mono_debug_get_class): New static function to search in all
21113         referenced assemblies for a metadata token.
21114
21115         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
21116
21117 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
21118
21119         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
21120         hold gc-allocated objects. Make the string heap a stream like the
21121         others. Removed duplicated code when writing stream info.
21122         Added asserts to catch possible buffer overflows. Set the sorted map
21123         for tables that need sorting. Added some documentation.
21124
21125 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
21126
21127         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
21128         for interned strings and vtables.
21129
21130 2002-03-24  Martin Baulig  <martin@gnome.org>
21131
21132         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
21133         it in the array since it was created with g_slist_prepend().
21134
21135 2002-03-24  Martin Baulig  <martin@gnome.org>
21136
21137         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
21138         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
21139         (mono_debug_method_from_token): Renamed to
21140         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
21141         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
21142
21143         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
21144         relocation types.
21145
21146         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
21147
21148 2002-03-24  Martin Baulig  <martin@gnome.org>
21149
21150         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
21151         (mono_debug_method_from_token): New func.
21152
21153         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
21154         New interncall, calls mono_debug_local_type_from_signature().
21155         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
21156         calls mono_debug_method_from_token().
21157
21158 2002-03-23  Martin Baulig  <martin@gnome.org>
21159
21160         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
21161         specifies the number of bytes to be converted, not the array size.
21162         Return the number of chars, not the number of bytes.
21163         (ves_icall_iconv_get_chars): The `byteCount' argument
21164         specifies the number of bytes to be converted, not the array size.
21165
21166 2002-03-23  Martin Baulig  <martin@gnome.org>
21167
21168         * reflection.h (MonoReflectionSigHelper): New type.
21169
21170         * reflection.c (mono_reflection_sighelper_get_signature_local),
21171         (mono_reflection_sighelper_get_signature_local): New functions.
21172
21173         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
21174         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
21175         interncalls.
21176
21177 2002-03-23  Martin Baulig  <martin@gnome.org>
21178
21179         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
21180         is_writeable is set.
21181         (mono_raw_buffer_update): New function to write the modified map
21182         back to disk.
21183
21184         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
21185
21186         * debug-symfile.c (mono_debug_update_symbol_file): Call
21187         mono_raw_buffer_update() when done writing.
21188
21189 2002-03-23  Martin Baulig  <martin@gnome.org>
21190
21191         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
21192
21193         * debug-symfile.c: Added support for arguments and local variables.
21194
21195 2002-03-23  Dick Porter  <dick@ximian.com>
21196
21197         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
21198         protected by ifdefs, hence breaking the w32 build.
21199
21200 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21201
21202         * object.c: implement is_interned() the right way.
21203
21204 2002-03-21  Martin Baulig  <martin@gnome.org>
21205
21206         * debug-symfile.[ch]: New files to handle debugging information
21207         files. There's also support to dynamically update these symbol
21208         files to include machine dependent information.
21209
21210 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
21211
21212         * threads.c (mono_thread_create): new function to create thread
21213         from C
21214
21215 2002-03-20  Martin Baulig  <martin@gnome.org>
21216
21217         * icall.c (ves_icall_InternalInvoke): Create a new object if the
21218         method is a constructor.
21219         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
21220         points to ves_icall_InternalInvoke().
21221
21222 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
21223
21224         * file-io.c: Flush shouldn't throw exceptions.
21225
21226 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
21227
21228         * file-io.c: FileStream flush support; FileSetLength now
21229         restores file pointer.
21230
21231 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
21232
21233         * class.c: set image for pointer classes.
21234
21235 2002/03/19  Nick Drochak <ndrochak@gol.com>
21236
21237         * sysmath.c: Forgot one.
21238
21239 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
21240
21241         * sysmath.c: Avoid redefining existing names.
21242
21243 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
21244
21245         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
21246         handled by runtime as icall rather than dllimport from libm.so
21247         * file-io.c, file-io.h: fixed handle argument type.
21248
21249 2002-03-18  Dick Porter  <dick@ximian.com>
21250
21251         * reflection.c (mono_image_get_type_info): rename interface to
21252         iface, because of "#define interface struct" on windows.
21253
21254 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
21255
21256         * class.c, class.h: rename and export mono_ptr_class_get().
21257         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
21258         * reflection.c, reflection.h, icall.c: better/saner type name
21259         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
21260         method signatures.
21261
21262 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
21263
21264         * class.c (mono_class_init): removed hardcoded GHC_SLOT
21265
21266         * icall.c (ves_icall_InternalInvoke): impl.
21267
21268 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21269
21270         * reflection.c: output the interface map table, too.
21271
21272 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
21273
21274         * class.c (class_compute_field_layout): separate computation of 
21275         static field layout
21276
21277 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
21278
21279         * icall.c: added System.Buffer support.
21280         * file-io.c: moved file icalls from PAL to FileStream.
21281
21282 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
21283
21284         * icall.c (ves_icall_System_Object_GetHashCode): impl.
21285
21286 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
21287
21288         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
21289
21290 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21291
21292         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
21293
21294 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
21295
21296         * debug-helpers.{c,h}: moved here from monograph some useful functions
21297         to locate a method by name/signature in a class or image. Included
21298         also a small and flexible IL disassembler.
21299
21300 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21301
21302         * reflection.c: fixup tokens in methods with small header size, too.
21303
21304 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
21305
21306         * object.c (mono_string_to_utf8): remove assert(!error), instead
21307         print a warning. 
21308
21309 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
21310
21311         * icall.c: update to the new mono_Array_class_get interface.
21312
21313 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
21314
21315         * appdomain.c, object.c: Boehm-GC enable.
21316         * icall.c: make get_data_chunk() support split data requests.
21317         Ensure a class is initialized in more cases. Return only the first
21318         property found in GetProperties() or the compiler gets confused. 
21319         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
21320         * reflection.h, reflection.c: add fixup mechanism for field and method
21321         tokens. Initialize assembly->typeref in a single place. Output
21322         properties after events. Support custom attributes for events, too.
21323         Typo fix for paramter custom attrs.
21324
21325 2002-03-07  Martin Baulig  <martin@gnome.org>
21326
21327         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
21328
21329 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
21330
21331         * class.c (mono_array_class_get): fix. for multi. dim. arrays
21332
21333 2002-03-06  Martin Baulig  <martin@gnome.org>
21334
21335         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
21336         non-zero lower bounds. See testcases #F10-#F13.
21337
21338 2002-03-05  Martin Baulig  <martin@gnome.org>
21339
21340         * exception.c (mono_get_exception_argument_out_of_range): New exception.
21341
21342         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
21343         ves_icall_System_Array_GetValue(), only calculate the absolute array position
21344         here.
21345         (ves_icall_System_Array_SetValue): Likewise.
21346         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
21347         as argument and does the actual work. This function is used when copying a
21348         multi-dimensional array.
21349         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
21350         now do all the widening conversions of value types.
21351         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
21352
21353 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21354
21355         * class.c: remove some magic numbers and use the smbolic names,
21356         instead. Added init_events() to load event info at class init time.
21357         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
21358         and mono_metadata_methods_from_event().
21359         * reflection.h, reflection.c: added support for writing out the evnets
21360         related information.
21361
21362 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
21363
21364         * reflection.h, icall.c: use a different method (GetInterfaces)
21365         to gather interface info and add isbyref, isprimitive and
21366         ispointer to the ves_icall_get_type_info() return value.
21367
21368 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
21369
21370         * class.h: stared adding support for events.
21371         * icall.c: split find_members implementation. Added debug icall to get
21372         the address of an object.
21373         * reflection.c: handle TypeBuilders in mono_type_get_object().
21374
21375 2002-03-01  Martin Baulig  <martin@gnome.org>
21376
21377         * icall.c (ves_icall_System_Array_GetLength): This must throw an
21378         ArgumentOutOfRangeException(), not an ArgumentException().
21379         (ves_icall_System_Array_GetLowerBound): Likewise.
21380         (ves_icall_System_Array_GetValue): Improved argument checking.
21381         (ves_icall_System_Array_SetValue): Improved argument checking.
21382
21383 2002-03-01  Martin Baulig  <martin@gnome.org>
21384
21385         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
21386         called with invalid arguments rather than just dying with g_assert().
21387         (ves_icall_System_Array_SetValue): Likewise.
21388         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
21389         raise a NotImplementedException instead.
21390         (ves_icall_System_Array_GetLength): Added argument checking.
21391         (ves_icall_System_Array_GetLowerBound): Added argument checking.
21392
21393 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
21394
21395         * object.h (mono_assert): new macros mono_assert and
21396         mono_assert_not_reached
21397
21398 2002-02-28  Martin Baulig  <martin@gnome.org>
21399
21400         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
21401         and "System::String::IsInterned" to "System::String::_IsInterned".
21402
21403 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
21404
21405         * icall.c: remove hacks for typebuilder. Added icall to create a
21406         modified type from a tybebuilder.
21407         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
21408         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
21409         to create a backing MonoClass for a TypeBuilder.
21410
21411 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21412
21413         * class.c, class.h: more refactoring of class init.
21414         Export mono_class_setup_mono_type() and mono_class_setup_parent().
21415
21416 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
21417
21418         * marshal.c, marshal.h: start of marshaling interface.
21419
21420 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
21421
21422         * icall.c: fix order in assembly qualified name icall.
21423
21424 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
21425
21426         * class.c: do not free str, since we store it in the hash table.
21427         * reflection.h: add label field to MonoILExceptionInfo.
21428         * reflection.c: handle references to more than one assembly. Handle
21429         case when there isn't a module created in the assembly.
21430
21431 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
21432
21433         * class.c: Fix typo. Start refactoring of class init code.
21434
21435 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
21436
21437         * appdomain.c: exit with 1 on error.
21438         * class.c: we already have the name in MonoClassField.
21439         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
21440         MonoStreamHeader instead of an offset of image->raw_metadata.
21441
21442 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
21443
21444         * appdomain.c (mono_init): Be even more descriptive about the error.
21445
21446 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
21447
21448         * appdomain.c: give the user an informative message when corlib can't
21449         be loaded.
21450
21451 2002-02-26  Martin Baulig  <martin@gnome.org>
21452
21453         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
21454         New icall to get the time zone data.
21455
21456 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21457
21458         * reflection.c: set virtual and raw size of section correctly.
21459         * threads.c: transfer domain information to newly created threads.
21460
21461 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
21462
21463         * class.c: when instancing a class in a domain, load the default
21464         vaules for static fields from the constant table. Fix System.Enum to
21465         not be an enum.
21466         * icall.c: implement Object::GetType() internalcall. Implemented
21467         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
21468         Fixed checking of binding flags in find_members().
21469         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
21470         * reflection.c: handle enumerations when writing to the constant
21471         table. Use a different object cache for types.
21472
21473
21474 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
21475
21476         * object.c (mono_object_isinst): fix for arrays
21477
21478         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
21479
21480 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
21481
21482         * object.c: don't use mprotect ()  and fix intern pool hash table
21483         lookup for big endian systems.
21484
21485 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21486
21487         * icall.c: change type_is_subtype_of () signature.
21488
21489 2002-02-21  Mark Crichton  <crichton@gimp.org>
21490
21491         * rand.c, rand.h: Added random number generator for
21492         System.Security.Cryptography classes.
21493
21494         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
21495
21496         * icall.c: Added System.Security.Cryptography calls.
21497
21498 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
21499
21500         * class.c, icall.c, metadata.c: better support for pointer types.
21501         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
21502         * reflection.c: Add support for getting custom attrs for properties
21503         and simplify some code.
21504
21505 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21506
21507         * icall.c: change getToken () and add custom attribute GetBlob()helper
21508         method.
21509         * reflection.h: add custom attrs array to the reflection builder structures.
21510         * reflection.c: encode and emit custom attributes for all the relevant
21511         reflection objects. Cache fieldref and methodref tokens. Change
21512         mono_image_create_token() interface to take a MonoDynamicAssembly.
21513         More complete custom attributes decoder. Load custom attributes for
21514         Assembly, Field, Method and Constructor objects, too. Make the
21515         returned array an Attribute[] one, not object[]. Added
21516         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
21517         custom attribute constructor.
21518
21519 2002-02-20  Dick Porter  <dick@ximian.com>
21520
21521         * icall.c:
21522         * rawbuffer.c:
21523         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
21524         problem code out for now).
21525
21526 2002-02-19  Radek Doulik  <rodo@ximian.com>
21527
21528         * object.c (mono_ldstr): use hash table to avoid multiple swapping
21529
21530 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
21531
21532         * icall.c: register the GetCustomAttributes method.
21533         * object.c, object.h: add mono_string_new_len ().
21534         * reflection.h, reflection.c: added mono_runtime_invoke(),
21535         mono_install_runtime_invoke(). Added
21536         mono_reflection_get_custom_attrs () to load custom attributes and
21537         create the attribute objects.
21538
21539 2002-02-19  Dick Porter  <dick@ximian.com>
21540         * threads-dummy-types.c:
21541         * threads-dummy-types.h:
21542         * threads-dummy.c:
21543         * threads-dummy.h:
21544         * threads-pthread-types.c:
21545         * threads-pthread-types.h:
21546         * threads-pthread.c:
21547         * threads-pthread.h:  Deleted obsolete files
21548
21549 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
21550
21551         * class.c (mono_class_vtable): runtime init the class when we
21552         allocate static class data.
21553
21554         * icall.c (ves_icall_System_Array_SetValue): check for null values.
21555
21556         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
21557         and String - but we will need generic marshalling support in the
21558         future. 
21559         (mono_init): set the domain name in a ms compatible way
21560
21561         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
21562         String[].
21563
21564 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
21565
21566         * object.c (mono_array_clone): use alloca() instead of g_malloc  
21567         for sizes
21568
21569         * appdomain.c (mono_domain_unload): impl.
21570
21571 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21572
21573         * appdomain.c, object.c: fix intern pool implementation.
21574         * class.c: fix alignment code.
21575
21576 2002-02-16  Radek Doulik  <rodo@ximian.com>
21577
21578         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
21579         and s2 > s1, just copy lower bytes to be compatible with little
21580         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
21581         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
21582
21583         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
21584         force big_endian to be 1 for big endian machines 
21585         (ves_icall_iconv_new_decoder): ditto
21586
21587 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
21588
21589         * socket-io.c (convert_sockopt_level_and_name): If the system
21590         doesn't define SOL_IP or SOL_TCP, get them by hand using
21591         getprotobyname() and caching the values (because this could be a
21592         slow operation).
21593         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
21594         Use the appropriate struct when the system does support it. Ie,
21595         not all systems have struct ip_mreqn so use struct ip_mreq when
21596         appropriate.
21597
21598 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
21599
21600         * reflection.c: handle finally clauses.
21601
21602 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
21603
21604         * socket-io.c: use g_snprintf() instead of snprintf.
21605
21606 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
21607
21608         * reflection.c (mono_param_get_objects): Cast second argument to
21609         mono_method_get_param_names to a const char** to silence the
21610         compiler warning.
21611
21612         * appdomain.c (mono_domain_assembly_open): Put parens around the
21613         truth statement in the for-loop.
21614
21615         * unicode.c (iconv_convert): Got rid of a compiler warning about
21616         int i being unused when the system has a new iconv.
21617         (iconv_get_length): Same.
21618
21619         * image.c (load_class_names): Cast the second argument to
21620         g_hash_table_insert() to char* to hush compiler warnings about the
21621         arg being a const.
21622         (mono_image_open): Same here.
21623
21624         * socket-io.c: Don't conditionally include sys/filio.h or
21625         sys/sockio.h here anymore since we now get them from
21626         io-layer/io-layer.h
21627         (inet_pton): If the system doesn't support inet_aton, implement
21628         using inet_addr and also #define INADDR_NONE if it isn't defined
21629         by the system.
21630
21631 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
21632
21633         * metadata.c, metadata.h: added function to get packing and size info
21634         of a typedef.
21635         * reflection.h, reflection.c: handle field RVA data. Save info about
21636         the table layout if needed. Assign typedef indexes to all the types
21637         before dumping the info about them to avoid forward reference problems.
21638
21639 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
21640
21641         * socket-io.c (convert_sockopt_level_and_name): ifdef
21642         SO_ACCEPTCONN because it is not defined on my system (old debian)
21643
21644 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21645
21646         * opcode.c: use stddef.h to get NULL.
21647
21648 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
21649
21650         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
21651         for FIONBIO, FIONREAD and SIOCATMARK.
21652         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
21653         define INADDR_NONE and besides, inet_addr() is deprecated and
21654         should not be used. Use inet_pton() instead - it also has the
21655         added bonus that it can easily handle IPv6 addresses as well.
21656         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
21657
21658 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
21659
21660         * decimal.c: remove _MSC_VER conditional.
21661
21662 2002-02-13  Dick Porter  <dick@ximian.com>
21663
21664         * socket-io.c: 
21665         * icall.c: Internal calls for Blocking, Select, Shutdown,
21666         GetSocketOption and SetSocketOption
21667
21668 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21669
21670         * assembly.cs: better resolver: use it instead of some kludgy
21671         code.
21672
21673 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
21674
21675         * reflection.c: the best way to speed-up the compiler is to avoid
21676         infinite loops.
21677
21678 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
21679
21680         * class.c (mono_class_vtable): changed the object layout
21681         (obj->vtable->class). 
21682         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
21683
21684 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21685
21686         * assembly.c: look for assemblies in the assembly dir, too.
21687
21688 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21689
21690         * class.c: fix thinko in mono_class_from_type().
21691
21692 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21693
21694         * exception.h, exception.c: added TypeLoadException.
21695         * object.h, object.c: added mono_array_clone ().
21696         * icall.c: handle throwOnError in AssemblyGetType().
21697         Added Array.Clone().
21698         * opcode.h, opcode.c: use a single value for the opcode val.
21699         Compile fix for non-gcc compilers.
21700
21701 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
21702
21703         * opcodes.c, opcodes.h: export interesting info about opcodes.
21704
21705 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
21706
21707         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
21708         icalls. 
21709
21710         * class.c (class_compute_field_layout): set element_class for enums
21711         (mono_class_create_from_typedef): set element_class for normal classes
21712
21713         * icall.c (ves_icall_System_Enum_get_value): impl.
21714
21715         * class.c (mono_class_create_from_typedef): do not set valuetype
21716         flag for System.ValueType and System.Enum
21717
21718 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
21719
21720         * unicode.c (iconv_convert): fix big endian problem.
21721
21722 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21723
21724         * class.c: add asserts if we are ever going to scribble over memory.
21725         * socket-io.c: not all systems have AF_IRDA defined.
21726
21727 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
21728
21729         * class.c (class_compute_field_layout): do not consider static
21730         fields to compute alignment
21731
21732 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
21733
21734         * appdomain.c (mono_appdomain_get): impl.
21735         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
21736
21737 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
21738
21739         * icall.c: ignore "file://" prefix when loading an assembly.
21740
21741 2002-01-23  Dick Porter  <dick@ximian.com>
21742
21743         * socket-io.c:
21744         * icall.c:
21745         * Makefile.am: Added socket support
21746
21747 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
21748
21749         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
21750         code back.  This should return the assemblies that are loaded by
21751         the runtime on behalf of an application domain. 
21752
21753         The current implementation is still broken, it just returns every
21754         assembly loaded, but until we get real applications domain this
21755         will do.
21756
21757 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
21758
21759         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
21760         AppDomain object.
21761
21762 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
21763
21764         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
21765         the mono_class_from_name lookup.
21766         (ves_icall_get_parameter_info): ditto.
21767         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
21768         method.
21769         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
21770
21771 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
21772
21773         * class.c: load also nested classes on class init.
21774         System.ValueType instance methods gets passed boxed
21775         values, unless methods in derived classed that get a pointer to the
21776         data.
21777         * icall.c: use better name parsing code in GetType().
21778         * image.c, image.h: add mono_image_loaded ().
21779         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
21780         * reflection.c, reflection.h: added mono_reflection_parse_type().
21781
21782 2002-01-22  Veronica De Santis <veron78@interfree.it>
21783
21784         * icall.c : Added mapping of internal calls for Manual and Auto reset events
21785         * threads.c : Added the implementation of internal calls for events
21786         * threads.h : Added prototypes of internal calls for events
21787         
21788 2002-01-21  Radek Doulik  <rodo@ximian.com>
21789
21790         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
21791
21792 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
21793
21794         * class.c (mono_class_init): set min_align to 1 (instead of 0)
21795         (mono_class_value_size): use min_align
21796
21797 2002-01-20  Dick Porter  <dick@ximian.com>
21798
21799         * threads.h:
21800         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
21801         so it compiles on w32.
21802
21803 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
21804
21805         * metadata.c (mono_type_stack_size): impl.
21806
21807         * class.c (mono_class_get_field): impl. memberref token
21808
21809 2002-01-16 Veronica De Santis <veron78@@interfree.it>
21810
21811         * icall.h : Added the internal calls mapping for CreateMutex_internal
21812                     and ReleaseMutex_internal.
21813         * threads.h : Added the prototype of mutexes internal calls.
21814         * threads.c : Added the implementations of mutexes internal calls.
21815
21816 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
21817
21818         * metaparse.h: removed unused file.
21819         * reflection.c, reflection.h: added stream_data_align () function 
21820         to align data in streams and keep stream aligned. Add support for
21821         exception support in method headers.
21822
21823 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
21824
21825         * unicode.c: make iconv_convert () return the number of bytess written
21826         in the output buffer.
21827
21828 2002-01-15  Dick Porter  <dick@ximian.com>
21829         * threads.c: Make the runtime's idea of infinite timeouts coincide
21830         with the class library's
21831
21832         Fix a particularly egregious bug in mono_thread_cleanup(). That
21833         code was so utterly bogus it must have been written on a Monday.
21834
21835 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
21836
21837         * reflection.h: add subtypes field to TypeBuilder.
21838         * reflection.c: encode constants for literal fields.
21839         Handle subtypes. Fix user string token (and add a zero byte)
21840         at the end.
21841         
21842 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
21843
21844         * class.c (mono_class_init): bug fix: assign slot numbers for
21845         abstract methods.
21846
21847 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21848
21849         * reflection.c: don't try to output a code RVA for abstract methods.
21850         Small fixes for method header format. Output parameter info to the
21851         ParamDef table. Save method overriding info to MethodImpl table.
21852         Fix property support. Allow typedef.extends to be a type in the
21853         building assembly.
21854         * verify.c: fix off-by-one error.
21855
21856 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
21857
21858         * class.c: fix mono_class_from_mono_type () for szarray types.
21859         Remove unused cache check in mono_class_from_type_spec().
21860         * icall.c: *type_from_name () functions handle simple arrays and byref.
21861         * reflection.c: handle byref and szarray types. Handle methods without
21862         body (gets P/Invoke compilation working). Handle types and fields in
21863         get_token ().
21864         * reflection.h: add rank to MonoTypeInfo.
21865
21866 2002-01-10  Dick Porter  <dick@ximian.com>
21867
21868         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
21869         internal calls
21870
21871 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
21872
21873         * icall.c: initialize class in type_from_handle ().
21874         Loop also in parent classes for get_method ().
21875         * reflection.c: properly encode class and valuetype types.
21876         Start on encoding TypeBuilder types. Handle fieldrefs.
21877         Use correct length when registering a user string.
21878         Handle ConstructorBuilder and MonoMethod in get_token ().
21879         Make mono_type_get_object () aware of cached types.
21880         * object.c: back out change to mono_string_new ().
21881
21882 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
21883         * object.c: mono_string_new should return a NULL when the string 
21884         passed in is NULL -- not try to deference it.
21885         
21886 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
21887
21888         * icall.c: hack to make IsSubType work for TypeBuilders.
21889         * reflection.c: emit constructors before methods.
21890         Retrieve param names in mono_param_get_objects().
21891
21892 2002/01/05  Nick Drochak  <ndrochak@gol.com>
21893
21894         * Makefile.am: fix list of headers and sources so automake 1.5
21895         doesn't complain. Removed \# at end of list.
21896
21897 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
21898
21899         * reflection.c: get token for a method ref. Set return type of
21900         constructor to void.
21901         * loader.c: debug message.
21902         * class.c: typo fix.
21903
21904 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
21905
21906         * icall.c: fix array init with rank > 1. FindMembers
21907         loops in parent class as well.
21908         * image.c: do not insert nested types in name cache.
21909         * reflection.c: warning fix.
21910         * reflection.h: add override method (for interface impl).
21911
21912 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
21913
21914         * metadata.c: fix customattr decoding.
21915
21916 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
21917
21918         * rawbuffer.cs: Added native Win32 implementation, avoids using
21919         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
21920
21921 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
21922
21923         * class.c: make the low-level routines handle the cache.
21924
21925 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
21926
21927         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
21928
21929 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
21930
21931         * class.c: fix mono_array_element_size() for objects.
21932         * class.h, class.c: add properties to MonoClass and load them
21933         at init time.
21934         * icall.c: check with isinst() when assigning a value to an array
21935         instead of requiring the classes to match exactly.
21936         Implemented icall for System.Type::GetType().
21937         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
21938         enums. Handle bindingflags when looking for methods and fields.
21939         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
21940         and mono_metadata_methods_from_property().
21941         * reflection.h, reflection.c: added structures for propreties,
21942         parameters and enums. Implemented mono_property_get_object() and
21943         mono_param_get_objects().
21944
21945 2001-12-18  Dick Porter  <dick@ximian.com>
21946
21947         * file-io.c: Use mono_string_to_utf16() instead of
21948         mono_string_chars()
21949
21950         * object.c: Added mono_string_to_utf16(), which copies the non
21951         NULL-terminated MonoString into a new double-null-terminated
21952         buffer.
21953
21954 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
21955
21956         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
21957
21958 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
21959
21960         * file-io.c: raise exceptions if handle is invalid.
21961
21962 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
21963
21964         * assembly.c: yet another check for mscorlib.
21965         * class.c, class.h: load nesting info for classes.
21966         * icall.c: many new functions to support the Reflection classes.
21967         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
21968         * reflection.h, reflection.c: mono_image_create_token(),
21969         mono_assembly_get_object(), mono_type_get_object(),
21970         mono_method_get_object(), mono_field_get_object(): methods to return
21971         objects that parallel the C representation of assemblies, types,
21972         methods, fields.
21973
21974 2001-12-11  Dick Porter  <dick@ximian.com>
21975
21976         * icall.c:
21977         * file-io.c: Internal calls for file IO.
21978
21979 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
21980
21981         * tabledefs.h: missing FileAttributes.
21982         * verify.h, verify.c: use is_valid_string () to simplify and check for
21983         valid strings more correctly. Fix warnings and speeling.
21984         Check more tables: Filed, File, ModuleRef, StandAloneSig.
21985         Check code: branches, maxstack, method calls.
21986
21987 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
21988
21989         * object.c (mono_object_allocate): removed static, so that the jit
21990         can allocate value types.
21991
21992         * icall.c (ves_icall_System_DateTime_GetNow): impl.
21993
21994 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
21995
21996         * class.c: init enum types right away and register the
21997         token->MonoClass map in mono_class_create_from_typedef ().
21998         * verify.h, verify.c: first cut of the verifier.
21999         * pedump.c: add --verify switch to verify metadata tables.
22000         * tabledefs.h: add some missing enums.
22001
22002 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
22003
22004         * class.c (mono_install_runtime_class_init): impl.
22005         (mono_class_init): renamed mono_class_metadata_init to
22006         mono_class_init, also removed the metadata_inited flag
22007
22008         * object.c (mono_object_isinst): use faster algorithm
22009
22010 2001-11-30  Radek Doulik  <rodo@ximian.com>
22011
22012         * mono-endian.h: reverted last change
22013         added function prototypes
22014
22015         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
22016         add mono-endian.c back
22017
22018         * mono-endian.c: returned back, as Paolo pointed out, it's needed
22019         for unaligned access, I've mistaked it with endianess. I am
22020         sorry.
22021         (mono_read16): fix reverted endianess
22022         (mono_read64): ditto
22023         (mono_read32): ditto
22024
22025 2001-11-30  Dick Porter  <dick@ximian.com>
22026
22027         * exception.c: Implement mono_exception_from_name()
22028
22029 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
22030
22031         * metadata.h, metadata.c: remove params_size and locals_size and their
22032         calculation from the metadata code: they are only usefult to the
22033         interp.
22034
22035 2001-11-29  Radek Doulik  <rodo@ximian.com>
22036
22037         * object.c (mono_ldstr): swap bytes here, it's probably not the
22038         best place, but works for me now, I'll redo it once I know mono
22039         better, also note that I add PROT_WRITE and don't reset back, also
22040         note that it's only affects big endians, so x86 should be OK
22041
22042         * mono-endian.h (read16): use just glib macros for both endians
22043
22044         * mono-endian.c: removed as glib macros are used in in
22045         mono-endian.h so we don't need to care about endianess for read
22046         macros as glib does that for us already
22047
22048 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
22049
22050         * class.h, class.h: take minimum alignment into consideration so
22051         that the fields of a class remain aligned also when in an array.
22052
22053 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
22054
22055         * loader.h, loader.c: add mono_method_get_param_names().
22056         * class.c: 0-init class fields.
22057
22058 2001-11-26  Dick Porter  <dick@ximian.com>
22059
22060         * icall.c:
22061         * threads-types.h:
22062         * threads.c: New file that handles System.Threading on all platforms
22063
22064         * object.c: 
22065         * object.h: Remove the synchronisation struct from MonoObject,
22066         replace it with a pointer that gets initialised on demand
22067
22068         * Makefile.am: Replace all the system-specific threading code with
22069         a single file that uses the new wrapper library
22070
22071 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
22072
22073         * class.c, class.h: add mono_install_trampoline() so that the runtime
22074         can register a function to create a trampoline: removes the ugly
22075         requirement that a runtime needed to export arch_create_jit_trampoline.
22076         * object.h, object.c: added mono_install_handler() so that the runtime
22077         can install an handler for exceptions generated in C code (with
22078         mono_raise_exception()). Added C struct for System.Delegate.
22079         * pedump.c: removed arch_create_jit_trampoline.
22080         * reflection.c: some cleanups to allow registering user strings and
22081         later getting a token for methodrefs and fieldrefs before the assembly
22082         is built.
22083         * row-indexes.h: updates and fixes from the new ECMA specs.
22084
22085 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
22086
22087         * class.h, class.c: add enum_basetype field to MonoClass.
22088         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
22089         to get index in the constant table reated to a field, param or
22090         property.
22091         * reflection.h, reflection.c: handle constructors. Set public-key and
22092         version number of the built assembly to 0.
22093         * row-indexes.h: update from new ECMA spec.
22094
22095 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
22096
22097         * class.h, class.c: add a max_interface_id to MonoClass.
22098         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
22099         since it's used to do that. Added mono_type_type_from_obj().
22100         Make GetType() return NULL instead of segfaulting if the type was not
22101         found. Handle simple arrays in assQualifiedName.
22102         * object.h: add a struct to represent an Exception.
22103         * reflection.c: output call convention in method signature.
22104         Add code to support P/Invoke methods and fixed offsets for fields.
22105
22106 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
22107
22108         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
22109         the value.
22110         * icall.c: use mono_array_addr instead of array->vector: fixes the
22111         reflection image writing.
22112         * reflection.c: init call convention byte to 0 in method signature.
22113         Encode the property signature. Don't output property-related methods
22114         twice. Really process the properties for a type (don't cast a field to
22115         a property, my mom always told me that).
22116         Fix 64 bit issues in pointer alignment in a different and more
22117         readable way.
22118
22119 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
22120
22121         * loader.h: Removed type class from MonoDefaults, added monotype
22122
22123         * loader.c: Loaded MonoType, removed loading of Type
22124
22125         * icall.c (my_mono_new_object): Now returns a System.MonoType,
22126         and fills in System.Type._impl with a RuntimeTypeHandle rather
22127         than the actual MonoClass *
22128
22129         (ves_icall_type_from_handle): change from type_class to
22130         monotype_class
22131
22132         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
22133         implemented
22134
22135         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
22136         implemented
22137
22138         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
22139
22140         (ves_icall_System_Reflection_Assembly_GetType): implemented
22141
22142         (ves_icall_System_MonoType_assQualifiedName): implemented
22143
22144         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
22145
22146 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
22147
22148         * assembly.c (mono_assembly_open): Implement a cache for the
22149         assemblies. 
22150
22151         (mono_assembly_close): only destroy the assembly when the last
22152         reference is gone.
22153         
22154 2001-11-09  Dick Porter  <dick@ximian.com>
22155
22156         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
22157
22158 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
22159
22160         * class.c (mono_class_metadata_init): bug fix: compute the right slot
22161
22162 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
22163
22164         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
22165         from Martin Weindel.
22166         * object.h: add mono_string_chars ().
22167
22168 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
22169
22170         * reflection.c (build_compressed_metadata): Eliminates warnings
22171         and uses 64-bit clean code.
22172
22173         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
22174         (mono_type_equal): Change signature to eliminate warnings.
22175
22176 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
22177
22178         * icall.c, loader.c: remove the internalcall array constructors.
22179         Changes to match the new MonoArray structure.
22180         * object.h, object.c: an array object doesn't allocate an extra
22181         vector. Add mono_array_new_full () to create jagged arrays easily.
22182
22183 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
22184
22185         * metadata.h, metadata.c: add mono_metadata_field_info () to
22186         retreive all the info about a field from vairous tables.
22187         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
22188         * class.h, class.c: augment MonoClassField with more info.
22189         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
22190         policy and load a field's RVA if needed.
22191
22192 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
22193
22194         * class.c (mono_class_metadata_init): create a trampoline for all
22195         virtual functions instead of actually compiling them.
22196
22197 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
22198
22199         * class.h, class.c: include name in MonoClassField.
22200         * class.c: fix fundamental type of System.Object and System.String.
22201         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
22202         tokens in ldtoken.
22203         * icall.c: remove internalcalls for the Reflection stuff that is now
22204         done in C# code.
22205         * loader.c: mono_field_from_memberref () implementation.
22206         * mono-endian.c: thinko (s/struct/union/g).
22207         * object.c, object.h: make the mono_string_* prototypes actually use
22208         MonoString instead of MonoObject.
22209         * reflection.c, reflection.h: updates for changes in the reflection
22210         code in corlib: we use C structures that map to the actual C# classes.
22211         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
22212         fat method header if needed and use the info from the ILGenerator for
22213         methods. Handle fields in types. Misc fixes.
22214
22215 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
22216
22217         * class.c (mono_class_metadata_init): bug fix: always allocate
22218         space for static class data
22219
22220 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
22221
22222         * class.c (mono_compute_relative_numbering): use relative
22223         numbering to support fast runtime type checks.
22224
22225 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
22226
22227         * class.c (mono_class_create_from_typeref): added debugging output
22228         to print class name when MonoDummy is returned instead of real class
22229
22230 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
22231
22232         * class.c (mono_class_metadata_init): interface offset table now
22233         contains pointers into the vtable - this is more efficient for the jit
22234
22235 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
22236
22237         * class.c (mono_class_metadata_init): use a temporary vtable (the
22238         old algorithm only worked for the interpreter, but not for the jit)
22239
22240 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
22241
22242         * loader.c (method_from_memberref): use mono_class_get to get the
22243         class of an array instead of using System.Array directly.
22244         (mono_get_method): also add MEMBERREF methods to the method cache
22245         which usefull for arrays.
22246
22247 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
22248
22249         * pedump.c (arch_compile_method): added to compute vtable entry
22250
22251         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
22252         number of interfaces.
22253         
22254         * class.h: merged MonoArrayClass into MonoClass
22255
22256         * class.c (mono_class_create_from_typedef): compute the vtable size and
22257         allocate space to include the vtable inside MonoClass
22258         (mono_class_metadata_init): initialize the vtable
22259
22260 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
22261
22262         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
22263         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
22264         * image.c: endian fixes by Laurent Rioux.
22265         * object.h, object.c: rename MonoStringObject to MonoString and
22266         MonoArrayObject to MonoArray. Change some function names to conform to
22267         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
22268         guint16* as first argument, so don't use char*.
22269         Provide macros to do the interesting things on arrays in a portable way.
22270         * threads-pthread.c: updates for the API changes and #include <sched.h>
22271         (required for sched_yield()).
22272         * icall.c: updates for the API changes above.
22273         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
22274         platforms that need them.
22275
22276 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
22277
22278         * class.c: set the correct type for all the fundamental
22279         type when loading the class.
22280
22281 2001-10-05  Dick Porter  <dick@ximian.com>
22282
22283         * threads-pthread.c (pthread_mutex_timedlock): Simple
22284         compatibility version for C libraries that lack this call.
22285
22286 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22287
22288         * class.c: MonoTypes stored in MonoClass are stored as
22289         fundamental MonoTypes when the class represents a
22290         fundamental type (System.Int32, ...).
22291         The TypeHandle return by ldtoken is a MonoType*.
22292         * icall.c: ves_icall_get_data_chunk () write out all the
22293         PE/COFF stuff. Implement ves_icall_define_method (),
22294         ves_icall_set_method_body (), ves_icall_type_from_handle ().
22295         * image.c: properly skip unknown streams.
22296         * loader.h, loader.c: add type_class to mono_defaults.
22297         * metadata.c, metadata.h: export compute_size () as
22298         mono_metadata_compute_size () with a better interface.
22299         Typo and C&P fixes.
22300         * pedump.c: don't try to print the entry point RVA if there is no entry point.
22301         * reflection.c, reflection.h: many cleanups, fixes, output method
22302         signatures and headers, typedef and typeref info, compress the metadata
22303         tables, output all the heap streams, cli header etc.
22304         * row-indexes.h: typo fixes.
22305
22306 2001-10-04  Dick Porter  <dick@ximian.com>
22307
22308         * object.h: Add a synchronisation mutex struct to MonoObject
22309
22310         * object.c (mono_new_object): Initialise the object
22311         synchronisation mutexes
22312
22313         * icall.c: System.Threading.Monitor internal calls
22314         
22315         * threads-pthread.h:
22316         * threads-pthread.c: System.Threading.Monitor internal calls
22317
22318         * threads-types.h: New file, includes the system-specific thread
22319         structures
22320         
22321         * threads-pthread-types.h:
22322         * threads-pthread-types.c: New files, handle pthread-specific
22323         synchronisation types
22324
22325         * threads-dummy-types.h: 
22326         * threads-dummy-types.c: New files of dummy support for
22327         thread-specific types
22328
22329         * metadata.c:
22330         * image.c:
22331         * pedump.c: include mono-endian.h not endian.h
22332         
22333         * Makefile.am: More threads files.
22334         Name mono-endian.h not endian.h
22335
22336 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
22337
22338         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
22339         stuff and implement a few more bits.
22340         * icall.c: a field needs to be dereferenced twice. Do not use the same
22341         name for two variables in the same scope.
22342         * image.c, image.h: cleanups.
22343
22344 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
22345
22346         * class.c (mono_class_metadata_init): bug fix: compute the right size
22347
22348 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
22349
22350         * icall.c: implemented some of the Reflection internalcalls.
22351         * image.c, image.h: start writing out the PE/COFF image.
22352         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
22353         that does the reverse than decode_blob_size ().
22354         * object.c: use mono_metadata_encode_value (). Move here
22355         temporary implementation of mono_string_to_utf8 ().
22356         * rawbuffer.c: make malloc_map static.
22357
22358 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22359
22360         * metadata.c: fix type comparison for arrays.
22361         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
22362         Added a couple of new classes to monodefaults.
22363         * icall.c: added a couple of Reflection-related internalcalls.
22364         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
22365         Added a byval_arg MonoType to MonoClass.
22366
22367 2001-09-28  Dick Porter  <dick@ximian.com>
22368
22369         * icall.c:
22370         * threads-pthread.h: 
22371         * threads-pthread.c: Implemented internal calls for
22372         LocalDataStoreSlot operations.  Applied mutexes around all shared
22373         data.  Reworked the thread creation and Start() operations to
22374         avoid a race condition.
22375         
22376         * threads-dummy.h:
22377         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
22378
22379 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
22380
22381         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
22382
22383 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
22384
22385         * class.c, loader.c: warn and return NULL instead of erroring out.
22386         * icall.c: added System.AppDomain::getCurDomain().
22387         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
22388
22389 2001-09-25  Dick Porter  <dick@ximian.com>
22390
22391         * threads-pthread.h:
22392         * threads-pthread.c: Implemented timed thread joining and added
22393         System.Threading.Thread::Join_internal internal call
22394
22395         * icall.c: Added System.Threading.Thread::Join_internal internal call
22396
22397         * threads-dummy.h:
22398         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
22399
22400 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
22401
22402         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
22403         mono_string_intern () to implement the semantics of the ldstr opcode
22404         and the interning of System.Strings.
22405         * icall.c: provide hooks to make String::IsIntern and String::Intern
22406         internalcalls.
22407
22408 2001-09-23  Dick Porter  <dick@ximian.com>
22409
22410         * threads-dummy.c: 
22411         * threads-dummy.h: New files of dummy threading routines
22412
22413         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
22414         support code based on system specifics
22415
22416         Rename PTHREAD_LIBS to THREAD_LIBS
22417         
22418 2001-09-23  Dick Porter  <dick@ximian.com>
22419
22420         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
22421         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
22422         internal calls.
22423         (mono_thread_init): Set up a Thread object instance to return when
22424         the main thread calls Thread.CurrentThread
22425         (mono_thread_cleanup): Wait for all subthreads to exit
22426
22427         * icall.c: New internal calls for System.Threading.Thread::Sleep
22428         (including Schedule) and CurrentThread
22429
22430         * threads.h: New file, to insulate thread-specific stuff from the
22431         rest of the code
22432
22433 2001-09-21  Dick Porter  <dick@ximian.com>
22434
22435         * threads-pthread.h: 
22436         * threads-pthread.c: New file, for handling pthreads-style
22437         threading support.  Start() now starts a new thread and executes
22438         the ThreadStart delegate instance.
22439
22440         * icall.c: Added the internalcall for
22441         System.Threading.Thread::Start_internal
22442
22443         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
22444
22445 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
22446
22447         * loader.c: work around the different signatures for delegates
22448         constructors csc generates in compiled code vs the ones compiled in mscorlib.
22449
22450 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
22451
22452         * class.h, class.c: add mono_class_get_field_from_name ().
22453         * *: Fix C comments and other ANSI C issues.
22454
22455 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
22456
22457         * endian.h, assembly.c: fix some endianness issues.
22458
22459 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
22460
22461         * loader.h, load.c: add delegate_class to mono_defaults.
22462         Handle runtime provided methods in mono_get_method ().
22463
22464 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
22465
22466         * loader.c (mono_get_method): use pinvoke for internal call
22467
22468         * icall.c: use pinvoke for internal call
22469
22470         * loader.c (method_from_memberref): set the method name
22471
22472 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
22473
22474         * metadata.c: help the compiler generate better code for
22475         mono_class_from_mono_type ().
22476
22477 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
22478
22479         * class.c (mono_class_metadata_init): delayed computing of the
22480         class size to mono_class_metadata_init ()
22481
22482 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
22483
22484         * class.c, class.h: add an interfaces member to MonoClass.
22485         * image.c, image.h: add assembly_name field to MonoImage
22486         from the assembly table.
22487         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
22488
22489 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
22490
22491         * class.c: Handle Array in mono_class_from_mono_type ().
22492         * metadata.c, pedump.c: some endian fixes.
22493
22494 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
22495
22496         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
22497         * metadata.c: fix small problem introduced with the latest commit.
22498
22499 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
22500
22501         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
22502         We don't need a MonoMetadata pointer anymore to compare signatures in
22503         mono_metadata_signature_equal (), update callers.
22504         Reduced memory usage an number of allocations for MonoMethodHeader and
22505         MonoMethodSignature.
22506
22507 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
22508
22509         * metadata.c: added compare for szarray.
22510
22511 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
22512
22513         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
22514         and add a couple more types to it and mono_defaults. Give an hint on
22515         classes that need implementing in our corlib and are referenced
22516         in mscorlib.
22517
22518 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
22519
22520         * class.h, class.c: keep track if a class is also an Enum.
22521         * loader.c: Implement a couple more types for use in libffi
22522         marshalling. Gives better diagnostics when failing to dlopen
22523         a library. Set method->klass for P/Invoke methods, too.
22524
22525 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
22526
22527         * class.c, class.h: add a MonoType this_arg to MonoClass that
22528         represents a pointer to an object of the class' type that
22529         can be used by the interpreter and later the type cache.
22530         Add best guess alignment info for valuetype objects.
22531
22532 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
22533
22534         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
22535         into MonoType: one less level of indirection and allocation and
22536         simplifies quite a bit of code. Added cache for MonoTypes that are
22537         used frequently, so that we don't need to allocate them all the time.
22538
22539 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
22540
22541         * class.c (mono_class_create_from_typedef): System.Enum is also a
22542         value type, although it does not derive from System.ValueType
22543         (maybe a bug in the ms compiler?)
22544
22545         * metadata.c (mono_type_size): return the right size for value types
22546
22547         * loader.c (mono_get_method): only initialize method header if not abstract
22548
22549         * class.c (mono_class_from_mono_type): use mono_default values. 
22550
22551 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
22552
22553         * *: use MonoClass pointers instead of <type_tokens>
22554         
22555         * class.h: new flag: metadata_inited.
22556
22557         * class.c (mono_class_metadata_init): impl.
22558         (mono_class_instance_size): impl.
22559         (mono_class_data_size): impl.
22560
22561 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22562
22563         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
22564         MonoClass now has the name and name_space fields. 
22565         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
22566         mono_get_method () takes and optional MonoClass as argument.
22567         Removed mono_typedef_from_name() and added mono_class_token_from_name()
22568         instead that takes advantage of a map from class names to typedef
22569         tokens in MonoImage.
22570
22571 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
22572
22573         * metadata.c: zero is not a valid alignment boundary.
22574         Merge MONO_TYPE_VOID in default decoding code.
22575
22576 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
22577
22578         * image.h: merged MonoMetadata into MonoImage
22579
22580         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
22581         identify the type of elements.
22582
22583 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
22584
22585         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
22586         * cil-coff.h: split MonoMSDOSHeader and add size info.
22587         * image.c: add some consistency checks.
22588         * metadata.c: fix row size computation: one programmer
22589         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
22590         add explanation for the locator routine.
22591         Fix decoding of size in method header.
22592         
22593 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
22594
22595         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
22596         (g_concat_dir_and_file): Bring g_concat_dir_and_file
22597         function from gnome-libs.  This uses the right path separator
22598         based on the OS, and also works around a bug in some systems where
22599         a double slash is not allowed. 
22600         (default_assembly_name_resolver): Use g_concat_dir_and_file
22601         (mono_assembly_open): ditto.
22602
22603 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
22604
22605         * metadata.c (mono_metadata_signature_equal): impl.
22606
22607         * *: void is now a realy MonoType (instead of using NULL)
22608         
22609         * metadata.c (do_mono_metadata_parse_type): use
22610         mono_metadata_parse_type to parse void value.
22611
22612 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
22613
22614         * metadata.c, metadata.h: in the signature and method header store
22615         only the space required for holding the loca vars and incoming arguments.
22616
22617 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
22618
22619         * metadata.c (do_mono_metadata_parse_type): treat void like any
22620         other type (instead of assigning NULL);
22621
22622 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
22623
22624         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
22625
22626 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
22627
22628         * image.c (do_mono_image_open): added a cache for arrays.
22629
22630 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
22631
22632         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
22633         decode a single column from a row in a metadata table and changes
22634         to take advantage of it in the typedef locator (gives a nice speed up).
22635         Store offset info for function params.
22636
22637 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
22638
22639         * image.h (MONO_IMAGE_IS_CORLIB): removed 
22640
22641 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
22642
22643         * assembly.c: how could mono_assembly_close () had ever worked?
22644         * metadata.c, metadata.h: provide offset info for local vars.
22645         Implement mono_type_size () to take care of alignment as well
22646         as size (it was mono_field_type_size in cli/class.c before).
22647
22648 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
22649
22650         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
22651
22652         * assembly.h (CORLIB_NAME): set to corlib.dll
22653
22654         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
22655
22656 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
22657
22658         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
22659         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
22660         tokentype.h: massive namespace cleanup.
22661
22662 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
22663
22664         * metadata.h, metadata.c: decode exception clauses when parsing method header.
22665
22666 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
22667
22668         * metadata.c (mono_metadata_free_type): added check for type !=
22669         NULL (void) before calling mono_metadata_free_type()
22670
22671 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
22672
22673         * metadata.h, row_indexes.h: added header with enumerations to use
22674         to index in the columns from tables in metadata and to decode coded
22675         tokens: we should start using this instead of embedding magic numbers
22676         all over the code.
22677
22678 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
22679
22680         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
22681         Move metadata_t info from cli_image_info_t to MonoImage, where
22682         it's easily accessible. Changed all the uses accordingly.
22683         Added the method and class caches to MonoImage.
22684         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
22685         and mono_metadata_decode_value () signature to be more consistent
22686         with the other parse functions (and simplify code). Taken advantage
22687         of zero-length array allocation with GCC. Removed reduntant (and
22688         wrong) MonoFieldType struct and use MonoParam instead. Changed
22689         mono_metadata_parse_field_type () to use common code for parsing.
22690         Added mono_metadata_typedef_from_field () and
22691         mono_metadata_typedef_from_method () to lookup a typedef index from a
22692         field or method token.
22693         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
22694
22695 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
22696
22697         * metadata.c (mono_metadata_parse_field_type): Implement. 
22698         (do_mono_metadata_parse_type): Split engine from
22699         mono_metadata_parse_type, so that we can create smaller structures
22700         for things that just have one pointer to the MonoType (look at
22701         the MonoFieldType)
22702
22703 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
22704
22705         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
22706         as Jan Gray found out, it is incorrect. 
22707
22708 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
22709
22710         * assembly.c: Implement asssembly loading.  This loads an image
22711         and loads all the referenced assemblies.  Come to think of it, we
22712         could always do lazy loading of the assemblies. 
22713
22714         * image.c (mono_image_open): Keep loaded images in a hashtable.
22715
22716         * image.h (MonoImage): Add reference count.
22717
22718 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
22719
22720         * assembly.c (mono_assembly_open): Keep track of the file name in
22721         case the assembly has no ASSEMBLY table.
22722
22723         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
22724         from get.c here.
22725
22726 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
22727
22728         * metadata.c, metadata.h: decode local vars in method header
22729         parse function. Change callers accordingly.
22730
22731 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
22732
22733         * metadata.h, cil-coff.h: protect against multiple inclusion.
22734         Added some new structures to hold information decoded from metadata:
22735         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
22736         and relevant decoding/free functions.
22737         * metadata.c: implement decoding functions. Add warning for out of bounds
22738         index in mono_metadata_locate(). Implement mono_get_method () to retreive
22739         all the info about a method signature and invocation. Remove check on
22740         uninitialized local var in parse_mh() and fix memory leak.
22741
22742 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
22743
22744         * metadata.h: More macros.
22745
22746         * tokentype.h: New file.
22747
22748 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
22749
22750         * assembly.c: added a consistency check and initialize
22751         some structures with g_new0().
22752         * metadata.c: fixed a couple more bugs in table size computation
22753         and add other checks for out-of bound access to metadata.
22754
22755 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
22756
22757         * metatada.c: fix bugs computing table sizes. Spew a
22758         warning when index in string heap is out of bounds.
22759
22760 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
22761
22762         * metadata.h: Add a couple of macros to manipulate tokens. 
22763
22764 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
22765
22766         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
22767         cli_section_tables).
22768
22769 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
22770
22771         * metadata.c (mono_metadata_user_string): New function, provides
22772         access to the UserString heap. 
22773
22774 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
22775
22776         * metadata.c: Add inline documentation.
22777
22778 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
22779
22780         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
22781         files. 
22782
22783 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
22784
22785         * typeattr.h: New file, TypeAttribute flags. 
22786
22787 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
22788
22789         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
22790         mono_assembly_ensure_section): Section loading code.
22791         (load_section_tables): Load the sections.
22792
22793         * mono/metadata/metadata.c (mono_metadata_locate_token,
22794         mono_metadata_locate): Functions to locate the information
22795         definition given a token or a table and an index.
22796         (mono_metadata_compute_table_bases): New.
22797         (compute_size): New function to compute the sizes of the various
22798         tables.
22799
22800         * mono/metadata/metadata.h: Finish listing the different index
22801         types. 
22802
22803         * mono/metadata/pedump.c: Improve to dump new information.
22804
22805 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
22806
22807         * mono/metadata/metadata.c: Entered all the tables matching
22808         Beta2. 
22809
22810         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
22811
22812
22813